http-request-manager 18.15.32 → 18.15.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/TEST_COVERAGE_SUMMARY.md +458 -0
- package/ng-package.json +8 -0
- package/package.json +5 -13
- package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
- package/src/docs/ARCHITECTURE.md +633 -0
- package/src/docs/BATCH_REQUEST_README.md +467 -0
- package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
- package/src/docs/DATABASE_README.md +1195 -0
- package/src/docs/ENCRYPTION_README.md +403 -0
- package/src/docs/HTTP_MANAGER_README.md +628 -0
- package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
- package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
- package/src/docs/INTERCEPTOR_README.md +549 -0
- package/src/docs/LOCAL_STORAGE_README.md +1056 -0
- package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
- package/src/docs/LOGGER_README.md +310 -0
- package/src/docs/MESSAGE_TRACKER_README.md +518 -0
- package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
- package/src/docs/MODELS_README.md +1264 -0
- package/src/docs/SIGNAL_SERVICES_README.md +238 -0
- package/src/docs/SQL_DIXIE_README.md +574 -0
- package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
- package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
- package/src/docs/UPLOAD_REQUEST_README.md +324 -0
- package/src/docs/UTILS_README.md +1604 -0
- package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
- package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
- package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
- package/src/docs/WS_MANAGER_README.md +613 -0
- package/src/lib/http-request-manager.module.ts +147 -0
- package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
- package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
- package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
- package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
- package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
- package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
- package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
- package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
- package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
- package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
- package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
- package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
- package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
- package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
- package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
- package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
- package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
- package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
- package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
- package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
- package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
- package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
- package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
- package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
- package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
- package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
- package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
- package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
- package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
- package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
- package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
- package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
- package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
- package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
- package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
- package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
- package/src/lib/index.ts +3 -0
- package/src/lib/interceptors/credentials.interceptor.ts +16 -0
- package/src/lib/interceptors/index.ts +6 -0
- package/src/lib/interceptors/models/error-settings.model.ts +22 -0
- package/src/lib/interceptors/models/index.ts +2 -0
- package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
- package/src/lib/interceptors/request-error.interceptor.ts +65 -0
- package/src/lib/interceptors/request-header.interceptor.ts +56 -0
- package/src/lib/message-display/README.md +509 -0
- package/src/lib/message-display/index.ts +4 -0
- package/src/lib/message-display/models/action.model.ts +27 -0
- package/src/lib/message-display/models/communication-message.model.ts +77 -0
- package/src/lib/message-display/models/display-config.model.ts +35 -0
- package/src/lib/message-display/models/display-rule.interface.ts +28 -0
- package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
- package/src/lib/message-display/models/index.ts +6 -0
- package/src/lib/message-display/models/slide.model.ts +24 -0
- package/src/lib/message-display/rules/default-display-rules.ts +35 -0
- package/src/lib/message-display/services/message-display-router.service.ts +63 -0
- package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
- package/src/lib/models/batch-options.model.ts +33 -0
- package/src/lib/models/batch-progress.model.ts +19 -0
- package/src/lib/models/batch-request-state.model.ts +40 -0
- package/src/lib/models/batch-result.model.ts +30 -0
- package/src/lib/models/config-http-options.model.ts +45 -0
- package/src/lib/models/config-local-storage-options.model.ts +27 -0
- package/src/lib/models/config-options.model.ts +27 -0
- package/src/lib/models/config-token.model.ts +9 -0
- package/src/lib/models/data-type.enum.ts +5 -0
- package/src/lib/models/database-storage.model.ts +24 -0
- package/src/lib/models/index.ts +16 -0
- package/src/lib/models/retry-options.model.ts +22 -0
- package/src/lib/models/upload-validation-error.model.ts +46 -0
- package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
- package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
- package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
- package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
- package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
- package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
- package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
- package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
- package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
- package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
- package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
- package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
- package/src/lib/services/database-manager-service/index.ts +4 -0
- package/src/lib/services/database-manager-service/models/index.ts +2 -0
- package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
- package/src/lib/services/index.ts +20 -0
- package/src/lib/services/local-storage-manager-service/index.ts +4 -0
- package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
- package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
- package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
- package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
- package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
- package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
- package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
- package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
- package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
- package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
- package/src/lib/services/request-manager-services/README.md +282 -0
- package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
- package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
- package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
- package/src/lib/services/request-manager-services/index.ts +8 -0
- package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
- package/src/lib/services/request-manager-services/request.service.ts +435 -0
- package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
- package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
- package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
- package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
- package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
- package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
- package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
- package/src/lib/services/request-manager-state-service/index.ts +3 -0
- package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
- package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
- package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
- package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
- package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
- package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
- package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
- package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
- package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
- package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
- package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
- package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
- package/src/lib/services/store-state-manager-service/index.ts +4 -0
- package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
- package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
- package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
- package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
- package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
- package/src/lib/services/utils/app.service.spec.ts +25 -0
- package/src/lib/services/utils/app.service.ts +21 -0
- package/src/lib/services/utils/encryption/README.md +79 -0
- package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
- package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
- package/src/lib/services/utils/encryption/index.ts +5 -0
- package/src/lib/services/utils/encryption/random.ts +81 -0
- package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
- package/src/lib/services/utils/headers.service.spec.ts +80 -0
- package/src/lib/services/utils/headers.service.ts +18 -0
- package/src/lib/services/utils/index.ts +9 -0
- package/src/lib/services/utils/logger.service.ts +90 -0
- package/src/lib/services/utils/models/index.ts +4 -0
- package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
- package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
- package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
- package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
- package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
- package/src/lib/services/utils/object-merger.service.ts +78 -0
- package/src/lib/services/utils/path-query.service.spec.ts +117 -0
- package/src/lib/services/utils/path-query.service.ts +69 -0
- package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
- package/src/lib/services/utils/random-color.utils.ts +83 -0
- package/src/lib/services/utils/utils.service.spec.ts +165 -0
- package/src/lib/services/utils/utils.service.ts +192 -0
- package/src/lib/services/ws-manager-service/index.ts +13 -0
- package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
- package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
- package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
- package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
- package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
- package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
- package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
- package/src/lib/services/ws-manager-service/models/index.ts +10 -0
- package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
- package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
- package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
- package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
- package/src/lib/services/ws-manager-service/services/index.ts +4 -0
- package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
- package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
- package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
- package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
- package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
- package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
- package/src/public-api.ts +19 -0
- package/tsconfig.lib.json +34 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/fesm2022/http-request-manager.mjs +0 -13297
- package/fesm2022/http-request-manager.mjs.map +0 -1
- package/http-request-manager-18.15.32.tgz +0 -0
- package/types/http-request-manager.d.ts +0 -3875
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
# HTTP Interceptors
|
|
2
|
+
|
|
3
|
+
The HTTP Request Manager library provides a comprehensive set of HTTP interceptors that are automatically configured to enhance and secure your HTTP requests.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Interceptors are a powerful feature in Angular that allow you to intercept and modify HTTP requests and responses globally. This library provides several interceptors that handle common HTTP concerns such as error handling, authentication, and headers management.
|
|
8
|
+
|
|
9
|
+
## Available Interceptors
|
|
10
|
+
|
|
11
|
+
### 1. RequestErrorInterceptor
|
|
12
|
+
|
|
13
|
+
Handles HTTP error responses (400/500 status codes) with automatic toast notifications.
|
|
14
|
+
|
|
15
|
+
**Features:**
|
|
16
|
+
- **Client Error Handling** - Displays warnings for 4xx errors
|
|
17
|
+
- **Server Error Handling** - Displays errors for 5xx errors
|
|
18
|
+
- **Toast Notifications** - Shows user-friendly error messages using `ToastMessageDisplayService`
|
|
19
|
+
- **Detailed Logging** - Logs comprehensive error information to console
|
|
20
|
+
|
|
21
|
+
**Behavior:**
|
|
22
|
+
- **400-499 Errors**: Shows a warning toast with error details
|
|
23
|
+
- **500+ Errors**: Shows an error toast with error details
|
|
24
|
+
- **Error Details**: Logs status, message, error object, and status text
|
|
25
|
+
|
|
26
|
+
**Installation:**
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import { RequestErrorInterceptor } from 'http-request-manager';
|
|
30
|
+
|
|
31
|
+
@NgModule({
|
|
32
|
+
providers: [
|
|
33
|
+
{
|
|
34
|
+
provide: HTTP_INTERCEPTORS,
|
|
35
|
+
useClass: RequestErrorInterceptor,
|
|
36
|
+
multi: true
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
})
|
|
40
|
+
export class AppModule { }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Customization:**
|
|
44
|
+
|
|
45
|
+
The interceptor uses `ToastMessageDisplayService` to display errors. Ensure you have the `toast-message-display` library installed:
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
import { ToastMessageDisplayService } from 'toast-message-display';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 2. RequestHeadersInterceptor
|
|
52
|
+
|
|
53
|
+
Automatically adds common headers to all HTTP requests.
|
|
54
|
+
|
|
55
|
+
**Features:**
|
|
56
|
+
- **Content-Type** - Sets `application/json` for all requests
|
|
57
|
+
- **Accept-Language** - Adds language header based on current locale
|
|
58
|
+
- **Current-Date** - Adds current date in YYYY-MM-DD format
|
|
59
|
+
- **Dynamic Language** - Automatically updates when language changes via `@ngx-translate/core`
|
|
60
|
+
|
|
61
|
+
**Default Headers:**
|
|
62
|
+
- `Content-Type: application/json`
|
|
63
|
+
- `Accept-Language: {current-locale}-CA` (e.g., `en-CA`, `fr-CA`)
|
|
64
|
+
- `Current-Date: {YYYY-MM-DD}`
|
|
65
|
+
|
|
66
|
+
**Installation:**
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { RequestHeadersInterceptor } from 'http-request-manager';
|
|
70
|
+
|
|
71
|
+
@NgModule({
|
|
72
|
+
providers: [
|
|
73
|
+
{
|
|
74
|
+
provide: HTTP_INTERCEPTORS,
|
|
75
|
+
useClass: RequestHeadersInterceptor,
|
|
76
|
+
multi: true
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
export class AppModule { }
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Dependencies:**
|
|
84
|
+
|
|
85
|
+
This interceptor requires `@ngx-translate/core` for language management:
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Language Format:**
|
|
92
|
+
|
|
93
|
+
The interceptor automatically formats the language as `{language}-CA`. For example:
|
|
94
|
+
- `en` → `en-CA`
|
|
95
|
+
- `fr` → `fr-CA`
|
|
96
|
+
- `es` → `es-CA`
|
|
97
|
+
|
|
98
|
+
### 3. CredentialsInterceptor
|
|
99
|
+
|
|
100
|
+
Adds `withCredentials: true` to all HTTP requests to include cookies and authentication headers in cross-origin requests.
|
|
101
|
+
|
|
102
|
+
**Features:**
|
|
103
|
+
- **Cookie Support** - Includes cookies in cross-origin requests
|
|
104
|
+
- **Authentication Headers** - Sends authentication headers automatically
|
|
105
|
+
- **CORS Configuration** - Works with CORS-enabled backends
|
|
106
|
+
|
|
107
|
+
**Installation:**
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
import { CredentialsInterceptor } from 'http-request-manager';
|
|
111
|
+
|
|
112
|
+
@NgModule({
|
|
113
|
+
providers: [
|
|
114
|
+
{
|
|
115
|
+
provide: HTTP_INTERCEPTORS,
|
|
116
|
+
useClass: CredentialsInterceptor,
|
|
117
|
+
multi: true
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
})
|
|
121
|
+
export class AppModule { }
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**Use Case:**
|
|
125
|
+
|
|
126
|
+
Use this interceptor when your backend requires:
|
|
127
|
+
- Cookie-based authentication
|
|
128
|
+
- CORS with credentials
|
|
129
|
+
- Session management
|
|
130
|
+
|
|
131
|
+
### 4. ProxyDebuggerInterceptor
|
|
132
|
+
|
|
133
|
+
Provides debugging capabilities for HTTP requests during development.
|
|
134
|
+
|
|
135
|
+
**Features:**
|
|
136
|
+
- **Request Logging** - Logs all HTTP requests to console
|
|
137
|
+
- **Response Logging** - Logs HTTP responses to console
|
|
138
|
+
- **Timing Information** - Logs request/response timing
|
|
139
|
+
- **Debug Mode** - Can be enabled/disabled based on environment
|
|
140
|
+
|
|
141
|
+
**Installation:**
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
import { ProxyDebuggerInterceptor } from 'http-request-manager';
|
|
145
|
+
|
|
146
|
+
@NgModule({
|
|
147
|
+
providers: [
|
|
148
|
+
{
|
|
149
|
+
provide: HTTP_INTERCEPTORS,
|
|
150
|
+
useClass: ProxyDebuggerInterceptor,
|
|
151
|
+
multi: true
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
})
|
|
155
|
+
export class AppModule { }
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Note:**
|
|
159
|
+
|
|
160
|
+
This interceptor is primarily used during development. Consider disabling it in production builds.
|
|
161
|
+
|
|
162
|
+
## Auto-Configuration
|
|
163
|
+
|
|
164
|
+
All interceptors are automatically configured when you import `HttpRequestManagerModule`:
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
import { HttpRequestManagerModule } from 'http-request-manager';
|
|
168
|
+
|
|
169
|
+
@NgModule({
|
|
170
|
+
imports: [HttpRequestManagerModule.forRoot({})]
|
|
171
|
+
})
|
|
172
|
+
export class AppModule { }
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
With this configuration, all four interceptors are automatically applied to your HTTP requests.
|
|
176
|
+
|
|
177
|
+
## Manual Configuration
|
|
178
|
+
|
|
179
|
+
If you want to manually configure interceptors, you can do so in your module providers:
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
import {
|
|
183
|
+
HTTP_INTERCEPTORS,
|
|
184
|
+
HttpClientModule,
|
|
185
|
+
RequestErrorInterceptor,
|
|
186
|
+
RequestHeadersInterceptor,
|
|
187
|
+
CredentialsInterceptor,
|
|
188
|
+
ProxyDebuggerInterceptor
|
|
189
|
+
} from 'http-request-manager';
|
|
190
|
+
|
|
191
|
+
@NgModule({
|
|
192
|
+
imports: [HttpClientModule],
|
|
193
|
+
providers: [
|
|
194
|
+
// Order matters! Interceptors are applied in the order they are defined
|
|
195
|
+
{
|
|
196
|
+
provide: HTTP_INTERCEPTORS,
|
|
197
|
+
useClass: ProxyDebuggerInterceptor, // Applied first (outermost)
|
|
198
|
+
multi: true
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
provide: HTTP_INTERCEPTORS,
|
|
202
|
+
useClass: RequestErrorInterceptor, // Applied second
|
|
203
|
+
multi: true
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
provide: HTTP_INTERCEPTORS,
|
|
207
|
+
useClass: RequestHeadersInterceptor, // Applied third
|
|
208
|
+
multi: true
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
provide: HTTP_INTERCEPTORS,
|
|
212
|
+
useClass: CredentialsInterceptor, // Applied last (innermost)
|
|
213
|
+
multi: true
|
|
214
|
+
}
|
|
215
|
+
]
|
|
216
|
+
})
|
|
217
|
+
export class AppModule { }
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Interceptor Order
|
|
221
|
+
|
|
222
|
+
The order of interceptors matters! Interceptors are applied from last to first:
|
|
223
|
+
|
|
224
|
+
1. **ProxyDebuggerInterceptor** (outermost) - Logs the original request
|
|
225
|
+
2. **RequestErrorInterceptor** - Catches errors from the response
|
|
226
|
+
3. **RequestHeadersInterceptor** - Adds headers to the request
|
|
227
|
+
4. **CredentialsInterceptor** (innermost) - Adds credentials to the request
|
|
228
|
+
|
|
229
|
+
**Flow:**
|
|
230
|
+
```
|
|
231
|
+
Request → ProxyDebugger → RequestError → Headers → Credentials → HttpClient
|
|
232
|
+
Response ← ProxyDebugger ← RequestError ← Headers ← Credentials ← HttpClient
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Disabling Interceptors
|
|
236
|
+
|
|
237
|
+
If you want to disable certain interceptors, you can either:
|
|
238
|
+
|
|
239
|
+
### Option 1: Manual Configuration
|
|
240
|
+
|
|
241
|
+
Only include the interceptors you need:
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
@NgModule({
|
|
245
|
+
providers: [
|
|
246
|
+
{
|
|
247
|
+
provide: HTTP_INTERCEPTORS,
|
|
248
|
+
useClass: RequestHeadersInterceptor,
|
|
249
|
+
multi: true
|
|
250
|
+
}
|
|
251
|
+
// Omit other interceptors
|
|
252
|
+
]
|
|
253
|
+
})
|
|
254
|
+
export class AppModule { }
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Option 2: Use Skip Headers
|
|
258
|
+
|
|
259
|
+
Add a custom header to skip specific interceptors (if interceptors support this):
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
http.get('/api/data', {
|
|
263
|
+
headers: { 'Skip-Interceptors': 'RequestErrorInterceptor' }
|
|
264
|
+
});
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
## Custom Interceptors
|
|
268
|
+
|
|
269
|
+
You can create your own interceptors and use them alongside the library's interceptors:
|
|
270
|
+
|
|
271
|
+
```typescript
|
|
272
|
+
import { Injectable } from '@angular/core';
|
|
273
|
+
import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
|
|
274
|
+
import { Observable } from 'rxjs';
|
|
275
|
+
|
|
276
|
+
@Injectable()
|
|
277
|
+
export class CustomInterceptor implements HttpInterceptor {
|
|
278
|
+
intercept(
|
|
279
|
+
request: HttpRequest<any>,
|
|
280
|
+
next: HttpHandler
|
|
281
|
+
): Observable<HttpEvent<any>> {
|
|
282
|
+
// Modify the request
|
|
283
|
+
const modifiedRequest = request.clone({
|
|
284
|
+
setHeaders: {
|
|
285
|
+
'X-Custom-Header': 'custom-value'
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
return next.handle(modifiedRequest);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// Register it in your module
|
|
294
|
+
@NgModule({
|
|
295
|
+
providers: [
|
|
296
|
+
{
|
|
297
|
+
provide: HTTP_INTERCEPTORS,
|
|
298
|
+
useClass: CustomInterceptor,
|
|
299
|
+
multi: true
|
|
300
|
+
}
|
|
301
|
+
]
|
|
302
|
+
})
|
|
303
|
+
export class AppModule { }
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Error Handling
|
|
307
|
+
|
|
308
|
+
### RequestErrorInterceptor Behavior
|
|
309
|
+
|
|
310
|
+
The `RequestErrorInterceptor` handles errors as follows:
|
|
311
|
+
|
|
312
|
+
#### Client Errors (400-499)
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
// Toast Display
|
|
316
|
+
{
|
|
317
|
+
message: error.error || "400: Bad Request",
|
|
318
|
+
action: "OK",
|
|
319
|
+
color: ToastColors.WARN,
|
|
320
|
+
icon: "info",
|
|
321
|
+
duration: 5000
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Console Log
|
|
325
|
+
{
|
|
326
|
+
status: 400,
|
|
327
|
+
message: "Error message",
|
|
328
|
+
error: { ... },
|
|
329
|
+
text: "Bad Request"
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
#### Server Errors (500+)
|
|
334
|
+
|
|
335
|
+
```typescript
|
|
336
|
+
// Toast Display
|
|
337
|
+
{
|
|
338
|
+
message: error.error || "500: Internal Server Error",
|
|
339
|
+
action: "OK",
|
|
340
|
+
color: ToastColors.ERROR,
|
|
341
|
+
icon: "info",
|
|
342
|
+
duration: 5000
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// Console Log
|
|
346
|
+
{
|
|
347
|
+
status: 500,
|
|
348
|
+
message: "Error message",
|
|
349
|
+
error: { ... },
|
|
350
|
+
text: "Internal Server Error"
|
|
351
|
+
}
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### Custom Error Handling
|
|
355
|
+
|
|
356
|
+
To customize error handling, you can:
|
|
357
|
+
|
|
358
|
+
1. **Disable RequestErrorInterceptor** and create your own
|
|
359
|
+
2. **Add additional interceptors** to handle specific error cases
|
|
360
|
+
3. **Catch errors in your services** using RxJS operators
|
|
361
|
+
|
|
362
|
+
```typescript
|
|
363
|
+
// Example: Custom error handling in service
|
|
364
|
+
http.get('/api/data').pipe(
|
|
365
|
+
catchError(error => {
|
|
366
|
+
if (error.status === 401) {
|
|
367
|
+
// Handle unauthorized
|
|
368
|
+
this.router.navigate(['/login']);
|
|
369
|
+
} else if (error.status === 403) {
|
|
370
|
+
// Handle forbidden
|
|
371
|
+
this.notification.show('Access denied');
|
|
372
|
+
}
|
|
373
|
+
return throwError(() => error);
|
|
374
|
+
})
|
|
375
|
+
);
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## Best Practices
|
|
379
|
+
|
|
380
|
+
### 1. Use Appropriate Interceptors
|
|
381
|
+
|
|
382
|
+
- **Development**: Enable `ProxyDebuggerInterceptor` for debugging
|
|
383
|
+
- **Production**: Disable `ProxyDebuggerInterceptor` to improve performance
|
|
384
|
+
- **Authentication**: Always use `CredentialsInterceptor` for authenticated requests
|
|
385
|
+
- **Error Handling**: Use `RequestErrorInterceptor` for consistent error messages
|
|
386
|
+
|
|
387
|
+
### 2. Configure Interceptor Order Correctly
|
|
388
|
+
|
|
389
|
+
Remember that interceptors are applied from last to first:
|
|
390
|
+
|
|
391
|
+
```typescript
|
|
392
|
+
providers: [
|
|
393
|
+
// First interceptor (outermost)
|
|
394
|
+
{ provide: HTTP_INTERCEPTORS, useClass: FirstInterceptor, multi: true },
|
|
395
|
+
// Second interceptor
|
|
396
|
+
{ provide: HTTP_INTERCEPTORS, useClass: SecondInterceptor, multi: true },
|
|
397
|
+
// Last interceptor (innermost)
|
|
398
|
+
{ provide: HTTP_INTERCEPTORS, useClass: LastInterceptor, multi: true }
|
|
399
|
+
]
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### 3. Handle Interceptor Dependencies
|
|
403
|
+
|
|
404
|
+
Some interceptors have dependencies:
|
|
405
|
+
|
|
406
|
+
- `RequestHeadersInterceptor` requires `@ngx-translate/core`
|
|
407
|
+
- `RequestErrorInterceptor` requires `toast-message-display`
|
|
408
|
+
|
|
409
|
+
Ensure these dependencies are installed and configured.
|
|
410
|
+
|
|
411
|
+
### 4. Test Your Interceptors
|
|
412
|
+
|
|
413
|
+
Write unit tests for custom interceptors:
|
|
414
|
+
|
|
415
|
+
```typescript
|
|
416
|
+
import { TestBed } from '@angular/core/testing';
|
|
417
|
+
import { HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';
|
|
418
|
+
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
|
|
419
|
+
|
|
420
|
+
describe('CustomInterceptor', () => {
|
|
421
|
+
let http: HttpClient;
|
|
422
|
+
let httpMock: HttpTestingController;
|
|
423
|
+
|
|
424
|
+
beforeEach(() => {
|
|
425
|
+
TestBed.configureTestingModule({
|
|
426
|
+
imports: [HttpClientTestingModule],
|
|
427
|
+
providers: [
|
|
428
|
+
{ provide: HTTP_INTERCEPTORS, useClass: CustomInterceptor, multi: true }
|
|
429
|
+
]
|
|
430
|
+
});
|
|
431
|
+
http = TestBed.inject(HttpClient);
|
|
432
|
+
httpMock = TestBed.inject(HttpTestingController);
|
|
433
|
+
});
|
|
434
|
+
|
|
435
|
+
it('should add custom header', () => {
|
|
436
|
+
http.get('/api/test').subscribe();
|
|
437
|
+
const req = httpMock.expectOne('/api/test');
|
|
438
|
+
expect(req.request.headers.get('X-Custom-Header')).toBe('custom-value');
|
|
439
|
+
});
|
|
440
|
+
});
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### 5. Monitor Performance
|
|
444
|
+
|
|
445
|
+
Interceptors add overhead to HTTP requests. Monitor performance and:
|
|
446
|
+
- Remove unused interceptors
|
|
447
|
+
- Optimize interceptor logic
|
|
448
|
+
- Disable debug interceptors in production
|
|
449
|
+
|
|
450
|
+
## Environment-Specific Configuration
|
|
451
|
+
|
|
452
|
+
You can configure interceptors differently based on the environment:
|
|
453
|
+
|
|
454
|
+
```typescript
|
|
455
|
+
import { environment } from '../environments/environment';
|
|
456
|
+
|
|
457
|
+
@NgModule({
|
|
458
|
+
providers: [
|
|
459
|
+
// Always include these
|
|
460
|
+
{
|
|
461
|
+
provide: HTTP_INTERCEPTORS,
|
|
462
|
+
useClass: RequestHeadersInterceptor,
|
|
463
|
+
multi: true
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
provide: HTTP_INTERCEPTORS,
|
|
467
|
+
useClass: CredentialsInterceptor,
|
|
468
|
+
multi: true
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
provide: HTTP_INTERCEPTORS,
|
|
472
|
+
useClass: RequestErrorInterceptor,
|
|
473
|
+
multi: true
|
|
474
|
+
},
|
|
475
|
+
// Only in development
|
|
476
|
+
...(environment.production ? [] : [
|
|
477
|
+
{
|
|
478
|
+
provide: HTTP_INTERCEPTORS,
|
|
479
|
+
useClass: ProxyDebuggerInterceptor,
|
|
480
|
+
multi: true
|
|
481
|
+
}
|
|
482
|
+
])
|
|
483
|
+
]
|
|
484
|
+
})
|
|
485
|
+
export class AppModule { }
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
## Troubleshooting
|
|
489
|
+
|
|
490
|
+
### Interceptors Not Working
|
|
491
|
+
|
|
492
|
+
**Possible Causes:**
|
|
493
|
+
- Interceptors not registered in providers
|
|
494
|
+
- Wrong module imports
|
|
495
|
+
- Interceptor order issues
|
|
496
|
+
|
|
497
|
+
**Solutions:**
|
|
498
|
+
- Verify interceptors are registered with `HTTP_INTERCEPTORS` token
|
|
499
|
+
- Ensure `multi: true` is set
|
|
500
|
+
- Check module imports and providers configuration
|
|
501
|
+
|
|
502
|
+
### Headers Not Being Added
|
|
503
|
+
|
|
504
|
+
**Possible Causes:**
|
|
505
|
+
- `RequestHeadersInterceptor` not configured
|
|
506
|
+
- Request already has conflicting headers
|
|
507
|
+
- Interceptor order issues
|
|
508
|
+
|
|
509
|
+
**Solutions:**
|
|
510
|
+
- Verify `RequestHeadersInterceptor` is registered
|
|
511
|
+
- Check if other interceptors are modifying headers
|
|
512
|
+
- Review interceptor order
|
|
513
|
+
|
|
514
|
+
### Cookies Not Being Sent
|
|
515
|
+
|
|
516
|
+
**Possible Causes:**
|
|
517
|
+
- `CredentialsInterceptor` not configured
|
|
518
|
+
- CORS not configured on backend
|
|
519
|
+
- SameSite cookie attribute blocking
|
|
520
|
+
|
|
521
|
+
**Solutions:**
|
|
522
|
+
- Ensure `CredentialsInterceptor` is registered
|
|
523
|
+
- Configure CORS on backend with `credentials: true`
|
|
524
|
+
- Check cookie SameSite attribute
|
|
525
|
+
|
|
526
|
+
### Errors Not Showing in Toast
|
|
527
|
+
|
|
528
|
+
**Possible Causes:**
|
|
529
|
+
- `RequestErrorInterceptor` not configured
|
|
530
|
+
- `toast-message-display` not installed
|
|
531
|
+
- Toast service not configured
|
|
532
|
+
|
|
533
|
+
**Solutions:**
|
|
534
|
+
- Verify `RequestErrorInterceptor` is registered
|
|
535
|
+
- Install `toast-message-display` library
|
|
536
|
+
- Configure toast service in app module
|
|
537
|
+
|
|
538
|
+
## Related Documentation
|
|
539
|
+
|
|
540
|
+
- [`HTTPManagerService`](HTTP_MANAGER_README.md) - HTTP request management
|
|
541
|
+
- [`HTTPManagerStateService`](HTTP_STATE_MANAGER_README.md) - State management
|
|
542
|
+
- [`UtilsService`](UTILS_README.md) - Utility functions
|
|
543
|
+
|
|
544
|
+
## Angular Documentation
|
|
545
|
+
|
|
546
|
+
For more information about interceptors, see:
|
|
547
|
+
|
|
548
|
+
- [Angular HTTP Interceptors Guide](https://angular.io/guide/http#intercepting-requests-and-responses)
|
|
549
|
+
- [HttpClient Documentation](https://angular.io/api/common/http/HttpClient)
|