http-request-manager 18.15.34 → 18.16.1

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 (300) hide show
  1. package/fesm2022/http-request-manager.mjs +13688 -0
  2. package/fesm2022/http-request-manager.mjs.map +1 -0
  3. package/http-request-manager-18.16.0.tgz +0 -0
  4. package/package.json +15 -6
  5. package/types/http-request-manager.d.ts +3968 -0
  6. package/TEST_COVERAGE_SUMMARY.md +0 -458
  7. package/ng-package.json +0 -8
  8. package/src/docs/ADVANCED_WEBSOCKET.md +0 -633
  9. package/src/docs/ARCHITECTURE.md +0 -633
  10. package/src/docs/BATCH_REQUEST_README.md +0 -467
  11. package/src/docs/COMPLETE_API_REFERENCE.md +0 -1037
  12. package/src/docs/DATABASE_README.md +0 -1195
  13. package/src/docs/ENCRYPTION_README.md +0 -403
  14. package/src/docs/HTTP_MANAGER_README.md +0 -628
  15. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +0 -654
  16. package/src/docs/HTTP_STATE_MANAGER_README.md +0 -1391
  17. package/src/docs/INTERCEPTOR_README.md +0 -549
  18. package/src/docs/LOCAL_STORAGE_README.md +0 -1056
  19. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +0 -338
  20. package/src/docs/LOGGER_README.md +0 -310
  21. package/src/docs/MESSAGE_TRACKER_README.md +0 -518
  22. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +0 -563
  23. package/src/docs/MODELS_README.md +0 -1264
  24. package/src/docs/SIGNAL_SERVICES_README.md +0 -238
  25. package/src/docs/SQL_DIXIE_README.md +0 -574
  26. package/src/docs/STORE_STATE_MANAGER_README.md +0 -556
  27. package/src/docs/STORE_STATE_SIGNALS_README.md +0 -600
  28. package/src/docs/UPLOAD_REQUEST_README.md +0 -324
  29. package/src/docs/UTILS_README.md +0 -1604
  30. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +0 -799
  31. package/src/docs/WEBSOCKET_SIGNALS_README.md +0 -641
  32. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +0 -201
  33. package/src/docs/WS_MANAGER_README.md +0 -613
  34. package/src/lib/http-request-manager.module.ts +0 -147
  35. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -116
  36. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  37. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -255
  38. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -123
  39. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  40. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -53
  41. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  42. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  43. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -208
  44. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +0 -200
  45. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +0 -17
  46. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +0 -214
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +0 -53
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +0 -60
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +0 -72
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +0 -28
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +0 -10
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +0 -29
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +0 -100
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +0 -22
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +0 -8
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +0 -19
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +0 -26
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +0 -30
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +0 -19
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +0 -25
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +0 -19
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +0 -24
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +0 -30
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +0 -49
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +0 -33
  66. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +0 -279
  67. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +0 -24
  68. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +0 -461
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  77. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  78. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  79. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  85. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  86. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  87. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  88. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -622
  89. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -106
  90. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -687
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -418
  92. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  93. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -576
  94. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -89
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +0 -119
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +0 -3
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +0 -16
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +0 -3
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +0 -16
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +0 -31
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +0 -94
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +0 -41
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +0 -203
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +0 -144
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +0 -11
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +0 -102
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +0 -40
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +0 -230
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +0 -30
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +0 -172
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +0 -31
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +0 -239
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +0 -31
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +0 -32
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +0 -84
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +0 -40
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +0 -3
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +0 -62
  122. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +0 -83
  123. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +0 -147
  124. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +0 -168
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +0 -28
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +0 -10
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +0 -30
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +0 -19
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +0 -25
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +0 -19
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +0 -24
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +0 -30
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +0 -49
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +0 -33
  144. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +0 -380
  145. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +0 -24
  146. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +0 -410
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +0 -28
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +0 -49
  149. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  150. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +0 -23
  151. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +0 -36
  152. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +0 -161
  153. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +0 -1
  154. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +0 -30
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +0 -89
  156. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +0 -160
  157. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +0 -101
  158. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +0 -136
  159. package/src/lib/index.ts +0 -3
  160. package/src/lib/interceptors/credentials.interceptor.ts +0 -16
  161. package/src/lib/interceptors/index.ts +0 -6
  162. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  163. package/src/lib/interceptors/models/index.ts +0 -2
  164. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  165. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  166. package/src/lib/interceptors/request-header.interceptor.ts +0 -56
  167. package/src/lib/message-display/README.md +0 -509
  168. package/src/lib/message-display/index.ts +0 -4
  169. package/src/lib/message-display/models/action.model.ts +0 -27
  170. package/src/lib/message-display/models/communication-message.model.ts +0 -77
  171. package/src/lib/message-display/models/display-config.model.ts +0 -35
  172. package/src/lib/message-display/models/display-rule.interface.ts +0 -28
  173. package/src/lib/message-display/models/display-strategy.interface.ts +0 -8
  174. package/src/lib/message-display/models/index.ts +0 -6
  175. package/src/lib/message-display/models/slide.model.ts +0 -24
  176. package/src/lib/message-display/rules/default-display-rules.ts +0 -35
  177. package/src/lib/message-display/services/message-display-router.service.ts +0 -63
  178. package/src/lib/message-display/strategies/snackbar.strategy.ts +0 -46
  179. package/src/lib/models/batch-options.model.ts +0 -33
  180. package/src/lib/models/batch-progress.model.ts +0 -19
  181. package/src/lib/models/batch-request-state.model.ts +0 -40
  182. package/src/lib/models/batch-result.model.ts +0 -30
  183. package/src/lib/models/config-http-options.model.ts +0 -45
  184. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  185. package/src/lib/models/config-options.model.ts +0 -27
  186. package/src/lib/models/config-token.model.ts +0 -9
  187. package/src/lib/models/data-type.enum.ts +0 -5
  188. package/src/lib/models/database-storage.model.ts +0 -24
  189. package/src/lib/models/index.ts +0 -16
  190. package/src/lib/models/retry-options.model.ts +0 -22
  191. package/src/lib/models/upload-validation-error.model.ts +0 -46
  192. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +0 -246
  193. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +0 -31
  194. package/src/lib/services/SQL-DixieJS service/index.ts +0 -4
  195. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +0 -52
  196. package/src/lib/services/SQL-DixieJS service/models/index.ts +0 -3
  197. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +0 -13
  198. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +0 -3
  199. package/src/lib/services/SQL-DixieJS service/query-planner.ts +0 -284
  200. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +0 -217
  201. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +0 -35
  202. package/src/lib/services/database-manager-service/database.manager.service.ts +0 -384
  203. package/src/lib/services/database-manager-service/db.storage.service.ts +0 -240
  204. package/src/lib/services/database-manager-service/index.ts +0 -4
  205. package/src/lib/services/database-manager-service/models/index.ts +0 -2
  206. package/src/lib/services/database-manager-service/models/table-schema.ts +0 -33
  207. package/src/lib/services/index.ts +0 -20
  208. package/src/lib/services/local-storage-manager-service/index.ts +0 -4
  209. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  210. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -567
  211. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +0 -67
  212. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +0 -437
  213. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  214. package/src/lib/services/local-storage-manager-service/models/index.ts +0 -6
  215. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -35
  216. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  217. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -32
  218. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  219. package/src/lib/services/request-manager-services/README.md +0 -282
  220. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +0 -674
  221. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -353
  222. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -727
  223. package/src/lib/services/request-manager-services/index.ts +0 -8
  224. package/src/lib/services/request-manager-services/request-signals.service.ts +0 -372
  225. package/src/lib/services/request-manager-services/request.service.ts +0 -435
  226. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  227. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  228. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +0 -4
  229. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -35
  230. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -468
  231. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +0 -665
  232. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -2395
  233. package/src/lib/services/request-manager-state-service/index.ts +0 -3
  234. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -86
  235. package/src/lib/services/request-manager-state-service/models/index.ts +0 -14
  236. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +0 -18
  237. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +0 -21
  238. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -37
  239. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +0 -20
  240. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +0 -23
  241. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +0 -23
  242. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +0 -23
  243. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +0 -24
  244. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +0 -13
  245. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +0 -42
  246. package/src/lib/services/store-state-manager-service/index.ts +0 -4
  247. package/src/lib/services/store-state-manager-service/models/index.ts +0 -3
  248. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +0 -30
  249. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +0 -24
  250. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +0 -169
  251. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +0 -153
  252. package/src/lib/services/utils/app.service.spec.ts +0 -25
  253. package/src/lib/services/utils/app.service.ts +0 -21
  254. package/src/lib/services/utils/encryption/README.md +0 -79
  255. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  256. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  257. package/src/lib/services/utils/encryption/index.ts +0 -5
  258. package/src/lib/services/utils/encryption/random.ts +0 -81
  259. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -106
  260. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  261. package/src/lib/services/utils/headers.service.ts +0 -18
  262. package/src/lib/services/utils/index.ts +0 -9
  263. package/src/lib/services/utils/logger.service.ts +0 -90
  264. package/src/lib/services/utils/models/index.ts +0 -4
  265. package/src/lib/services/utils/models/normalized-request-options.model.ts +0 -24
  266. package/src/lib/services/utils/models/path-tracker-state.model.ts +0 -20
  267. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +0 -24
  268. package/src/lib/services/utils/models/query-tracker-state.model.ts +0 -23
  269. package/src/lib/services/utils/object-merger.service.spec.ts +0 -18
  270. package/src/lib/services/utils/object-merger.service.ts +0 -78
  271. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  272. package/src/lib/services/utils/path-query.service.ts +0 -69
  273. package/src/lib/services/utils/query-params-tracker.service.ts +0 -442
  274. package/src/lib/services/utils/random-color.utils.ts +0 -83
  275. package/src/lib/services/utils/utils.service.spec.ts +0 -165
  276. package/src/lib/services/utils/utils.service.ts +0 -192
  277. package/src/lib/services/ws-manager-service/index.ts +0 -13
  278. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +0 -147
  279. package/src/lib/services/ws-manager-service/message-tracker.service.ts +0 -477
  280. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +0 -29
  281. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +0 -24
  282. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +0 -36
  283. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +0 -6
  284. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +0 -5
  285. package/src/lib/services/ws-manager-service/models/index.ts +0 -10
  286. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +0 -29
  287. package/src/lib/services/ws-manager-service/models/public-message.model.ts +0 -18
  288. package/src/lib/services/ws-manager-service/models/state-message.model.ts +0 -18
  289. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +0 -38
  290. package/src/lib/services/ws-manager-service/services/index.ts +0 -4
  291. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +0 -129
  292. package/src/lib/services/ws-manager-service/services/websocket.service.ts +0 -434
  293. package/src/lib/services/ws-manager-service/websocket-service/index.ts +0 -1
  294. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +0 -716
  295. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +0 -596
  296. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +0 -141
  297. package/src/public-api.ts +0 -19
  298. package/tsconfig.lib.json +0 -34
  299. package/tsconfig.lib.prod.json +0 -10
  300. package/tsconfig.spec.json +0 -14
@@ -1,633 +0,0 @@
1
- # HTTP Request Manager - Architecture Overview
2
-
3
- ## System Architecture
4
-
5
- ```
6
- ┌─────────────────────────────────────────────────────────────────┐
7
- │ Angular Application │
8
- ├─────────────────────────────────────────────────────────────────┤
9
- │ │
10
- │ ┌────────────────┐ ┌────────────────┐ ┌──────────────────┐ │
11
- │ │ Components │ │ Components │ │ Components │ │
12
- │ │ (Signals) │ │ (Observables) │ │ (State Store) │ │
13
- │ └───────┬────────┘ └───────┬────────┘ └────────┬─────────┘ │
14
- │ │ │ │ │
15
- │ ▼ ▼ ▼ │
16
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────┐ │
17
- │ │HTTPManager │ │HTTPManager │ │HTTPManager │ │
18
- │ │SignalsService│ │Service │ │StateService │ │
19
- │ └──────┬───────┘ └──────┬───────┘ └────────┬─────────┘ │
20
- │ │ │ │ │
21
- │ └───────────────────┴──────────────────────┘ │
22
- │ │ │
23
- │ ▼ │
24
- │ ┌─────────────────┐ │
25
- │ │ HttpClient │ │
26
- │ │ (Angular) │ │
27
- │ └────────┬────────┘ │
28
- │ │ │
29
- ├─────────────────────────────┼───────────────────────────────────┤
30
- │ │ │
31
- │ ┌──────────────────────────┼──────────────────────┐ │
32
- │ │ Local Storage Layer │ │
33
- │ ├──────────────────────────┼──────────────────────┤ │
34
- │ │ │ │ │
35
- │ │ ┌────────────────┐ │ ┌─────────────┐ │ │
36
- │ │ │LocalStorage │ │ │IndexedDB │ │ │
37
- │ │ │Manager Service │ │ │(Dexie.js) │ │ │
38
- │ │ └────────────────┘ │ └─────────────┘ │ │
39
- │ │ │ │ │
40
- │ └──────────────────────────┼──────────────────────┘ │
41
- │ │ │
42
- │ ┌──────────────────────────┼─────────────────────┐ │
43
- │ │ WebSocket Layer │ │
44
- │ ├──────────────────────────┼─────────────────────┤ │
45
- │ │ │ │ │
46
- │ │ ┌─────────────────────────────────────┐ │ │
47
- │ │ │ WebsocketService │ │ │
48
- │ │ │ - Connection Management │ │ │
49
- │ │ │ - Channel Subscriptions │ │ │
50
- │ │ │ - Message Routing │ │ │
51
- │ │ │ - Authentication (JWT) │ │ │
52
- │ │ └─────────────────────────────────────┘ │ │
53
- │ │ │ │
54
- │ └────────────────────────────────────────────────┘ │
55
- │ │ │
56
- └─────────────────────────────┼───────────────────────────────────┘
57
-
58
-
59
- ┌──────────────────────────────┐
60
- │ Backend Server │
61
- ├──────────────────────────────┤
62
- │ │
63
- │ ┌────────────────────────┐ │
64
- │ │ HTTP REST API │ │
65
- │ │ (Express/Node.js) │ │
66
- │ └────────────────────────┘ │
67
- │ │
68
- │ ┌────────────────────────┐ │
69
- │ │ WebSocket Server │ │
70
- │ │ (ws library) │ │
71
- │ └────────────────────────┘ │
72
- │ │
73
- │ ┌────────────────────────┐ │
74
- │ │ SQLite Database │ │
75
- │ │ (Notifications) │ │
76
- │ └────────────────────────┘ │
77
- │ │
78
- └──────────────────────────────┘
79
- ```
80
-
81
- ## Service Hierarchy
82
-
83
- ```
84
- HTTPManagerService (Base - extends RequestService)
85
- ├── Location: services/request-manager-services/http-manager.service.ts
86
- ├── Features:
87
- │ ├── HTTP CRUD Operations (GET, POST, PUT, DELETE)
88
- │ ├── Loading States (isPending$, error$, data$, countdown$)
89
- │ ├── Retry Logic with delayedRetry operator
90
- │ ├── Polling with Countdown (requestPolling operator)
91
- │ ├── Adapters & Mappers for data transformation
92
- │ ├── Stream Handling (NDJSON, SSE)
93
- │ └── File Download with progress tracking
94
-
95
- ├── HTTPManagerSignalsService
96
- │ ├── Location: services/request-manager-services/http-manager-signals.service.ts
97
- │ └── Same as HTTPManagerService but with Angular Signals
98
- │ ├── data: Signal<any>
99
- │ ├── isPending: Signal<boolean>
100
- │ ├── error: Signal<any>
101
- │ └── countdown: Signal<number>
102
-
103
- └── HTTPManagerStateService (extends ComponentStore)
104
- ├── Location: services/request-manager-state-service/http-manager-state.store.ts
105
- ├── Inherits all HTTPManagerService features
106
- ├── ComponentStore Integration (NgRx)
107
- ├── CRUD with Auto State Updates
108
- ├── WebSocket Integration (via WebSocketManagerService singleton)
109
- │ ├── SYS- channels (State sync - private)
110
- │ ├── PUB- channels (Messaging - public)
111
- │ └── MES- channels (Notifications - persisted)
112
- ├── IndexedDB Caching (via DatabaseManagerService)
113
- ├── Pagination Support
114
- ├── Real-time Updates
115
- └── clearDatabase() method for flushing cache
116
-
117
- StoreStateManagerService (extends ComponentStore)
118
- ├── Location: services/store-state-manager-service/store-state-manager.service.ts
119
- └── Features:
120
- ├── LocalStorage persistence with ComponentStore
121
- ├── Automatic state synchronization
122
- ├── Configurable model-based state
123
- └── Reactive updates via localStorage changes
124
-
125
- LocalStorageManagerService (extends ComponentStore)
126
- ├── Location: services/local-storage-manager-service/local-storage-manager.service.ts
127
- └── Features:
128
- ├── LocalStorage & SessionStorage management
129
- ├── AES encryption support
130
- ├── Expiration management with auto-cleanup
131
- ├── Reactive store$ observables
132
- ├── Signal-based API (signal(), computed())
133
- └── Metadata tracking (settings, expires)
134
-
135
- LocalStorageSignalsManagerService
136
- ├── Location: services/local-storage-manager-service/local-storage-signals-manager.service.ts
137
- └── Same as LocalStorageManagerService but Signal-optimized
138
-
139
- DatabaseManagerService (extends DbService/Dexie.js)
140
- ├── Location: services/database-manager-service/database.manager.service.ts
141
- └── Features:
142
- ├── IndexedDB wrapper via Dexie.js
143
- ├── Observable-based CRUD operations
144
- ├── Table management (create, check, schema inspection)
145
- ├── Bulk operations (bulkPut, bulkDelete)
146
- ├── Query support (where, equals, filter)
147
- └── clearTable() method for flushing tables
148
-
149
- WebSocketManagerService (Singleton)
150
- ├── Location: services/ws-manager-service/websocket-service/websocket-manager.service.ts
151
- └── Features:
152
- ├── Single connection across ALL instances (static)
153
- ├── Connection lifecycle management
154
- ├── Channel subscription tracking
155
- ├── Message broadcasting via BehaviorSubject
156
- ├── Session ID management (UUID per browser session)
157
- ├── JWT authentication support
158
- ├── Automatic reconnection handling
159
- └── Message replay support (lastSeenId)
160
-
161
- MessageTrackerService
162
- ├── Location: services/ws-manager-service/message-tracker.service.ts
163
- └── Features:
164
- ├── Message history tracking
165
- ├── Last-seen message ID persistence
166
- ├── Automatic re-subscription on reconnect
167
- ├── Notification channel management
168
- └── Historical message retrieval
169
- ```
170
-
171
- ## Data Flow
172
-
173
- ### HTTP Request Flow
174
-
175
- ```
176
- Component
177
-
178
- ├─> Call Service Method (e.g., fetchRecords())
179
-
180
-
181
- HTTPManagerStateService
182
-
183
- ├─> Build ApiRequest
184
- │ ├─> Apply Mapper (if provided)
185
- │ └─> Add Headers
186
-
187
-
188
- HTTPManagerService
189
-
190
- ├─> Check Polling
191
- ├─> Execute HTTP Request (HttpClient)
192
-
193
-
194
- Interceptors
195
-
196
- ├─> RequestHeadersInterceptor (add headers)
197
- ├─> WithCredentialsInterceptor (add credentials)
198
- └─> RequestErrorInterceptor (handle errors)
199
-
200
-
201
- Backend Server
202
-
203
- ├─> Process Request
204
- └─> Return Response
205
-
206
-
207
- HTTPManagerService
208
-
209
- ├─> Apply Adapter (transform data)
210
- ├─> Update isPending$ = false
211
- ├─> Update data$ with new data
212
-
213
-
214
- HTTPManagerStateService
215
-
216
- ├─> Update ComponentStore state
217
- └─> Save to IndexedDB (if configured)
218
-
219
-
220
- Component
221
-
222
- └─> Display updated data via data$ observable
223
- ```
224
-
225
- ### WebSocket Message Flow
226
-
227
- ```
228
- Component
229
-
230
- └─> Send Message (e.g., sendNotification())
231
-
232
-
233
- HTTPManagerStateService
234
-
235
- └─> Add Channel Prefix (MES-, PUB-, or SYS-)
236
-
237
-
238
- WebsocketService
239
-
240
- ├─> Format Message
241
- │ ├─> type: 'notification'
242
- │ ├─> channel: 'MES-alerts'
243
- │ ├─> content: { message: '...' }
244
- │ └─> sessionId: { id, name, email }
245
-
246
- └─> Send via WebSocket
247
-
248
-
249
- Backend WebSocket Server
250
-
251
- ├─> Validate Channel & User
252
- ├─> Store in Database (for MES- channels)
253
- └─> Broadcast to Subscribers
254
-
255
-
256
- All Connected Clients (Subscribers)
257
-
258
- ├─> WebsocketService receives message
259
-
260
-
261
- HTTPManagerStateService
262
-
263
- ├─> Update ComponentStore
264
- └─> Emit via notificationMessages$
265
-
266
-
267
- Component
268
-
269
- └─> Display notification in UI
270
- ```
271
-
272
- ## Channel Architecture
273
-
274
- ### Channel Types and Data Flow
275
-
276
- ```
277
- ┌─────────────────────────────────────────────────────────────────┐
278
- │ Client Application │
279
- ├─────────────────────────────────────────────────────────────────┤
280
- │ |
281
- │ Component calls: │
282
- │ ┌──────────────────────────────────────────────────────────┐ │
283
- │ │ stateService.subscribeToChannel('general') (PUB)│ │
284
- │ │ stateService.subscribeToNotificationChannel('alerts') (MES)│ │
285
- │ │ stateService.fetchRecords() (SYS)│ │
286
- │ └──────────────────────────────────────────────────────────┘ │
287
- │ │ │
288
- │ ▼ │
289
- │ ┌──────────────────────────────────────────────────────────┐ │
290
- │ │ HTTPManagerStateService │ │
291
- │ │ - Adds appropriate prefix (PUB-, MES-, SYS-) │ │
292
- │ │ - Routes to WebsocketService │ │
293
- │ └──────────────────────────────────────────────────────────┘ │
294
- │ │ │
295
- │ ▼ │
296
- │ ┌──────────────────────────────────────────────────────────┐ │
297
- │ │ WebsocketService │ │
298
- │ │ - Manages connection lifecycle │ │
299
- │ │ - Sends subscription messages │ │
300
- │ │ - Receives and routes messages │ │
301
- │ └──────────────────────────────────────────────────────────┘ │
302
- │ │ │
303
- └────────────────────────────┼─────────────────────────────────────┘
304
-
305
-
306
- ┌─────────────────────────────────────────────────────────────────┐
307
- │ WebSocket Server │
308
- ├─────────────────────────────────────────────────────────────────┤
309
- │ │
310
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
311
- │ │ PUB- Channel │ │ MES- Channel │ │ SYS- Channel │ │
312
- │ │ │ │ │ │ │ │
313
- │ │ In-Memory │ │ DB Persisted │ │ State Sync │ │
314
- │ │ Broadcasting │ │ Notifications│ │ Private │ │
315
- │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │
316
- │ │ │ │ │
317
- │ ▼ ▼ ▼ │
318
- │ ┌────────────────────────────────────────────────┐ │
319
- │ │ Channel Subscribers (Set<WebSocket>) │ │
320
- │ └────────────────────────────────────────────────┘ │
321
- │ │ │ │ │
322
- │ └──────────────────┴──────────────────┘ │
323
- │ │ │
324
- │ ▼ │
325
- │ ┌─────────────────────────────────────────────────┐ │
326
- │ │ Broadcast to All Subscribers │ │
327
- │ └─────────────────────────────────────────────────┘ │
328
- │ │
329
- │ For MES- channels: │
330
- │ ┌─────────────────────────────────────────────────┐ │
331
- │ │ 1. Store in SQLite Database │ │
332
- │ │ 2. Broadcast to current subscribers │ │
333
- │ │ 3. Retrieve historical data on new subscription│ │
334
- │ └─────────────────────────────────────────────────┘ │
335
- │ │
336
- └───────────────────────────────────────────────────────────────────┘
337
- ```
338
-
339
- ## State Management Flow
340
-
341
- ```
342
- ┌─────────────────────────────────────────────────────────────┐
343
- │ ComponentStore │
344
- │ (HTTPManagerStateService extends this) │
345
- ├─────────────────────────────────────────────────────────────┤
346
- │ │
347
- │ State Interface: │
348
- │ { │
349
- │ records: T[], // Array of entities │
350
- │ record: T | null, // Single selected entity │
351
- │ page: number, // Current page │
352
- │ totalPages: number, // Total pages │
353
- │ isPending: boolean, // Loading state │
354
- │ error: any // Error state │
355
- │ } │
356
- │ │
357
- │ Selectors (Observables): │
358
- │ ├─> data$ (all records) │
359
- │ ├─> record$ (single record) │
360
- │ ├─> selectRecord$(id) (specific record) │
361
- │ ├─> page$ │
362
- │ └─> totalPages$ │
363
- │ │
364
- │ Updaters (State Mutations): │
365
- │ ├─> updateRecordsState(records[]) │
366
- │ ├─> addRecordState(record) │
367
- │ ├─> updateRecordState(record) │
368
- │ ├─> deleteRecordState(id) │
369
- │ └─> setError(error) │
370
- │ │
371
- │ Effects (Side Effects): │
372
- │ ├─> fetchRecords() → HTTP GET │
373
- │ ├─> createRecord() → HTTP POST → addRecordState() │
374
- │ ├─> updateRecord() → HTTP PUT → updateRecordState() │
375
- │ ├─> deleteRecord() → HTTP DELETE → deleteRecordState() │
376
- │ └─> WebSocket messages → auto state updates │
377
- │ │
378
- └───────────────────────────────────────────────────────────────┘
379
- ```
380
-
381
- ## Caching Strategy
382
-
383
- ```
384
- ┌────────────────────────────────────────────────────────────┐
385
- │ Fetch Records Request │
386
- └──────────────────────┬─────────────────────────────────────┘
387
-
388
-
389
- ┌─────────────────────────┐
390
- │ DatabaseStorage Config? │
391
- └────────┬────────────────┘
392
-
393
- ┌───────┴────────┐
394
- │ │
395
- YES NO
396
- │ │
397
- ▼ ▼
398
- ┌──────────────────┐ ┌──────────────┐
399
- │Check IndexedDB │ │Fetch from │
400
- │for cached data │ │Server (HTTP) │
401
- └────┬─────────────┘ └──────┬───────┘
402
- │ │
403
- ▼ │
404
- ┌──────────────┐ │
405
- │Cache Valid? │ │
406
- └──┬───────────┘ │
407
- │ │
408
- ┌──┴──┐ │
409
- │ YES │ NO │
410
- │ │ │
411
- ▼ ▼ │
412
- │ ┌──────────────┐ │
413
- │ │Fetch from │ │
414
- │ │Server │ │
415
- │ └──────┬───────┘ │
416
- │ │ │
417
- │ ▼ │
418
- │ ┌──────────────┐ │
419
- │ │Save to │ │
420
- │ │IndexedDB │ │
421
- │ └──────┬───────┘ │
422
- │ │ │
423
- └─────────┴──────────────────┘
424
-
425
-
426
- ┌──────────────────────────┐
427
- │Update ComponentStore │
428
- │and emit via data$ │
429
- └──────────────────────────┘
430
- ```
431
-
432
- ## File Structure
433
-
434
- ```
435
- projects/http-request-manager/
436
- ├── src/
437
- │ ├── lib/
438
- │ │ ├── services/
439
- │ │ │ ├── request-manager-services/
440
- │ │ │ │ ├── http-manager.service.ts # Base HTTP service (Observable)
441
- │ │ │ │ ├── http-manager-signals.service.ts # HTTP service (Signals)
442
- │ │ │ │ ├── request.service.ts # Base request service
443
- │ │ │ │ ├── request-signals.service.ts # Base request service (Signals)
444
- │ │ │ │ └── rxjs-operators/ # Custom RxJS operators
445
- │ │ │ │
446
- │ │ │ ├── request-manager-state-service/
447
- │ │ │ │ ├── http-manager-state.store.ts # State management (ComponentStore)
448
- │ │ │ │ └── models/ # Type definitions
449
- │ │ │ │
450
- │ │ │ ├── store-state-manager-service/
451
- │ │ │ │ ├── store-state-manager.service.ts # LocalStorage + ComponentStore
452
- │ │ │ │ └── models/
453
- │ │ │ │
454
- │ │ │ ├── local-storage-manager-service/
455
- │ │ │ │ ├── local-storage-manager.service.ts # LocalStorage/SessionStorage
456
- │ │ │ │ ├── local-storage-signals-manager.service.ts # Signals API
457
- │ │ │ │ └── models/
458
- │ │ │ │
459
- │ │ │ ├── database-manager-service/
460
- │ │ │ │ ├── database.manager.service.ts # IndexedDB (Dexie.js)
461
- │ │ │ │ ├── db.storage.service.ts # Dexie.js wrapper
462
- │ │ │ │ └── models/
463
- │ │ │ │
464
- │ │ │ ├── ws-manager-service/
465
- │ │ │ │ ├── websocket-service/
466
- │ │ │ │ │ └── websocket-manager.service.ts # Singleton WS connection
467
- │ │ │ │ ├── services/
468
- │ │ │ │ │ └── websocket.service.ts # Legacy WS service
469
- │ │ │ │ ├── message-tracker.service.ts # Message history & replay
470
- │ │ │ │ └── models/
471
- │ │ │ │
472
- │ │ │ ├── utils/ # Utility services
473
- │ │ │ │ ├── utils.service.ts
474
- │ │ │ │ ├── object-merger.service.ts
475
- │ │ │ │ ├── encryption/ # Encryption utilities
476
- │ │ │ │ └── app.service.ts
477
- │ │ │ │
478
- │ │ │ └── index.ts # Service exports
479
- │ │ │
480
- │ │ ├── interceptors/
481
- │ │ │ ├── request-error.interceptor.ts # Error handling + toasts
482
- │ │ │ ├── request-header.interceptor.ts # Auto headers
483
- │ │ │ ├── credentials.interceptor.ts # withCredentials
484
- │ │ │ ├── proxy-debugger.interceptor.ts # Debug logging
485
- │ │ │ └── models/
486
- │ │ │
487
- │ │ ├── models/ # Shared models
488
- │ │ │ ├── api-request.model.ts
489
- │ │ │ ├── database-storage.model.ts
490
- │ │ │ ├── data-type.enum.ts
491
- │ │ │ ├── retry-options.model.ts
492
- │ │ │ ├── config-options.model.ts
493
- │ │ │ └── index.ts
494
- │ │ │
495
- │ │ ├── http-request-services-demo/ # Demo components
496
- │ │ │ ├── request-manager-demo/
497
- │ │ │ ├── request-manager-state-demo/
498
- │ │ │ ├── request-signals-manager-demo/
499
- │ │ │ ├── database-data-demo/
500
- │ │ │ ├── local-storage-demo/
501
- │ │ │ └── local-storage-signals-demo/
502
- │ │ │
503
- │ │ ├── http-request-manager.module.ts # Module definition
504
- │ │ └── index.ts # Public API
505
- │ │
506
- │ └── docs/ # Documentation
507
- │ ├── HTTP_MANAGER_README.md
508
- │ ├── HTTP_STATE_MANAGER_README.md
509
- │ ├── HTTP_SINGNALS_MANAGER_README.md
510
- │ ├── WS_MANAGER_README.md
511
- │ ├── DATABASE_README.md
512
- │ ├── LOCAL_STORAGE_README.md
513
- │ ├── UTILS_README.md
514
- │ └── INTERCEPTOR_README.md
515
-
516
- ├── ARCHITECTURE.md # This file
517
- ├── README.md # Main documentation
518
- ├── package.json
519
- └── ng-package.json # ng-packagr config
520
- ```
521
-
522
- ### Backend Requirements
523
-
524
- For full functionality, the backend server must:
525
-
526
- 1. **HTTP REST API**
527
- - CRUD endpoints for entities
528
- - JSON request/response format
529
- - Support for standard HTTP methods (GET, POST, PUT, DELETE)
530
-
531
- 2. **WebSocket Server**
532
- - Accept WebSocket connections with optional JWT authentication
533
- - Handle message types: `subscribe`, `unsubscribe`, `message`, `notification`, etc.
534
- - Broadcast messages to channel subscribers
535
- - Maintain channel subscriptions per connection
536
-
537
- 3. **Database (for MES- channels)**
538
- - Store notifications with: id, channel, user_name, created (epoch), message (JSON)
539
- - Support queries by channel and date range
540
- - Provide endpoints for:
541
- - GET today's notification channels
542
- - GET previous day's notification channels
543
- - GET notifications by channel with date filters
544
-
545
- ### Example Backend Structure
546
-
547
- See `gtlc-websockets` server implementation for reference:
548
- - `ws-server.js` - Main server with HTTP and WebSocket setup
549
- - `middleware/websocket-service.js` - WebSocket message handlers
550
- - `middleware/notification-db.js` - SQLite database operations
551
-
552
- ---
553
-
554
- ## Security Considerations
555
-
556
- 1. **JWT Authentication**: WebSocket connections can require JWT tokens
557
- 2. **Encrypted Storage**: LocalStorage can use AES encryption with APP_ID
558
- 3. **Channel Access Control**: Backend validates user permissions for channels
559
- 4. **HTTPS/WSS**: Production deployments should use secure protocols
560
- 5. **Data Validation**: All inputs are validated on server side
561
-
562
- ---
563
-
564
- ## Performance Optimizations
565
-
566
- 1. **IndexedDB Caching**: Reduces server load and improves offline capability
567
- 2. **Polling with Countdown**: Visual feedback prevents duplicate requests
568
- 3. **Connection Pooling**: WebSocket reuses single connection for all channels
569
- 4. **Debounced Updates**: State updates batched when possible
570
- 5. **Lazy Loading**: Services loaded only when needed
571
-
572
- ---
573
-
574
- ## Migration Guide
575
-
576
- ### From HTTPClient to HTTPManagerService
577
-
578
- ```typescript
579
- // Before (HttpClient)
580
- http.get('api/users').subscribe(users => {
581
- this.users = users;
582
- this.loading = false;
583
- });
584
-
585
- // After (HTTPManagerService)
586
- httpManager.getRequest(
587
- ApiRequest.adapt({ path: ['users'] })
588
- ).subscribe();
589
-
590
- data$ = this.httpManager.data$;
591
- isLoading$ = this.httpManager.isPending$;
592
- ```
593
-
594
- ### From Manual State to HTTPManagerStateService
595
-
596
- ```typescript
597
- // Before (Manual State)
598
- users: User[] = [];
599
- loading = false;
600
-
601
- loadUsers() {
602
- this.loading = true;
603
- this.http.get('api/users').subscribe(users => {
604
- this.users = users;
605
- this.loading = false;
606
- });
607
- }
608
-
609
- addUser(user: User) {
610
- this.http.post('api/users', user).subscribe(newUser => {
611
- this.users = [...this.users, newUser];
612
- });
613
- }
614
-
615
- // After (HTTPManagerStateService)
616
- @Injectable()
617
- export class UsersStore extends HTTPManagerStateService<User> {
618
- constructor() {
619
- super(ApiRequest.adapt({ path: ['users'] }), DataType.ARRAY);
620
- }
621
-
622
- loadUsers() { this.fetchRecords(); }
623
- addUser(user: User) { this.createRecord(user); }
624
- }
625
-
626
- // Component
627
- data$ = this.usersStore.data$;
628
- isLoading$ = this.usersStore.isPending$;
629
- ```
630
-
631
- ---
632
-
633
- This architecture provides a scalable, maintainable foundation for Angular applications with comprehensive data management capabilities.