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,28 @@
1
+ import { DisplayConfig } from './display-config.model';
2
+ import { CommunicationMessage } from './communication-message.model';
3
+
4
+ export interface DisplayRuleInterface {
5
+ id: string;
6
+ name?: string;
7
+ match: (message: CommunicationMessage) => boolean;
8
+ display: DisplayConfig;
9
+ }
10
+
11
+ export class DisplayRule implements DisplayRuleInterface {
12
+ constructor(
13
+ public id: string = '',
14
+ public name?: string,
15
+ public match: (message: CommunicationMessage) => boolean = () => false,
16
+ public display: DisplayConfig = DisplayConfig.adapt(),
17
+ ) {}
18
+
19
+ static adapt(item?: any): DisplayRule {
20
+ return new DisplayRule(
21
+ item?.id,
22
+ item?.name,
23
+ item?.match,
24
+ item?.display ? DisplayConfig.adapt(item.display) : DisplayConfig.adapt(),
25
+ );
26
+ }
27
+ }
28
+
@@ -0,0 +1,8 @@
1
+ import { CommunicationMessage } from '../models/communication-message.model';
2
+ import { DisplayConfig } from '../models/display-config.model';
3
+
4
+ export interface IDisplayStrategy {
5
+ name: string;
6
+ canHandle(message: CommunicationMessage): boolean;
7
+ display(message: CommunicationMessage, config: DisplayConfig): void;
8
+ }
@@ -0,0 +1,6 @@
1
+ export * from './display-config.model';
2
+ export * from './display-rule.interface';
3
+ export * from './display-strategy.interface';
4
+ export * from './communication-message.model';
5
+ export * from './slide.model';
6
+ export * from './action.model';
@@ -0,0 +1,24 @@
1
+ export interface SlideInterface {
2
+ title: string;
3
+ message: string;
4
+ image?: string;
5
+ icon?: string;
6
+ }
7
+
8
+ export class Slide implements SlideInterface {
9
+ constructor(
10
+ public title: string = '',
11
+ public message: string = '',
12
+ public image?: string,
13
+ public icon?: string
14
+ ) {}
15
+
16
+ static adapt(item?: any): Slide {
17
+ return new Slide(
18
+ item?.title,
19
+ item?.message,
20
+ item?.image,
21
+ item?.icon
22
+ );
23
+ }
24
+ }
@@ -0,0 +1,35 @@
1
+ import { DisplayRule } from '../models/display-rule.interface';
2
+
3
+ export const defaultDisplayRules: DisplayRule[] = [
4
+ {
5
+ id: 'carousel',
6
+ name: 'Carousel',
7
+ match: (message) => message.content?.displayConfig?.type === 'carousel',
8
+ display: {
9
+ type: 'carousel',
10
+ supportsMarkdown: true,
11
+ stackable: false
12
+ }
13
+ },
14
+ {
15
+ id: 'dialog',
16
+ name: 'Dialog',
17
+ match: (message) => message.content?.displayConfig?.type === 'dialog',
18
+ display: {
19
+ type: 'dialog',
20
+ supportsMarkdown: true,
21
+ stackable: true
22
+ }
23
+ },
24
+ {
25
+ id: 'default',
26
+ name: 'Snackbar',
27
+ match: () => true,
28
+ display: {
29
+ type: 'snackbar',
30
+ supportsMarkdown: false,
31
+ stackable: true,
32
+ autoDismiss: 3000
33
+ }
34
+ }
35
+ ];
@@ -0,0 +1,63 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { IDisplayStrategy } from '../models/display-strategy.interface';
3
+ import { DisplayRule } from '../models/display-rule.interface';
4
+ import { CommunicationMessage } from '../models/communication-message.model';
5
+ import { defaultDisplayRules } from '../rules/default-display-rules';
6
+ import { SnackbarStrategy } from '../strategies/snackbar.strategy';
7
+
8
+ @Injectable({ providedIn: 'root' })
9
+ export class MessageDisplayRouterService {
10
+
11
+ private snackbarStrategy = inject(SnackbarStrategy);
12
+
13
+ // All available strategies
14
+ private strategies: IDisplayStrategy[] = [
15
+ this.snackbarStrategy
16
+ // DialogStrategy will be added in Phase 2
17
+ // CarouselStrategy will be added in Phase 3
18
+ ];
19
+
20
+ // Rules are evaluated in order - first match wins
21
+ private rules: DisplayRule[] = defaultDisplayRules;
22
+
23
+ display(message: CommunicationMessage): void {
24
+ console.log('📨 MessageDisplayRouterService: Processing message:', message);
25
+
26
+ // Find FIRST matching rule (order matters!)
27
+ const matchingRule = this.rules.find(rule => rule.match(message));
28
+
29
+ // Get the rule (will be 'default' if nothing else matches)
30
+ const rule = matchingRule || this.rules[this.rules.length - 1];
31
+
32
+ console.log(`🎯 MessageDisplayRouterService: Matched rule '${rule.id}' (${rule.name})`);
33
+ console.log(` → Display type: ${rule.display.type}`);
34
+
35
+ // Get strategy for the display type
36
+ const strategy = this.strategies.find(s => s.name === rule.display.type);
37
+
38
+ if (!strategy) {
39
+ console.warn(`⚠️ MessageDisplayRouterService: No strategy found for type '${rule.display.type}', falling back to snackbar`);
40
+ // Fallback to snackbar if strategy not found
41
+ this.snackbarStrategy.display(message, rule.display);
42
+ return;
43
+ }
44
+
45
+ // Execute display
46
+ console.log(`🚀 MessageDisplayRouterService: Executing ${strategy.name} strategy`);
47
+ strategy.display(message, rule.display);
48
+ }
49
+
50
+ registerStrategies(strategies: IDisplayStrategy[]): void {
51
+ strategies.forEach(strategy => {
52
+ if (!this.strategies.find(s => s.name === strategy.name)) {
53
+ this.strategies.push(strategy);
54
+ console.log(`✅ Registered strategy: ${strategy.name}`);
55
+ }
56
+ });
57
+ }
58
+
59
+ setRules(rules: DisplayRule[]): void {
60
+ this.rules = rules;
61
+ console.log(`📋 MessageDisplayRouterService: Rules updated (${rules.length} rules)`);
62
+ }
63
+ }
@@ -0,0 +1,46 @@
1
+ import { Injectable, inject } from '@angular/core';
2
+ import { ToastMessageDisplayService, ToastColors } from 'toast-message-display';
3
+ import { IDisplayStrategy } from '../models/display-strategy.interface';
4
+ import { CommunicationMessage } from '../models/communication-message.model';
5
+ import { DisplayConfig } from '../models/display-config.model';
6
+
7
+ @Injectable()
8
+ export class SnackbarStrategy implements IDisplayStrategy {
9
+ name = 'snackbar';
10
+
11
+ private toastService = inject(ToastMessageDisplayService);
12
+
13
+ canHandle(message: CommunicationMessage): boolean {
14
+ return true; // Always can handle (fallback strategy)
15
+ }
16
+
17
+ display(message: CommunicationMessage, config: DisplayConfig): void {
18
+ const messageText = this.extractMessage(message.content);
19
+
20
+ this.toastService.toastMessage(
21
+ {
22
+ message: messageText,
23
+ color: ToastColors.INFO,
24
+ icon: 'info',
25
+ action: 'DONE'
26
+ },
27
+ config.autoDismiss ?? 3000
28
+ );
29
+ }
30
+
31
+ private extractMessage(content: any): string {
32
+ if (!content) return '';
33
+
34
+ // Try nested content structure (backward compatibility)
35
+ if (content.content?.message) {
36
+ return content.content.message;
37
+ }
38
+
39
+ // Try direct message
40
+ if (content.message) {
41
+ return content.message;
42
+ }
43
+
44
+ return '';
45
+ }
46
+ }
@@ -0,0 +1,33 @@
1
+ export interface BatchOptionsInterface {
2
+ mode?: 'sequential' | 'parallel';
3
+ stopOnError?: boolean;
4
+ concurrency?: number;
5
+ ignoreErrors?: boolean;
6
+ logErrors?: boolean;
7
+ displaySuccess?: boolean;
8
+ displayError?: boolean;
9
+ }
10
+
11
+ export class BatchOptions implements BatchOptionsInterface {
12
+ constructor(
13
+ public mode: 'sequential' | 'parallel' = 'sequential',
14
+ public stopOnError: boolean = false,
15
+ public concurrency: number = 3,
16
+ public ignoreErrors: boolean = false,
17
+ public logErrors: boolean = true,
18
+ public displaySuccess?: boolean,
19
+ public displayError?: boolean,
20
+ ) {}
21
+
22
+ static adapt(item?: any): BatchOptions {
23
+ return new BatchOptions(
24
+ item?.mode ?? 'sequential',
25
+ item?.stopOnError ?? false,
26
+ item?.concurrency ?? 3,
27
+ item?.ignoreErrors ?? false,
28
+ item?.logErrors !== false,
29
+ item?.displaySuccess ?? false,
30
+ item?.displayError ?? false,
31
+ );
32
+ }
33
+ }
@@ -0,0 +1,19 @@
1
+ import { BatchRequestState } from './batch-request-state.model';
2
+
3
+ export interface BatchProgress {
4
+ total: number;
5
+ pending: number;
6
+ completed: number;
7
+ failed: number;
8
+ percent: number;
9
+ }
10
+
11
+ export function calculateBatchProgress<T>(states: BatchRequestState<T>[]): BatchProgress {
12
+ const total = states.length;
13
+ const pending = states.filter(s => s.isPending).length;
14
+ const completed = states.filter(s => !s.isPending && s.data !== undefined).length;
15
+ const failed = states.filter(s => !s.isPending && s.error !== undefined).length;
16
+ const percent = total > 0 ? Math.round(((completed + failed) / total) * 100) : 0;
17
+
18
+ return { total, pending, completed, failed, percent };
19
+ }
@@ -0,0 +1,40 @@
1
+ export type BatchRequestState<T> =
2
+ | BatchPendingState
3
+ | BatchSuccessState<T>
4
+ | BatchErrorState;
5
+
6
+ export interface BatchPendingState {
7
+ index: number;
8
+ request: any;
9
+ isPending: true;
10
+ data?: undefined;
11
+ error?: undefined;
12
+ }
13
+
14
+ export interface BatchSuccessState<T> {
15
+ index: number;
16
+ request: any;
17
+ isPending: false;
18
+ data: T;
19
+ error?: undefined;
20
+ }
21
+
22
+ export interface BatchErrorState {
23
+ index: number;
24
+ request: any;
25
+ isPending: false;
26
+ data?: undefined;
27
+ error: any;
28
+ }
29
+
30
+ export function isPendingState<T>(state: BatchRequestState<T>): state is BatchPendingState {
31
+ return state.isPending === true;
32
+ }
33
+
34
+ export function isSuccessState<T>(state: BatchRequestState<T>): state is BatchSuccessState<T> {
35
+ return state.isPending === false && state.data !== undefined;
36
+ }
37
+
38
+ export function isErrorState<T>(state: BatchRequestState<T>): state is BatchErrorState {
39
+ return state.isPending === false && state.error !== undefined;
40
+ }
@@ -0,0 +1,30 @@
1
+ export interface BatchResultInterface<T = any> {
2
+ request: any;
3
+ success: boolean;
4
+ data?: T;
5
+ error?: any;
6
+ index: number;
7
+ timestamp: number;
8
+ }
9
+
10
+ export class BatchResult<T = any> implements BatchResultInterface<T> {
11
+ constructor(
12
+ public request: any,
13
+ public success: boolean,
14
+ public data?: T,
15
+ public error?: any,
16
+ public index: number = 0,
17
+ public timestamp: number = Date.now(),
18
+ ) {}
19
+
20
+ static adapt<T>(item?: any): BatchResult<T> {
21
+ return new BatchResult<T>(
22
+ item?.request,
23
+ item?.success ?? false,
24
+ item?.data,
25
+ item?.error,
26
+ item?.index ?? 0,
27
+ item?.timestamp ?? Date.now(),
28
+ );
29
+ }
30
+ }
@@ -0,0 +1,45 @@
1
+ import { RetryOptions } from "./retry-options.model"
2
+
3
+ export interface ConfigHTTPOptionsInterface {
4
+ server: string
5
+ path?: any[]
6
+ headers?: any
7
+ polling?: number // seconds (undefined | 0 = none)
8
+ retry?: RetryOptions
9
+ stream?: boolean
10
+ displayError?: boolean
11
+ displaySuccess?: boolean
12
+ }
13
+
14
+ export class ConfigHTTPOptions implements ConfigHTTPOptionsInterface {
15
+
16
+ constructor(
17
+ public server = '',
18
+ public path?: any[],
19
+ public headers?: any,
20
+ public polling?: number,
21
+ public retry?: RetryOptions,
22
+ public stream?: boolean,
23
+ public displayError?: boolean,
24
+ public displaySuccess?: boolean,
25
+ ) {}
26
+
27
+ static adapt(item?: any): ConfigHTTPOptions {
28
+
29
+ const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
30
+ const retryOptions = item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt();
31
+
32
+ return new ConfigHTTPOptions(
33
+ server,
34
+ (item?.path) ? item.path : [],
35
+ (item?.headers) ? item.headers : {},
36
+ item?.polling ? Math.floor(item.polling) : 0,
37
+ retryOptions,
38
+ (item?.stream) ? item.stream : false,
39
+ (item?.displayError) ? item.displayError : false,
40
+ (item?.displaySuccess) ? item.displaySuccess : false,
41
+ )
42
+
43
+ }
44
+
45
+ }
@@ -0,0 +1,27 @@
1
+ import { SettingOptions } from "../services"
2
+
3
+ export interface LocalStorageOptionsInterface {
4
+ storageName?: string
5
+ storageSettingsName?: string
6
+ options?: SettingOptions,
7
+ }
8
+
9
+ export class LocalStorageOptions implements LocalStorageOptionsInterface {
10
+
11
+ constructor(
12
+ public storageName?: string,
13
+ public storageSettingsName?: string,
14
+ public options?: SettingOptions,
15
+ ) {}
16
+
17
+ static adapt(item?: any): LocalStorageOptions {
18
+
19
+ return new LocalStorageOptions(
20
+ (item?.storageName) ? item.storageName : 'storage',
21
+ (item?.storageSettingsName) ? item.storageSettingsName : 'global-storage',
22
+ (item?.options) ? SettingOptions.adapt(item.options) : SettingOptions.adapt(),
23
+ )
24
+
25
+ }
26
+
27
+ }
@@ -0,0 +1,27 @@
1
+ import { ConfigHTTPOptions } from "./config-http-options.model";
2
+ import { LocalStorageOptions } from "./config-local-storage-options.model";
3
+
4
+ export interface ConfigOptionsInterface {
5
+ httpRequestOptions?: ConfigHTTPOptions
6
+ LocalStorageOptions?: LocalStorageOptions
7
+ // DatabaseOptions: any
8
+ }
9
+
10
+ export class ConfigOptions implements ConfigOptionsInterface {
11
+
12
+ constructor(
13
+ public httpRequestOptions?: ConfigHTTPOptions,
14
+ public LocalStorageOptions?: LocalStorageOptions,
15
+ // public DatabaseOptions?: any,
16
+ ) {}
17
+
18
+ static adapt(item?: any): ConfigOptions {
19
+ return new ConfigOptions(
20
+ (item?.httpRequestOptions) ? ConfigHTTPOptions.adapt(item.httpRequestOptions) : undefined,
21
+ (item?.LocalStorageOptions) ? LocalStorageOptions.adapt(item.LocalStorageOptions) : undefined,
22
+ // item?.DatabaseOptions,
23
+ )
24
+
25
+ }
26
+
27
+ }
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ import { ConfigOptions } from "./config-options.model";
3
+
4
+ /**
5
+ * An injection token that provides the configuration settings for the application.
6
+ * This token can be used to inject the `ConfigSettings` instance into components or services
7
+ * that require access to the application configuration.
8
+ */
9
+ export const CONFIG_SETTINGS_TOKEN = new InjectionToken<ConfigOptions>('http.config');
@@ -0,0 +1,5 @@
1
+ export enum DataType {
2
+ ANY = 0,
3
+ ARRAY,
4
+ OBJECT
5
+ }
@@ -0,0 +1,24 @@
1
+ export interface DatabaseStorageInterface {
2
+ table: string
3
+ expiresIn: string
4
+ }
5
+
6
+ export class DatabaseStorage implements DatabaseStorageInterface {
7
+
8
+ constructor(
9
+ public table = '',
10
+ public expiresIn: '',
11
+ ) {}
12
+
13
+ static adapt(item?: any): any {
14
+
15
+ if(!item?.table) return
16
+
17
+ return new DatabaseStorage(
18
+ item?.table,
19
+ item?.expiresIn,
20
+ )
21
+
22
+ }
23
+
24
+ }
@@ -0,0 +1,16 @@
1
+ export * from './database-storage.model'
2
+ export * from './retry-options.model'
3
+ export * from './batch-options.model'
4
+ export * from './batch-result.model'
5
+ export * from './batch-request-state.model'
6
+ export * from './batch-progress.model'
7
+
8
+ export * from './data-type.enum'
9
+
10
+ export * from './config-token.model'
11
+ export * from './config-http-options.model'
12
+ export * from './config-local-storage-options.model'
13
+ export * from './config-options.model'
14
+
15
+ export * from './upload-validation-error.model'
16
+
@@ -0,0 +1,22 @@
1
+ export interface RetryOptionsInterface {
2
+ times?: number // total request to be made including initial request
3
+ delay?: number // seconds (<= 3 default 3 seconds)
4
+ }
5
+
6
+ export class RetryOptions implements RetryOptionsInterface {
7
+
8
+ constructor(
9
+ public times = 0,
10
+ public delay = 3,
11
+ ) {}
12
+
13
+ static adapt(item?: any): RetryOptions {
14
+
15
+ return new RetryOptions(
16
+ item?.times,
17
+ item?.delay
18
+ )
19
+
20
+ }
21
+
22
+ }
@@ -0,0 +1,46 @@
1
+ export interface InvalidFileInfoInterface {
2
+ fileName: string;
3
+ fileSize: number;
4
+ fileType: string;
5
+ errors: string[];
6
+ }
7
+
8
+ export class InvalidFileInfoModel implements InvalidFileInfoInterface {
9
+ constructor(
10
+ public fileName: string = '',
11
+ public fileSize: number = 0,
12
+ public fileType: string = '',
13
+ public errors: string[] = []
14
+ ) {}
15
+
16
+ static adapt(item?: any): InvalidFileInfoModel {
17
+ return new InvalidFileInfoModel(
18
+ item?.fileName,
19
+ item?.fileSize,
20
+ item?.fileType,
21
+ Array.isArray(item?.errors) ? item.errors : []
22
+ );
23
+ }
24
+ }
25
+
26
+ export interface UploadValidationErrorInterface {
27
+ invalidFiles: InvalidFileInfoModel[];
28
+ validFilesCount: number;
29
+ totalFilesCount: number;
30
+ }
31
+
32
+ export class UploadValidationErrorModel implements UploadValidationErrorInterface {
33
+ constructor(
34
+ public invalidFiles: InvalidFileInfoModel[] = [],
35
+ public validFilesCount: number = 0,
36
+ public totalFilesCount: number = 0
37
+ ) {}
38
+
39
+ static adapt(item?: any): UploadValidationErrorModel {
40
+ return new UploadValidationErrorModel(
41
+ Array.isArray(item?.invalidFiles) ? item.invalidFiles.map((f: any) => InvalidFileInfoModel.adapt(f)) : [],
42
+ item?.validFilesCount,
43
+ item?.totalFilesCount
44
+ );
45
+ }
46
+ }