Upgrade: Angular 18, Ionic 8, Capacitor 6

Modernizacion completa del frontend:

- Angular 8 -> 18.2.14
- Ionic 4 -> 8.7.17
- Capacitor 6.x (migracion desde Cordova/@ionic-native)
- TypeScript 5.4.5
- Swiper 11 con Web Components API

Cambios principales:
- Migrar NativeStorage a @capacitor/preferences
- Migrar InAppBrowser a @capacitor/browser
- Migrar Camera a @capacitor/camera
- Migrar Geolocation a @capacitor/geolocation
- Migrar StatusBar/SplashScreen a Capacitor
- Migrar Facebook/Google login a plugins Capacitor
- Actualizar lazy loading syntax (Angular 12+)
- Configurar buildOptimizer: false para Ionic 8
- Limpiar package.json de dependencias obsoletas
- Agregar README con guia de instalacion

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
CarlosTorres
2026-01-17 22:03:31 +00:00
parent a9508bd34a
commit dfcb1168b9
397 changed files with 19732 additions and 23677 deletions

189
package.json Normal file → Executable file
View File

@@ -8,147 +8,64 @@
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
"lint": "ng lint"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.1.10",
"@angular/common": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/core": "^8.1.3",
"@angular/forms": "~8.1.2",
"@angular/platform-browser": "~8.1.2",
"@angular/platform-browser-dynamic": "~8.1.2",
"@angular/router": "~8.1.2",
"@capacitor/android": "5.2.1",
"@capacitor/app": "5.0.6",
"@capacitor/core": "5.2.1",
"@capacitor/haptics": "5.0.6",
"@capacitor/keyboard": "5.0.6",
"@capacitor/status-bar": "5.0.6",
"@ionic-native/android-permissions": "^5.25.0",
"@ionic-native/camera": "^5.28.0",
"@ionic-native/core": "^5.0.0",
"@ionic-native/facebook": "^5.15.0",
"@ionic-native/file": "^5.28.0",
"@ionic-native/file-path": "^5.28.0",
"@ionic-native/geolocation": "^5.25.0",
"@ionic-native/google-maps": "^5.5.0",
"@ionic-native/google-plus": "^5.15.0",
"@ionic-native/http": "^5.18.0",
"@ionic-native/in-app-browser": "^5.31.1",
"@ionic-native/ionic-webview": "^5.28.0",
"@ionic-native/location-accuracy": "^5.18.0",
"@ionic-native/native-storage": "^5.15.0",
"@ionic-native/onesignal": "^5.15.0",
"@ionic-native/splash-screen": "^5.0.0",
"@ionic-native/status-bar": "^5.0.0",
"@ionic/angular": "^4.7.1",
"@ngx-translate/core": "^12.1.2",
"@ngx-translate/http-loader": "^7.0.0",
"br-mask": "0.0.8",
"cordova-android": "^8.1.0",
"cordova-ios": "^5.0.1",
"cordova-plugin-advanced-http": "^2.3.1",
"cordova-plugin-android-permissions": "^1.0.2",
"cordova-plugin-camera": "^4.1.0",
"cordova-plugin-facebook4": "^6.2.0",
"cordova-plugin-file": "^6.0.2",
"cordova-plugin-geolocation": "^4.0.2",
"cordova-plugin-googlemaps": "^2.6.2",
"cordova-plugin-googleplus": "^8.1.2",
"cordova-plugin-inappbrowser": "^4.1.0",
"cordova-plugin-nativestorage": "^2.3.2",
"cordova-plugin-request-location-accuracy": "^2.3.0",
"core-js": "^2.5.4",
"ionic4-rating": "^1.0.9",
"ngx-chips": "^3.0.0",
"onesignal-cordova-plugin": "^2.6.0",
"remove": "^0.1.5",
"rxjs": "~6.5.1",
"rxjs-compat": "^6.6.7",
"tslib": "^1.9.0",
"zone.js": "~0.9.1"
"@angular/animations": "~18.2.14",
"@angular/common": "~18.2.14",
"@angular/compiler": "~18.2.14",
"@angular/core": "~18.2.14",
"@angular/forms": "~18.2.14",
"@angular/platform-browser": "~18.2.14",
"@angular/platform-browser-dynamic": "~18.2.14",
"@angular/router": "~18.2.14",
"@capacitor-community/facebook-login": "^7.0.1",
"@capacitor/android": "^6.0.0",
"@capacitor/app": "^6.0.0",
"@capacitor/browser": "^6.0.0",
"@capacitor/camera": "^6.0.0",
"@capacitor/core": "^6.0.0",
"@capacitor/filesystem": "^6.0.0",
"@capacitor/geolocation": "^6.0.0",
"@capacitor/haptics": "^6.0.0",
"@capacitor/keyboard": "^6.0.0",
"@capacitor/preferences": "^6.0.0",
"@capacitor/splash-screen": "^6.0.0",
"@capacitor/status-bar": "^6.0.0",
"@codetrix-studio/capacitor-google-auth": "^3.4.0-rc.4",
"@ionic/angular": "^8.7.17",
"@ngx-translate/core": "~14.0.0",
"@ngx-translate/http-loader": "~7.0.0",
"rxjs": "~7.8.1",
"swiper": "^11.2.10",
"tslib": "^2.6.0",
"zone.js": "~0.14.10"
},
"devDependencies": {
"@angular-devkit/architect": "~0.801.2",
"@angular-devkit/build-angular": "^0.803.21",
"@angular-devkit/core": "~8.1.2",
"@angular-devkit/schematics": "~8.1.2",
"@angular/cli": "~8.1.2",
"@angular/compiler": "~8.1.2",
"@angular/compiler-cli": "~8.1.2",
"@angular/language-service": "~8.1.2",
"@angular-devkit/build-angular": "~18.2.21",
"@angular-eslint/builder": "^21.1.0",
"@angular-eslint/eslint-plugin": "^21.1.0",
"@angular-eslint/eslint-plugin-template": "^21.1.0",
"@angular-eslint/schematics": "^21.1.0",
"@angular-eslint/template-parser": "^21.1.0",
"@angular/cli": "~18.2.21",
"@angular/compiler-cli": "~18.2.14",
"@angular/language-service": "~18.2.14",
"@capacitor/cli": "5.2.1",
"@ionic/angular-toolkit": "~2.0.0",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "^5.0.0",
"cordova-plugin-device": "^2.0.2",
"cordova-plugin-ionic-keyboard": "^2.2.0",
"cordova-plugin-ionic-webview": "^4.1.2",
"cordova-plugin-splashscreen": "^5.0.2",
"cordova-plugin-statusbar": "^2.4.2",
"cordova-plugin-whitelist": "^1.3.3",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.4.3"
"@ionic/angular-toolkit": "^12.3.0",
"@types/jasmine": "~4.3.0",
"@types/node": "~18.18.0",
"@typescript-eslint/eslint-plugin": "^8.53.0",
"@typescript-eslint/parser": "^8.53.0",
"eslint": "^8.57.1",
"jasmine-core": "~4.6.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.0.0",
"typescript": "~5.4.5"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-whitelist": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-ionic-keyboard": {},
"cordova-plugin-facebook4": {
"APP_ID": "342718733071161",
"APP_NAME": "ichamba",
"FACEBOOK_HYBRID_APP_EVENTS": "false",
"FACEBOOK_ANDROID_SDK_VERSION": "5.5.2"
},
"cordova-plugin-googleplus": {
"REVERSED_CLIENT_ID": "679874302148-dc2f35s9f50ci17houd36bcosvocso2v.apps.googleusercontent.com",
"PLAY_SERVICES_VERSION": "15.0.1"
},
"onesignal-cordova-plugin": {},
"cordova-plugin-googlemaps": {
"API_KEY_FOR_ANDROID": "AIzaSyBmkTsg0-1VKllM_vHD6V1EhPnF0YUP-88",
"API_KEY_FOR_IOS": "AIzaSyBmkTsg0-1VKllM_vHD6V1EhPnF0YUP-88",
"PLAY_SERVICES_VERSION": "15.0.1",
"ANDROID_SUPPORT_V4_VERSION": "27.+",
"LOCATION_WHEN_IN_USE_DESCRIPTION": "This app wants to get your location while this app runs only.",
"LOCATION_ALWAYS_USAGE_DESCRIPTION": "This app wants to get your location always, even this app runs in background."
},
"cordova-plugin-nativestorage": {},
"cordova-plugin-advanced-http": {
"OKHTTP_VERSION": "3.10.0"
},
"cordova-plugin-request-location-accuracy": {},
"cordova-plugin-geolocation": {},
"cordova-plugin-android-permissions": {},
"cordova-plugin-camera": {
"ANDROID_SUPPORT_V4_VERSION": "27.+"
},
"cordova-plugin-file": {},
"cordova-plugin-filepath": {},
"cordova-plugin-inappbrowser": {}
},
"platforms": [
"android",
"ios"
]
}
"description": "An Ionic project"
}