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,467 @@
1
+ # Batch Request Functionality
2
+
3
+ Execute multiple HTTP requests with configurable execution strategies (sequential/parallel), error handling, and automatic order preservation.
4
+
5
+ ## Overview
6
+
7
+ The batch request functionality allows you to process multiple HTTP requests efficiently with full control over:
8
+
9
+ - **Execution order**: Sequential or parallel
10
+ - **Error handling**: Stop on error or continue
11
+ - **Concurrency**: Control parallel request limits
12
+ - **Result ordering**: Results always match the order of requests provided
13
+
14
+ ## Features
15
+
16
+ ✅ **Sequential Execution** - Process requests one-by-one in order
17
+ ✅ **Parallel Execution** - Process multiple requests concurrently
18
+ ✅ **Configurable Concurrency** - Limit parallel requests (default: 3)
19
+ ✅ **Error Handling** - Stop on error or continue with all requests
20
+ ✅ **Order Preservation** - Results always in request order
21
+ ✅ **Optional Configuration** - All options optional with sensible defaults
22
+ ✅ **Type Safe** - Full TypeScript generic support
23
+
24
+ ## Usage
25
+
26
+ ### Basic Sequential (Default)
27
+
28
+ ```typescript
29
+ import { HTTPManagerService, ApiRequest, BatchOptions } from 'http-request-manager';
30
+
31
+ const requests = [
32
+ ApiRequest.adapt({ path: ['users', 1] }),
33
+ ApiRequest.adapt({ path: ['users', 2] }),
34
+ ApiRequest.adapt({ path: ['users', 3] })
35
+ ];
36
+
37
+ httpManager.getBatchRequests(requests).subscribe(results => {
38
+ // results is User[] in the same order as requests
39
+ console.log(results[0]); // User 1
40
+ console.log(results[1]); // User 2
41
+ console.log(results[2]); // User 3
42
+ });
43
+ ```
44
+
45
+ ### Sequential with Stop on Error
46
+
47
+ ```typescript
48
+ httpManager.getBatchRequests(requests, {
49
+ mode: 'sequential',
50
+ stopOnError: true
51
+ }).subscribe({
52
+ next: results => {
53
+ console.log('All succeeded:', results);
54
+ },
55
+ error: error => {
56
+ console.error('Stopped at first error:', error);
57
+ }
58
+ });
59
+ ```
60
+
61
+ ### Parallel Execution
62
+
63
+ ```typescript
64
+ httpManager.getBatchRequests(requests, {
65
+ mode: 'parallel',
66
+ concurrency: 5 // Process up to 5 requests simultaneously
67
+ }).subscribe(results => {
68
+ console.log('All completed:', results);
69
+ });
70
+ ```
71
+
72
+ ### Ignore Errors and Complete All
73
+
74
+ ```typescript
75
+ httpManager.getBatchRequests(requests, {
76
+ ignoreErrors: true,
77
+ logErrors: false // Suppress console.error output
78
+ }).subscribe(results => {
79
+ // Results array contains data or undefined for failed requests
80
+ const validResults = results.filter(r => r !== undefined);
81
+ console.log(`Success: ${validResults.length} of ${results.length}`);
82
+ });
83
+ ```
84
+
85
+ ### With Per-Request Configuration
86
+
87
+ Each request can have its own retry, polling, adapter, etc.:
88
+
89
+ ```typescript
90
+ const requests = [
91
+ ApiRequest.adapt({
92
+ path: ['users', 1],
93
+ retry: { times: 3, delay: 1 },
94
+ adapter: User.adapt
95
+ }),
96
+ ApiRequest.adapt({
97
+ path: ['users', 2],
98
+ polling: 10, // This request will poll
99
+ adapter: User.adapt
100
+ }),
101
+ ApiRequest.adapt({
102
+ path: ['users', 3],
103
+ displayError: true,
104
+ adapter: User.adapt
105
+ })
106
+ ];
107
+
108
+ httpManager.getBatchRequests<User>(requests, {
109
+ mode: 'parallel',
110
+ concurrency: 2
111
+ }).subscribe(results => {
112
+ results.forEach((user, index) => {
113
+ console.log(`User ${index}:`, user);
114
+ });
115
+ });
116
+ ```
117
+
118
+ ## Configuration Options
119
+
120
+ All options are **optional** with sensible defaults:
121
+
122
+ | Option | Type | Default | Description |
123
+ | :--- | :--- | :--- | :--- |
124
+ | `mode` | `'sequential' \| 'parallel'` | `'sequential'` | Execution strategy |
125
+ | `stopOnError` | `boolean` | `false` | Stop sequential execution on first error |
126
+ | `concurrency` | `number` | `3` | Max concurrent requests (parallel mode) |
127
+ | `ignoreErrors` | `boolean` | `false` | Continue on errors, failed requests return `undefined` |
128
+ | `logErrors` | `boolean` | `true` | Log errors to console |
129
+
130
+ ## Error Handling Matrix
131
+
132
+ | Mode | stopOnError | ignoreErrors | Behavior |
133
+ | :--- | :--- | :--- | :--- |
134
+ | Sequential | false | false | Continue on error, observable errors |
135
+ | Sequential | true | N/A | Stop on first error, observable errors |
136
+ | Sequential | false | true | Continue, failed = `undefined`, no error |
137
+ | Parallel | N/A | false | Complete all, failed = `undefined`, no error |
138
+ | Parallel | N/A | true | Complete all, failed = `undefined`, no logging |
139
+
140
+ ## Return Value
141
+
142
+ The method returns `Observable<U[]>` where:
143
+
144
+ - `U` is the generic type (inferred or explicitly provided)
145
+ - Array length matches the number of requests
146
+ - Results are in the **same order** as requests provided
147
+ - Failed requests return `undefined` when `ignoreErrors: true`
148
+
149
+ ### Example with Type Safety
150
+
151
+ ```typescript
152
+ // Homogeneous batch (recommended)
153
+ httpManager.getBatchRequests<User>(userRequests)
154
+ .subscribe((users: User[]) => {
155
+ // users is typed as User[]
156
+ });
157
+
158
+ // Heterogeneous batch
159
+ httpManager.getBatchRequests(mixedRequests)
160
+ .subscribe((results: any[]) => {
161
+ // results is any[]
162
+ });
163
+ ```
164
+
165
+ ## Best Practices
166
+
167
+ ### 1. Use Type Parameters
168
+
169
+ ```typescript
170
+ // ✅ Good - Type safe
171
+ httpManager.getBatchRequests<User>(requests)
172
+
173
+ // ❌ Avoid - No type safety
174
+ httpManager.getBatchRequests(requests)
175
+ ```
176
+
177
+ ### 2. Choose Appropriate Concurrency
178
+
179
+ ```typescript
180
+ // For small batches (< 10)
181
+ { mode: 'parallel', concurrency: 5 }
182
+
183
+ // For large batches (10-100)
184
+ { mode: 'parallel', concurrency: 3 }
185
+
186
+ // For API rate limiting
187
+ { mode: 'parallel', concurrency: 1 } // Effectively sequential
188
+ ```
189
+
190
+ ### 3. Handle Errors Appropriately
191
+
192
+ ```typescript
193
+ // Critical operations - stop on error
194
+ { mode: 'sequential', stopOnError: true }
195
+
196
+ // Non-critical - ignore errors
197
+ { ignoreErrors: true }
198
+
199
+ // Default - log and continue
200
+ // (no options needed)
201
+ ```
202
+
203
+ ### 4. Use `BatchOptions.adapt()` for Direct Method Calls
204
+
205
+ When calling `getParallelRequest` or `getSequentialRequest` directly, wrap options with `BatchOptions.adapt()` to satisfy the class type:
206
+
207
+ ```typescript
208
+ // ✅ Correct
209
+ httpManager.getParallelRequest(requests, BatchOptions.adapt({ concurrency: 5 }))
210
+
211
+ // ❌ Type error - plain object is not assignable to BatchOptions class
212
+ httpManager.getParallelRequest(requests, { concurrency: 5 })
213
+ ```
214
+
215
+ ### 5. Keep Batch Sizes Reasonable
216
+
217
+ - **Recommended**: < 100 requests per batch
218
+ - **Large batches**: Consider splitting into multiple batches
219
+ - **Very large**: Use pagination or streaming (future enhancement)
220
+
221
+ ## Direct Parallel / Sequential Methods
222
+
223
+ As an alternative to `getBatchRequests`, you can call the execution methods directly. Both return `Observable<U[]>` — a **single emission** of all results after every request completes, preserving request order.
224
+
225
+ ### `getParallelRequest`
226
+
227
+ ```typescript
228
+ import { BatchOptions } from 'http-request-manager';
229
+
230
+ httpManager.getParallelRequest<User>(requests, BatchOptions.adapt({
231
+ concurrency: 5,
232
+ ignoreErrors: true,
233
+ logErrors: true
234
+ })).subscribe(users => {
235
+ // users: User[] — one array emitted when all requests finish
236
+ console.log(users[0]); // index-matched to requests[0]
237
+ console.log(users[1]); // index-matched to requests[1]
238
+ });
239
+ ```
240
+
241
+ ### `getSequentialRequest`
242
+
243
+ ```typescript
244
+ httpManager.getSequentialRequest<Todo>(requests, BatchOptions.adapt({
245
+ stopOnError: false,
246
+ ignoreErrors: true,
247
+ logErrors: true
248
+ })).subscribe(todos => {
249
+ // todos: Todo[] — one array emitted after ALL requests complete in order
250
+ todos.forEach((todo, i) => {
251
+ if (todo) console.log(`Todo ${i + 1}:`, todo.title);
252
+ });
253
+ });
254
+ ```
255
+
256
+ ### When to use which
257
+
258
+ | Method | Use when |
259
+ | :--- | :--- |
260
+ | `getBatchRequests` | Mode is selected at runtime via `options.mode` |
261
+ | `getParallelRequest` | Mode is always parallel; called directly |
262
+ | `getSequentialRequest` | Mode is always sequential; called directly |
263
+ | `getBatchRequestsStream` | Real-time per-request state updates needed (`isPending`, `data`, `error`) |
264
+
265
+ ## Examples
266
+
267
+ ### Load Multiple Resources
268
+
269
+ ```typescript
270
+ const resourceIds = [1, 2, 3, 4, 5];
271
+ const requests = resourceIds.map(id =>
272
+ ApiRequest.adapt({ path: ['resources', id] })
273
+ );
274
+
275
+ httpManager.getBatchRequests<Resource>(requests).subscribe(resources => {
276
+ resources.forEach(resource => {
277
+ if (resource) {
278
+ console.log('Resource:', resource.name);
279
+ }
280
+ });
281
+ });
282
+ ```
283
+
284
+ ### Bulk Create Operations
285
+
286
+ ```typescript
287
+ const newUsers = [
288
+ { name: 'User 1', email: 'user1@example.com' },
289
+ { name: 'User 2', email: 'user2@example.com' },
290
+ { name: 'User 3', email: 'user3@example.com' }
291
+ ];
292
+
293
+ const requests = newUsers.map(user =>
294
+ ApiRequest.adapt({
295
+ path: ['users'],
296
+ mapper: (u) => u
297
+ })
298
+ );
299
+
300
+ httpManager.getBatchRequests<User>(requests, {
301
+ mode: 'parallel',
302
+ concurrency: 2
303
+ }).subscribe(createdUsers => {
304
+ createdUsers.forEach(user => {
305
+ console.log('Created:', user);
306
+ });
307
+ });
308
+ ```
309
+
310
+ ### Sequential with Fallback
311
+
312
+ ```typescript
313
+ const primaryRequests = [
314
+ ApiRequest.adapt({ path: ['primary', 'data1'] }),
315
+ ApiRequest.adapt({ path: ['primary', 'data2'] })
316
+ ];
317
+
318
+ httpManager.getBatchRequests(primaryRequests, {
319
+ mode: 'sequential',
320
+ stopOnError: false,
321
+ ignoreErrors: true
322
+ }).subscribe(results => {
323
+ // Check for failures and trigger fallback
324
+ const failures = results.filter((r, i) => !r);
325
+ if (failures.length > 0) {
326
+ // Trigger fallback for failed requests
327
+ const fallbackRequests = failures.map((_, i) =>
328
+ ApiRequest.adapt({ path: ['fallback', 'data' + i] })
329
+ );
330
+ // Execute fallback...
331
+ }
332
+ });
333
+ ```
334
+
335
+ ## Performance Considerations
336
+
337
+ ### Memory Usage
338
+
339
+ - **Small batches (< 10)**: Negligible impact
340
+ - **Medium batches (10-100)**: Acceptable for most use cases
341
+ - **Large batches (100+)**: Consider splitting into multiple batches
342
+
343
+ ### Network Concurrency
344
+
345
+ - Default concurrency of 3 balances throughput and server load
346
+ - Adjust based on API rate limits
347
+ - Browser connection limits typically 6-8 per domain
348
+
349
+ ### Server Load
350
+
351
+ ```typescript
352
+ // High concurrency (use with caution)
353
+ { mode: 'parallel', concurrency: 10 }
354
+
355
+ // Moderate (recommended default)
356
+ { mode: 'parallel', concurrency: 3 }
357
+
358
+ // Conservative (for rate-limited APIs)
359
+ { mode: 'parallel', concurrency: 1 }
360
+ ```
361
+
362
+ ## Troubleshooting
363
+
364
+ ### Results Not in Expected Order
365
+
366
+ Results are **always** in the order of requests provided, not completion order:
367
+
368
+ ```typescript
369
+ // Even with parallel mode, results maintain request order
370
+ const requests = [req1, req2, req3];
371
+ // Results: [result1, result2, result3] (not completion order)
372
+ ```
373
+
374
+ ### Undefined Values in Results
375
+
376
+ When `ignoreErrors: true`, failed requests return `undefined`:
377
+
378
+ ```typescript
379
+ httpManager.getBatchRequests(requests, {
380
+ ignoreErrors: true
381
+ }).subscribe(results => {
382
+ // Filter out undefined values
383
+ const validResults = results.filter(r => r !== undefined);
384
+ });
385
+ ```
386
+
387
+ ### Type Errors
388
+
389
+ Ensure you're using the generic type parameter:
390
+
391
+ ```typescript
392
+ // ✅ Correct
393
+ httpManager.getBatchRequests<User>(requests)
394
+
395
+ // ❌ May cause type issues
396
+ httpManager.getBatchRequests(requests)
397
+ ```
398
+
399
+ ## API Reference
400
+
401
+ ### Method Signatures
402
+
403
+ ```typescript
404
+ // Route by mode at runtime
405
+ getBatchRequests<U = T>(
406
+ requests: ApiRequest[],
407
+ options?: BatchOptions
408
+ ): Observable<U[]>
409
+
410
+ // Call parallel execution directly
411
+ getParallelRequest<U = T>(
412
+ requests: ApiRequest[],
413
+ options?: BatchOptions
414
+ ): Observable<U[]>
415
+
416
+ // Call sequential execution directly
417
+ getSequentialRequest<U = T>(
418
+ requests: ApiRequest[],
419
+ options?: BatchOptions
420
+ ): Observable<U[]>
421
+
422
+ // Real-time per-request state stream
423
+ getBatchRequestsStream<U = T>(
424
+ requests: ApiRequest[],
425
+ options?: BatchOptions
426
+ ): Observable<BatchRequestState<U>>
427
+ ```
428
+
429
+ ### Parameters
430
+
431
+ - **requests**: `ApiRequest[]` - Array of request configurations
432
+ - **options**: `BatchOptions` (optional) - Created via `BatchOptions.adapt()` for partial inputs
433
+
434
+ ### Returns
435
+
436
+ - `Observable<U[]>` — Single emission of all results in request order (`getBatchRequests`, `getParallelRequest`, `getSequentialRequest`)
437
+ - `Observable<BatchRequestState<U>>` — Stream of pending/success/error states per request (`getBatchRequestsStream`)
438
+
439
+ ### BatchOptions Class
440
+
441
+ `BatchOptions` is a class, not a plain interface. Use `BatchOptions.adapt()` to construct from a partial object — it fills in all defaults:
442
+
443
+ ```typescript
444
+ // ✅ Use adapt() when passing a partial options object
445
+ BatchOptions.adapt({ concurrency: 5 })
446
+
447
+ // ✅ Also fine when using getBatchRequests (accepts optional partial via overload)
448
+ httpManager.getBatchRequests(requests, { mode: 'parallel' })
449
+ ```
450
+
451
+ ```typescript
452
+ class BatchOptions {
453
+ mode: 'sequential' | 'parallel' = 'sequential';
454
+ stopOnError: boolean = false;
455
+ concurrency: number = 3;
456
+ ignoreErrors: boolean = false;
457
+ logErrors: boolean = true;
458
+
459
+ static adapt(item?: Partial<BatchOptions>): BatchOptions;
460
+ }
461
+ ```
462
+
463
+ ## Related Documentation
464
+
465
+ - [HTTP Manager Service](./HTTP_MANAGER_README.md)
466
+ - [HTTP Signals Manager Service](./HTTP_SIGNALS_MANAGER_README.md)
467
+ - [ApiRequest Configuration](./MODELS_README.md)