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,1037 +0,0 @@
1
- # HTTP Request Manager - Complete API Reference
2
-
3
- A comprehensive guide to all services, methods, and features available in the HTTP Request Manager library.
4
-
5
- ## Table of Contents
6
-
7
- 1. [HTTP Services](#http-services)
8
- 2. [State Management Services](#state-management-services)
9
- 3. [WebSocket Services](#websocket-services)
10
- 4. [Storage Services](#storage-services)
11
- 5. [Database Services](#database-services)
12
- 6. [Utility Services](#utility-services)
13
- 7. [Interceptors](#interceptors)
14
- 8. [Models & Configuration](#models--configuration)
15
-
16
- ---
17
-
18
- ## HTTP Services
19
-
20
- ### HTTPManagerService
21
-
22
- **Location:** `services/request-manager-services/http-manager.service.ts`
23
-
24
- **Description:** Core HTTP client service with Observable-based state management.
25
-
26
- **Features:**
27
- - HTTP CRUD operations (GET, POST, PUT, DELETE)
28
- - Loading states (`isPending$`, `error$`, `data$`, `countdown$`)
29
- - Configurable retry logic
30
- - Polling with countdown timers
31
- - Data adapters and mappers
32
- - Streaming response support (NDJSON, SSE)
33
- - File download with progress tracking
34
-
35
- **Observable Properties:**
36
- ```typescript
37
- data$: Observable<any> // Response data
38
- isPending$: Observable<boolean> // Loading state
39
- error$: Observable<any> // Error state
40
- countdown$: Observable<number> // Polling countdown
41
- ```
42
-
43
- **Methods:**
44
-
45
- #### HTTP Request Methods
46
-
47
- ```typescript
48
- getRequest<T>(options?: ApiRequest, params?: any[]): Observable<T>
49
- postRequest<T>(data: T, options: ApiRequest, params?: any[]): Observable<T>
50
- putRequest<T>(data: T, options: ApiRequest, params?: any[]): Observable<T>
51
- deleteRequest<T>(options: ApiRequest, params?: any[]): Observable<T>
52
- downloadRequest<T>(options: ApiRequest, params?: any[], saveAs?: string): Observable<T>
53
- uploadRequest<T>(files: File | File[], options: ApiRequest, params?: any[]): Observable<T>
54
- ```
55
-
56
- #### WebSocket Methods (delegated to WebSocketManagerService)
57
-
58
- ```typescript
59
- connect(options: WSOptions, jwtToken: string): void
60
- disconnect(): void
61
- subscribeToChannel(channel: string, userData?: any): void
62
- subscribeToChannels(channels: string[], userData?: any): void
63
- unsubscribeFromChannel(channel: string): void
64
- getSubscribedChannels(): Set<string>
65
- sendBroadcast(content: any): void
66
- sendMessageInChannel(channel: string, content: any): void
67
- sendChannelMessage(channel: string, content: any): void
68
- sendChannelMessageToChannels(channels: string[], content: any): void
69
- sendMessageToUser(user: string, content: any): void
70
- getAllChannels(): void
71
- createChannel(channel: string): void
72
- deleteChannel(channel: string): void
73
- ```
74
-
75
- **Usage Example:**
76
- ```typescript
77
- import { HTTPManagerService, ApiRequest } from 'http-request-manager';
78
-
79
- @Component({})
80
- export class UsersComponent {
81
- httpManager = inject(HTTPManagerService);
82
- data$ = this.httpManager.data$;
83
- isLoading$ = this.httpManager.isPending$;
84
-
85
- ngOnInit() {
86
- this.httpManager.getRequest(
87
- ApiRequest.adapt({
88
- path: ['users'],
89
- retry: { times: 3, delay: 1 }
90
- })
91
- ).subscribe();
92
- }
93
- }
94
- ```
95
-
96
- ---
97
-
98
- ### HTTPManagerSignalsService
99
-
100
- **Location:** `services/request-manager-services/http-manager-signals.service.ts`
101
-
102
- **Description:** Signal-based HTTP service with the same features as HTTPManagerService.
103
-
104
- **Signal Properties:**
105
- ```typescript
106
- data: Signal<any> // Response data
107
- isPending: Signal<boolean> // Loading state
108
- error: Signal<any> // Error state
109
- countdown: Signal<number> // Polling countdown
110
- ```
111
-
112
- **Methods:** Same as HTTPManagerService
113
-
114
- **Usage Example:**
115
- ```typescript
116
- import { HTTPManagerSignalsService, ApiRequest } from 'http-request-manager';
117
-
118
- @Component({
119
- template: `
120
- <div *ngIf="isLoading()">Loading...</div>
121
- <div *ngFor="let user of data()">{{ user.name }}</div>
122
- `
123
- })
124
- export class UsersComponent {
125
- httpManager = inject(HTTPManagerSignalsService);
126
- data = this.httpManager.data;
127
- isLoading = this.httpManager.isPending;
128
-
129
- ngOnInit() {
130
- this.httpManager.getRequest(
131
- ApiRequest.adapt({ path: ['users'] })
132
- ).subscribe();
133
- }
134
- }
135
- ```
136
-
137
- ---
138
-
139
- ## State Management Services
140
-
141
- ### HTTPManagerStateService
142
-
143
- **Location:** `services/request-manager-state-service/http-manager-state.store.ts`
144
-
145
- **Description:** Comprehensive state management service combining HTTP requests, WebSocket real-time updates, and IndexedDB persistence. Extends NgRx ComponentStore.
146
-
147
- **Extends:** `ComponentStore<APIStateManagerData<T>>`
148
-
149
- **Features:**
150
- - All HTTPManagerService features
151
- - ComponentStore-based state management
152
- - Automatic CRUD state updates
153
- - WebSocket integration with channel prefixes
154
- - IndexedDB caching with expiration
155
- - Pagination support
156
- - Real-time synchronization
157
- - Database flush capability
158
-
159
- **Observable Properties:**
160
- ```typescript
161
- // From ComponentStore
162
- data$: Observable<T[]> // Array data
163
- page$: Observable<number> // Current page
164
- totalPages$: Observable<number> // Total pages
165
- percentage$: Observable<number> // Download percentage
166
-
167
- // WebSocket
168
- messages$: Observable<any> // All WS messages
169
- userListByChannel$: Observable<Map<string, any[]>>
170
- userList$: Observable<any[]> // Unique users
171
- user$: Observable<WSUser|null> // Current user
172
- channels$: Observable<string[]|null> // Subscribed channels
173
-
174
- // Notifications
175
- notificationChannels$: Observable<string[]> // In-memory channels
176
- todaysNotificationChannels$: Observable<string[]> // DB channels
177
- notificationMessages$: Observable<any[]> // Notification list
178
- latestNotification$: Observable<any> // Latest notification
179
-
180
- // Communication
181
- communicationMessages$: Observable<any[]> // Channel messages
182
- latestCommunicationMessages$: Observable<any|null>
183
- userAction$: Observable<any|null> // WS-triggered actions
184
-
185
- // Connection
186
- connectionStatus$: Observable<boolean> // WS connection
187
- wsRetryAttempts$: Observable<number> // Retry count
188
- wsNextRetry$: Observable<number> // Next retry countdown
189
- ```
190
-
191
- **Methods:**
192
-
193
- #### State Management
194
-
195
- ```typescript
196
- initializeState(data: any): void
197
- clearRecords(): void
198
- ```
199
-
200
- #### CRUD Operations
201
-
202
- ```typescript
203
- fetchRecords(options?: RequestOptions): Effect
204
- fetchRecord(options: RequestOptions, method: string): Effect
205
- createRecord(data: any|null, options?: RequestOptions): Effect
206
- updateRecord(data: any|null, options?: RequestOptions): Effect
207
- deleteRecord(options?: RequestOptions): Effect
208
- ```
209
-
210
- **RequestOptions for fetchRecords/fetchStream:**
211
-
212
- | Property | Type | Default | Description |
213
- |----------|------|---------|-------------|
214
- | `path` | `any[]` | `[]` | URL path segments |
215
- | `headers` | `any` | `{}` | Custom HTTP headers |
216
- | `forceRefresh` | `boolean` | `undefined` | Bypass query tracking and always make the API request |
217
- | `ignoreQueryParams` | `string[]` | `[]` | Query parameter keys to exclude from request-change tracking |
218
- | `queryParamsExpiresIn` | `string \| number` | `undefined` | Expiry duration for tracked query values (e.g., `'10s'`, `'5mn'`, `'1h'`) |
219
- | `watchParams` | `string[]` | `undefined` | Specific query keys to watch for change detection (variation mode) |
220
- | `watchExpiresAt` | `number` | `undefined` | Epoch timestamp when tracked values expire |
221
-
222
- **Scope and behavior:**
223
- - Database enabled (`DatabaseStorage` configured): tracker is active and can prevent repeated identical API calls until expiry resets tracked values.
224
- - Database disabled: tracker is not enabled; requests go straight to API.
225
- - `forceRefresh: true` bypasses tracking and always makes the API request.
226
-
227
- #### Streaming
228
-
229
- ```typescript
230
- createStream(data: any|null, options?: RequestOptions): Effect
231
- fetchStream(options?: RequestOptions): Effect
232
- ```
233
-
234
- #### Database Operations
235
-
236
- ```typescript
237
- clearDatabase(): void
238
- ```
239
-
240
- **Clear Database Example:**
241
- ```typescript
242
- // Simple call - subscription handled internally
243
- myStateService.clearDatabase();
244
-
245
- // This will:
246
- // 1. Clear all records from IndexedDB table
247
- // 2. Clear in-memory state (set to empty array/object)
248
- // 3. Log success/error to console
249
- // 4. NOT re-fetch from API
250
- // 5. NOT clear localStorage metadata
251
- ```
252
-
253
- #### WebSocket Communication
254
-
255
- ```typescript
256
- wsCommunication(method: string, path?: string|number[]): void
257
- wsMessaging(message: ChannelMessage, channels?: string[]): void
258
- ```
259
-
260
- #### Channel Management
261
-
262
- ```typescript
263
- subscribeToChannel(channel: string): void
264
- subscribeToChannels(channels: string[]): void
265
- unsubscribeFromChannel(channel: string): void
266
- getSubscribedChannels(): Set<string>
267
- createChannel(channel: string): void
268
- deleteChannel(channel: string): void
269
- getAllChannels(): void
270
- getUsersInChannel(channel: string): void
271
- ```
272
-
273
- #### Message Channels (PUB- prefix)
274
-
275
- ```typescript
276
- subscribeToMessageChannel(channel: string): void
277
- unsubscribeFromMessageChannel(channel: string): void
278
- ```
279
-
280
- #### Notification Channels (MES- prefix)
281
-
282
- ```typescript
283
- createNotificationChannel(channel: string): void
284
- getNotificationChannels(): void
285
- getTodaysNotificationChannels(): void
286
- subscribeToNotificationChannel(channel: string, options?: { startEpoch?: number; endEpoch?: number }, user?: any): void
287
- unsubscribeFromNotificationChannel(channel: string): void
288
- sendNotification(channel: string, content: any): void
289
- ```
290
-
291
- **Usage Example:**
292
- ```typescript
293
- import { HTTPManagerStateService, ApiRequest, DataType, DatabaseStorage } from 'http-request-manager';
294
-
295
- @Injectable()
296
- export class UsersStateService extends HTTPManagerStateService<User> {
297
- constructor() {
298
- super(
299
- ApiRequest.adapt({
300
- server: 'https://api.example.com',
301
- path: ['users'],
302
- adapter: User.adapt
303
- }),
304
- DataType.ARRAY,
305
- DatabaseStorage.adapt({
306
- table: 'users',
307
- expiresIn: '1h'
308
- })
309
- );
310
- }
311
- }
312
-
313
- // Component
314
- @Component({})
315
- export class UsersComponent {
316
- usersStore = inject(UsersStateService);
317
- data$ = this.usersStore.data$;
318
-
319
- ngOnInit() {
320
- this.usersStore.fetchRecords();
321
- }
322
-
323
- onClearCache() {
324
- this.usersStore.clearDatabase();
325
- }
326
- }
327
- ```
328
-
329
- ---
330
-
331
- ### StoreStateManagerService
332
-
333
- **Location:** `services/store-state-manager-service/store-state-manager.service.ts`
334
-
335
- **Description:** LocalStorage persistence with ComponentStore integration.
336
-
337
- **Extends:** `ComponentStore<T>`
338
-
339
- **Features:**
340
- - Automatic state synchronization with LocalStorage
341
- - Configurable model-based state
342
- - Reactive updates via localStorage changes
343
-
344
- **Methods:**
345
- ```typescript
346
- init(options?: StateStorageOptions): void
347
- restoreState(): Subscription
348
- updateState(state: any): void
349
- ```
350
-
351
- **Usage Example:**
352
- ```typescript
353
- import { StoreStateManagerService, StateStorageOptions } from 'http-request-manager';
354
-
355
- @Injectable()
356
- export class AppStore extends StoreStateManagerService<AppState> {
357
- constructor() {
358
- super(StateStorageOptions.adapt({
359
- store: 'app-state',
360
- model: () => ({
361
- theme: 'light',
362
- language: 'en',
363
- notifications: true
364
- }),
365
- options: SettingOptions.adapt({
366
- storage: StorageType.GLOBAL,
367
- encrypted: false,
368
- expiresIn: '30d'
369
- })
370
- }));
371
- }
372
- }
373
- ```
374
-
375
- ---
376
-
377
- ## WebSocket Services
378
-
379
- ### WebSocketManagerService
380
-
381
- **Location:** `services/ws-manager-service/websocket-service/websocket-manager.service.ts`
382
-
383
- **Description:** Singleton WebSocket connection manager ensuring only ONE connection across ALL instances.
384
-
385
- **Features:**
386
- - Single static connection (shared across all instances)
387
- - Connection lifecycle management
388
- - Channel subscription tracking
389
- - Session ID management (UUID per browser session)
390
- - JWT authentication support
391
- - Automatic reconnection handling
392
- - Message replay support (lastSeenId)
393
-
394
- **Static Properties:**
395
- ```typescript
396
- private static socket: WebSocket | null
397
- private static isConnecting: boolean
398
- private static connectionInitialized: boolean
399
- private static lastOptions: WSOptions | null
400
- ```
401
-
402
- **Observable Properties:**
403
- ```typescript
404
- messages$: Observable<any> // All messages
405
- connectionStatus$: Observable<boolean> // Connection state
406
- subscribedChannels$: Observable<Set<string>>
407
- onReconnect$: Observable<void> // Reconnect events
408
- ```
409
-
410
- **Methods:**
411
-
412
- #### Connection Management
413
-
414
- ```typescript
415
- connect(options: WSOptions, jwtToken: string): void
416
- disconnect(): void
417
- ```
418
-
419
- #### Subscription Management
420
-
421
- ```typescript
422
- subscribeToChannel(channelName: string): void
423
- subscribeToChannels(channelNames: string[]): void
424
- unsubscribeFromChannel(channelName: string): void
425
- getSubscribedChannels(): Set<string>
426
- addSubscribedChannel(channelName: string): void
427
- sendSubscribe(channelName: string, user: any): void
428
- sendSubscribeWithLastSeen(channelName: string, user: any, lastSeenId: number): void
429
- ```
430
-
431
- #### Messaging
432
-
433
- ```typescript
434
- sendBroadcast(content: any): void
435
- sendMessageInChannel(channel: string, content: any): void
436
- sendChannelMessage(channel: string, content: any): void
437
- sendChannelMessageToChannels(channels: string[], content: any): void
438
- sendMessageToUser(user: string, content: any): void
439
- ```
440
-
441
- #### Channel Management
442
-
443
- ```typescript
444
- createChannel(channel: string): void
445
- deleteChannel(channel: string): void
446
- getAllChannels(): void
447
- getUsersInChannel(channel: string): void
448
- ```
449
-
450
- **Usage Example:**
451
- ```typescript
452
- import { WebSocketManagerService, WSOptions } from 'http-request-manager';
453
-
454
- @Component({})
455
- export class ChatComponent {
456
- wsManager = inject(WebSocketManagerService);
457
-
458
- ngOnInit() {
459
- // Connection is singleton - only first call connects
460
- this.wsManager.connect(
461
- WSOptions.adapt({
462
- wsServer: 'wss://ws.example.com',
463
- id: 'chat-room',
464
- user: { id: 'user123', name: 'John' }
465
- }),
466
- 'jwt-token'
467
- );
468
-
469
- // Listen to messages
470
- this.wsManager.messages$.subscribe(message => {
471
- console.log('Received:', message);
472
- });
473
-
474
- // Subscribe to channel
475
- this.wsManager.subscribeToChannel('chat-room');
476
- }
477
-
478
- sendMessage(content: any) {
479
- this.wsManager.sendChannelMessage('chat-room', content);
480
- }
481
- }
482
- ```
483
-
484
- ---
485
-
486
- ### MessageTrackerService
487
-
488
- **Location:** `services/ws-manager-service/message-tracker.service.ts`
489
-
490
- **Description:** Message history tracking and re-subscription management.
491
-
492
- **Features:**
493
- - Message history with persistence
494
- - Last-seen message ID tracking
495
- - Automatic re-subscription on reconnect
496
- - Notification channel management
497
- - Historical message retrieval
498
-
499
- **Methods:**
500
- ```typescript
501
- subscribeToChannel(channel: string, userData?: any): void
502
- getNotificationChannels(): void
503
- getTodaysNotificationChannels(): void
504
- subscribeToNotificationChannel(channel: string, options?: any, user?: any): void
505
- unsubscribeFromNotificationChannel(channel: string): void
506
- sendNotification(channel: string, content: any): void
507
- createNotificationChannel(channel: string): void
508
- ```
509
-
510
- ---
511
-
512
- ## Storage Services
513
-
514
- ### LocalStorageManagerService
515
-
516
- **Location:** `services/local-storage-manager-service/local-storage-manager.service.ts`
517
-
518
- **Description:** LocalStorage and SessionStorage management with encryption and expiration.
519
-
520
- **Extends:** `ComponentStore<State>`
521
-
522
- **Features:**
523
- - LocalStorage (GLOBAL) and SessionStorage (SESSION) support
524
- - AES encryption for sensitive data
525
- - Automatic expiration cleanup
526
- - Reactive store$ observables
527
- - Metadata tracking (settings, expires)
528
-
529
- **Observable Properties:**
530
- ```typescript
531
- stores$: Observable<StorageOption[]> // All store metadata
532
- store$(name: string): Observable<any> // Store data observable
533
- setting$(name: string): Observable<any> // Store settings observable
534
- ```
535
-
536
- **Signal Methods:**
537
- ```typescript
538
- signal<T>(key: string, defaultValue: T): WritableSignal<T>
539
- ```
540
-
541
- **Methods:**
542
-
543
- #### Store Management
544
-
545
- ```typescript
546
- createStore(options: StoreOptions): void
547
- updateStore(options: StoreOptions): void
548
- deleteStore(options: { name: string }): void
549
- resetStore(): void
550
- ```
551
-
552
- #### Item Operations
553
-
554
- ```typescript
555
- setItem(key: string, value: any, options?: SettingOptions): void
556
- getItem(key: string): any
557
- removeItem(key: string): void
558
- ```
559
-
560
- #### Observable Methods
561
-
562
- ```typescript
563
- store$(name: string): Observable<any>
564
- setting$(name: string): Observable<any>
565
- stores$: Observable<StorageOption[]>
566
- ```
567
-
568
- **Usage Example:**
569
- ```typescript
570
- import { LocalStorageManagerService, SettingOptions, StorageType } from 'http-request-manager';
571
-
572
- @Component({})
573
- export class SettingsComponent {
574
- storage = inject(LocalStorageManagerService);
575
-
576
- // Signal-based access
577
- theme = this.storage.signal('theme', 'light');
578
- language = this.storage.signal('language', 'en');
579
-
580
- // Observable-based access
581
- settings$ = this.storage.store$('user-preferences');
582
-
583
- // Manual operations
584
- saveSettings() {
585
- this.storage.setItem('user-preferences', {
586
- theme: this.theme(),
587
- language: this.language()
588
- }, SettingOptions.adapt({
589
- storage: StorageType.GLOBAL,
590
- encrypted: false,
591
- expiresIn: '30d'
592
- }));
593
- }
594
- }
595
- ```
596
-
597
- ---
598
-
599
- ### LocalStorageSignalsManagerService
600
-
601
- **Location:** `services/local-storage-manager-service/local-storage-signals-manager.service.ts`
602
-
603
- **Description:** Signal-optimized version of LocalStorageManagerService.
604
-
605
- **Features:** Same as LocalStorageManagerService but with Signal-first API
606
-
607
- ---
608
-
609
- ## Database Services
610
-
611
- ### DatabaseManagerService
612
-
613
- **Location:** `services/database-manager-service/database.manager.service.ts`
614
-
615
- **Description:** IndexedDB wrapper using Dexie.js with Observable API.
616
-
617
- **Extends:** `DbService` (Dexie.js wrapper)
618
-
619
- **Features:**
620
- - IndexedDB table management
621
- - Observable-based CRUD operations
622
- - Bulk operations
623
- - Query support with filtering
624
- - Schema inspection
625
-
626
- **Methods:**
627
-
628
- #### Table Management
629
-
630
- ```typescript
631
- getDatabaseTables(): Observable<string[]>
632
- databaseExists(): Observable<boolean>
633
- hasDatabaseTable(tableName: string): Observable<boolean>
634
- getDatabaseTable(tableName: string): Observable<any>
635
- getDatabaseTableSchema(tableName: string): Observable<string[]>
636
- createDatabaseTable(tableDef: TableSchemaDef): Observable<void>
637
- updateDatabaseTableSchema(tableDef: TableSchemaDef): Observable<any>
638
- ```
639
-
640
- #### CRUD Operations
641
-
642
- ```typescript
643
- // Read
644
- getTableRecords(table: string): Observable<any[]>
645
- getTableRecord(table: string, id: number): Observable<any>
646
- findTableRecords(table: string, column: string, value: any): Observable<any[]>
647
- findTableRecord(table: string, column: string, value: any): Observable<any>
648
-
649
- // Create
650
- createTableRecord(table: string, record: any): Observable<any>
651
- createTableRecords(table: string, records: any[]): Observable<any[]>
652
-
653
- // Update
654
- updateTableRecord(table: string, record: any): Observable<any>
655
- updateTableRecords(table: string, records: any[]): Observable<any[]>
656
-
657
- // Delete
658
- deleteTableRecord(table: string, id: number): Observable<void>
659
- deleteTableRecords(table: string, ids: number[]): Observable<void>
660
- deleteTableRecordByColumn(table: string, column: string, value: any): Observable<void>
661
-
662
- // Clear
663
- clearTable(table: string): Observable<any>
664
- ```
665
-
666
- **Clear Table Example:**
667
- ```typescript
668
- import { DatabaseManagerService, TableSchemaDef } from 'http-request-manager';
669
-
670
- @Component({})
671
- export class DatabaseComponent {
672
- dbManager = inject(DatabaseManagerService);
673
-
674
- initializeTable() {
675
- const tableDef = TableSchemaDef.adapt({
676
- table: 'users',
677
- schema: '++id, name, email, age, createdAt'
678
- });
679
-
680
- this.dbManager.createDatabaseTable(tableDef).subscribe();
681
- }
682
-
683
- addSampleData() {
684
- const users = [
685
- { name: 'John', email: 'john@example.com', age: 30 },
686
- { name: 'Jane', email: 'jane@example.com', age: 25 }
687
- ];
688
-
689
- this.dbManager.createTableRecords('users', users).subscribe();
690
- }
691
-
692
- loadData() {
693
- this.dbManager.getTableRecords('users').subscribe(users => {
694
- console.log('Users:', users);
695
- });
696
- }
697
-
698
- clearData() {
699
- this.dbManager.clearTable('users').subscribe(() => {
700
- console.log('Table cleared');
701
- });
702
- }
703
- }
704
- ```
705
-
706
- ---
707
-
708
- ## Utility Services
709
-
710
- ### UtilsService
711
-
712
- **Location:** `services/utils/utils.service.ts`
713
-
714
- **Description:** Collection of utility functions for common tasks.
715
-
716
- **Methods:**
717
-
718
- #### JSON Handling
719
-
720
- ```typescript
721
- stringToJSON(str: string): any
722
- JSONToString(obj: any): string
723
- ```
724
-
725
- #### Type Checking
726
-
727
- ```typescript
728
- isString(value: any): boolean
729
- isObject(value: any): boolean
730
- isJson(str: string): boolean
731
- ```
732
-
733
- #### Expiration Management
734
-
735
- ```typescript
736
- expires(duration: string): number // Convert '1h', '30mn' to epoch
737
- hasExpired(epoch: number): boolean // Check if timestamp expired
738
- timeRemaining(epoch: number): string // Time until expiration
739
- ```
740
-
741
- #### Conversions
742
-
743
- ```typescript
744
- base32ToHex(base32: string): string
745
- binaryToHex(binary: string): string
746
- ```
747
-
748
- #### Object Operations
749
-
750
- ```typescript
751
- deepCompare(obj1: any, obj2: any): boolean
752
- getProperty(obj: any, path: string): any
753
- ```
754
-
755
- **Usage Example:**
756
- ```typescript
757
- import { UtilsService } from 'http-request-manager';
758
-
759
- utils = inject(UtilsService);
760
-
761
- // Expiration
762
- const expires = this.utils.expires('1h'); // Epoch timestamp
763
- const hasExpired = this.utils.hasExpired(expires);
764
-
765
- // JSON
766
- const obj = this.utils.stringToJSON('{"name": "John"}');
767
- const str = this.utils.JSONToString({ name: 'John' });
768
-
769
- // Type checking
770
- if (this.utils.isString(value)) { ... }
771
- ```
772
-
773
- ---
774
-
775
- ### ObjectMergerService
776
-
777
- **Location:** `services/utils/object-merger.service.ts`
778
-
779
- **Description:** Deep merge utility for objects.
780
-
781
- **Methods:**
782
- ```typescript
783
- merge(target: any, source: any): any
784
- ```
785
-
786
- ---
787
-
788
- ### SymmetricalEncryptionService
789
-
790
- **Location:** `services/utils/encryption/symmetrical-encryption.service.ts`
791
-
792
- **Description:** AES encryption/decryption utility.
793
-
794
- **Methods:**
795
- ```typescript
796
- encrypt(data: any, key: string): string
797
- decrypt(encryptedData: string, key: string): any
798
- ```
799
-
800
- ---
801
-
802
- ## Interceptors
803
-
804
- ### RequestErrorInterceptor
805
-
806
- **Description:** Handles HTTP error responses with toast notifications.
807
-
808
- **Features:**
809
- - 4xx errors → Warning toast
810
- - 5xx errors → Error toast
811
- - Detailed console logging
812
-
813
- **Installation:**
814
- ```typescript
815
- providers: [
816
- { provide: HTTP_INTERCEPTORS, useClass: RequestErrorInterceptor, multi: true }
817
- ]
818
- ```
819
-
820
- ---
821
-
822
- ### RequestHeadersInterceptor
823
-
824
- **Description:** Automatically adds common headers to requests.
825
-
826
- **Headers Added:**
827
- - `Content-Type: application/json`
828
- - `Accept-Language: {locale}-CA`
829
- - `Current-Date: YYYY-MM-DD`
830
-
831
- **Installation:**
832
- ```typescript
833
- providers: [
834
- { provide: HTTP_INTERCEPTORS, useClass: RequestHeadersInterceptor, multi: true }
835
- ]
836
- ```
837
-
838
- ---
839
-
840
- ### CredentialsInterceptor
841
-
842
- **Description:** Adds `withCredentials: true` to all requests.
843
-
844
- **Installation:**
845
- ```typescript
846
- providers: [
847
- { provide: HTTP_INTERCEPTORS, useClass: CredentialsInterceptor, multi: true }
848
- ]
849
- ```
850
-
851
- ---
852
-
853
- ### ProxyDebuggerInterceptor
854
-
855
- **Description:** Logs request/response details for debugging.
856
-
857
- **Installation:**
858
- ```typescript
859
- providers: [
860
- { provide: HTTP_INTERCEPTORS, useClass: ProxyDebuggerInterceptor, multi: true }
861
- ]
862
- ```
863
-
864
- ---
865
-
866
- ## Models & Configuration
867
-
868
- ### ApiRequest
869
-
870
- Configuration for HTTP requests.
871
-
872
- ```typescript
873
- interface ApiRequest {
874
- server: string; // Base URL
875
- path: any[]; // Path segments
876
- headers: any; // Custom headers
877
- adapter: Function; // Response transformer
878
- mapper: Function; // Request transformer
879
- polling: number; // Polling interval (seconds)
880
- retry: RetryOptions; // Retry config
881
- stream: boolean; // Enable streaming
882
- displayError: boolean; // Show error toast
883
- saveAs: string; // Download filename
884
- ws: WSOptions; // WebSocket config
885
- }
886
- ```
887
-
888
- ### DatabaseStorage
889
-
890
- Configuration for IndexedDB caching.
891
-
892
- ```typescript
893
- interface DatabaseStorage {
894
- table: string; // Table name
895
- expiresIn: string; // '1h', '30mn', '5mn'
896
- }
897
- ```
898
-
899
- ### WSOptions
900
-
901
- WebSocket connection configuration.
902
-
903
- ```typescript
904
- interface WSOptions {
905
- wsServer: string; // WebSocket server URL
906
- id: string; // Channel ID
907
- user: any; // User info
908
- channels?: string[]; // Additional channels
909
- jwtToken?: string; // JWT token
910
- retry?: { times: number; delay: number };
911
- }
912
- ```
913
-
914
- ### SettingOptions
915
-
916
- LocalStorage configuration.
917
-
918
- ```typescript
919
- interface SettingOptions {
920
- storage: StorageType; // GLOBAL or SESSION
921
- encrypted: boolean; // Enable encryption
922
- expiresIn?: string; // Expiration duration
923
- }
924
- ```
925
-
926
- ### TableSchemaDef
927
-
928
- IndexedDB table schema definition.
929
-
930
- ```typescript
931
- interface TableSchemaDef {
932
- table: string; // Table name
933
- schema: string; // Dexie schema (e.g., '++id, name, email')
934
- }
935
- ```
936
-
937
- ### DataType
938
-
939
- Enum for data structure type.
940
-
941
- ```typescript
942
- enum DataType {
943
- ARRAY = 'array', // List data
944
- OBJECT = 'object' // Single object
945
- }
946
- ```
947
-
948
- ### StorageType
949
-
950
- Enum for storage location.
951
-
952
- ```typescript
953
- enum StorageType {
954
- GLOBAL = 'global', // LocalStorage
955
- SESSION = 'session' // SessionStorage
956
- }
957
- ```
958
-
959
- ---
960
-
961
- ## Quick Reference
962
-
963
- ### Service Injection
964
-
965
- ```typescript
966
- // HTTP (Observable)
967
- httpManager = inject(HTTPManagerService);
968
-
969
- // HTTP (Signals)
970
- httpManager = inject(HTTPManagerSignalsService);
971
-
972
- // State Management
973
- stateStore = inject(HTTPManagerStateService);
974
-
975
- // WebSocket
976
- wsManager = inject(WebSocketManagerService);
977
-
978
- // LocalStorage
979
- localStorage = inject(LocalStorageManagerService);
980
-
981
- // IndexedDB
982
- dbManager = inject(DatabaseManagerService);
983
-
984
- // Utilities
985
- utils = inject(UtilsService);
986
- ```
987
-
988
- ### Common Patterns
989
-
990
- #### Fetch and Display
991
-
992
- ```typescript
993
- // Observable
994
- data$ = this.httpManager.data$;
995
- httpManager.getRequest(ApiRequest.adapt({ path: ['users'] })).subscribe();
996
-
997
- // Signal
998
- data = this.httpManager.data;
999
- httpManager.getRequest(ApiRequest.adapt({ path: ['users'] })).subscribe();
1000
- ```
1001
-
1002
- #### Create Record
1003
-
1004
- ```typescript
1005
- // State Service
1006
- stateStore.createRecord(newData, { path: ['users'] });
1007
-
1008
- // HTTP Service
1009
- httpManager.postRequest(newData, ApiRequest.adapt({ path: ['users'] })).subscribe();
1010
- ```
1011
-
1012
- #### Clear Cache
1013
-
1014
- ```typescript
1015
- // Clear IndexedDB
1016
- stateStore.clearDatabase();
1017
-
1018
- // Clear specific table
1019
- dbManager.clearTable('users').subscribe();
1020
- ```
1021
-
1022
- #### WebSocket Messaging
1023
-
1024
- ```typescript
1025
- // Connect (singleton)
1026
- wsManager.connect(options, jwtToken);
1027
-
1028
- // Subscribe
1029
- wsManager.subscribeToChannel('chat-room');
1030
-
1031
- // Send
1032
- wsManager.sendChannelMessage('chat-room', { text: 'Hello' });
1033
- ```
1034
-
1035
- ---
1036
-
1037
- This API reference provides comprehensive documentation for all services in the HTTP Request Manager library. For more detailed examples and use cases, refer to the individual README files in the `docs/` folder.