http-request-manager 18.15.32 → 18.15.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/README.md +2 -0
  2. package/TEST_COVERAGE_SUMMARY.md +458 -0
  3. package/ng-package.json +8 -0
  4. package/package.json +5 -13
  5. package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
  6. package/src/docs/ARCHITECTURE.md +633 -0
  7. package/src/docs/BATCH_REQUEST_README.md +467 -0
  8. package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
  9. package/src/docs/DATABASE_README.md +1195 -0
  10. package/src/docs/ENCRYPTION_README.md +403 -0
  11. package/src/docs/HTTP_MANAGER_README.md +628 -0
  12. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
  13. package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
  14. package/src/docs/INTERCEPTOR_README.md +549 -0
  15. package/src/docs/LOCAL_STORAGE_README.md +1056 -0
  16. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
  17. package/src/docs/LOGGER_README.md +310 -0
  18. package/src/docs/MESSAGE_TRACKER_README.md +518 -0
  19. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
  20. package/src/docs/MODELS_README.md +1264 -0
  21. package/src/docs/SIGNAL_SERVICES_README.md +238 -0
  22. package/src/docs/SQL_DIXIE_README.md +574 -0
  23. package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
  24. package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
  25. package/src/docs/UPLOAD_REQUEST_README.md +324 -0
  26. package/src/docs/UTILS_README.md +1604 -0
  27. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
  28. package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
  29. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
  30. package/src/docs/WS_MANAGER_README.md +613 -0
  31. package/src/lib/http-request-manager.module.ts +147 -0
  32. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
  33. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  34. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
  35. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
  36. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  37. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
  38. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  39. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  40. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
  41. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
  42. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
  43. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
  44. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
  45. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
  46. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
  66. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  67. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  68. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  77. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  78. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  79. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  85. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
  86. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
  87. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
  88. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
  89. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  90. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
  92. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
  93. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  94. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
  122. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  123. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  124. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
  144. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
  145. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
  146. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
  149. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
  150. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
  151. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
  152. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
  153. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
  154. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
  156. package/src/lib/index.ts +3 -0
  157. package/src/lib/interceptors/credentials.interceptor.ts +16 -0
  158. package/src/lib/interceptors/index.ts +6 -0
  159. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  160. package/src/lib/interceptors/models/index.ts +2 -0
  161. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  162. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  163. package/src/lib/interceptors/request-header.interceptor.ts +56 -0
  164. package/src/lib/message-display/README.md +509 -0
  165. package/src/lib/message-display/index.ts +4 -0
  166. package/src/lib/message-display/models/action.model.ts +27 -0
  167. package/src/lib/message-display/models/communication-message.model.ts +77 -0
  168. package/src/lib/message-display/models/display-config.model.ts +35 -0
  169. package/src/lib/message-display/models/display-rule.interface.ts +28 -0
  170. package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
  171. package/src/lib/message-display/models/index.ts +6 -0
  172. package/src/lib/message-display/models/slide.model.ts +24 -0
  173. package/src/lib/message-display/rules/default-display-rules.ts +35 -0
  174. package/src/lib/message-display/services/message-display-router.service.ts +63 -0
  175. package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
  176. package/src/lib/models/batch-options.model.ts +33 -0
  177. package/src/lib/models/batch-progress.model.ts +19 -0
  178. package/src/lib/models/batch-request-state.model.ts +40 -0
  179. package/src/lib/models/batch-result.model.ts +30 -0
  180. package/src/lib/models/config-http-options.model.ts +45 -0
  181. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  182. package/src/lib/models/config-options.model.ts +27 -0
  183. package/src/lib/models/config-token.model.ts +9 -0
  184. package/src/lib/models/data-type.enum.ts +5 -0
  185. package/src/lib/models/database-storage.model.ts +24 -0
  186. package/src/lib/models/index.ts +16 -0
  187. package/src/lib/models/retry-options.model.ts +22 -0
  188. package/src/lib/models/upload-validation-error.model.ts +46 -0
  189. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
  190. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
  191. package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
  192. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
  193. package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
  194. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
  195. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
  196. package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
  197. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
  198. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
  199. package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
  200. package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
  201. package/src/lib/services/database-manager-service/index.ts +4 -0
  202. package/src/lib/services/database-manager-service/models/index.ts +2 -0
  203. package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
  204. package/src/lib/services/index.ts +20 -0
  205. package/src/lib/services/local-storage-manager-service/index.ts +4 -0
  206. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  207. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
  208. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
  209. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
  210. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  211. package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
  212. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
  213. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  214. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
  215. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  216. package/src/lib/services/request-manager-services/README.md +282 -0
  217. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
  218. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
  219. package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
  220. package/src/lib/services/request-manager-services/index.ts +8 -0
  221. package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
  222. package/src/lib/services/request-manager-services/request.service.ts +435 -0
  223. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  224. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  225. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
  226. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
  227. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
  228. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
  229. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
  230. package/src/lib/services/request-manager-state-service/index.ts +3 -0
  231. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
  232. package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
  233. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
  234. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
  235. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
  236. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
  237. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
  238. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
  239. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
  240. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
  241. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
  242. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
  243. package/src/lib/services/store-state-manager-service/index.ts +4 -0
  244. package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
  245. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
  246. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
  247. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
  248. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
  249. package/src/lib/services/utils/app.service.spec.ts +25 -0
  250. package/src/lib/services/utils/app.service.ts +21 -0
  251. package/src/lib/services/utils/encryption/README.md +79 -0
  252. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  253. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  254. package/src/lib/services/utils/encryption/index.ts +5 -0
  255. package/src/lib/services/utils/encryption/random.ts +81 -0
  256. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
  257. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  258. package/src/lib/services/utils/headers.service.ts +18 -0
  259. package/src/lib/services/utils/index.ts +9 -0
  260. package/src/lib/services/utils/logger.service.ts +90 -0
  261. package/src/lib/services/utils/models/index.ts +4 -0
  262. package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
  263. package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
  264. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
  265. package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
  266. package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
  267. package/src/lib/services/utils/object-merger.service.ts +78 -0
  268. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  269. package/src/lib/services/utils/path-query.service.ts +69 -0
  270. package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
  271. package/src/lib/services/utils/random-color.utils.ts +83 -0
  272. package/src/lib/services/utils/utils.service.spec.ts +165 -0
  273. package/src/lib/services/utils/utils.service.ts +192 -0
  274. package/src/lib/services/ws-manager-service/index.ts +13 -0
  275. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
  276. package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
  277. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
  278. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
  279. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
  280. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
  281. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
  282. package/src/lib/services/ws-manager-service/models/index.ts +10 -0
  283. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
  284. package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
  285. package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
  286. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
  287. package/src/lib/services/ws-manager-service/services/index.ts +4 -0
  288. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
  289. package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
  290. package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
  291. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
  292. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
  293. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
  294. package/src/public-api.ts +19 -0
  295. package/tsconfig.lib.json +34 -0
  296. package/tsconfig.lib.prod.json +10 -0
  297. package/tsconfig.spec.json +14 -0
  298. package/fesm2022/http-request-manager.mjs +0 -13297
  299. package/fesm2022/http-request-manager.mjs.map +0 -1
  300. package/http-request-manager-18.15.32.tgz +0 -0
  301. package/types/http-request-manager.d.ts +0 -3875
@@ -0,0 +1,600 @@
1
+ <!-- markdownlint-disable MD031 MD060 -->
2
+
3
+ # Store State Manager Signals Service
4
+
5
+ The `StoreStateManagerSignalsService<T>` provides generic, signal-based state management with automatic localStorage persistence for modern Angular applications.
6
+
7
+ ## Overview
8
+
9
+ This service is a **signal-based alternative** to `StoreStateManagerService`, designed for Angular 19+ applications that need type-safe, reactive state management with automatic persistence.
10
+
11
+ ### Key Features
12
+
13
+ - ✅ **Generic Type Support** - Full TypeScript generics for type safety
14
+ - ✅ **Signal-Based State** - All state exposed as Angular Signals
15
+ - ✅ **Auto-Persistence** - Automatically saves to localStorage
16
+ - ✅ **Model Transformation** - Computed signals for transformed data
17
+ - ✅ **No Subscriptions** - No manual subscription management
18
+ - ✅ **Built on LocalStorageSignalsManagerService** - Leverages signal-based storage
19
+
20
+ ## Installation
21
+
22
+ ```typescript
23
+ import { StoreStateManagerSignalsService, StateStorageOptions } from 'http-request-manager';
24
+ ```
25
+
26
+ ## Basic Usage
27
+
28
+ ### Counter Example
29
+
30
+ ```typescript
31
+ import { Component, computed } from '@angular/core';
32
+ import { StoreStateManagerSignalsService, StateStorageOptions } from 'http-request-manager';
33
+
34
+ interface CounterState {
35
+ count: number;
36
+ lastUpdated: string;
37
+ history: number[];
38
+ }
39
+
40
+ const defaultCounterState: () => CounterState = () => ({
41
+ count: 0,
42
+ lastUpdated: new Date().toISOString(),
43
+ history: []
44
+ });
45
+
46
+ @Component({
47
+ selector: 'app-counter',
48
+ template: `
49
+ <div class="counter">
50
+ <h2>Count: {{ count() }}</h2>
51
+ <p>Last Updated: {{ lastUpdated() }}</p>
52
+ <p>History: {{ historyLength() }} items</p>
53
+
54
+ <div class="actions">
55
+ <button (click)="increment()">+</button>
56
+ <button (click)="decrement()">-</button>
57
+ <button (click)="reset()">Reset</button>
58
+ <button (click)="addToHistory()">Add to History</button>
59
+ </div>
60
+ </div>
61
+ `
62
+ })
63
+ export class CounterComponent {
64
+ private stateManager = new StoreStateManagerSignalsService<CounterState>();
65
+
66
+ constructor() {
67
+ const options = StateStorageOptions.adapt({
68
+ store: 'counter-state',
69
+ model: defaultCounterState,
70
+ options: {
71
+ storage: 'global',
72
+ encrypted: false
73
+ }
74
+ });
75
+
76
+ this.stateManager.init(options);
77
+ }
78
+
79
+ // Computed signals from state
80
+ count = computed(() => this.stateManager.data()?.count || 0);
81
+ lastUpdated = computed(() => this.stateManager.data()?.lastUpdated || '');
82
+ historyLength = computed(() => this.stateManager.data()?.history.length || 0);
83
+ history = computed(() => this.stateManager.data()?.history || []);
84
+
85
+ increment() {
86
+ const current = this.stateManager.data();
87
+ if (current) {
88
+ this.stateManager.updateState({
89
+ count: current.count + 1,
90
+ lastUpdated: new Date().toISOString()
91
+ });
92
+ }
93
+ }
94
+
95
+ decrement() {
96
+ const current = this.stateManager.data();
97
+ if (current) {
98
+ this.stateManager.updateState({
99
+ count: current.count - 1,
100
+ lastUpdated: new Date().toISOString()
101
+ });
102
+ }
103
+ }
104
+
105
+ reset() {
106
+ this.stateManager.resetState();
107
+ }
108
+
109
+ addToHistory() {
110
+ const current = this.stateManager.data();
111
+ if (current) {
112
+ this.stateManager.updateState({
113
+ history: [...current.history, current.count],
114
+ lastUpdated: new Date().toISOString()
115
+ });
116
+ }
117
+ }
118
+ }
119
+ ```
120
+
121
+ ## API Reference
122
+
123
+ ### Constructor
124
+
125
+ ```typescript
126
+ constructor()
127
+ ```
128
+
129
+ Creates a new instance of the service. Use `init()` to configure.
130
+
131
+ ### Methods
132
+
133
+ #### `init(options: StateStorageOptions)`
134
+
135
+ Initializes the state manager with configuration options.
136
+
137
+ ```typescript
138
+ interface StateStorageOptions {
139
+ store: string; // Store name
140
+ model: () => T; // Factory function for initial state
141
+ options: SettingOptions; // Storage options
142
+ }
143
+
144
+ // Example
145
+ const options = StateStorageOptions.adapt({
146
+ store: 'user-preferences',
147
+ model: () => ({ theme: 'light', language: 'en' }),
148
+ options: {
149
+ storage: 'global',
150
+ encrypted: false,
151
+ expiresIn: '30d'
152
+ }
153
+ });
154
+
155
+ this.stateManager.init(options);
156
+ ```
157
+
158
+ #### `updateState(state: Partial<T>)`
159
+
160
+ Updates the state with partial data. Merges with existing state.
161
+
162
+ ```typescript
163
+ interface UserState {
164
+ name: string;
165
+ email: string;
166
+ age: number;
167
+ }
168
+
169
+ // Update single field
170
+ this.stateManager.updateState({ name: 'John' });
171
+
172
+ // Update multiple fields
173
+ this.stateManager.updateState({
174
+ name: 'Jane',
175
+ email: 'jane@example.com'
176
+ });
177
+ ```
178
+
179
+ #### `updateData(data: Partial<T>)`
180
+
181
+ Updates state with keyed data. Useful for partial updates.
182
+
183
+ ```typescript
184
+ // Update specific property
185
+ this.stateManager.updateData({ name: 'John' });
186
+ ```
187
+
188
+ #### `restoreState()`
189
+
190
+ Restores state from localStorage.
191
+
192
+ ```typescript
193
+ this.stateManager.restoreState();
194
+ ```
195
+
196
+ #### `resetState()`
197
+
198
+ Resets state to initial model value.
199
+
200
+ ```typescript
201
+ this.stateManager.resetState();
202
+ ```
203
+
204
+ ### Signals
205
+
206
+ #### `data: ReadonlySignal<T | null>`
207
+
208
+ Readonly signal containing current state.
209
+
210
+ ```typescript
211
+ state = this.stateManager.data;
212
+ // Usage: state()
213
+ ```
214
+
215
+ #### `transformedData: ComputedSignal<T>`
216
+
217
+ Computed signal with model transformation applied.
218
+
219
+ ```typescript
220
+ transformed = this.stateManager.transformedData;
221
+ // Usage: transformed()
222
+ ```
223
+
224
+ ## StateStorageOptions
225
+
226
+ ### Interface
227
+
228
+ ```typescript
229
+ interface StateStorageOptionsInterface {
230
+ store?: string;
231
+ options?: SettingOptions;
232
+ model?: (state: any) => any;
233
+ }
234
+ ```
235
+
236
+ ### SettingOptions
237
+
238
+ ```typescript
239
+ interface SettingOptions {
240
+ storage?: StorageType; // 'global' or 'session'
241
+ encrypted?: boolean; // Enable encryption
242
+ expiresIn?: string; // Expiration: '1h', '1d', '7d', '30d'
243
+ expires?: number; // Expiration timestamp (computed)
244
+ }
245
+ ```
246
+
247
+ ### StorageType
248
+
249
+ ```typescript
250
+ enum StorageType {
251
+ GLOBAL = 'global', // localStorage
252
+ SESSION = 'session' // sessionStorage
253
+ }
254
+ ```
255
+
256
+ ## Advanced Examples
257
+
258
+ ### User Profile Management
259
+
260
+ ```typescript
261
+ import { Injectable, computed } from '@angular/core';
262
+ import { StoreStateManagerSignalsService, StateStorageOptions } from 'http-request-manager';
263
+
264
+ interface UserProfile {
265
+ id: string;
266
+ name: string;
267
+ email: string;
268
+ avatar?: string;
269
+ preferences: {
270
+ theme: 'light' | 'dark';
271
+ language: string;
272
+ notifications: boolean;
273
+ };
274
+ lastLogin: string;
275
+ }
276
+
277
+ const defaultProfile: () => UserProfile = () => ({
278
+ id: '',
279
+ name: '',
280
+ email: '',
281
+ preferences: {
282
+ theme: 'light',
283
+ language: 'en',
284
+ notifications: true
285
+ },
286
+ lastLogin: new Date().toISOString()
287
+ });
288
+
289
+ @Injectable({ providedIn: 'root' })
290
+ export class UserProfileService {
291
+ private stateManager = new StoreStateManagerSignalsService<UserProfile>();
292
+
293
+ constructor() {
294
+ this.init();
295
+ }
296
+
297
+ private init() {
298
+ const options = StateStorageOptions.adapt({
299
+ store: 'user-profile',
300
+ model: defaultProfile,
301
+ options: {
302
+ storage: 'global',
303
+ encrypted: false,
304
+ expiresIn: '90d'
305
+ }
306
+ });
307
+
308
+ this.stateManager.init(options);
309
+ }
310
+
311
+ // Computed selectors
312
+ profile = computed(() => this.stateManager.data());
313
+ isLoggedIn = computed(() => !!this.stateManager.data()?.id);
314
+ userName = computed(() => this.stateManager.data()?.name || 'Guest');
315
+ theme = computed(() => this.stateManager.data()?.preferences.theme || 'light');
316
+
317
+ updateProfile(profile: Partial<UserProfile>) {
318
+ this.stateManager.updateState(profile);
319
+ }
320
+
321
+ updatePreferences(prefs: Partial<UserProfile['preferences']>) {
322
+ const current = this.stateManager.data();
323
+ if (current) {
324
+ this.stateManager.updateState({
325
+ ...current,
326
+ preferences: { ...current.preferences, ...prefs }
327
+ });
328
+ }
329
+ }
330
+
331
+ login(user: { id: string; name: string; email: string }) {
332
+ this.stateManager.updateState({
333
+ ...user,
334
+ lastLogin: new Date().toISOString()
335
+ });
336
+ }
337
+
338
+ logout() {
339
+ this.stateManager.resetState();
340
+ }
341
+ }
342
+ ```
343
+
344
+ ### Shopping Cart with Persistence
345
+
346
+ ```typescript
347
+ import { Component, computed } from '@angular/core';
348
+ import { StoreStateManagerSignalsService, StateStorageOptions } from 'http-request-manager';
349
+
350
+ interface CartItem {
351
+ id: number;
352
+ name: string;
353
+ price: number;
354
+ quantity: number;
355
+ }
356
+
357
+ interface CartState {
358
+ items: CartItem[];
359
+ lastUpdated: string;
360
+ }
361
+
362
+ const defaultCart: () => CartState = () => ({
363
+ items: [],
364
+ lastUpdated: new Date().toISOString()
365
+ });
366
+
367
+ @Component({
368
+ selector: 'app-shopping-cart',
369
+ template: `
370
+ <div class="cart">
371
+ <h2>Shopping Cart</h2>
372
+ <p>Items: {{ itemCount() }}</p>
373
+ <p>Total: ${{ total().toFixed(2) }}</p>
374
+
375
+ <div class="cart-items">
376
+ @for (item of items(); track item.id) {
377
+ <div class="cart-item">
378
+ <span>{{ item.name }}</span>
379
+ <span>${{ item.price }} x {{ item.quantity }}</span>
380
+ <span>Subtotal: ${{ item.price * item.quantity }}</span>
381
+ <button (click)="removeItem(item.id)">Remove</button>
382
+ </div>
383
+ }
384
+ </div>
385
+
386
+ <button (click)="clearCart()">Clear Cart</button>
387
+ </div>
388
+ `
389
+ })
390
+ export class ShoppingCartComponent {
391
+ private stateManager = new StoreStateManagerSignalsService<CartState>();
392
+
393
+ constructor() {
394
+ const options = StateStorageOptions.adapt({
395
+ store: 'shopping-cart',
396
+ model: defaultCart,
397
+ options: {
398
+ storage: 'global',
399
+ encrypted: false
400
+ }
401
+ });
402
+
403
+ this.stateManager.init(options);
404
+ }
405
+
406
+ // Computed signals
407
+ items = computed(() => this.stateManager.data()?.items || []);
408
+ itemCount = computed(() => this.items().length);
409
+ total = computed(() =>
410
+ this.items().reduce((sum, item) => sum + (item.price * item.quantity), 0)
411
+ );
412
+
413
+ addItem(item: CartItem) {
414
+ const current = this.stateManager.data();
415
+ if (!current) return;
416
+
417
+ const existing = current.items.find(i => i.id === item.id);
418
+
419
+ if (existing) {
420
+ this.stateManager.updateState({
421
+ items: current.items.map(i =>
422
+ i.id === item.id
423
+ ? { ...i, quantity: i.quantity + 1 }
424
+ : i
425
+ ),
426
+ lastUpdated: new Date().toISOString()
427
+ });
428
+ } else {
429
+ this.stateManager.updateState({
430
+ items: [...current.items, { ...item, quantity: 1 }],
431
+ lastUpdated: new Date().toISOString()
432
+ });
433
+ }
434
+ }
435
+
436
+ removeItem(id: number) {
437
+ const current = this.stateManager.data();
438
+ if (!current) return;
439
+
440
+ this.stateManager.updateState({
441
+ items: current.items.filter(i => i.id !== id),
442
+ lastUpdated: new Date().toISOString()
443
+ });
444
+ }
445
+
446
+ clearCart() {
447
+ this.stateManager.resetState();
448
+ }
449
+ }
450
+ ```
451
+
452
+ ## Migration from ComponentStore Version
453
+
454
+ ### Before (ComponentStore)
455
+
456
+ ```typescript
457
+ import { ComponentStore } from '@ngrx/component-store';
458
+
459
+ interface State {
460
+ count: number;
461
+ }
462
+
463
+ class CounterStore extends ComponentStore<State> {
464
+ constructor() {
465
+ super({ count: 0 });
466
+ }
467
+
468
+ readonly count$ = this.select(state => state.count);
469
+
470
+ readonly increment = this.updater((state) => ({
471
+ count: state.count + 1
472
+ }));
473
+ }
474
+ ```
475
+
476
+ ### After (Signals)
477
+
478
+ ```typescript
479
+ import { StoreStateManagerSignalsService } from 'http-request-manager';
480
+
481
+ interface CounterState {
482
+ count: number;
483
+ }
484
+
485
+ class CounterService {
486
+ private stateManager = new StoreStateManagerSignalsService<CounterState>();
487
+
488
+ constructor() {
489
+ this.stateManager.init({
490
+ store: 'counter',
491
+ model: () => ({ count: 0 })
492
+ });
493
+ }
494
+
495
+ readonly count = computed(() => this.stateManager.data()?.count || 0);
496
+
497
+ increment() {
498
+ const current = this.stateManager.data();
499
+ this.stateManager.updateState({
500
+ count: (current?.count || 0) + 1
501
+ });
502
+ }
503
+ }
504
+ ```
505
+
506
+ ## Comparison with Non-Signal Version
507
+
508
+ | Feature | ComponentStore Version | Signal Version |
509
+ |---------|----------------------|----------------|
510
+ | **State Management** | NgRx ComponentStore | Angular Signals |
511
+ | **Initialization** | `super(initialState)` | `init(options)` |
512
+ | **Selectors** | `select()` with observables | `computed()` signals |
513
+ | **Updaters** | `updater()` methods | `updateState()` |
514
+ | **Persistence** | Manual subscription | Automatic with effect |
515
+ | **Type Safety** | Generic `<T>` | Generic `<T>` |
516
+ | **Subscriptions** | Manual management | Automatic |
517
+ | **Angular Version** | 14-18 | 19+ |
518
+
519
+ ## Best Practices
520
+
521
+ 1. **Use Computed Signals for Derived State**
522
+ ```typescript
523
+ // ✅ Good
524
+ count = computed(() => this.stateManager.data()?.count || 0);
525
+ total = computed(() => this.items().reduce(...));
526
+
527
+ // ❌ Avoid
528
+ getCount() { return this.stateManager.data()?.count; }
529
+ ```
530
+
531
+ 2. **Initialize Once**
532
+ ```typescript
533
+ // ✅ Good - Initialize in constructor or ngOnInit
534
+ constructor() {
535
+ this.stateManager.init(options);
536
+ }
537
+
538
+ // ❌ Avoid - Multiple initializations
539
+ init() {
540
+ this.stateManager.init(options); // Called multiple times
541
+ }
542
+ ```
543
+
544
+ 3. **Use Partial Updates**
545
+ ```typescript
546
+ // ✅ Good - Update only what changed
547
+ this.stateManager.updateState({ name: 'John' });
548
+
549
+ // ❌ Avoid - Requiring full state
550
+ this.stateManager.updateState(fullStateObject);
551
+ ```
552
+
553
+ 4. **Leverage Auto-Persistence**
554
+ ```typescript
555
+ // ✅ Good - Just update state
556
+ this.stateManager.updateState({ count: 42 });
557
+
558
+ // ❌ Avoid - Manual persistence
559
+ this.stateManager.updateState({ count: 42 });
560
+ this.save(); // Not needed!
561
+ ```
562
+
563
+ ## Troubleshooting
564
+
565
+ ### State Not Persisting
566
+
567
+ **Problem**: State changes not saved to localStorage
568
+
569
+ **Solution**: Ensure `init()` is called and stateRetrieved flag is set
570
+ ```typescript
571
+ this.stateManager.init(options);
572
+ ```
573
+
574
+ ### Type Errors
575
+
576
+ **Problem**: TypeScript errors with generic type
577
+
578
+ **Solution**: Ensure model function returns correct type
579
+ ```typescript
580
+ const options = StateStorageOptions.adapt({
581
+ store: 'my-store',
582
+ model: () => ({ count: 0 }) as MyState, // Cast to your type
583
+ options: { ... }
584
+ });
585
+ ```
586
+
587
+ ### Null State
588
+
589
+ **Problem**: `data()` returns null
590
+
591
+ **Solution**: Check if `init()` was called and use default values
592
+ ```typescript
593
+ count = computed(() => this.stateManager.data()?.count || 0);
594
+ ```
595
+
596
+ ## Related Documentation
597
+
598
+ - [Signal Services Index](./SIGNAL_SERVICES_README.md)
599
+ - [Non-Signal Store State](./COMPLETE_API_REFERENCE.md#storestatemanagerservice)
600
+ - [LocalStorage Signals](./LOCAL_STORAGE_SIGNALS_README.md)