Librerías y dependencias
Inventario de dependencies y devDependencies del package.json del proyecto backoffice (idéntico en main y en feat/meta_connections). La columna Dónde se usa sale de buscar imports reales en src/ y referencias en angular.json y en src/assets/scss/app.scss; no se infiere del nombre del paquete.
Leyenda de estado:
- En uso: hay un import (o estilo/script cargado) que lo consume.
- Solo estilos: el código TypeScript no lo importa; se cargan sus hojas de estilo.
- Sin uso: no hay ninguna referencia en
src/,angular.jsonnikarma.conf.js. Candidato a eliminar.
:::caution Dependencias heredadas
El proyecto parte de una plantilla de backoffice genérica. Varias librerías (carruseles, scroll personalizado, dropzone, chartist, editores de código) siguen en package.json o en los estilos pero ya no se usan. Se marcan abajo para poder limpiarlas; esta página solo documenta, no las elimina.
:::
Framework
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
@angular/core, common, forms, router, platform-browser, platform-browser-dynamic | ^18.2.0 / ~18.2.0 (instalado 18.2.14) | Núcleo de Angular: NgModules, DI, HttpClient, formularios, router | app.module.ts, app-routing.module.ts, main.ts, prácticamente todos los componentes y servicios | En uso |
@angular/animations | ^18.2.0 | Animaciones de componentes | core/helpers/ui/fade-in-animation.constant.ts, chat-list.component.ts | En uso |
@angular/cdk | ^18.2.0 | overlay, drag-drop y portal | app.module.ts (OverlayModule), permissions-builder y otros módulos | En uso |
@angular/localize | ~18.2.0 | Polyfill $localize requerido por ng-bootstrap | src/polyfills.ts, tsconfig.app.json | En uso |
@angular/compiler | ~18.2.0 | Compilador JIT/AOT | Ningún import explícito; lo requiere Angular internamente | Transitivo |
@angular/service-worker | ^18.2.0 | PWA / service worker | Sin referencias: no hay ngsw-config.json ni ServiceWorkerModule | Sin uso |
rxjs | ~7.8.1 | Observables en servicios, efectos y sockets | 144 archivos | En uso |
zone.js | ~0.14.2 | Detección de cambios de Angular | src/polyfills.ts, src/test.ts | En uso |
tslib | ^2.7.0 | Helpers de TypeScript | Lo exige el compilador; sin import directo | Transitivo |
Estado
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
@ngrx/store | ^18.0.2 | Estado global (slices de auth, tickets, etc.) | app.module.ts, app.component.ts, core/states/* | En uso |
@ngrx/effects | ^18.0.2 | Efectos asíncronos | app.module.ts, core/states/auth/auth.effects.ts | En uso |
@ngrx/store-devtools | ^18.0.2 | Instrumentación para Redux DevTools | app.module.ts | En uso |
Detalle en Estado (NgRx).
Tiempo real
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
socket.io-client | ^4.8.3 | Conexión al namespace /chat | core/services/ui/chat-socket.service.ts, internal-chat-socket.service.ts | En uso |
Ver Sockets.
UI y componentes
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
bootstrap | 5.3.3 | Estilos base y utilidades | src/assets/scss/app.scss y parciales SCSS | En uso (estilos) |
@ng-bootstrap/ng-bootstrap | ^17.0.0 | Modales, dropdowns, tooltips, tabs | 78 archivos (app.module.ts, componentes) | En uso |
@popperjs/core | ^2.11.6 | Posicionamiento de tooltips y dropdowns | Peer de ng-bootstrap; los SCSS de Bootstrap lo referencian | Transitivo |
@ng-select/ng-select | ^13.0.0 | Selects con búsqueda y múltiples | Módulos de access-control y 37 archivos en total; tema en app.scss | En uso |
@swimlane/ngx-datatable | ^20.1.0 | Tablas | shared/components/tables/ngx-datatable/, core/helpers/ui/ngx-datatable.constant.ts | En uso |
ngx-toastr | ^16.0.1 | Notificaciones tipo toast | app.module.ts, core/helpers/ui/ui.constant.ts; CSS en app.scss | En uso |
sweetalert2 | ^11.4.29 | Diálogos de confirmación | core/helpers/ui/ui.constant.ts (swalWithBootstrapButtons); SCSS en vendors/sweetalert2.scss | En uso |
@sweetalert2/ngx-sweetalert2 | ^11.0.0 | Wrapper Angular de SweetAlert2 | Sin referencias; se usa sweetalert2 directo | Sin uso |
@ngx-loading-bar/core, http-client, router | ^6.0.2 | Barra de progreso en navegación y HTTP | app.module.ts, app.component.ts | En uso |
feather-icons | ^4.29.0 | Iconos SVG | shared/components/feather-icons/, layout/content/content.component.ts; angular.json | En uso |
font-awesome | ^4.7.0 | Iconos por clase CSS (fa fa-...) | Cargado como estilo global en angular.json (font-awesome.scss); fuentes en assets/fonts/font-awesome | En uso (estilos) |
animate.css | ^4.1.1 | Animaciones CSS | app.scss | Solo estilos |
angular-archwizard | ^7.0.0 | Asistente por pasos | Solo @import en app.scss; ningún import TS | Solo estilos |
ngx-tabset | ^2.2.0 | Pestañas | Solo @import en app.scss; ningún import TS | Solo estilos |
photoswipe | ^5.3.0 | Visor de galerías | angular.json (allowedCommonJsDependencies) y SCSS de vendors/photoswipe; sin import TS | Solo estilos |
ngx-image-cropper | ^9.1.7 | Recorte de avatar | features/profile/components/avatar-cropper-dialog/, profile.module.ts | En uso |
ngx-bootstrap | ^18.0.2 | Alternativa a ng-bootstrap | Sin referencias (se usa @ng-bootstrap) | Sin uso |
ngx-owl-carousel-o | ^18.0.0 | Carrusel | Sin imports; solo SCSS heredado de owltheme | Sin uso |
ngx-perfect-scrollbar | ^10.1.1 | Scroll personalizado | Sin imports; app.scss importa un CSS de perfect-scrollbar | Sin uso |
swiper | ^8.4.5 | Carrusel táctil (declarado en devDependencies) | Solo un @import en app.scss | Sin uso real |
angularx-qrcode | ^18.0.2 | Generador de QR | Sin referencias; el icono fa-qrcode es solo una clase CSS | Sin uso |
Gráficos
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
highcharts | ^12.6.0 | Motor de gráficos del dashboard (highcharts/highstock) | app.module.ts (provideHighcharts) | En uso |
highcharts-angular | ^5.4.0 | Componente Angular de Highcharts | app.module.ts, features/dashboard/dashboard.module.ts | En uso |
apexcharts | ^3.36.3 | Gráficos ApexCharts | shared/components/apex-chart/apex-chart.component.ts, dashboard-page.component.ts | En uso |
ng-apexcharts | 1.8.0 | Tipos y wrapper de ApexCharts | core/helpers/ui/statistics.ts (solo tipos) | En uso (limitado) |
ng-chartist | ^8.0.0 | Gráficos Chartist | Sin imports; quedan SCSS (vendors/chartist) | Sin uso |
ng2-charts | ^4.1.1 | Gráficos Chart.js | Sin referencias | Sin uso |
@types/chartist | ^0.11.1 | Tipos de Chartist | Sin referencias | Sin uso |
Editores de texto y emojis
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
emoji-mart | ^5.6.0 | Selector de emojis (web component) | chat-conversation.component.ts, shared/components/rich-text-editor/, src/typings/emoji-mart-browser.d.ts | En uso |
@emoji-mart/data | ^1.2.1 | Datos del selector de emojis | Los mismos dos componentes | En uso |
@ctrl/ngx-emoji-mart | ^7.0.0 | Wrapper Angular antiguo | Solo su CSS en app.scss; el código usa emoji-mart directo | Solo estilos |
@kolkov/angular-editor | ^2.1.0 | Editor WYSIWYG | Solo tipo AngularEditorConfig en page-configuration.constants.ts y promotion-management.constants.ts (archivos huérfanos, ver abajo) | Legado |
codemirror, @codemirror/basic-setup, lang-html, lang-javascript, state, view | ^6.0.1 / ^0.20.0 / ^6.x | Editor de código | Sin imports; quedan estilos CodeMirror en SCSS | Sin uso |
@types/codemirror | ^5.60.15 | Tipos de CodeMirror 5 | Sin referencias | Sin uso |
Formularios, subidas y datos
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
ngx-dropzone | ^3.1.0 | Zona de arrastre de archivos | Sin imports | Sin uso |
ngx-dropzone-wrapper | ^13.0.0 | Idem (wrapper de Dropzone) | Sin imports; hay SCSS de dropzone | Sin uso |
date-fns | ^2.30.0 | Formateo y comparación de fechas | core/helpers/global/global.util.ts (format), core/services/api/auth.service.ts (isBefore) | En uso |
moment-timezone | ^0.6.0 | Lista de zonas horarias | features/settings/components/general-settings/general-settings.component.ts (moment.tz.names()); angular.json | En uso |
drawflow | ^0.0.59 | Editor de flujos | Solo un tipo en core/interfaces/api/real-time.interface.ts, angular.json y _real-time.scss; sin editor real | Legado |
i18n
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
@ngx-translate/core | ^15.0.0 | Traducciones es / en | 87 archivos; app.module.ts, global.util.ts | En uso |
@ngx-translate/http-loader | ^8.0.0 | Carga de assets/i18n/*.json | app.module.ts | En uso |
Ver i18n y tema.
Seguridad y cifrado
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
crypto-js | ^4.2.0 | Cifrado de la sesión guardada en el navegador | core/services/ui/storage.service.ts | En uso |
secure-web-storage | ^1.0.2 | localStorage cifrado | core/services/ui/storage.service.ts, src/typings/secure-web-storage.d.ts | En uso |
node-forge | ^1.3.1 | Cifrado híbrido con la clave pública RSA del backend | core/services/ui/encryption.service.ts | En uso |
@types/crypto-js | ^4.2.2 | Tipos | Compilación | Tipos |
@b12k/gitleaks | ^8.30.1-v.35 | Binario de gitleaks para npm run secrets:scan | Script secrets:scan (.gitleaks.toml) | Tooling |
Ver Auth, interceptores y RBAC y Entornos.
Tooling, test y lint
| Paquete | Versión | Uso | Dónde se usa | Estado |
|---|---|---|---|---|
@angular/cli | ^18.2.0 | Comandos ng | Scripts de package.json, angular.json | Tooling |
@angular-devkit/build-angular | ^18.2.0 | Builders de Angular | angular.json, karma.conf.js | Tooling |
@angular/compiler-cli, @angular/language-service | ^18.2.0 / ~18.2.0 | Compilación AOT y soporte de editor | Implícito en el build | Tooling |
typescript | ~5.5.4 | Lenguaje (strict, strictTemplates) | tsconfig*.json | Tooling |
karma, karma-chrome-launcher, karma-jasmine, karma-jasmine-html-reporter, karma-coverage-istanbul-reporter | ~6.4.0 y afines | Ejecución de tests unitarios | karma.conf.js | Tooling |
jasmine-core, jasmine-spec-reporter, @types/jasmine, @types/jasminewd2 | ~4.3.0, ~7.0.0, ~4.0.3, ~2.0.10 | Framework de test y tipos | *.spec.ts | Tooling |
husky | ^9.1.7 | Hooks de Git (prepare) | .husky/ | Tooling |
lint-staged | ^17.5.0 | Ejecuta Prettier sobre lo preparado | Bloque lint-staged de package.json | Tooling |
prettier | ^3.8.1 | Formateo | lint-staged | Tooling |
tslint, codelyzer | ~6.1.0, ^6.0.2 | Linter heredado (TSLint está descontinuado) | tslint.json; angular.json no define target lint, así que npm run lint no tiene builder | Legado |
ts-node | ~10.9.1 | Ejecutar TS en Node | Sin referencias | Sin uso |
@types/node | ^18.7.9 | Tipos de Node | Compilación | Tipos |
@types/drawflow, @types/feather-icons | ^0.0.12, ^4.7.0 | Tipos | Compilación | Tipos |
Ver Testing y calidad.
Candidatas a eliminar
Paquetes sin ninguna referencia real (confirmado por búsqueda de imports y de angular.json): @angular/service-worker, @sweetalert2/ngx-sweetalert2, ngx-bootstrap, ngx-owl-carousel-o, ngx-perfect-scrollbar, angularx-qrcode, ng-chartist, ng2-charts, @types/chartist, codemirror y los seis @codemirror/*, @types/codemirror, ngx-dropzone, ngx-dropzone-wrapper, ts-node, swiper. Los paquetes Solo estilos y Legado (@kolkov/angular-editor, drawflow, tslint, codelyzer) requieren revisar SCSS o constantes antes de quitarlos.
:::note Restos de otro dominio
core/helpers/global/page-configuration.constants.ts y promotion-management.constants.ts (promociones, configuración de páginas) y el campo apiReportsUrl en Entornos proceden de otro producto; son archivos huérfanos (ningún otro archivo los importa) y la única razón por la que @kolkov/angular-editor aparece en el código.
:::