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,622 +0,0 @@
1
- <div style="margin: 2rem;">
2
-
3
- <h2>
4
- HTTP Request Manager
5
- </h2>
6
-
7
- <div [formGroup]="requestForm" style="margin-top: 2rem;">
8
- <div style="display: flex; gap: .5rem">
9
- <mat-form-field appearance="outline">
10
- <mat-label>Adapter (Model)</mat-label>
11
- <mat-select formControlName="adapter" #adapterSelect>
12
- <mat-option>None</mat-option>
13
- @for (adapter of sampleAdaptors; track adapter) {
14
- <mat-option [value]="adapter.value">
15
- {{adapter.label}}
16
- </mat-option>
17
- }
18
- </mat-select>
19
- </mat-form-field>
20
- <mat-form-field appearance="outline">
21
- <mat-label>Mapper (Model)</mat-label>
22
- <mat-select formControlName="mapper" #mapperSelect>
23
- <mat-option>None</mat-option>
24
- @for (mapper of sampleMappers; track mapper) {
25
- <mat-option [value]="mapper.value">
26
- {{mapper.label}}
27
- </mat-option>
28
- }
29
- </mat-select>
30
- </mat-form-field>
31
- </div>
32
- @if (adapterSelect.value || mapperSelect.value) {
33
- <div style="display: flex; margin-bottom: 2rem;">
34
- <div style="flex:1" class="box">
35
- <h3>Adapter (Incoming)</h3>
36
- @if (adapterSelect.value) {
37
- <div>
38
- {{ props(adapterSelect.value) | json }}
39
- </div>
40
- } @else {
41
- No Transformation
42
- }
43
- </div>
44
- <div style="flex:1" class="box">
45
- <h3>Mapper (Outgoing)</h3>
46
- @if (mapperSelect.value) {
47
- <div>
48
- {{ props(mapperSelect.value) | json }}
49
- </div>
50
- } @else {
51
- No Transformation
52
- }
53
- </div>
54
- </div>
55
- }
56
- <div>
57
- <mat-form-field appearance="outline">
58
- <mat-label>RestPath (/ delimited)</mat-label>
59
- <input matInput placeholder="clients/list" formControlName="path">
60
- </mat-form-field>
61
- </div>
62
- <div>
63
- <div formArrayName="headers">
64
- @for (task of headers.controls; track task; let i = $index) {
65
- <div [formGroupName]="i">
66
- <div style="display: flex; gap: .5rem">
67
- <mat-form-field appearance="outline">
68
- <mat-label>Key</mat-label>
69
- <input matInput placeholder="authentication" formControlName="key">
70
- </mat-form-field>
71
- <mat-form-field appearance="outline" style="flex:1">
72
- <mat-label>Value</mat-label>
73
- <input matInput placeholder="sample" formControlName="value">
74
- </mat-form-field>
75
- <div style="margin-top: .5rem;">
76
- <button mat-icon-button (click)="removeHeader(i)">
77
- <mat-icon>close</mat-icon>
78
- </button>
79
- </div>
80
- </div>
81
- </div>
82
- }
83
- </div>
84
- <button mat-stroked-button (click)="addHeader()" class="btn">Add Header</button>
85
- </div>
86
- <div style="margin-top: 2rem; display: flex; flex-direction:column; gap: 1rem;">
87
- <div>
88
- <mat-slide-toggle #failedState>Retry on Failed</mat-slide-toggle>
89
- @if (failedState.checked) {
90
- <div style="display: flex; gap: .5rem; margin-top: 1rem;" formGroupName="retry">
91
- <mat-form-field appearance="outline">
92
- <mat-label>#of Times</mat-label>
93
- <input matInput placeholder="3" formControlName="times" value="3">
94
- </mat-form-field>
95
- <mat-form-field appearance="outline">
96
- <mat-label>Delay Until Next</mat-label>
97
- <input matInput placeholder="3" formControlName="delay" value="3">
98
- </mat-form-field>
99
- </div>
100
- }
101
- </div>
102
- <div>
103
- <mat-slide-toggle #pollingState>Polling</mat-slide-toggle>
104
- @if (pollingState.checked) {
105
- <div>
106
- <mat-form-field appearance="outline" style="margin-top: 1rem">
107
- <mat-label>#of Seconds</mat-label>
108
- <input matInput placeholder="3" formControlName="polling" value="3">
109
- </mat-form-field>
110
- </div>
111
- }
112
- </div>
113
- </div>
114
- </div>
115
-
116
- <div style="margin-bottom: 1rem; margin-top: 2rem;">
117
- @if ((isPending$ | async)) {
118
- <mat-progress-bar mode="indeterminate"
119
- ></mat-progress-bar>
120
- }
121
- @if (pollingState.checked && !(isPending$ | async)) {
122
- <mat-progress-bar mode="determinate"
123
- [value]="(this.countdown$ | async)"
124
- ></mat-progress-bar>
125
- }
126
- </div>
127
-
128
- <div style="margin-top: 1rem">
129
- <mat-divider></mat-divider>
130
- </div>
131
-
132
- <div style="margin-top: 2rem">
133
- <div style="display: flex;">
134
- <h2 style="flex:1">GET Request</h2>
135
- <div>
136
- <button mat-raised-button (click)="onGetRequest()" class="btn">Request</button>
137
- </div>
138
- </div>
139
-
140
- @if ((GET_error$ | async); as get_error) {
141
- <div style="margin-top: .5rem;">
142
- <mat-error>{{ get_error }}</mat-error>
143
- </div>
144
- }
145
-
146
- @if ((GET$ | async); as dataRecord) {
147
- <div style="margin-top: 1rem;">
148
- <!-- <div [innerHTML]="(GET$ | async) | jsonv"></div> -->
149
- {{ dataRecord | json }}
150
- </div>
151
- }
152
-
153
- </div>
154
-
155
- <div style="margin-top: 2rem">
156
- <mat-divider></mat-divider>
157
- </div>
158
-
159
- <div style="margin-top: 2rem">
160
- <div style="display: flex;">
161
- <h2 style="flex:1">POST Request</h2>
162
- <div>
163
- <button mat-raised-button (click)="onCreateRequest()" class="btn">Request</button>
164
- </div>
165
- </div>
166
-
167
- @if ((POST_error$ | async); as post_error) {
168
- <div style="margin-top: .5rem;">
169
- <mat-error>{{ post_error }}</mat-error>
170
- </div>
171
- }
172
-
173
- @if ((POST$ | async); as dataRecord) {
174
- <div style="margin-top: 1rem;">
175
- <!-- <div [innerHTML]="(POST$ | async) | jsonv"></div> -->
176
- {{ dataRecord | json }}
177
- </div>
178
- }
179
-
180
- </div>
181
-
182
- <div style="margin-top: 2rem">
183
- <mat-divider></mat-divider>
184
- </div>
185
-
186
- <div style="margin-top: 2rem">
187
- <div style="display: flex;">
188
- <h2 style="flex:1">PUT Request</h2>
189
- <div>
190
- <button mat-raised-button (click)="onUpdateRequest()" class="btn">Request</button>
191
- </div>
192
- </div>
193
-
194
- @if ((PUT_error$ | async); as put_error) {
195
- <div style="margin-top: .5rem;">
196
- <mat-error>{{ put_error }}</mat-error>
197
- </div>
198
- }
199
-
200
- <h3>Include Record ID in the RestPath</h3>
201
-
202
- @if ((PUT$ | async); as dataRecord) {
203
- <div style="margin-top: 1rem;">
204
- <!-- <div [innerHTML]="(PUT$ | async) | jsonv"></div> -->
205
- {{ dataRecord | json }}
206
- </div>
207
- }
208
-
209
- </div>
210
-
211
- <div style="margin-top: 2rem">
212
- <mat-divider></mat-divider>
213
- </div>
214
-
215
- <div style="margin-top: 2rem">
216
- <div style="display: flex;">
217
- <h2 style="flex:1">DELETE Request</h2>
218
- <div>
219
- <button mat-raised-button (click)="onDeleteRequest()" class="btn">Request</button>
220
- </div>
221
- </div>
222
-
223
- <h3>Include Record ID in the RestPath</h3>
224
-
225
- @if ((DELETE_error$ | async); as delete_error) {
226
- <div style="margin-top: .5rem;">
227
- <mat-error>{{ delete_error }}</mat-error>
228
- </div>
229
- }
230
-
231
- @if ((DELETE$ | async); as dataRecord) {
232
- <div style="margin-top: 1rem;">
233
- <!-- <div [innerHTML]="(DELETE$ | async) | jsonv"></div> -->
234
- {{ dataRecord | json }}
235
- </div>
236
- }
237
-
238
- </div>
239
-
240
- <div style="margin-top: 2rem">
241
- <mat-divider></mat-divider>
242
- </div>
243
-
244
- <div style="margin-top: 2rem">
245
- <div style="display: flex;">
246
- <h2 style="flex:1">Streaming GET Request</h2>
247
- <div style="display: flex; gap: 1rem; align-items: center;">
248
- <div style="display: flex; gap: 1rem; align-items: center;">
249
- {{ streamType }}
250
- <button mat-icon-button [matMenuTriggerFor]="menu">
251
- <mat-icon>data_usage</mat-icon>
252
- </button>
253
- </div>
254
- <mat-menu #menu="matMenu">
255
- <button mat-menu-item *ngFor="let item of streamTypes" (click)="onStreamType(item.id)">{{ item.value }}</button>
256
- </mat-menu>
257
- <button mat-raised-button (click)="onStreamRequest()" class="btn">Request</button>
258
- </div>
259
- </div>
260
-
261
- <!-- <div *ngIf="(STREAM_error$ | async) as stream_error" style="margin-top: .5rem;">
262
- <mat-error>{{ stream_error }}</mat-error>
263
- </div> -->
264
-
265
- <div style="margin-top: 1rem;">
266
- @if ((STREAM$ | async); as data) {
267
- <div class="container">
268
- <table mat-table [dataSource]="data" class="mat-elevation-z8">
269
-
270
- <!-- Dynamic columns -->
271
- <ng-container *ngFor="let column of displayedColumns" [matColumnDef]="column">
272
- <th mat-header-cell *matHeaderCellDef> {{ column | titlecase }} </th>
273
- <td mat-cell *matCellDef="let element">
274
- @if (isObject(element[column]); as objValue) {
275
- <pre style="margin: 0; font-size: 0.8em; white-space: pre-wrap;">{{ objValue | json }}</pre>
276
- } @else {
277
- {{ element[column] }}
278
- }
279
- </td>
280
- </ng-container>
281
-
282
- <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
283
- <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
284
- </table>
285
-
286
- <!-- Debug info -->
287
- <div style="margin-top: 1rem; font-size: 0.8em; color: #666;">
288
- Columns: {{ displayedColumns.join(', ') }} | Records: {{ data.length }}
289
- </div>
290
- </div>
291
- }
292
- </div>
293
-
294
- </div>
295
-
296
- <div style="margin-top: 2rem">
297
- <mat-divider></mat-divider>
298
- </div>
299
-
300
- <div style="margin-top: 2rem">
301
- <!-- Parallel Requests Section -->
302
- <div>
303
- <div style="display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem;">
304
- <h2 style="flex: 1; margin: 0;">Parallel Requests</h2>
305
- <button
306
- mat-raised-button
307
- color="primary"
308
- (click)="onExecuteParallelBatch()"
309
- [disabled]="isParallelLoading"
310
- style="min-width: 200px;">
311
- <mat-icon>sync</mat-icon>
312
- <span style="margin-left: 8px;">
313
- {{ isParallelLoading ? 'Loading...' : 'Fetch 5 Users' }}
314
- </span>
315
- </button>
316
- </div>
317
-
318
- <!-- Loading Indicator -->
319
- @if (isParallelLoading) {
320
- <div style="margin: 1rem 0;">
321
- <mat-progress-bar mode="indeterminate"></mat-progress-bar>
322
- <p style="margin-top: 0.5rem; color: #666;">
323
- Executing parallel requests (concurrency: 3)...
324
- </p>
325
- </div>
326
- }
327
-
328
- <!-- Results -->
329
- @if (parallelResults) {
330
- <div style="margin: 1rem 0;">
331
- <mat-card appearance="outlined">
332
- <mat-card-content>
333
- <div style="display: grid; gap: 0.5rem;">
334
- @for (result of parallelResults; track $index; let i = $index) {
335
- <div
336
- style="padding: 0.75rem; border-radius: 4px; border: 1px solid;
337
- {{ result ? 'background: #e3f2fd; border-color: #2196f3;' :
338
- 'background: #ffebee; border-color: #f44336;' }}">
339
- @if (result) {
340
- <div style="display: flex; align-items: center; gap: 0.5rem; justify-content: space-between;">
341
- <div style="display: flex; align-items: center; gap: 0.5rem;">
342
- <mat-icon style="color: #2196f3; font-size: 18px;">check_circle</mat-icon>
343
- <strong>User #{{ result.id }}:</strong>
344
- <span>{{ result.name }}</span>
345
- </div>
346
- <span style="color: #2196f3; font-weight: bold;">Complete</span>
347
- </div>
348
- } @else {
349
- <div style="display: flex; align-items: center; gap: 0.5rem; justify-content: space-between;">
350
- <div style="display: flex; align-items: center; gap: 0.5rem;">
351
- <mat-icon style="color: #f44336; font-size: 18px;">error</mat-icon>
352
- <strong>Request {{ i + 1 }}:</strong>
353
- <span>Failed</span>
354
- </div>
355
- <span style="color: #f44336; font-weight: bold;">Error</span>
356
- </div>
357
- }
358
- </div>
359
- }
360
- </div>
361
- </mat-card-content>
362
- </mat-card>
363
- </div>
364
- }
365
-
366
- <!-- Execution Metrics -->
367
- @if (parallelExecutionTime !== undefined) {
368
- <div style="background: #f5f5f5; padding: 1rem; border-radius: 4px; margin: 1rem 0;">
369
- <div style="display: flex; gap: 2rem;">
370
- <div>
371
- <strong>⏱Execution Time:</strong>
372
- <span style="margin-left: 0.5rem; color: #4caf50;">
373
- {{ formatTime(parallelExecutionTime) }}
374
- </span>
375
- </div>
376
- <div>
377
- <strong>Mode:</strong>
378
- <span style="margin-left: 0.5rem;">Parallel</span>
379
- </div>
380
- </div>
381
- </div>
382
- }
383
-
384
- <!-- Error Display -->
385
- @if (parallelError) {
386
- <div style="margin-top: 1rem;">
387
- <mat-error>{{ parallelError }}</mat-error>
388
- </div>
389
- }
390
- </div>
391
-
392
- <!-- Sequential Requests Section -->
393
- <div>
394
- <div style="display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem;">
395
- <h2 style="flex: 1; margin: 0;">Sequential Requests</h2>
396
- <button
397
- mat-raised-button
398
- color="accent"
399
- (click)="onExecuteSequentialBatch()"
400
- [disabled]="isSequentialLoading"
401
- style="min-width: 200px;">
402
- <mat-icon>timeline</mat-icon>
403
- <span style="margin-left: 8px;">
404
- {{ isSequentialLoading ? 'Loading...' : 'Fetch 5 Todos' }}
405
- </span>
406
- </button>
407
- </div>
408
-
409
- <!-- Loading Indicator -->
410
- @if (isSequentialLoading) {
411
- <div style="margin: 1rem 0;">
412
- <mat-progress-bar mode="indeterminate"></mat-progress-bar>
413
- <p style="margin-top: 0.5rem; color: #666;">
414
- Executing sequential requests (one at a time)...
415
- </p>
416
- </div>
417
- }
418
-
419
- <!-- Results -->
420
- @if (sequentialResults) {
421
- <div style="margin: 1rem 0;">
422
- <mat-card appearance="outlined">
423
- <mat-card-content>
424
- <div style="display: grid; gap: 0.5rem;">
425
- @for (result of sequentialResults; track $index; let i = $index) {
426
- <div
427
- style="padding: 0.75rem; border-radius: 4px; border: 1px solid;
428
- {{ result ? 'background: #e3f2fd; border-color: #2196f3;' :
429
- 'background: #ffebee; border-color: #f44336;' }}">
430
- @if (result) {
431
- <div style="display: flex; align-items: center; gap: 0.5rem; justify-content: space-between;">
432
- <div style="display: flex; align-items: center; gap: 0.5rem;">
433
- <mat-icon style="color: #2196f3; font-size: 18px;">check_circle</mat-icon>
434
- <strong>Todo #{{ result.id }}:</strong>
435
- <span style="flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
436
- {{ result.title }}
437
- </span>
438
- </div>
439
- </div>
440
- } @else {
441
- <div style="display: flex; align-items: center; gap: 0.5rem; justify-content: space-between;">
442
- <div style="display: flex; align-items: center; gap: 0.5rem;">
443
- <mat-icon style="color: #f44336; font-size: 18px;">error</mat-icon>
444
- <strong>Request {{ i + 1 }}:</strong>
445
- <span>Failed</span>
446
- </div>
447
- <span style="color: #f44336; font-weight: bold;">Error</span>
448
- </div>
449
- }
450
- </div>
451
- }
452
- </div>
453
- </mat-card-content>
454
- </mat-card>
455
- </div>
456
- }
457
-
458
- <!-- Execution Metrics -->
459
- @if (sequentialExecutionTime !== undefined) {
460
- <div style="background: #f5f5f5; padding: 1rem; border-radius: 4px; margin: 1rem 0;">
461
- <div style="display: flex; gap: 2rem;">
462
- <div>
463
- <strong>Execution Time:</strong>
464
- <span style="margin-left: 0.5rem; color: #4caf50;">
465
- {{ formatTime(sequentialExecutionTime) }}
466
- </span>
467
- </div>
468
- <div>
469
- <strong>Mode:</strong>
470
- <span style="margin-left: 0.5rem;">Sequential</span>
471
- </div>
472
- </div>
473
- </div>
474
- }
475
- </div>
476
-
477
- <!-- Stream Mode Section -->
478
- <div>
479
- <div style="display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem;">
480
- <h2 style="flex: 1; margin: 0;">Stream Mode (Real-time States)</h2>
481
- <button
482
- mat-raised-button
483
- color="primary"
484
- (click)="onExecuteStreamBatch()"
485
- [disabled]="isStreamLoading"
486
- style="min-width: 200px;">
487
- <mat-icon>auto_awesome</mat-icon>
488
- <span style="margin-left: 8px;">
489
- {{ isStreamLoading ? 'Loading...' : 'Fetch 5 Posts' }}
490
- </span>
491
- </button>
492
- </div>
493
-
494
- <!-- Loading Indicator -->
495
- @if (isStreamLoading) {
496
- <div style="margin: 1rem 0;">
497
- <mat-progress-bar mode="indeterminate"></mat-progress-bar>
498
- <p style="margin-top: 0.5rem; color: #666;">
499
- Executing parallel requests with real-time state updates...
500
- </p>
501
- </div>
502
- }
503
-
504
- <!-- Progress Bar -->
505
- @if (streamProgress) {
506
- <div style="background: #f5f5f5; padding: 1rem; border-radius: 4px; margin: 1rem 0;">
507
- <div style="display: flex; gap: 2rem; margin-bottom: 0.5rem;">
508
- <div>
509
- <strong>Execution Time:</strong>
510
- <span style="margin-left: 0.5rem; color: #4caf50;">
511
- {{ formatTime(streamExecutionTime || 0) }}
512
- </span>
513
- </div>
514
- <div>
515
- <strong>Progress:</strong>
516
- <span style="margin-left: 0.5rem;">
517
- {{ streamProgress.completed }} / {{ streamProgress.total }} completed
518
- </span>
519
- </div>
520
- <div>
521
- <strong>Pending:</strong>
522
- <span style="margin-left: 0.5rem;">
523
- {{ streamProgress.pending }}
524
- </span>
525
- </div>
526
- <div>
527
- <strong>Failed:</strong>
528
- <span style="margin-left: 0.5rem;">
529
- {{ streamProgress.failed }}
530
- </span>
531
- </div>
532
- </div>
533
- <mat-progress-bar
534
- mode="determinate"
535
- [value]="streamProgress.percent"
536
- color="accent">
537
- </mat-progress-bar>
538
- <p style="margin-top: 0.5rem; text-align: right; color: #666;">
539
- {{ streamProgress.percent }}%
540
- </p>
541
- </div>
542
- }
543
-
544
- <!-- Error Display -->
545
- @if (streamError) {
546
- <div style="margin-top: 1rem;">
547
- <mat-error>{{ streamError }}</mat-error>
548
- </div>
549
- }
550
-
551
- <!-- Individual Request States -->
552
- @if (streamBatchStates.length > 0) {
553
- <div style="margin-top: 1rem;">
554
- <mat-card appearance="outlined">
555
- <mat-card-content>
556
- <div style="display: grid; gap: 0.5rem;">
557
- @for (state of filteredStreamStates; track state.index; let i = $index) {
558
- <div
559
- style="padding: 0.75rem; border-radius: 4px; border: 1px solid;
560
- {{ isPendingState(state) ? 'background: #fff3e0; border-color: #ff9800;' :
561
- isSuccessState(state) ? 'background: #e3f2fd; border-color: #2196f3;' :
562
- 'background: #ffebee; border-color: #f44336;' }}">
563
- @if (isPendingState(state)) {
564
- <div style="display: flex; align-items: center; gap: 0.5rem;">
565
- <mat-spinner diameter="16" style="margin-right: 0.5rem;"></mat-spinner>
566
- <strong>Request {{ state.index + 1 }}:</strong>
567
- <span>Loading...</span>
568
- </div>
569
- } @else if (isSuccessState(state)) {
570
- <div style="display: flex; align-items: center; gap: 0.5rem;">
571
- <mat-icon style="color: #2196f3; font-size: 18px;">check_circle</mat-icon>
572
- <strong>Post #{{ state.data.id }}:</strong>
573
- <span style="flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
574
- {{ state.data.title }}
575
- </span>
576
- </div>
577
- } @else {
578
- <div style="display: flex; align-items: center; gap: 0.5rem;">
579
- <mat-icon style="color: #f44336; font-size: 18px;">error</mat-icon>
580
- <strong>Request {{ state.index + 1 }}:</strong>
581
- <span>Failed</span>
582
- <mat-chip style="margin-left: auto; font-size: 0.8em; background: #f44336; color: white;">
583
- Error
584
- </mat-chip>
585
- </div>
586
- }
587
- </div>
588
- }
589
- </div>
590
- </mat-card-content>
591
- </mat-card>
592
- </div>
593
- }
594
- </div>
595
-
596
- <!-- Comparison Info -->
597
- <div style="padding: 1rem; background: whitesmoke; border-radius: 4px; border: 1px solid #ccc;">
598
- <h4 style="margin-top: 0;">Key Differences</h4>
599
- <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
600
- <div>
601
- <strong>Parallel:</strong>
602
- <ul style="margin: 0.5rem 0 0 1rem; padding: 0;">
603
- <li>Faster execution (concurrent)</li>
604
- <li>Multiple requests simultaneously</li>
605
- <li>Results may complete out of order</li>
606
- <li>Best for: Independent requests</li>
607
- </ul>
608
- </div>
609
- <div>
610
- <strong>Sequential:</strong>
611
- <ul style="margin: 0.5rem 0 0 1rem; padding: 0;">
612
- <li>Slower execution (one-by-one)</li>
613
- <li>Requests execute in order</li>
614
- <li>Results always in request order</li>
615
- <li>Best for: Dependent requests</li>
616
- </ul>
617
- </div>
618
- </div>
619
- </div>
620
- </div>
621
-
622
- </div>