http-request-manager 18.15.32 → 18.15.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/README.md +2 -0
  2. package/TEST_COVERAGE_SUMMARY.md +458 -0
  3. package/ng-package.json +8 -0
  4. package/package.json +5 -13
  5. package/src/docs/ADVANCED_WEBSOCKET.md +633 -0
  6. package/src/docs/ARCHITECTURE.md +633 -0
  7. package/src/docs/BATCH_REQUEST_README.md +467 -0
  8. package/src/docs/COMPLETE_API_REFERENCE.md +1037 -0
  9. package/src/docs/DATABASE_README.md +1195 -0
  10. package/src/docs/ENCRYPTION_README.md +403 -0
  11. package/src/docs/HTTP_MANAGER_README.md +628 -0
  12. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +654 -0
  13. package/src/docs/HTTP_STATE_MANAGER_README.md +1391 -0
  14. package/src/docs/INTERCEPTOR_README.md +549 -0
  15. package/src/docs/LOCAL_STORAGE_README.md +1056 -0
  16. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +338 -0
  17. package/src/docs/LOGGER_README.md +310 -0
  18. package/src/docs/MESSAGE_TRACKER_README.md +518 -0
  19. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +563 -0
  20. package/src/docs/MODELS_README.md +1264 -0
  21. package/src/docs/SIGNAL_SERVICES_README.md +238 -0
  22. package/src/docs/SQL_DIXIE_README.md +574 -0
  23. package/src/docs/STORE_STATE_MANAGER_README.md +556 -0
  24. package/src/docs/STORE_STATE_SIGNALS_README.md +600 -0
  25. package/src/docs/UPLOAD_REQUEST_README.md +324 -0
  26. package/src/docs/UTILS_README.md +1604 -0
  27. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +799 -0
  28. package/src/docs/WEBSOCKET_SIGNALS_README.md +641 -0
  29. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +201 -0
  30. package/src/docs/WS_MANAGER_README.md +613 -0
  31. package/src/lib/http-request-manager.module.ts +147 -0
  32. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +116 -0
  33. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  34. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +255 -0
  35. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +123 -0
  36. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  37. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +53 -0
  38. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  39. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  40. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +208 -0
  41. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +200 -0
  42. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +17 -0
  43. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +214 -0
  44. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +53 -0
  45. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +60 -0
  46. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +72 -0
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +28 -0
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +10 -0
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +29 -0
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +100 -0
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +22 -0
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +8 -0
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +19 -0
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +26 -0
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +30 -0
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +19 -0
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +25 -0
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +19 -0
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +24 -0
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +30 -0
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +49 -0
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +33 -0
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +279 -0
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +24 -0
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +461 -0
  66. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  67. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  68. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  77. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  78. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  79. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  85. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +622 -0
  86. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +106 -0
  87. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +687 -0
  88. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +418 -0
  89. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  90. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +576 -0
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +89 -0
  92. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +119 -0
  93. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  94. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +3 -0
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +16 -0
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +3 -0
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +16 -0
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +31 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +94 -0
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +41 -0
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +203 -0
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +144 -0
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +11 -0
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +102 -0
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +40 -0
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +230 -0
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +30 -0
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +172 -0
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +31 -0
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +239 -0
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +31 -0
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +32 -0
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +84 -0
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +40 -0
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +3 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +62 -0
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +83 -0
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +147 -0
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +168 -0
  122. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +53 -0
  123. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  124. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +72 -0
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +28 -0
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +10 -0
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +100 -0
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +26 -0
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +30 -0
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +19 -0
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +25 -0
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +19 -0
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +24 -0
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +30 -0
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +49 -0
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +33 -0
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +380 -0
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +24 -0
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +410 -0
  144. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +28 -0
  145. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +49 -0
  146. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +23 -0
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +36 -0
  149. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +161 -0
  150. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +1 -0
  151. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +30 -0
  152. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +89 -0
  153. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +160 -0
  154. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +101 -0
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +136 -0
  156. package/src/lib/index.ts +3 -0
  157. package/src/lib/interceptors/credentials.interceptor.ts +16 -0
  158. package/src/lib/interceptors/index.ts +6 -0
  159. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  160. package/src/lib/interceptors/models/index.ts +2 -0
  161. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  162. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  163. package/src/lib/interceptors/request-header.interceptor.ts +56 -0
  164. package/src/lib/message-display/README.md +509 -0
  165. package/src/lib/message-display/index.ts +4 -0
  166. package/src/lib/message-display/models/action.model.ts +27 -0
  167. package/src/lib/message-display/models/communication-message.model.ts +77 -0
  168. package/src/lib/message-display/models/display-config.model.ts +35 -0
  169. package/src/lib/message-display/models/display-rule.interface.ts +28 -0
  170. package/src/lib/message-display/models/display-strategy.interface.ts +8 -0
  171. package/src/lib/message-display/models/index.ts +6 -0
  172. package/src/lib/message-display/models/slide.model.ts +24 -0
  173. package/src/lib/message-display/rules/default-display-rules.ts +35 -0
  174. package/src/lib/message-display/services/message-display-router.service.ts +63 -0
  175. package/src/lib/message-display/strategies/snackbar.strategy.ts +46 -0
  176. package/src/lib/models/batch-options.model.ts +33 -0
  177. package/src/lib/models/batch-progress.model.ts +19 -0
  178. package/src/lib/models/batch-request-state.model.ts +40 -0
  179. package/src/lib/models/batch-result.model.ts +30 -0
  180. package/src/lib/models/config-http-options.model.ts +45 -0
  181. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  182. package/src/lib/models/config-options.model.ts +27 -0
  183. package/src/lib/models/config-token.model.ts +9 -0
  184. package/src/lib/models/data-type.enum.ts +5 -0
  185. package/src/lib/models/database-storage.model.ts +24 -0
  186. package/src/lib/models/index.ts +16 -0
  187. package/src/lib/models/retry-options.model.ts +22 -0
  188. package/src/lib/models/upload-validation-error.model.ts +46 -0
  189. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +246 -0
  190. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +31 -0
  191. package/src/lib/services/SQL-DixieJS service/index.ts +4 -0
  192. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +52 -0
  193. package/src/lib/services/SQL-DixieJS service/models/index.ts +3 -0
  194. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +13 -0
  195. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +3 -0
  196. package/src/lib/services/SQL-DixieJS service/query-planner.ts +284 -0
  197. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +217 -0
  198. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +35 -0
  199. package/src/lib/services/database-manager-service/database.manager.service.ts +384 -0
  200. package/src/lib/services/database-manager-service/db.storage.service.ts +240 -0
  201. package/src/lib/services/database-manager-service/index.ts +4 -0
  202. package/src/lib/services/database-manager-service/models/index.ts +2 -0
  203. package/src/lib/services/database-manager-service/models/table-schema.ts +33 -0
  204. package/src/lib/services/index.ts +20 -0
  205. package/src/lib/services/local-storage-manager-service/index.ts +4 -0
  206. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  207. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +567 -0
  208. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +67 -0
  209. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +437 -0
  210. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  211. package/src/lib/services/local-storage-manager-service/models/index.ts +6 -0
  212. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +35 -0
  213. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  214. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +32 -0
  215. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  216. package/src/lib/services/request-manager-services/README.md +282 -0
  217. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +674 -0
  218. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +353 -0
  219. package/src/lib/services/request-manager-services/http-manager.service.ts +727 -0
  220. package/src/lib/services/request-manager-services/index.ts +8 -0
  221. package/src/lib/services/request-manager-services/request-signals.service.ts +372 -0
  222. package/src/lib/services/request-manager-services/request.service.ts +435 -0
  223. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  224. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  225. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +4 -0
  226. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +35 -0
  227. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +468 -0
  228. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +665 -0
  229. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +2395 -0
  230. package/src/lib/services/request-manager-state-service/index.ts +3 -0
  231. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +86 -0
  232. package/src/lib/services/request-manager-state-service/models/index.ts +14 -0
  233. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +18 -0
  234. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +21 -0
  235. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +37 -0
  236. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +20 -0
  237. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +23 -0
  238. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +23 -0
  239. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +23 -0
  240. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +24 -0
  241. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +13 -0
  242. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +42 -0
  243. package/src/lib/services/store-state-manager-service/index.ts +4 -0
  244. package/src/lib/services/store-state-manager-service/models/index.ts +3 -0
  245. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +30 -0
  246. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +24 -0
  247. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +169 -0
  248. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +153 -0
  249. package/src/lib/services/utils/app.service.spec.ts +25 -0
  250. package/src/lib/services/utils/app.service.ts +21 -0
  251. package/src/lib/services/utils/encryption/README.md +79 -0
  252. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  253. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  254. package/src/lib/services/utils/encryption/index.ts +5 -0
  255. package/src/lib/services/utils/encryption/random.ts +81 -0
  256. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +106 -0
  257. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  258. package/src/lib/services/utils/headers.service.ts +18 -0
  259. package/src/lib/services/utils/index.ts +9 -0
  260. package/src/lib/services/utils/logger.service.ts +90 -0
  261. package/src/lib/services/utils/models/index.ts +4 -0
  262. package/src/lib/services/utils/models/normalized-request-options.model.ts +24 -0
  263. package/src/lib/services/utils/models/path-tracker-state.model.ts +20 -0
  264. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +24 -0
  265. package/src/lib/services/utils/models/query-tracker-state.model.ts +23 -0
  266. package/src/lib/services/utils/object-merger.service.spec.ts +18 -0
  267. package/src/lib/services/utils/object-merger.service.ts +78 -0
  268. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  269. package/src/lib/services/utils/path-query.service.ts +69 -0
  270. package/src/lib/services/utils/query-params-tracker.service.ts +442 -0
  271. package/src/lib/services/utils/random-color.utils.ts +83 -0
  272. package/src/lib/services/utils/utils.service.spec.ts +165 -0
  273. package/src/lib/services/utils/utils.service.ts +192 -0
  274. package/src/lib/services/ws-manager-service/index.ts +13 -0
  275. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +147 -0
  276. package/src/lib/services/ws-manager-service/message-tracker.service.ts +477 -0
  277. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +29 -0
  278. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +24 -0
  279. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +36 -0
  280. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +6 -0
  281. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +5 -0
  282. package/src/lib/services/ws-manager-service/models/index.ts +10 -0
  283. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +29 -0
  284. package/src/lib/services/ws-manager-service/models/public-message.model.ts +18 -0
  285. package/src/lib/services/ws-manager-service/models/state-message.model.ts +18 -0
  286. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +38 -0
  287. package/src/lib/services/ws-manager-service/services/index.ts +4 -0
  288. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +129 -0
  289. package/src/lib/services/ws-manager-service/services/websocket.service.ts +434 -0
  290. package/src/lib/services/ws-manager-service/websocket-service/index.ts +1 -0
  291. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +716 -0
  292. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +596 -0
  293. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +141 -0
  294. package/src/public-api.ts +19 -0
  295. package/tsconfig.lib.json +34 -0
  296. package/tsconfig.lib.prod.json +10 -0
  297. package/tsconfig.spec.json +14 -0
  298. package/fesm2022/http-request-manager.mjs +0 -13297
  299. package/fesm2022/http-request-manager.mjs.map +0 -1
  300. package/http-request-manager-18.15.32.tgz +0 -0
  301. package/types/http-request-manager.d.ts +0 -3875
@@ -0,0 +1,576 @@
1
+ import { Component, Input, OnInit, ViewChild, inject } from '@angular/core';
2
+
3
+ import { StateManagerDemoService } from './services/state-manager-demo.service';
4
+ import { DatabaseManagerService } from '../../services/database-manager-service/database.manager.service';
5
+ import { FormBuilder, Validators, FormArray } from '@angular/forms';
6
+
7
+ import { Observable, BehaviorSubject, EMPTY, map, tap, catchError, throwError } from 'rxjs';
8
+
9
+ import { ClientInfo } from '../request-manager-demo/models/sample-client-info';
10
+ import { ClientInfoMapper } from '../request-manager-demo/models/sample-mapper-client-info';
11
+ import { AIPrompt } from '../request-manager-demo/models/sample-ai-prompt';
12
+
13
+ import { DataType } from '../../models';
14
+ import { DatabaseStorage } from '../../models/database-storage.model';
15
+ import { HTTPManagerService } from '../../services/request-manager-services/http-manager.service';
16
+ import { ApiRequest } from '../../services/request-manager-state-service/models/api-request.model';
17
+ import { StreamType } from '../../services/request-manager-state-service/models/stream-type.enum';
18
+ import { RequestOptions } from '../../services/request-manager-state-service/models/request-options.model';
19
+
20
+
21
+ @Component({
22
+ selector: 'app-request-manager-state-demo',
23
+ templateUrl: './request-manager-state-demo.component.html',
24
+ styleUrls: ['./request-manager-state-demo.component.scss'],
25
+ providers: [StateManagerDemoService, HTTPManagerService],
26
+ standalone: false
27
+ })
28
+ export class RequestManagerStateDemoComponent implements OnInit {
29
+
30
+ @Input() server = 'http://localhost:8080'
31
+ @Input() adapter?: Function
32
+ @Input() mapper?: Function
33
+
34
+ stateManagerDemoService = inject(StateManagerDemoService)
35
+ databaseManagerService = inject(DatabaseManagerService)
36
+
37
+ displayedColumns: string[] = []
38
+
39
+ // Dynamic columns based on data structure
40
+ getColumnsFromData(data: any[]): string[] {
41
+ if (!data || data.length === 0) {
42
+ return []
43
+ }
44
+
45
+ const firstRecord = data[0]
46
+ if (!firstRecord || typeof firstRecord !== 'object') {
47
+ return []
48
+ }
49
+
50
+ // Extract all keys from the first record, excluding null/undefined
51
+ return Object.keys(firstRecord).filter(key =>
52
+ firstRecord[key] !== null && firstRecord[key] !== undefined
53
+ )
54
+ }
55
+
56
+ // Update displayed columns when data changes
57
+ updateDisplayedColumns(data: any[]): void {
58
+ this.displayedColumns = this.getColumnsFromData(data)
59
+ console.log('[STATE DEMO] Updated columns:', this.displayedColumns)
60
+ }
61
+
62
+ // Helper to check if value is an object
63
+ isObject(value: any): boolean {
64
+ return value !== null && typeof value === 'object' && !Array.isArray(value)
65
+ }
66
+
67
+ getRecordLabel(item: any): string {
68
+ if (!item || typeof item !== 'object') {
69
+ return ''
70
+ }
71
+
72
+ return this.normalizeLabelValue(item.name) || this.normalizeLabelValue(item.first_name)
73
+ }
74
+
75
+ private normalizeLabelValue(value: any): string {
76
+ if (typeof value === 'string') {
77
+ return value
78
+ }
79
+
80
+ if (typeof value === 'number' || typeof value === 'boolean') {
81
+ return String(value)
82
+ }
83
+
84
+ return ''
85
+ }
86
+
87
+ // Helper to safely get data length
88
+ getDataLength(data: any): number {
89
+ if (Array.isArray(data)) {
90
+ return data.length
91
+ }
92
+ return 0
93
+ }
94
+
95
+ selectedRecord$?: Observable<ClientInfo|null>
96
+
97
+ fb = inject(FormBuilder)
98
+
99
+ streamTypes = [
100
+ { id: 'JSON', value: 'json' },
101
+ { id: 'NDJSON', value: 'ndjson' },
102
+ { id: 'AI Streaming', value: 'ai_streaming' },
103
+ { id: 'Event Stream', value: 'event_stream' },
104
+ { id: 'Auto', value: 'auto' },
105
+ ]
106
+
107
+ streamType = 'Auto'
108
+
109
+ httpManagerService = inject(HTTPManagerService)
110
+
111
+ isPending$ = this.stateManagerDemoService.isPending$
112
+ error$ = this.stateManagerDemoService.error$
113
+
114
+ countdown$ = this.httpManagerService.countdown$
115
+
116
+ GET_error$ = new BehaviorSubject<string>('')
117
+ POST_error$ = new BehaviorSubject<string>('')
118
+ PUT_error$ = new BehaviorSubject<string>('')
119
+ DELETE_error$ = new BehaviorSubject<string>('')
120
+
121
+ STREAM_error$ = new BehaviorSubject<string>('')
122
+ STREAM_AI_error$ = new BehaviorSubject<string>('')
123
+
124
+ GET$ = new BehaviorSubject<any>(null)
125
+ POST$ = new BehaviorSubject(null)
126
+ PUT$ = new BehaviorSubject(null)
127
+ DELETE$ = new BehaviorSubject(null)
128
+
129
+ STREAM = new BehaviorSubject(null)
130
+ STREAM$ = this.STREAM.asObservable()
131
+
132
+ STREAM_AI = new BehaviorSubject<{response: string}[]>([])
133
+ STREAM_AI$ = this.STREAM_AI.asObservable()
134
+ .pipe(
135
+ map((items: any) => (items) ? items.map((item: any) => item.response) : []),
136
+ map((items: any) => items.join('\n').trim()),
137
+ )
138
+
139
+ @ViewChild("failedState", { static: true }) failedState: any
140
+ @ViewChild("pollingState", { static: true }) pollingState: any
141
+ @ViewChild("DBState", { static: true }) DBState: any
142
+
143
+ questionControl = this.fb.control("", [Validators.required])
144
+
145
+ requestType = ''
146
+
147
+ prompts: string[] = []
148
+
149
+ AIType = 0
150
+
151
+ get dataObservable$() {
152
+
153
+ switch (this.requestType) {
154
+ case 'GET':
155
+ return this.GET$
156
+
157
+ case 'PUT':
158
+ return this.PUT$
159
+
160
+ case 'POST':
161
+ return this.POST$
162
+
163
+ case 'DELETE':
164
+ return this.DELETE$
165
+
166
+ case 'STREAM':
167
+ return this.STREAM
168
+
169
+ case 'STREAM_AI':
170
+ return this.STREAM_AI
171
+
172
+ default:
173
+ return this.GET$
174
+ break;
175
+ }
176
+
177
+ }
178
+
179
+ sampleClientData = {
180
+ id: 0,
181
+ name: "Old School Dates",
182
+ domain: "osd.com",
183
+ service: "osd",
184
+ spiffe: "osd.com/osd",
185
+ secret: "SMOPECXP-OS4P-USOG-X2II-3XMD1FQDR3IJX",
186
+ created: 1693003138,
187
+ modified: 1693003138,
188
+ icon: "",
189
+ imageFile: "",
190
+ }
191
+
192
+ selectedRecord = this.fb.control(null)
193
+
194
+ requestForm = this.fb.group({
195
+ datatype: this.fb.control('ARRAY'),
196
+ path: this.fb.control<string>("ai/"),
197
+ headers: this.fb.array([]),
198
+ adapter: [null],
199
+ mapper: [null],
200
+ retry: this.fb.group({
201
+ times: [3],
202
+ delay: [3],
203
+ }),
204
+ polling: [3],
205
+ database: this.fb.group({
206
+ table: [''],
207
+ expiresIn: ['1m'],
208
+ ignoreQueryParams: [''],
209
+ queryParamsExpiresIn: ['never'],
210
+ })
211
+ })
212
+
213
+ get hasChanged() {
214
+ return this.requestForm.dirty || this.requestForm.untouched
215
+ }
216
+
217
+ get dataType() {
218
+ return this.requestForm.get("datatype")?.value
219
+ }
220
+
221
+ get database() {
222
+ return this.requestForm.get("database")?.value
223
+ }
224
+
225
+ get retry() {
226
+ return this.requestForm.get("retry")?.value
227
+ }
228
+
229
+ sampleAdaptors = [
230
+ { label: "ClientInfo Basic", value: ClientInfo.adapt },
231
+ { label: "AI Prompt", value: AIPrompt.adapt },
232
+ ]
233
+
234
+ sampleMappers = [
235
+ { label: "Mapper Basic", value: ClientInfoMapper.adapt },
236
+ { label: "AI Prompt", value: AIPrompt.adapt },
237
+ ]
238
+
239
+ get headers(): FormArray {
240
+ return this.requestForm.get('headers') as FormArray
241
+ }
242
+
243
+ get isValid() {
244
+ this.requestForm.markAllAsTouched()
245
+ return this.requestForm.valid
246
+ }
247
+
248
+ // server = `http://sample-endpoint/as/authorization.oauth2`
249
+
250
+ arrayObjectsToObjects = (arr: any[]) => {
251
+ return Array.isArray(arr) ? arr.reduce((obj, item) => Object.assign(obj, { [item.key]: item.value }), {}) : {}
252
+ }
253
+
254
+ props = (adapter: any) => {
255
+ return (adapter) ? adapter() : null
256
+ }
257
+
258
+ constructor() { }
259
+
260
+ ngOnInit() {
261
+
262
+ this.stateManagerDemoService.data$.pipe(
263
+ tap((data) => console.log("API STREAM_AI response", data)),
264
+ )
265
+
266
+ this.error$.pipe(
267
+ tap((data) => {
268
+ debugger
269
+ console.log("API STREAM response", data)
270
+ }),
271
+ catchError(error => {
272
+ return throwError(() => this.errorHandling(error, 'STREAM'))
273
+ })
274
+ )
275
+
276
+ this.selectedRecord.valueChanges
277
+ .subscribe((data: ClientInfo|null) => {
278
+ this.selectedRecord$ = (data) ? this.stateManagerDemoService.selectRecord$(data.id) : EMPTY
279
+ })
280
+
281
+ this.stateManagerDemoService.data$
282
+ .pipe(
283
+ tap((data: any) => {
284
+ // console.log('[COMPONENT] State data received:', data)
285
+
286
+ switch (this.requestType) {
287
+ case 'GET':
288
+ // console.log('[COMPONENT] Updating GET$ with data:', data)
289
+ this.GET$.next(data)
290
+ break;
291
+
292
+ case 'PUT':
293
+ // console.log('[COMPONENT] Updating PUT$ with data:', data)
294
+ this.PUT$.next(data)
295
+ break;
296
+
297
+ case 'POST':
298
+ // console.log('[COMPONENT] Updating POST$ with data:', data)
299
+ this.POST$.next(data)
300
+ break;
301
+
302
+ case 'DELETE':
303
+ // console.log('[COMPONENT] Updating DELETE$ with data:', data)
304
+ this.DELETE$.next(data)
305
+ break;
306
+
307
+ case 'STREAM':
308
+ // console.log('[COMPONENT] Updating STREAM$ with data:', data)
309
+ this.STREAM.next(data)
310
+ // Update table columns dynamically based on streaming data
311
+ if (data && Array.isArray(data) && data.length > 0) {
312
+ this.updateDisplayedColumns(data)
313
+ }
314
+ break;
315
+
316
+ case 'STREAM_AI':
317
+ // console.log('[COMPONENT] Updating STREAM_AI$ with data:', data)
318
+ this.STREAM_AI.next(data)
319
+ break;
320
+
321
+ default:
322
+ // console.log('[COMPONENT] No requestType set, ignoring data')
323
+ break;
324
+ }
325
+
326
+ })
327
+ ).subscribe()
328
+
329
+ }
330
+
331
+ onStreamType(type: string) {
332
+ this.streamType = type
333
+ }
334
+
335
+ addHeader() {
336
+ const header = this.fb.group({
337
+ key: ['', Validators.required],
338
+ value: ['']
339
+ });
340
+ this.headers.push(header)
341
+ }
342
+
343
+ removeHeader(index: number) {
344
+ this.headers.removeAt(index)
345
+ }
346
+
347
+ private parsePathInput(pathInput?: string): any[] {
348
+ const raw = typeof pathInput === 'string' ? pathInput.trim() : ''
349
+
350
+ if (!raw) {
351
+ return []
352
+ }
353
+
354
+ const [rawPath = '', rawQuery = ''] = raw.split('?', 2)
355
+ const pathSegments = rawPath
356
+ .split('/')
357
+ .map((segment) => segment.trim())
358
+ .filter((segment) => segment.length > 0)
359
+ .map((segment) => decodeURIComponent(segment))
360
+
361
+ if (!rawQuery) {
362
+ return pathSegments
363
+ }
364
+
365
+ const searchParams = new URLSearchParams(rawQuery)
366
+ const queryObject: Record<string, any> = {}
367
+
368
+ searchParams.forEach((value, key) => {
369
+ const normalizedKey = key.trim()
370
+
371
+ if (!normalizedKey) {
372
+ return
373
+ }
374
+
375
+ const normalizedValue = this.normalizeQueryValue(value)
376
+
377
+ if (Object.prototype.hasOwnProperty.call(queryObject, normalizedKey)) {
378
+ const currentValue = queryObject[normalizedKey]
379
+ queryObject[normalizedKey] = Array.isArray(currentValue)
380
+ ? [...currentValue, normalizedValue]
381
+ : [currentValue, normalizedValue]
382
+ return
383
+ }
384
+
385
+ queryObject[normalizedKey] = normalizedValue
386
+ })
387
+
388
+ return Object.keys(queryObject).length > 0
389
+ ? [...pathSegments, queryObject]
390
+ : pathSegments
391
+ }
392
+
393
+ private normalizeQueryValue(value: string): string | number | boolean {
394
+ const trimmedValue = value.trim()
395
+ const lowerValue = trimmedValue.toLowerCase()
396
+
397
+ if (lowerValue === 'true') {
398
+ return true
399
+ }
400
+
401
+ if (lowerValue === 'false') {
402
+ return false
403
+ }
404
+
405
+ if (trimmedValue !== '' && !Number.isNaN(Number(trimmedValue))) {
406
+ return Number(trimmedValue)
407
+ }
408
+
409
+ return trimmedValue
410
+ }
411
+
412
+ compileRequest() {
413
+
414
+ const requestParams = this.requestForm.value
415
+
416
+ requestParams.headers = this.arrayObjectsToObjects(
417
+ requestParams.headers || []
418
+ )
419
+
420
+ const pathReq = this.parsePathInput(requestParams.path || '')
421
+
422
+ if (!this.pollingState.checked) requestParams.polling = 0
423
+
424
+ if (!this.failedState.checked) {
425
+ requestParams.retry = { times: 0,delay: 0 }
426
+ }
427
+
428
+ const currentOptions = ApiRequest.adapt(requestParams)
429
+ currentOptions.path = []
430
+ currentOptions.server = this.server
431
+ currentOptions.adapter = this.adapter
432
+ currentOptions.mapper = this.mapper
433
+ const apiOptions = ApiRequest.adapt({ ...currentOptions, path: pathReq })
434
+
435
+ return { apiOptions: apiOptions, path: pathReq }
436
+
437
+ }
438
+
439
+ private parseWatchParams(value?: string): string[] {
440
+ if (!value || typeof value !== 'string') {
441
+ return []
442
+ }
443
+
444
+ return value
445
+ .split(',')
446
+ .map((item) => item.trim())
447
+ .filter((item) => item.length > 0)
448
+ }
449
+
450
+ private normalizeWatchExpiry(value?: string | number): string | number | undefined {
451
+ if (typeof value === 'undefined' || value === null || value === '') {
452
+ return undefined
453
+ }
454
+
455
+ if (typeof value === 'string' && value.trim().toLowerCase() === 'never') {
456
+ return undefined
457
+ }
458
+
459
+ return value
460
+ }
461
+
462
+ private buildDemoRequestOptions(path: any[], headers: any): RequestOptions {
463
+ const dbValue: any = this.database || {}
464
+ const isDbEnabled = !!this.DBState?.checked
465
+ const parsedWatchParams = this.parseWatchParams(dbValue?.ignoreQueryParams)
466
+
467
+ return RequestOptions.adapt({
468
+ path,
469
+ headers,
470
+ forceRefresh: false,
471
+ watchParams: isDbEnabled && parsedWatchParams.length > 0 ? parsedWatchParams : undefined,
472
+ watchExpiresAt: isDbEnabled ? this.normalizeWatchExpiry(dbValue?.queryParamsExpiresIn) : undefined,
473
+ })
474
+ }
475
+
476
+ onSetStateOptions() {
477
+
478
+ const dbValue = this.database
479
+ // console.log('[onSetStateOptions] Called, checking form values:', {
480
+ // isValid: this.isValid,
481
+ // database: dbValue,
482
+ // hasTable: !!dbValue?.table,
483
+ // tableValue: dbValue?.table,
484
+ // dataType: this.dataType
485
+ // })
486
+
487
+ if(!this.isValid) {
488
+ // console.log('[onSetStateOptions] Form invalid, aborting')
489
+ return
490
+ }
491
+
492
+ const reqParams = this.compileRequest()
493
+
494
+ const db = DatabaseStorage.adapt(dbValue)
495
+ // console.log('[onSetStateOptions] DatabaseStorage.adapt result:', db)
496
+
497
+ const type = this.dataType === "ARRAY" ? DataType.ARRAY : DataType.OBJECT
498
+ // console.log('[onSetStateOptions] Calling setAPIOptions with:', { db, type, hasTable: !!db?.table })
499
+ this.stateManagerDemoService.setAPIOptions(reqParams.apiOptions, type, db)
500
+
501
+ this.requestForm.markAsPristine()
502
+ }
503
+
504
+ onClearRecords() {
505
+ this.stateManagerDemoService.clearRecords()
506
+ }
507
+
508
+ deleteDatabase() {
509
+ this.databaseManagerService.clearDatabase()
510
+ }
511
+
512
+ onGetRequest() {
513
+ this.requestType = 'GET'
514
+ const reqParams = this.compileRequest()
515
+ const requestOptions = this.buildDemoRequestOptions(reqParams.path, reqParams.apiOptions.headers)
516
+ this.stateManagerDemoService.getClients(requestOptions)
517
+ }
518
+
519
+ onCreateRequest() {
520
+ this.requestType = 'POST'
521
+ this.stateManagerDemoService.createClient(this.sampleClientData)
522
+ }
523
+
524
+ onUpdateRequest() {
525
+ this.requestType = 'PUT'
526
+ this.stateManagerDemoService.updateClient(this.sampleClientData)
527
+ }
528
+
529
+ onDeleteRequest() {
530
+ this.requestType = 'DELETE'
531
+ this.stateManagerDemoService.deleteClient(this.sampleClientData)
532
+ }
533
+
534
+ onStreamRequest() {
535
+ // console.log('[COMPONENT] onStreamRequest called')
536
+
537
+ if(!this.isValid) {
538
+ // console.log('[COMPONENT] Form invalid, aborting')
539
+ return
540
+ }
541
+
542
+ // console.log('[COMPONENT] Compiling request...')
543
+ const reqParams = this.compileRequest()
544
+
545
+ // console.log('[COMPONENT] Setting stream options:', reqParams.apiOptions)
546
+ reqParams.apiOptions.stream = true
547
+ reqParams.apiOptions.streamType = this.streamType as StreamType
548
+ this.requestType = 'STREAM'
549
+
550
+ const streamOptions = RequestOptions.adapt({
551
+ ...this.buildDemoRequestOptions(reqParams.path, reqParams.apiOptions.headers),
552
+ })
553
+
554
+ // console.log('[COMPONENT] Calling streamRequest...')
555
+ this.stateManagerDemoService.streamRequest(streamOptions)
556
+
557
+ }
558
+
559
+ errorHandling(err: any, type: string) { console.log(err, type)
560
+ if(type === 'GET') this.GET_error$.next(err.message)
561
+ if(type === 'POST') this.POST_error$.next(err.message)
562
+ if(type === 'PUT') this.PUT_error$.next(err.message)
563
+ if(type === 'DELETE') this.DELETE_error$.next(err.message)
564
+ if(type === 'STREAM') this.STREAM_error$.next(err.message)
565
+ if(type === 'STREAM_AI') this.STREAM_AI_error$.next(err.message)
566
+ }
567
+
568
+ onSelectAIType(type: number) {
569
+ this.AIType = type
570
+ }
571
+
572
+ onClearHistory() {
573
+ this.prompts = []
574
+ }
575
+
576
+ }
@@ -0,0 +1,89 @@
1
+ import { Injectable } from '@angular/core';
2
+
3
+ import { DataType, DatabaseStorage } from '../../../models';
4
+ import { HTTPManagerStateService } from '../../../services/request-manager-state-service/http-manager-state.store';
5
+ import { ApiRequest } from '../../../services/request-manager-state-service/models/api-request.model';
6
+ import { RequestOptions } from '../../../services/request-manager-state-service/models/request-options.model';
7
+
8
+ import { ClientInfo } from '../../request-manager-demo/models/sample-client-info';
9
+ import { ClientInfoMapper } from '../../request-manager-demo/models/sample-mapper-client-info';
10
+
11
+ @Injectable()
12
+ export class StateManagerDemoService extends HTTPManagerStateService<any> {
13
+
14
+ constructor() {
15
+ super(
16
+ ApiRequest.adapt({
17
+ server: "",
18
+ path: [],
19
+ headers: {},
20
+ adapter: ClientInfo.adapt,
21
+ mapper: ClientInfoMapper.adapt,
22
+ stream: false,
23
+ }),
24
+ DataType.ARRAY,
25
+ DatabaseStorage.adapt()
26
+ )
27
+ }
28
+
29
+ setAPIOptions(apiOptions: ApiRequest, dataType: DataType, database?: DatabaseStorage) {
30
+ this.setApiRequestOptions(apiOptions, dataType, database)
31
+ }
32
+
33
+ getClients(options?: RequestOptions) {
34
+
35
+ // const headers = {
36
+ // auth: "sample-auth-token"
37
+ // }
38
+ // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
39
+ this.fetchRecords(options)
40
+
41
+ }
42
+
43
+ createClient(data: any) {
44
+
45
+ // const headers = {
46
+ // auth: "sample-auth-token"
47
+ // }
48
+
49
+ // const sampleOptions = RequestOptions.adapt({ path: ["id", 12], headers, sample: true })
50
+ this.createRecord(data)
51
+
52
+ }
53
+
54
+ updateClient(data: ClientInfo) {
55
+
56
+ // const headers = {
57
+ // auth: "sample-auth-token"
58
+ // }
59
+ data.id = 1031
60
+ const sampleOptions = RequestOptions.adapt({ path: [data.id] })
61
+ this.updateRecord(data, sampleOptions)
62
+
63
+ }
64
+
65
+ deleteClient(data: ClientInfo) {
66
+
67
+ // const headers = {
68
+ // auth: "sample-auth-token"
69
+ // }
70
+
71
+ data.id = 1031
72
+ const sampleOptions = RequestOptions.adapt({ path: [data.id] })
73
+ this.deleteRecord(sampleOptions)
74
+
75
+ }
76
+
77
+ streamRequest(options?: RequestOptions) {
78
+ console.log('[DEMO SERVICE] streamRequest called')
79
+
80
+ const headers = {
81
+ auth: "sample-auth-token"
82
+ }
83
+
84
+ console.log('[DEMO SERVICE] Calling fetchStream with headers:', headers)
85
+ this.fetchStream(options)
86
+
87
+ }
88
+
89
+ }