http-request-manager 18.15.33 → 18.15.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/TEST_COVERAGE_SUMMARY.md +458 -0
  2. package/ng-package.json +8 -0
  3. package/package.json +4 -13
  4. package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
  5. package/src/docs/ARCHITECTURE.md +633 -0
  6. package/src/docs/BATCH_REQUEST_README.md +467 -0
  7. package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
  8. package/src/docs/DATABASE_README.md +1195 -0
  9. package/src/docs/ENCRYPTION_README.md +403 -0
  10. package/src/docs/HTTP_MANAGER_README.md +628 -0
  11. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
  12. package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
  13. package/src/docs/INTERCEPTOR_README.md +549 -0
  14. package/src/docs/LOCAL_STORAGE_README.md +1056 -0
  15. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
  16. package/src/docs/LOGGER_README.md +310 -0
  17. package/src/docs/MESSAGE_TRACKER_README.md +518 -0
  18. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
  19. package/src/docs/MODELS_README.md +1264 -0
  20. package/src/docs/SIGNAL_SERVICES_README.md +238 -0
  21. package/src/docs/SQL_DIXIE_README.md +574 -0
  22. package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
  23. package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
  24. package/src/docs/UPLOAD_REQUEST_README.md +324 -0
  25. package/src/docs/UTILS_README.md +1604 -0
  26. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
  27. package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
  28. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
  29. package/src/docs/WS_MANAGER_README.md +613 -0
  30. package/src/lib/http-request-manager.module.ts +147 -0
  31. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
  32. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  33. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
  34. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
  35. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  36. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
  37. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  38. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  39. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
  40. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
  41. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
  42. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
  43. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
  44. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
  45. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
  46. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
  65. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  66. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  67. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  68. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  76. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  77. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  78. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  79. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  84. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
  85. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
  86. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
  87. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
  88. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  89. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
  90. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
  91. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
  92. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  93. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
  94. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
  121. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  122. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  123. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  124. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
  143. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
  144. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
  145. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  146. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
  148. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
  149. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
  150. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
  151. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
  152. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
  153. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
  154. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
  155. package/src/lib/index.ts +3 -0
  156. package/src/lib/interceptors/credentials.interceptor.ts +16 -0
  157. package/src/lib/interceptors/index.ts +6 -0
  158. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  159. package/src/lib/interceptors/models/index.ts +2 -0
  160. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  161. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  162. package/src/lib/interceptors/request-header.interceptor.ts +56 -0
  163. package/src/lib/message-display/README.md +509 -0
  164. package/src/lib/message-display/index.ts +4 -0
  165. package/src/lib/message-display/models/action.model.ts +27 -0
  166. package/src/lib/message-display/models/communication-message.model.ts +77 -0
  167. package/src/lib/message-display/models/display-config.model.ts +35 -0
  168. package/src/lib/message-display/models/display-rule.interface.ts +28 -0
  169. package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
  170. package/src/lib/message-display/models/index.ts +6 -0
  171. package/src/lib/message-display/models/slide.model.ts +24 -0
  172. package/src/lib/message-display/rules/default-display-rules.ts +35 -0
  173. package/src/lib/message-display/services/message-display-router.service.ts +63 -0
  174. package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
  175. package/src/lib/models/batch-options.model.ts +33 -0
  176. package/src/lib/models/batch-progress.model.ts +19 -0
  177. package/src/lib/models/batch-request-state.model.ts +40 -0
  178. package/src/lib/models/batch-result.model.ts +30 -0
  179. package/src/lib/models/config-http-options.model.ts +45 -0
  180. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  181. package/src/lib/models/config-options.model.ts +27 -0
  182. package/src/lib/models/config-token.model.ts +9 -0
  183. package/src/lib/models/data-type.enum.ts +5 -0
  184. package/src/lib/models/database-storage.model.ts +24 -0
  185. package/src/lib/models/index.ts +16 -0
  186. package/src/lib/models/retry-options.model.ts +22 -0
  187. package/src/lib/models/upload-validation-error.model.ts +46 -0
  188. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
  189. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
  190. package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
  191. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
  192. package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
  193. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
  194. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
  195. package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
  196. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
  197. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
  198. package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
  199. package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
  200. package/src/lib/services/database-manager-service/index.ts +4 -0
  201. package/src/lib/services/database-manager-service/models/index.ts +2 -0
  202. package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
  203. package/src/lib/services/index.ts +20 -0
  204. package/src/lib/services/local-storage-manager-service/index.ts +4 -0
  205. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  206. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
  207. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
  208. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
  209. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  210. package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
  211. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
  212. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  213. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
  214. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  215. package/src/lib/services/request-manager-services/README.md +282 -0
  216. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
  217. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
  218. package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
  219. package/src/lib/services/request-manager-services/index.ts +8 -0
  220. package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
  221. package/src/lib/services/request-manager-services/request.service.ts +435 -0
  222. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  223. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  224. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
  225. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
  226. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
  227. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
  228. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
  229. package/src/lib/services/request-manager-state-service/index.ts +3 -0
  230. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
  231. package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
  232. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
  233. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
  234. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
  235. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
  236. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
  237. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
  238. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
  239. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
  240. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
  241. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
  242. package/src/lib/services/store-state-manager-service/index.ts +4 -0
  243. package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
  244. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
  245. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
  246. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
  247. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
  248. package/src/lib/services/utils/app.service.spec.ts +25 -0
  249. package/src/lib/services/utils/app.service.ts +21 -0
  250. package/src/lib/services/utils/encryption/README.md +79 -0
  251. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  252. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  253. package/src/lib/services/utils/encryption/index.ts +5 -0
  254. package/src/lib/services/utils/encryption/random.ts +81 -0
  255. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
  256. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  257. package/src/lib/services/utils/headers.service.ts +18 -0
  258. package/src/lib/services/utils/index.ts +9 -0
  259. package/src/lib/services/utils/logger.service.ts +90 -0
  260. package/src/lib/services/utils/models/index.ts +4 -0
  261. package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
  262. package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
  263. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
  264. package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
  265. package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
  266. package/src/lib/services/utils/object-merger.service.ts +78 -0
  267. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  268. package/src/lib/services/utils/path-query.service.ts +69 -0
  269. package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
  270. package/src/lib/services/utils/random-color.utils.ts +83 -0
  271. package/src/lib/services/utils/utils.service.spec.ts +165 -0
  272. package/src/lib/services/utils/utils.service.ts +192 -0
  273. package/src/lib/services/ws-manager-service/index.ts +13 -0
  274. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
  275. package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
  276. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
  277. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
  278. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
  279. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
  280. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
  281. package/src/lib/services/ws-manager-service/models/index.ts +10 -0
  282. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
  283. package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
  284. package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
  285. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
  286. package/src/lib/services/ws-manager-service/services/index.ts +4 -0
  287. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
  288. package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
  289. package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
  290. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
  291. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
  292. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
  293. package/src/public-api.ts +19 -0
  294. package/tsconfig.lib.json +34 -0
  295. package/tsconfig.lib.prod.json +10 -0
  296. package/tsconfig.spec.json +14 -0
  297. package/fesm2022/http-request-manager.mjs +0 -13688
  298. package/fesm2022/http-request-manager.mjs.map +0 -1
  299. package/http-request-manager-18.15.33.tgz +0 -0
  300. package/types/http-request-manager.d.ts +0 -3968
@@ -0,0 +1,338 @@
1
+ # Local Storage Signals Manager Service
2
+
3
+ The `LocalStorageSignalsManagerService` provides signal-based local and session storage management with encryption, expiration, and automatic persistence for Angular 19+ applications.
4
+
5
+ ## Overview
6
+
7
+ This service is the signal-based alternative to `LocalStorageManagerService`. The public API is **store-based**: you create named stores, read them through computed signals, and update them by replacing store data. It does **not** expose a per-key `signal()` / `setSignal()` helper API.
8
+
9
+ ### Key Features
10
+
11
+ - Signal-first selectors via `store(name)`, `stores`, `setting(name)`, and `settings`
12
+ - Automatic persistence to `localStorage` or `sessionStorage`
13
+ - Optional encryption for sensitive store data
14
+ - Expiration support with automatic cleanup
15
+ - Compatible with store-oriented app state such as preferences, sessions, and carts
16
+
17
+ ## Installation
18
+
19
+ ```typescript
20
+ import { HttpRequestManagerModule } from 'http-request-manager';
21
+
22
+ @NgModule({
23
+ imports: [
24
+ HttpRequestManagerModule.forRoot({
25
+ LocalStorageOptions: {
26
+ storageName: 'my-app-data',
27
+ storageSettingsName: 'my-app-settings',
28
+ options: {
29
+ encrypted: false,
30
+ expiresIn: '7d'
31
+ }
32
+ }
33
+ })
34
+ ]
35
+ })
36
+ export class AppModule {}
37
+ ```
38
+
39
+ ## Basic Usage
40
+
41
+ ### Preferences Store Example
42
+
43
+ ```typescript
44
+ import { Component, computed, inject } from '@angular/core';
45
+ import {
46
+ LocalStorageSignalsManagerService,
47
+ StorageType
48
+ } from 'http-request-manager';
49
+
50
+ interface PreferencesState {
51
+ theme: 'light' | 'dark' | 'auto';
52
+ language: string;
53
+ notifications: boolean;
54
+ lastUpdated: string;
55
+ }
56
+
57
+ const defaultPreferences = (): PreferencesState => ({
58
+ theme: 'light',
59
+ language: 'en',
60
+ notifications: true,
61
+ lastUpdated: new Date().toISOString()
62
+ });
63
+
64
+ @Component({
65
+ selector: 'app-user-preferences',
66
+ template: `
67
+ <div>
68
+ <p>Theme: {{ theme() }}</p>
69
+ <p>Language: {{ language() }}</p>
70
+ <p>Notifications: {{ notifications() ? 'On' : 'Off' }}</p>
71
+ <button (click)="setTheme('dark')">Dark</button>
72
+ <button (click)="setTheme('light')">Light</button>
73
+ </div>
74
+ `
75
+ })
76
+ export class UserPreferencesComponent {
77
+ private storage = inject(LocalStorageSignalsManagerService);
78
+ private readonly storeName = 'user-preferences';
79
+
80
+ preferencesStore = this.storage.store(this.storeName);
81
+
82
+ preferences = computed(
83
+ () => this.preferencesStore() ?? defaultPreferences()
84
+ );
85
+
86
+ theme = computed(() => this.preferences().theme);
87
+ language = computed(() => this.preferences().language);
88
+ notifications = computed(() => this.preferences().notifications);
89
+
90
+ constructor() {
91
+ if (!this.storage.storeExists(this.storeName)()) {
92
+ this.storage.createStore({
93
+ name: this.storeName,
94
+ data: defaultPreferences(),
95
+ options: {
96
+ storage: StorageType.GLOBAL,
97
+ encrypted: false,
98
+ expiresIn: '30d'
99
+ }
100
+ });
101
+ }
102
+ }
103
+
104
+ setTheme(theme: PreferencesState['theme']) {
105
+ const current = this.preferences();
106
+
107
+ this.storage.updateStore({
108
+ name: this.storeName,
109
+ data: {
110
+ ...current,
111
+ theme,
112
+ lastUpdated: new Date().toISOString()
113
+ }
114
+ });
115
+ }
116
+ }
117
+ ```
118
+
119
+ ## API Reference
120
+
121
+ ### Store Mutators
122
+
123
+ #### `createStore(store: { name: string; data: any; options: SettingOptions })`
124
+
125
+ Creates a new named store if one does not already exist.
126
+
127
+ ```typescript
128
+ storage.createStore({
129
+ name: 'user-settings',
130
+ data: { theme: 'light', language: 'en' },
131
+ options: {
132
+ storage: StorageType.GLOBAL,
133
+ encrypted: false,
134
+ expiresIn: '30d'
135
+ }
136
+ });
137
+ ```
138
+
139
+ #### `setStore(store: { id: string; name: string; data: any; options: SettingOptions })`
140
+
141
+ Low-level setter for replacing a store entry using an explicit store id.
142
+
143
+ ```typescript
144
+ storage.setStore({
145
+ id: 'abc123',
146
+ name: 'user-settings',
147
+ data: { theme: 'dark', language: 'fr' },
148
+ options: { storage: StorageType.GLOBAL }
149
+ });
150
+ ```
151
+
152
+ #### `updateStore(store: { name: string; data: any })`
153
+
154
+ Replaces the stored data for an existing named store.
155
+
156
+ ```typescript
157
+ storage.updateStore({
158
+ name: 'user-settings',
159
+ data: {
160
+ theme: 'dark',
161
+ language: 'fr'
162
+ }
163
+ });
164
+ ```
165
+
166
+ #### `deleteStore(store: { name: string })`
167
+
168
+ Removes a named store.
169
+
170
+ ```typescript
171
+ storage.deleteStore({ name: 'user-settings' });
172
+ ```
173
+
174
+ #### `resetStore()`
175
+
176
+ Clears all managed stores and settings.
177
+
178
+ ```typescript
179
+ storage.resetStore();
180
+ ```
181
+
182
+ ### Computed Selectors
183
+
184
+ #### `stores`
185
+
186
+ Returns all store settings as a computed signal.
187
+
188
+ ```typescript
189
+ allStores = this.storage.stores;
190
+ allStores();
191
+ ```
192
+
193
+ #### `store(name: string)`
194
+
195
+ Returns a computed signal for the named store's data.
196
+
197
+ ```typescript
198
+ userSettings = this.storage.store('user-settings');
199
+ userSettings();
200
+ ```
201
+
202
+ #### `settings`
203
+
204
+ Returns all store settings as a computed signal.
205
+
206
+ ```typescript
207
+ settings = this.storage.settings;
208
+ settings();
209
+ ```
210
+
211
+ #### `setting(name: string)`
212
+
213
+ Returns a computed signal for one store setting definition.
214
+
215
+ ```typescript
216
+ setting = this.storage.setting('user-settings');
217
+ setting();
218
+ ```
219
+
220
+ #### `storeExists(name: string)`
221
+
222
+ Returns a computed signal indicating whether a named store exists.
223
+
224
+ ```typescript
225
+ exists = this.storage.storeExists('user-settings');
226
+ exists();
227
+ ```
228
+
229
+ ## Storage Options
230
+
231
+ ### `SettingOptions`
232
+
233
+ ```typescript
234
+ interface SettingOptions {
235
+ storage?: StorageType;
236
+ encrypted?: boolean;
237
+ expiresIn?: string;
238
+ expires?: number;
239
+ }
240
+ ```
241
+
242
+ ### `StorageType`
243
+
244
+ ```typescript
245
+ enum StorageType {
246
+ GLOBAL = 'global',
247
+ SESSION = 'session'
248
+ }
249
+ ```
250
+
251
+ ## Common Patterns
252
+
253
+ ### Session Store
254
+
255
+ ```typescript
256
+ storage.createStore({
257
+ name: 'session',
258
+ data: {
259
+ token: 'abc123',
260
+ userId: 'u-1'
261
+ },
262
+ options: {
263
+ storage: StorageType.SESSION,
264
+ encrypted: true,
265
+ expiresIn: '24h'
266
+ }
267
+ });
268
+ ```
269
+
270
+ ### Cart Store
271
+
272
+ ```typescript
273
+ const cartStore = storage.store('cart');
274
+
275
+ storage.createStore({
276
+ name: 'cart',
277
+ data: [],
278
+ options: {
279
+ storage: StorageType.GLOBAL,
280
+ encrypted: false
281
+ }
282
+ });
283
+
284
+ const cartItems = computed(() => cartStore() ?? []);
285
+
286
+ function addItem(item: any) {
287
+ storage.updateStore({
288
+ name: 'cart',
289
+ data: [...cartItems(), item]
290
+ });
291
+ }
292
+ ```
293
+
294
+ ## Migration from the Observable Version
295
+
296
+ ### Before
297
+
298
+ ```typescript
299
+ private storage = inject(LocalStorageManagerService);
300
+
301
+ preferences$ = this.storage.store$('user-preferences');
302
+
303
+ savePreferences(data: any) {
304
+ this.storage.updateStore({
305
+ name: 'user-preferences',
306
+ data
307
+ });
308
+ }
309
+ ```
310
+
311
+ ### After
312
+
313
+ ```typescript
314
+ private storage = inject(LocalStorageSignalsManagerService);
315
+
316
+ preferencesStore = this.storage.store('user-preferences');
317
+ preferences = computed(() => this.preferencesStore() ?? {});
318
+
319
+ savePreferences(data: any) {
320
+ this.storage.updateStore({
321
+ name: 'user-preferences',
322
+ data
323
+ });
324
+ }
325
+ ```
326
+
327
+ ## Notes
328
+
329
+ - The service restores persisted state during its own initialization. You do not need to call `retrieveState()` from consuming components.
330
+ - Use `updateStore()` when you want to replace a store's current payload with merged application state.
331
+ - Use encryption for tokens, session payloads, and sensitive user data.
332
+
333
+ ## Related Documentation
334
+
335
+ - [Signal Services Index](./SIGNAL_SERVICES_README.md)
336
+ - [Non-Signal Local Storage](./LOCAL_STORAGE_README.md)
337
+ - [Encryption Guide](./ENCRYPTION_README.md)
338
+ - [Store State Signals](./STORE_STATE_SIGNALS_README.md)
@@ -0,0 +1,310 @@
1
+ # LoggerService
2
+
3
+ Centralized logging service for the `http-request-manager` library.
4
+
5
+ ## Overview
6
+
7
+ The `LoggerService` provides controlled logging that automatically adapts based on the Angular build mode:
8
+
9
+ - **Development Mode**: Debug and info logs are enabled
10
+ - **Production Mode**: Only warnings and errors are logged
11
+
12
+ This ensures verbose logging during development while keeping production builds clean and performant.
13
+
14
+ ## Features
15
+
16
+ - ✅ **Automatic Mode Detection**: Uses Angular's `isDevMode()` to determine logging behavior
17
+ - ✅ **No Configuration Required**: Works out of the box - consuming apps don't need to configure anything
18
+ - ✅ **Multiple Log Levels**: `debug`, `info`, `warn`, `error`
19
+ - ✅ **Context-Aware**: Each log includes a context identifier for easy filtering
20
+ - ✅ **Type-Safe**: Full TypeScript support
21
+
22
+ ## Usage
23
+
24
+ ### Inject the Service
25
+
26
+ ```typescript
27
+ import { LoggerService } from 'http-request-manager';
28
+
29
+ @Component({ ... })
30
+ export class MyComponent {
31
+ private logger = inject(LoggerService);
32
+
33
+ doSomething() {
34
+ this.logger.debug('MyComponent', 'Starting operation');
35
+ }
36
+ }
37
+ ```
38
+
39
+ ### Log Levels
40
+
41
+ #### Debug (Development Only)
42
+
43
+ Use for detailed diagnostic information, state changes, connection events:
44
+
45
+ ```typescript
46
+ this.logger.debug('WebSocket', 'Connected to server', {
47
+ server: 'ws://localhost:3000',
48
+ sessionId: 'abc123'
49
+ });
50
+ ```
51
+
52
+ **Output in Dev Mode:**
53
+ ```
54
+ [HTTP-MGR DEBUG] WebSocket: Connected to server { server: 'ws://localhost:3000', sessionId: 'abc123' }
55
+ ```
56
+
57
+ **Output in Prod Mode:**
58
+ ```
59
+ (no output)
60
+ ```
61
+
62
+ #### Info (Development Only)
63
+
64
+ Use for important operational messages and successful operations:
65
+
66
+ ```typescript
67
+ this.logger.info('HTTP', 'Request completed successfully', {
68
+ url: '/api/users',
69
+ status: 200,
70
+ duration: '125ms'
71
+ });
72
+ ```
73
+
74
+ **Output in Dev Mode:**
75
+ ```
76
+ [HTTP-MGR INFO] HTTP: Request completed successfully { url: '/api/users', status: 200, duration: '125ms' }
77
+ ```
78
+
79
+ **Output in Prod Mode:**
80
+ ```
81
+ (no output)
82
+ ```
83
+
84
+ #### Warning (Always Shown)
85
+
86
+ Use for potential issues, deprecated usage, recoverable errors:
87
+
88
+ ```typescript
89
+ this.logger.warn('Cache', 'Cache miss for key', { key: 'user_profile' });
90
+ ```
91
+
92
+ **Output (All Modes):**
93
+ ```
94
+ [HTTP-MGR WARN] Cache: Cache miss for key { key: 'user_profile' }
95
+ ```
96
+
97
+ #### Error (Always Shown)
98
+
99
+ Use for actual errors, failures, exceptions:
100
+
101
+ ```typescript
102
+ this.logger.error('Database', 'Connection failed', error);
103
+ ```
104
+
105
+ **Output (All Modes):**
106
+ ```
107
+ [HTTP-MGR ERROR] Database: Connection failed Error: Connection timeout...
108
+ ```
109
+
110
+ ## Log Output Format
111
+
112
+ All logs follow a consistent format:
113
+
114
+ ```
115
+ [HTTP-MGR <LEVEL>] <Context>: <Message> <Optional Data>
116
+ ```
117
+
118
+ - **LEVEL**: DEBUG, INFO, WARN, or ERROR
119
+ - **Context**: Component, service, or feature name (e.g., 'WebSocket', 'HTTP', 'StateStore')
120
+ - **Message**: Descriptive message
121
+ - **Data**: Optional object with additional details
122
+
123
+ ## When to Use Each Level
124
+
125
+ | Level | When to Use | Production Output |
126
+ |-------|-------------|-------------------|
127
+ | `debug` | Detailed diagnostics, state changes, connection events | ❌ Hidden |
128
+ | `info` | Successful operations, important milestones | ❌ Hidden |
129
+ | `warn` | Recoverable errors, deprecated usage, potential issues | ✅ Shown |
130
+ | `error` | Actual failures, exceptions, critical issues | ✅ Shown |
131
+
132
+ ## Examples
133
+
134
+ ### WebSocket Connection
135
+
136
+ ```typescript
137
+ import { LoggerService } from 'http-request-manager';
138
+
139
+ @Injectable({ providedIn: 'root' })
140
+ export class MyWebSocketService {
141
+ private logger = inject(LoggerService);
142
+
143
+ connect(url: string) {
144
+ this.logger.debug('WebSocket', 'Attempting connection', { url });
145
+
146
+ this.socket = new WebSocket(url);
147
+
148
+ this.socket.onopen = () => {
149
+ this.logger.info('WebSocket', '📡 Connected successfully');
150
+ };
151
+
152
+ this.socket.onerror = (error) => {
153
+ this.logger.error('WebSocket', 'Connection error', error);
154
+ };
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### HTTP Request
160
+
161
+ ```typescript
162
+ import { LoggerService } from 'http-request-manager';
163
+
164
+ @Injectable({ providedIn: 'root' })
165
+ export class HttpService {
166
+ private logger = inject(LoggerService);
167
+
168
+ fetchData(id: string) {
169
+ this.logger.debug('HTTP', 'Fetching data', { id });
170
+
171
+ return this.http.get(`/api/data/${id}`).pipe(
172
+ tap(data => {
173
+ this.logger.info('HTTP', 'Data fetched successfully', { id, count: data.length });
174
+ }),
175
+ catchError(error => {
176
+ this.logger.error('HTTP', 'Fetch failed', { id, error });
177
+ throw error;
178
+ })
179
+ );
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### State Management
185
+
186
+ ```typescript
187
+ import { LoggerService } from 'http-request-manager';
188
+
189
+ @Injectable()
190
+ export class StateStore extends ComponentStore<State> {
191
+ private logger = inject(LoggerService);
192
+
193
+ updateItem(item: Item) {
194
+ this.logger.debug('StateStore', 'Updating item', { id: item.id });
195
+
196
+ this.patchState({ items: [...this.state().items, item] });
197
+
198
+ this.logger.info('StateStore', 'Item updated', {
199
+ itemId: item.id,
200
+ totalItems: this.state().items.length
201
+ });
202
+ }
203
+ }
204
+ ```
205
+
206
+ ## Migration Guide
207
+
208
+ ### Before (Using console.*)
209
+
210
+ ```typescript
211
+ console.log('WebSocket connected');
212
+ console.error('Error:', error);
213
+ console.warn('Warning message');
214
+ ```
215
+
216
+ ### After (Using LoggerService)
217
+
218
+ ```typescript
219
+ this.logger.debug('WebSocket', 'Connected');
220
+ this.logger.error('WebSocket', 'Connection error', error);
221
+ this.logger.warn('WebSocket', 'Connection unstable');
222
+ ```
223
+
224
+ ## Benefits
225
+
226
+ ### 1. Automatic Production Optimization
227
+
228
+ No need to manually strip console statements - debug and info logs are automatically hidden in production builds.
229
+
230
+ ### 2. Consistent Formatting
231
+
232
+ All logs follow the same format, making them easy to filter and search in browser console.
233
+
234
+ ### 3. Context-Aware
235
+
236
+ Each log includes context, making it easy to identify the source:
237
+ ```
238
+ [HTTP-MGR DEBUG] WebSocket: Connected
239
+ [HTTP-MGR DEBUG] HTTP: Request sent
240
+ [HTTP-MGR DEBUG] StateStore: State updated
241
+ ```
242
+
243
+ ### 4. Type Safety
244
+
245
+ Full TypeScript support with proper typing for all parameters.
246
+
247
+ ### 5. Future-Proof
248
+
249
+ Easy to extend with additional features:
250
+ - Remote logging
251
+ - Log aggregation
252
+ - Performance monitoring
253
+ - Custom formatters
254
+
255
+ ## API Reference
256
+
257
+ ### LoggerService
258
+
259
+ #### Methods
260
+
261
+ ##### `debug(context: string, message: string, data?: any): void`
262
+
263
+ Logs debug information (development mode only).
264
+
265
+ ##### `info(context: string, message: string, data?: any): void`
266
+
267
+ Logs informational messages (development mode only).
268
+
269
+ ##### `warn(context: string, message: string, data?: any): void`
270
+
271
+ Logs warnings (always shown).
272
+
273
+ ##### `error(context: string, message: string, data?: any): void`
274
+
275
+ Logs errors (always shown).
276
+
277
+ ##### `isDebugEnabled(): boolean`
278
+
279
+ Returns `true` if debug mode is enabled (development mode).
280
+
281
+ ## Implementation Details
282
+
283
+ The service uses Angular's `isDevMode()` function to automatically detect the build mode:
284
+
285
+ ```typescript
286
+ import { isDevMode } from '@angular/core';
287
+
288
+ @Injectable({ providedIn: 'root' })
289
+ export class LoggerService {
290
+ private debugMode = isDevMode();
291
+
292
+ debug(context: string, message: string, data?: any) {
293
+ if (this.debugMode) {
294
+ console.log(`[HTTP-MGR DEBUG] ${context}: ${message}`, data);
295
+ }
296
+ }
297
+ // ... other methods
298
+ }
299
+ ```
300
+
301
+ This means:
302
+ - No configuration needed from consuming apps
303
+ - Automatic behavior based on build type
304
+ - Zero runtime overhead in production (debug/info checks are false)
305
+
306
+ ## Related Documentation
307
+
308
+ - [`HTTP Manager README`](HTTP_MANAGER_README.md)
309
+ - [`WebSocket Manager README`](WS_MANAGER_README.md)
310
+ - [`Architecture`](ARCHITECTURE.md)