http-request-manager 18.15.34 → 18.16.1

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/fesm2022/http-request-manager.mjs +13688 -0
  2. package/fesm2022/http-request-manager.mjs.map +1 -0
  3. package/http-request-manager-18.16.0.tgz +0 -0
  4. package/package.json +15 -6
  5. package/types/http-request-manager.d.ts +3968 -0
  6. package/TEST_COVERAGE_SUMMARY.md +0 -458
  7. package/ng-package.json +0 -8
  8. package/src/docs/ADVANCED_WEBSOCKET.md +0 -633
  9. package/src/docs/ARCHITECTURE.md +0 -633
  10. package/src/docs/BATCH_REQUEST_README.md +0 -467
  11. package/src/docs/COMPLETE_API_REFERENCE.md +0 -1037
  12. package/src/docs/DATABASE_README.md +0 -1195
  13. package/src/docs/ENCRYPTION_README.md +0 -403
  14. package/src/docs/HTTP_MANAGER_README.md +0 -628
  15. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +0 -654
  16. package/src/docs/HTTP_STATE_MANAGER_README.md +0 -1391
  17. package/src/docs/INTERCEPTOR_README.md +0 -549
  18. package/src/docs/LOCAL_STORAGE_README.md +0 -1056
  19. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +0 -338
  20. package/src/docs/LOGGER_README.md +0 -310
  21. package/src/docs/MESSAGE_TRACKER_README.md +0 -518
  22. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +0 -563
  23. package/src/docs/MODELS_README.md +0 -1264
  24. package/src/docs/SIGNAL_SERVICES_README.md +0 -238
  25. package/src/docs/SQL_DIXIE_README.md +0 -574
  26. package/src/docs/STORE_STATE_MANAGER_README.md +0 -556
  27. package/src/docs/STORE_STATE_SIGNALS_README.md +0 -600
  28. package/src/docs/UPLOAD_REQUEST_README.md +0 -324
  29. package/src/docs/UTILS_README.md +0 -1604
  30. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +0 -799
  31. package/src/docs/WEBSOCKET_SIGNALS_README.md +0 -641
  32. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +0 -201
  33. package/src/docs/WS_MANAGER_README.md +0 -613
  34. package/src/lib/http-request-manager.module.ts +0 -147
  35. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -116
  36. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  37. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -255
  38. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -123
  39. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  40. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -53
  41. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  42. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  43. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -208
  44. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +0 -200
  45. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +0 -17
  46. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +0 -214
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +0 -53
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +0 -60
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +0 -72
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +0 -28
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +0 -10
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +0 -29
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +0 -100
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +0 -22
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +0 -8
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +0 -19
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +0 -26
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +0 -30
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +0 -19
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +0 -25
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +0 -19
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +0 -24
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +0 -30
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +0 -49
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +0 -33
  66. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +0 -279
  67. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +0 -24
  68. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +0 -461
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  77. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  78. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  79. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  85. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  86. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  87. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  88. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -622
  89. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -106
  90. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -687
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -418
  92. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  93. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -576
  94. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -89
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +0 -119
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +0 -3
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +0 -16
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +0 -3
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +0 -16
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +0 -31
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +0 -94
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +0 -41
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +0 -203
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +0 -144
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +0 -11
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +0 -102
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +0 -40
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +0 -230
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +0 -30
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +0 -172
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +0 -31
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +0 -239
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +0 -31
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +0 -32
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +0 -84
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +0 -40
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +0 -3
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +0 -62
  122. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +0 -83
  123. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +0 -147
  124. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +0 -168
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +0 -28
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +0 -10
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +0 -30
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +0 -19
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +0 -25
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +0 -19
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +0 -24
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +0 -30
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +0 -49
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +0 -33
  144. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +0 -380
  145. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +0 -24
  146. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +0 -410
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +0 -28
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +0 -49
  149. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  150. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +0 -23
  151. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +0 -36
  152. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +0 -161
  153. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +0 -1
  154. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +0 -30
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +0 -89
  156. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +0 -160
  157. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +0 -101
  158. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +0 -136
  159. package/src/lib/index.ts +0 -3
  160. package/src/lib/interceptors/credentials.interceptor.ts +0 -16
  161. package/src/lib/interceptors/index.ts +0 -6
  162. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  163. package/src/lib/interceptors/models/index.ts +0 -2
  164. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  165. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  166. package/src/lib/interceptors/request-header.interceptor.ts +0 -56
  167. package/src/lib/message-display/README.md +0 -509
  168. package/src/lib/message-display/index.ts +0 -4
  169. package/src/lib/message-display/models/action.model.ts +0 -27
  170. package/src/lib/message-display/models/communication-message.model.ts +0 -77
  171. package/src/lib/message-display/models/display-config.model.ts +0 -35
  172. package/src/lib/message-display/models/display-rule.interface.ts +0 -28
  173. package/src/lib/message-display/models/display-strategy.interface.ts +0 -8
  174. package/src/lib/message-display/models/index.ts +0 -6
  175. package/src/lib/message-display/models/slide.model.ts +0 -24
  176. package/src/lib/message-display/rules/default-display-rules.ts +0 -35
  177. package/src/lib/message-display/services/message-display-router.service.ts +0 -63
  178. package/src/lib/message-display/strategies/snackbar.strategy.ts +0 -46
  179. package/src/lib/models/batch-options.model.ts +0 -33
  180. package/src/lib/models/batch-progress.model.ts +0 -19
  181. package/src/lib/models/batch-request-state.model.ts +0 -40
  182. package/src/lib/models/batch-result.model.ts +0 -30
  183. package/src/lib/models/config-http-options.model.ts +0 -45
  184. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  185. package/src/lib/models/config-options.model.ts +0 -27
  186. package/src/lib/models/config-token.model.ts +0 -9
  187. package/src/lib/models/data-type.enum.ts +0 -5
  188. package/src/lib/models/database-storage.model.ts +0 -24
  189. package/src/lib/models/index.ts +0 -16
  190. package/src/lib/models/retry-options.model.ts +0 -22
  191. package/src/lib/models/upload-validation-error.model.ts +0 -46
  192. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +0 -246
  193. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +0 -31
  194. package/src/lib/services/SQL-DixieJS service/index.ts +0 -4
  195. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +0 -52
  196. package/src/lib/services/SQL-DixieJS service/models/index.ts +0 -3
  197. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +0 -13
  198. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +0 -3
  199. package/src/lib/services/SQL-DixieJS service/query-planner.ts +0 -284
  200. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +0 -217
  201. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +0 -35
  202. package/src/lib/services/database-manager-service/database.manager.service.ts +0 -384
  203. package/src/lib/services/database-manager-service/db.storage.service.ts +0 -240
  204. package/src/lib/services/database-manager-service/index.ts +0 -4
  205. package/src/lib/services/database-manager-service/models/index.ts +0 -2
  206. package/src/lib/services/database-manager-service/models/table-schema.ts +0 -33
  207. package/src/lib/services/index.ts +0 -20
  208. package/src/lib/services/local-storage-manager-service/index.ts +0 -4
  209. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  210. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -567
  211. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +0 -67
  212. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +0 -437
  213. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  214. package/src/lib/services/local-storage-manager-service/models/index.ts +0 -6
  215. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -35
  216. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  217. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -32
  218. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  219. package/src/lib/services/request-manager-services/README.md +0 -282
  220. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +0 -674
  221. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -353
  222. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -727
  223. package/src/lib/services/request-manager-services/index.ts +0 -8
  224. package/src/lib/services/request-manager-services/request-signals.service.ts +0 -372
  225. package/src/lib/services/request-manager-services/request.service.ts +0 -435
  226. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  227. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  228. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +0 -4
  229. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -35
  230. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -468
  231. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +0 -665
  232. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -2395
  233. package/src/lib/services/request-manager-state-service/index.ts +0 -3
  234. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -86
  235. package/src/lib/services/request-manager-state-service/models/index.ts +0 -14
  236. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +0 -18
  237. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +0 -21
  238. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -37
  239. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +0 -20
  240. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +0 -23
  241. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +0 -23
  242. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +0 -23
  243. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +0 -24
  244. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +0 -13
  245. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +0 -42
  246. package/src/lib/services/store-state-manager-service/index.ts +0 -4
  247. package/src/lib/services/store-state-manager-service/models/index.ts +0 -3
  248. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +0 -30
  249. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +0 -24
  250. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +0 -169
  251. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +0 -153
  252. package/src/lib/services/utils/app.service.spec.ts +0 -25
  253. package/src/lib/services/utils/app.service.ts +0 -21
  254. package/src/lib/services/utils/encryption/README.md +0 -79
  255. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  256. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  257. package/src/lib/services/utils/encryption/index.ts +0 -5
  258. package/src/lib/services/utils/encryption/random.ts +0 -81
  259. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -106
  260. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  261. package/src/lib/services/utils/headers.service.ts +0 -18
  262. package/src/lib/services/utils/index.ts +0 -9
  263. package/src/lib/services/utils/logger.service.ts +0 -90
  264. package/src/lib/services/utils/models/index.ts +0 -4
  265. package/src/lib/services/utils/models/normalized-request-options.model.ts +0 -24
  266. package/src/lib/services/utils/models/path-tracker-state.model.ts +0 -20
  267. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +0 -24
  268. package/src/lib/services/utils/models/query-tracker-state.model.ts +0 -23
  269. package/src/lib/services/utils/object-merger.service.spec.ts +0 -18
  270. package/src/lib/services/utils/object-merger.service.ts +0 -78
  271. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  272. package/src/lib/services/utils/path-query.service.ts +0 -69
  273. package/src/lib/services/utils/query-params-tracker.service.ts +0 -442
  274. package/src/lib/services/utils/random-color.utils.ts +0 -83
  275. package/src/lib/services/utils/utils.service.spec.ts +0 -165
  276. package/src/lib/services/utils/utils.service.ts +0 -192
  277. package/src/lib/services/ws-manager-service/index.ts +0 -13
  278. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +0 -147
  279. package/src/lib/services/ws-manager-service/message-tracker.service.ts +0 -477
  280. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +0 -29
  281. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +0 -24
  282. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +0 -36
  283. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +0 -6
  284. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +0 -5
  285. package/src/lib/services/ws-manager-service/models/index.ts +0 -10
  286. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +0 -29
  287. package/src/lib/services/ws-manager-service/models/public-message.model.ts +0 -18
  288. package/src/lib/services/ws-manager-service/models/state-message.model.ts +0 -18
  289. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +0 -38
  290. package/src/lib/services/ws-manager-service/services/index.ts +0 -4
  291. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +0 -129
  292. package/src/lib/services/ws-manager-service/services/websocket.service.ts +0 -434
  293. package/src/lib/services/ws-manager-service/websocket-service/index.ts +0 -1
  294. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +0 -716
  295. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +0 -596
  296. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +0 -141
  297. package/src/public-api.ts +0 -19
  298. package/tsconfig.lib.json +0 -34
  299. package/tsconfig.lib.prod.json +0 -10
  300. package/tsconfig.spec.json +0 -14
@@ -1,687 +0,0 @@
1
- import { Component, Input, OnInit, ViewChild, inject } from '@angular/core'
2
-
3
- import { BehaviorSubject, EMPTY, Observable, throwError, of } from 'rxjs'
4
- import { FormArray, FormBuilder, Validators } from '@angular/forms'
5
- import { catchError, tap, map } from 'rxjs/operators'
6
-
7
- import { ClientInfo } from './models/sample-client-info'
8
- import { ClientInfoMapper } from './models/sample-mapper-client-info'
9
- import { AIPrompt } from './models/sample-ai-prompt'
10
- import { ApiRequest, HTTPManagerService, StreamType, BatchOptions, BatchRequestState, BatchProgress, calculateBatchProgress } from '../..'
11
-
12
- import { ToastColors, ToastDisplay, ToastMessageDisplayService } from 'toast-message-display'
13
-
14
- @Component({
15
- selector: 'app-request-manager-demo',
16
- templateUrl: './request-manager-demo.component.html',
17
- styleUrls: ['./request-manager-demo.component.scss'],
18
- providers: [HTTPManagerService],
19
- standalone: false
20
- })
21
- export class RequestManagerDemoComponent implements OnInit {
22
-
23
- @Input() server = 'http://localhost:8080'
24
- @Input() adapter?: Function
25
- @Input() mapper?: Function
26
-
27
- displayedColumns: string[] = []
28
-
29
- // Dynamic columns based on data structure
30
- getColumnsFromData(data: any[]): string[] {
31
- if (!data || data.length === 0) {
32
- return []
33
- }
34
-
35
- const firstRecord = data[0]
36
- if (!firstRecord || typeof firstRecord !== 'object') {
37
- return []
38
- }
39
-
40
- // Extract all keys from the first record, excluding null/undefined
41
- return Object.keys(firstRecord).filter(key =>
42
- firstRecord[key] !== null && firstRecord[key] !== undefined
43
- )
44
- }
45
-
46
- // Update displayed columns when data changes
47
- updateDisplayedColumns(data: any[]): void {
48
- this.displayedColumns = this.getColumnsFromData(data)
49
- console.log('[DEMO] Updated columns:', this.displayedColumns)
50
- }
51
-
52
- // Helper to check if value is an object
53
- isObject(value: any): boolean {
54
- return value !== null && typeof value === 'object' && !Array.isArray(value)
55
- }
56
-
57
- private fb = inject(FormBuilder)
58
- private toastMessage = inject(ToastMessageDisplayService)
59
-
60
- questionControl = this.fb.control("", [Validators.required])
61
-
62
- httpManagerService = inject(HTTPManagerService)
63
-
64
- isPending$ = this.httpManagerService.isPending$
65
- countdown$ = this.httpManagerService.countdown$
66
-
67
- GET_error$ = new BehaviorSubject<string>('')
68
- POST_error$ = new BehaviorSubject<string>('')
69
- PUT_error$ = new BehaviorSubject<string>('')
70
- DELETE_error$ = new BehaviorSubject<string>('')
71
-
72
- STREAM_error$ = new BehaviorSubject<string>('')
73
- STREAM_AI_error$ = new BehaviorSubject<string>('')
74
-
75
- GET$?: Observable<any>
76
- POST$?: Observable<any>
77
- PUT$?: Observable<any>
78
- DELETE$?: Observable<any>
79
-
80
- STREAM$?: Observable<any>
81
- STREAM_AI$?: Observable<any>
82
-
83
- // Batch request properties
84
- parallelBatch$?: Observable<any[]>
85
- sequentialBatch$?: Observable<any[]>
86
- parallelExecutionTime?: number
87
- sequentialExecutionTime?: number
88
- parallelResults?: any[]
89
- sequentialResults?: any[]
90
- isParallelLoading = false
91
- isSequentialLoading = false
92
- parallelError?: string
93
- sequentialError?: string
94
-
95
- // Parallel batch states for individual request tracking
96
- parallelBatchStates: (BatchRequestState<any> | undefined)[] = []
97
-
98
- // Sequential batch states for individual request tracking
99
- sequentialBatchStates: (BatchRequestState<any> | undefined)[] = []
100
-
101
- // Stream batch request properties
102
- streamBatchStates: (BatchRequestState<any> | undefined)[] = []
103
- streamProgress?: BatchProgress
104
- streamExecutionTime?: number
105
- isStreamLoading = false
106
- streamError?: string
107
-
108
- // Computed properties for filtered states (removes undefined)
109
- get filteredParallelStates(): BatchRequestState<any>[] {
110
- return this.parallelBatchStates.filter(s => s !== undefined) as BatchRequestState<any>[]
111
- }
112
-
113
- get filteredSequentialStates(): BatchRequestState<any>[] {
114
- return this.sequentialBatchStates.filter(s => s !== undefined) as BatchRequestState<any>[]
115
- }
116
-
117
- get filteredStreamStates(): BatchRequestState<any>[] {
118
- return this.streamBatchStates.filter(s => s !== undefined) as BatchRequestState<any>[]
119
- }
120
-
121
- requestParams = {
122
- GET: ApiRequest.adapt(),
123
- POST: ApiRequest.adapt(),
124
- PUT: ApiRequest.adapt(),
125
- DELETE: ApiRequest.adapt(),
126
- STREAM: ApiRequest.adapt(),
127
- }
128
-
129
- streamTypes = [
130
- { id: 'JSON', value: 'json' },
131
- { id: 'NDJSON', value: 'ndjson' },
132
- { id: 'AI Streaming', value: 'ai_streaming' },
133
- { id: 'Event Stream', value: 'event_stream' },
134
- { id: 'Auto', value: 'auto' },
135
- ]
136
-
137
- streamType = 'Auto'
138
-
139
- @ViewChild("failedState", { static: true }) failedState: any
140
- @ViewChild("pollingState", { static: true }) pollingState: any
141
-
142
- downloadRequest = ApiRequest.adapt({
143
- server: 'assets/images',
144
- path: ['lego.png'],
145
- saveAs: 'john.jpg', // Optional
146
- headers: { 'Authorization': 'Bearer Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6InJ0c0ZULWItN0x1WTdEVlllU05LY0lKN1ZuYyJ9.eyJhdWQiOiI4ODhhMzFjZS01OWQzLTRhMTItYTU5Ni04ZDYyZjY0MWI1MDUiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vNmY0MTE5ODItY2YyMy00ZTQ1LTk0NDktNGI2MDdiN2E4OGVjL3YyLjAiLCJpYXQiOjE3NjU4MzQxNDksIm5iZiI6MTc2NTgzNDE0OSwiZXhwIjoxNzY1ODM5NzQ2LCJhY2N0IjowLCJhaW8iOiJBV1FBbS84YUFBQUFVUEZOYUhSZkZ4ZVkwRWthcFBzdWZaNG1QYXV6YVRoODRRZUtQRzkrbEFIVE5XanVwQy9ZSjEwK2IrMktWVlJSSXZRNFpwS2xyWTFGd0xRZmtXOTNLbkRNckxSeEMzWTVOOGlQREZ4b1liZExucW1QL1N1ZE1pRW1Va05tTklSWSIsImF6cCI6Ijg4OGEzMWNlLTU5ZDMtNGExMi1hNTk2LThkNjJmNjQxYjUwNSIsImF6cGFjciI6IjAiLCJncm91cHMiOlsiZWE2ZDk5YjAtNDgyNC00MDU0LTk0MTQtZDNhOTZkZDA3MjRiIl0sIm5hbWUiOiJHVExDIEFwcCBTdXBlciBBZG1pbiIsIm9pZCI6IjI2NzUxY2I2LWNlMDEtNDMzMC05OTc0LWZjMzgxMjQ3YTEzYyIsInByZWZlcnJlZF91c2VybmFtZSI6Imd0bGMwMDNAZ3RsYy5jYSIsInJoIjoiMS5BUzRBZ2hsQmJ5UFBSVTZVU1V0Z2UzcUk3TTR4aW9qVFdSSktwWmFOWXZaQnRRVm1BYTR1QUEuIiwicm9sZXMiOlsiZ3RsYy5hY2wuc3VwZXJhZG1pbiJdLCJzY3AiOiJHVExDX0FwcGxpY2F0aW9uIiwic2lkIjoiMDAzZjVhZDktZmJmNi1jZTkyLTg3MjItMWEzNDExYjMzMDJiIiwic3ViIjoiS0RYQ3drVlhUbTRUUmcwaTkxbXZDZzgtQ29uLXpWbk5FQ2Y5LVg0dkpzUSIsInRpZCI6IjZmNDExOTgyLWNmMjMtNGU0NS05NDQ5LTRiNjA3YjdhODhlYyIsInVwbiI6Imd0bGMwMDNAZ3RsYy5jYSIsInV0aSI6InpBaTJoMmpVUUVHbVY0RTJXMWxqQUEiLCJ2ZXIiOiIyLjAiLCJ3aWRzIjpbImI3OWZiZjRkLTNlZjktNDY4OS04MTQzLTc2YjE5NGU4NTUwOSJdLCJ4bXNfZnRkIjoiUDJraW1ZM0tqc1BTRndxNHlZdmJ0bGhrSUk3d2tXNmFpcW1FQ1BaNEdja0JkWE5sWVhOMExXUnpiWE0ifQ.LzppoggMm27smSAy9SamtPN95vCzdELCAfhtOj5n_T_H6g9xCmNRLS9FaUFQMau6Qvl0lROKl7WDklTswLFkfxbIxCBWtXdL-LTqT5cDURSJAll8vC3zlN3Hg9pAFBUVZFRolt6Z7LvPdI3pvUOQs0yFwVzp9k6cLF8aemKdwKQrMX3XXua1MfBWZcqQ4WiBVNmKh8w6yQB35I4u5WqdFnu33nUGb-kvc18SOpoUfiJnlV-PudaEzFXdU3CjAaMEcuPFv5xLwWJKuhU73dNH4EyQDFMVGtcIHNnieOfiY_nK2_0-5DM6aI40UIRK6Bt-HmMQpnbhLps5y3ep6Z7RNw' } // Optional
147
- })
148
-
149
- // downloadRequest = ApiRequest.adapt({
150
- // server: 'oidc/ai/file'
151
- // })
152
-
153
- sampleClientData = {
154
- id: 0,
155
- name: "Old School Dates",
156
- domain: "osd.com",
157
- service: "osd",
158
- spiffe: "osd.com/osd",
159
- secret: "SMOPECXP-OS4P-USOG-X2II-3XMD1FQDR3IJX",
160
- created: 1693003138,
161
- modified: 1693003138,
162
- icon: "",
163
- imageFile: "",
164
- email: "wavecoders@gmail.com"
165
- }
166
-
167
- requestForm = this.fb.group({
168
- path: this.fb.control<string>("ai/"),
169
- headers: this.fb.array([]),
170
- adapter: [null],
171
- mapper: [null],
172
- retry: this.fb.group({
173
- times: [3],
174
- delay: [3],
175
- }),
176
- polling: [3],
177
- })
178
-
179
- AIType = 0
180
-
181
- sampleAdaptors = [
182
- { label: "ClientInfo Basic", value: ClientInfo.adapt },
183
- { label: "AI Prompt", value: AIPrompt.adapt },
184
- ]
185
-
186
- sampleMappers = [
187
- { label: "Mapper Basic", value: ClientInfoMapper.adapt },
188
- { label: "AI Prompt", value: AIPrompt.adapt },
189
- ]
190
-
191
- get retry() {
192
- return this.requestForm.get('retry')?.value
193
- }
194
-
195
- get headers(): FormArray {
196
- return this.requestForm.get('headers') as FormArray
197
- }
198
-
199
- get isValid() {
200
- this.requestForm.markAllAsTouched()
201
- return this.requestForm.valid
202
- }
203
-
204
- hasId = (arr: any[]) => {
205
- if (arr.length === 0) return false
206
- return !isNaN(arr[arr.length - 1])
207
- }
208
-
209
- props = (adapter: any) => {
210
- return (adapter) ? adapter() : null
211
- }
212
-
213
- // server = `http://sample-endpoint/as/authorization.oauth2`
214
-
215
- arrayObjectsToObjects = (arr: any[]) => {
216
- return Array.isArray(arr) ? arr.reduce((obj, item) => Object.assign(obj, { [item.key]: item.value }), {}) : {}
217
- }
218
-
219
- constructor() { }
220
-
221
- ngOnInit() {
222
-
223
- // const reqGet2 = ApiRequest.adapt({
224
- // server,
225
- // path: ['clients'],
226
- // headers: { authentication: "Bearer <KEY>" },
227
- // adapter: ClientInfo,
228
- // dataType: DataType.OBJECT,
229
- // // concurrent: false,
230
- // // polling: 3, //seconds
231
- // })
232
-
233
- // const req2 = [1024,1025,1026].map(item => {
234
- // return this.httpManagerService.getRequest<ClientInfo[]>(reqGet2, [item])
235
- // .pipe(
236
- // catchError(error => {
237
- // return throwError(() => new Error(error.error.message))
238
- // })
239
- // )
240
- // })
241
-
242
- // forkJoin(req2)
243
- // .subscribe(res => console.log(res))
244
-
245
- }
246
-
247
- onStreamType(type: string) {
248
- this.streamType = type
249
- }
250
-
251
- addHeader() {
252
- const header = this.fb.group({
253
- key: ['', Validators.required],
254
- value: ['']
255
- })
256
- this.headers.push(header)
257
- }
258
-
259
- removeHeader(index: number) {
260
- this.headers.removeAt(index)
261
- }
262
-
263
- compileRequest() {
264
-
265
- const requestParams = this.requestForm.value
266
-
267
- requestParams.headers = this.arrayObjectsToObjects(
268
- requestParams.headers || []
269
- )
270
-
271
- const pathReq = (requestParams.path === "") ? [] : (requestParams.path || "").split("/")
272
-
273
- if (!this.pollingState.checked) requestParams.polling = 0
274
-
275
- if (!this.failedState.checked) {
276
- requestParams.retry = { times: 0,delay: 0 }
277
- }
278
-
279
- const apiOptions = ApiRequest.adapt(requestParams)
280
- apiOptions.displayError = true
281
- apiOptions.path = []
282
- apiOptions.server = this.server
283
- apiOptions.adapter = this.adapter
284
- apiOptions.mapper = this.mapper
285
- return { apiOptions: apiOptions, path: pathReq }
286
-
287
- }
288
-
289
- onGetRequest() {
290
-
291
- if(!this.isValid) return
292
-
293
- const reqParams = this.compileRequest()
294
-
295
- this.requestParams.GET = reqParams.apiOptions
296
-
297
- this.GET$ = EMPTY //Cancels Previous
298
- this.GET_error$.next('')
299
-
300
- this.GET$ = this.httpManagerService.getRequest<ClientInfo[]>({...reqParams.apiOptions}, reqParams.path)
301
- .pipe(
302
- // tap((data) => console.log("API GET response", data)),
303
- catchError(error => {
304
- return throwError(() => this.errorHandling(error, 'GET'))
305
- })
306
- )
307
-
308
- }
309
-
310
- onCreateRequest() {
311
-
312
- if(!this.isValid) return
313
-
314
- const reqParams = this.compileRequest()
315
- this.requestParams.POST = reqParams.apiOptions
316
-
317
- this.POST$ = EMPTY //Cancels Previous
318
- this.POST_error$.next('')
319
-
320
- console.log("POST", this.sampleClientData)
321
- console.log("POST", reqParams.apiOptions)
322
- console.log("POST", reqParams.path)
323
-
324
- this.POST$ = this.httpManagerService.postRequest<ClientInfo>(this.sampleClientData, reqParams.apiOptions, reqParams.path)
325
- .pipe(
326
- // tap((data) => console.log("API POST response", data)),
327
- catchError(error => {
328
- return throwError(() => this.errorHandling(error, 'POST'))
329
- })
330
- )
331
-
332
- }
333
-
334
- onUpdateRequest() {
335
-
336
- if(!this.isValid) return
337
-
338
- const reqParams = this.compileRequest()
339
-
340
- if(!this.hasId(reqParams.path)) {
341
- console.log("Missing ID")
342
- return
343
- }
344
-
345
- this.sampleClientData.id = parseInt(reqParams.path[reqParams.path.length-1])
346
- this.requestParams.PUT = reqParams.apiOptions
347
-
348
- this.PUT$ = EMPTY //Cancels Previous
349
- this.PUT_error$.next('')
350
-
351
- this.PUT$ = this.httpManagerService.putRequest<any>(this.sampleClientData, reqParams.apiOptions, reqParams.path)
352
- .pipe(
353
- // tap((data) => console.log("API PUT response", data)),
354
- catchError(error => {
355
- return throwError(() => this.errorHandling(error, 'PUT'))
356
- })
357
- )
358
-
359
- }
360
-
361
- onDeleteRequest() {
362
-
363
- if(!this.isValid) return
364
-
365
- const reqParams = this.compileRequest()
366
- this.requestParams.DELETE = reqParams.apiOptions
367
-
368
- if(!this.hasId(reqParams.path)) {
369
- console.log("Missing ID")
370
- return
371
- }
372
-
373
- this.sampleClientData.id = parseInt(reqParams.path[reqParams.path.length-1])
374
- this.requestParams.DELETE = reqParams.apiOptions
375
-
376
- this.DELETE$ = EMPTY //Cancels Previous
377
- this.DELETE_error$.next('')
378
-
379
- this.DELETE$ = this.httpManagerService.deleteRequest<ClientInfo>(reqParams.apiOptions, reqParams.path)
380
- .pipe(
381
- // tap((data) => console.log("API DELETE response", data)),
382
- catchError(error => {
383
- return throwError(() => this.errorHandling(error, 'DELETE'))
384
- })
385
- )
386
-
387
- }
388
-
389
- onStreamPostRequest() {
390
-
391
- if (!this.isValid) return
392
-
393
- const reqParams = this.compileRequest()
394
-
395
- let payload = {}
396
- let apiPath: string[] = reqParams.path
397
- let apiOptions = reqParams.apiOptions
398
- let responseMapper: (items: any) => any = (items) => items.response
399
-
400
- if (this.AIType === 0) {
401
-
402
- // API request
403
- payload = { prompt: this.questionControl.value }
404
-
405
- } else {
406
-
407
- // Local Ollama request
408
- apiOptions.server = "api"
409
- apiPath = ["generate"]
410
- apiOptions.stream = true
411
- apiOptions.streamType = this.streamType as StreamType
412
- payload = {
413
- model: "phi3:latest",
414
- prompt: this.questionControl.value,
415
- stream: true,
416
- }
417
-
418
- responseMapper = (items) => items.map((word: any) => word.response).flat().join('')
419
-
420
- }
421
-
422
- this.requestParams.STREAM = apiOptions
423
- this.STREAM_AI$ = EMPTY
424
- this.STREAM_AI_error$.next('')
425
-
426
- this.STREAM_AI$ = this.httpManagerService.postRequest<any>(payload, apiOptions, apiPath).pipe(
427
- map(responseMapper),
428
- tap(() => this.questionControl.reset()),
429
- catchError(error => throwError(() => this.errorHandling(error, 'STREAM')))
430
- )
431
-
432
- }
433
-
434
-
435
- onStreamRequest() {
436
-
437
- if(!this.isValid) return
438
-
439
- const reqParams = this.compileRequest()
440
-
441
- reqParams.apiOptions.stream = true
442
- reqParams.apiOptions.streamType = StreamType.NDJSON
443
-
444
- this.requestParams.GET = reqParams.apiOptions
445
- this.STREAM$ = this.httpManagerService.getRequest<ClientInfo[]>(reqParams.apiOptions, reqParams.path)
446
- .pipe(
447
- tap((data) => {
448
- console.log("API STREAM response", data)
449
- if (data && data.length > 0) {
450
- this.updateDisplayedColumns(data)
451
- }
452
- }),
453
- catchError(error => {
454
- return throwError(() => this.errorHandling(error, 'STREAM'))
455
- })
456
- )
457
-
458
- }
459
-
460
- onDownloadCompleted() {
461
-
462
- const message = "Download Completed"
463
-
464
- const display = ToastDisplay.adapt({
465
- message,
466
- action: 'Ok',
467
- color: ToastColors.SUCCESS,
468
- icon: 'sentiment_satisfied_alt',
469
- })
470
-
471
- this.toastMessage.toastMessage(display)
472
- }
473
-
474
- onDownloadFailed(err: string) {
475
-
476
- const message = "Download Failed"
477
-
478
- const display = ToastDisplay.adapt({
479
- message,
480
- action: 'Ok',
481
- color: ToastColors.ERROR,
482
- icon: 'warning',
483
- })
484
-
485
- this.toastMessage.toastMessage(display)
486
- }
487
-
488
- errorHandling(err: any, type: string) {
489
- if(type === 'GET') this.GET_error$.next(err.message)
490
- if(type === 'POST') this.POST_error$.next(err.message)
491
- if(type === 'PUT') this.PUT_error$.next(err.message)
492
- if(type === 'DELETE') this.DELETE_error$.next(err.message)
493
- if(type === 'STREAM') this.STREAM_error$.next(err.message)
494
- }
495
-
496
- onSelectAIType(type: number) {
497
- this.AIType = type
498
- }
499
-
500
- // ═══════════════════════════════════════════════════════════════════════════
501
- // BATCH REQUEST DEMO METHODS
502
- // ═══════════════════════════════════════════════════════════════════════════
503
-
504
- /**
505
- * Execute parallel batch request - fetch 5 users from JSONPlaceholder with individual states
506
- */
507
- onExecuteParallelBatch() {
508
- this.isParallelLoading = true
509
- this.parallelError = undefined
510
- this.parallelExecutionTime = undefined
511
- this.parallelResults = undefined
512
-
513
- const requests = this.createBatchRequests(
514
- 'https://jsonplaceholder.typicode.com',
515
- ['users'],
516
- [1, 2, 3, 4, 5]
517
- )
518
-
519
- const startTime = performance.now()
520
-
521
- this.httpManagerService.getParallelRequest(requests, BatchOptions.adapt({
522
- concurrency: 3,
523
- ignoreErrors: true,
524
- logErrors: true
525
- })).pipe(
526
- tap(results => {
527
- this.parallelResults = results
528
- this.parallelExecutionTime = performance.now() - startTime
529
- this.isParallelLoading = false
530
- }),
531
- catchError(error => {
532
- this.parallelError = error.message || 'Parallel batch failed'
533
- this.isParallelLoading = false
534
- return throwError(() => error)
535
- })
536
- ).subscribe()
537
- }
538
-
539
- /**
540
- * Execute sequential batch request - fetch 5 todos from JSONPlaceholder with individual states
541
- */
542
- onExecuteSequentialBatch() {
543
- this.isSequentialLoading = true
544
- this.sequentialError = undefined
545
- this.sequentialExecutionTime = undefined
546
- this.sequentialResults = undefined
547
-
548
- const requests = this.createBatchRequests(
549
- 'https://jsonplaceholder.typicode.com',
550
- ['todos'],
551
- [1, 2, 3, 4, 5]
552
- )
553
-
554
- const startTime = performance.now()
555
-
556
- this.httpManagerService.getSequentialRequest(requests, BatchOptions.adapt({
557
- stopOnError: false,
558
- ignoreErrors: true,
559
- logErrors: true
560
- })).pipe(
561
- tap(results => {
562
- this.sequentialResults = results
563
- this.sequentialExecutionTime = performance.now() - startTime
564
- this.isSequentialLoading = false
565
- }),
566
- catchError(error => {
567
- this.sequentialError = error.message || 'Sequential batch failed'
568
- this.isSequentialLoading = false
569
- return throwError(() => error)
570
- })
571
- ).subscribe()
572
- }
573
-
574
- /**
575
- * Execute stream batch request - fetch 5 posts with real-time state updates
576
- */
577
- onExecuteStreamBatch() {
578
- this.isStreamLoading = true
579
- this.streamError = undefined
580
- this.streamExecutionTime = undefined
581
- this.streamBatchStates = []
582
- this.streamProgress = undefined
583
-
584
- const requests = this.createBatchRequests(
585
- 'https://jsonplaceholder.typicode.com',
586
- ['posts'],
587
- [1, 2, 3, 4, 5]
588
- )
589
-
590
- const startTime = performance.now()
591
-
592
- this.httpManagerService.getBatchRequestsStream(requests, {
593
- mode: 'parallel',
594
- concurrency: 3,
595
- stopOnError: false,
596
- ignoreErrors: true,
597
- logErrors: true
598
- }).pipe(
599
- tap(state => {
600
- this.streamBatchStates[state.index] = state
601
- this.streamProgress = calculateBatchProgress(this.streamBatchStates.filter(s => s !== undefined) as BatchRequestState<any>[]);
602
-
603
- if (!state.isPending) {
604
- this.streamExecutionTime = performance.now() - startTime
605
- }
606
-
607
- this.isStreamLoading = this.streamBatchStates.some(s => s && s.isPending)
608
- }),
609
- catchError(error => {
610
- this.streamError = error.message || 'Stream batch failed'
611
- this.isStreamLoading = false
612
- return throwError(() => error)
613
- })
614
- ).subscribe()
615
- }
616
-
617
- /**
618
- * Type guard for pending state
619
- */
620
- isPendingState(state: BatchRequestState<any>): boolean {
621
- return state.isPending === true
622
- }
623
-
624
- /**
625
- * Type guard for success state
626
- */
627
- isSuccessState(state: BatchRequestState<any>): boolean {
628
- return state.isPending === false && state.data !== undefined
629
- }
630
-
631
- /**
632
- * Type guard for error state
633
- */
634
- isErrorState(state: BatchRequestState<any>): boolean {
635
- return state.isPending === false && state.error !== undefined
636
- }
637
-
638
- /**
639
- * Helper to create batch requests from IDs
640
- */
641
- private createBatchRequests(
642
- baseUrl: string,
643
- basePath: string[],
644
- ids: number[]
645
- ): ApiRequest[] {
646
- return ids.map(id =>
647
- ApiRequest.adapt({
648
- server: baseUrl,
649
- path: [...basePath, id]
650
- })
651
- )
652
- }
653
-
654
- /**
655
- * Check if result is successful (not undefined)
656
- */
657
- isSuccess(result: any): boolean {
658
- return result !== undefined && result !== null
659
- }
660
-
661
- /**
662
- * Format execution time for display
663
- */
664
- formatTime(ms: number): string {
665
- if (ms < 1000) {
666
- return `${Math.round(ms)}ms`
667
- }
668
- return `${(ms / 1000).toFixed(2)}s`
669
- }
670
-
671
- /**
672
- * Get success count from results array
673
- */
674
- getSuccessCount(results?: any[]): number {
675
- if (!results) return 0
676
- return results.filter(r => r !== undefined).length
677
- }
678
-
679
- /**
680
- * Get failure count from results array
681
- */
682
- getFailureCount(results?: any[]): number {
683
- if (!results) return 0
684
- return results.filter(r => r === undefined).length
685
- }
686
-
687
- }