diff --git a/.eslintrc.cjs b/.eslintrc.cjs
deleted file mode 100644
index e30126da7fbc36efd13f94d5e6a3b0e867437ac1..0000000000000000000000000000000000000000
--- a/.eslintrc.cjs
+++ /dev/null
@@ -1,84 +0,0 @@
-const { join } = require("node:path");
-
-module.exports = {
-  root: true,
-  extends: [
-    "turbo",
-    "prettier",
-    "plugin:@typescript-eslint/recommended-type-checked-only",
-  ],
-  parserOptions: {
-    project: join(__dirname, "tsconfig.eslint.json"),
-    __tsconfigRootDir: __dirname,
-  },
-  settings: {
-    react: {
-      version: "999.999.999",
-    },
-  },
-  rules: {
-    "max-params": ["error", 4],
-    "prefer-const": "error",
-    "@typescript-eslint/no-floating-promises": [
-      "error",
-      {
-        ignoreIIFE: true,
-      },
-    ],
-    "no-debugger": "error",
-    "@typescript-eslint/await-thenable": "off",
-    "@typescript-eslint/ban-ts-comment": "off",
-    "@typescript-eslint/ban-types": "off",
-    "no-array-constructor": "off",
-    "@typescript-eslint/no-array-constructor": "off",
-    "@typescript-eslint/no-base-to-string": [
-      "error",
-      {
-        ignoredTypeNames: ["Error", "RegExp", "URL", "URLSearchParams"],
-      },
-    ],
-    "@typescript-eslint/no-duplicate-enum-values": "off",
-    "@typescript-eslint/no-duplicate-type-constituents": "off",
-    "@typescript-eslint/no-explicit-any": "off",
-    "@typescript-eslint/no-extra-non-null-assertion": "off",
-    "@typescript-eslint/no-for-in-array": "off",
-    "no-implied-eval": "off",
-    "@typescript-eslint/no-implied-eval": "off",
-    "no-loss-of-precision": "off",
-    "@typescript-eslint/no-loss-of-precision": "off",
-    "@typescript-eslint/no-misused-new": "off",
-    "@typescript-eslint/no-misused-promises": "off",
-    "@typescript-eslint/no-namespace": "off",
-    "@typescript-eslint/no-non-null-asserted-optional-chain": "off",
-    "@typescript-eslint/no-redundant-type-constituents": "off",
-    "@typescript-eslint/no-this-alias": "off",
-    "@typescript-eslint/no-unnecessary-type-assertion": "off",
-    "@typescript-eslint/no-unnecessary-type-constraint": "off",
-    "@typescript-eslint/no-unsafe-argument": "off",
-    "@typescript-eslint/no-unsafe-assignment": "off",
-    "@typescript-eslint/no-unsafe-call": "off",
-    "@typescript-eslint/no-unsafe-declaration-merging": "off",
-    "@typescript-eslint/no-unsafe-enum-comparison": "off",
-    "@typescript-eslint/no-unsafe-member-access": "off",
-    "@typescript-eslint/no-unsafe-return": "off",
-    "no-unused-vars": "off",
-    "@typescript-eslint/no-unused-vars": "off",
-    "@typescript-eslint/no-var-requires": "off",
-    "@typescript-eslint/prefer-as-const": "off",
-    "require-await": "off",
-    "@typescript-eslint/require-await": "off",
-    "@typescript-eslint/restrict-plus-operands": "off",
-    "@typescript-eslint/restrict-template-expressions": "off",
-    "@typescript-eslint/triple-slash-reference": "off",
-    "@typescript-eslint/unbound-method": "off",
-  },
-  overrides: [
-    {
-      files: ["examples/**/*.ts"],
-      rules: {
-        "turbo/no-undeclared-env-vars": "off",
-      },
-    },
-  ],
-  ignorePatterns: ["dist/", "lib/", "deps/"],
-};
diff --git a/apps/docs/docusaurus.config.js b/apps/docs/docusaurus.config.js
index 0d847f19a01676972221874259d6a3784a5b07ed..c520156a7170290e5c2e68f7127099234bc23a4c 100644
--- a/apps/docs/docusaurus.config.js
+++ b/apps/docs/docusaurus.config.js
@@ -1,6 +1,7 @@
 // @ts-check
 // Note: type annotations allow type checking and IDEs autocompletion
 
+// eslint-disable-next-line @typescript-eslint/no-require-imports
 const renderer = require("prism-react-renderer");
 const lightCodeTheme = renderer.themes.github;
 const darkCodeTheme = renderer.themes.dracula;
@@ -39,6 +40,7 @@ const config = {
           // editUrl:
           //   "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/",
           remarkPlugins: [
+            // eslint-disable-next-line @typescript-eslint/no-require-imports
             [require("@docusaurus/remark-plugin-npm2yarn"), { sync: true }],
           ],
         },
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 756c6969fd1d8987fc8b2d8e5d01eeaa7c111441..0d7d5f304accfb27e9245c884e83bbd1a1244bbf 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -33,7 +33,7 @@
     "@docusaurus/theme-classic": "3.5.2",
     "@docusaurus/types": "3.5.2",
     "@tsconfig/docusaurus": "2.0.3",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "docusaurus-plugin-typedoc": "1.0.5",
     "typedoc": "0.26.6",
     "typedoc-plugin-markdown": "4.2.6",
diff --git a/apps/docs/src/components/HomepageFeatures/index.tsx b/apps/docs/src/components/HomepageFeatures/index.tsx
index 456436fae9ad49cabcff24dfc3d4582f6d323acd..aefcbae264a126b72b22f0c379aa1df861b660bf 100644
--- a/apps/docs/src/components/HomepageFeatures/index.tsx
+++ b/apps/docs/src/components/HomepageFeatures/index.tsx
@@ -11,16 +11,19 @@ type FeatureItem = {
 const FeatureList: FeatureItem[] = [
   {
     title: "Data Driven",
+    // eslint-disable-next-line @typescript-eslint/no-require-imports
     Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default,
     description: <>LlamaIndex.TS is all about using your data with LLMs.</>,
   },
   {
     title: "Typescript Native",
+    // eslint-disable-next-line @typescript-eslint/no-require-imports
     Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default,
     description: <>We ❤️ Typescript, and so do our users.</>,
   },
   {
     title: "Built by the Community",
+    // eslint-disable-next-line @typescript-eslint/no-require-imports
     Svg: require("@site/static/img/undraw_docusaurus_react.svg").default,
     description: (
       <>
diff --git a/apps/next/package.json b/apps/next/package.json
index 917c05f604f38395ddb38e822e648ca50bd53134..f5f491cb0a9cc5110a139d7c34beef39cf1fc02d 100644
--- a/apps/next/package.json
+++ b/apps/next/package.json
@@ -55,7 +55,7 @@
   "devDependencies": {
     "@next/env": "^15.0.1",
     "@types/mdx": "^2.0.13",
-    "@types/node": "22.7.8",
+    "@types/node": "22.8.4",
     "@types/react": "^18.3.12",
     "@types/react-dom": "^18.3.1",
     "autoprefixer": "^10.4.20",
diff --git a/apps/next/src/actions/index.tsx b/apps/next/src/actions/index.tsx
index b215c44e4d96b327cd09920738dc5df7f7283d6c..367e1a8e64e96ff4cbd91fc109a6ff454318bb91 100644
--- a/apps/next/src/actions/index.tsx
+++ b/apps/next/src/actions/index.tsx
@@ -14,10 +14,9 @@ Settings.llm = new OpenAI({
 });
 
 const retriever = new LlamaCloudRetriever({
-  // eslint-disable-next-line turbo/no-undeclared-env-vars
   apiKey: process.env.LLAMA_CLOUD_API_KEY!,
   baseUrl: "https://api.cloud.llamaindex.ai/",
-  // eslint-disable-next-line turbo/no-undeclared-env-vars
+
   pipelineId: process.env.LLAMA_CLOUD_PIPELINE_ID!,
 });
 
@@ -27,7 +26,7 @@ const initialAIState = {
   messages: ChatMessage[];
 };
 
-type UIMessage = {
+export type UIMessage = {
   id: number;
   display: ReactNode;
 };
@@ -38,6 +37,7 @@ const initialUIState = {
   messages: UIMessage[];
 };
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 const runAsyncFnWithoutBlocking = (fn: (...args: any) => Promise<any>) => {
   fn().catch((error) => {
     console.error(error);
diff --git a/apps/next/src/components/ai-chat.tsx b/apps/next/src/components/ai-chat.tsx
index ff58ad6cb6c3d8093d77d490d5ee2a92b34f6796..aedded68b6a3b7ccf8f7aa06b33ecc881a8540c9 100644
--- a/apps/next/src/components/ai-chat.tsx
+++ b/apps/next/src/components/ai-chat.tsx
@@ -1,5 +1,5 @@
 "use client";
-import type { AIProvider } from "@/actions";
+import type { AIProvider, UIMessage } from "@/actions";
 import { UserMessage } from "@/components/message";
 import { useActions, useUIState } from "ai/rsc";
 import { Info } from "lucide-react";
@@ -21,7 +21,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "./ui/tooltip";
 
 type AITriggerProps = ButtonHTMLAttributes<HTMLButtonElement>;
 
-function ChatList({ messages }: { messages: any[] }) {
+function ChatList({ messages }: { messages: UIMessage[] }) {
   if (messages.length === 0) {
     return null;
   }
diff --git a/apps/next/src/components/ui/input.tsx b/apps/next/src/components/ui/input.tsx
index ef29a4ac929b2a1d437b35f22e70382895bb4424..2fd005406540136f2ff356d0e779eda1e08c65b4 100644
--- a/apps/next/src/components/ui/input.tsx
+++ b/apps/next/src/components/ui/input.tsx
@@ -2,8 +2,7 @@ import * as React from "react";
 
 import { cn } from "@/lib/utils";
 
-export interface InputProps
-  extends React.InputHTMLAttributes<HTMLInputElement> {}
+export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
 
 const Input = React.forwardRef<HTMLInputElement, InputProps>(
   ({ className, type, ...props }, ref) => {
diff --git a/apps/next/src/components/ui/textarea.tsx b/apps/next/src/components/ui/textarea.tsx
index 0e546bbf348e10976ec45159d815b9d45f21f364..a0662826bdf2a4c908d17545fda5431964e4a431 100644
--- a/apps/next/src/components/ui/textarea.tsx
+++ b/apps/next/src/components/ui/textarea.tsx
@@ -2,8 +2,7 @@ import * as React from "react";
 
 import { cn } from "@/lib/utils";
 
-export interface TextareaProps
-  extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
+export type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;
 
 const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
   ({ className, ...props }, ref) => {
diff --git a/apps/next/src/components/website/Text.tsx b/apps/next/src/components/website/Text.tsx
index 7d7984225ff3e23fd7f94d999758ce8beb6fc679..c2a75be0ed99457f9abf5311c7cb40dc5632662d 100644
--- a/apps/next/src/components/website/Text.tsx
+++ b/apps/next/src/components/website/Text.tsx
@@ -12,7 +12,9 @@ export interface TextProps {
   weight?: 400 | 500 | 600;
   children?: ReactNode;
   className?: string;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   as?: any;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   maximumWidth?: any;
 }
 
diff --git a/apps/next/tailwind.config.js b/apps/next/tailwind.config.js
index 47d28a20ea8e607d318f5ef4a72041355ad6fcb4..77395164dc0cf59321006a5304a11e58f93ef572 100644
--- a/apps/next/tailwind.config.js
+++ b/apps/next/tailwind.config.js
@@ -12,6 +12,7 @@ export default {
     "./node_modules/fumadocs-openapi/dist/**/*.js",
   ],
   presets: [createPreset()],
+  // eslint-disable-next-line @typescript-eslint/no-require-imports
   plugins: [require("tailwindcss-animate")],
   theme: {
     extend: {
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..0e48c33f1407df2763a3e132b23a61dd338d8b82
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,62 @@
+// @ts-check
+
+import eslint from "@eslint/js";
+import eslintConfigPrettier from "eslint-config-prettier";
+import turboPlugin from "eslint-plugin-turbo";
+import globals from "globals";
+import tseslint from "typescript-eslint";
+
+export default tseslint.config(
+  eslint.configs.recommended,
+  ...tseslint.configs.recommended,
+  eslintConfigPrettier,
+  {
+    languageOptions: {
+      ecmaVersion: 2022,
+      sourceType: "module",
+      globals: {
+        ...globals.browser,
+        ...globals.node,
+      },
+    },
+  },
+  {
+    name: "eslint-config-turbo (recreated flat)",
+    plugins: {
+      turbo: { rules: turboPlugin.rules },
+    },
+  },
+  {
+    rules: {
+      "no-irregular-whitespace": "off",
+      "@typescript-eslint/no-unused-vars": "off",
+      "@typescript-eslint/no-explicit-any": [
+        "error",
+        {
+          ignoreRestArgs: true,
+        },
+      ],
+    },
+  },
+  {
+    files: ["packages/wasm-tools/**"],
+    rules: {
+      "@typescript-eslint/no-explicit-any": "off",
+    },
+  },
+  {
+    ignores: [
+      "**/dist/**",
+      "**/lib/*",
+      "**/deps/**",
+      "**/.next/**",
+      "**/node_modules/**",
+      "**/build/**",
+      "**/.docusaurus/**",
+      // third party deps
+      "packages/env/src/fs/memfs/index.js",
+      "packages/core/src/prompts/format.ts",
+      "packages/core/src/node-parser/sentence_tokenizer.js",
+    ],
+  },
+);
diff --git a/examples/agent/helpers/extractWikipedia.ts b/examples/agent/helpers/extractWikipedia.ts
index 05f391c292a140d846d8e68d762f4aafbf59cba6..7dc477c3688d32cbee2ca9c36370afeb055ade96 100644
--- a/examples/agent/helpers/extractWikipedia.ts
+++ b/examples/agent/helpers/extractWikipedia.ts
@@ -22,13 +22,14 @@ const extractWikipediaTitle = async (title: string) => {
   const url = `https://en.wikipedia.org/w/api.php?${queryParams}`;
 
   const response = await fetch(url);
-  const data: any = await response.json();
+  const data = await response.json();
 
   const pages = data.query.pages;
   const page = pages[Object.keys(pages)[0]];
   const wikiText = page.extract;
 
   await new Promise((resolve) => {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     fs.writeFile(path.join(dataPath, `${title}.txt`), wikiText, (err: any) => {
       if (err) {
         console.error(err);
diff --git a/examples/agent/multi_document_agent.ts b/examples/agent/multi_document_agent.ts
index f5aa159e454561505ebdbd0aaeb0fe7cdceb89cc..4cdd66a750dbe8d9a25734b23eee0aefd880c41c 100644
--- a/examples/agent/multi_document_agent.ts
+++ b/examples/agent/multi_document_agent.ts
@@ -37,7 +37,9 @@ async function main() {
   });
 
   // TODO: fix any
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const documentAgents: any = {};
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const queryEngines: any = {};
 
   for (const title of wikiTitles) {
diff --git a/examples/directory.ts b/examples/directory.ts
index bc4dd592b88c78bf3de53f552108a8b2977aa540..b92ad82da3261e40355a25536399acb350262bbe 100644
--- a/examples/directory.ts
+++ b/examples/directory.ts
@@ -3,7 +3,7 @@ import { SimpleDirectoryReader } from "llamaindex";
 function callback(
   category: string,
   name: string,
-  status: any,
+  status: unknown,
   message?: string,
 ): boolean {
   console.log(category, name, status, message);
diff --git a/examples/mongodb/1_import.ts b/examples/mongodb/1_import.ts
index a24d16c9f518640a9e1ed2649843afbf101d21d8..c2f8397bd057469bfd346fb407d492a0f97ced9b 100644
--- a/examples/mongodb/1_import.ts
+++ b/examples/mongodb/1_import.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import * as dotenv from "dotenv";
 import * as fs from "fs";
 import { MongoClient } from "mongodb";
diff --git a/examples/mongodb/2_load_and_index.ts b/examples/mongodb/2_load_and_index.ts
index 25042772b91e699bf19b8a80eb49b9b492f47470..bc2380a29cdeefff3474b86f5b69fd95bae2cc4c 100644
--- a/examples/mongodb/2_load_and_index.ts
+++ b/examples/mongodb/2_load_and_index.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import { SimpleMongoReader } from "@llamaindex/readers/mongo";
 import * as dotenv from "dotenv";
 import {
diff --git a/examples/mongodb/3_query.ts b/examples/mongodb/3_query.ts
index f6bf62d1ddb347bcfa89fb9b6c6eb85f369dc0fb..2e097b977932a135d959ea48715de91534264ce0 100644
--- a/examples/mongodb/3_query.ts
+++ b/examples/mongodb/3_query.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import * as dotenv from "dotenv";
 import { MongoDBAtlasVectorSearch, VectorStoreIndex } from "llamaindex";
 import { MongoClient } from "mongodb";
diff --git a/examples/multimodal/load.ts b/examples/multimodal/load.ts
index e2d0fa7a44172f141cf456f6cf4fa827531856e2..c1a9f68c43999a210ae8019cf3fb10ce2f921b9a 100644
--- a/examples/multimodal/load.ts
+++ b/examples/multimodal/load.ts
@@ -6,6 +6,7 @@ import { getStorageContext } from "./storage";
 Settings.chunkSize = 512;
 Settings.chunkOverlap = 20;
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 async function getRuntime(func: any) {
   const start = Date.now();
   await func();
diff --git a/examples/package.json b/examples/package.json
index a69e7b680b3013cb65bde1b3f0cb2cde984e2097..c131d3b4e5915b09b3596915f1c0583dce75c02c 100644
--- a/examples/package.json
+++ b/examples/package.json
@@ -22,7 +22,7 @@
     "postgres": "^3.4.4"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "tsx": "^4.19.0",
     "typescript": "^5.6.2"
   },
diff --git a/examples/pinecone-vector-store/load-docs.ts b/examples/pinecone-vector-store/load-docs.ts
index d5d485021919e99a7f481a844db425e4d14a28b9..7de41d0bfa2986f9d53fa410c3f9fed12ceef0d6 100755
--- a/examples/pinecone-vector-store/load-docs.ts
+++ b/examples/pinecone-vector-store/load-docs.ts
@@ -16,13 +16,14 @@ async function getSourceFilenames(sourceDir: string) {
 function callback(
   category: string,
   name: string,
-  status: any,
+  status: unknown,
   message: string = "",
 ): boolean {
   console.log(category, name, status, message);
   return true;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 async function main(args: any) {
   const sourceDir: string = args.length > 2 ? args[2] : "../data";
 
diff --git a/examples/pinecone-vector-store/query.ts b/examples/pinecone-vector-store/query.ts
index 5a5d089d67fa5d074cf670615833bec89c63943f..a1ad19524d5adff79071bccb94aef253481d2c91 100755
--- a/examples/pinecone-vector-store/query.ts
+++ b/examples/pinecone-vector-store/query.ts
@@ -1,6 +1,7 @@
 import { PineconeVectorStore, VectorStoreIndex } from "llamaindex";
 
 async function main() {
+  // eslint-disable-next-line @typescript-eslint/no-require-imports
   const readline = require("readline").createInterface({
     input: process.stdin,
     output: process.stdout,
@@ -44,6 +45,7 @@ function isQuit(question: string) {
 }
 
 // Function to get user input as a promise
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 function getUserInput(readline: any): Promise<string> {
   return new Promise((resolve) => {
     readline.question(
diff --git a/examples/readers/package.json b/examples/readers/package.json
index 04e48a301f845d75d3e4bd9ee33406793bb3e6ec..d94f9599ef4e40b0c2e5b92a5d4e3b5763932995 100644
--- a/examples/readers/package.json
+++ b/examples/readers/package.json
@@ -22,7 +22,7 @@
     "llamaindex": "*"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "tsx": "^4.19.0",
     "typescript": "^5.6.2"
   }
diff --git a/examples/readers/src/llamaparse-json.ts b/examples/readers/src/llamaparse-json.ts
index 608faa3a1f6f4bce52b7a7169862587cdd6f77da..c5f2fc5806eedd4eadccb27deec4bb674eae9e74 100644
--- a/examples/readers/src/llamaparse-json.ts
+++ b/examples/readers/src/llamaparse-json.ts
@@ -39,6 +39,7 @@ function getTextDocs(jsonList: { text: string; page: number }[]): Document[] {
 }
 // Download all images from jsonObjs, send them to OpenAI API to get alt text, return an array of Document objects
 async function getImageTextDocs(
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   jsonObjs: Record<string, any>[],
 ): Promise<Document[]> {
   const llm = new OpenAI({
diff --git a/examples/vector-store/pg/load-docs.ts b/examples/vector-store/pg/load-docs.ts
index 6befb9f1e8ce9686b90f50a0bf1540d35ed6a328..2152ac0ad124c11f185e3283098ac020401c3875 100755
--- a/examples/vector-store/pg/load-docs.ts
+++ b/examples/vector-store/pg/load-docs.ts
@@ -16,13 +16,14 @@ async function getSourceFilenames(sourceDir: string) {
 function callback(
   category: string,
   name: string,
-  status: any,
+  status: unknown,
   message: string = "",
 ): boolean {
   console.log(category, name, status, message);
   return true;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 async function main(args: any) {
   const sourceDir: string = args.length > 2 ? args[2] : "../data";
 
diff --git a/examples/vector-store/pg/neon.ts b/examples/vector-store/pg/neon.ts
index b2256ca30594952a5958814644a244b63514d9ae..5baa79a6e57ac9fb059f13f3299b0a5af01def4a 100644
--- a/examples/vector-store/pg/neon.ts
+++ b/examples/vector-store/pg/neon.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import dotenv from "dotenv";
 import { Document, PGVectorStore, VectorStoreQueryMode } from "llamaindex";
 import postgres from "postgres";
diff --git a/examples/vector-store/pg/query.ts b/examples/vector-store/pg/query.ts
index 66cddbe4ff49d94c3fca0079f6a541cb0a08a641..4d88e1cbdad329f5ae0395f752038aa45b864c00 100755
--- a/examples/vector-store/pg/query.ts
+++ b/examples/vector-store/pg/query.ts
@@ -1,6 +1,7 @@
 import { PGVectorStore, VectorStoreIndex } from "llamaindex";
 
 async function main() {
+  // eslint-disable-next-line @typescript-eslint/no-require-imports
   const readline = require("readline").createInterface({
     input: process.stdin,
     output: process.stdout,
@@ -50,6 +51,7 @@ function isQuit(question: string) {
 }
 
 // Function to get user input as a promise
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 function getUserInput(readline: any): Promise<string> {
   return new Promise((resolve) => {
     readline.question(
diff --git a/examples/vectorIndexFromVectorStore.ts b/examples/vectorIndexFromVectorStore.ts
index b87f32cbbc557799528b9ee50b47e8cec672e513..d89a9552bfb44abdffcf1c0511dea6ff3b94d0ed 100644
--- a/examples/vectorIndexFromVectorStore.ts
+++ b/examples/vectorIndexFromVectorStore.ts
@@ -46,6 +46,7 @@ class PineconeVectorStore<T extends RecordMetadata = RecordMetadata>
 
   async query(
     query: VectorStoreQuery,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     kwargs?: any,
   ): Promise<VectorStoreQueryResult> {
     let queryEmbedding: number[] = [];
diff --git a/package.json b/package.json
index 56387f7f1de4e9062bd1b9ba71d0c9c4faccfbae..962d1c2da6ec45c22300d48dc99fdcb09c9f2026 100644
--- a/package.json
+++ b/package.json
@@ -19,19 +19,20 @@
   },
   "devDependencies": {
     "@changesets/cli": "^2.27.5",
-    "@typescript-eslint/eslint-plugin": "^8.3.0",
-    "eslint": "8.57.0",
-    "eslint-config-next": "^14.2.7",
+    "eslint": "9.13.0",
+    "eslint-config-next": "^15.0.2",
     "eslint-config-prettier": "^9.1.0",
-    "eslint-config-turbo": "^2.1.0",
-    "eslint-plugin-react": "7.35.0",
-    "husky": "^9.1.5",
-    "lint-staged": "^15.2.9",
+    "eslint-config-turbo": "^2.2.3",
+    "eslint-plugin-react": "7.37.2",
+    "globals": "^15.11.0",
+    "husky": "^9.1.6",
+    "lint-staged": "^15.2.10",
     "madge": "^8.0.0",
     "prettier": "^3.3.3",
-    "prettier-plugin-organize-imports": "^4.0.0",
-    "turbo": "^2.1.2",
-    "typescript": "^5.6.2"
+    "prettier-plugin-organize-imports": "^4.1.0",
+    "turbo": "^2.2.3",
+    "typescript": "^5.6.2",
+    "typescript-eslint": "^8.12.2"
   },
   "packageManager": "pnpm@9.5.0",
   "pnpm": {
diff --git a/packages/autotool/examples/01_node/src/index.ts b/packages/autotool/examples/01_node/src/index.ts
index 7a8e3d857077b45ebe36d69ff1a79912c6cec8fe..646cea37c04d201a43f72177323e3602e94e821a 100644
--- a/packages/autotool/examples/01_node/src/index.ts
+++ b/packages/autotool/examples/01_node/src/index.ts
@@ -18,6 +18,6 @@ const openai = new OpenAI();
 
   const toolCalls = response.choices[0]!.message.tool_calls ?? [];
   for (const toolCall of toolCalls) {
-    toolCall.function.name;
+    console.log(toolCall);
   }
 }
diff --git a/packages/autotool/examples/02_nextjs/package.json b/packages/autotool/examples/02_nextjs/package.json
index f7be436a09abf047c67970bd71072a57d7be0564..0a1effbfc9c1a6fb8f99b01e703c3d25985cd29c 100644
--- a/packages/autotool/examples/02_nextjs/package.json
+++ b/packages/autotool/examples/02_nextjs/package.json
@@ -24,7 +24,7 @@
     "tailwind-merge": "^2.5.2"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/react": "^18.3.12",
     "@types/react-dom": "^18.3.1",
     "@types/react-syntax-highlighter": "^15.5.11",
diff --git a/packages/autotool/package.json b/packages/autotool/package.json
index d58b71684c702ba09949a5657a34cb13814da218..9c60f9dcaea530f10e02dd2257ddbdbea2752b45 100644
--- a/packages/autotool/package.json
+++ b/packages/autotool/package.json
@@ -69,7 +69,7 @@
   "devDependencies": {
     "@swc/types": "^0.1.12",
     "@types/json-schema": "^7.0.15",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "bunchee": "5.5.1",
     "llamaindex": "workspace:*",
     "next": "14.2.11",
diff --git a/packages/autotool/src/internal/index.ts b/packages/autotool/src/internal/index.ts
index 592aa61f0dda27e808f420b16aa4bb57f80f3307..ee58526ab9e004193d07355f36811dc695124215 100644
--- a/packages/autotool/src/internal/index.ts
+++ b/packages/autotool/src/internal/index.ts
@@ -2,6 +2,7 @@ import { atom, createStore } from "jotai/vanilla";
 import type { ToolMetadata } from "llamaindex";
 
 export type Info = {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   originalFunction?: (...args: any[]) => any;
   /**
    * In current LLM, it doesn't support non-object parameter, so we mock arguments as object, and use this mapping to convert it back.
@@ -23,4 +24,5 @@ export type InfoString = {
 
 export const store = createStore();
 export const toolMetadataAtom = atom<[ToolMetadata, Info][]>([]);
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export const toolsAtom = atom<Record<string, (...args: any[]) => any>>({});
diff --git a/packages/autotool/src/next.ts b/packages/autotool/src/next.ts
index 168f7f31d0357e1fb523f731d9a64598ba6a06a9..ef1eb892315b9c5fb8e0ab5cc8dc8686745757cf 100644
--- a/packages/autotool/src/next.ts
+++ b/packages/autotool/src/next.ts
@@ -4,6 +4,7 @@ import webpackPlugin from "./webpack";
 export function withNext(config: NextConfig) {
   return {
     ...config,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     webpack: (webpackConfig: any, context: any) => {
       webpackConfig = config.webpack?.(webpackConfig, context) ?? webpackConfig;
       webpackConfig.plugins.push(webpackPlugin());
diff --git a/packages/autotool/src/plugin.ts b/packages/autotool/src/plugin.ts
index 3c61a302cc139ed8133ffc9a65e9f7a91d203e9a..5c601c002694bb2b5b46752b2e795d390e151e79 100644
--- a/packages/autotool/src/plugin.ts
+++ b/packages/autotool/src/plugin.ts
@@ -3,7 +3,7 @@ import type { ExpressionStatement } from "@swc/types";
 import { createUnplugin, type UnpluginFactory } from "unplugin";
 import { isJSorTS, isToolFile, transformAutoTool } from "./compiler";
 
-export interface Options {}
+export type Options = object;
 
 const name = "llama-index-tool";
 
diff --git a/packages/cloud/src/reader.ts b/packages/cloud/src/reader.ts
index 165aacec8a6b0bd9971ed8fb413a52a453cff703..ac2e35e4b2bf5b91c900079e89c9c9aa93a04b96 100644
--- a/packages/cloud/src/reader.ts
+++ b/packages/cloud/src/reader.ts
@@ -18,7 +18,7 @@ type WriteStream = {
 };
 
 // Do not modify this variable or cause type errors
-// eslint-disable-next-line no-var
+// eslint-disable-next-line @typescript-eslint/no-explicit-any, no-var
 var process: any;
 
 /**
@@ -215,6 +215,7 @@ export class LlamaParseReader extends FileReader {
   private async getJobResult(
     jobId: string,
     resultType: "text" | "json" | "markdown",
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
   ): Promise<any> {
     const signal = AbortSignal.timeout(this.maxTimeout * 1000);
     let tries = 0;
@@ -354,6 +355,7 @@ export class LlamaParseReader extends FileReader {
    */
   async loadJson(
     filePathOrContent: string | Uint8Array,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
   ): Promise<Record<string, any>[]> {
     let jobId;
     const isFilePath = typeof filePathOrContent === "string";
@@ -394,8 +396,10 @@ export class LlamaParseReader extends FileReader {
    * @return {Promise<Record<string, any>[]>} A Promise that resolves to an array of image objects.
    */
   async getImages(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     jsonResult: Record<string, any>[],
     downloadPath: string,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
   ): Promise<Record<string, any>[]> {
     try {
       // Create download directory if it doesn't exist (Actually check for write access, not existence, since fsPromises does not have a `existsSync` method)
@@ -405,6 +409,7 @@ export class LlamaParseReader extends FileReader {
         await fs.mkdir(downloadPath, { recursive: true });
       }
 
+      // eslint-disable-next-line @typescript-eslint/no-explicit-any
       const images: Record<string, any>[] = [];
       for (const result of jsonResult) {
         const jobId = result.job_id;
@@ -473,9 +478,12 @@ export class LlamaParseReader extends FileReader {
 
   // Filters out invalid values (null, undefined, empty string) of specific params.
   private filterSpecificParams(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     params: Record<string, any>,
     keysToCheck: string[],
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
   ): Record<string, any> {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     const filteredParams: Record<string, any> = {};
     for (const [key, value] of Object.entries(params)) {
       if (keysToCheck.includes(key)) {
diff --git a/packages/community/package.json b/packages/community/package.json
index 842901154896ee18e1e6387616a250913e9fe1ff..654d10228408603437c20396ba7928083ca2b575 100644
--- a/packages/community/package.json
+++ b/packages/community/package.json
@@ -42,7 +42,7 @@
     "dev": "bunchee --watch"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "bunchee": "5.5.1"
   },
   "dependencies": {
diff --git a/packages/community/src/llm/bedrock/anthropic/provider.ts b/packages/community/src/llm/bedrock/anthropic/provider.ts
index bb71ed859b9f19160ae011e429915d08632b1ca7..8135367daea8854d9ae251f144e0ca4a2c134afd 100644
--- a/packages/community/src/llm/bedrock/anthropic/provider.ts
+++ b/packages/community/src/llm/bedrock/anthropic/provider.ts
@@ -31,12 +31,14 @@ import {
 
 export class AnthropicProvider extends Provider<AnthropicStreamEvent> {
   getResultFromResponse(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): AnthropicNoneStreamingResponse {
     return JSON.parse(toUtf8(response.body));
   }
 
   getToolsFromResponse<AnthropicToolContent>(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): AnthropicToolContent[] {
     const result = this.getResultFromResponse(response);
@@ -45,6 +47,7 @@ export class AnthropicProvider extends Provider<AnthropicStreamEvent> {
       .map((item) => item as AnthropicToolContent);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   getTextFromResponse(response: Record<string, any>): string {
     const result = this.getResultFromResponse(response);
     return result.content
@@ -53,6 +56,7 @@ export class AnthropicProvider extends Provider<AnthropicStreamEvent> {
       .join(" ");
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   getTextFromStreamResponse(response: Record<string, any>): string {
     const event = this.getStreamingEventResponse(response);
     if (event?.type === "content_block_delta") {
diff --git a/packages/community/src/llm/bedrock/meta/provider.ts b/packages/community/src/llm/bedrock/meta/provider.ts
index 6e79a775c2b6b2d1035e7be668132f2bf2de42e9..d2652695b2598529fb08609af7966c097b3f5cc5 100644
--- a/packages/community/src/llm/bedrock/meta/provider.ts
+++ b/packages/community/src/llm/bedrock/meta/provider.ts
@@ -23,12 +23,14 @@ import {
 
 export class MetaProvider extends Provider<MetaStreamEvent> {
   getResultFromResponse(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): MetaNoneStreamingResponse {
     return JSON.parse(toUtf8(response.body));
   }
 
   getToolsFromResponse<ToolContent>(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): ToolContent[] {
     const result = this.getResultFromResponse(response);
@@ -45,12 +47,14 @@ export class MetaProvider extends Provider<MetaStreamEvent> {
     ];
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   getTextFromResponse(response: Record<string, any>): string {
     const result = this.getResultFromResponse(response);
     if (result.generation.trim().startsWith(TOKENS.TOOL_CALL)) return "";
     return result.generation;
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   getTextFromStreamResponse(response: Record<string, any>): string {
     const event = this.getStreamingEventResponse(response);
     if (event?.generation) {
diff --git a/packages/community/src/llm/bedrock/provider.ts b/packages/community/src/llm/bedrock/provider.ts
index 1a4a6f973fafd290d20ab49623842e18da82919b..6e43450aa1fc872edbc25a456efaec3f84aa8131 100644
--- a/packages/community/src/llm/bedrock/provider.ts
+++ b/packages/community/src/llm/bedrock/provider.ts
@@ -20,15 +20,18 @@ export type BedrockChatStreamResponse = AsyncIterable<
   ChatResponseChunk<ToolCallLLMMessageOptions>
 >;
 
-export abstract class Provider<ProviderStreamEvent extends {} = {}> {
+export abstract class Provider<ProviderStreamEvent extends object = object> {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract getTextFromResponse(response: Record<string, any>): string;
 
   // Return tool calls from none streaming calls
-  abstract getToolsFromResponse<T extends {} = {}>(
+  abstract getToolsFromResponse<T extends object = object>(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): T[];
 
   getStreamingEventResponse(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     response: Record<string, any>,
   ): ProviderStreamEvent | undefined {
     return response.chunk?.bytes
@@ -47,6 +50,7 @@ export abstract class Provider<ProviderStreamEvent extends {} = {}> {
     });
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   getTextFromStreamResponse(response: Record<string, any>): string {
     return this.getTextFromResponse(response);
   }
diff --git a/packages/core/package.json b/packages/core/package.json
index c48dc0931eaa97806738c28569e73395ee21d6c7..6ede7233be38d63d8cdb6aef82ef7ed783e30a30 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -355,7 +355,7 @@
   },
   "dependencies": {
     "@llamaindex/env": "workspace:*",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "magic-bytes.js": "^1.10.0",
     "zod": "^3.23.8",
     "zod-to-json-schema": "^3.23.3"
diff --git a/packages/core/src/agent/base.ts b/packages/core/src/agent/base.ts
index 19fab33fc683ff2852cf7c3cc8efda9373b4ea71..7f465f168efe2a75276ebf7778578486c766d5a3 100644
--- a/packages/core/src/agent/base.ts
+++ b/packages/core/src/agent/base.ts
@@ -28,7 +28,7 @@ export const MAX_TOOL_CALLS = 10;
 
 export function createTaskOutputStream<
   Model extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = Model extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -99,7 +99,7 @@ export function createTaskOutputStream<
 
 export type AgentRunnerParams<
   AI extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = AI extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -146,7 +146,7 @@ export type AgentParamsBase<
  */
 export abstract class AgentWorker<
   AI extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = AI extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -198,7 +198,7 @@ export abstract class AgentWorker<
  */
 export abstract class AgentRunner<
   AI extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = AI extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -292,7 +292,7 @@ export abstract class AgentRunner<
 
   static shouldContinue<
     AI extends LLM,
-    Store extends object = {},
+    Store extends object = object,
     AdditionalMessageOptions extends object = AI extends LLM<
       object,
       infer AdditionalMessageOptions
diff --git a/packages/core/src/agent/types.ts b/packages/core/src/agent/types.ts
index d6c951d359d78433aa4f6b03595c9589076f8c72..c6e7a78d149865f2232650925c63619a2f8c7a28 100644
--- a/packages/core/src/agent/types.ts
+++ b/packages/core/src/agent/types.ts
@@ -12,7 +12,7 @@ import type {
 
 export type AgentTaskContext<
   Model extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = Model extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -38,7 +38,7 @@ export type AgentTaskContext<
 
 export type TaskStep<
   Model extends LLM = LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = Model extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -56,7 +56,7 @@ export type TaskStep<
 
 export type TaskStepOutput<
   Model extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = Model extends LLM<
     object,
     infer AdditionalMessageOptions
@@ -74,7 +74,7 @@ export type TaskStepOutput<
 
 export type TaskHandler<
   Model extends LLM,
-  Store extends object = {},
+  Store extends object = object,
   AdditionalMessageOptions extends object = Model extends LLM<
     object,
     infer AdditionalMessageOptions
diff --git a/packages/core/src/agent/utils.ts b/packages/core/src/agent/utils.ts
index 94d740eeae2da59b579beed885bc9851a64f52e3..946ae378950cd77ab16f05365f9da966c90030a6 100644
--- a/packages/core/src/agent/utils.ts
+++ b/packages/core/src/agent/utils.ts
@@ -25,9 +25,9 @@ import type { TaskHandler } from "./types.js";
 type StepToolsResponseParams<Model extends LLM> = {
   response: ChatResponse<ToolCallLLMMessageOptions>;
   tools: BaseTool[];
-  step: Parameters<TaskHandler<Model, {}, ToolCallLLMMessageOptions>>[0];
+  step: Parameters<TaskHandler<Model, object, ToolCallLLMMessageOptions>>[0];
   enqueueOutput: Parameters<
-    TaskHandler<Model, {}, ToolCallLLMMessageOptions>
+    TaskHandler<Model, object, ToolCallLLMMessageOptions>
   >[1];
 };
 
diff --git a/packages/core/src/decorator/event-caller.ts b/packages/core/src/decorator/event-caller.ts
index a8d698372c76bc57c086cad7bb43e1aee763cb98..cead9e1a5633361de1c441d24782d520907f5623 100644
--- a/packages/core/src/decorator/event-caller.ts
+++ b/packages/core/src/decorator/event-caller.ts
@@ -8,9 +8,9 @@ export function wrapEventCaller<This, Result, Args extends unknown[]>(
 ) {
   const name = context.name;
   context.addInitializer(function () {
-    // @ts-expect-error
+    // @ts-expect-error - this is a valid assignment
     const fn = this[name].bind(this);
-    // @ts-expect-error
+    // @ts-expect-error - this is a valid assignment
     this[name] = (...args: unknown[]) => {
       return withEventCaller(this, () => fn(...args));
     };
diff --git a/packages/core/src/embeddings/utils.ts b/packages/core/src/embeddings/utils.ts
index dfe456758dd79b813e0f9d27bdd06a9a9126a5fd..9201bbe4dc5766782783310901488d4cc99a02a5 100644
--- a/packages/core/src/embeddings/utils.ts
+++ b/packages/core/src/embeddings/utils.ts
@@ -72,13 +72,15 @@ export function similarity(
  * @param similarityCutoff minimum similarity score
  * @returns
  */
-// eslint-disable-next-line max-params
+
 export function getTopKEmbeddings(
   queryEmbedding: number[],
   embeddings: number[][],
   similarityTopK: number = 2,
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   embeddingIds: any[] | null = null,
   similarityCutoff: number | null = null,
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
 ): [number[], any[]] {
   if (embeddingIds == null) {
     embeddingIds = Array(embeddings.length).map((_, i) => i);
@@ -102,6 +104,7 @@ export function getTopKEmbeddings(
   similarities.sort((a, b) => b.similarity - a.similarity); // Reverse sort
 
   const resultSimilarities: number[] = [];
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const resultIds: any[] = [];
 
   for (let i = 0; i < similarityTopK; i++) {
@@ -115,15 +118,16 @@ export function getTopKEmbeddings(
   return [resultSimilarities, resultIds];
 }
 
-// eslint-disable-next-line max-params
 export function getTopKMMREmbeddings(
   queryEmbedding: number[],
   embeddings: number[][],
   similarityFn: ((...args: any[]) => number) | null = null,
   similarityTopK: number | null = null,
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   embeddingIds: any[] | null = null,
   _similarityCutoff: number | null = null,
   mmrThreshold: number | null = null,
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
 ): [number[], any[]] {
   const threshold = mmrThreshold || 0.5;
   similarityFn = similarityFn || similarity;
@@ -133,8 +137,10 @@ export function getTopKMMREmbeddings(
   }
   const fullEmbedMap = new Map(embeddingIds.map((value, i) => [value, i]));
   const embedMap = new Map(fullEmbedMap);
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const embedSimilarity: Map<any, number> = new Map();
   let score: number = Number.NEGATIVE_INFINITY;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   let highScoreId: any | null = null;
 
   for (let i = 0; i < embeddings.length; i++) {
@@ -147,6 +153,7 @@ export function getTopKMMREmbeddings(
     }
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const results: [number, any][] = [];
 
   const embeddingLength = embeddings.length;
diff --git a/packages/core/src/global/settings/callback-manager.ts b/packages/core/src/global/settings/callback-manager.ts
index 2e7b9584c54e7ae599ff6a0b5e5610aff03216ac..f060b484d756d2fceeeecbcfd183e23f36a72547 100644
--- a/packages/core/src/global/settings/callback-manager.ts
+++ b/packages/core/src/global/settings/callback-manager.ts
@@ -77,6 +77,7 @@ export interface LlamaIndexEventMaps {
   "agent-end": AgentEndEvent;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export class LlamaIndexCustomEvent<T = any> extends CustomEvent<T> {
   reason: EventCaller | null = null;
   private constructor(
@@ -103,6 +104,7 @@ export class LlamaIndexCustomEvent<T = any> extends CustomEvent<T> {
 type EventHandler<Event> = (event: LlamaIndexCustomEvent<Event>) => void;
 
 export class CallbackManager {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   #handlers = new Map<keyof LlamaIndexEventMaps, EventHandler<any>[]>();
 
   on<K extends keyof LlamaIndexEventMaps>(
diff --git a/packages/core/src/llms/type.ts b/packages/core/src/llms/type.ts
index b7c05f35e44752fd496eecafc96b23c56881f4ce..ea402ec5db68ef3a33fe3862e3537cd88b991ecf 100644
--- a/packages/core/src/llms/type.ts
+++ b/packages/core/src/llms/type.ts
@@ -194,7 +194,7 @@ export type ToolResultOptions = {
 export type ToolCallLLMMessageOptions =
   | ToolResultOptions
   | ToolCallOptions
-  | {};
+  | object;
 
 type Known =
   | { [key: string]: Known }
@@ -220,6 +220,7 @@ export type ToolMetadata<
 /**
  * Simple Tool interface. Likely to change.
  */
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export interface BaseTool<Input = any> {
   /**
    * This could be undefined if the implementation is not provided,
@@ -232,6 +233,7 @@ export interface BaseTool<Input = any> {
   Input extends Known ? ToolMetadata<JSONSchemaType<Input>> : ToolMetadata;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export type BaseToolWithCall<Input = any> = Omit<BaseTool<Input>, "call"> & {
   call: NonNullable<Pick<BaseTool<Input>, "call">["call"]>;
 };
diff --git a/packages/core/src/objects/index.ts b/packages/core/src/objects/index.ts
index d1810d5d96643d1db8741485b6ea6121ef445011..ccaa84d9b2797eb73ed6cb45f3cecf29cebd208c 100644
--- a/packages/core/src/objects/index.ts
+++ b/packages/core/src/objects/index.ts
@@ -16,30 +16,38 @@ export abstract class BaseObjectNodeMapping {
   abstract fromObjects<OT>(objs: OT[], ...args: any[]): BaseObjectNodeMapping;
 
   // Abstract methods in TypeScript
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract objNodeMapping(): Record<any, any>;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract toNode(obj: any): TextNode;
 
   // Concrete methods can be defined as usual
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   validateObject(obj: any): void {}
 
   // Implementing the add object logic
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   addObj(obj: any): void {
     this.validateObject(obj);
     this._addObj(obj);
   }
 
   // Abstract method for internal add object logic
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract _addObj(obj: any): void;
 
   // Implementing toNodes method
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   toNodes(objs: any[]): TextNode[] {
     return objs.map((obj) => this.toNode(obj));
   }
 
   // Abstract method for internal from node logic
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract _fromNode(node: BaseNode): any;
 
   // Implementing fromNode method
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   fromNode(node: BaseNode): any {
     const obj = this._fromNode(node);
     this.validateObject(obj);
diff --git a/packages/core/src/prompts/base.ts b/packages/core/src/prompts/base.ts
index a4e83426e718d25208fb4fb32e76e8a3bd8d0f88..2aacdf34046b4c7cfb813d99d738a6dfcd2b1513 100644
--- a/packages/core/src/prompts/base.ts
+++ b/packages/core/src/prompts/base.ts
@@ -125,6 +125,7 @@ type Permutation<T, K = T> = [T] extends [never]
     ? [K, ...Permutation<Exclude<T, K>>]
     : never;
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 type Join<T extends any[], U extends string> = T extends [infer F, ...infer R]
   ? R["length"] extends 0
     ? `${F & string}`
diff --git a/packages/core/src/response-synthesizers/factory.ts b/packages/core/src/response-synthesizers/factory.ts
index 0b0ff673dfccaa0972674adb91e18a4fd80dda68..9197150007f1f2eef0a28c798f93ade0a0798ca4 100644
--- a/packages/core/src/response-synthesizers/factory.ts
+++ b/packages/core/src/response-synthesizers/factory.ts
@@ -151,7 +151,6 @@ class Refine extends BaseSynthesizer {
     return response as AsyncIterable<string> | string;
   }
 
-  // eslint-disable-next-line max-params
   private async refineResponseSingle(
     initialReponse: string,
     query: MessageContent,
diff --git a/packages/core/src/response-synthesizers/utils.ts b/packages/core/src/response-synthesizers/utils.ts
index f92677cbe818ba2fbea14ec7d9ab48d000652eb1..75f9983569787f8d1b068a4caab12cf2043b1129 100644
--- a/packages/core/src/response-synthesizers/utils.ts
+++ b/packages/core/src/response-synthesizers/utils.ts
@@ -1,4 +1,3 @@
-// eslint-disable-next-line max-params
 import type { MessageContentDetail } from "../llms";
 import type { BasePromptTemplate } from "../prompts";
 import {
@@ -29,7 +28,7 @@ async function createContentPerModality(
         },
       ];
     case ModalityType.IMAGE:
-      const images: MessageContentDetail[] = await Promise.all(
+      return Promise.all(
         (nodes as ImageNode[]).map(async (node) => {
           return {
             type: "image_url",
@@ -39,7 +38,6 @@ async function createContentPerModality(
           } satisfies MessageContentDetail;
         }),
       );
-      return images;
     default:
       return [];
   }
diff --git a/packages/core/src/schema/node.ts b/packages/core/src/schema/node.ts
index 459dbfb6680f5e1119764182aa3b3efb79271fe3..0ba548bd8095f3a47132eb41ed8476cd604d8d7c 100644
--- a/packages/core/src/schema/node.ts
+++ b/packages/core/src/schema/node.ts
@@ -25,6 +25,7 @@ export enum MetadataMode {
   NONE = "NONE",
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export type Metadata = Record<string, any>;
 
 export interface RelatedNodeInfo<T extends Metadata = Metadata> {
@@ -176,6 +177,7 @@ export abstract class BaseNode<T extends Metadata = Metadata> {
    * Properties are read-only as they are not deep-cloned (not necessary for stringification).
    * @see toMutableJSON - use to return a mutable JSON instead
    */
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   toJSON(): Record<string, any> {
     return {
       ...this,
@@ -194,6 +196,7 @@ export abstract class BaseNode<T extends Metadata = Metadata> {
    * Properties can be safely modified as a deep clone of the properties are created.
    * @return {Record<string, any>} - The JSON representation of the object.
    */
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   toMutableJSON(): Record<string, any> {
     return structuredClone(this.toJSON());
   }
@@ -328,6 +331,7 @@ export class Document<T extends Metadata = Metadata> extends TextNode<T> {
   }
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export function jsonToNode(json: any, type?: ObjectType) {
   if (!json.type && !type) {
     throw new Error("Node type not found");
diff --git a/packages/core/src/schema/type.ts b/packages/core/src/schema/type.ts
index abe3862062cdf475c9619671683fbba5ebe55911..41867bcd76ce8060a382556da0089b790ea79d4a 100644
--- a/packages/core/src/schema/type.ts
+++ b/packages/core/src/schema/type.ts
@@ -8,10 +8,12 @@ interface TransformComponentSignature {
   ): Promise<BaseNode[]>;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
 export interface TransformComponent extends TransformComponentSignature {
   id: string;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging
 export class TransformComponent {
   constructor(transformFn: TransformComponentSignature) {
     Object.defineProperties(
diff --git a/packages/core/src/schema/type/base-output-parser.ts b/packages/core/src/schema/type/base-output-parser.ts
index dbbc5b2dbd38d76107c4cb07c9cdb69d6cfd4a12..f349ba11b55575fb67850d76c38aec94ae8c0c28 100644
--- a/packages/core/src/schema/type/base-output-parser.ts
+++ b/packages/core/src/schema/type/base-output-parser.ts
@@ -1,6 +1,7 @@
 /**
  * An OutputParser is used to extract structured data from the raw output of the LLM.
  */
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export interface BaseOutputParser<T = any> {
   parse(output: string): T;
 
diff --git a/packages/core/src/schema/utils/chunk-size-check.ts b/packages/core/src/schema/utils/chunk-size-check.ts
index 8151cac47fcca91b5e8dd492c4f7c4ec3257e48b..fd7193985732f3ecc7100f959ffa38b7448110ea 100644
--- a/packages/core/src/schema/utils/chunk-size-check.ts
+++ b/packages/core/src/schema/utils/chunk-size-check.ts
@@ -5,7 +5,7 @@ const emitOnce = false;
 
 export function chunkSizeCheck<
   This extends { id_: string },
-  Args extends any[],
+  Args extends [],
   Return,
 >(
   contentGetter: (this: This, ...args: Args) => string,
diff --git a/packages/core/src/tools/function-tool.ts b/packages/core/src/tools/function-tool.ts
index 25fbd452c7e2437c614ff0bc43abcd1b7b8d963f..53010641dd80368e2288baab9d132eb0654b54f0 100644
--- a/packages/core/src/tools/function-tool.ts
+++ b/packages/core/src/tools/function-tool.ts
@@ -14,6 +14,7 @@ export class FunctionTool<T, R extends JSONValue | Promise<JSONValue>>
   #fn: (input: T) => R;
   #metadata: ToolMetadata<JSONSchemaType<T>>;
   // todo: for the future, we can use zod to validate the input parameters
+  // eslint-disable-next-line no-unused-private-class-members
   #zodType: z.ZodType<T> | null = null;
   constructor(
     fn: (input: T) => R,
@@ -37,6 +38,7 @@ export class FunctionTool<T, R extends JSONValue | Promise<JSONValue>>
       parameters: R;
     },
   ): FunctionTool<T, JSONValue>;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   static from(fn: any, schema: any): any {
     if (schema.parameter instanceof z.ZodSchema) {
       const jsonSchema = zodToJsonSchema(schema.parameter);
diff --git a/packages/core/src/utils/object-entries.ts b/packages/core/src/utils/object-entries.ts
index 18fe9796cffe9c1334cf5e8daab92e9c0501bed2..36d44434ec44d13a2cd40618554c0f311664f451 100644
--- a/packages/core/src/utils/object-entries.ts
+++ b/packages/core/src/utils/object-entries.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 type ObjectEntries<T extends Record<string, any>> = {
   [K in keyof T]: [K, T[K]];
 }[keyof T][];
@@ -5,6 +6,7 @@ type ObjectEntries<T extends Record<string, any>> = {
 /**
  * Type safe version of `Object.entries`
  */
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export function objectEntries<T extends Record<string, any>>(
   obj: T,
 ): ObjectEntries<{
diff --git a/packages/core/src/vector-store/index.ts b/packages/core/src/vector-store/index.ts
index bc8b58bf7ac13c0b91c3307c399323c72b4146a7..41542521db48cd47f8922cc4af93692eefe1838b 100644
--- a/packages/core/src/vector-store/index.ts
+++ b/packages/core/src/vector-store/index.ts
@@ -2,6 +2,7 @@
  * should compatible with npm:pg and npm:postgres
  */
 export interface IsomorphicDB {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   query: (sql: string, params?: any[]) => Promise<any[]>;
   // begin will wrap the multiple queries in a transaction
   begin: <T>(fn: (query: IsomorphicDB["query"]) => Promise<T>) => Promise<T>;
diff --git a/packages/core/src/workflow/context.ts b/packages/core/src/workflow/context.ts
index d707c5f0407c22ce497cced0abb3d53f0e6c4c61..6e70757a5b05e17c3e9a7156cf2387b5c0f65f89 100644
--- a/packages/core/src/workflow/context.ts
+++ b/packages/core/src/workflow/context.ts
@@ -5,6 +5,7 @@ export class Context {
   #workflow: Workflow;
   #queues: Map<StepFunction, WorkflowEvent[]> = new Map();
   #eventBuffer: Map<EventTypes, WorkflowEvent[]> = new Map();
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   #globals: Map<string, any> = new Map();
   #streamingQueue: WorkflowEvent[] = [];
   running: boolean = true;
@@ -15,10 +16,12 @@ export class Context {
     this.#verbose = params.verbose ?? false;
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   set(key: string, value: any): void {
     this.#globals.set(key, value);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   get(key: string, defaultValue?: any): any {
     if (this.#globals.has(key)) {
       return this.#globals.get(key);
diff --git a/packages/core/src/workflow/events.ts b/packages/core/src/workflow/events.ts
index 64f2975d3d8f12d22b414fa6d5b48e5f39a94675..2cff6ccd1f9330bf529d2d0344b62535f757e2cc 100644
--- a/packages/core/src/workflow/events.ts
+++ b/packages/core/src/workflow/events.ts
@@ -1,3 +1,4 @@
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export class WorkflowEvent<T extends Record<string, any> = any> {
   data: T;
 
@@ -10,6 +11,7 @@ export class WorkflowEvent<T extends Record<string, any> = any> {
   }
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export type EventTypes<T extends Record<string, any> = any> = new (
   data: T,
 ) => WorkflowEvent<T>;
diff --git a/packages/core/src/workflow/workflow.ts b/packages/core/src/workflow/workflow.ts
index 2cd99f309bfef6d7cc69a18cd5090aeee6f32cef..de623a8b0a02cfaa03630778687d740effb59b97 100644
--- a/packages/core/src/workflow/workflow.ts
+++ b/packages/core/src/workflow/workflow.ts
@@ -15,6 +15,7 @@ type EventTypeParam = EventTypes | EventTypes[];
 
 export class Workflow {
   #steps: Map<
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     StepFunction<any>,
     { inputs: EventTypes[]; outputs: EventTypes[] | undefined }
   > = new Map();
@@ -49,10 +50,12 @@ export class Workflow {
     this.#steps.set(method, { inputs, outputs });
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   hasStep(step: StepFunction<any>): boolean {
     return this.#steps.has(step);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   #acceptsEvent(step: StepFunction<any>, event: WorkflowEvent): boolean {
     const eventType = event.constructor as EventTypes;
     const stepInfo = this.#steps.get(step);
diff --git a/packages/core/tests/memory/chat-memory-buffer.test.ts b/packages/core/tests/memory/chat-memory-buffer.test.ts
index 0118d24ad898be47a94c725f424e2da3b1cc1949..35f4a50bbbdba1d041fb97a15fc07d098a02dd82 100644
--- a/packages/core/tests/memory/chat-memory-buffer.test.ts
+++ b/packages/core/tests/memory/chat-memory-buffer.test.ts
@@ -6,6 +6,7 @@ import { beforeEach, describe, expect, test } from "vitest";
 describe("ChatMemoryBuffer", () => {
   beforeEach(() => {
     // Mock the Settings.llm
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     (Settings.llm as any) = {
       metadata: {
         contextWindow: 1000,
diff --git a/packages/core/tests/prompts.test.ts b/packages/core/tests/prompts.test.ts
index 9a599851c47688fcf9bb71572c31dd663fc126b0..d0a839f3a45014ba76e8282c4c49d1319fa0d063 100644
--- a/packages/core/tests/prompts.test.ts
+++ b/packages/core/tests/prompts.test.ts
@@ -59,7 +59,7 @@ JSON Data:` as const;
   test("PromptTemplate", () => {
     {
       new PromptTemplate({
-        // @ts-expect-error
+        // @ts-expect-error expected error
         template: "",
         templateVars: ["var1"],
       });
@@ -72,7 +72,7 @@ JSON Data:` as const;
     }
     {
       new PromptTemplate({
-        // @ts-expect-error
+        // @ts-expect-error expected error
         template: "{var1 }",
         templateVars: ["var1"],
       });
@@ -90,7 +90,7 @@ JSON Data:` as const;
       const template = "{var2}" as const;
       const templateVars = ["var1"] as const;
       new PromptTemplate({
-        // @ts-expect-error
+        // @ts-expect-error expected error
         template,
         templateVars,
       });
diff --git a/packages/core/tests/prompts/mixin.test.ts b/packages/core/tests/prompts/mixin.test.ts
index 5ace7bed0fddad8e25c81fdf67cd9dce35901246..e8046c6fc52889fd407a531a5f8187f91ac1f682 100644
--- a/packages/core/tests/prompts/mixin.test.ts
+++ b/packages/core/tests/prompts/mixin.test.ts
@@ -55,6 +55,7 @@ class MockObject1 extends PromptMixin {
     this.barPrompt = mockPrompt;
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   protected _getPrompts(): { [x: string]: any } {
     return {
       bar: this.barPrompt,
@@ -62,10 +63,12 @@ class MockObject1 extends PromptMixin {
     };
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   protected _getPromptModules(): { [x: string]: any } {
     return { mock_object_2: this.mockObject2 };
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   _updatePrompts(promptsDict: { [x: string]: any }): void {
     if ("bar" in promptsDict) {
       this.barPrompt = promptsDict["bar"];
diff --git a/packages/core/tests/workflow.test.ts b/packages/core/tests/workflow.test.ts
index 72bfa538e9fa81fae44fe5cfc3857ab1648b505a..bfa558214ff002fa7864c5b34d1e6c90b6bcdd3e 100644
--- a/packages/core/tests/workflow.test.ts
+++ b/packages/core/tests/workflow.test.ts
@@ -17,8 +17,11 @@ class AnalysisEvent extends WorkflowEvent<{ analysis: string }> {}
 
 describe("Workflow", () => {
   let mockLLM: Mocked<OpenAI>;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   let generateJoke: Mocked<any>;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   let critiqueJoke: Mocked<any>;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   let analyzeJoke: Mocked<any>;
   beforeEach(() => {
     mockLLM = new OpenAI() as Mocked<OpenAI>;
diff --git a/packages/env/package.json b/packages/env/package.json
index 0deccc93bdb23da4249b20b3128bcc581b6ad61e..2274ab5f07f311015c4415c4e5d3d7fa03491827 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -68,7 +68,7 @@
     "test": "vitest"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/readable-stream": "^4.0.15",
     "@xenova/transformers": "^2.17.2",
     "bunchee": "5.5.1",
diff --git a/packages/env/src/fs/memfs/index.js b/packages/env/src/fs/memfs/index.js
index 53b84dfca1daa461e377331abb249b123ab13838..6f8221faa45610e59868100a9c08a167e425cdf5 100644
--- a/packages/env/src/fs/memfs/index.js
+++ b/packages/env/src/fs/memfs/index.js
@@ -2733,7 +2733,7 @@ var require_get_intrinsic = __commonJS({
       "%encodeURIComponent%": encodeURIComponent,
       "%Error%": Error,
       "%eval%": eval,
-      // eslint-disable-line no-eval
+
       "%EvalError%": EvalError,
       "%Float32Array%":
         typeof Float32Array === "undefined" ? undefined2 : Float32Array,
diff --git a/packages/env/src/index.browser.ts b/packages/env/src/index.browser.ts
index f9974547c45de84643502545926891696897af38..cd1747ffe0cd4098ae94b8342f065980fbe7671e 100644
--- a/packages/env/src/index.browser.ts
+++ b/packages/env/src/index.browser.ts
@@ -15,7 +15,7 @@ export {
 export { Tokenizers, tokenizers, type Tokenizer } from "./tokenizers/js.js";
 export { NotSupportCurrentRuntimeClass } from "./utils/shared.js";
 export * from "./web-polyfill.js";
-// @ts-expect-error
+// @ts-expect-error no type
 if (typeof window === "undefined") {
   console.warn(
     "You are not in a browser environment. This module is not supposed to be used in a non-browser environment.",
diff --git a/packages/env/src/multi-model/index.browser.ts b/packages/env/src/multi-model/index.browser.ts
index 0875f923e4245a056aae13ae03421aece5e5a498..7f46c04729ef4b24424eee7f5ab47f4ebb3881b0 100644
--- a/packages/env/src/multi-model/index.browser.ts
+++ b/packages/env/src/multi-model/index.browser.ts
@@ -8,7 +8,7 @@ export {
 export async function loadTransformers(onLoad: OnLoad) {
   if (getTransformers() === null) {
     setTransformers(
-      // @ts-expect-error
+      // @ts-expect-error no type
       await import("https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2"),
     );
   } else {
diff --git a/packages/env/src/multi-model/index.non-nodejs.ts b/packages/env/src/multi-model/index.non-nodejs.ts
index 817166e6118e627f34d61e2c9736259bd9b0c2ef..6dba2e0c7a94be3d5e17cd0402dccf8244a27aea 100644
--- a/packages/env/src/multi-model/index.non-nodejs.ts
+++ b/packages/env/src/multi-model/index.non-nodejs.ts
@@ -23,7 +23,7 @@ export async function loadTransformers(onLoad: OnLoad) {
       '"@xenova/transformers" is not officially supported in this environment, some features may not work as expected.',
     );
     setTransformers(
-      // @ts-expect-error
+      // @ts-expect-error no type
       await import("@xenova/transformers/dist/transformers"),
     );
   } else {
diff --git a/packages/env/src/url/index.ts b/packages/env/src/url/index.ts
index fb241a74f67ef9123dad715924e4c2b012c52c56..4223bed5a95b7f901a66901cccf5c60dba63fcb2 100644
--- a/packages/env/src/url/index.ts
+++ b/packages/env/src/url/index.ts
@@ -89,11 +89,13 @@
 export function fileURLToPath(href: string, separator: string): string {
   // conform with Node.js fileURLToPath
   if (!href.includes(":/")) {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     const error = new Error("Invalid URL") as any;
     error.code = "ERR_INVALID_URL";
     throw error;
   }
   if (!href.startsWith("file:")) {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     const error = new Error("The URL must be of scheme file") as any;
     error.code = "ERR_INVALID_URL_SCHEME";
     throw error;
@@ -111,6 +113,7 @@ export function fileURLToPath(href: string, separator: string): string {
       // is full path, e.g. file:///foo
       file = href.substring(8);
       if (file[1] !== ":") {
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
         const error = new Error("File URL path must be absolute") as any;
         error.code = "ERR_INVALID_FILE_URL_PATH";
         throw error;
@@ -120,6 +123,7 @@ export function fileURLToPath(href: string, separator: string): string {
       // conform with Node.js fileURLToPath
       file = href.substring(17); // trim leading slash
       if (file[1] !== ":") {
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
         const error = new Error("File URL path must be absolute") as any;
         error.code = "ERR_INVALID_FILE_URL_PATH";
         throw error;
@@ -134,6 +138,7 @@ export function fileURLToPath(href: string, separator: string): string {
       // conform with Node.js fileURLToPath
       file = href.substring(6);
       if (file[1] !== ":") {
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
         const error = new Error("File URL path must be absolute") as any;
         error.code = "ERR_INVALID_FILE_URL_PATH";
         throw error;
@@ -154,6 +159,7 @@ export function fileURLToPath(href: string, separator: string): string {
       if (!href.startsWith("file://localhost/")) {
         const error = new Error(
           'File URL host must be "localhost" or empty',
+          // eslint-disable-next-line @typescript-eslint/no-explicit-any
         ) as any;
         error.code = "ERR_INVALID_FILE_URL_HOST";
         throw error;
diff --git a/packages/env/src/utils/index.ts b/packages/env/src/utils/index.ts
index ed05a83df63f86a5b769442c215a95dfab8d59eb..638f91ebc47db85107a46468bc225cfb952b2cd8 100644
--- a/packages/env/src/utils/index.ts
+++ b/packages/env/src/utils/index.ts
@@ -34,11 +34,11 @@ export function getEnv(name: string): string | undefined {
     return INTERNAL_ENV[name];
   }
   if (typeof process === "undefined" || typeof process.env === "undefined") {
-    // @ts-expect-error
+    // @ts-expect-error Deno is not defined
     if (typeof Deno === "undefined") {
       throw new Error("Current environment is not supported");
     } else {
-      // @ts-expect-error
+      // @ts-expect-error Deno is not defined
       return Deno.env.get(name);
     }
   }
@@ -51,6 +51,7 @@ interface EventInit {
   composed?: boolean;
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 interface CustomEventInit<T = any> extends EventInit {
   detail?: T;
 }
@@ -60,6 +61,7 @@ export { AsyncLocalStorage } from "node:async_hooks";
 
 // Node.js 18 doesn't have CustomEvent by default
 // Refs: https://github.com/nodejs/node/issues/40678
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 class CustomEvent<T = any> extends Event {
   readonly #detail: T;
   get detail(): T {
@@ -79,6 +81,7 @@ class CustomEvent<T = any> extends Event {
 }
 
 const defaultCustomEvent: typeof CustomEvent =
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   (globalThis as any).CustomEvent || CustomEvent;
 
 export { defaultCustomEvent as CustomEvent };
diff --git a/packages/env/src/utils/index.web.ts b/packages/env/src/utils/index.web.ts
index 7d55f960f4f1aade901410138d4bfe8388dcaadc..8a3bcea4de28b9d06b177ac32dd9eecae27cca40 100644
--- a/packages/env/src/utils/index.web.ts
+++ b/packages/env/src/utils/index.web.ts
@@ -17,14 +17,17 @@ export function getEnv(name: string): string | undefined {
 // Wait for https://github.com/tc39/proposal-async-context
 export class AsyncLocalStorage<T> {
   #store: T = null!;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   static bind<Func extends (...args: any[]) => any>(fn: Func): Func {
     return fn;
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   static snapshot(): <R, TArgs extends any[]>(
     fn: (...args: TArgs) => R,
     ...args: TArgs
   ) => R {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     return (cb: any, ...args: any[]) => cb(...args);
   }
 
@@ -42,10 +45,12 @@ export class AsyncLocalStorage<T> {
   }
 }
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 const defaultCustomEvent = (globalThis as any).CustomEvent;
 
 export { defaultCustomEvent as CustomEvent };
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 const defaultProcess: NodeJS.Process = (globalThis as any).process || {};
 const processProxy = new Proxy(defaultProcess, {
   get(_target, prop) {
diff --git a/packages/env/src/utils/shared.ts b/packages/env/src/utils/shared.ts
index 2086507cc346eb071e82f256aeee80b6482f89ec..4ff08c0f9cffb1624fc73f43f2bd07bcb6624335 100644
--- a/packages/env/src/utils/shared.ts
+++ b/packages/env/src/utils/shared.ts
@@ -8,18 +8,19 @@ export class NotSupportCurrentRuntimeClass {
       constructor(...args: any[]) {
         super(runtime);
       }
-    } as any;
+    };
   }
 }
 
 // This is a workaround for the lack of globalThis in some environments
 // It's being used across multiple places inside the `env` package
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export const glo: any =
   typeof globalThis !== "undefined"
     ? globalThis
-    : // @ts-expect-error
+    : // @ts-expect-error globalThis is not defined
       typeof window !== "undefined"
-      ? // @ts-expect-error
+      ? // @ts-expect-error window is not defined
         window
       : typeof global !== "undefined"
         ? global
diff --git a/packages/experimental/package.json b/packages/experimental/package.json
index 974ba4cd39e5fe109ed4947dd862a825efc6e3e2..576de7af9b4f70f7d74d5d59832a51c455581736 100644
--- a/packages/experimental/package.json
+++ b/packages/experimental/package.json
@@ -64,7 +64,7 @@
   },
   "dependencies": {
     "@types/lodash": "^4.17.7",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "jsonpath": "^1.1.1",
     "llamaindex": "workspace:*",
     "lodash": "^4.17.21"
diff --git a/packages/llamaindex/e2e/examples/cloudflare-worker-agent/worker-configuration.d.ts b/packages/llamaindex/e2e/examples/cloudflare-worker-agent/worker-configuration.d.ts
index a3f43d2a431f393c59cee409f8cfbafa3dd413b0..bc47c3caffec108b3628ae4f6086d0668b672226 100644
--- a/packages/llamaindex/e2e/examples/cloudflare-worker-agent/worker-configuration.d.ts
+++ b/packages/llamaindex/e2e/examples/cloudflare-worker-agent/worker-configuration.d.ts
@@ -1,3 +1,4 @@
 // Generated by Wrangler
 // After adding bindings to `wrangler.toml`, regenerate this interface via `npm run cf-typegen`
+// eslint-disable-next-line @typescript-eslint/no-empty-object-type
 interface Env {}
diff --git a/packages/llamaindex/e2e/examples/nextjs-agent/.eslintrc.json b/packages/llamaindex/e2e/examples/nextjs-agent/.eslintrc.json
deleted file mode 100644
index e2081ec106797690a611483ef0ae39531483e11a..0000000000000000000000000000000000000000
--- a/packages/llamaindex/e2e/examples/nextjs-agent/.eslintrc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "root": false,
-  "extends": "next/core-web-vitals"
-}
diff --git a/packages/llamaindex/e2e/examples/nextjs-agent/package.json b/packages/llamaindex/e2e/examples/nextjs-agent/package.json
index f681211c5576c22ea617e5682cee3b6f5181ab2a..453a7f3c8e88fef7feb9d78726631fb7a39f2064 100644
--- a/packages/llamaindex/e2e/examples/nextjs-agent/package.json
+++ b/packages/llamaindex/e2e/examples/nextjs-agent/package.json
@@ -5,8 +5,7 @@
   "scripts": {
     "dev": "next dev",
     "build": "next build",
-    "start": "next start",
-    "lint": "next lint"
+    "start": "next start"
   },
   "dependencies": {
     "ai": "^3.3.21",
@@ -16,11 +15,11 @@
     "react-dom": "18.3.1"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/react": "^18.3.12",
     "@types/react-dom": "^18.3.1",
-    "eslint": "8.57.0",
-    "eslint-config-next": "14.2.11",
+    "eslint": "9.13.0",
+    "eslint-config-next": "15.0.2",
     "postcss": "^8.4.41",
     "tailwindcss": "^3.4.10",
     "typescript": "^5.6.2"
diff --git a/packages/llamaindex/e2e/examples/nextjs-edge-runtime/package.json b/packages/llamaindex/e2e/examples/nextjs-edge-runtime/package.json
index 146c293897398bf0fdafc58be0696040fac7ae61..947bbb2505c5432064805b88f4b14f3cf325dd6a 100644
--- a/packages/llamaindex/e2e/examples/nextjs-edge-runtime/package.json
+++ b/packages/llamaindex/e2e/examples/nextjs-edge-runtime/package.json
@@ -14,7 +14,7 @@
     "react-dom": "^18.3.1"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/react": "^18.3.12",
     "@types/react-dom": "^18.3.1",
     "typescript": "^5.6.2"
diff --git a/packages/llamaindex/e2e/examples/nextjs-edge-runtime/src/utils/llm.ts b/packages/llamaindex/e2e/examples/nextjs-edge-runtime/src/utils/llm.ts
index 375cd15b3138ab73924c4f4e7b5a53b225a45d04..07eca48173782c666f09dd27c6f25ff413a591e3 100644
--- a/packages/llamaindex/e2e/examples/nextjs-edge-runtime/src/utils/llm.ts
+++ b/packages/llamaindex/e2e/examples/nextjs-edge-runtime/src/utils/llm.ts
@@ -1,7 +1,7 @@
 // test runtime
 import "llamaindex";
 
-// @ts-expect-error
+// @ts-expect-error EdgeRuntime is not defined
 if (typeof EdgeRuntime !== "string") {
   throw new Error("Expected run in EdgeRuntime");
 }
diff --git a/packages/llamaindex/e2e/examples/nextjs-node-runtime/.eslintrc.json b/packages/llamaindex/e2e/examples/nextjs-node-runtime/.eslintrc.json
deleted file mode 100644
index e2081ec106797690a611483ef0ae39531483e11a..0000000000000000000000000000000000000000
--- a/packages/llamaindex/e2e/examples/nextjs-node-runtime/.eslintrc.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-  "root": false,
-  "extends": "next/core-web-vitals"
-}
diff --git a/packages/llamaindex/e2e/examples/nextjs-node-runtime/package.json b/packages/llamaindex/e2e/examples/nextjs-node-runtime/package.json
index 514962526eded443a402fa706d059801450670c7..96e84f2d3c49c3230627ad0bba7e363a48f6133f 100644
--- a/packages/llamaindex/e2e/examples/nextjs-node-runtime/package.json
+++ b/packages/llamaindex/e2e/examples/nextjs-node-runtime/package.json
@@ -5,8 +5,7 @@
   "scripts": {
     "dev": "next dev",
     "build": "next build",
-    "start": "next start",
-    "lint": "next lint"
+    "start": "next start"
   },
   "dependencies": {
     "llamaindex": "workspace:*",
@@ -15,11 +14,11 @@
     "react-dom": "18.3.1"
   },
   "devDependencies": {
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/react": "^18.3.12",
     "@types/react-dom": "^18.3.1",
-    "eslint": "8.57.0",
-    "eslint-config-next": "14.2.11",
+    "eslint": "9.13.0",
+    "eslint-config-next": "15.0.2",
     "postcss": "^8.4.41",
     "tailwindcss": "^3.4.10",
     "typescript": "^5.6.2"
diff --git a/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/actions/openai.ts b/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
index da82368a2cf39bcab3d2757f46567efc0b99a2d7..a5643bb928316a51d74e44645cc1ef3a1fd2fe7a 100644
--- a/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
+++ b/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/actions/openai.ts
@@ -10,7 +10,6 @@ import {
 import { HuggingFaceEmbedding } from "llamaindex/embeddings/HuggingFaceEmbedding";
 
 Settings.llm = new OpenAI({
-  // eslint-disable-next-line turbo/no-undeclared-env-vars
   apiKey: process.env.NEXT_PUBLIC_OPENAI_KEY ?? "FAKE_KEY_TO_PASS_TESTS",
   model: "gpt-4o",
 });
diff --git a/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/utils/tokenizer.ts b/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/utils/tokenizer.ts
index 8c67f905a748f2fa62f8da20e343d42d9066a207..414b76a3f51209b91f7cdac36e124694841996e4 100644
--- a/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/utils/tokenizer.ts
+++ b/packages/llamaindex/e2e/examples/nextjs-node-runtime/src/utils/tokenizer.ts
@@ -2,7 +2,7 @@
 import { Tokenizers, tokenizers } from "@llamaindex/env";
 import "llamaindex";
 
-// @ts-expect-error
+// @ts-expect-error EdgeRuntime is not defined in type
 if (typeof EdgeRuntime === "string") {
   throw new Error("Expected to not run in EdgeRuntime");
 }
diff --git a/packages/llamaindex/e2e/fixtures/llm/openai.ts b/packages/llamaindex/e2e/fixtures/llm/openai.ts
index 6e21c879483bf5312916c79376c908cbdb4b66b8..7093a35091b8b4f07eaafae19695bdc4585f9993 100644
--- a/packages/llamaindex/e2e/fixtures/llm/openai.ts
+++ b/packages/llamaindex/e2e/fixtures/llm/openai.ts
@@ -126,6 +126,7 @@ export class OpenAIEmbedding
   embedBatchSize = 512;
 
   constructor() {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     super(async (nodes: BaseNode[], _options?: any): Promise<BaseNode[]> => {
       nodes.forEach((node) => (node.embedding = [0]));
       return nodes;
diff --git a/packages/llamaindex/e2e/node/embedding/clip.e2e.ts b/packages/llamaindex/e2e/node/embedding/clip.e2e.ts
index 975793fc561a9d1512c7355c3598ef2a00a06dda..d0cf2e7072a07e2a85dd9a84ac6886e6e85f07b4 100644
--- a/packages/llamaindex/e2e/node/embedding/clip.e2e.ts
+++ b/packages/llamaindex/e2e/node/embedding/clip.e2e.ts
@@ -4,8 +4,10 @@ import { ClipEmbedding, ImageNode, Settings } from "llamaindex";
 import assert from "node:assert";
 import { type Mock, test } from "node:test";
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 let callback: Mock<(event: any) => void>;
 test.before(() => {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   callback = test.mock.fn((event: any) => {
     const { transformer } = event.detail as LoadTransformerEvent;
     assert.ok(transformer);
diff --git a/packages/llamaindex/e2e/node/utils.ts b/packages/llamaindex/e2e/node/utils.ts
index 29bcc6ab98b66bc56d9f662edd9fe6e9791deacf..590424bdfe8ffe54a4f061967326a9f6e9871d95 100644
--- a/packages/llamaindex/e2e/node/utils.ts
+++ b/packages/llamaindex/e2e/node/utils.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import {
   Settings,
   type LLMEndEvent,
@@ -101,7 +100,7 @@ export async function mockLLMEvent(
     Settings.callbackManager.off("llm-stream", captureLLMStream);
     Settings.callbackManager.off("llm-end", captureLLMEnd);
     Settings.callbackManager.off("llm-start", captureLLMStart);
-    // eslint-disable-next-line turbo/no-undeclared-env-vars
+
     if (process.env.UPDATE_SNAPSHOT === "1") {
       const data = JSON.stringify(newLLMCompleteMockStorage, null, 2);
       await writeFile(
diff --git a/packages/llamaindex/e2e/node/vector-store/pg-vector-store.e2e.ts b/packages/llamaindex/e2e/node/vector-store/pg-vector-store.e2e.ts
index 4baecefe607ca86239b26a575cc7b226e19c8165..b1725a1a8fed0617fb9aea2cb634e2e77fcadb86 100644
--- a/packages/llamaindex/e2e/node/vector-store/pg-vector-store.e2e.ts
+++ b/packages/llamaindex/e2e/node/vector-store/pg-vector-store.e2e.ts
@@ -1,4 +1,3 @@
-/* eslint-disable turbo/no-undeclared-env-vars */
 import { config } from "dotenv";
 import { Document, VectorStoreQueryMode } from "llamaindex";
 import { PGVectorStore } from "llamaindex/vector-store/PGVectorStore";
@@ -111,6 +110,7 @@ await test("no setup", async (t) => {
   assert.ok(PGVectorStore.prototype.checkSchema);
   // @ts-expect-error private method
   const Mock = class extends PGVectorStore {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     private override async checkSchema(): Promise<any> {
       throw new Error("should not be called");
     }
diff --git a/packages/llamaindex/e2e/package.json b/packages/llamaindex/e2e/package.json
index 473c3f2d086ee636c6e847b3a9f14000afb24bc1..509cc8ab1f24d48323e0d9f084de176882a0ce00 100644
--- a/packages/llamaindex/e2e/package.json
+++ b/packages/llamaindex/e2e/package.json
@@ -10,7 +10,7 @@
   },
   "devDependencies": {
     "@faker-js/faker": "^9.0.1",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "consola": "^3.2.3",
     "dotenv": "^16.4.5",
     "llamaindex": "workspace:*",
diff --git a/packages/llamaindex/package.json b/packages/llamaindex/package.json
index 17f7aec44b2b4ab568ae9e303970607cfe452e8e..3ba6cf6822783746e37d7e7d7f2c8790461c94df 100644
--- a/packages/llamaindex/package.json
+++ b/packages/llamaindex/package.json
@@ -47,7 +47,7 @@
     "@pinecone-database/pinecone": "^3.0.2",
     "@qdrant/js-client-rest": "^1.11.0",
     "@types/lodash": "^4.17.7",
-    "@types/node": "^22.5.1",
+    "@types/node": "^22.8.4",
     "@types/pg": "^8.11.8",
     "@upstash/vector": "^1.1.5",
     "@zilliz/milvus2-sdk-node": "^2.4.6",
diff --git a/packages/llamaindex/src/OutputParser.ts b/packages/llamaindex/src/OutputParser.ts
index da4a2e145e82809524c0f75cf21ca07a70323d1c..bdd990c81fc98335e1606fb08570b28fc1d92ff9 100644
--- a/packages/llamaindex/src/OutputParser.ts
+++ b/packages/llamaindex/src/OutputParser.ts
@@ -16,7 +16,6 @@ class OutputParserError extends Error {
     message: string,
     options: { cause?: Error; output?: string } = {},
   ) {
-    // @ts-ignore
     super(message, options); // https://github.com/tc39/proposal-error-cause
     this.name = "OutputParserError";
 
diff --git a/packages/llamaindex/src/agent/react.ts b/packages/llamaindex/src/agent/react.ts
index 7cc01f2627f0c9bebce8df0484ad20220ff4374f..abfa1d24c602980ccdd1ff48c789f09bb21e2d93 100644
--- a/packages/llamaindex/src/agent/react.ts
+++ b/packages/llamaindex/src/agent/react.ts
@@ -144,7 +144,7 @@ const reACTOutputParser: ReACTOutputParser = async (
     const reader = peakStream.getReader();
     let type: "action" | "thought" | "answer" | null = null;
     let content = "";
-    do {
+    for (;;) {
       const { done, value } = await reader.read();
       if (done) {
         break;
@@ -155,7 +155,7 @@ const reACTOutputParser: ReACTOutputParser = async (
       } else if (content.includes("Answer:")) {
         type = "answer";
       }
-    } while (true);
+    }
     if (type === null) {
       // `Thought:` is always present at the beginning of the output.
       type = "thought";
@@ -362,7 +362,7 @@ export class ReActAgent extends AgentRunner<LLM, ReACTAgentStore> {
       step.context.store.reasons,
     );
     const response = await llm.chat({
-      // @ts-expect-error
+      // @ts-expect-error boolean
       stream,
       messages,
     });
diff --git a/packages/llamaindex/src/cloud/LLamaCloudFileService.ts b/packages/llamaindex/src/cloud/LLamaCloudFileService.ts
index 55fa9657df5175620b9f36de0d7e4f95b70474d8..932bd06e5b2351289f38c20e44100ac3031078ed 100644
--- a/packages/llamaindex/src/cloud/LLamaCloudFileService.ts
+++ b/packages/llamaindex/src/cloud/LLamaCloudFileService.ts
@@ -37,6 +37,7 @@ export class LLamaCloudFileService {
     projectId: string,
     pipelineId: string,
     uploadFile: File | Blob,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     customMetadata: Record<string, any> = {},
   ) {
     initService();
diff --git a/packages/llamaindex/src/embeddings/JinaAIEmbedding.ts b/packages/llamaindex/src/embeddings/JinaAIEmbedding.ts
index 27f5d7407bebf6f4a3a4f76034769fcda45f67f6..9f7f3d705ab96ad73200ab219496a942d0ccd42a 100644
--- a/packages/llamaindex/src/embeddings/JinaAIEmbedding.ts
+++ b/packages/llamaindex/src/embeddings/JinaAIEmbedding.ts
@@ -88,7 +88,9 @@ export class JinaAIEmbedding extends MultiModalEmbedding {
     this.apiKey = apiKey;
     this.model = init?.model ?? "jina-embeddings-v3";
     this.baseURL = init?.baseURL ?? "https://api.jina.ai/v1/embeddings";
-    init?.embedBatchSize && (this.embedBatchSize = init?.embedBatchSize);
+    if (init?.embedBatchSize) {
+      this.embedBatchSize = init.embedBatchSize;
+    }
     this.task = init?.task;
     this.encodingType = init?.encodingType;
     this.dimensions = init?.dimensions;
diff --git a/packages/llamaindex/src/embeddings/MixedbreadAIEmbeddings.ts b/packages/llamaindex/src/embeddings/MixedbreadAIEmbeddings.ts
index fcf30db837835e892d6bd94d1829dbb3cfc0123f..eeea8d25064ac6bbda9b304636d8475d54edbca3 100644
--- a/packages/llamaindex/src/embeddings/MixedbreadAIEmbeddings.ts
+++ b/packages/llamaindex/src/embeddings/MixedbreadAIEmbeddings.ts
@@ -120,7 +120,7 @@ export class MixedbreadAIEmbeddings extends BaseEmbedding {
       timeoutInSeconds: params?.timeoutInSeconds,
       maxRetries: params?.maxRetries ?? 3,
       // Support for this already exists in the python sdk and will be added to the js sdk soon
-      // @ts-ignore
+      // @ts-expect-error fixme
       additionalHeaders: {
         "user-agent": "@mixedbread-ai/llamaindex-ts-sdk",
       },
diff --git a/packages/llamaindex/src/engines/query/SubQuestionQueryEngine.ts b/packages/llamaindex/src/engines/query/SubQuestionQueryEngine.ts
index 5a67948c38b0fd50437aa5975e3d1e3a4ca12d0b..2c52090362f9929457c16f5b79bbdc8aa587c8bd 100644
--- a/packages/llamaindex/src/engines/query/SubQuestionQueryEngine.ts
+++ b/packages/llamaindex/src/engines/query/SubQuestionQueryEngine.ts
@@ -81,6 +81,7 @@ export class SubQuestionQueryEngine extends BaseQueryEngine {
 
   protected _updatePrompts() {}
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   protected _getPromptModules(): Record<string, any> {
     return {
       questionGen: this.questionGen,
diff --git a/packages/llamaindex/src/evaluation/Faithfulness.ts b/packages/llamaindex/src/evaluation/Faithfulness.ts
index 590e2e63d089af66320fd30425301af8f1e5701c..359b00209d1a82dc0a921952c0a74ffddf485408 100644
--- a/packages/llamaindex/src/evaluation/Faithfulness.ts
+++ b/packages/llamaindex/src/evaluation/Faithfulness.ts
@@ -47,6 +47,7 @@ export class FaithfulnessEvaluator
     return {};
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   protected _getPrompts(): { [x: string]: any } {
     return {
       faithfulnessSystemPrompt: this.evalTemplate,
diff --git a/packages/llamaindex/src/evaluation/types.ts b/packages/llamaindex/src/evaluation/types.ts
index 66b7dc2f198061be7f1f7a5cf95a9b2257b5cf29..2803bf2c63520ed6d4e8e2a0bf5c8632a3e36c7e 100644
--- a/packages/llamaindex/src/evaluation/types.ts
+++ b/packages/llamaindex/src/evaluation/types.ts
@@ -8,6 +8,7 @@ export type EvaluationResult = {
   score: number;
   scoreSecondary?: number;
   scoreSecondaryType?: string;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   meta?: any;
   passing: boolean;
   feedback: string;
diff --git a/packages/llamaindex/src/extractors/MetadataExtractors.ts b/packages/llamaindex/src/extractors/MetadataExtractors.ts
index 2c75d54295c025a6ae3ab3578cd8ec5a020451dc..7e99eb2bfb6828eafc14ed68ac9cd893876db7a8 100644
--- a/packages/llamaindex/src/extractors/MetadataExtractors.ts
+++ b/packages/llamaindex/src/extractors/MetadataExtractors.ts
@@ -79,7 +79,9 @@ export class KeywordExtractor extends BaseExtractor {
    * @param node Node to extract keywords from.
    * @returns Keywords extracted from the node.
    */
-  async extractKeywordsFromNodes(node: BaseNode): Promise<ExtractKeyword | {}> {
+  async extractKeywordsFromNodes(
+    node: BaseNode,
+  ): Promise<ExtractKeyword | object> {
     if (this.isTextNodeOnly && !(node instanceof TextNode)) {
       return {};
     }
@@ -101,7 +103,9 @@ export class KeywordExtractor extends BaseExtractor {
    * @param nodes Nodes to extract keywords from.
    * @returns Keywords extracted from the nodes.
    */
-  async extract(nodes: BaseNode[]): Promise<Array<ExtractKeyword> | Array<{}>> {
+  async extract(
+    nodes: BaseNode[],
+  ): Promise<Array<ExtractKeyword> | Array<object>> {
     const results = await Promise.all(
       nodes.map((node) => this.extractKeywordsFromNodes(node)),
     );
@@ -346,7 +350,7 @@ export class QuestionsAnsweredExtractor extends BaseExtractor {
    */
   async extractQuestionsFromNode(
     node: BaseNode,
-  ): Promise<ExtractQuestion | {}> {
+  ): Promise<ExtractQuestion | object> {
     if (this.isTextNodeOnly && !(node instanceof TextNode)) {
       return {};
     }
@@ -374,7 +378,7 @@ export class QuestionsAnsweredExtractor extends BaseExtractor {
    */
   async extract(
     nodes: BaseNode[],
-  ): Promise<Array<ExtractQuestion> | Array<{}>> {
+  ): Promise<Array<ExtractQuestion> | Array<object>> {
     const results = await Promise.all(
       nodes.map((node) => this.extractQuestionsFromNode(node)),
     );
@@ -474,7 +478,9 @@ export class SummaryExtractor extends BaseExtractor {
    * @param {BaseNode[]} nodes Nodes to extract summaries from.
    * @returns {Promise<Array<ExtractSummary> | Arry<{}>>} Summaries extracted from the nodes.
    */
-  async extract(nodes: BaseNode[]): Promise<Array<ExtractSummary> | Array<{}>> {
+  async extract(
+    nodes: BaseNode[],
+  ): Promise<Array<ExtractSummary> | Array<object>> {
     if (!nodes.every((n) => n instanceof TextNode))
       throw new Error("Only `TextNode` is allowed for `Summary` extractor");
 
@@ -482,17 +488,17 @@ export class SummaryExtractor extends BaseExtractor {
       nodes.map((node) => this.generateNodeSummary(node)),
     );
 
-    const metadataList: any[] = nodes.map(() => ({}));
+    const metadataList: Record<string, unknown>[] = nodes.map(() => ({}));
 
     for (let i = 0; i < nodes.length; i++) {
       if (i > 0 && this.prevSummary && nodeSummaries[i - 1]) {
-        metadataList[i]["prevSectionSummary"] = nodeSummaries[i - 1];
+        metadataList[i]!["prevSectionSummary"] = nodeSummaries[i - 1];
       }
       if (i < nodes.length - 1 && this.nextSummary && nodeSummaries[i + 1]) {
-        metadataList[i]["nextSectionSummary"] = nodeSummaries[i + 1];
+        metadataList[i]!["nextSectionSummary"] = nodeSummaries[i + 1];
       }
       if (this.selfSummary && nodeSummaries[i]) {
-        metadataList[i]["sectionSummary"] = nodeSummaries[i];
+        metadataList[i]!["sectionSummary"] = nodeSummaries[i];
       }
     }
 
diff --git a/packages/llamaindex/src/extractors/types.ts b/packages/llamaindex/src/extractors/types.ts
index 8984109e08741458ebc73996773712a80ffce185..502f2755b811d8d27d462d3406b2494365261f2d 100644
--- a/packages/llamaindex/src/extractors/types.ts
+++ b/packages/llamaindex/src/extractors/types.ts
@@ -18,6 +18,7 @@ export abstract class BaseExtractor extends TransformComponent {
   numWorkers: number = 4;
 
   constructor() {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     super(async (nodes: BaseNode[], options?: any): Promise<BaseNode[]> => {
       return this.processNodes(
         nodes,
@@ -27,6 +28,7 @@ export abstract class BaseExtractor extends TransformComponent {
     });
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract extract(nodes: BaseNode[]): Promise<Record<string, any>[]>;
 
   /**
diff --git a/packages/llamaindex/src/index.edge.ts b/packages/llamaindex/src/index.edge.ts
index 935b27e5b398209fbe7f56cd01fe5a9a73b9c0bc..113d2dce049174cdedca0bc125fde1bed262915a 100644
--- a/packages/llamaindex/src/index.edge.ts
+++ b/packages/llamaindex/src/index.edge.ts
@@ -3,6 +3,7 @@ import { OpenAI } from "@llamaindex/openai";
 import { Settings } from "./Settings.js";
 
 try {
+  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
   Settings.llm;
 } catch {
   Settings.llm = new OpenAI();
diff --git a/packages/llamaindex/src/indices/BaseIndex.ts b/packages/llamaindex/src/indices/BaseIndex.ts
index 55d13246ffd56a9076de203beaa4f6d8134183da..6f591946a0f511ebfa46bce767ed7dbb4953774c 100644
--- a/packages/llamaindex/src/indices/BaseIndex.ts
+++ b/packages/llamaindex/src/indices/BaseIndex.ts
@@ -40,6 +40,7 @@ export abstract class BaseIndex<T> {
    * Create a new retriever from the index.
    * @param options
    */
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   abstract asRetriever(options?: any): BaseRetriever;
 
   /**
diff --git a/packages/llamaindex/src/indices/json-to-index-struct.ts b/packages/llamaindex/src/indices/json-to-index-struct.ts
index 6f9c871f0b2c016b0b26008d307683975ee055f3..e060a6554453c215b2c49897f1bcd7bc88a61630 100644
--- a/packages/llamaindex/src/indices/json-to-index-struct.ts
+++ b/packages/llamaindex/src/indices/json-to-index-struct.ts
@@ -41,6 +41,8 @@ export class IndexDict extends IndexStruct {
     delete this.nodesDict[nodeId];
   }
 }
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export function jsonToIndexStruct(json: any): IndexStruct {
   if (json.type === IndexStructType.LIST) {
     const indexList = new IndexList(json.indexId, json.summary);
diff --git a/packages/llamaindex/src/indices/keyword/index.ts b/packages/llamaindex/src/indices/keyword/index.ts
index 6f891fab4787245f7f2ba8628573acf0d1fdb844..08214529291c3f547e0c79cd395f7069e3612863 100644
--- a/packages/llamaindex/src/indices/keyword/index.ts
+++ b/packages/llamaindex/src/indices/keyword/index.ts
@@ -226,6 +226,7 @@ export class KeywordTableIndex extends BaseIndex<KeywordTable> {
     });
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   asRetriever(options?: any): BaseRetriever {
     const { mode = KeywordTableRetrieverMode.DEFAULT, ...otherOptions } =
       options ?? {};
diff --git a/packages/llamaindex/src/indices/summary/index.ts b/packages/llamaindex/src/indices/summary/index.ts
index 67aa78fc4a770a3b4a61aaf192be91f9fd955ccb..6e09c7ad9d30f6d9e49a91eabda375ff04a822fa 100644
--- a/packages/llamaindex/src/indices/summary/index.ts
+++ b/packages/llamaindex/src/indices/summary/index.ts
@@ -134,9 +134,9 @@ export class SummaryIndex extends BaseIndex<IndexList> {
       serviceContext?: ServiceContext | undefined;
     } = {},
   ): Promise<SummaryIndex> {
-    let { storageContext, serviceContext } = args;
+    let { storageContext } = args;
+    const serviceContext = args.serviceContext;
     storageContext = storageContext ?? (await storageContextFromDefaults({}));
-    serviceContext = serviceContext;
     const docStore = storageContext.docStore;
 
     await docStore.addDocuments(documents, true);
@@ -308,7 +308,6 @@ export class SummaryIndexLLMRetriever extends BaseRetriever {
   parseChoiceSelectAnswerFn: ChoiceSelectParserFunction;
   serviceContext?: ServiceContext | undefined;
 
-  // eslint-disable-next-line max-params
   constructor(
     index: SummaryIndex,
     choiceSelectPrompt?: ChoiceSelectPrompt,
diff --git a/packages/llamaindex/src/indices/vectorStore/index.ts b/packages/llamaindex/src/indices/vectorStore/index.ts
index 620a13b7732e1557a0ff868f3c264a4966fe81fa..74909a191f3399332ea70dd28de416ae56491be2 100644
--- a/packages/llamaindex/src/indices/vectorStore/index.ts
+++ b/packages/llamaindex/src/indices/vectorStore/index.ts
@@ -214,7 +214,6 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
       (args.vectorStores
         ? DocStoreStrategy.UPSERTS
         : DocStoreStrategy.DUPLICATES_ONLY);
-    args.serviceContext = args.serviceContext;
     const docStore = args.storageContext.docStore;
 
     if (args.logProgress) {
@@ -382,6 +381,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> {
 
 type TopKMap = { [P in ModalityType]: number };
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 type OmitIndex<T> = T extends { index: any } ? Omit<T, "index"> : never;
 
 export type VectorIndexRetrieverOptions = {
diff --git a/packages/llamaindex/src/ingestion/IngestionCache.ts b/packages/llamaindex/src/ingestion/IngestionCache.ts
index 4d6352f8fa40fc25c5e4cb468d2e88f62a206e42..0ab7da476b756026300f7d7870920ffd87fd9039 100644
--- a/packages/llamaindex/src/ingestion/IngestionCache.ts
+++ b/packages/llamaindex/src/ingestion/IngestionCache.ts
@@ -10,8 +10,9 @@ import { SimpleKVStore } from "../storage/kvStore/SimpleKVStore.js";
 import type { BaseKVStore } from "../storage/kvStore/types.js";
 
 const transformToJSON = (obj: TransformComponent) => {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const seen: any[] = [];
-
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const replacer = (key: string, value: any) => {
     if (value != null && typeof value == "object") {
       if (seen.indexOf(value) >= 0) {
@@ -67,6 +68,7 @@ export class IngestionCache {
     if (!json || !json[this.nodesKey] || !Array.isArray(json[this.nodesKey])) {
       return undefined;
     }
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     return json[this.nodesKey].map((doc: any) =>
       jsonToDoc(doc, jsonSerializer),
     );
diff --git a/packages/llamaindex/src/ingestion/IngestionPipeline.ts b/packages/llamaindex/src/ingestion/IngestionPipeline.ts
index 86f70eb9b3a5de75b228743a20aea12f1bc6366a..7f1039161966c60ec545d5649344aa9f858a537e 100644
--- a/packages/llamaindex/src/ingestion/IngestionPipeline.ts
+++ b/packages/llamaindex/src/ingestion/IngestionPipeline.ts
@@ -31,6 +31,7 @@ type TransformRunArgs = {
 export async function runTransformations(
   nodesToRun: BaseNode[],
   transformations: TransformComponent[],
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   transformOptions: any = {},
   { inPlace = true, cache, docStoreStrategy }: TransformRunArgs = {},
 ): Promise<BaseNode[]> {
@@ -112,6 +113,7 @@ export class IngestionPipeline {
     return inputNodes.flat();
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   async run(args: any = {}, transformOptions?: any): Promise<BaseNode[]> {
     args.cache = args.cache ?? this.cache;
     args.docStoreStrategy = args.docStoreStrategy ?? this._docStoreStrategy;
diff --git a/packages/llamaindex/src/llm/gemini/types.ts b/packages/llamaindex/src/llm/gemini/types.ts
index c74d563531fdd353cd651d0031d1ee3786ae0462..fa5c8395281dad65c5715b0556d0c4a646faf4e5 100644
--- a/packages/llamaindex/src/llm/gemini/types.ts
+++ b/packages/llamaindex/src/llm/gemini/types.ts
@@ -95,7 +95,7 @@ export type ChatContext = { message: Part[]; history: GeminiMessageContent[] };
 
 export type GeminiMessageRole = "user" | "model";
 
-export type GeminiAdditionalChatOptions = {};
+export type GeminiAdditionalChatOptions = object;
 
 export type GeminiChatParamsStreaming = LLMChatParamsStreaming<
   GeminiAdditionalChatOptions,
diff --git a/packages/llamaindex/src/llm/gemini/utils.ts b/packages/llamaindex/src/llm/gemini/utils.ts
index f064959f122f518ab1e24aa10635ffea68922c7f..1ca2b069ea836439505e64e29e4672bca3ef59d0 100644
--- a/packages/llamaindex/src/llm/gemini/utils.ts
+++ b/packages/llamaindex/src/llm/gemini/utils.ts
@@ -298,7 +298,7 @@ export function getFunctionCalls(
 ): FunctionCall[] | undefined {
   const functionCalls: FunctionCall[] = [];
   if (response.candidates?.[0]!.content?.parts) {
-    for (const part of response.candidates?.[0].content?.parts) {
+    for (const part of response.candidates[0].content.parts) {
       if (part.functionCall) {
         functionCalls.push(part.functionCall);
       }
diff --git a/packages/llamaindex/src/llm/mistral.ts b/packages/llamaindex/src/llm/mistral.ts
index fa60cd768a292fec2f6bb815a7f6f0d6d7937f90..17d78eca845ad43b4449f2d92d051bca76a52603 100644
--- a/packages/llamaindex/src/llm/mistral.ts
+++ b/packages/llamaindex/src/llm/mistral.ts
@@ -16,6 +16,7 @@ export const ALL_AVAILABLE_MISTRAL_MODELS = {
 
 export class MistralAISession {
   apiKey: string;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private client: any;
 
   constructor(init?: { apiKey?: string | undefined }) {
@@ -77,6 +78,7 @@ export class MistralAI extends BaseLLM {
     };
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private buildParams(messages: ChatMessage[]): any {
     return {
       model: this.model,
diff --git a/packages/llamaindex/src/next.ts b/packages/llamaindex/src/next.ts
index e72541648c3bb25362d2fc23410946ecf4e506f7..41b440a1fefcffc227de556078df25e10bb87e40 100644
--- a/packages/llamaindex/src/next.ts
+++ b/packages/llamaindex/src/next.ts
@@ -15,6 +15,7 @@
  *
  * @module
  */
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 export default function withLlamaIndex(config: any) {
   config.experimental = config.experimental ?? {};
   // needed for transformers, see https://huggingface.co/docs/transformers.js/en/tutorials/next#step-2-install-and-configure-transformersjs
@@ -24,6 +25,7 @@ export default function withLlamaIndex(config: any) {
     "@xenova/transformers",
   );
   const userWebpack = config.webpack;
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   config.webpack = function (webpackConfig: any, options: any) {
     if (userWebpack) {
       webpackConfig = userWebpack(webpackConfig);
diff --git a/packages/llamaindex/src/objects/base.ts b/packages/llamaindex/src/objects/base.ts
index 688346834a0bab9ae7515673d33c0faf4a6c9fca..0122d75429c38019ec345bcfb49f58b7af74e3c1 100644
--- a/packages/llamaindex/src/objects/base.ts
+++ b/packages/llamaindex/src/objects/base.ts
@@ -31,6 +31,7 @@ export class SimpleToolNodeMapping extends BaseObjectNodeMapping {
     }
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   objNodeMapping(): Record<any, any> {
     return this._tools;
   }
@@ -66,10 +67,12 @@ export class SimpleToolNodeMapping extends BaseObjectNodeMapping {
     return this._fromNode(node);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   static fromObjects(objs: any, ...args: any[]): BaseObjectNodeMapping {
     return new SimpleToolNodeMapping(objs);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   fromObjects<OT>(objs: any, ...args: any[]): BaseObjectNodeMapping {
     return new SimpleToolNodeMapping(objs);
   }
@@ -79,16 +82,19 @@ export class ObjectIndex {
   private _index: VectorStoreIndex;
   private _objectNodeMapping: BaseObjectNodeMapping;
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   private constructor(index: any, objectNodeMapping: BaseObjectNodeMapping) {
     this._index = index;
     this._objectNodeMapping = objectNodeMapping;
   }
 
   static async fromObjects(
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     objects: any,
     objectMapping: BaseObjectNodeMapping,
-    // TODO: fix any (bundling issue)
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     indexCls: any,
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     indexKwargs?: Record<string, any>,
   ): Promise<ObjectIndex> {
     if (objectMapping === null) {
@@ -102,6 +108,7 @@ export class ObjectIndex {
     return new ObjectIndex(index, objectMapping);
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   async insertObject(obj: any): Promise<void> {
     this._objectNodeMapping.addObj(obj);
     const node = this._objectNodeMapping.toNode(obj);
@@ -112,6 +119,7 @@ export class ObjectIndex {
     return this._objectNodeMapping.objNodeMapping();
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   async asRetriever(kwargs: any): Promise<ObjectRetriever<any>> {
     return new ObjectRetriever(
       this._index.asRetriever(kwargs),
@@ -119,6 +127,7 @@ export class ObjectIndex {
     );
   }
 
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   asNodeRetriever(kwargs: any): any {
     return this._index.asRetriever(kwargs);
   }
diff --git a/packages/llamaindex/src/postprocessors/rerankers/MixedbreadAIReranker.ts b/packages/llamaindex/src/postprocessors/rerankers/MixedbreadAIReranker.ts
index 007fbfada0f9a203d3ed684f290b6b7c595a2f19..efdcf3a7580140fef069a376e01d29f6136b8b9f 100644
--- a/packages/llamaindex/src/postprocessors/rerankers/MixedbreadAIReranker.ts
+++ b/packages/llamaindex/src/postprocessors/rerankers/MixedbreadAIReranker.ts
@@ -98,7 +98,7 @@ export class MixedbreadAIReranker implements BaseNodePostprocessor {
       maxRetries: params?.maxRetries ?? 3,
       timeoutInSeconds: params?.timeoutInSeconds,
       // Support for this already exists in the python sdk and will be added to the js sdk soon
-      // @ts-ignore
+      // @ts-expect-error fixme
       additionalHeaders: {
         "user-agent": "@mixedbread-ai/llamaindex-ts-sdk",
       },
diff --git a/packages/llamaindex/src/selectors/llmSelectors.ts b/packages/llamaindex/src/selectors/llmSelectors.ts
index 086a893e7e314a3beb508103004b18ae3ffc2d09..1020696f58e1db98f811860c0631c7f806a2aedf 100644
--- a/packages/llamaindex/src/selectors/llmSelectors.ts
+++ b/packages/llamaindex/src/selectors/llmSelectors.ts
@@ -34,7 +34,7 @@ function structuredOutputToSelectorResult(
   const answers = structuredOutput.parsedOutput;
 
   // adjust for zero indexing
-  const selections = answers.map((answer: any) => {
+  const selections = answers.map((answer) => {
     return { index: answer.choice - 1, reason: answer.reason };
   });
 
diff --git a/packages/llamaindex/src/storage/docStore/KVDocumentStore.ts b/packages/llamaindex/src/storage/docStore/KVDocumentStore.ts
index d302594d414e0fc9597780eacfc8409ddacce64f..3865c0bebca6da64525983b7c825a1aac6d2aef6 100644
--- a/packages/llamaindex/src/storage/docStore/KVDocumentStore.ts
+++ b/packages/llamaindex/src/storage/docStore/KVDocumentStore.ts
@@ -131,8 +131,6 @@ export class KVDocumentStore extends BaseDocumentStore {
 
     const refDocInfo = await this.kvstore.get(refDocId, this.refDocCollection);
     if (!_.isNil(refDocInfo)) {
-      !_.pull(refDocInfo.nodeIds, docId);
-
       if (refDocInfo.nodeIds.length > 0) {
         await this.kvstore.put(refDocId, refDocInfo, this.refDocCollection);
       }
diff --git a/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts b/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts
index 41ee129001a2b9dab3c05112e8427c6fa86ec611..d1fd477600db9b99ecfdb86879be8a16adfcc223 100644
--- a/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts
+++ b/packages/llamaindex/src/storage/docStore/SimpleDocumentStore.ts
@@ -9,6 +9,7 @@ import { SimpleKVStore } from "../kvStore/SimpleKVStore.js";
 import { BaseInMemoryKVStore } from "../kvStore/types.js";
 import { KVDocumentStore } from "./KVDocumentStore.js";
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 type SaveDict = Record<string, any>;
 
 export class SimpleDocumentStore extends KVDocumentStore {
diff --git a/packages/llamaindex/src/storage/docStore/types.ts b/packages/llamaindex/src/storage/docStore/types.ts
index b580d5e17484bd4ca1b20b2279969c34eefc4346..a97cb8cbd73a2fcf78c041d3e3505319b4dadb11 100644
--- a/packages/llamaindex/src/storage/docStore/types.ts
+++ b/packages/llamaindex/src/storage/docStore/types.ts
@@ -9,10 +9,12 @@ const defaultPersistPath = `${DEFAULT_PERSIST_DIR}/${DEFAULT_DOC_STORE_PERSIST_F
 
 export interface RefDocInfo {
   nodeIds: string[];
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   extraInfo: Record<string, any>;
 }
 
 export abstract class BaseDocumentStore {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   serializer: Serializer<any> = jsonSerializer;
 
   // Save/load
diff --git a/packages/llamaindex/src/storage/docStore/utils.ts b/packages/llamaindex/src/storage/docStore/utils.ts
index 68596a0b12f5b76b4f48d9b4e059bc59644c5a94..8d8ee3ec4449c371d190a4551711c7c79fa4326b 100644
--- a/packages/llamaindex/src/storage/docStore/utils.ts
+++ b/packages/llamaindex/src/storage/docStore/utils.ts
@@ -1,5 +1,6 @@
 import type { BaseNode } from "@llamaindex/core/schema";
 import { Document, ObjectType, TextNode } from "@llamaindex/core/schema";
+import type { StoredValue } from "../kvStore/types.js";
 
 const TYPE_KEY = "__type__";
 const DATA_KEY = "__data__";
@@ -32,7 +33,9 @@ type DocJson<Data> = {
   [DATA_KEY]: Data;
 };
 
-export function isValidDocJson(docJson: any): docJson is DocJson<unknown> {
+export function isValidDocJson(
+  docJson: StoredValue | null | undefined,
+): docJson is DocJson<unknown> {
   return (
     typeof docJson === "object" &&
     docJson !== null &&
@@ -56,7 +59,9 @@ export function jsonToDoc<Data>(
   serializer: Serializer<Data>,
 ): BaseNode {
   const docType = docDict[TYPE_KEY];
-  const dataDict = serializer.fromPersistence(docDict[DATA_KEY]) as any;
+  // fixme: zod type check this
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
+  const dataDict: any = serializer.fromPersistence(docDict[DATA_KEY]);
   let doc: BaseNode;
 
   if (docType === ObjectType.DOCUMENT) {
diff --git a/packages/llamaindex/src/storage/indexStore/KVIndexStore.ts b/packages/llamaindex/src/storage/indexStore/KVIndexStore.ts
index 38736333a3e0234844aa9b4b7a385f37b19cc407..39a4879c04965e02e8ae03ad74b4e4bf7e253a1b 100644
--- a/packages/llamaindex/src/storage/indexStore/KVIndexStore.ts
+++ b/packages/llamaindex/src/storage/indexStore/KVIndexStore.ts
@@ -42,9 +42,7 @@ export class KVIndexStore extends BaseIndexStore {
   }
 
   async getIndexStructs(): Promise<IndexStruct[]> {
-    const jsons = (await this._kvStore.getAll(this._collection)) as {
-      [key: string]: any;
-    };
+    const jsons = await this._kvStore.getAll(this._collection);
     return _.values(jsons).map((json) => jsonToIndexStruct(json));
   }
 }
diff --git a/packages/llamaindex/src/storage/kvStore/PostgresKVStore.ts b/packages/llamaindex/src/storage/kvStore/PostgresKVStore.ts
index ee96040b9f34e6fb79b6629a93b5aae58e36534c..48097158822426427e39c98eb3a23168fac03377 100644
--- a/packages/llamaindex/src/storage/kvStore/PostgresKVStore.ts
+++ b/packages/llamaindex/src/storage/kvStore/PostgresKVStore.ts
@@ -1,8 +1,8 @@
 import { DEFAULT_COLLECTION } from "@llamaindex/core/global";
 import type pg from "pg";
-import { BaseKVStore } from "./types.js";
+import { BaseKVStore, type StoredValue } from "./types.js";
 
-export type DataType = Record<string, Record<string, any>>;
+export type DataType = Record<string, Record<string, StoredValue>>;
 
 const DEFAULT_SCHEMA_NAME = "public";
 const DEFAULT_TABLE_NAME = "llamaindex_kv_store";
@@ -97,7 +97,7 @@ export class PostgresKVStore extends BaseKVStore {
 
   async put(
     key: string,
-    val: any,
+    val: StoredValue,
     collection: string = DEFAULT_COLLECTION,
   ): Promise<void> {
     const db = await this.getDb();
@@ -122,10 +122,7 @@ export class PostgresKVStore extends BaseKVStore {
     }
   }
 
-  async get(
-    key: string,
-    collection: string = DEFAULT_COLLECTION,
-  ): Promise<any> {
+  async get(key: string, collection: string = DEFAULT_COLLECTION) {
     const db = await this.getDb();
     try {
       await db.query("BEGIN");
diff --git a/packages/llamaindex/src/storage/kvStore/SimpleKVStore.ts b/packages/llamaindex/src/storage/kvStore/SimpleKVStore.ts
index 8332bf7e69d37d9c03cec220488cbfc4c06e5cd2..7d08692b4d623bbaabc0b0ab63c22e3db6fdddd8 100644
--- a/packages/llamaindex/src/storage/kvStore/SimpleKVStore.ts
+++ b/packages/llamaindex/src/storage/kvStore/SimpleKVStore.ts
@@ -1,9 +1,9 @@
 import { DEFAULT_COLLECTION } from "@llamaindex/core/global";
 import { fs, path } from "@llamaindex/env";
 import { exists } from "../FileSystem.js";
-import { BaseKVStore } from "./types.js";
+import { BaseKVStore, type StoredValue } from "./types.js";
 
-export type DataType = Record<string, Record<string, any>>;
+export type DataType = Record<string, Record<string, StoredValue>>;
 
 export class SimpleKVStore extends BaseKVStore {
   private persistPath: string | undefined;
@@ -14,7 +14,7 @@ export class SimpleKVStore extends BaseKVStore {
 
   async put(
     key: string,
-    val: any,
+    val: StoredValue,
     collection: string = DEFAULT_COLLECTION,
   ): Promise<void> {
     if (!(collection in this.data)) {
@@ -30,7 +30,7 @@ export class SimpleKVStore extends BaseKVStore {
   async get(
     key: string,
     collection: string = DEFAULT_COLLECTION,
-  ): Promise<any> {
+  ): Promise<StoredValue> {
     const collectionData = this.data[collection];
     if (collectionData == null) {
       return null;
@@ -38,11 +38,12 @@ export class SimpleKVStore extends BaseKVStore {
     if (!(key in collectionData)) {
       return null;
     }
-    return structuredClone(collectionData[key]); // Creating a shallow copy of the object
+    return structuredClone(collectionData[key]) as StoredValue; // Creating a shallow copy of the object
   }
 
-  async getAll(collection: string = DEFAULT_COLLECTION): Promise<DataType> {
-    return structuredClone(this.data[collection]!); // Creating a shallow copy of the object
+  async getAll(collection: string = DEFAULT_COLLECTION) {
+    // fixme: null value here
+    return structuredClone(this.data[collection])!; // Creating a shallow copy of the object
   }
 
   async delete(
diff --git a/packages/llamaindex/src/storage/kvStore/types.ts b/packages/llamaindex/src/storage/kvStore/types.ts
index c7a8b5137e76c32efab0027b91c89109877a1cee..e8c6900d602ae9e03a2c8a0959b782cea0f8a998 100644
--- a/packages/llamaindex/src/storage/kvStore/types.ts
+++ b/packages/llamaindex/src/storage/kvStore/types.ts
@@ -1,11 +1,13 @@
 const defaultCollection = "data";
 
-type StoredValue = Record<string, any> | null;
+// fixme: remove any
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+export type StoredValue = Record<string, any> | null;
 
 export abstract class BaseKVStore {
   abstract put(
     key: string,
-    val: Record<string, any>,
+    val: StoredValue,
     collection?: string,
   ): Promise<void>;
   abstract get(key: string, collection?: string): Promise<StoredValue>;
diff --git a/packages/llamaindex/src/tools/AzureDynamicSessionTool.node.ts b/packages/llamaindex/src/tools/AzureDynamicSessionTool.node.ts
index c83c362b5dcaa81cf8c2e28b3c44f912139d6d4a..7150f9f1f14e44df65928ddecba72b1eb903e9cd 100644
--- a/packages/llamaindex/src/tools/AzureDynamicSessionTool.node.ts
+++ b/packages/llamaindex/src/tools/AzureDynamicSessionTool.node.ts
@@ -112,7 +112,6 @@ let _userAgent = "";
  */
 async function getuserAgentSuffix(): Promise<string> {
   try {
-    //@ts-ignore
     const __filename = fileURLToPath(import.meta.url);
     const __dirname = path.dirname(__filename);
 
@@ -232,7 +231,7 @@ export class AzureDynamicSessionTool
         headers,
         body,
       });
-      const json: any = await response.json();
+      const json = await response.json();
       return json.value[0].properties as RemoteFileMetadata;
     } catch (error) {
       throw new Error(
@@ -302,7 +301,7 @@ export class AzureDynamicSessionTool
         method: "GET",
         headers,
       });
-      const json: any = await response.json();
+      const json = await response.json();
       const list = json.value.map(
         (x: { properties: RemoteFileMetadata }) => x.properties,
       );
diff --git a/packages/llamaindex/src/tools/ToolsFactory.ts b/packages/llamaindex/src/tools/ToolsFactory.ts
index 791ee84569120a1b9eca3730809b054e897d1ba5..8c5738052389f0eacf58a04ca7ae8ebb5670a484 100644
--- a/packages/llamaindex/src/tools/ToolsFactory.ts
+++ b/packages/llamaindex/src/tools/ToolsFactory.ts
@@ -4,6 +4,7 @@ import {
 } from "./AzureDynamicSessionTool.node.js";
 import { WikipediaTool, type WikipediaToolParams } from "./WikipediaTool.js";
 
+// eslint-disable-next-line @typescript-eslint/no-namespace
 export namespace ToolsFactory {
   type ToolsMap = {
     [Tools.Wikipedia]: typeof WikipediaTool;
@@ -37,6 +38,7 @@ export namespace ToolsFactory {
   }
 
   export async function createTools<const Tool extends Tools>(record: {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     [key in Tool]: ConstructorParameters<ToolsMap[Tool]>[1] extends any // backward compatibility for `create-llama` script // if parameters are an array, use them as is
       ? ConstructorParameters<ToolsMap[Tool]>[0]
       : ConstructorParameters<ToolsMap[Tool]>;
@@ -47,7 +49,7 @@ export namespace ToolsFactory {
       tools.push(
         await createTool(
           key,
-          // @ts-expect-error
+          // @ts-expect-error allow array or single parameter
           Array.isArray(params) ? params : [params],
         ),
       );
diff --git a/packages/llamaindex/src/vector-store/MilvusVectorStore.ts b/packages/llamaindex/src/vector-store/MilvusVectorStore.ts
index f510c15bba76c053efc052b8e6e03e86403010b8..1dc475871e7b7c7c7b95e6fc563c6dd4da39561e 100644
--- a/packages/llamaindex/src/vector-store/MilvusVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/MilvusVectorStore.ts
@@ -242,7 +242,7 @@ export class MilvusVectorStore extends BaseVectorStore {
 
   public async query(
     query: VectorStoreQuery,
-    _options?: any,
+    _options?: object,
   ): Promise<VectorStoreQueryResult> {
     await this.ensureCollection();
 
diff --git a/packages/llamaindex/src/vector-store/MongoDBAtlasVectorStore.ts b/packages/llamaindex/src/vector-store/MongoDBAtlasVectorStore.ts
index 48ee7bfb503fdf1974201c00fce0fdb2c2948ade..ac3ec75d64e221aec369ef8c99781a8353facb82 100644
--- a/packages/llamaindex/src/vector-store/MongoDBAtlasVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/MongoDBAtlasVectorStore.ts
@@ -39,7 +39,7 @@ function mapLcMqlFilterOperators(operator: string): string {
   return mqlOperator;
 }
 
-function toMongoDBFilter(filters?: MetadataFilters): Record<string, any> {
+function toMongoDBFilter(filters?: MetadataFilters): Record<string, unknown> {
   if (!filters) return {};
 
   const createFilterObject = (mf: MetadataFilter) => ({
@@ -261,7 +261,7 @@ export class MongoDBAtlasVectorSearch extends BaseVectorStore {
    * @param refDocId The refDocId of the nodes to delete
    * @param deleteOptions Options to pass to the deleteOne function
    */
-  async delete(refDocId: string, deleteOptions?: any): Promise<void> {
+  async delete(refDocId: string, deleteOptions?: object): Promise<void> {
     const collection = await this.ensureCollection();
     await collection.deleteMany(
       {
@@ -271,7 +271,7 @@ export class MongoDBAtlasVectorSearch extends BaseVectorStore {
     );
   }
 
-  client(): any {
+  client() {
     return this.mongodbClient;
   }
 
@@ -283,9 +283,9 @@ export class MongoDBAtlasVectorSearch extends BaseVectorStore {
    */
   async query(
     query: VectorStoreQuery,
-    options?: any,
+    options?: object,
   ): Promise<VectorStoreQueryResult> {
-    const params: any = {
+    const params: Record<string, unknown> = {
       queryVector: query.queryEmbedding,
       path: this.embeddingKey,
       numCandidates: this.numCandidates(query),
diff --git a/packages/llamaindex/src/vector-store/PGVectorStore.ts b/packages/llamaindex/src/vector-store/PGVectorStore.ts
index 6970bf1c29a88eaa8d22e7b434189edfa2e4b437..9bf9d19f876d9616c8d0dae4de5cdd35ab9de3fd 100644
--- a/packages/llamaindex/src/vector-store/PGVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/PGVectorStore.ts
@@ -23,6 +23,7 @@ import { Document, MetadataMode } from "@llamaindex/core/schema";
 
 // todo: create adapter for postgres client
 function fromVercelPool(client: VercelPool): IsomorphicDB {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const queryFn = async (sql: string, params?: any[]): Promise<any[]> => {
     return client.query(sql, params).then((result) => result.rows);
   };
@@ -53,12 +54,15 @@ function fromVercelPool(client: VercelPool): IsomorphicDB {
 
 function fromPostgres(client: Sql): IsomorphicDB {
   return {
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     query: async (sql: string, params?: any[]): Promise<any[]> => {
       return client.unsafe(sql, params);
     },
     begin: async (fn) => {
+      // eslint-disable-next-line @typescript-eslint/no-explicit-any
       let res: any;
       await client.begin(async (scopedClient) => {
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
         const queryFn = async (sql: string, params?: any[]): Promise<any[]> => {
           return scopedClient.unsafe(sql, params);
         };
@@ -75,6 +79,7 @@ function fromPostgres(client: Sql): IsomorphicDB {
 }
 
 function fromPG(client: pg.Client | pg.PoolClient): IsomorphicDB {
+  // eslint-disable-next-line @typescript-eslint/no-explicit-any
   const queryFn = async (sql: string, params?: any[]): Promise<any[]> => {
     return (await client.query(sql, params)).rows;
   };
@@ -296,14 +301,15 @@ export class PGVectorStore extends BaseVectorStore {
 
   private getDataToInsert(embeddingResults: BaseNode<Metadata>[]) {
     return embeddingResults.map((node) => {
-      const id: any = node.id_.length ? node.id_ : null;
+      const id = node.id_.length ? node.id_ : null;
       const meta = node.metadata || {};
       if (!meta.create_date) {
         meta.create_date = new Date();
       }
 
       return [
-        id,
+        // fixme: why id is null?
+        id!,
         "",
         this.collection,
         node.getContent(MetadataMode.NONE),
@@ -368,7 +374,7 @@ export class PGVectorStore extends BaseVectorStore {
    * @param deleteKwargs Required by VectorStore interface.  Currently ignored.
    * @returns Promise that resolves if the delete query did not throw an error.
    */
-  async delete(refDocId: string, deleteKwargs?: any): Promise<void> {
+  async delete(refDocId: string, deleteKwargs?: object): Promise<void> {
     const collectionCriteria = this.collection.length
       ? "AND collection = $2"
       : "";
@@ -505,7 +511,7 @@ export class PGVectorStore extends BaseVectorStore {
    */
   async query(
     query: VectorStoreQuery,
-    options?: any,
+    options?: object,
   ): Promise<VectorStoreQueryResult> {
     // TODO QUERY TYPES:
     //    Distance:       SELECT embedding <=> $1 AS distance FROM items;
diff --git a/packages/llamaindex/src/vector-store/PineconeVectorStore.ts b/packages/llamaindex/src/vector-store/PineconeVectorStore.ts
index 4682cae281f9d9e51555c848902b33d6d7b6c6ea..3b6105baef2a52f9a44ce29e8867805c0ed33c55 100644
--- a/packages/llamaindex/src/vector-store/PineconeVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/PineconeVectorStore.ts
@@ -14,6 +14,8 @@ import { getEnv } from "@llamaindex/env";
 import type {
   FetchResponse,
   Index,
+  PineconeRecord,
+  QueryOptions,
   ScoredPineconeRecord,
 } from "@pinecone-database/pinecone";
 import { type Pinecone } from "@pinecone-database/pinecone";
@@ -114,7 +116,7 @@ export class PineconeVectorStore extends BaseVectorStore {
     return Promise.resolve([]);
   }
 
-  protected async saveChunk(idx: Index, chunk: any) {
+  protected async saveChunk(idx: Index, chunk: PineconeRecord[]) {
     try {
       await idx.upsert(chunk);
       return true;
@@ -132,7 +134,7 @@ export class PineconeVectorStore extends BaseVectorStore {
    * @param deleteKwargs Required by VectorStore interface.  Currently ignored.
    * @returns Promise that resolves if the delete query did not throw an error.
    */
-  async delete(refDocId: string, deleteKwargs?: any): Promise<void> {
+  async delete(refDocId: string, deleteKwargs?: object): Promise<void> {
     const idx = await this.index();
     return idx.deleteOne(refDocId);
   }
@@ -146,12 +148,12 @@ export class PineconeVectorStore extends BaseVectorStore {
    */
   async query(
     query: VectorStoreQuery,
-    _options?: any,
+    _options?: object,
   ): Promise<VectorStoreQueryResult> {
     const filter = this.toPineconeFilter(query.filters);
 
-    const defaultOptions: any = {
-      vector: query.queryEmbedding,
+    const defaultOptions: QueryOptions = {
+      vector: query.queryEmbedding!,
       topK: query.similarityTopK,
       includeValues: true,
       includeMetadata: true,
@@ -162,15 +164,15 @@ export class PineconeVectorStore extends BaseVectorStore {
     const results = await idx.query(defaultOptions);
 
     const idList = results.matches.map((row) => row.id);
-    const records: FetchResponse<any> = await idx.fetch(idList);
+    const records: FetchResponse = await idx.fetch(idList);
     const rows = Object.values(records.records);
 
     const nodes = rows.map((row) => {
-      const node = metadataDictToNode(row.metadata, {
+      const node = metadataDictToNode(row.metadata ?? {}, {
         fallback: {
           id: row.id,
           text: this.textFromResultRow(row),
-          metadata: this.metaWithoutText(row.metadata),
+          metadata: this.metaWithoutText(row.metadata ?? {}),
           embedding: row.values,
         },
       });
@@ -195,8 +197,8 @@ export class PineconeVectorStore extends BaseVectorStore {
     return Promise.resolve();
   }
 
-  toPineconeFilter(stdFilters?: MetadataFilters) {
-    if (!stdFilters) return undefined;
+  toPineconeFilter(stdFilters?: MetadataFilters): object {
+    if (!stdFilters) return {};
 
     const transformCondition = (
       condition: `${FilterCondition}` = "and",
@@ -237,13 +239,13 @@ export class PineconeVectorStore extends BaseVectorStore {
       };
     };
 
-    const convertFilter = (filter: MetadataFilters) => {
+    const convertFilter = (filter: MetadataFilters): object => {
       const filtersList = filter.filters
         .map((f) => convertFilterItem(f))
         .filter((f) => Object.keys(f).length > 0);
 
-      if (filtersList.length === 0) return undefined;
-      if (filtersList.length === 1) return filtersList[0];
+      if (filtersList.length === 0) return {};
+      if (filtersList.length === 1) return filtersList[0] ?? {};
 
       const condition = transformCondition(filter.condition);
       return { [condition]: filtersList };
@@ -256,19 +258,20 @@ export class PineconeVectorStore extends BaseVectorStore {
     return row.metadata?.[this.textKey] ?? "";
   }
 
-  metaWithoutText(meta: Metadata): any {
+  metaWithoutText(meta: Metadata) {
     return Object.keys(meta)
       .filter((key) => key != this.textKey)
-      .reduce((acc: any, key: string) => {
+      .reduce<Record<string, unknown>>((acc, key: string) => {
         acc[key] = meta[key];
         return acc;
       }, {});
   }
 
   nodeToRecord(node: BaseNode<Metadata>) {
-    const id: any = node.id_.length ? node.id_ : null;
+    const id = node.id_.length ? node.id_ : null;
     return {
-      id: id,
+      // fixme: why id is null?
+      id: id!,
       values: node.getEmbedding(),
       metadata: nodeToMetadata(node),
     };
diff --git a/packages/llamaindex/src/vector-store/QdrantVectorStore.ts b/packages/llamaindex/src/vector-store/QdrantVectorStore.ts
index aee909abb493551c75642e0795ac0b05328ede6f..f531adb2bd2fe3a3083e5d7c9b9d493055fa557a 100644
--- a/packages/llamaindex/src/vector-store/QdrantVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/QdrantVectorStore.ts
@@ -270,9 +270,12 @@ export class QdrantVectorStore extends BaseVectorStore {
    */
   async query(
     query: VectorStoreQuery,
-    options?: any,
+    options?: object,
   ): Promise<VectorStoreQueryResult> {
-    const qdrantFilters = options?.qdrant_filters;
+    const qdrantFilters =
+      options && "qdrant_filters" in options
+        ? options.qdrant_filters
+        : undefined;
 
     let queryFilters: QdrantFilter | undefined;
 
diff --git a/packages/llamaindex/src/vector-store/SimpleVectorStore.ts b/packages/llamaindex/src/vector-store/SimpleVectorStore.ts
index a0c7f32676312ead5d87be84f85acfeddb10dc57..b8564e81c0eb80976d88746869c16141b883eaab 100644
--- a/packages/llamaindex/src/vector-store/SimpleVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/SimpleVectorStore.ts
@@ -31,6 +31,7 @@ const LEARNER_MODES = new Set<VectorStoreQueryMode>([
 
 const MMR_MODE = VectorStoreQueryMode.MMR;
 
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
 type MetadataValue = Record<string, any>;
 
 // Mapping of filter operators to metadata filter functions
@@ -145,7 +146,7 @@ export class SimpleVectorStore extends BaseVectorStore {
     return await SimpleVectorStore.fromPersistPath(persistPath, embedModel);
   }
 
-  client(): any {
+  client() {
     return null;
   }
 
@@ -280,7 +281,7 @@ export class SimpleVectorStore extends BaseVectorStore {
       await fs.mkdir(dirPath, { recursive: true });
     }
 
-    let dataDict: any = {};
+    let dataDict: Record<string, unknown> = {};
     try {
       const fileData = await fs.readFile(persistPath);
       dataDict = JSON.parse(fileData.toString());
@@ -296,8 +297,11 @@ export class SimpleVectorStore extends BaseVectorStore {
     }
 
     const data = new SimpleVectorStoreData();
+    // @ts-expect-error TS2322
     data.embeddingDict = dataDict.embeddingDict ?? {};
+    // @ts-expect-error TS2322
     data.textIdToRefDocId = dataDict.textIdToRefDocId ?? {};
+    // @ts-expect-error TS2322
     data.metadataDict = dataDict.metadataDict ?? {};
     const store = new SimpleVectorStore({ data, embeddingModel });
     store.persistPath = persistPath;
diff --git a/packages/llamaindex/src/vector-store/UpstashVectorStore.ts b/packages/llamaindex/src/vector-store/UpstashVectorStore.ts
index e4cc5a574751cc642246ee204c0bff309cc38d87..f7575dc17bfd1a59de3b08fc1def0d2f76d21803 100644
--- a/packages/llamaindex/src/vector-store/UpstashVectorStore.ts
+++ b/packages/llamaindex/src/vector-store/UpstashVectorStore.ts
@@ -90,7 +90,7 @@ export class UpstashVectorStore extends BaseVectorStore {
     if (result != "OK") {
       throw new Error("Failed to save chunk");
     }
-    return nodes.map((node) => node.id);
+    return nodes.map((node) => node.id).filter((id): id is string => !!id);
   }
 
   /**
@@ -108,7 +108,7 @@ export class UpstashVectorStore extends BaseVectorStore {
     if (result != "OK") {
       throw new Error("Failed to save chunk");
     }
-    return nodes.map((node) => node.id);
+    return nodes.map((node) => node.id).filter((id): id is string => !!id);
   }
 
   private async upsertInBatches(
@@ -154,10 +154,11 @@ export class UpstashVectorStore extends BaseVectorStore {
    */
   async query(
     query: VectorStoreQuery,
-    _options?: any,
+    _options?: object,
   ): Promise<VectorStoreQueryResult> {
     const filter = this.toUpstashFilter(query.filters);
 
+    // eslint-disable-next-line @typescript-eslint/no-explicit-any
     const defaultOptions: any = {
       vector: query.queryEmbedding,
       topK: query.similarityTopK,
@@ -172,7 +173,7 @@ export class UpstashVectorStore extends BaseVectorStore {
     });
 
     const nodes = results.map((result) => {
-      const node = metadataDictToNode(result.metadata as Record<string, any>, {
+      const node = metadataDictToNode(result.metadata ?? {}, {
         fallback: {
           id: result.id,
           metadata: result.metadata,
@@ -214,18 +215,20 @@ export class UpstashVectorStore extends BaseVectorStore {
   }
 
   nodeToRecord(node: BaseNode<Metadata>) {
-    const id: any = node.id_.length ? node.id_ : null;
+    const id = node.id_.length ? node.id_ : null;
     return {
-      id: id,
+      // fixme: why id is possibly null?
+      id: id!,
       vector: node.getEmbedding(),
       metadata: nodeToMetadata(node),
     };
   }
 
   textNodeToRecord(node: TextNode<Metadata>) {
-    const id: any = node.id_.length ? node.id_ : null;
+    const id = node.id_.length ? node.id_ : null;
     return {
-      id,
+      // fixme: why id is possibly null?
+      id: id!,
       data: node.text,
       metadata: nodeToMetadata(node),
     };
diff --git a/packages/llamaindex/src/vector-store/types.ts b/packages/llamaindex/src/vector-store/types.ts
index 20f6622b99ee13b8ba0a0e44f3f163b5ffa967c1..a5b92f523b7be41ea15edea7de50879748b47f56 100644
--- a/packages/llamaindex/src/vector-store/types.ts
+++ b/packages/llamaindex/src/vector-store/types.ts
@@ -85,16 +85,16 @@ export type VectorStoreBaseParams = {
   embeddingModel?: BaseEmbedding | undefined;
 };
 
-export abstract class BaseVectorStore {
+export abstract class BaseVectorStore<Client = unknown> {
   embedModel: BaseEmbedding;
   abstract storesText: boolean;
   isEmbeddingQuery?: boolean;
-  abstract client(): any;
+  abstract client(): Client;
   abstract add(embeddingResults: BaseNode[]): Promise<string[]>;
-  abstract delete(refDocId: string, deleteOptions?: any): Promise<void>;
+  abstract delete(refDocId: string, deleteOptions?: object): Promise<void>;
   abstract query(
     query: VectorStoreQuery,
-    options?: any,
+    options?: object,
   ): Promise<VectorStoreQueryResult>;
 
   protected constructor(params?: VectorStoreBaseParams) {
diff --git a/packages/llamaindex/src/vector-store/utils.ts b/packages/llamaindex/src/vector-store/utils.ts
index da40eeb9b8ec0800ef2097ede958b953ac9f8164..34b03cb0f9b6815c21ddb5626b48139605d2bc9e 100644
--- a/packages/llamaindex/src/vector-store/utils.ts
+++ b/packages/llamaindex/src/vector-store/utils.ts
@@ -4,7 +4,7 @@ import type { MetadataFilterValue } from "./types.js";
 
 const DEFAULT_TEXT_KEY = "text";
 
-export function validateIsFlat(obj: { [key: string]: any }): void {
+export function validateIsFlat(obj: Record<string, unknown>): void {
   for (const key in obj) {
     if (typeof obj[key] === "object" && obj[key] !== null) {
       throw new Error(`Value for metadata ${key} must not be another object`);
@@ -41,7 +41,7 @@ export function nodeToMetadata(
 type MetadataDictToNodeOptions = {
   // If the metadata doesn't contain node content, use this object as a fallback, for usage see
   // AstraDBVectorStore.ts
-  fallback: Record<string, any>;
+  fallback: Record<string, unknown>;
 };
 
 export function metadataDictToNode(
diff --git a/packages/llamaindex/tests/ingestion/IngestionCache.test.ts b/packages/llamaindex/tests/ingestion/IngestionCache.test.ts
index e4614db58c3fee96340484a322319a6c981a9ace..cfb4dfa1ed10dc84c41af402d8848efc17314fd4 100644
--- a/packages/llamaindex/tests/ingestion/IngestionCache.test.ts
+++ b/packages/llamaindex/tests/ingestion/IngestionCache.test.ts
@@ -73,11 +73,4 @@ describe("getTransformationHash", () => {
     );
     expect(result1).not.toBe(result2);
   });
-
-  test("should not break with circular references", () => {
-    const obj: any = { a: 1, b: 2 };
-    obj["circular"] = obj;
-    const result = getTransformationHash(nodes, obj);
-    expect(typeof result).toBe("string");
-  });
 });
diff --git a/packages/llamaindex/tests/package.json b/packages/llamaindex/tests/package.json
index 36d09121a696cd6bc1546e4cf873b1793405c412..03798bd09410c409c2715e547d82ad643c3c5b2d 100644
--- a/packages/llamaindex/tests/package.json
+++ b/packages/llamaindex/tests/package.json
@@ -9,7 +9,7 @@
   "devDependencies": {
     "@faker-js/faker": "^9.0.1",
     "llamaindex": "workspace:*",
-    "msw": "^2.4.8",
+    "msw": "^2.6.0",
     "vitest": "^2.0.5"
   }
 }
diff --git a/packages/llamaindex/tests/vitest.setup.ts b/packages/llamaindex/tests/vitest.setup.ts
index a6a100a6ecb645df50fc0a1c5935429f619948ee..591466d19714f2c305eed3362378dfa8cd49fea3 100644
--- a/packages/llamaindex/tests/vitest.setup.ts
+++ b/packages/llamaindex/tests/vitest.setup.ts
@@ -1,4 +1,3 @@
-// eslint-disable-next-line turbo/no-undeclared-env-vars
 process.env.OPENAI_API_KEY = "sk-1234567890abcdef1234567890abcdef";
 const originalFetch = globalThis.fetch;
 
diff --git a/packages/providers/anthropic/src/llm.ts b/packages/providers/anthropic/src/llm.ts
index d24bfc2c2c594a50c02140f39f1029e214299f94..485b28186a273857e5186a5a7e6dafa4c75fca27 100644
--- a/packages/providers/anthropic/src/llm.ts
+++ b/packages/providers/anthropic/src/llm.ts
@@ -103,7 +103,7 @@ const AVAILABLE_ANTHROPIC_MODELS_WITHOUT_DATE: { [key: string]: string } = {
   "claude-3-5-sonnet": "claude-3-5-sonnet-20240620",
 } as { [key in keyof typeof ALL_AVAILABLE_ANTHROPIC_MODELS]: string };
 
-export type AnthropicAdditionalChatOptions = {};
+export type AnthropicAdditionalChatOptions = object;
 
 export class Anthropic extends ToolCallLLM<AnthropicAdditionalChatOptions> {
   // Per completion Anthropic params
diff --git a/packages/providers/groq/src/llm.ts b/packages/providers/groq/src/llm.ts
index bcf7252458f45da9f2bc14ce0a96674b0211f954..bfff280a18db5d8f36c8cca54f8b785ac62a10c6 100644
--- a/packages/providers/groq/src/llm.ts
+++ b/packages/providers/groq/src/llm.ts
@@ -26,6 +26,6 @@ export class Groq extends OpenAI {
       new GroqSDK({
         apiKey,
         ...init?.additionalSessionOptions,
-      }) as any;
+      }) as never;
   }
 }
diff --git a/packages/providers/huggingface/src/embedding.ts b/packages/providers/huggingface/src/embedding.ts
index e2a349878218cda7e8b75aa6a0aec78584731ac3..4cf8aa157c0e4b27e9239ec955f3339e2eb6e0e0 100644
--- a/packages/providers/huggingface/src/embedding.ts
+++ b/packages/providers/huggingface/src/embedding.ts
@@ -1,6 +1,7 @@
 import { BaseEmbedding } from "@llamaindex/core/embeddings";
 import { Settings } from "@llamaindex/core/global";
 import { type LoadTransformerEvent, loadTransformers } from "@llamaindex/env";
+import type { pipeline } from "@xenova/transformers";
 import { HuggingFaceEmbeddingModelType } from "./shared";
 
 declare module "@llamaindex/core/global" {
@@ -26,7 +27,9 @@ export class HuggingFaceEmbedding extends BaseEmbedding {
   modelType: string = HuggingFaceEmbeddingModelType.XENOVA_ALL_MINILM_L6_V2;
   quantized: boolean = true;
 
-  private extractor: any;
+  private extractor: Awaited<
+    ReturnType<typeof pipeline<"feature-extraction">>
+  > | null = null;
 
   constructor(init?: Partial<HuggingFaceEmbedding>) {
     super();
diff --git a/packages/providers/huggingface/src/llm.ts b/packages/providers/huggingface/src/llm.ts
index 8bf4a206a82b6971e82242d7adde7feb2d0075d3..82d8e3c3229140e96233a3cdaa664d12ce050cfa 100644
--- a/packages/providers/huggingface/src/llm.ts
+++ b/packages/providers/huggingface/src/llm.ts
@@ -136,9 +136,7 @@ export class HuggingFaceLLM extends BaseLLM {
     };
   }
 
-  protected async *streamChat(
-    params: LLMChatParamsStreaming,
-  ): AsyncIterable<ChatResponseChunk> {
+  protected async streamChat(params: LLMChatParamsStreaming): Promise<never> {
     // @xenova/transformers v2 doesn't support streaming generation yet
     // they are working on it in v3
     // See: https://github.com/xenova/transformers.js/blob/3260640b192b3e06a10a1f4dc004b1254fdf1b80/src/models.js#L1249
diff --git a/packages/providers/huggingface/src/shared.ts b/packages/providers/huggingface/src/shared.ts
index 849d3498de66b3adc0adb3d8785f2ad5e85573df..7225a9f77ca1326253e11836b2307f6946960546 100644
--- a/packages/providers/huggingface/src/shared.ts
+++ b/packages/providers/huggingface/src/shared.ts
@@ -183,7 +183,7 @@ export class HuggingFaceInferenceAPI extends BaseLLM {
       inputs: this.messagesToPrompt(params.messages),
       parameters: this.metadata,
     });
-    yield* streamConverter(stream, (chunk: any) => ({
+    yield* streamConverter(stream, (chunk) => ({
       delta: chunk.token.text,
       raw: chunk,
     }));
diff --git a/packages/providers/openai/src/azure.ts b/packages/providers/openai/src/azure.ts
index cf0d931348246a3d95cda54a0b7874c0a193eca3..ad34a9555855cb630f359128a082f7f6dea322a0 100644
--- a/packages/providers/openai/src/azure.ts
+++ b/packages/providers/openai/src/azure.ts
@@ -64,18 +64,18 @@ const ALL_AZURE_OPENAI_EMBEDDING_MODELS = {
 };
 
 // Current version list found here - https://learn.microsoft.com/en-us/azure/ai-services/openai/reference
-const ALL_AZURE_API_VERSIONS = [
-  "2022-12-01",
-  "2023-05-15",
-  "2023-06-01-preview", // Maintained for DALL-E 2
-  "2023-10-01-preview",
-  "2024-02-01",
-  "2024-02-15-preview",
-  "2024-03-01-preview",
-  "2024-04-01-preview",
-  "2024-05-01-preview",
-  "2024-06-01",
-];
+// const ALL_AZURE_API_VERSIONS = [
+//   "2022-12-01",
+//   "2023-05-15",
+//   "2023-06-01-preview", // Maintained for DALL-E 2
+//   "2023-10-01-preview",
+//   "2024-02-01",
+//   "2024-02-15-preview",
+//   "2024-03-01-preview",
+//   "2024-04-01-preview",
+//   "2024-05-01-preview",
+//   "2024-06-01",
+// ];
 
 const DEFAULT_API_VERSION = "2023-05-15";
 //^ NOTE: this will change over time, if you want to pin it, use a specific version
@@ -137,7 +137,9 @@ export function shouldUseAzure() {
   );
 }
 
-type Constructor<T = any> = new (...args: any[]) => T;
+// TS issue: https://github.com/microsoft/TypeScript/issues/37142
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+type Constructor = new (...args: any[]) => any;
 
 // This mixin adds a User-Agent header to the request for Azure OpenAI
 export function AzureOpenAIWithUserAgent<K extends Constructor>(Base: K) {
diff --git a/packages/providers/openai/src/llm.ts b/packages/providers/openai/src/llm.ts
index df619d1f8db854ff2b092632226cd5f520123320..ed025a82df74838b147329d3b0cc6fc5b877ba44 100644
--- a/packages/providers/openai/src/llm.ts
+++ b/packages/providers/openai/src/llm.ts
@@ -126,7 +126,7 @@ export function isFunctionCallingModel(llm: LLM): llm is OpenAI {
   return isChatModel && !isOld && !isO1;
 }
 
-export type OpenAIAdditionalMetadata = {};
+export type OpenAIAdditionalMetadata = object;
 
 export type OpenAIAdditionalChatOptions = Omit<
   Partial<OpenAILLM.Chat.ChatCompletionCreateParams>,
diff --git a/packages/providers/portkey-ai/src/portkey.ts b/packages/providers/portkey-ai/src/portkey.ts
index 188418a75bd4cbbbc4412a5ae558576949aa0d1a..334e39099dcb1f1422b492d4f73e9c3bcfa90135 100644
--- a/packages/providers/portkey-ai/src/portkey.ts
+++ b/packages/providers/portkey-ai/src/portkey.ts
@@ -110,7 +110,7 @@ export class Portkey extends BaseLLM {
 
   async *streamChat(
     messages: ChatMessage[],
-    params?: Record<string, any>,
+    params?: object,
   ): AsyncIterable<ChatResponseChunk> {
     const chunkStream = await this.session.portkey.chatCompletions.create({
       messages: messages.map((message) => ({
diff --git a/packages/providers/replicate/src/llm.ts b/packages/providers/replicate/src/llm.ts
index d210f987b9ca862b425ac6f8e7175d5618208a9a..7012af8c02fd14918826871143c93b363770cfcc 100644
--- a/packages/providers/replicate/src/llm.ts
+++ b/packages/providers/replicate/src/llm.ts
@@ -266,8 +266,7 @@ If a question does not make any sense, or is not factually coherent, explain why
       } else {
         const systemStr = `${B_SYS}${systemMessage.content}${E_SYS}`;
 
-        // TS Bug: https://github.com/microsoft/TypeScript/issues/9998
-        // @ts-ignore
+        // @ts-expect-error TS Bug: https://github.com/microsoft/TypeScript/issues/9998
         if (messages[0].role !== "user") {
           throw new Error(
             "ReplicateLLM: if there is a system message, the second message must be a user message.",
@@ -318,7 +317,11 @@ If a question does not make any sense, or is not factually coherent, explain why
 
     const { prompt, systemPrompt } = this.mapMessagesToPrompt(messages);
 
-    const replicateOptions: any = {
+    const replicateOptions: Parameters<
+      typeof this.replicateSession.replicate.stream
+    >[1] & {
+      input: Record<string, unknown>;
+    } = {
       input: {
         prompt,
         system_prompt: systemPrompt,
diff --git a/packages/readers/package.json b/packages/readers/package.json
index 3d028c28e6d1320264614bbdca5fa673fcc4a5f1..6cf437eec7193cd9dd6cf8db52b1b2b6564c1c6c 100644
--- a/packages/readers/package.json
+++ b/packages/readers/package.json
@@ -269,7 +269,7 @@
   "devDependencies": {
     "@llamaindex/core": "workspace:*",
     "@llamaindex/env": "workspace:*",
-    "@types/node": "^22.8.1",
+    "@types/node": "^22.8.4",
     "bunchee": "5.5.1",
     "p-limit": "^6.1.0",
     "string-strip-html": "^13.4.8"
diff --git a/packages/readers/src/csv/base.ts b/packages/readers/src/csv/base.ts
index 022a312ee0c20149dcf844d053d6b7a0ad73c719..2839cea0c69bce5769de1f77f6d5e91e83c24e5a 100644
--- a/packages/readers/src/csv/base.ts
+++ b/packages/readers/src/csv/base.ts
@@ -42,7 +42,7 @@ export class CSVReader extends FileReader<Document> {
     const parser = CSVReader.parse(fileContentString, this.config);
     const textList: string[] = [];
     for await (const record of parser) {
-      textList.push(record.map((v: any) => `${v}`).join(this.colJoiner));
+      textList.push(record.map((v: unknown) => `${v}`).join(this.colJoiner));
     }
 
     if (this.concatRows) {
diff --git a/packages/readers/src/json.ts b/packages/readers/src/json.ts
index a37b8024dc0ebbc47f74c3b1846c64f090585378..9c935ce83cd7b3c4897145dadfaec9e4c1efec7d 100644
--- a/packages/readers/src/json.ts
+++ b/packages/readers/src/json.ts
@@ -1,5 +1,5 @@
 import { parseChunked } from "@discoveryjs/json-ext";
-import type { JSONValue } from "@llamaindex/core/global";
+import type { JSONObject, JSONValue } from "@llamaindex/core/global";
 import { Document, FileReader } from "@llamaindex/core/schema";
 import { consoleLogger, type Logger } from "@llamaindex/env";
 
@@ -272,7 +272,7 @@ export class JSONReader extends FileReader<Document> {
       if (this.options.cleanJson) {
         return jsonStr
           .split("\n")
-          .filter((line) => !/^[{}\[\],]*$/.test(line.trim()))
+          .filter((line) => !/^[{}[\],]*$/.test(line.trim()))
           .map((line) => line.trimStart())
           .join("\n");
       }
@@ -351,7 +351,7 @@ export class JSONReader extends FileReader<Document> {
   }
 
   private async *traverseObject(
-    jsonObject: Record<string, any>,
+    jsonObject: JSONObject,
     levelsBack: number,
     path: string[],
     collapseLength?: number,
diff --git a/packages/readers/src/markdown.ts b/packages/readers/src/markdown.ts
index b3635a1c473c09f0fd2d8e5b8ca9b5700f402693..d29c5fe29d7d016c6af4345a6083542d6f83d971 100644
--- a/packages/readers/src/markdown.ts
+++ b/packages/readers/src/markdown.ts
@@ -93,7 +93,6 @@ export class MarkdownReader extends FileReader<Document> {
     const content = decoder.decode(fileContent);
     const tups = this.parseTups(content);
     const results: Document[] = [];
-    let counter = 0;
     for (const [header, value] of tups) {
       if (header) {
         const text = `\n\n${header}\n${value}`;
@@ -101,7 +100,6 @@ export class MarkdownReader extends FileReader<Document> {
       } else {
         results.push(new Document({ text: value }));
       }
-      counter += 1;
     }
     return results;
   }
diff --git a/packages/readers/src/mongo.ts b/packages/readers/src/mongo.ts
index bddb4bb40d96ae2e00f5c5daa5ee9627524000ca..c9bfca06b6bb4d83db4d678e06303108e8668eac 100644
--- a/packages/readers/src/mongo.ts
+++ b/packages/readers/src/mongo.ts
@@ -1,7 +1,7 @@
 // todo: should move to providers
 import type { Metadata } from "@llamaindex/core/schema";
 import { type BaseReader, Document } from "@llamaindex/core/schema";
-import type { MongoClient } from "mongodb";
+import type { Filter, MongoClient, Document as MongoDocument } from "mongodb";
 
 /**
  * Read in from MongoDB
@@ -37,20 +37,20 @@ export class SimpleMongoReader implements BaseReader<Document> {
    * @returns {Promise<Document[]>}
    * @throws If a field specified in fieldNames or metadataNames is not found in a MongoDB document.
    */
-  // eslint-disable-next-line max-params
-  public async loadData(
+
+  public async loadData<TSchema extends MongoDocument = MongoDocument>(
     dbName: string,
     collectionName: string,
     fieldNames: string[] = ["text"],
     separator: string = "",
-    filterQuery: Record<string, any> = {},
+    filterQuery: Filter<TSchema> = {},
     maxDocs: number = 0,
     metadataNames?: string[],
   ): Promise<Document[]> {
     const db = this.client.db(dbName);
     // Get items from collection
     const cursor = db
-      .collection(collectionName)
+      .collection<TSchema>(collectionName)
       .find(filterQuery)
       .limit(maxDocs);
 
diff --git a/packages/wasm-tools/package.json b/packages/wasm-tools/package.json
index 43dfd3d94062e731991a02b2ee2aadb9aec768f9..ccd4b4b6d49e404143b1dd4a23b6cde42ca1af50 100644
--- a/packages/wasm-tools/package.json
+++ b/packages/wasm-tools/package.json
@@ -5,7 +5,7 @@
   "type": "module",
   "dependencies": {
     "@assemblyscript/loader": "^0.27.27",
-    "@types/node": "^22.5.1"
+    "@types/node": "^22.8.4"
   },
   "devDependencies": {
     "@swc/cli": "^0.4.0",
diff --git a/packages/wasm-tools/src/factory.ts b/packages/wasm-tools/src/factory.ts
index c033b8e0497e00fdf5e3c7de9579c97c738d6806..6ab2258795992f409ed46154155cd1d6c5ac3a4f 100644
--- a/packages/wasm-tools/src/factory.ts
+++ b/packages/wasm-tools/src/factory.ts
@@ -1,4 +1,4 @@
-// @ts-ignore
+// @ts-expect-error - no types
 import loader from "@assemblyscript/loader";
 import fs from "fs";
 import type { BaseTool, ToolMetadata } from "./types.js";
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a2dcb075081977f0c088756f586375f27c328b0d..46bfc0330e8469f56b205e872bfed92ae9e2a431 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -15,30 +15,30 @@ importers:
       '@changesets/cli':
         specifier: ^2.27.5
         version: 2.27.7
-      '@typescript-eslint/eslint-plugin':
-        specifier: ^8.3.0
-        version: 8.3.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)
       eslint:
-        specifier: 8.57.0
-        version: 8.57.0
+        specifier: 9.13.0
+        version: 9.13.0(jiti@2.3.3)
       eslint-config-next:
-        specifier: ^14.2.7
-        version: 14.2.11(eslint@8.57.0)(typescript@5.6.3)
+        specifier: ^15.0.2
+        version: 15.0.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       eslint-config-prettier:
         specifier: ^9.1.0
-        version: 9.1.0(eslint@8.57.0)
+        version: 9.1.0(eslint@9.13.0(jiti@2.3.3))
       eslint-config-turbo:
-        specifier: ^2.1.0
-        version: 2.1.0(eslint@8.57.0)
+        specifier: ^2.2.3
+        version: 2.2.3(eslint@9.13.0(jiti@2.3.3))
       eslint-plugin-react:
-        specifier: 7.35.0
-        version: 7.35.0(eslint@8.57.0)
+        specifier: 7.37.2
+        version: 7.37.2(eslint@9.13.0(jiti@2.3.3))
+      globals:
+        specifier: ^15.11.0
+        version: 15.11.0
       husky:
-        specifier: ^9.1.5
-        version: 9.1.5
+        specifier: ^9.1.6
+        version: 9.1.6
       lint-staged:
-        specifier: ^15.2.9
-        version: 15.2.9
+        specifier: ^15.2.10
+        version: 15.2.10
       madge:
         specifier: ^8.0.0
         version: 8.0.0(typescript@5.6.3)
@@ -46,20 +46,23 @@ importers:
         specifier: ^3.3.3
         version: 3.3.3
       prettier-plugin-organize-imports:
-        specifier: ^4.0.0
-        version: 4.0.0(prettier@3.3.3)(typescript@5.6.3)
+        specifier: ^4.1.0
+        version: 4.1.0(prettier@3.3.3)(typescript@5.6.3)
       turbo:
-        specifier: ^2.1.2
-        version: 2.1.2
+        specifier: ^2.2.3
+        version: 2.2.3
       typescript:
         specifier: ^5.6.2
         version: 5.6.3
+      typescript-eslint:
+        specifier: ^8.12.2
+        version: 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
 
   apps/docs:
     dependencies:
       '@docusaurus/core':
         specifier: 3.5.2
-        version: 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+        version: 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/remark-plugin-npm2yarn':
         specifier: 3.5.2
         version: 3.5.2
@@ -96,10 +99,10 @@ importers:
         version: 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/preset-classic':
         specifier: 3.5.2
-        version: 3.5.2(@algolia/client-search@5.9.1)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
+        version: 3.5.2(@algolia/client-search@5.9.1)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
       '@docusaurus/theme-classic':
         specifier: 3.5.2
-        version: 3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+        version: 3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types':
         specifier: 3.5.2
         version: 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
@@ -107,8 +110,8 @@ importers:
         specifier: 2.0.3
         version: 2.0.3
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       docusaurus-plugin-typedoc:
         specifier: 1.0.5
         version: 1.0.5(typedoc-plugin-markdown@4.2.6(typedoc@0.26.6(typescript@5.6.3)))
@@ -252,8 +255,8 @@ importers:
         specifier: ^2.0.13
         version: 2.0.13
       '@types/node':
-        specifier: 22.7.8
-        version: 22.7.8
+        specifier: 22.8.4
+        version: 22.8.4
       '@types/react':
         specifier: ^18.3.12
         version: 18.3.12
@@ -349,8 +352,8 @@ importers:
         version: 3.4.4
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       tsx:
         specifier: ^4.19.0
         version: 4.19.0
@@ -368,8 +371,8 @@ importers:
         version: link:../../packages/llamaindex
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       tsx:
         specifier: ^4.19.0
         version: 4.19.0
@@ -404,8 +407,8 @@ importers:
         specifier: ^7.0.15
         version: 7.0.15
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       bunchee:
         specifier: 5.5.1
         version: 5.5.1(typescript@5.6.3)
@@ -426,7 +429,7 @@ importers:
         version: 5.6.3
       vitest:
         specifier: ^2.0.5
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
       webpack:
         specifier: ^5.94.0
         version: 5.95.0(@swc/core@1.7.36(@swc/helpers@0.5.13))
@@ -493,8 +496,8 @@ importers:
         version: 2.5.4
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/react':
         specifier: ^18.3.12
         version: 18.3.12
@@ -554,8 +557,8 @@ importers:
         version: link:../env
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       bunchee:
         specifier: 5.5.1
         version: 5.5.1(typescript@5.6.3)
@@ -566,8 +569,8 @@ importers:
         specifier: workspace:*
         version: link:../env
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       magic-bytes.js:
         specifier: ^1.10.0
         version: 1.10.0
@@ -601,7 +604,7 @@ importers:
         version: link:..
       vitest:
         specifier: ^2.0.5
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
 
   packages/env:
     dependencies:
@@ -613,8 +616,8 @@ importers:
         version: 1.0.14
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/readable-stream':
         specifier: ^4.0.15
         version: 4.0.15
@@ -632,7 +635,7 @@ importers:
         version: 1.1.2
       vitest:
         specifier: ^2.0.5
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
 
   packages/experimental:
     dependencies:
@@ -640,8 +643,8 @@ importers:
         specifier: ^4.17.7
         version: 4.17.7
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       jsonpath:
         specifier: ^1.1.1
         version: 1.1.1
@@ -755,8 +758,8 @@ importers:
         specifier: ^4.17.7
         version: 4.17.7
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/pg':
         specifier: ^8.11.8
         version: 8.11.8
@@ -858,8 +861,8 @@ importers:
         specifier: ^9.0.1
         version: 9.0.1
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       consola:
         specifier: ^3.2.3
         version: 3.2.3
@@ -881,7 +884,7 @@ importers:
     devDependencies:
       '@cloudflare/vitest-pool-workers':
         specifier: ^0.5.8
-        version: 0.5.8(@cloudflare/workers-types@4.20240924.0)(@vitest/runner@2.1.1)(@vitest/snapshot@2.1.1)(bufferutil@4.0.8)(vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0))
+        version: 0.5.8(@cloudflare/workers-types@4.20240924.0)(@vitest/runner@2.1.1)(@vitest/snapshot@2.1.1)(bufferutil@4.0.8)(vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0))
       '@cloudflare/workers-types':
         specifier: ^4.20240924.0
         version: 4.20240924.0
@@ -896,7 +899,7 @@ importers:
         version: 5.6.3
       vitest:
         specifier: 2.1.1
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
       wrangler:
         specifier: ^3.78.8
         version: 3.78.8(@cloudflare/workers-types@4.20240924.0)(bufferutil@4.0.8)
@@ -912,10 +915,10 @@ importers:
         version: 5.6.3
       vite:
         specifier: ^5.4.1
-        version: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+        version: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
       vite-plugin-wasm:
         specifier: ^3.3.0
-        version: 3.3.0(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0))
+        version: 3.3.0(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0))
 
   packages/llamaindex/e2e/examples/nextjs-agent:
     dependencies:
@@ -936,8 +939,8 @@ importers:
         version: 18.3.1(react@18.3.1)
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/react':
         specifier: ^18.3.12
         version: 18.3.12
@@ -945,11 +948,11 @@ importers:
         specifier: ^18.3.1
         version: 18.3.1
       eslint:
-        specifier: 8.57.0
-        version: 8.57.0
+        specifier: 9.13.0
+        version: 9.13.0(jiti@2.3.3)
       eslint-config-next:
-        specifier: 14.2.11
-        version: 14.2.11(eslint@8.57.0)(typescript@5.6.3)
+        specifier: 15.0.2
+        version: 15.0.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       postcss:
         specifier: ^8.4.41
         version: 8.4.47
@@ -976,8 +979,8 @@ importers:
         version: 18.3.1(react@18.3.1)
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/react':
         specifier: ^18.3.12
         version: 18.3.12
@@ -1004,8 +1007,8 @@ importers:
         version: 18.3.1(react@18.3.1)
     devDependencies:
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       '@types/react':
         specifier: ^18.3.12
         version: 18.3.12
@@ -1013,11 +1016,11 @@ importers:
         specifier: ^18.3.1
         version: 18.3.1
       eslint:
-        specifier: 8.57.0
-        version: 8.57.0
+        specifier: 9.13.0
+        version: 9.13.0(jiti@2.3.3)
       eslint-config-next:
-        specifier: 14.2.11
-        version: 14.2.11(eslint@8.57.0)(typescript@5.6.3)
+        specifier: 15.0.2
+        version: 15.0.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       postcss:
         specifier: ^8.4.41
         version: 8.4.47
@@ -1044,7 +1047,7 @@ importers:
         version: 19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0)
       waku:
         specifier: 0.21.4
-        version: 0.21.4(@swc/helpers@0.5.13)(@types/node@22.8.1)(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react-server-dom-webpack@19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0))(react@19.0.0-rc-bf7e210c-20241017)(terser@5.36.0)
+        version: 0.21.4(@swc/helpers@0.5.13)(@types/node@22.8.4)(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react-server-dom-webpack@19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0))(react@19.0.0-rc-bf7e210c-20241017)(terser@5.36.0)
     devDependencies:
       '@types/react':
         specifier: 18.3.11
@@ -1071,11 +1074,11 @@ importers:
         specifier: workspace:*
         version: link:..
       msw:
-        specifier: ^2.4.8
-        version: 2.4.11(typescript@5.6.3)
+        specifier: ^2.6.0
+        version: 2.6.0(@types/node@22.8.4)(typescript@5.6.3)
       vitest:
         specifier: ^2.0.5
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
 
   packages/providers/anthropic:
     dependencies:
@@ -1282,8 +1285,8 @@ importers:
         specifier: workspace:*
         version: link:../env
       '@types/node':
-        specifier: ^22.8.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
       bunchee:
         specifier: 5.5.1
         version: 5.5.1(typescript@5.6.3)
@@ -1300,8 +1303,8 @@ importers:
         specifier: ^0.27.27
         version: 0.27.29
       '@types/node':
-        specifier: ^22.5.1
-        version: 22.8.1
+        specifier: ^22.8.4
+        version: 22.8.4
     devDependencies:
       '@swc/cli':
         specifier: ^0.4.0
@@ -1332,11 +1335,11 @@ importers:
         specifier: ^9.0.1
         version: 9.0.1
       msw:
-        specifier: ^2.4.8
-        version: 2.4.11(typescript@5.6.3)
+        specifier: ^2.6.0
+        version: 2.6.0(@types/node@22.8.4)(typescript@5.6.3)
       vitest:
         specifier: ^2.0.5
-        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+        version: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
 
 packages:
 
@@ -3649,18 +3652,10 @@ packages:
     resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/eslintrc@2.1.4':
-    resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   '@eslint/eslintrc@3.1.0':
     resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@eslint/js@8.57.0':
-    resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   '@eslint/js@9.13.0':
     resolution: {integrity: sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -3777,19 +3772,10 @@ packages:
     resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==}
     engines: {node: '>=18.18.0'}
 
-  '@humanwhocodes/config-array@0.11.14':
-    resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
-    engines: {node: '>=10.10.0'}
-    deprecated: Use @eslint/config-array instead
-
   '@humanwhocodes/module-importer@1.0.1':
     resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
     engines: {node: '>=12.22'}
 
-  '@humanwhocodes/object-schema@2.0.3':
-    resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
-    deprecated: Use @eslint/object-schema instead
-
   '@humanwhocodes/retry@0.3.1':
     resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
     engines: {node: '>=18.18'}
@@ -3904,25 +3890,25 @@ packages:
     cpu: [x64]
     os: [win32]
 
-  '@inquirer/confirm@3.2.0':
-    resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==}
-    engines: {node: '>=18'}
-
-  '@inquirer/core@9.2.1':
-    resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==}
+  '@inquirer/confirm@5.0.1':
+    resolution: {integrity: sha512-6ycMm7k7NUApiMGfVc32yIPp28iPKxhGRMqoNDiUjq2RyTAkbs5Fx0TdzBqhabcKvniDdAAvHCmsRjnNfTsogw==}
     engines: {node: '>=18'}
+    peerDependencies:
+      '@types/node': '>=18'
 
-  '@inquirer/figures@1.0.6':
-    resolution: {integrity: sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==}
+  '@inquirer/core@10.0.1':
+    resolution: {integrity: sha512-KKTgjViBQUi3AAssqjUFMnMO3CM3qwCHvePV9EW+zTKGKafFGFF01sc1yOIYjLJ7QU52G/FbzKc+c01WLzXmVQ==}
     engines: {node: '>=18'}
 
-  '@inquirer/type@1.5.5':
-    resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==}
+  '@inquirer/figures@1.0.7':
+    resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==}
     engines: {node: '>=18'}
 
-  '@inquirer/type@2.0.0':
-    resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==}
+  '@inquirer/type@3.0.0':
+    resolution: {integrity: sha512-YYykfbw/lefC7yKj7nanzQXILM7r3suIvyFlCcMskc99axmsSewXWkAfXKwMbgxL76iAFVmRwmYdwNZNc8gjog==}
     engines: {node: '>=18'}
+    peerDependencies:
+      '@types/node': '>=18'
 
   '@isaacs/cliui@8.0.2':
     resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
@@ -4003,8 +3989,8 @@ packages:
   '@mongodb-js/saslprep@1.1.7':
     resolution: {integrity: sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q==}
 
-  '@mswjs/interceptors@0.35.9':
-    resolution: {integrity: sha512-SSnyl/4ni/2ViHKkiZb8eajA/eN1DNFaHjhGiLUdZvDz6PKF4COSf/17xqSz64nOo2Ia29SA6B2KNCsyCbVmaQ==}
+  '@mswjs/interceptors@0.36.7':
+    resolution: {integrity: sha512-sdx02Wlus5hv6Bx7uUDb25gb0WGjCuSgnJB2LVERemoSGuqkZMe3QI6nEXhieFGtYwPrZbYrT2vPbsFN2XfbUw==}
     engines: {node: '>=18'}
 
   '@neondatabase/serverless@0.9.5':
@@ -4022,8 +4008,8 @@ packages:
   '@next/env@15.0.1':
     resolution: {integrity: sha512-lc4HeDUKO9gxxlM5G2knTRifqhsY6yYpwuHspBZdboZe0Gp+rZHBNNSIjmQKDJIdRXiXGyVnSD6gafrbQPvILQ==}
 
-  '@next/eslint-plugin-next@14.2.11':
-    resolution: {integrity: sha512-7mw+xW7Y03Ph4NTCcAzYe+vu4BNjEHZUfZayyF3Y1D9RX6c5NIe25m1grHEAkyUuaqjRxOYhnCNeglOkIqLkBA==}
+  '@next/eslint-plugin-next@15.0.2':
+    resolution: {integrity: sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==}
 
   '@next/swc-darwin-arm64@14.2.11':
     resolution: {integrity: sha512-eiY9u7wEJZWp/Pga07Qy3ZmNEfALmmSS1HtsJF3y1QEyaExu7boENz11fWqDmZ3uvcyAxCMhTrA1jfVxITQW8g==}
@@ -5071,6 +5057,9 @@ packages:
     cpu: [x64]
     os: [win32]
 
+  '@rtsao/scc@1.1.0':
+    resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+
   '@rushstack/eslint-patch@1.10.4':
     resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==}
 
@@ -5708,9 +5697,6 @@ packages:
   '@types/ms@0.7.34':
     resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
 
-  '@types/mute-stream@0.0.4':
-    resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==}
-
   '@types/node-fetch@2.6.11':
     resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
 
@@ -5729,11 +5715,8 @@ packages:
   '@types/node@22.7.7':
     resolution: {integrity: sha512-SRxCrrg9CL/y54aiMCG3edPKdprgMVGDXjA3gB8UmmBW5TcXzRUYAh8EWzTnSJFAd1rgImPELza+A3bJ+qxz8Q==}
 
-  '@types/node@22.7.8':
-    resolution: {integrity: sha512-a922jJy31vqR5sk+kAdIENJjHblqcZ4RmERviFsER4WJcEONqxKcjNOlk0q7OUfrF5sddT+vng070cdfMlrPLg==}
-
-  '@types/node@22.8.1':
-    resolution: {integrity: sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==}
+  '@types/node@22.8.4':
+    resolution: {integrity: sha512-SpNNxkftTJOPk0oN+y2bIqurEXHTA2AOZ3EJDDKeJ5VzkvvORSvmQXGQarcOzWV1ac7DCaPBEdMDxBsM+d8jWw==}
 
   '@types/parse-json@4.0.2':
     resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
@@ -5831,9 +5814,6 @@ packages:
   '@types/whatwg-url@11.0.5':
     resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
 
-  '@types/wrap-ansi@3.0.0':
-    resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==}
-
   '@types/ws@8.5.12':
     resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==}
 
@@ -5843,12 +5823,12 @@ packages:
   '@types/yargs@17.0.33':
     resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
 
-  '@typescript-eslint/eslint-plugin@7.2.0':
-    resolution: {integrity: sha512-mdekAHOqS9UjlmyF/LSs6AIEvfceV749GFxoBAjwAv0nkevfKHWQFDMcBZWUiIC5ft6ePWivXoS36aKQ0Cy3sw==}
-    engines: {node: ^16.0.0 || >=18.0.0}
+  '@typescript-eslint/eslint-plugin@8.12.2':
+    resolution: {integrity: sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      '@typescript-eslint/parser': ^7.0.0
-      eslint: ^8.56.0
+      '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+      eslint: ^8.57.0 || ^9.0.0
       typescript: '*'
     peerDependenciesMeta:
       typescript:
@@ -5875,19 +5855,32 @@ packages:
       typescript:
         optional: true
 
+  '@typescript-eslint/parser@8.12.2':
+    resolution: {integrity: sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: ^8.57.0 || ^9.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/scope-manager@7.2.0':
     resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==}
     engines: {node: ^16.0.0 || >=18.0.0}
 
+  '@typescript-eslint/scope-manager@8.12.2':
+    resolution: {integrity: sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@typescript-eslint/scope-manager@8.3.0':
     resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/type-utils@7.2.0':
-    resolution: {integrity: sha512-xHi51adBHo9O9330J8GQYQwrKBqbIPJGZZVQTHHmy200hvkLZFWJIFtAG/7IYTWUyun6DE6w5InDReePJYJlJA==}
-    engines: {node: ^16.0.0 || >=18.0.0}
+  '@typescript-eslint/type-utils@8.12.2':
+    resolution: {integrity: sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: ^8.56.0
       typescript: '*'
     peerDependenciesMeta:
       typescript:
@@ -5910,6 +5903,10 @@ packages:
     resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==}
     engines: {node: ^16.0.0 || >=18.0.0}
 
+  '@typescript-eslint/types@8.12.2':
+    resolution: {integrity: sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@typescript-eslint/types@8.3.0':
     resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -5932,6 +5929,15 @@ packages:
       typescript:
         optional: true
 
+  '@typescript-eslint/typescript-estree@8.12.2':
+    resolution: {integrity: sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/typescript-estree@8.3.0':
     resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -5941,11 +5947,11 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/utils@7.2.0':
-    resolution: {integrity: sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==}
-    engines: {node: ^16.0.0 || >=18.0.0}
+  '@typescript-eslint/utils@8.12.2':
+    resolution: {integrity: sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: ^8.56.0
+      eslint: ^8.57.0 || ^9.0.0
 
   '@typescript-eslint/utils@8.3.0':
     resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==}
@@ -5961,6 +5967,10 @@ packages:
     resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==}
     engines: {node: ^16.0.0 || >=18.0.0}
 
+  '@typescript-eslint/visitor-keys@8.12.2':
+    resolution: {integrity: sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@typescript-eslint/visitor-keys@8.3.0':
     resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -6312,9 +6322,6 @@ packages:
     resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==}
     engines: {node: '>=10'}
 
-  aria-query@5.1.3:
-    resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==}
-
   aria-query@5.3.2:
     resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
     engines: {node: '>= 0.4'}
@@ -6416,9 +6423,6 @@ packages:
   axios@1.7.2:
     resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==}
 
-  axobject-query@3.1.1:
-    resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==}
-
   axobject-query@4.1.0:
     resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
     engines: {node: '>= 0.4'}
@@ -7250,10 +7254,6 @@ packages:
     resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
     engines: {node: '>=6'}
 
-  deep-equal@2.2.3:
-    resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==}
-    engines: {node: '>= 0.4'}
-
   deep-extend@0.6.0:
     resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
     engines: {node: '>=4.0.0'}
@@ -7432,10 +7432,6 @@ packages:
     resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
     engines: {node: '>=0.10.0'}
 
-  doctrine@3.0.0:
-    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
-    engines: {node: '>=6.0.0'}
-
   docusaurus-plugin-typedoc@1.0.5:
     resolution: {integrity: sha512-mv8LBJYilGOOPLqaIM3vbYc34m4qwOCpb4WfP24DOPFNj2uiTerw8sg9MGvN6Jx2+J8rq9/WMnjcyz3UMqoIIQ==}
     peerDependencies:
@@ -7566,11 +7562,8 @@ packages:
     resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
     engines: {node: '>= 0.4'}
 
-  es-get-iterator@1.1.3:
-    resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==}
-
-  es-iterator-helpers@1.0.19:
-    resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==}
+  es-iterator-helpers@1.1.0:
+    resolution: {integrity: sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==}
     engines: {node: '>= 0.4'}
 
   es-module-lexer@1.5.4:
@@ -7650,10 +7643,10 @@ packages:
     engines: {node: '>=6.0'}
     hasBin: true
 
-  eslint-config-next@14.2.11:
-    resolution: {integrity: sha512-gGIoBoHCJuLn6vaV1Ke8UurVvgb7JjQv6oRlWmI6RAAxz7KwJOYxxm2blctavA0a3eofbE9TdgKvvTb2G55OHQ==}
+  eslint-config-next@15.0.2:
+    resolution: {integrity: sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==}
     peerDependencies:
-      eslint: ^7.23.0 || ^8.0.0
+      eslint: ^7.23.0 || ^8.0.0 || ^9.0.0
       typescript: '>=3.3.1'
     peerDependenciesMeta:
       typescript:
@@ -7665,8 +7658,8 @@ packages:
     peerDependencies:
       eslint: '>=7.0.0'
 
-  eslint-config-turbo@2.1.0:
-    resolution: {integrity: sha512-3SeE2OCWnkA/84adGJXABm++966LNGxRdXtXKBcplJdIe4PmERkov1z6Kzp2PrPKT13wGu/bwoLV5h1rm7v9ug==}
+  eslint-config-turbo@2.2.3:
+    resolution: {integrity: sha512-/zwNU+G2w0HszXzWILdl6/Catt86ejUG7vsFSdpnFzFAAUbbT2TxgoCFvC1fKtm6+SkQsXwkRRe9tFz0aMftpg==}
     peerDependencies:
       eslint: '>6.6.0'
 
@@ -7686,6 +7679,27 @@ packages:
       eslint-plugin-import-x:
         optional: true
 
+  eslint-module-utils@2.12.0:
+    resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
+    engines: {node: '>=4'}
+    peerDependencies:
+      '@typescript-eslint/parser': '*'
+      eslint: '*'
+      eslint-import-resolver-node: '*'
+      eslint-import-resolver-typescript: '*'
+      eslint-import-resolver-webpack: '*'
+    peerDependenciesMeta:
+      '@typescript-eslint/parser':
+        optional: true
+      eslint:
+        optional: true
+      eslint-import-resolver-node:
+        optional: true
+      eslint-import-resolver-typescript:
+        optional: true
+      eslint-import-resolver-webpack:
+        optional: true
+
   eslint-module-utils@2.8.2:
     resolution: {integrity: sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==}
     engines: {node: '>=4'}
@@ -7707,36 +7721,36 @@ packages:
       eslint-import-resolver-webpack:
         optional: true
 
-  eslint-plugin-import@2.29.1:
-    resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
+  eslint-plugin-import@2.31.0:
+    resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
     engines: {node: '>=4'}
     peerDependencies:
       '@typescript-eslint/parser': '*'
-      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+      eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
     peerDependenciesMeta:
       '@typescript-eslint/parser':
         optional: true
 
-  eslint-plugin-jsx-a11y@6.9.0:
-    resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==}
+  eslint-plugin-jsx-a11y@6.10.2:
+    resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
     engines: {node: '>=4.0'}
     peerDependencies:
-      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
+      eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
 
-  eslint-plugin-react-hooks@4.6.2:
-    resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==}
+  eslint-plugin-react-hooks@5.0.0:
+    resolution: {integrity: sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==}
     engines: {node: '>=10'}
     peerDependencies:
-      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+      eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
 
-  eslint-plugin-react@7.35.0:
-    resolution: {integrity: sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==}
+  eslint-plugin-react@7.37.2:
+    resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==}
     engines: {node: '>=4'}
     peerDependencies:
       eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
 
-  eslint-plugin-turbo@2.1.0:
-    resolution: {integrity: sha512-+CWVY29y7Qa+gvrKSzP+TOYrHAlNLCh/97K5VtDdnpH54h/JFmnd3U0aSG6WANe0HgAK8NHQfeWFDdRzfDqbKA==}
+  eslint-plugin-turbo@2.2.3:
+    resolution: {integrity: sha512-LHt35VwxthdGVO6hQRfvmFb6ee8/exAzAYWCy4o87Bnp7urltP8qg7xMd4dPSLAhtfnI2xSo1WgeVaR3MeItxw==}
     peerDependencies:
       eslint: '>6.6.0'
 
@@ -7744,10 +7758,6 @@ packages:
     resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
     engines: {node: '>=8.0.0'}
 
-  eslint-scope@7.2.2:
-    resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   eslint-scope@8.1.0:
     resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -7760,12 +7770,6 @@ packages:
     resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  eslint@8.57.0:
-    resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
-    hasBin: true
-
   eslint@9.13.0:
     resolution: {integrity: sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -7783,10 +7787,6 @@ packages:
     resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  espree@9.6.1:
-    resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-
   esprima@1.2.2:
     resolution: {integrity: sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==}
     engines: {node: '>=0.4.0'}
@@ -7936,6 +7936,10 @@ packages:
   fast-fifo@1.3.2:
     resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==}
 
+  fast-glob@3.3.1:
+    resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
+    engines: {node: '>=8.6.0'}
+
   fast-glob@3.3.2:
     resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
     engines: {node: '>=8.6.0'}
@@ -7988,10 +7992,6 @@ packages:
     resolution: {integrity: sha512-Lo6UPdMKKc9Ond7yjG2vq0mnocspOLh1oV6+XZdtfdexacvMSz5xm3WoQhTAdoR2+UqPlyMNqcqfecipoD+l/A==}
     engines: {node: '>=12'}
 
-  file-entry-cache@6.0.1:
-    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-
   file-entry-cache@8.0.0:
     resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
     engines: {node: '>=16.0.0'}
@@ -8058,10 +8058,6 @@ packages:
   find-yarn-workspace-root2@1.2.16:
     resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
 
-  flat-cache@3.2.0:
-    resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-
   flat-cache@4.0.1:
     resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
     engines: {node: '>=16'}
@@ -8363,11 +8359,6 @@ packages:
   glob-to-regexp@0.4.1:
     resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
 
-  glob@10.3.10:
-    resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
-    engines: {node: '>=16 || 14 >=14.17'}
-    hasBin: true
-
   glob@10.4.5:
     resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
     hasBin: true
@@ -8397,14 +8388,14 @@ packages:
     resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
     engines: {node: '>=4'}
 
-  globals@13.24.0:
-    resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
-    engines: {node: '>=8'}
-
   globals@14.0.0:
     resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
     engines: {node: '>=18'}
 
+  globals@15.11.0:
+    resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==}
+    engines: {node: '>=18'}
+
   globalthis@1.0.4:
     resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
     engines: {node: '>= 0.4'}
@@ -8716,8 +8707,8 @@ packages:
   humanize-ms@1.2.1:
     resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
 
-  husky@9.1.5:
-    resolution: {integrity: sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==}
+  husky@9.1.6:
+    resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==}
     engines: {node: '>=18'}
     hasBin: true
 
@@ -8830,10 +8821,6 @@ packages:
   is-alphanumerical@2.0.1:
     resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
 
-  is-arguments@1.1.1:
-    resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
-    engines: {node: '>= 0.4'}
-
   is-array-buffer@3.0.4:
     resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
     engines: {node: '>= 0.4'}
@@ -9118,12 +9105,9 @@ packages:
   isomorphic-fetch@3.0.0:
     resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
 
-  iterator.prototype@1.1.2:
-    resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
-
-  jackspeak@2.3.6:
-    resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
-    engines: {node: '>=14'}
+  iterator.prototype@1.1.3:
+    resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==}
+    engines: {node: '>= 0.4'}
 
   jackspeak@3.4.3:
     resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
@@ -9331,8 +9315,8 @@ packages:
   linkify-it@5.0.0:
     resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
 
-  lint-staged@15.2.9:
-    resolution: {integrity: sha512-BZAt8Lk3sEnxw7tfxM7jeZlPRuT4M68O0/CwZhhaw6eeWu0Lz5eERE3m386InivXB64fp/mDID452h48tvKlRQ==}
+  lint-staged@15.2.10:
+    resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==}
     engines: {node: '>=18.12.0'}
     hasBin: true
 
@@ -9978,8 +9962,8 @@ packages:
   ms@2.1.3:
     resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
 
-  msw@2.4.11:
-    resolution: {integrity: sha512-TVEw9NOPTc6ufOQLJ53234S9NBRxQbu7xFMxs+OCP43JQcNEIOKiZHxEm2nDzYIrwccoIhUxUf8wr99SukD76A==}
+  msw@2.6.0:
+    resolution: {integrity: sha512-n3tx2w0MZ3H4pxY0ozrQ4sNPzK/dGtlr2cIIyuEsgq2Bhy4wvcW6ZH2w/gXM9+MEUY6HC1fWhqtcXDxVZr5Jxw==}
     engines: {node: '>=18'}
     hasBin: true
     peerDependencies:
@@ -9996,9 +9980,9 @@ packages:
     resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
     hasBin: true
 
-  mute-stream@1.0.0:
-    resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==}
-    engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+  mute-stream@2.0.0:
+    resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==}
+    engines: {node: ^18.17.0 || >=20.5.0}
 
   mz@2.7.0:
     resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
@@ -10253,10 +10237,6 @@ packages:
     resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
     engines: {node: '>= 0.4'}
 
-  object-is@1.1.6:
-    resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
-    engines: {node: '>= 0.4'}
-
   object-keys@1.1.1:
     resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
     engines: {node: '>= 0.4'}
@@ -11027,16 +11007,13 @@ packages:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     engines: {node: '>= 0.8.0'}
 
-  prettier-plugin-organize-imports@4.0.0:
-    resolution: {integrity: sha512-vnKSdgv9aOlqKeEFGhf9SCBsTyzDSyScy1k7E0R1Uo4L0cTcOV7c1XQaT7jfXIOc/p08WLBfN2QUQA9zDSZMxA==}
+  prettier-plugin-organize-imports@4.1.0:
+    resolution: {integrity: sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A==}
     peerDependencies:
-      '@vue/language-plugin-pug': ^2.0.24
       prettier: '>=2.0'
       typescript: '>=2.9'
-      vue-tsc: ^2.0.24
+      vue-tsc: ^2.1.0
     peerDependenciesMeta:
-      '@vue/language-plugin-pug':
-        optional: true
       vue-tsc:
         optional: true
 
@@ -12044,10 +12021,6 @@ packages:
     resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==}
     engines: {node: '>=18'}
 
-  stop-iteration-iterator@1.0.0:
-    resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==}
-    engines: {node: '>= 0.4'}
-
   stoppable@1.1.0:
     resolution: {integrity: sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==}
     engines: {node: '>=4', npm: '>=6'}
@@ -12101,8 +12074,9 @@ packages:
     resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
     engines: {node: '>=18'}
 
-  string.prototype.includes@2.0.0:
-    resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==}
+  string.prototype.includes@2.0.1:
+    resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
+    engines: {node: '>= 0.4'}
 
   string.prototype.matchall@4.0.11:
     resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==}
@@ -12493,38 +12467,38 @@ packages:
   tunnel-agent@0.6.0:
     resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
 
-  turbo-darwin-64@2.1.2:
-    resolution: {integrity: sha512-3TEBxHWh99h2yIzkuIigMEOXt/ItYQp0aPiJjPd1xN4oDcsKK5AxiFKPH9pdtfIBzYsY59kQhZiFj0ELnSP7Bw==}
+  turbo-darwin-64@2.2.3:
+    resolution: {integrity: sha512-Rcm10CuMKQGcdIBS3R/9PMeuYnv6beYIHqfZFeKWVYEWH69sauj4INs83zKMTUiZJ3/hWGZ4jet9AOwhsssLyg==}
     cpu: [x64]
     os: [darwin]
 
-  turbo-darwin-arm64@2.1.2:
-    resolution: {integrity: sha512-he0miWNq2WxJzsH82jS2Z4MXpnkzn9SH8a79iPXiJkq25QREImucscM4RPasXm8wARp91pyysJMq6aasD45CeA==}
+  turbo-darwin-arm64@2.2.3:
+    resolution: {integrity: sha512-+EIMHkuLFqUdJYsA3roj66t9+9IciCajgj+DVek+QezEdOJKcRxlvDOS2BUaeN8kEzVSsNiAGnoysFWYw4K0HA==}
     cpu: [arm64]
     os: [darwin]
 
-  turbo-linux-64@2.1.2:
-    resolution: {integrity: sha512-fKUBcc0rK8Vdqv5a/E3CSpMBLG1bzwv+Q0Q83F8fG2ZfNCNKGbcEYABdonNZkkx141Rj03cZQFCgxu3MVEGU+A==}
+  turbo-linux-64@2.2.3:
+    resolution: {integrity: sha512-UBhJCYnqtaeOBQLmLo8BAisWbc9v9daL9G8upLR+XGj6vuN/Nz6qUAhverN4Pyej1g4Nt1BhROnj6GLOPYyqxQ==}
     cpu: [x64]
     os: [linux]
 
-  turbo-linux-arm64@2.1.2:
-    resolution: {integrity: sha512-sV8Bpmm0WiuxgbhxymcC7wSsuxfBBieI98GegSwbr/bs1ANAgzCg93urIrdKdQ3/b31zZxQwcaP4FBF1wx1Qdg==}
+  turbo-linux-arm64@2.2.3:
+    resolution: {integrity: sha512-hJYT9dN06XCQ3jBka/EWvvAETnHRs3xuO/rb5bESmDfG+d9yQjeTMlhRXKrr4eyIMt6cLDt1LBfyi+6CQ+VAwQ==}
     cpu: [arm64]
     os: [linux]
 
-  turbo-windows-64@2.1.2:
-    resolution: {integrity: sha512-wcmIJZI9ORT9ykHGliFE6kWRQrlH930QGSjSgWC8uFChFFuOyUlvC7ttcxuSvU9VqC7NF4C+GVAcFJQ8lTjN7g==}
+  turbo-windows-64@2.2.3:
+    resolution: {integrity: sha512-NPrjacrZypMBF31b4HE4ROg4P3nhMBPHKS5WTpMwf7wydZ8uvdEHpESVNMOtqhlp857zbnKYgP+yJF30H3N2dQ==}
     cpu: [x64]
     os: [win32]
 
-  turbo-windows-arm64@2.1.2:
-    resolution: {integrity: sha512-zdnXjrhk7YO6CP+Q5wPueEvOCLH4lDa6C4rrwiakcWcPgcQGbVozJlo4uaQ6awo8HLWQEvOwu84RkWTdLAc/Hw==}
+  turbo-windows-arm64@2.2.3:
+    resolution: {integrity: sha512-fnNrYBCqn6zgKPKLHu4sOkihBI/+0oYFr075duRxqUZ+1aLWTAGfHZLgjVeLh3zR37CVzuerGIPWAEkNhkWEIw==}
     cpu: [arm64]
     os: [win32]
 
-  turbo@2.1.2:
-    resolution: {integrity: sha512-Jb0rbU4iHEVQ18An/YfakdIv9rKnd3zUfSE117EngrfWXFHo3RndVH96US3GsT8VHpwTncPePDBT2t06PaFLrw==}
+  turbo@2.2.3:
+    resolution: {integrity: sha512-5lDvSqIxCYJ/BAd6rQGK/AzFRhBkbu4JHVMLmGh/hCb7U3CqSnr5Tjwfy9vc+/5wG2DJ6wttgAaA7MoCgvBKZQ==}
     hasBin: true
 
   twoslash-protocol@0.2.12:
@@ -12543,10 +12517,6 @@ packages:
     resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
     engines: {node: '>= 0.8.0'}
 
-  type-fest@0.20.2:
-    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
-    engines: {node: '>=10'}
-
   type-fest@0.21.3:
     resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
     engines: {node: '>=10'}
@@ -12602,6 +12572,15 @@ packages:
     peerDependencies:
       typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x
 
+  typescript-eslint@8.12.2:
+    resolution: {integrity: sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   typescript@5.6.2:
     resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
     engines: {node: '>=14.17'}
@@ -16416,7 +16395,7 @@ snapshots:
     dependencies:
       mime: 3.0.0
 
-  '@cloudflare/vitest-pool-workers@0.5.8(@cloudflare/workers-types@4.20240924.0)(@vitest/runner@2.1.1)(@vitest/snapshot@2.1.1)(bufferutil@4.0.8)(vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0))':
+  '@cloudflare/vitest-pool-workers@0.5.8(@cloudflare/workers-types@4.20240924.0)(@vitest/runner@2.1.1)(@vitest/snapshot@2.1.1)(bufferutil@4.0.8)(vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0))':
     dependencies:
       '@vitest/runner': 2.1.1
       '@vitest/snapshot': 2.1.1
@@ -16426,7 +16405,7 @@ snapshots:
       esbuild: 0.17.19
       miniflare: 3.20240909.5(bufferutil@4.0.8)
       semver: 7.6.3
-      vitest: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0)
+      vitest: 2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0)
       wrangler: 3.78.8(@cloudflare/workers-types@4.20240924.0)(bufferutil@4.0.8)
       zod: 3.23.8
     transitivePeerDependencies:
@@ -16520,7 +16499,7 @@ snapshots:
     transitivePeerDependencies:
       - '@algolia/client-search'
 
-  '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@babel/core': 7.25.2
       '@babel/generator': 7.25.6
@@ -16572,7 +16551,7 @@ snapshots:
       postcss-loader: 7.3.4(postcss@8.4.47)(typescript@5.6.3)(webpack@5.95.0)
       prompts: 2.4.2
       react: 18.3.1
-      react-dev-utils: 12.0.1(eslint@9.13.0)(typescript@5.6.3)(webpack@5.95.0)
+      react-dev-utils: 12.0.1(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(webpack@5.95.0)
       react-dom: 18.3.1(react@18.3.1)
       react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)'
@@ -16682,13 +16661,13 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/logger': 3.5.2
       '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
@@ -16725,13 +16704,13 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/logger': 3.5.2
       '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
@@ -16766,9 +16745,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
@@ -16798,9 +16777,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       fs-extra: 11.2.0
@@ -16828,9 +16807,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       react: 18.3.1
@@ -16856,9 +16835,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       '@types/gtag.js': 0.0.12
@@ -16885,9 +16864,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       react: 18.3.1
@@ -16913,9 +16892,9 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/logger': 3.5.2
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
@@ -16946,20 +16925,20 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/preset-classic@3.5.2(@algolia/client-search@5.9.1)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)':
-    dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@5.9.1)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
+  '@docusaurus/preset-classic@3.5.2(@algolia/client-search@5.9.1)(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)':
+    dependencies:
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@5.9.1)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       react: 18.3.1
       react-dom: 18.3.1(react@18.3.1)
@@ -17001,15 +16980,15 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@docusaurus/theme-classic@3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/theme-classic@3.5.2(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/theme-translations': 3.5.2
       '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
@@ -17050,11 +17029,11 @@ snapshots:
       - vue-template-compiler
       - webpack-cli
 
-  '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
+  '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)':
     dependencies:
       '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
-      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
       '@types/history': 4.7.11
@@ -17077,13 +17056,13 @@ snapshots:
       - uglify-js
       - webpack-cli
 
-  '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@5.9.1)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)':
+  '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@5.9.1)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(@types/react@18.3.12)(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)(typescript@5.6.3)':
     dependencies:
       '@docsearch/react': 3.6.1(@algolia/client-search@5.9.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.2)
-      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/logger': 3.5.2
-      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
-      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
+      '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.12)(react@18.3.1))(bufferutil@4.0.8)(eslint@9.13.0(jiti@2.3.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)
       '@docusaurus/theme-translations': 3.5.2
       '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
       '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)
@@ -17504,17 +17483,11 @@ snapshots:
   '@esbuild/win32-x64@0.24.0':
     optional: true
 
-  '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)':
+  '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0(jiti@2.3.3))':
     dependencies:
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
       eslint-visitor-keys: 3.4.3
 
-  '@eslint-community/eslint-utils@4.4.0(eslint@9.13.0)':
-    dependencies:
-      eslint: 9.13.0
-      eslint-visitor-keys: 3.4.3
-    optional: true
-
   '@eslint-community/regexpp@4.11.1': {}
 
   '@eslint/config-array@0.18.0':
@@ -17524,24 +17497,8 @@ snapshots:
       minimatch: 3.1.2
     transitivePeerDependencies:
       - supports-color
-    optional: true
 
-  '@eslint/core@0.7.0':
-    optional: true
-
-  '@eslint/eslintrc@2.1.4':
-    dependencies:
-      ajv: 6.12.6
-      debug: 4.3.7
-      espree: 9.6.1
-      globals: 13.24.0
-      ignore: 5.3.2
-      import-fresh: 3.3.0
-      js-yaml: 4.1.0
-      minimatch: 3.1.2
-      strip-json-comments: 3.1.1
-    transitivePeerDependencies:
-      - supports-color
+  '@eslint/core@0.7.0': {}
 
   '@eslint/eslintrc@3.1.0':
     dependencies:
@@ -17556,20 +17513,14 @@ snapshots:
       strip-json-comments: 3.1.1
     transitivePeerDependencies:
       - supports-color
-    optional: true
 
-  '@eslint/js@8.57.0': {}
+  '@eslint/js@9.13.0': {}
 
-  '@eslint/js@9.13.0':
-    optional: true
-
-  '@eslint/object-schema@2.1.4':
-    optional: true
+  '@eslint/object-schema@2.1.4': {}
 
   '@eslint/plugin-kit@0.2.1':
     dependencies:
       levn: 0.4.1
-    optional: true
 
   '@faker-js/faker@9.0.1': {}
 
@@ -17665,29 +17616,16 @@ snapshots:
     dependencies:
       '@huggingface/gguf': 0.1.12
 
-  '@humanfs/core@0.19.0':
-    optional: true
+  '@humanfs/core@0.19.0': {}
 
   '@humanfs/node@0.16.5':
     dependencies:
       '@humanfs/core': 0.19.0
       '@humanwhocodes/retry': 0.3.1
-    optional: true
-
-  '@humanwhocodes/config-array@0.11.14':
-    dependencies:
-      '@humanwhocodes/object-schema': 2.0.3
-      debug: 4.3.7
-      minimatch: 3.1.2
-    transitivePeerDependencies:
-      - supports-color
 
   '@humanwhocodes/module-importer@1.0.1': {}
 
-  '@humanwhocodes/object-schema@2.0.3': {}
-
-  '@humanwhocodes/retry@0.3.1':
-    optional: true
+  '@humanwhocodes/retry@0.3.1': {}
 
   '@icons-pack/react-simple-icons@10.1.0(react@18.3.1)':
     dependencies:
@@ -17768,35 +17706,31 @@ snapshots:
   '@img/sharp-win32-x64@0.33.5':
     optional: true
 
-  '@inquirer/confirm@3.2.0':
+  '@inquirer/confirm@5.0.1(@types/node@22.8.4)':
     dependencies:
-      '@inquirer/core': 9.2.1
-      '@inquirer/type': 1.5.5
+      '@inquirer/core': 10.0.1(@types/node@22.8.4)
+      '@inquirer/type': 3.0.0(@types/node@22.8.4)
+      '@types/node': 22.8.4
 
-  '@inquirer/core@9.2.1':
+  '@inquirer/core@10.0.1(@types/node@22.8.4)':
     dependencies:
-      '@inquirer/figures': 1.0.6
-      '@inquirer/type': 2.0.0
-      '@types/mute-stream': 0.0.4
-      '@types/node': 22.8.1
-      '@types/wrap-ansi': 3.0.0
+      '@inquirer/figures': 1.0.7
+      '@inquirer/type': 3.0.0(@types/node@22.8.4)
       ansi-escapes: 4.3.2
       cli-width: 4.1.0
-      mute-stream: 1.0.0
+      mute-stream: 2.0.0
       signal-exit: 4.1.0
       strip-ansi: 6.0.1
       wrap-ansi: 6.2.0
       yoctocolors-cjs: 2.1.2
+    transitivePeerDependencies:
+      - '@types/node'
 
-  '@inquirer/figures@1.0.6': {}
-
-  '@inquirer/type@1.5.5':
-    dependencies:
-      mute-stream: 1.0.0
+  '@inquirer/figures@1.0.7': {}
 
-  '@inquirer/type@2.0.0':
+  '@inquirer/type@3.0.0(@types/node@22.8.4)':
     dependencies:
-      mute-stream: 1.0.0
+      '@types/node': 22.8.4
 
   '@isaacs/cliui@8.0.2':
     dependencies:
@@ -17816,7 +17750,7 @@ snapshots:
       '@jest/schemas': 29.6.3
       '@types/istanbul-lib-coverage': 2.0.6
       '@types/istanbul-reports': 3.0.4
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       '@types/yargs': 17.0.33
       chalk: 4.1.2
 
@@ -17951,7 +17885,7 @@ snapshots:
     dependencies:
       sparse-bitfield: 3.0.3
 
-  '@mswjs/interceptors@0.35.9':
+  '@mswjs/interceptors@0.36.7':
     dependencies:
       '@open-draft/deferred-promise': 2.2.0
       '@open-draft/logger': 0.3.0
@@ -17973,9 +17907,9 @@ snapshots:
 
   '@next/env@15.0.1': {}
 
-  '@next/eslint-plugin-next@14.2.11':
+  '@next/eslint-plugin-next@15.0.2':
     dependencies:
-      glob: 10.3.10
+      fast-glob: 3.3.1
 
   '@next/swc-darwin-arm64@14.2.11':
     optional: true
@@ -18874,6 +18808,8 @@ snapshots:
   '@rollup/rollup-win32-x64-msvc@4.24.0':
     optional: true
 
+  '@rtsao/scc@1.1.0': {}
+
   '@rushstack/eslint-patch@1.10.4': {}
 
   '@sapphire/async-queue@1.5.2': {}
@@ -19589,27 +19525,27 @@ snapshots:
   '@types/body-parser@1.19.5':
     dependencies:
       '@types/connect': 3.4.38
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/bonjour@3.5.13':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/cacheable-request@6.0.3':
     dependencies:
       '@types/http-cache-semantics': 4.0.4
       '@types/keyv': 3.1.4
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       '@types/responselike': 1.0.3
 
   '@types/connect-history-api-fallback@1.5.4':
     dependencies:
       '@types/express-serve-static-core': 4.19.5
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/connect@3.4.38':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/cookie@0.6.0': {}
 
@@ -19627,7 +19563,7 @@ snapshots:
 
   '@types/express-serve-static-core@4.19.5':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       '@types/qs': 6.9.15
       '@types/range-parser': 1.2.7
       '@types/send': 0.17.4
@@ -19659,7 +19595,7 @@ snapshots:
 
   '@types/http-proxy@1.17.15':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/istanbul-lib-coverage@2.0.6': {}
 
@@ -19681,7 +19617,7 @@ snapshots:
 
   '@types/keyv@3.1.4':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/lodash-es@4.17.12':
     dependencies:
@@ -19699,18 +19635,14 @@ snapshots:
 
   '@types/ms@0.7.34': {}
 
-  '@types/mute-stream@0.0.4':
-    dependencies:
-      '@types/node': 22.8.1
-
   '@types/node-fetch@2.6.11':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       form-data: 4.0.1
 
   '@types/node-forge@1.3.11':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/node@12.20.55': {}
 
@@ -19724,11 +19656,7 @@ snapshots:
     dependencies:
       undici-types: 6.19.8
 
-  '@types/node@22.7.8':
-    dependencies:
-      undici-types: 6.19.8
-
-  '@types/node@22.8.1':
+  '@types/node@22.8.4':
     dependencies:
       undici-types: 6.19.8
 
@@ -19736,13 +19664,13 @@ snapshots:
 
   '@types/pg@8.11.6':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       pg-protocol: 1.6.1
       pg-types: 4.0.2
 
   '@types/pg@8.11.8':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       pg-protocol: 1.6.1
       pg-types: 4.0.2
 
@@ -19791,27 +19719,27 @@ snapshots:
 
   '@types/readable-stream@4.0.15':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       safe-buffer: 5.1.2
 
   '@types/resolve@1.20.2': {}
 
   '@types/responselike@1.0.3':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/retry@0.12.0': {}
 
   '@types/sax@1.2.7':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/semver@7.5.8': {}
 
   '@types/send@0.17.4':
     dependencies:
       '@types/mime': 1.3.5
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/serve-index@1.9.4':
     dependencies:
@@ -19820,12 +19748,12 @@ snapshots:
   '@types/serve-static@1.15.7':
     dependencies:
       '@types/http-errors': 2.0.4
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       '@types/send': 0.17.4
 
   '@types/sockjs@0.3.36':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/statuses@2.0.5': {}
 
@@ -19845,11 +19773,9 @@ snapshots:
     dependencies:
       '@types/webidl-conversions': 7.0.3
 
-  '@types/wrap-ansi@3.0.0': {}
-
   '@types/ws@8.5.12':
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
 
   '@types/yargs-parser@21.0.3': {}
 
@@ -19857,35 +19783,33 @@ snapshots:
     dependencies:
       '@types/yargs-parser': 21.0.3
 
-  '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/eslint-plugin@8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
       '@eslint-community/regexpp': 4.11.1
-      '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
-      '@typescript-eslint/scope-manager': 7.2.0
-      '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
-      '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
-      '@typescript-eslint/visitor-keys': 7.2.0
-      debug: 4.3.7
-      eslint: 8.57.0
+      '@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/scope-manager': 8.12.2
+      '@typescript-eslint/type-utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/visitor-keys': 8.12.2
+      eslint: 9.13.0(jiti@2.3.3)
       graphemer: 1.4.0
       ignore: 5.3.2
       natural-compare: 1.4.0
-      semver: 7.6.3
       ts-api-utils: 1.3.0(typescript@5.6.3)
     optionalDependencies:
       typescript: 5.6.3
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
       '@eslint-community/regexpp': 4.11.1
-      '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
+      '@typescript-eslint/parser': 7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       '@typescript-eslint/scope-manager': 8.3.0
-      '@typescript-eslint/type-utils': 8.3.0(eslint@8.57.0)(typescript@5.6.3)
-      '@typescript-eslint/utils': 8.3.0(eslint@8.57.0)(typescript@5.6.3)
+      '@typescript-eslint/type-utils': 8.3.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/utils': 8.3.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       '@typescript-eslint/visitor-keys': 8.3.0
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
       graphemer: 1.4.0
       ignore: 5.3.2
       natural-compare: 1.4.0
@@ -19895,14 +19819,27 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
       '@typescript-eslint/scope-manager': 7.2.0
       '@typescript-eslint/types': 7.2.0
       '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
       '@typescript-eslint/visitor-keys': 7.2.0
       debug: 4.3.7
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
+    optionalDependencies:
+      typescript: 5.6.3
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
+    dependencies:
+      '@typescript-eslint/scope-manager': 8.12.2
+      '@typescript-eslint/types': 8.12.2
+      '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
+      '@typescript-eslint/visitor-keys': 8.12.2
+      debug: 4.3.7
+      eslint: 9.13.0(jiti@2.3.3)
     optionalDependencies:
       typescript: 5.6.3
     transitivePeerDependencies:
@@ -19913,27 +19850,32 @@ snapshots:
       '@typescript-eslint/types': 7.2.0
       '@typescript-eslint/visitor-keys': 7.2.0
 
+  '@typescript-eslint/scope-manager@8.12.2':
+    dependencies:
+      '@typescript-eslint/types': 8.12.2
+      '@typescript-eslint/visitor-keys': 8.12.2
+
   '@typescript-eslint/scope-manager@8.3.0':
     dependencies:
       '@typescript-eslint/types': 8.3.0
       '@typescript-eslint/visitor-keys': 8.3.0
 
-  '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/type-utils@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
-      '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
-      '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
+      '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
+      '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       debug: 4.3.7
-      eslint: 8.57.0
       ts-api-utils: 1.3.0(typescript@5.6.3)
     optionalDependencies:
       typescript: 5.6.3
     transitivePeerDependencies:
+      - eslint
       - supports-color
 
-  '@typescript-eslint/type-utils@8.3.0(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/type-utils@8.3.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
       '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.3)
-      '@typescript-eslint/utils': 8.3.0(eslint@8.57.0)(typescript@5.6.3)
+      '@typescript-eslint/utils': 8.3.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
       debug: 4.3.7
       ts-api-utils: 1.3.0(typescript@5.6.3)
     optionalDependencies:
@@ -19946,6 +19888,8 @@ snapshots:
 
   '@typescript-eslint/types@7.2.0': {}
 
+  '@typescript-eslint/types@8.12.2': {}
+
   '@typescript-eslint/types@8.3.0': {}
 
   '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)':
@@ -19978,6 +19922,21 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
+  '@typescript-eslint/typescript-estree@8.12.2(typescript@5.6.3)':
+    dependencies:
+      '@typescript-eslint/types': 8.12.2
+      '@typescript-eslint/visitor-keys': 8.12.2
+      debug: 4.3.7
+      fast-glob: 3.3.2
+      is-glob: 4.0.3
+      minimatch: 9.0.5
+      semver: 7.6.3
+      ts-api-utils: 1.3.0(typescript@5.6.3)
+    optionalDependencies:
+      typescript: 5.6.3
+    transitivePeerDependencies:
+      - supports-color
+
   '@typescript-eslint/typescript-estree@8.3.0(typescript@5.6.3)':
     dependencies:
       '@typescript-eslint/types': 8.3.0
@@ -19993,27 +19952,24 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/utils@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
-      '@types/json-schema': 7.0.15
-      '@types/semver': 7.5.8
-      '@typescript-eslint/scope-manager': 7.2.0
-      '@typescript-eslint/types': 7.2.0
-      '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.3)
-      eslint: 8.57.0
-      semver: 7.6.3
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3))
+      '@typescript-eslint/scope-manager': 8.12.2
+      '@typescript-eslint/types': 8.12.2
+      '@typescript-eslint/typescript-estree': 8.12.2(typescript@5.6.3)
+      eslint: 9.13.0(jiti@2.3.3)
     transitivePeerDependencies:
       - supports-color
       - typescript
 
-  '@typescript-eslint/utils@8.3.0(eslint@8.57.0)(typescript@5.6.3)':
+  '@typescript-eslint/utils@8.3.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)':
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3))
       '@typescript-eslint/scope-manager': 8.3.0
       '@typescript-eslint/types': 8.3.0
       '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.6.3)
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -20028,6 +19984,11 @@ snapshots:
       '@typescript-eslint/types': 7.2.0
       eslint-visitor-keys: 3.4.3
 
+  '@typescript-eslint/visitor-keys@8.12.2':
+    dependencies:
+      '@typescript-eslint/types': 8.12.2
+      eslint-visitor-keys: 3.4.3
+
   '@typescript-eslint/visitor-keys@8.3.0':
     dependencies:
       '@typescript-eslint/types': 8.3.0
@@ -20052,14 +20013,14 @@ snapshots:
     transitivePeerDependencies:
       - utf-8-validate
 
-  '@vitejs/plugin-react@4.3.2(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0))':
+  '@vitejs/plugin-react@4.3.2(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0))':
     dependencies:
       '@babel/core': 7.25.2
       '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2)
       '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2)
       '@types/babel__core': 7.20.5
       react-refresh: 0.14.2
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
     transitivePeerDependencies:
       - supports-color
 
@@ -20070,14 +20031,14 @@ snapshots:
       chai: 5.1.1
       tinyrainbow: 1.2.0
 
-  '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.4.11(typescript@5.6.3))(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0))':
+  '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0))':
     dependencies:
       '@vitest/spy': 2.1.1
       estree-walker: 3.0.3
       magic-string: 0.30.12
     optionalDependencies:
-      msw: 2.4.11(typescript@5.6.3)
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+      msw: 2.6.0(@types/node@22.8.4)(typescript@5.6.3)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
 
   '@vitest/pretty-format@2.1.1':
     dependencies:
@@ -20469,10 +20430,6 @@ snapshots:
     dependencies:
       tslib: 2.8.0
 
-  aria-query@5.1.3:
-    dependencies:
-      deep-equal: 2.2.3
-
   aria-query@5.3.2: {}
 
   array-buffer-byte-length@1.0.1:
@@ -20602,10 +20559,6 @@ snapshots:
     transitivePeerDependencies:
       - debug
 
-  axobject-query@3.1.1:
-    dependencies:
-      deep-equal: 2.2.3
-
   axobject-query@4.1.0: {}
 
   b4a@1.6.6: {}
@@ -21557,27 +21510,6 @@ snapshots:
 
   deep-eql@5.0.2: {}
 
-  deep-equal@2.2.3:
-    dependencies:
-      array-buffer-byte-length: 1.0.1
-      call-bind: 1.0.7
-      es-get-iterator: 1.1.3
-      get-intrinsic: 1.2.4
-      is-arguments: 1.1.1
-      is-array-buffer: 3.0.4
-      is-date-object: 1.0.5
-      is-regex: 1.1.4
-      is-shared-array-buffer: 1.0.3
-      isarray: 2.0.5
-      object-is: 1.1.6
-      object-keys: 1.1.1
-      object.assign: 4.1.5
-      regexp.prototype.flags: 1.5.2
-      side-channel: 1.0.6
-      which-boxed-primitive: 1.0.2
-      which-collection: 1.0.2
-      which-typed-array: 1.1.15
-
   deep-extend@0.6.0: {}
 
   deep-is@0.1.4: {}
@@ -21754,10 +21686,6 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  doctrine@3.0.0:
-    dependencies:
-      esutils: 2.0.3
-
   docusaurus-plugin-typedoc@1.0.5(typedoc-plugin-markdown@4.2.6(typedoc@0.26.6(typescript@5.6.3))):
     dependencies:
       typedoc-plugin-markdown: 4.2.6(typedoc@0.26.6(typescript@5.6.3))
@@ -21928,19 +21856,7 @@ snapshots:
 
   es-errors@1.3.0: {}
 
-  es-get-iterator@1.1.3:
-    dependencies:
-      call-bind: 1.0.7
-      get-intrinsic: 1.2.4
-      has-symbols: 1.0.3
-      is-arguments: 1.1.1
-      is-map: 2.0.3
-      is-set: 2.0.3
-      is-string: 1.0.7
-      isarray: 2.0.5
-      stop-iteration-iterator: 1.0.0
-
-  es-iterator-helpers@1.0.19:
+  es-iterator-helpers@1.1.0:
     dependencies:
       call-bind: 1.0.7
       define-properties: 1.2.1
@@ -21954,7 +21870,7 @@ snapshots:
       has-proto: 1.0.3
       has-symbols: 1.0.3
       internal-slot: 1.0.7
-      iterator.prototype: 1.1.2
+      iterator.prototype: 1.1.3
       safe-array-concat: 1.1.2
 
   es-module-lexer@1.5.4: {}
@@ -22127,19 +22043,19 @@ snapshots:
     optionalDependencies:
       source-map: 0.6.1
 
-  eslint-config-next@14.2.11(eslint@8.57.0)(typescript@5.6.3):
+  eslint-config-next@15.0.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3):
     dependencies:
-      '@next/eslint-plugin-next': 14.2.11
+      '@next/eslint-plugin-next': 15.0.2
       '@rushstack/eslint-patch': 1.10.4
-      '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)
-      '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
-      eslint: 8.57.0
+      '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/parser': 7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      eslint: 9.13.0(jiti@2.3.3)
       eslint-import-resolver-node: 0.3.9
-      eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
-      eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
-      eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0)
-      eslint-plugin-react: 7.35.0(eslint@8.57.0)
-      eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0)
+      eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3))
+      eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3))
+      eslint-plugin-jsx-a11y: 6.10.2(eslint@9.13.0(jiti@2.3.3))
+      eslint-plugin-react: 7.37.2(eslint@9.13.0(jiti@2.3.3))
+      eslint-plugin-react-hooks: 5.0.0(eslint@9.13.0(jiti@2.3.3))
     optionalDependencies:
       typescript: 5.6.3
     transitivePeerDependencies:
@@ -22147,14 +22063,14 @@ snapshots:
       - eslint-plugin-import-x
       - supports-color
 
-  eslint-config-prettier@9.1.0(eslint@8.57.0):
+  eslint-config-prettier@9.1.0(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
 
-  eslint-config-turbo@2.1.0(eslint@8.57.0):
+  eslint-config-turbo@2.2.3(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
-      eslint: 8.57.0
-      eslint-plugin-turbo: 2.1.0(eslint@8.57.0)
+      eslint: 9.13.0(jiti@2.3.3)
+      eslint-plugin-turbo: 2.2.3(eslint@9.13.0(jiti@2.3.3))
 
   eslint-import-resolver-node@0.3.9:
     dependencies:
@@ -22164,47 +22080,59 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0):
+  eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
       '@nolyfill/is-core-module': 1.0.39
       debug: 4.3.7
       enhanced-resolve: 5.17.1
-      eslint: 8.57.0
-      eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
+      eslint: 9.13.0(jiti@2.3.3)
+      eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3))
       fast-glob: 3.3.2
       get-tsconfig: 4.8.1
       is-bun-module: 1.1.0
       is-glob: 4.0.3
     optionalDependencies:
-      eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)
+      eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3))
     transitivePeerDependencies:
       - '@typescript-eslint/parser'
       - eslint-import-resolver-node
       - eslint-import-resolver-webpack
       - supports-color
 
-  eslint-module-utils@2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
+  eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
       debug: 3.2.7
     optionalDependencies:
-      '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
-      eslint: 8.57.0
+      '@typescript-eslint/parser': 7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      eslint: 9.13.0(jiti@2.3.3)
       eslint-import-resolver-node: 0.3.9
-      eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0)
+      eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3))
     transitivePeerDependencies:
       - supports-color
 
-  eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0):
+  eslint-module-utils@2.8.2(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
+      debug: 3.2.7
+    optionalDependencies:
+      '@typescript-eslint/parser': 7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      eslint: 9.13.0(jiti@2.3.3)
+      eslint-import-resolver-node: 0.3.9
+      eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3))
+    transitivePeerDependencies:
+      - supports-color
+
+  eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-typescript@3.6.3)(eslint@9.13.0(jiti@2.3.3)):
+    dependencies:
+      '@rtsao/scc': 1.1.0
       array-includes: 3.1.8
       array.prototype.findlastindex: 1.2.5
       array.prototype.flat: 1.3.2
       array.prototype.flatmap: 1.3.2
       debug: 3.2.7
       doctrine: 2.1.0
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
       eslint-import-resolver-node: 0.3.9
-      eslint-module-utils: 2.8.2(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
+      eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.13.0(jiti@2.3.3)))(eslint@9.13.0(jiti@2.3.3))
       hasown: 2.0.2
       is-core-module: 2.15.1
       is-glob: 4.0.3
@@ -22213,47 +22141,47 @@ snapshots:
       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
     optionalDependencies:
-      '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.3)
+      '@typescript-eslint/parser': 7.2.0(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
     transitivePeerDependencies:
       - eslint-import-resolver-typescript
       - eslint-import-resolver-webpack
       - supports-color
 
-  eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0):
+  eslint-plugin-jsx-a11y@6.10.2(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
-      aria-query: 5.1.3
+      aria-query: 5.3.2
       array-includes: 3.1.8
       array.prototype.flatmap: 1.3.2
       ast-types-flow: 0.0.8
       axe-core: 4.10.0
-      axobject-query: 3.1.1
+      axobject-query: 4.1.0
       damerau-levenshtein: 1.0.8
       emoji-regex: 9.2.2
-      es-iterator-helpers: 1.0.19
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
       hasown: 2.0.2
       jsx-ast-utils: 3.3.5
       language-tags: 1.0.9
       minimatch: 3.1.2
       object.fromentries: 2.0.8
       safe-regex-test: 1.0.3
-      string.prototype.includes: 2.0.0
+      string.prototype.includes: 2.0.1
 
-  eslint-plugin-react-hooks@4.6.2(eslint@8.57.0):
+  eslint-plugin-react-hooks@5.0.0(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
 
-  eslint-plugin-react@7.35.0(eslint@8.57.0):
+  eslint-plugin-react@7.37.2(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
       array-includes: 3.1.8
       array.prototype.findlast: 1.2.5
       array.prototype.flatmap: 1.3.2
       array.prototype.tosorted: 1.1.4
       doctrine: 2.1.0
-      es-iterator-helpers: 1.0.19
-      eslint: 8.57.0
+      es-iterator-helpers: 1.1.0
+      eslint: 9.13.0(jiti@2.3.3)
       estraverse: 5.3.0
       hasown: 2.0.2
       jsx-ast-utils: 3.3.5
@@ -22267,78 +22195,28 @@ snapshots:
       string.prototype.matchall: 4.0.11
       string.prototype.repeat: 1.0.0
 
-  eslint-plugin-turbo@2.1.0(eslint@8.57.0):
+  eslint-plugin-turbo@2.2.3(eslint@9.13.0(jiti@2.3.3)):
     dependencies:
       dotenv: 16.0.3
-      eslint: 8.57.0
+      eslint: 9.13.0(jiti@2.3.3)
 
   eslint-scope@5.1.1:
     dependencies:
       esrecurse: 4.3.0
       estraverse: 4.3.0
 
-  eslint-scope@7.2.2:
-    dependencies:
-      esrecurse: 4.3.0
-      estraverse: 5.3.0
-
   eslint-scope@8.1.0:
     dependencies:
       esrecurse: 4.3.0
       estraverse: 5.3.0
-    optional: true
 
   eslint-visitor-keys@3.4.3: {}
 
-  eslint-visitor-keys@4.1.0:
-    optional: true
+  eslint-visitor-keys@4.1.0: {}
 
-  eslint@8.57.0:
+  eslint@9.13.0(jiti@2.3.3):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
-      '@eslint-community/regexpp': 4.11.1
-      '@eslint/eslintrc': 2.1.4
-      '@eslint/js': 8.57.0
-      '@humanwhocodes/config-array': 0.11.14
-      '@humanwhocodes/module-importer': 1.0.1
-      '@nodelib/fs.walk': 1.2.8
-      '@ungap/structured-clone': 1.2.0
-      ajv: 6.12.6
-      chalk: 4.1.2
-      cross-spawn: 7.0.3
-      debug: 4.3.7
-      doctrine: 3.0.0
-      escape-string-regexp: 4.0.0
-      eslint-scope: 7.2.2
-      eslint-visitor-keys: 3.4.3
-      espree: 9.6.1
-      esquery: 1.6.0
-      esutils: 2.0.3
-      fast-deep-equal: 3.1.3
-      file-entry-cache: 6.0.1
-      find-up: 5.0.0
-      glob-parent: 6.0.2
-      globals: 13.24.0
-      graphemer: 1.4.0
-      ignore: 5.3.2
-      imurmurhash: 0.1.4
-      is-glob: 4.0.3
-      is-path-inside: 3.0.3
-      js-yaml: 4.1.0
-      json-stable-stringify-without-jsonify: 1.0.1
-      levn: 0.4.1
-      lodash.merge: 4.6.2
-      minimatch: 3.1.2
-      natural-compare: 1.4.0
-      optionator: 0.9.4
-      strip-ansi: 6.0.1
-      text-table: 0.2.0
-    transitivePeerDependencies:
-      - supports-color
-
-  eslint@9.13.0:
-    dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@2.3.3))
       '@eslint-community/regexpp': 4.11.1
       '@eslint/config-array': 0.18.0
       '@eslint/core': 0.7.0
@@ -22373,9 +22251,10 @@ snapshots:
       natural-compare: 1.4.0
       optionator: 0.9.4
       text-table: 0.2.0
+    optionalDependencies:
+      jiti: 2.3.3
     transitivePeerDependencies:
       - supports-color
-    optional: true
 
   esm-env@1.0.0: {}
 
@@ -22384,13 +22263,6 @@ snapshots:
       acorn: 8.13.0
       acorn-jsx: 5.3.2(acorn@8.13.0)
       eslint-visitor-keys: 4.1.0
-    optional: true
-
-  espree@9.6.1:
-    dependencies:
-      acorn: 8.13.0
-      acorn-jsx: 5.3.2(acorn@8.13.0)
-      eslint-visitor-keys: 3.4.3
 
   esprima@1.2.2: {}
 
@@ -22462,7 +22334,7 @@ snapshots:
 
   eval@0.1.8:
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       require-like: 0.1.2
 
   event-target-shim@5.0.1: {}
@@ -22580,6 +22452,14 @@ snapshots:
 
   fast-fifo@1.3.2: {}
 
+  fast-glob@3.3.1:
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      '@nodelib/fs.walk': 1.2.8
+      glob-parent: 5.1.2
+      merge2: 1.4.1
+      micromatch: 4.0.8
+
   fast-glob@3.3.2:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -22638,14 +22518,9 @@ snapshots:
       to-arraybuffer: 1.0.1
       tough-cookie: 4.1.4
 
-  file-entry-cache@6.0.1:
-    dependencies:
-      flat-cache: 3.2.0
-
   file-entry-cache@8.0.0:
     dependencies:
       flat-cache: 4.0.1
-    optional: true
 
   file-loader@6.2.0(webpack@5.95.0):
     dependencies:
@@ -22732,17 +22607,10 @@ snapshots:
       micromatch: 4.0.8
       pkg-dir: 4.2.0
 
-  flat-cache@3.2.0:
-    dependencies:
-      flatted: 3.3.1
-      keyv: 4.5.4
-      rimraf: 3.0.2
-
   flat-cache@4.0.1:
     dependencies:
       flatted: 3.3.1
       keyv: 4.5.4
-    optional: true
 
   flat@5.0.2: {}
 
@@ -22765,7 +22633,7 @@ snapshots:
       cross-spawn: 7.0.3
       signal-exit: 4.1.0
 
-  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.13.0)(typescript@5.6.3)(webpack@5.95.0):
+  fork-ts-checker-webpack-plugin@6.5.3(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(webpack@5.95.0):
     dependencies:
       '@babel/code-frame': 7.25.7
       '@types/json-schema': 7.0.15
@@ -22783,7 +22651,7 @@ snapshots:
       typescript: 5.6.3
       webpack: 5.95.0
     optionalDependencies:
-      eslint: 9.13.0
+      eslint: 9.13.0(jiti@2.3.3)
 
   form-data-encoder@1.7.2: {}
 
@@ -23167,14 +23035,6 @@ snapshots:
 
   glob-to-regexp@0.4.1: {}
 
-  glob@10.3.10:
-    dependencies:
-      foreground-child: 3.3.0
-      jackspeak: 2.3.6
-      minimatch: 9.0.5
-      minipass: 7.1.2
-      path-scurry: 1.11.1
-
   glob@10.4.5:
     dependencies:
       foreground-child: 3.3.0
@@ -23218,12 +23078,9 @@ snapshots:
 
   globals@11.12.0: {}
 
-  globals@13.24.0:
-    dependencies:
-      type-fest: 0.20.2
+  globals@14.0.0: {}
 
-  globals@14.0.0:
-    optional: true
+  globals@15.11.0: {}
 
   globalthis@1.0.4:
     dependencies:
@@ -23733,7 +23590,7 @@ snapshots:
     dependencies:
       ms: 2.1.3
 
-  husky@9.1.5: {}
+  husky@9.1.6: {}
 
   iconv-lite@0.4.24:
     dependencies:
@@ -23823,11 +23680,6 @@ snapshots:
       is-alphabetical: 2.0.1
       is-decimal: 2.0.1
 
-  is-arguments@1.1.1:
-    dependencies:
-      call-bind: 1.0.7
-      has-tostringtag: 1.0.2
-
   is-array-buffer@3.0.4:
     dependencies:
       call-bind: 1.0.7
@@ -24046,7 +23898,7 @@ snapshots:
     transitivePeerDependencies:
       - encoding
 
-  iterator.prototype@1.1.2:
+  iterator.prototype@1.1.3:
     dependencies:
       define-properties: 1.2.1
       get-intrinsic: 1.2.4
@@ -24054,12 +23906,6 @@ snapshots:
       reflect.getprototypeof: 1.0.6
       set-function-name: 2.0.2
 
-  jackspeak@2.3.6:
-    dependencies:
-      '@isaacs/cliui': 8.0.2
-    optionalDependencies:
-      '@pkgjs/parseargs': 0.11.0
-
   jackspeak@3.4.3:
     dependencies:
       '@isaacs/cliui': 8.0.2
@@ -24075,7 +23921,7 @@ snapshots:
   jest-util@29.7.0:
     dependencies:
       '@jest/types': 29.6.3
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       chalk: 4.1.2
       ci-info: 3.9.0
       graceful-fs: 4.2.11
@@ -24083,13 +23929,13 @@ snapshots:
 
   jest-worker@27.5.1:
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       merge-stream: 2.0.0
       supports-color: 8.1.1
 
   jest-worker@29.7.0:
     dependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       jest-util: 29.7.0
       merge-stream: 2.0.0
       supports-color: 8.1.1
@@ -24290,7 +24136,7 @@ snapshots:
     dependencies:
       uc.micro: 2.1.0
 
-  lint-staged@15.2.9:
+  lint-staged@15.2.10:
     dependencies:
       chalk: 5.3.0
       commander: 12.1.0
@@ -25239,13 +25085,14 @@ snapshots:
 
   ms@2.1.3: {}
 
-  msw@2.4.11(typescript@5.6.3):
+  msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3):
     dependencies:
       '@bundled-es-modules/cookie': 2.0.0
       '@bundled-es-modules/statuses': 1.0.1
       '@bundled-es-modules/tough-cookie': 0.1.6
-      '@inquirer/confirm': 3.2.0
-      '@mswjs/interceptors': 0.35.9
+      '@inquirer/confirm': 5.0.1(@types/node@22.8.4)
+      '@mswjs/interceptors': 0.36.7
+      '@open-draft/deferred-promise': 2.2.0
       '@open-draft/until': 2.1.0
       '@types/cookie': 0.6.0
       '@types/statuses': 2.0.5
@@ -25260,6 +25107,8 @@ snapshots:
       yargs: 17.7.2
     optionalDependencies:
       typescript: 5.6.3
+    transitivePeerDependencies:
+      - '@types/node'
 
   multicast-dns@7.2.5:
     dependencies:
@@ -25268,7 +25117,7 @@ snapshots:
 
   mustache@4.2.0: {}
 
-  mute-stream@1.0.0: {}
+  mute-stream@2.0.0: {}
 
   mz@2.7.0:
     dependencies:
@@ -25585,11 +25434,6 @@ snapshots:
 
   object-inspect@1.13.2: {}
 
-  object-is@1.1.6:
-    dependencies:
-      call-bind: 1.0.7
-      define-properties: 1.2.1
-
   object-keys@1.1.1: {}
 
   object.assign@4.1.5:
@@ -26389,7 +26233,7 @@ snapshots:
 
   prelude-ls@1.2.1: {}
 
-  prettier-plugin-organize-imports@4.0.0(prettier@3.3.3)(typescript@5.6.3):
+  prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.6.3):
     dependencies:
       prettier: 3.3.3
       typescript: 5.6.3
@@ -26458,7 +26302,7 @@ snapshots:
       '@protobufjs/path': 1.1.2
       '@protobufjs/pool': 1.1.0
       '@protobufjs/utf8': 1.1.0
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       long: 5.2.3
 
   proxy-addr@2.0.7:
@@ -26570,7 +26414,7 @@ snapshots:
       minimist: 1.2.8
       strip-json-comments: 2.0.1
 
-  react-dev-utils@12.0.1(eslint@9.13.0)(typescript@5.6.3)(webpack@5.95.0):
+  react-dev-utils@12.0.1(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(webpack@5.95.0):
     dependencies:
       '@babel/code-frame': 7.25.7
       address: 1.2.2
@@ -26581,7 +26425,7 @@ snapshots:
       escape-string-regexp: 4.0.0
       filesize: 8.0.7
       find-up: 5.0.0
-      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.13.0)(typescript@5.6.3)(webpack@5.95.0)
+      fork-ts-checker-webpack-plugin: 6.5.3(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)(webpack@5.95.0)
       global-modules: 2.0.0
       globby: 11.1.0
       gzip-size: 6.0.0
@@ -27641,10 +27485,6 @@ snapshots:
 
   stdin-discarder@0.2.2: {}
 
-  stop-iteration-iterator@1.0.0:
-    dependencies:
-      internal-slot: 1.0.7
-
   stoppable@1.1.0: {}
 
   stopwords-iso@1.1.0: {}
@@ -27704,8 +27544,9 @@ snapshots:
       get-east-asian-width: 1.3.0
       strip-ansi: 7.1.0
 
-  string.prototype.includes@2.0.0:
+  string.prototype.includes@2.0.1:
     dependencies:
+      call-bind: 1.0.7
       define-properties: 1.2.1
       es-abstract: 1.23.3
 
@@ -28139,32 +27980,32 @@ snapshots:
     dependencies:
       safe-buffer: 5.2.1
 
-  turbo-darwin-64@2.1.2:
+  turbo-darwin-64@2.2.3:
     optional: true
 
-  turbo-darwin-arm64@2.1.2:
+  turbo-darwin-arm64@2.2.3:
     optional: true
 
-  turbo-linux-64@2.1.2:
+  turbo-linux-64@2.2.3:
     optional: true
 
-  turbo-linux-arm64@2.1.2:
+  turbo-linux-arm64@2.2.3:
     optional: true
 
-  turbo-windows-64@2.1.2:
+  turbo-windows-64@2.2.3:
     optional: true
 
-  turbo-windows-arm64@2.1.2:
+  turbo-windows-arm64@2.2.3:
     optional: true
 
-  turbo@2.1.2:
+  turbo@2.2.3:
     optionalDependencies:
-      turbo-darwin-64: 2.1.2
-      turbo-darwin-arm64: 2.1.2
-      turbo-linux-64: 2.1.2
-      turbo-linux-arm64: 2.1.2
-      turbo-windows-64: 2.1.2
-      turbo-windows-arm64: 2.1.2
+      turbo-darwin-64: 2.2.3
+      turbo-darwin-arm64: 2.2.3
+      turbo-linux-64: 2.2.3
+      turbo-linux-arm64: 2.2.3
+      turbo-windows-64: 2.2.3
+      turbo-windows-arm64: 2.2.3
 
   twoslash-protocol@0.2.12: {}
 
@@ -28184,8 +28025,6 @@ snapshots:
     dependencies:
       prelude-ls: 1.2.1
 
-  type-fest@0.20.2: {}
-
   type-fest@0.21.3: {}
 
   type-fest@1.4.0: {}
@@ -28252,6 +28091,17 @@ snapshots:
       typescript: 5.6.3
       yaml: 2.5.0
 
+  typescript-eslint@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3):
+    dependencies:
+      '@typescript-eslint/eslint-plugin': 8.12.2(@typescript-eslint/parser@8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3))(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/parser': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+      '@typescript-eslint/utils': 8.12.2(eslint@9.13.0(jiti@2.3.3))(typescript@5.6.3)
+    optionalDependencies:
+      typescript: 5.6.3
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+
   typescript@5.6.2: {}
 
   typescript@5.6.3: {}
@@ -28476,12 +28326,12 @@ snapshots:
       '@types/unist': 3.0.3
       vfile-message: 4.0.2
 
-  vite-node@2.1.1(@types/node@22.8.1)(terser@5.36.0):
+  vite-node@2.1.1(@types/node@22.8.4)(terser@5.36.0):
     dependencies:
       cac: 6.7.14
       debug: 4.3.7
       pathe: 1.1.2
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
     transitivePeerDependencies:
       - '@types/node'
       - less
@@ -28493,24 +28343,24 @@ snapshots:
       - supports-color
       - terser
 
-  vite-plugin-wasm@3.3.0(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0)):
+  vite-plugin-wasm@3.3.0(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0)):
     dependencies:
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
 
-  vite@5.4.9(@types/node@22.8.1)(terser@5.36.0):
+  vite@5.4.9(@types/node@22.8.4)(terser@5.36.0):
     dependencies:
       esbuild: 0.21.5
       postcss: 8.4.47
       rollup: 4.24.0
     optionalDependencies:
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       fsevents: 2.3.3
       terser: 5.36.0
 
-  vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.1)(happy-dom@15.7.4)(msw@2.4.11(typescript@5.6.3))(terser@5.36.0):
+  vitest@2.1.1(@edge-runtime/vm@4.0.3)(@types/node@22.8.4)(happy-dom@15.7.4)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(terser@5.36.0):
     dependencies:
       '@vitest/expect': 2.1.1
-      '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.4.11(typescript@5.6.3))(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0))
+      '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(msw@2.6.0(@types/node@22.8.4)(typescript@5.6.3))(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0))
       '@vitest/pretty-format': 2.1.1
       '@vitest/runner': 2.1.1
       '@vitest/snapshot': 2.1.1
@@ -28525,12 +28375,12 @@ snapshots:
       tinyexec: 0.3.0
       tinypool: 1.0.1
       tinyrainbow: 1.2.0
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
-      vite-node: 2.1.1(@types/node@22.8.1)(terser@5.36.0)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
+      vite-node: 2.1.1(@types/node@22.8.4)(terser@5.36.0)
       why-is-node-running: 2.3.0
     optionalDependencies:
       '@edge-runtime/vm': 4.0.3
-      '@types/node': 22.8.1
+      '@types/node': 22.8.4
       happy-dom: 15.7.4
     transitivePeerDependencies:
       - less
@@ -28553,18 +28403,18 @@ snapshots:
     optionalDependencies:
       typescript: 5.6.3
 
-  waku@0.21.4(@swc/helpers@0.5.13)(@types/node@22.8.1)(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react-server-dom-webpack@19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0))(react@19.0.0-rc-bf7e210c-20241017)(terser@5.36.0):
+  waku@0.21.4(@swc/helpers@0.5.13)(@types/node@22.8.4)(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react-server-dom-webpack@19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0))(react@19.0.0-rc-bf7e210c-20241017)(terser@5.36.0):
     dependencies:
       '@hono/node-server': 1.13.2(hono@4.6.5)
       '@swc/core': 1.7.36(@swc/helpers@0.5.13)
-      '@vitejs/plugin-react': 4.3.2(vite@5.4.9(@types/node@22.8.1)(terser@5.36.0))
+      '@vitejs/plugin-react': 4.3.2(vite@5.4.9(@types/node@22.8.4)(terser@5.36.0))
       dotenv: 16.4.5
       hono: 4.6.5
       react: 19.0.0-rc-bf7e210c-20241017
       react-dom: 19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017)
       react-server-dom-webpack: 19.0.0-rc-bf7e210c-20241017(react-dom@19.0.0-rc-bf7e210c-20241017(react@19.0.0-rc-bf7e210c-20241017))(react@19.0.0-rc-bf7e210c-20241017)(webpack@5.95.0)
       rsc-html-stream: 0.0.3
-      vite: 5.4.9(@types/node@22.8.1)(terser@5.36.0)
+      vite: 5.4.9(@types/node@22.8.4)(terser@5.36.0)
     transitivePeerDependencies:
       - '@swc/helpers'
       - '@types/node'
diff --git a/prettier.config.js b/prettier.config.mjs
similarity index 73%
rename from prettier.config.js
rename to prettier.config.mjs
index 1fe03c66698992f11be3c9c3b63eff6f27ba52ad..e9e308611c5b98f40bfce4cad75f37e6cd1c8af3 100644
--- a/prettier.config.js
+++ b/prettier.config.mjs
@@ -1,3 +1,3 @@
-module.exports = {
+export default {
   plugins: ["prettier-plugin-organize-imports"],
 };
diff --git a/unit/package.json b/unit/package.json
index fd618359712b4ebbee50781461e2d0b326408cdf..ecafc9b392e0911a3c1ce5c8c9f8b093a9171789 100644
--- a/unit/package.json
+++ b/unit/package.json
@@ -8,7 +8,7 @@
   },
   "devDependencies": {
     "@faker-js/faker": "^9.0.1",
-    "msw": "^2.4.8",
+    "msw": "^2.6.0",
     "vitest": "^2.0.5"
   },
   "dependencies": {