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.
Files changed (301) hide show
  1. package/README.md +2 -0
  2. package/TEST_COVERAGE_SUMMARY.md +458 -0
  3. package/ng-package.json +8 -0
  4. package/package.json +5 -13
  5. package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
  6. package/src/docs/ARCHITECTURE.md +633 -0
  7. package/src/docs/BATCH_REQUEST_README.md +467 -0
  8. package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
  9. package/src/docs/DATABASE_README.md +1195 -0
  10. package/src/docs/ENCRYPTION_README.md +403 -0
  11. package/src/docs/HTTP_MANAGER_README.md +628 -0
  12. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
  13. package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
  14. package/src/docs/INTERCEPTOR_README.md +549 -0
  15. package/src/docs/LOCAL_STORAGE_README.md +1056 -0
  16. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
  17. package/src/docs/LOGGER_README.md +310 -0
  18. package/src/docs/MESSAGE_TRACKER_README.md +518 -0
  19. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
  20. package/src/docs/MODELS_README.md +1264 -0
  21. package/src/docs/SIGNAL_SERVICES_README.md +238 -0
  22. package/src/docs/SQL_DIXIE_README.md +574 -0
  23. package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
  24. package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
  25. package/src/docs/UPLOAD_REQUEST_README.md +324 -0
  26. package/src/docs/UTILS_README.md +1604 -0
  27. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
  28. package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
  29. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
  30. package/src/docs/WS_MANAGER_README.md +613 -0
  31. package/src/lib/http-request-manager.module.ts +147 -0
  32. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
  33. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  34. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
  35. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
  36. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  37. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
  38. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  39. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  40. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
  41. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
  42. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
  43. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
  44. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
  45. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
  46. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
  66. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  67. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  68. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  77. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  78. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  79. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  85. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
  86. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
  87. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
  88. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
  89. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  90. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
  92. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
  93. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  94. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
  122. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  123. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  124. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
  144. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
  145. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
  146. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
  149. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
  150. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
  151. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
  152. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
  153. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
  154. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
  156. package/src/lib/index.ts +3 -0
  157. package/src/lib/interceptors/credentials.interceptor.ts +16 -0
  158. package/src/lib/interceptors/index.ts +6 -0
  159. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  160. package/src/lib/interceptors/models/index.ts +2 -0
  161. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  162. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  163. package/src/lib/interceptors/request-header.interceptor.ts +56 -0
  164. package/src/lib/message-display/README.md +509 -0
  165. package/src/lib/message-display/index.ts +4 -0
  166. package/src/lib/message-display/models/action.model.ts +27 -0
  167. package/src/lib/message-display/models/communication-message.model.ts +77 -0
  168. package/src/lib/message-display/models/display-config.model.ts +35 -0
  169. package/src/lib/message-display/models/display-rule.interface.ts +28 -0
  170. package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
  171. package/src/lib/message-display/models/index.ts +6 -0
  172. package/src/lib/message-display/models/slide.model.ts +24 -0
  173. package/src/lib/message-display/rules/default-display-rules.ts +35 -0
  174. package/src/lib/message-display/services/message-display-router.service.ts +63 -0
  175. package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
  176. package/src/lib/models/batch-options.model.ts +33 -0
  177. package/src/lib/models/batch-progress.model.ts +19 -0
  178. package/src/lib/models/batch-request-state.model.ts +40 -0
  179. package/src/lib/models/batch-result.model.ts +30 -0
  180. package/src/lib/models/config-http-options.model.ts +45 -0
  181. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  182. package/src/lib/models/config-options.model.ts +27 -0
  183. package/src/lib/models/config-token.model.ts +9 -0
  184. package/src/lib/models/data-type.enum.ts +5 -0
  185. package/src/lib/models/database-storage.model.ts +24 -0
  186. package/src/lib/models/index.ts +16 -0
  187. package/src/lib/models/retry-options.model.ts +22 -0
  188. package/src/lib/models/upload-validation-error.model.ts +46 -0
  189. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
  190. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
  191. package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
  192. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
  193. package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
  194. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
  195. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
  196. package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
  197. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
  198. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
  199. package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
  200. package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
  201. package/src/lib/services/database-manager-service/index.ts +4 -0
  202. package/src/lib/services/database-manager-service/models/index.ts +2 -0
  203. package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
  204. package/src/lib/services/index.ts +20 -0
  205. package/src/lib/services/local-storage-manager-service/index.ts +4 -0
  206. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  207. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
  208. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
  209. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
  210. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  211. package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
  212. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
  213. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  214. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
  215. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  216. package/src/lib/services/request-manager-services/README.md +282 -0
  217. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
  218. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
  219. package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
  220. package/src/lib/services/request-manager-services/index.ts +8 -0
  221. package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
  222. package/src/lib/services/request-manager-services/request.service.ts +435 -0
  223. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  224. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  225. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
  226. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
  227. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
  228. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
  229. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
  230. package/src/lib/services/request-manager-state-service/index.ts +3 -0
  231. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
  232. package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
  233. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
  234. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
  235. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
  236. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
  237. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
  238. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
  239. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
  240. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
  241. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
  242. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
  243. package/src/lib/services/store-state-manager-service/index.ts +4 -0
  244. package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
  245. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
  246. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
  247. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
  248. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
  249. package/src/lib/services/utils/app.service.spec.ts +25 -0
  250. package/src/lib/services/utils/app.service.ts +21 -0
  251. package/src/lib/services/utils/encryption/README.md +79 -0
  252. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  253. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  254. package/src/lib/services/utils/encryption/index.ts +5 -0
  255. package/src/lib/services/utils/encryption/random.ts +81 -0
  256. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
  257. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  258. package/src/lib/services/utils/headers.service.ts +18 -0
  259. package/src/lib/services/utils/index.ts +9 -0
  260. package/src/lib/services/utils/logger.service.ts +90 -0
  261. package/src/lib/services/utils/models/index.ts +4 -0
  262. package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
  263. package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
  264. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
  265. package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
  266. package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
  267. package/src/lib/services/utils/object-merger.service.ts +78 -0
  268. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  269. package/src/lib/services/utils/path-query.service.ts +69 -0
  270. package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
  271. package/src/lib/services/utils/random-color.utils.ts +83 -0
  272. package/src/lib/services/utils/utils.service.spec.ts +165 -0
  273. package/src/lib/services/utils/utils.service.ts +192 -0
  274. package/src/lib/services/ws-manager-service/index.ts +13 -0
  275. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
  276. package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
  277. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
  278. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
  279. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
  280. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
  281. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
  282. package/src/lib/services/ws-manager-service/models/index.ts +10 -0
  283. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
  284. package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
  285. package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
  286. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
  287. package/src/lib/services/ws-manager-service/services/index.ts +4 -0
  288. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
  289. package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
  290. package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
  291. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
  292. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
  293. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
  294. package/src/public-api.ts +19 -0
  295. package/tsconfig.lib.json +34 -0
  296. package/tsconfig.lib.prod.json +10 -0
  297. package/tsconfig.spec.json +14 -0
  298. package/fesm2022/http-request-manager.mjs +0 -13297
  299. package/fesm2022/http-request-manager.mjs.map +0 -1
  300. package/http-request-manager-18.15.32.tgz +0 -0
  301. 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)