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,468 @@
1
+ import { OperatorFunction } from 'rxjs';
2
+ import { filter, map } from 'rxjs/operators';
3
+ import { HttpEventType } from '@angular/common/http';
4
+ import { StreamType } from '../../request-manager-state-service/models/stream-type.enum';
5
+ import { StreamConfigModel } from '../../request-manager-state-service/models/stream-config.model';
6
+ import { StreamProgressModel } from '../../request-manager-state-service/models/stream-progress.model';
7
+ import { StreamOutputModel } from '../../request-manager-state-service/models/stream-output.model';
8
+
9
+ /**
10
+ * Stateful processor for managing streaming data and events
11
+ */
12
+ class StreamingProcessor<T = any> {
13
+ private buffer = '';
14
+ private contentType = '';
15
+ private readonly maxBufferSize = 10 * 1024 * 1024; // 10MB limit
16
+ private streamConfig: StreamConfigModel;
17
+ private lastParsedLength = 0; // Track parsed position to avoid duplicates
18
+ private totalFromHeader: number | undefined;
19
+
20
+ constructor(config?: StreamConfigModel) {
21
+ this.streamConfig = config || new StreamConfigModel(StreamType.AI_STREAMING);
22
+ }
23
+
24
+ /**
25
+ * Process HTTP events and extract streaming data with progress
26
+ */
27
+ process(event: any): StreamOutputModel<T> | null {
28
+ switch (event.type) {
29
+ case HttpEventType.ResponseHeader:
30
+ this.contentType = event.headers?.get('content-type') || '';
31
+ // Read total from response header if configured
32
+ if (this.streamConfig.totalHeader && event.headers) {
33
+ const totalVal = event.headers.get(this.streamConfig.totalHeader);
34
+ if (totalVal !== undefined && totalVal !== null) {
35
+ const parsed = parseInt(totalVal, 10);
36
+ if (!isNaN(parsed)) {
37
+ this.totalFromHeader = parsed;
38
+ }
39
+ }
40
+ }
41
+ return null;
42
+
43
+ case HttpEventType.DownloadProgress:
44
+ if (event.partialText) {
45
+ this.buffer = event.partialText;
46
+ const parsedData = this.parseBuffer();
47
+
48
+ // Only return NEW items since last parse (progressive updates)
49
+ const newItems = parsedData.slice(this.lastParsedLength);
50
+ this.lastParsedLength = parsedData.length;
51
+
52
+ // Calculate progress — prefer record count from header, fall back to byte-level
53
+ const total = this.totalFromHeader ?? event.total;
54
+ const received = this.totalFromHeader ? this.lastParsedLength : event.loaded;
55
+ const percent = total
56
+ ? Math.round((received / total) * 100)
57
+ : 0;
58
+
59
+ const progress = StreamProgressModel.adapt({
60
+ received,
61
+ total,
62
+ percent,
63
+ stage: 'streaming'
64
+ });
65
+
66
+ return StreamOutputModel.adapt<T>({
67
+ data: newItems.length > 0 ? newItems : [],
68
+ progress
69
+ });
70
+ }
71
+ return null;
72
+
73
+ case HttpEventType.Response:
74
+ if (event.body) {
75
+ this.buffer = typeof event.body === 'string' ? event.body : this.buffer;
76
+ const parsedData = this.parseBuffer();
77
+
78
+ // Calculate final progress
79
+ const received = this.totalFromHeader ? parsedData.length : event.loaded;
80
+
81
+ const progress = StreamProgressModel.adapt({
82
+ received,
83
+ percent: 100,
84
+ stage: 'complete'
85
+ });
86
+
87
+ return StreamOutputModel.adapt<T>({
88
+ data: parsedData.length > 0 ? parsedData : [],
89
+ progress
90
+ });
91
+ }
92
+ return null;
93
+
94
+ default:
95
+ return null;
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Append data to buffer with size management
101
+ */
102
+ private appendToBuffer(data: string): void {
103
+ this.buffer += data;
104
+
105
+ // Implement sliding window if buffer gets too large
106
+ if (this.buffer.length > this.maxBufferSize) {
107
+ this.buffer = this.buffer.slice(-this.maxBufferSize / 2);
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Parse current buffer content
113
+ */
114
+ private parseBuffer(): T[] {
115
+ if (!this.buffer.trim()) {
116
+ return [];
117
+ }
118
+
119
+ try {
120
+ const result = parseStreamData(this.buffer, this.contentType, this.streamConfig);
121
+ return result as T[];
122
+ } catch (error) {
123
+ console.warn('Failed to parse streaming data:', error);
124
+ return [];
125
+ }
126
+ }
127
+
128
+ /**
129
+ * Reset processor state
130
+ */
131
+ reset(): void {
132
+ this.buffer = '';
133
+ this.contentType = '';
134
+ this.lastParsedLength = 0;
135
+ this.totalFromHeader = undefined;
136
+ }
137
+
138
+ /**
139
+ * Update configuration
140
+ */
141
+ updateConfig(config: StreamConfigModel): void {
142
+ this.streamConfig = config;
143
+ }
144
+ }
145
+
146
+ /**
147
+ * Safe JSON parsing with error handling
148
+ */
149
+ function safeJsonParse<T>(jsonStr: string, fallback?: T): T | null {
150
+ try {
151
+ return JSON.parse(jsonStr);
152
+ } catch {
153
+ return fallback || null;
154
+ }
155
+ }
156
+
157
+ /**
158
+ * Safe JSON array parsing
159
+ */
160
+ function safeJsonArrayParse<T>(jsonStr: string, fallback: T[] = []): T[] {
161
+ try {
162
+ const parsed = JSON.parse(jsonStr);
163
+ return Array.isArray(parsed) ? parsed : fallback;
164
+ } catch {
165
+ return fallback;
166
+ }
167
+ }
168
+
169
+ /**
170
+ * Enhanced JSON object extraction with better error handling
171
+ */
172
+ function extractJsonObjects(text: string): string[] {
173
+ const objects: string[] = [];
174
+ let braceCount = 0;
175
+ let currentObject = '';
176
+ let inString = false;
177
+ let escaped = false;
178
+
179
+ for (let i = 0; i < text.length; i++) {
180
+ const char = text[i];
181
+
182
+ if (escaped) {
183
+ currentObject += char;
184
+ escaped = false;
185
+ continue;
186
+ }
187
+
188
+ if (char === '\\') {
189
+ escaped = true;
190
+ currentObject += char;
191
+ continue;
192
+ }
193
+
194
+ if (char === '"' && !escaped) {
195
+ inString = !inString;
196
+ }
197
+
198
+ if (!inString) {
199
+ if (char === '{') braceCount++;
200
+ else if (char === '}') braceCount--;
201
+ }
202
+
203
+ currentObject += char;
204
+
205
+ if (braceCount === 0 && currentObject.trim()) {
206
+ objects.push(currentObject.trim());
207
+ currentObject = '';
208
+ }
209
+ }
210
+
211
+ return objects;
212
+ }
213
+
214
+ /**
215
+ * COMPREHENSIVE REQUEST STREAMING OPERATOR - FULLY ABSTRACTED
216
+ * Refactored for better type safety and memory management
217
+ *
218
+ * Single function that handles ALL streaming formats without hardcoded assumptions:
219
+ * - JSON format (Individual JSON objects)
220
+ * - NDJSON format (Newline delimited JSON)
221
+ * - AI streaming format (Real-time AI responses)
222
+ * - Server-Sent Events format
223
+ * - Auto-detection mode
224
+ *
225
+ * Usage:
226
+ * this.http.get(url, options).pipe(requestStreaming()).subscribe(data => {...})
227
+ * this.http.get(url, options).pipe(requestStreaming({ streamType: StreamType.NDJSON })).subscribe(data => {...})
228
+ */
229
+ export function requestStreaming<T = any>(config?: StreamConfigModel): OperatorFunction<any, StreamOutputModel<T>> {
230
+ const processor = new StreamingProcessor<T>(config);
231
+
232
+ return input$ => input$.pipe(
233
+ // Filter only streaming-related events
234
+ filter((event: any) =>
235
+ event.type === HttpEventType.DownloadProgress ||
236
+ event.type === HttpEventType.Response ||
237
+ event.type === HttpEventType.ResponseHeader
238
+ ),
239
+
240
+ // Process events using the streaming processor
241
+ map((event: any) => {
242
+ const result = processor.process(event);
243
+ return result;
244
+ }),
245
+
246
+ // Filter out null results
247
+ filter((result): result is StreamOutputModel<T> => result !== null)
248
+ );
249
+ }
250
+
251
+ /**
252
+ * Main streaming data parser - handles ALL formats based on streamType
253
+ */
254
+ function parseStreamData(buffer: string, contentType: string, config: StreamConfigModel): any[] {
255
+ const results: any[] = [];
256
+
257
+ if (!buffer.trim()) {
258
+ return results;
259
+ }
260
+
261
+ // Determine parsing format based on streamType and content type
262
+ const format = config.streamType === StreamType.AI_STREAMING ? detectFormat(buffer, contentType) : config.streamType;
263
+
264
+ switch (format) {
265
+ case StreamType.NDJSON:
266
+ return parseNdjson(buffer, config);
267
+
268
+ case StreamType.JSON:
269
+ return parseJsonObjects(buffer, config);
270
+
271
+ case StreamType.AI_STREAMING:
272
+ return parseAiStreaming(buffer, config);
273
+
274
+ case StreamType.EVENT_STREAM:
275
+ return parseEventStream(buffer, config);
276
+
277
+ default:
278
+ return autoParse(buffer, contentType, config);
279
+ }
280
+ }
281
+
282
+ /**
283
+ * Parse NDJSON format (JSON objects per line)
284
+ */
285
+ function parseNdjson(buffer: string, config: StreamConfigModel): any[] {
286
+ const results: any[] = [];
287
+ const lines = buffer.split('\n');
288
+
289
+ // If the buffer doesn't end with \n, the last segment is an incomplete partial line — skip it
290
+ const completeLines = buffer.endsWith('\n') ? lines : lines.slice(0, -1);
291
+
292
+ completeLines.filter(line => line.trim()).forEach(line => {
293
+ const trimmedLine = line.trim();
294
+ if (trimmedLine && trimmedLine.startsWith('{')) {
295
+ const parsed = safeJsonParse(trimmedLine);
296
+ if (parsed) results.push(parsed);
297
+ }
298
+ });
299
+
300
+ return results;
301
+ }
302
+
303
+ /**
304
+ * Parse individual JSON objects
305
+ */
306
+ function parseJsonObjects(buffer: string, config: StreamConfigModel): any[] {
307
+ const results: any[] = [];
308
+ const jsonObjects = extractJsonObjects(buffer);
309
+
310
+ jsonObjects.forEach(jsonStr => {
311
+ const parsed = safeJsonParse(jsonStr);
312
+ if (parsed) results.push(parsed);
313
+ });
314
+
315
+ return results;
316
+ }
317
+
318
+ /**
319
+ * Parse AI streaming format
320
+ */
321
+ function parseAiStreaming(buffer: string, config: StreamConfigModel): any[] {
322
+ const results: any[] = [];
323
+ const jsonObjects = extractJsonObjects(buffer);
324
+
325
+ jsonObjects.forEach(jsonStr => {
326
+ const parsed = safeJsonParse(jsonStr);
327
+ if (parsed && typeof parsed === 'object' && parsed !== null && 'type' in parsed) {
328
+ const typedParsed = parsed as any;
329
+ if (['ai_thinking', 'ai_response', 'ai_suggestion', 'ai_status'].includes(typedParsed.type)) {
330
+ results.push(typedParsed);
331
+ }
332
+ }
333
+ });
334
+
335
+ return results;
336
+ }
337
+
338
+ /**
339
+ * Parse Server-Sent Events format
340
+ */
341
+ function parseEventStream(buffer: string, config: StreamConfigModel): any[] {
342
+ const results: any[] = [];
343
+ const events = buffer.split('\n\n').filter(event => event.trim());
344
+
345
+ events.forEach(event => {
346
+ const lines = event.split('\n');
347
+ let eventData = '';
348
+
349
+ lines.forEach(line => {
350
+ if (line.startsWith('data: ')) {
351
+ eventData += line.substring(6);
352
+ }
353
+ });
354
+
355
+ if (eventData) {
356
+ try {
357
+ const parsed = JSON.parse(eventData);
358
+ if(parsed) results.push(parsed);
359
+ } catch (e) {
360
+ results.push({
361
+ content: eventData,
362
+ _streamType: 'event_stream',
363
+ _format: StreamType.EVENT_STREAM,
364
+ _timestamp: new Date().toISOString()
365
+ });
366
+ }
367
+ }
368
+ });
369
+
370
+ return results;
371
+ }
372
+
373
+ /**
374
+ * Auto-detect and parse unknown formats
375
+ */
376
+ function autoParse(buffer: string, contentType: string, config: StreamConfigModel): any[] {
377
+ // Check content type hints
378
+ if (contentType.includes('application/x-ndjson') || isNdjsonFormat(buffer)) {
379
+ return parseNdjson(buffer, config);
380
+ }
381
+
382
+ if (contentType.includes('application/json') || buffer.includes('{')) {
383
+ // Check if it looks like AI streaming
384
+ if (buffer.includes('"type":') && buffer.includes('"ai_')) {
385
+ return parseAiStreaming(buffer, config);
386
+ }
387
+ return parseJsonObjects(buffer, config);
388
+ }
389
+
390
+ if (contentType.includes('text/event-stream')) {
391
+ return parseEventStream(buffer, config);
392
+ }
393
+
394
+ // Fallback: try to parse as JSON, otherwise treat as text
395
+ const jsonObjects = extractJsonObjects(buffer);
396
+ if (jsonObjects.length > 0) {
397
+ return parseJsonObjects(buffer, config);
398
+ } else {
399
+ // Return as text chunks
400
+ return buffer.split('\n').filter(line => line.trim()).map(line => ({
401
+ content: line.trim(),
402
+ _streamType: 'text',
403
+ _format: 'plain',
404
+ _timestamp: new Date().toISOString()
405
+ }));
406
+ }
407
+ }
408
+
409
+ /**
410
+ * Detect streaming format from content
411
+ */
412
+ function detectFormat(buffer: string, contentType: string): StreamType {
413
+ if (contentType.includes('application/x-ndjson') || isNdjsonFormat(buffer)) {
414
+ return StreamType.NDJSON;
415
+ }
416
+
417
+ if (contentType.includes('text/event-stream')) {
418
+ return StreamType.EVENT_STREAM;
419
+ }
420
+
421
+ if (contentType.includes('application/json') || buffer.includes('{')) {
422
+ // Check if it looks like AI streaming
423
+ if (buffer.includes('"type":') && buffer.includes('"ai_')) {
424
+ return StreamType.AI_STREAMING;
425
+ }
426
+ return StreamType.JSON;
427
+ }
428
+
429
+ return StreamType.JSON; // Default
430
+ }
431
+
432
+ /**
433
+ * Check if buffer is NDJSON format
434
+ */
435
+ function isNdjsonFormat(buffer: string): boolean {
436
+ const lines = buffer.split('\n').filter(line => line.trim());
437
+ const jsonLines = lines.filter(line => line.trim().startsWith('{') && line.trim().endsWith('}'));
438
+ return jsonLines.length > 1 || (lines.length > 1 && jsonLines.length > 0);
439
+ }
440
+
441
+ /**
442
+ * Convenience functions for common use cases
443
+ */
444
+
445
+ // Stream with JSON format
446
+ export function streamJSON<T = any>(): OperatorFunction<any, StreamOutputModel<T>> {
447
+ return requestStreaming<T>(StreamConfigModel.adapt({ streamType: StreamType.JSON }));
448
+ }
449
+
450
+ // Stream with NDJSON format
451
+ export function streamNDJSON<T = any>(): OperatorFunction<any, StreamOutputModel<T>> {
452
+ return requestStreaming<T>(StreamConfigModel.adapt({ streamType: StreamType.NDJSON }));
453
+ }
454
+
455
+ // Stream AI responses
456
+ export function streamAI<T = any>(): OperatorFunction<any, StreamOutputModel<T>> {
457
+ return requestStreaming<T>(StreamConfigModel.adapt({ streamType: StreamType.AI_STREAMING }));
458
+ }
459
+
460
+ // Stream Server-Sent Events
461
+ export function streamEvents<T = any>(): OperatorFunction<any, StreamOutputModel<T>> {
462
+ return requestStreaming<T>(StreamConfigModel.adapt({ streamType: StreamType.EVENT_STREAM }));
463
+ }
464
+
465
+ // Auto-detect streaming format
466
+ export function streamAuto<T = any>(): OperatorFunction<any, StreamOutputModel<T>> {
467
+ return requestStreaming<T>(StreamConfigModel.adapt({ streamType: StreamType.AUTO }));
468
+ }