Actualización de paquetes

This commit is contained in:
David Arranz 2026-04-12 12:06:32 +02:00
parent ec8e734851
commit 3430ae3cb9
20 changed files with 4242 additions and 4634 deletions

View File

@ -12,62 +12,62 @@
"format": "biome format --write"
},
"devDependencies": {
"@biomejs/biome": "^2.3.1",
"@biomejs/biome": "^2.4.11",
"@repo/typescript-config": "workspace:*",
"@types/bcrypt": "^5.0.2",
"@types/bcrypt": "^6.0.0",
"@types/cors": "^2.8.19",
"@types/dinero.js": "^1.9.4",
"@types/express": "^4.17.21",
"@types/glob": "^8.1.0",
"@types/jsonwebtoken": "^9.0.8",
"@types/luxon": "^3.6.2",
"@types/node": "^22.15.12",
"@types/passport": "^1.0.16",
"@types/dinero.js": "^2.0.0",
"@types/express": "^5.0.6",
"@types/glob": "^9.0.0",
"@types/jsonwebtoken": "^9.0.10",
"@types/luxon": "^3.7.1",
"@types/node": "^25.6.0",
"@types/passport": "^1.0.17",
"@types/passport-jwt": "^4.0.1",
"@types/passport-local": "^1.0.38",
"@types/response-time": "^2.3.8",
"rimraf": "^6.0.0",
"@types/response-time": "^2.3.9",
"rimraf": "^6.1.3",
"tsconfig-paths": "^4.2.0",
"tsup": "8.5.0",
"tsx": "4.20.6",
"typescript": "^5.9.3"
"tsup": "8.5.1",
"tsx": "4.21.0",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/auth": "workspace:*",
"@erp/core": "workspace:*",
"@erp/customers": "workspace:*",
"@erp/customer-invoices": "workspace:*",
"@erp/customers": "workspace:*",
"@erp/factuges": "workspace:*",
"@erp/suppliers": "workspace:*",
"@repo/rdx-logger": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"bcrypt": "^5.1.1",
"bcrypt": "^6.0.0",
"cls-rtracer": "^2.6.3",
"cors": "^2.8.5",
"dinero.js": "^1.9.1",
"dotenv": "^16.5.0",
"express": "^4.18.2",
"express-list-routes": "^1.3.1",
"handlebars": "^4.7.8",
"helmet": "^8.0.0",
"cors": "^2.8.6",
"dinero.js": "1.9.1",
"dotenv": "^17.4.1",
"express": "^4.22.1",
"express-list-routes": "^1.3.2",
"handlebars": "^4.7.9",
"helmet": "^8.1.0",
"http": "0.0.1-security",
"jsonwebtoken": "^9.0.2",
"luxon": "^3.6.1",
"module-alias": "^2.2.3",
"mysql2": "^3.12.0",
"jsonwebtoken": "^9.0.3",
"luxon": "^3.7.2",
"module-alias": "^2.3.4",
"mysql2": "^3.22.0",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"pg-hstore": "^2.3.4",
"reflect-metadata": "^0.2.2",
"response-time": "^2.3.3",
"response-time": "^2.3.4",
"sequelize": "^6.37.8",
"shallow-equal-object": "^1.1.1",
"ts-node": "^10.9.1",
"uuid": "^11.0.5",
"winston": "^3.17.0",
"ts-node": "^10.9.2",
"uuid": "^13.0.0",
"winston": "^3.19.0",
"winston-daily-rotate-file": "^5.0.0",
"zod": "^4.1.11"
"zod": "^4.3.6"
},
"engines": {
"node": ">=22"

View File

@ -1 +1,2 @@
export * from "./theme-provider";
export * from "./use-theme";

View File

@ -0,0 +1,77 @@
import { createContext, useEffect, useMemo, useState } from "react";
import secureLocalStorageImport from "react-secure-storage";
type Theme = "dark" | "light" | "system";
type ThemeProviderProps = {
children: React.ReactNode;
defaultTheme?: Theme;
storageKey?: string;
};
type ThemeProviderState = {
theme: Theme;
setTheme: (theme: Theme) => void;
};
const secureLocalStorage = (secureLocalStorageImport as any)?.default ?? secureLocalStorageImport;
const initialState: ThemeProviderState = {
theme: "system",
setTheme: () => null,
};
export const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
export const ThemeProvider = ({
children,
defaultTheme = "system",
storageKey = "vite-ui-theme",
...props
}: ThemeProviderProps) => {
const [theme, setThemeState] = useState<Theme>(() => {
try {
const stored = secureLocalStorage?.getItem?.(storageKey);
return (stored as Theme) || defaultTheme;
} catch {
return defaultTheme;
}
});
useEffect(() => {
const root = window.document.documentElement;
root.classList.remove("light", "dark");
if (theme === "system") {
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light";
root.classList.add(systemTheme);
return;
}
root.classList.add(theme);
}, [theme]);
const value = useMemo(
() => ({
theme,
setTheme: (nextTheme: Theme) => {
try {
secureLocalStorage?.setItem?.(storageKey, nextTheme);
} catch {
// fallback silencioso
}
setThemeState(nextTheme);
},
}),
[theme, storageKey]
);
return (
<ThemeProviderContext.Provider {...props} value={value}>
{children}
</ThemeProviderContext.Provider>
);
};

View File

@ -1,66 +1,6 @@
import { createContext, useContext, useEffect, useState } from "react";
import secureLocalStorage from "react-secure-storage";
import { useContext } from "react";
type Theme = "dark" | "light" | "system";
type ThemeProviderProps = {
children: React.ReactNode;
defaultTheme?: Theme;
storageKey?: string;
};
type ThemeProviderState = {
theme: Theme;
setTheme: (theme: Theme) => void;
};
const initialState: ThemeProviderState = {
theme: "system",
setTheme: () => null,
};
const ThemeProviderContext = createContext<ThemeProviderState>(initialState);
export function ThemeProvider({
children,
defaultTheme = "system",
storageKey = "vite-ui-theme",
...props
}: ThemeProviderProps) {
const [theme, setTheme] = useState<Theme>(
() => (secureLocalStorage.getItem(storageKey) as Theme) || defaultTheme
);
useEffect(() => {
const root = window.document.documentElement;
root.classList.remove("light", "dark");
if (theme === "system") {
const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light";
root.classList.add(systemTheme);
return;
}
root.classList.add(theme);
}, [theme]);
const value = {
theme,
setTheme: (theme: Theme) => {
secureLocalStorage.setItem(storageKey, theme);
setTheme(theme);
},
};
return (
<ThemeProviderContext.Provider {...props} value={value}>
{children}
</ThemeProviderContext.Provider>
);
}
import { ThemeProviderContext } from "./theme-provider";
export const useTheme = () => {
const context = useContext(ThemeProviderContext);

View File

@ -14,26 +14,26 @@
"./client": "./src/web/index.ts"
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@biomejs/biome": "^2.3.1",
"@types/express": "^4.17.21",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.9.3"
"@biomejs/biome": "^2.4.11",
"@types/express": "^5.0.6",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/core": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
"@repo/rdx-ui": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-query": "^5.90.6",
"@tanstack/react-query": "^5.98.0",
"react-hook-form": "^7.72.1",
"react-router-dom": "^6.26.0",
"react-router-dom": "^7.14.0",
"react-secure-storage": "^1.3.2"
}
}

View File

@ -18,21 +18,21 @@
"./hooks": "./src/web/hooks/index.ts"
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@hookform/devtools": "^4.4.0",
"@types/dinero.js": "^1.9.4",
"@types/express": "^4.17.21",
"@types/dinero.js": "^2.0.0",
"@types/express": "^5.0.6",
"@types/mime-types": "^3.0.1",
"@types/react": "^19.1.2",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.9.3"
"@types/react": "^19.2.14",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"typescript": "^6.0.2"
},
"dependencies": {
"@hookform/resolvers": "^5.0.1",
"@hookform/resolvers": "^5.2.2",
"@repo/i18next": "workspace:*",
"@repo/rdx-criteria": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
@ -40,17 +40,17 @@
"@repo/rdx-ui": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-query": "^5.75.4",
"axios": "^1.14.0",
"dinero.js": "^1.9.1",
"express": "^4.18.2",
"@tanstack/react-query": "^5.98.0",
"axios": "^1.15.0",
"dinero.js": "1.9.1",
"express": "^4.22.1",
"http-status": "^2.1.0",
"lucide-react": "^0.577.0",
"mime-types": "^3.0.1",
"lucide-react": "^1.8.0",
"mime-types": "^3.0.2",
"react-hook-form": "^7.72.1",
"react-i18next": "^15.5.1",
"react-router-dom": "^6.26.0",
"react-i18next": "^17.0.2",
"react-router-dom": "^7.14.0",
"sequelize": "^6.37.8",
"zod": "^4.1.11"
"zod": "^4.3.6"
}
}

View File

@ -1,4 +1,5 @@
import { CustomDialog } from "@repo/rdx-ui/components";
import { useTranslation } from "../../../i18n";
type UnsavedChangesDialogProps = {
@ -9,15 +10,17 @@ type UnsavedChangesDialogProps = {
export function UnsavedChangesDialog({ open, onConfirm }: UnsavedChangesDialogProps) {
const { t } = useTranslation();
return <CustomDialog
open={open}
onConfirm={onConfirm}
title={t("hooks.unsaved_changes_dialog.title", "¿Descartar cambios?")}
description={t(
"hooks.unsaved_changes_dialog.description",
"Tienes cambios sin guardar. Si sales de esta página, se perderán."
)}
cancelLabel={t("hooks.unsaved_changes_dialog.cancel", "Seguir en esta página")}
confirmLabel={t("hooks.unsaved_changes_dialog.confirm", "Descartar cambios")}
/>
return (
<CustomDialog
cancelLabel={t("hooks.unsaved_changes_dialog.cancel", "Seguir en esta página")}
confirmLabel={t("hooks.unsaved_changes_dialog.confirm", "Descartar cambios")}
description={t(
"hooks.unsaved_changes_dialog.description",
"Tienes cambios sin guardar. Si sales de esta página, se perderán."
)}
onConfirm={onConfirm}
open={open}
title={t("hooks.unsaved_changes_dialog.title", "¿Descartar cambios?")}
/>
);
}

View File

@ -17,19 +17,19 @@
"./globals.css": "./src/web/globals.css"
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@hookform/devtools": "^4.4.0",
"@types/dinero.js": "^1.9.4",
"@types/express": "^4.17.21",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.3",
"@types/dinero.js": "^2.0.0",
"@types/express": "^5.0.6",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/react-router-dom": "^5.3.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.9.3"
"react": "^19.2.5",
"react-dom": "^19.2.5",
"typescript": "^6.0.2"
},
"dependencies": {
"@dnd-kit/core": "^6.3.1",
@ -38,7 +38,7 @@
"@erp/auth": "workspace:*",
"@erp/core": "workspace:*",
"@erp/customers": "workspace:*",
"@hookform/resolvers": "^5.0.1",
"@hookform/resolvers": "^5.2.2",
"@repo/i18next": "workspace:*",
"@repo/rdx-criteria": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
@ -46,20 +46,20 @@
"@repo/rdx-ui": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-query": "^5.90.6",
"@tanstack/react-query": "^5.98.0",
"@tanstack/react-table": "^8.21.3",
"class-variance-authority": "^0.7.1",
"date-fns": "^4.1.0",
"dinero.js": "^1.9.1",
"express": "^4.18.2",
"libphonenumber-js": "^1.12.7",
"lucide-react": "^0.577.0",
"dinero.js": "1.9.1",
"express": "^4.22.1",
"libphonenumber-js": "^1.12.41",
"lucide-react": "^1.8.0",
"pg-hstore": "^2.3.4",
"react-hook-form": "^7.72.1",
"react-i18next": "^15.5.1",
"react-i18next": "^17.0.2",
"react-qr-code": "^2.0.18",
"react-router-dom": "^6.26.0",
"react-router-dom": "^7.14.0",
"sequelize": "^6.37.8",
"zod": "^4.1.11"
"zod": "^4.3.6"
}
}

View File

@ -19,21 +19,21 @@
"./components": "./src/web/components/index.ts"
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/react": "^19.1.2",
"@types/express": "^5.0.6",
"@types/react": "^19.2.14",
"@types/react-router-dom": "^5.3.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.9.3"
"react": "^19.2.5",
"react-dom": "^19.2.5",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/auth": "workspace:*",
"@erp/core": "workspace:*",
"@hookform/resolvers": "^5.0.1",
"@hookform/resolvers": "^5.2.2",
"@repo/i18next": "workspace:*",
"@repo/rdx-criteria": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
@ -41,16 +41,16 @@
"@repo/rdx-ui": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-query": "^5.90.6",
"@tanstack/react-query": "^5.98.0",
"@tanstack/react-table": "^8.21.3",
"express": "^4.18.2",
"lucide-react": "^0.577.0",
"express": "^4.22.1",
"lucide-react": "^1.8.0",
"react-data-table-component": "^7.7.0",
"react-hook-form": "^7.72.1",
"react-i18next": "^16.2.4",
"react-router-dom": "^6.26.0",
"react-i18next": "^17.0.2",
"react-router-dom": "^7.14.0",
"sequelize": "^6.37.8",
"use-debounce": "^10.0.5",
"zod": "^4.1.11"
"use-debounce": "^10.1.1",
"zod": "^4.3.6"
}
}

View File

@ -14,21 +14,21 @@
"./api": "./src/api/index.ts"
},
"devDependencies": {
"@types/express": "^4.17.21",
"typescript": "^5.9.3"
"@types/express": "^5.0.6",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/auth": "workspace:*",
"@erp/core": "workspace:*",
"@erp/customers": "workspace:*",
"@erp/customer-invoices": "workspace:*",
"@erp/customers": "workspace:*",
"@repo/i18next": "workspace:*",
"@repo/rdx-criteria": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
"@repo/rdx-logger": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"express": "^4.18.2",
"express": "^4.22.1",
"sequelize": "^6.37.8",
"zod": "^4.1.11"
"zod": "^4.3.6"
}
}

View File

@ -15,8 +15,8 @@
"./api": "./src/api/index.ts"
},
"devDependencies": {
"@types/express": "^4.17.21",
"typescript": "^5.9.3"
"@types/express": "^5.0.6",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/auth": "workspace:*",
@ -26,8 +26,8 @@
"@repo/rdx-ddd": "workspace:*",
"@repo/rdx-logger": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"express": "^4.18.2",
"express": "^4.22.1",
"sequelize": "^6.37.8",
"zod": "^4.1.11"
"zod": "^4.3.6"
}
}

View File

@ -19,21 +19,21 @@
"./components": "./src/web/components/index.ts"
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@types/express": "^4.17.21",
"@types/react": "^19.1.2",
"@types/express": "^5.0.6",
"@types/react": "^19.2.14",
"@types/react-router-dom": "^5.3.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.9.3"
"react": "^19.2.5",
"react-dom": "^19.2.5",
"typescript": "^6.0.2"
},
"dependencies": {
"@erp/auth": "workspace:*",
"@erp/core": "workspace:*",
"@hookform/resolvers": "^5.0.1",
"@hookform/resolvers": "^5.2.2",
"@repo/i18next": "workspace:*",
"@repo/rdx-criteria": "workspace:*",
"@repo/rdx-ddd": "workspace:*",
@ -41,16 +41,16 @@
"@repo/rdx-ui": "workspace:*",
"@repo/rdx-utils": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-query": "^5.90.6",
"@tanstack/react-query": "^5.98.0",
"@tanstack/react-table": "^8.21.3",
"express": "^4.18.2",
"lucide-react": "^0.577.0",
"express": "^4.22.1",
"lucide-react": "^1.8.0",
"react-data-table-component": "^7.7.0",
"react-hook-form": "^7.72.1",
"react-i18next": "^16.2.4",
"react-router-dom": "^6.26.0",
"react-i18next": "^17.0.2",
"react-router-dom": "^7.14.0",
"sequelize": "^6.37.8",
"use-debounce": "^10.0.5",
"zod": "^4.1.11"
"use-debounce": "^10.1.1",
"zod": "^4.3.6"
}
}

View File

@ -21,18 +21,20 @@
"clean": "turbo run clean && rimraf ./node_modules && rimraf ./package-lock.json && rimraf ./out"
},
"devDependencies": {
"@biomejs/biome": "2.3.1",
"@biomejs/biome": "2.4.11",
"@repo/typescript-config": "workspace:*",
"@typescript-eslint/eslint-plugin": "^8.56.1",
"@typescript-eslint/parser": "^8.56.1",
"baseline-browser-mapping": "^2.10.8",
"@tailwindcss/postcss": "^4.2.2",
"@typescript-eslint/eslint-plugin": "^8.58.1",
"@typescript-eslint/parser": "^8.58.1",
"baseline-browser-mapping": "^2.10.18",
"change-case": "^5.4.4",
"inquirer": "^12.10.0",
"inquirer": "^13.4.1",
"plop": "^4.0.5",
"rimraf": "^6.0.0",
"rimraf": "^6.1.3",
"ts-node": "^10.9.2",
"turbo": "^2.5.8",
"typescript": "5.9.3"
"tailwindcss": "^4.2.2",
"turbo": "^2.9.6",
"typescript": "6.0.2"
},
"engines": {
"node": ">=24"

View File

@ -11,14 +11,14 @@
".": "./src/i18n.ts"
},
"dependencies": {
"i18next": "25.6.0",
"i18next-browser-languagedetector": "^8.1.0",
"i18next-http-backend": "^3.0.2",
"react-i18next": "^12.3.1"
"i18next": "26.0.4",
"i18next-browser-languagedetector": "^8.2.1",
"i18next-http-backend": "^3.0.4",
"react-i18next": "^17.0.2"
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"@types/node": "^22.15.12",
"typescript": "^5.9.3"
"@types/node": "^25.6.0",
"typescript": "^6.0.2"
}
}

View File

@ -14,8 +14,8 @@
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"rimraf": "^6.0.0",
"typescript": "^5.9.3"
"rimraf": "^6.1.3",
"typescript": "^6.0.2"
},
"dependencies": {
"sequelize": "^6.37.8"

View File

@ -13,15 +13,15 @@
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"@types/node": "^22.15.12",
"@types/dinero.js": "^1.9.4",
"typescript": "^5.9.3"
"@types/dinero.js": "^2.0.0",
"@types/node": "^25.6.0",
"typescript": "^6.0.2"
},
"dependencies": {
"@repo/rdx-utils": "workspace:*",
"dinero.js": "^1.9.1",
"libphonenumber-js": "^1.11.20",
"dinero.js": "1.9.1",
"libphonenumber-js": "^1.12.41",
"shallow-equal-object": "^1.1.1",
"zod": "^4.1.11"
"zod": "^4.3.6"
}
}

View File

@ -12,11 +12,11 @@
".": "./src/index.ts"
},
"devDependencies": {
"typescript": "^5.9.3"
"typescript": "^6.0.2"
},
"dependencies": {
"cls-rtracer": "^2.6.3",
"winston": "^3.17.0",
"winston": "^3.19.0",
"winston-daily-rotate-file": "^5.0.0"
}
}

View File

@ -18,48 +18,49 @@
]
},
"peerDependencies": {
"react": "^19.1.0",
"react-dom": "^19.1.0"
"react": "^19.2.5",
"react-dom": "^19.2.5"
},
"devDependencies": {
"@biomejs/biome": "^2.3.1",
"@biomejs/biome": "^2.4.11",
"@repo/i18next": "workspace:*",
"@repo/typescript-config": "workspace:*",
"@tailwindcss/postcss": "^4.1.5",
"@turbo/gen": "^2.5.2",
"@types/node": "^22.15.12",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.3",
"@vitejs/plugin-react": "^4.4.1",
"@tailwindcss/postcss": "^4.2.2",
"@turbo/gen": "^2.9.6",
"@types/node": "^25.6.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"esbuild-plugin-react18": "^0.2.6",
"esbuild-plugin-react18-css": "^0.0.4",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"typescript": "^5.6.0",
"tailwindcss": "^4.1.10",
"tsup": "^8.4.0",
"tw-animate-css": "^1.2.9",
"typescript-plugin-css-modules": "^5.1.0",
"vite-tsconfig-paths": "^5.1.4"
"react": "^19.2.5",
"react-dom": "^19.2.5",
"tailwindcss": "^4.2.2",
"tsup": "^8.5.1",
"tw-animate-css": "^1.4.0",
"typescript": "^6.0.2",
"typescript-plugin-css-modules": "^5.2.0",
"vite-tsconfig-paths": "^6.1.1"
},
"dependencies": {
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/modifiers": "^9.0.0",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
"@radix-ui/react-tabs": "^1.1.12",
"@radix-ui/react-tabs": "^1.1.13",
"@repo/i18next": "workspace:*",
"@repo/shadcn-ui": "workspace:*",
"@tanstack/react-table": "^8.21.3",
"class-variance-authority": "^0.7.1",
"cmdk": "^1.1.1",
"esbuild-raw-plugin": "^0.2.0",
"lucide-react": "^0.577.0",
"react-i18next": "^15.5.1",
"react-router": "^6.26.0",
"react-router-dom": "^6.26.0",
"recharts": "^2.15.3",
"sonner": "^2.0.3",
"zod": "^4.1.11"
"esbuild-raw-plugin": "^0.3.1",
"lucide-react": "^1.8.0",
"react-hook-form": "^7.72.1",
"react-i18next": "^17.0.2",
"react-router": "^7.14.0",
"react-router-dom": "^7.14.0",
"recharts": "^3.8.1",
"sonner": "^2.0.7",
"zod": "^4.3.6"
}
}

View File

@ -13,11 +13,11 @@
},
"devDependencies": {
"@repo/typescript-config": "workspace:*",
"@types/node": "^22.15.12",
"typescript": "^5.9.3"
"@types/node": "^25.6.0",
"typescript": "^6.0.2"
},
"dependencies": {
"joi": "^17.13.3",
"uuid": "^11.0.5"
"joi": "^18.1.2",
"uuid": "^13.0.0"
}
}

File diff suppressed because it is too large Load Diff