fixing routes

This commit is contained in:
2025-09-12 18:12:38 -06:00
parent e0a1058231
commit 43375ef5f8
45 changed files with 220 additions and 177 deletions
-2
View File
@@ -1,2 +0,0 @@
NEXT_PUBLIC_API_URL=
PORT=
@@ -1,5 +1,4 @@
.tableContainer {
margin-top: 10px;
overflow-y: auto;
overflow-x: auto;
border-radius: 4px;
@@ -68,6 +67,12 @@
.resetButton:hover {
background-color: #cc0000;
}
.checkbox{
display: inline-flex;
width: 100%;
}
.checkbox-grid label {
display: inline-flex;
align-items: center;
@@ -65,7 +65,6 @@ export default function Page() {
<option value="90">PCNET2</option>
</select>
{/* Checkboxes */}
<div className="checkbox-grid">
<label>
<input type="checkbox" />
@@ -105,9 +104,9 @@ export default function Page() {
<option value="90">15</option>
</select>
<div className="checkbox-grid">
<label>
<div className="checkbox">
<input type="checkbox" />
<label>
Mantenimiento
</label>
</div>
@@ -30,12 +30,12 @@ export default function Page() {
},
{
key: "Liberar",
label: "Canceñlar tiempo",
label: "Cancelar tiempo",
content: (
<>
<div className="checkbox-grid">
<label>
<input type="checkbox" /> Mesa
<input type="checkbox" /> Equipo
</label>
<label>
<input type="checkbox" /> Cuenta
@@ -48,7 +48,6 @@ export default function Page() {
]}
/>
{/* This is the new component to display available tables */}
</div>
</section>
);
@@ -1,5 +1,4 @@
.tableContainer {
margin-top: 10px;
overflow-y: auto;
overflow-x: auto;
border-radius: 4px;
@@ -103,58 +103,62 @@ export default function Page() {
key: "2",
label: "Bitacora de alumno",
content: (
<div className={styles.tableContainer}>
<>
<SearchDate />
<table className={styles.machineTable}>
<thead>
<tr>
<th>Tiempo Entrada</th>
<th>Tiempo Asignado</th>
<th>Ubicacion del equipo</th>
</tr>
</thead>
<tbody>
{alumnos.map((alumno, index) => (
<tr key={index}>
<td>{alumno.tiempo_entrada}</td>
<td>{alumno.tiempo_asignado}</td>
<td>{alumno.Ubicacion_equipo}</td>
<div className={styles.tableContainer}>
<table className={styles.machineTable}>
<thead>
<tr>
<th>Tiempo Entrada</th>
<th>Tiempo Asignado</th>
<th>Ubicacion del equipo</th>
</tr>
))}
</tbody>
</table>
</div>
</thead>
<tbody>
{alumnos.map((alumno, index) => (
<tr key={index}>
<td>{alumno.tiempo_entrada}</td>
<td>{alumno.tiempo_asignado}</td>
<td>{alumno.Ubicacion_equipo}</td>
</tr>
))}
</tbody>
</table>
</div>
</>
),
},
{
key: "3",
label: "Bitacora mesas",
content: (
<div className={styles.tableContainer}>
<>
<SearchDate />
<table className={styles.machineTable}>
<thead>
<tr>
<th>Mesa</th>
<th>Cuenta</th>
<th>Hora Entrada</th>
<th>Tiempo Asignado</th>
<th>Hora Salida</th>
</tr>
</thead>
<tbody>
{tables.map((table, index) => (
<tr key={index}>
<td>{table.no_mesa}</td>
<td>{table.no_cuenta}</td>
<td>{table.hora_entrada}</td>
<td>{table.tiempo_asignado}</td>
<td>{table.hora_salida}</td>
<div className={styles.tableContainer}>
<table className={styles.machineTable}>
<thead>
<tr>
<th>Mesa</th>
<th>Cuenta</th>
<th>Hora Entrada</th>
<th>Tiempo Asignado</th>
<th>Hora Salida</th>
</tr>
))}
</tbody>
</table>
</div>
</thead>
<tbody>
{tables.map((table, index) => (
<tr key={index}>
<td>{table.no_mesa}</td>
<td>{table.no_cuenta}</td>
<td>{table.hora_entrada}</td>
<td>{table.tiempo_asignado}</td>
<td>{table.hora_salida}</td>
</tr>
))}
</tbody>
</table>
</div>
</>
),
},
{
@@ -162,9 +166,9 @@ export default function Page() {
label: "Sanciones",
content: (
<>
<SearchUser />
<Information NoCuenta="id cuenta" Nombre="id nombre" />
<div className={styles.tableContainer}>
<SearchUser/>
<Information NoCuenta="id cuenta" Nombre="id nombre" />
<table className={styles.machineTable}>
<thead>
<tr>
@@ -203,24 +207,23 @@ export default function Page() {
))}
</tbody>
</table>
<form className="containerForm">
<div className="groupInput">
<select
value={ubicacion_equipo}
onChange={(e) => setUbicacionEquipo(e.target.value)}
>
<option value="">-- Selecciona una sancion --</option>
<option value="sancion 1">
No cerrar sesion (Una semana)
</option>
</select>
<button className="button buttonSearch" type="submit">
Aplicar sancion
</button>
</div>
</form>
</div>
<form className="containerForm">
<div className="groupInput">
<select
value={ubicacion_equipo}
onChange={(e) => setUbicacionEquipo(e.target.value)}
>
<option value="">-- Selecciona una sancion --</option>
<option value="sancion 1">
No cerrar sesion (Una semana)
</option>
</select>
<button className="button buttonSearch" type="submit">
Aplicar sancion
</button>
</div>
</form>
</>
),
},
@@ -1,5 +1,4 @@
.tableContainer {
margin-top: 10px;
overflow-y: auto;
overflow-x: auto;
border-radius: 4px;
@@ -1,5 +1,4 @@
.tableContainer {
margin-top: 10px;
overflow-y: auto;
overflow-x: auto;
border-radius: 4px;
@@ -1,5 +1,4 @@
.tableContainer {
margin-top: 10px;
overflow-y: auto;
overflow-x: auto;
border-radius: 4px;
@@ -14,8 +13,6 @@
width: 100%;
border-collapse: collapse;
table-layout: auto;
margin-top: 1rem;
margin-bottom: 1rem;
}
.machineTable th,
@@ -35,8 +35,8 @@ export default function Page() {
label: "Por recibo",
content: (
<>
<div className={styles.tableContainer}>
<SearchDateBetween />
<div className={styles.tableContainer}>
<table className={styles.machineTable}>
<thead>
<tr>
@@ -69,8 +69,8 @@ export default function Page() {
label: "Por Servicio",
content: (
<>
<div className={styles.tableContainer}>
<SearchDateBetween />
<div className={styles.tableContainer}>
<table className={styles.machineTable}>
<thead>
<tr>
+16
View File
@@ -0,0 +1,16 @@
import { ReactNode } from "react";
import { PrivateRoute } from "../Routes/PrivateRoute";
import BarNavigation from "../Components/BarNavigation/BarNavigation";
export default function PrivateLayout({ children }: { children: ReactNode }) {
return (
<div className="mainContainer">
<BarNavigation />
<div className="container">
<div className="img"></div>
{children}
</div>
</div>
);
}
//IO
-5
View File
@@ -1,5 +0,0 @@
import { PrivateRoute } from "../Routes/PrivateRoute";
export default function PrivateLayout({ children }: { children: React.ReactNode }) {
return <PrivateRoute>{children}</PrivateRoute>;
}
@@ -1,8 +1,12 @@
.barNavigation {
position: absolute;
text-align: center;
background-color: rgb(1, 92, 184);
padding: 0 20px;
display: flex;
width: 100%;
top: 0;
min-height: 40px;
}
.barNavigation ul {
+17 -17
View File
@@ -26,13 +26,13 @@ function BarNavigation() {
<li className={`subMenu ${openSubMenu === 0 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(0)}>Inscripciones</span>
<ul className="containerLinks" onClick={toggleMenu}>
<Link href="/AT/Alta" className="links">
<Link href="/Alta" className="links">
<li>Alta</li>
</Link>
<Link href="/AT/AgregarTiempo" className="links">
<Link href="/AgregarTiempo" className="links">
<li>Agregar Tiempo</li>
</Link>
<Link href="/AT/Inscripciones" className="links">
<Link href="/Inscripciones" className="links">
<li>Inscripciones</li>
</Link>
</ul>
@@ -41,16 +41,16 @@ function BarNavigation() {
<li className={`subMenu ${openSubMenu === 1 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(1)}>Servicios</span>
<ul onClick={toggleMenu}>
<Link href="/AT/Impresiones" className="links">
<Link href="/Impresiones" className="links">
<li>Impresiones y Ploteo</li>
</Link>
<Link href="/AT/AsignacionMesas" className="links">
<Link href="/AsignacionMesas" className="links">
<li>Asignacion de Mesas</li>
</Link>
<Link href="/AT/AsignacionEquipo" className="links">
<Link href="/AsignacionEquipo" className="links">
<li>Asignacion de Equipos</li>
</Link>
<Link href="/AT/Monitor" className="links">
<Link href="/Monitor" className="links">
<li>Monitor</li>
</Link>
</ul>
@@ -59,16 +59,16 @@ function BarNavigation() {
<li className={`subMenu ${openSubMenu === 2 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(2)}>Equipo</span>
<ul onClick={toggleMenu}>
<Link href="/AT/InformacionEquipo" className="links">
<Link href="/InformacionEquipo" className="links">
<li>Informacion de Equipos</li>
</Link>
<Link href="/AT/ActivosMantenimiento" className="links">
<Link href="/ActivosMantenimiento" className="links">
<li>Activos y en Mantenimiento</li>
</Link>
<Link href="/AT/Mensajes" className="links">
<Link href="/Mensajes" className="links">
<li>Mensajes</li>
</Link>
<Link href="/AT/Programas" className="links">
<Link href="/Programas" className="links">
<li>Programas</li>
</Link>
</ul>
@@ -77,24 +77,24 @@ function BarNavigation() {
<li className={`subMenu ${openSubMenu === 3 ? "open" : ""}`}>
<span onClick={() => toggleSubMenu(3)}>Reportes</span>
<ul onClick={toggleMenu}>
<Link href="/AT/Recibo" className="links">
<li>Recibo</li>
<Link href="/Reportes" className="links">
<li>Reportes</li>
</Link>
<Link href="/AT/Inscritos" className="links">
<Link href="/Inscritos" className="links">
<li>Inscritos</li>
</Link>
<Link href="/AT/BitacoraSanciones" className="links">
<Link href="/BitacoraSanciones" className="links">
<li>Bitacora y sanciones</li>
</Link>
</ul>
</li>
<li className="subMenu" onClick={toggleMenu}>
<Link href="/AT/QuitarSancion" className="links">
<Link href="/QuitarSancion" className="links">
Quitar sancion
</Link>
</li>
<li className="subMenu" onClick={toggleMenu}>
<Link href="/AT/CambiarPass" className="links">
<Link href="/CambiarPass" className="links">
Cambiar contraseña
</Link>
</li>
+1
View File
@@ -2,6 +2,7 @@
position: relative;
filter: invert(1);
z-index: 3;
margin: 5px;
}
.cedetecContainer {
+2 -1
View File
@@ -1,8 +1,9 @@
'use client';
import { useState } from "react";
import "./Login.css";
import { loginUser } from "@/app/lib/login";
import "./Login.css";
function Login() {
const [user, setUser] = useState("");
const [password, setPassword] = useState("");
@@ -13,10 +13,10 @@ function ProgramSelector({ titulo, opcion }: DatosEquipo) {
<div>
<form className="form-container">
{/* Label dinámico con el título que recibimos */}
<label htmlFor="equipo">{titulo}</label>
<label>{titulo}</label>
{/* Renderizamos UN solo <select> con varias <option> */}
<select id="equipo">
<select>
{opcion.map((op, index) => (
<option key={index} value={op}>
{op}
@@ -24,9 +24,6 @@ function ProgramSelector({ titulo, opcion }: DatosEquipo) {
))}
</select>
{/* Aquí puedes poner más <option> fijas si quieres */}
<option value="">Buscar</option>
{/* Lista de checkboxes (esto lo podrías optimizar igual con .map) */}
<div className="checkbox-grid">
<label>
+1 -1
View File
@@ -58,7 +58,7 @@ function Receipt() {
<div className='groupInput'>
<label className='label'>Folio:</label>
<label className='label'>Ticket:</label>
<input
type='text'
value={folio}
+1 -1
View File
@@ -10,7 +10,7 @@ export const LoginRedirect = ({ children }: { children: React.ReactNode }) => {
useEffect(() => {
if (!loading && authenticated) {
router.push("/AT/Impresiones");
router.push("/Impresiones");
}
}, [loading, authenticated, router]);
+1
View File
@@ -18,3 +18,4 @@ export const PrivateRoute = ({ children }: { children: React.ReactNode }) => {
return authenticated ? <>{children}</> : null;
};
//IO
+23 -11
View File
@@ -19,7 +19,7 @@ body {
position: relative;
font-family: var(--font-poppins), sans-serif;
display: grid;
grid-template-rows: auto auto 1fr auto;
grid-template-rows: auto 1fr auto;
min-height: 100dvh;
width: 100dvw;
overflow: hidden;
@@ -33,7 +33,7 @@ header {
overflow: hidden;
background-color: #f9f9f9;
z-index: 1;
height: 57px;
height: 70px;
}
header::after {
@@ -62,12 +62,6 @@ header::before {
z-index: 1;
}
main {
display: flex;
align-items: center;
justify-content: center;
}
footer {
position: relative;
display: flex;
@@ -85,6 +79,16 @@ footer p {
z-index: 2;
}
.mainContainer {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
}
.container {
display: flex;
flex-direction: column;
@@ -96,7 +100,7 @@ footer p {
border: 1px solid #d1d5db;
border-radius: 4px;
width: 90%;
max-width: 1100px;
max-width: 1150px;
height: 550px;
min-height: 520px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
@@ -133,6 +137,7 @@ footer p {
}
.img::after {
display: flex;
content: "";
position: absolute;
inset: 0;
@@ -264,7 +269,6 @@ form {
display: flex;
flex-direction: column;
padding: 1rem;
gap: 1rem;
}
.gap {
@@ -288,6 +292,7 @@ form {
background-color: #f3f4f6;
border-radius: 6px;
flex-wrap: wrap;
min-height: 45px;
}
.toggleButton {
@@ -390,6 +395,13 @@ table tr {
border: 1px solid #ef9a9a;
}
@media (max-width: 1300px) {
.container {
width: 100%;
max-width: none;
}
}
@media (max-width: 800px) {
header {
padding: 6px 16px;
@@ -453,4 +465,4 @@ table tr {
.container {
margin: 0;
}
}
}
+8 -10
View File
@@ -7,14 +7,16 @@ import "./globals.css";
import WavesBackground from "./Components/Wave/wavesBack";
const poppins = Poppins({
variable: "--font-poppins", // nombre de la variable CSS
variable: "--font-poppins",
subsets: ["latin"],
weight: ["400", "600", "700"], // pesos que quieras usar
weight: ["400", "600", "700"],
});
export const metadata: Metadata = {
title: "Nexus CEDETEC",
description: "Nexus CEDETEC - Frontend",
title: "Servicio AT",
description: "Servicio de administracion de la FES Acatlan",
authors: [{ name: "FES Acatlán" }],
creator: "Lino,Axel,Carlos",
};
export default function RootLayout({
@@ -26,12 +28,8 @@ export default function RootLayout({
<html lang="es">
<body className={poppins.variable}>
<Header />
<BarNavigation />
<main>
<div className="container">
<div className="img"></div>
{children}
</div>
{children}
<WavesBackground />
</main>
<Footer />
@@ -39,4 +37,4 @@ export default function RootLayout({
</html>
);
}
//IO
//IO
+15
View File
@@ -0,0 +1,15 @@
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const token = request.cookies.get('token');
if (!token) {
console.log('No hay token, redirigiendo a la página de inicio de sesión');
return NextResponse.redirect(new URL('/', request.url));
}
return NextResponse.next();
}
//IO
+9 -4
View File
@@ -3,9 +3,14 @@ import { LoginRedirect } from "./Routes/LoginRedirect";
export default function Home() {
return (
<LoginRedirect>
<Login />
</LoginRedirect>
<div className="mainContainer">
<LoginRedirect>
<div className="container">
<div className="img"></div>
<Login />
</div>
</LoginRedirect>
</div>
);
}
//IO
//IO
+43 -43
View File
@@ -9,7 +9,7 @@
"version": "0.1.0",
"dependencies": {
"axios": "^1.11.0",
"next": "15.4.6",
"next": "^15.5.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-icons": "^5.5.0"
@@ -450,15 +450,15 @@
}
},
"node_modules/@next/env": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.6.tgz",
"integrity": "sha512-yHDKVTcHrZy/8TWhj0B23ylKv5ypocuCwey9ZqPyv4rPdUdRzpGCkSi03t04KBPyU96kxVtUqx6O3nE1kpxASQ==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.3.tgz",
"integrity": "sha512-RSEDTRqyihYXygx/OJXwvVupfr9m04+0vH8vyy0HfZ7keRto6VX9BbEk0J2PUk0VGy6YhklJUSrgForov5F9pw==",
"license": "MIT"
},
"node_modules/@next/swc-darwin-arm64": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.6.tgz",
"integrity": "sha512-667R0RTP4DwxzmrqTs4Lr5dcEda9OxuZsVFsjVtxVMVhzSpo6nLclXejJVfQo2/g7/Z9qF3ETDmN3h65mTjpTQ==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.3.tgz",
"integrity": "sha512-nzbHQo69+au9wJkGKTU9lP7PXv0d1J5ljFpvb+LnEomLtSbJkbZyEs6sbF3plQmiOB2l9OBtN2tNSvCH1nQ9Jg==",
"cpu": [
"arm64"
],
@@ -472,9 +472,9 @@
}
},
"node_modules/@next/swc-darwin-x64": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.6.tgz",
"integrity": "sha512-KMSFoistFkaiQYVQQnaU9MPWtp/3m0kn2Xed1Ces5ll+ag1+rlac20sxG+MqhH2qYWX1O2GFOATQXEyxKiIscg==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.3.tgz",
"integrity": "sha512-w83w4SkOOhekJOcA5HBvHyGzgV1W/XvOfpkrxIse4uPWhYTTRwtGEM4v/jiXwNSJvfRvah0H8/uTLBKRXlef8g==",
"cpu": [
"x64"
],
@@ -488,9 +488,9 @@
}
},
"node_modules/@next/swc-linux-arm64-gnu": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.6.tgz",
"integrity": "sha512-PnOx1YdO0W7m/HWFeYd2A6JtBO8O8Eb9h6nfJia2Dw1sRHoHpNf6lN1U4GKFRzRDBi9Nq2GrHk9PF3Vmwf7XVw==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.3.tgz",
"integrity": "sha512-+m7pfIs0/yvgVu26ieaKrifV8C8yiLe7jVp9SpcIzg7XmyyNE7toC1fy5IOQozmr6kWl/JONC51osih2RyoXRw==",
"cpu": [
"arm64"
],
@@ -504,9 +504,9 @@
}
},
"node_modules/@next/swc-linux-arm64-musl": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.6.tgz",
"integrity": "sha512-XBbuQddtY1p5FGPc2naMO0kqs4YYtLYK/8aPausI5lyOjr4J77KTG9mtlU4P3NwkLI1+OjsPzKVvSJdMs3cFaw==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.3.tgz",
"integrity": "sha512-u3PEIzuguSenoZviZJahNLgCexGFhso5mxWCrrIMdvpZn6lkME5vc/ADZG8UUk5K1uWRy4hqSFECrON6UKQBbQ==",
"cpu": [
"arm64"
],
@@ -520,9 +520,9 @@
}
},
"node_modules/@next/swc-linux-x64-gnu": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.6.tgz",
"integrity": "sha512-+WTeK7Qdw82ez3U9JgD+igBAP75gqZ1vbK6R8PlEEuY0OIe5FuYXA4aTjL811kWPf7hNeslD4hHK2WoM9W0IgA==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.3.tgz",
"integrity": "sha512-lDtOOScYDZxI2BENN9m0pfVPJDSuUkAD1YXSvlJF0DKwZt0WlA7T7o3wrcEr4Q+iHYGzEaVuZcsIbCps4K27sA==",
"cpu": [
"x64"
],
@@ -536,9 +536,9 @@
}
},
"node_modules/@next/swc-linux-x64-musl": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.6.tgz",
"integrity": "sha512-XP824mCbgQsK20jlXKrUpZoh/iO3vUWhMpxCz8oYeagoiZ4V0TQiKy0ASji1KK6IAe3DYGfj5RfKP6+L2020OQ==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.3.tgz",
"integrity": "sha512-9vWVUnsx9PrY2NwdVRJ4dUURAQ8Su0sLRPqcCCxtX5zIQUBES12eRVHq6b70bbfaVaxIDGJN2afHui0eDm+cLg==",
"cpu": [
"x64"
],
@@ -552,9 +552,9 @@
}
},
"node_modules/@next/swc-win32-arm64-msvc": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.6.tgz",
"integrity": "sha512-FxrsenhUz0LbgRkNWx6FRRJIPe/MI1JRA4W4EPd5leXO00AZ6YU8v5vfx4MDXTvN77lM/EqsE3+6d2CIeF5NYg==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.3.tgz",
"integrity": "sha512-1CU20FZzY9LFQigRi6jM45oJMU3KziA5/sSG+dXeVaTm661snQP6xu3ykGxxwU5sLG3sh14teO/IOEPVsQMRfA==",
"cpu": [
"arm64"
],
@@ -568,9 +568,9 @@
}
},
"node_modules/@next/swc-win32-x64-msvc": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.6.tgz",
"integrity": "sha512-T4ufqnZ4u88ZheczkBTtOF+eKaM14V8kbjud/XrAakoM5DKQWjW09vD6B9fsdsWS2T7D5EY31hRHdta7QKWOng==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.3.tgz",
"integrity": "sha512-JMoLAq3n3y5tKXPQwCK5c+6tmwkuFDa2XAxz8Wm4+IVthdBZdZGh+lmiLUHg9f9IDwIQpUjp+ysd6OkYTyZRZw==",
"cpu": [
"x64"
],
@@ -629,9 +629,9 @@
"license": "MIT"
},
"node_modules/axios": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.11.0.tgz",
"integrity": "sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==",
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.12.1.tgz",
"integrity": "sha512-Kn4kbSXpkFHCGE6rBFNwIv0GQs4AvDT80jlveJDKFxjbTYMUeB4QtsdPCv6H8Cm19Je7IU6VFtRl2zWZI0rudQ==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@@ -1009,12 +1009,12 @@
}
},
"node_modules/next": {
"version": "15.4.6",
"resolved": "https://registry.npmjs.org/next/-/next-15.4.6.tgz",
"integrity": "sha512-us++E/Q80/8+UekzB3SAGs71AlLDsadpFMXVNM/uQ0BMwsh9m3mr0UNQIfjKed8vpWXsASe+Qifrnu1oLIcKEQ==",
"version": "15.5.3",
"resolved": "https://registry.npmjs.org/next/-/next-15.5.3.tgz",
"integrity": "sha512-r/liNAx16SQj4D+XH/oI1dlpv9tdKJ6cONYPwwcCC46f2NjpaRWY+EKCzULfgQYV6YKXjHBchff2IZBSlZmJNw==",
"license": "MIT",
"dependencies": {
"@next/env": "15.4.6",
"@next/env": "15.5.3",
"@swc/helpers": "0.5.15",
"caniuse-lite": "^1.0.30001579",
"postcss": "8.4.31",
@@ -1027,14 +1027,14 @@
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
},
"optionalDependencies": {
"@next/swc-darwin-arm64": "15.4.6",
"@next/swc-darwin-x64": "15.4.6",
"@next/swc-linux-arm64-gnu": "15.4.6",
"@next/swc-linux-arm64-musl": "15.4.6",
"@next/swc-linux-x64-gnu": "15.4.6",
"@next/swc-linux-x64-musl": "15.4.6",
"@next/swc-win32-arm64-msvc": "15.4.6",
"@next/swc-win32-x64-msvc": "15.4.6",
"@next/swc-darwin-arm64": "15.5.3",
"@next/swc-darwin-x64": "15.5.3",
"@next/swc-linux-arm64-gnu": "15.5.3",
"@next/swc-linux-arm64-musl": "15.5.3",
"@next/swc-linux-x64-gnu": "15.5.3",
"@next/swc-linux-x64-musl": "15.5.3",
"@next/swc-win32-arm64-msvc": "15.5.3",
"@next/swc-win32-x64-msvc": "15.5.3",
"sharp": "^0.34.3"
},
"peerDependencies": {
+1 -1
View File
@@ -10,7 +10,7 @@
},
"dependencies": {
"axios": "^1.11.0",
"next": "15.4.6",
"next": "^15.5.3",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-icons": "^5.5.0"