From 2c89ebb00238acbc335c47a99debb07c05b03909 Mon Sep 17 00:00:00 2001 From: david Date: Wed, 28 May 2025 16:21:09 +0200 Subject: [PATCH] . --- .gitignore | 1 + apps/server/package.json | 3 +- apps/server/src/app.ts | 3 +- .../src/core/infrastructure/http/index.ts | 1 - apps/server/src/lib/modules/model-loader.ts | 2 +- apps/server/src/lib/modules/module-loader.ts | 2 +- apps/server/src/register-modules.ts | 10 +- apps/web/index.html | 2 +- apps/web/package.json | 4 +- apps/web/public/favicon.png | Bin 0 -> 48701 bytes apps/web/public/logo.svg | 1 - apps/web/src/app-routes.tsx | 64 ---- apps/web/src/app.tsx | 20 +- apps/web/src/components/module-routes.tsx | 56 ++++ apps/web/src/register-modules.tsx | 7 +- apps/web/src/routes/app-routes.tsx | 66 ++++ apps/web/src/routes/index.ts | 1 + apps/web/vite.config.mts | 3 +- modules/auth/package.json | 8 +- modules/auth/src/common/locales/en.json | 3 + modules/auth/src/common/locales/es.json | 3 + modules/auth/src/web/auth-routes.tsx | 16 + .../auth/src/web/components/auth-guard.tsx | 3 +- modules/auth/src/web/components/index.tsx | 2 +- .../src/web/components/protected-route.tsx | 54 ---- modules/auth/src/web/hooks/index.ts | 3 + modules/auth/src/web/index.ts | 2 +- modules/auth/src/web/manifest.ts | 24 ++ modules/auth/src/web/pages/LoginPage.tsx | 7 + modules/auth/src/web/pages/index.ts | 1 + modules/core/package.json | 2 - modules/core/src/api/index.ts | 1 - .../middlewares/global-error-handler.ts | 3 +- modules/core/src/api/modules/index.ts | 1 - .../api/modules/module-client.interface.ts | 14 - .../api/modules/module-server.interface.ts | 6 +- modules/core/src/api/modules/types.ts | 9 - modules/core/src/common/index.ts | 1 + modules/core/src/common/types.ts | 6 + modules/core/src/web/components/index.tsx | 1 + modules/core/src/web/hooks/index.ts | 1 - modules/core/src/web/index.ts | 3 +- .../axios/create-axios-data-source.ts | 0 .../axios/create-axios-instance.ts | 0 .../{api => lib/data-source}/axios/index.ts | 0 .../data-source}/axios/setup-interceptors.ts | 0 .../data-source}/datasource-context.tsx | 0 .../data-source}/datasource.interface.ts | 0 .../src/web/{api => lib/data-source}/index.ts | 0 modules/core/src/web/lib/index.ts | 2 + modules/core/src/web/lib/modules/index.ts | 1 + .../lib/modules/module-client.interface.ts | 12 + modules/invoices/package.json | 9 +- modules/invoices/src/index.ts | 1 - .../invoices/src/web/hooks/use-invoices.tsx | 2 +- modules/invoices/src/web/manifest.ts | 18 +- packages/typescript-config/express.json | 2 +- pnpm-lock.yaml | 281 +----------------- 58 files changed, 267 insertions(+), 481 deletions(-) delete mode 100644 apps/server/src/core/infrastructure/http/index.ts create mode 100644 apps/web/public/favicon.png delete mode 100644 apps/web/public/logo.svg delete mode 100644 apps/web/src/app-routes.tsx create mode 100644 apps/web/src/components/module-routes.tsx create mode 100644 apps/web/src/routes/app-routes.tsx create mode 100644 apps/web/src/routes/index.ts create mode 100644 modules/auth/src/common/locales/en.json create mode 100644 modules/auth/src/common/locales/es.json create mode 100644 modules/auth/src/web/auth-routes.tsx delete mode 100644 modules/auth/src/web/components/protected-route.tsx create mode 100644 modules/auth/src/web/manifest.ts create mode 100644 modules/auth/src/web/pages/LoginPage.tsx create mode 100644 modules/auth/src/web/pages/index.ts delete mode 100644 modules/core/src/api/modules/module-client.interface.ts create mode 100644 modules/core/src/common/index.ts create mode 100644 modules/core/src/common/types.ts rename modules/core/src/web/{api => lib/data-source}/axios/create-axios-data-source.ts (100%) rename modules/core/src/web/{api => lib/data-source}/axios/create-axios-instance.ts (100%) rename modules/core/src/web/{api => lib/data-source}/axios/index.ts (100%) rename modules/core/src/web/{api => lib/data-source}/axios/setup-interceptors.ts (100%) rename modules/core/src/web/{api => lib/data-source}/datasource-context.tsx (100%) rename modules/core/src/web/{api => lib/data-source}/datasource.interface.ts (100%) rename modules/core/src/web/{api => lib/data-source}/index.ts (100%) create mode 100644 modules/core/src/web/lib/index.ts create mode 100644 modules/core/src/web/lib/modules/index.ts create mode 100644 modules/core/src/web/lib/modules/module-client.interface.ts delete mode 100644 modules/invoices/src/index.ts diff --git a/.gitignore b/.gitignore index 5fe605a8..1761ed6e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ public/dist apps/**/false/* +false diff --git a/apps/server/package.json b/apps/server/package.json index 579b8a5d..7912c40d 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -40,9 +40,8 @@ "typescript": "^5.8.3" }, "dependencies": { - "@erp/auth": "workspace:*", "@erp/core": "workspace:*", - "@erp/invoices": "workspace:*", + "@erp/auth": "workspace:*", "bcrypt": "^5.1.1", "cls-rtracer": "^2.6.3", "cors": "^2.8.5", diff --git a/apps/server/src/app.ts b/apps/server/src/app.ts index b9c57ffe..d7fde656 100644 --- a/apps/server/src/app.ts +++ b/apps/server/src/app.ts @@ -1,4 +1,3 @@ -import { globalErrorHandler } from "@erp/core"; //import { initPackages } from "@/core/package-loader"; import dotenv from "dotenv"; import express, { Application } from "express"; @@ -52,7 +51,7 @@ export function createApp(): Application { // Gestión global de errores. // Siempre al final de la cadena de middlewares // y después de las rutas. - app.use(globalErrorHandler); + //app.use(globalErrorHandler); return app; } diff --git a/apps/server/src/core/infrastructure/http/index.ts b/apps/server/src/core/infrastructure/http/index.ts deleted file mode 100644 index 2b0df00f..00000000 --- a/apps/server/src/core/infrastructure/http/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "../../../lib/httpServer"; diff --git a/apps/server/src/lib/modules/model-loader.ts b/apps/server/src/lib/modules/model-loader.ts index 5f149885..f6297e02 100644 --- a/apps/server/src/lib/modules/model-loader.ts +++ b/apps/server/src/lib/modules/model-loader.ts @@ -1,4 +1,4 @@ -import { ModuleParams } from "@erp/core"; +import { ModuleParams } from "@erp/core/api"; import { logger } from "../logger"; const allModelInitializers: any[] = []; diff --git a/apps/server/src/lib/modules/module-loader.ts b/apps/server/src/lib/modules/module-loader.ts index a67d5ecf..3c6f64f7 100644 --- a/apps/server/src/lib/modules/module-loader.ts +++ b/apps/server/src/lib/modules/module-loader.ts @@ -1,4 +1,4 @@ -import { IModuleServer, ModuleParams } from "@erp/core"; +import { IModuleServer, ModuleParams } from "@erp/core/api"; import { logger } from "../logger"; import { initModels, registerModels } from "./model-loader"; import { registerService } from "./service-registry"; diff --git a/apps/server/src/register-modules.ts b/apps/server/src/register-modules.ts index b037b5f7..0a46169a 100644 --- a/apps/server/src/register-modules.ts +++ b/apps/server/src/register-modules.ts @@ -1,8 +1,8 @@ -//import { authAPIModule } from "@erp/auth"; -import { invoicesAPIModule } from "@erp/invoices"; -import { registerModule } from "./lib/modules"; +import { authAPIModule } from "@erp/auth/api"; +import { registerModule } from "./lib"; +//import { invoicesAPIModule } from "@erp/invoices/api"; export const registerModules = () => { - //registerModule(authAPIModule); - registerModule(invoicesAPIModule); + registerModule(authAPIModule); + //registerModule(invoicesAPIModule); }; diff --git a/apps/web/index.html b/apps/web/index.html index 38f92814..692e8b38 100644 --- a/apps/web/index.html +++ b/apps/web/index.html @@ -8,7 +8,7 @@ FactuGES 2025 - + diff --git a/apps/web/package.json b/apps/web/package.json index 9c71c9d9..c249ccb4 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -15,7 +15,6 @@ "devDependencies": { "@biomejs/biome": "1.9.4", "@hookform/devtools": "^4.4.0", - "@peterek/vite-plugin-favicons": "^2.1.0", "@repo/typescript-config": "workspace:*", "@tailwindcss/postcss": "^4.1.5", "@tailwindcss/vite": "^4.1.6", @@ -30,8 +29,8 @@ "vite": "^6.3.5" }, "dependencies": { - "@erp/core": "workspace:*", "@erp/auth": "workspace:*", + "@erp/core": "workspace:*", "@erp/invoices": "workspace:*", "@repo/rdx-criteria": "workspace:*", "@repo/rdx-ui": "workspace:*", @@ -46,6 +45,7 @@ "react-hook-form-persist": "^3.0.0", "react-i18next": "^15.0.1", "react-router-dom": "^6.26.0", + "react-secure-storage": "^1.3.2", "sequelize": "^6.37.5", "tailwind-merge": "^3.2.0", "tailwindcss": "^4.1.6", diff --git a/apps/web/public/favicon.png b/apps/web/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3e85ad12721807a357b2169f3b5e148371a071 GIT binary patch literal 48701 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 z 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 c;S?I{EZFxqcAyN=2f&J@YnQxU