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,147 @@
1
+ import { HTTP_INTERCEPTORS } from '@angular/common/http';
2
+ import { ModuleWithProviders, NgModule } from '@angular/core';
3
+
4
+
5
+ import { WithCredentialsInterceptor, RequestHeadersInterceptor } from './interceptors';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+
8
+ import { CommonModule } from '@angular/common';
9
+
10
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
11
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
12
+ import { MatButtonModule } from '@angular/material/button';
13
+ import { MatChipsModule } from '@angular/material/chips';
14
+ import { MatDividerModule } from '@angular/material/divider';
15
+ import { MatFormFieldModule } from '@angular/material/form-field';
16
+ import { MatIconModule } from '@angular/material/icon';
17
+ import { MatInputModule } from '@angular/material/input';
18
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
19
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
20
+ import { MatSelectModule } from '@angular/material/select';
21
+ import { MatSidenavModule } from '@angular/material/sidenav';
22
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
23
+ import { MatMenuModule } from '@angular/material/menu';
24
+ import { MatToolbarModule } from '@angular/material/toolbar';
25
+ import { MatTableModule } from '@angular/material/table';
26
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
27
+ import { MatDatepickerModule } from '@angular/material/datepicker';
28
+ import { MatNativeDateModule } from '@angular/material/core';
29
+ import { MatCardModule } from '@angular/material/card';
30
+ import { ProxyDebuggerInterceptor } from './interceptors/proxy-debugger.interceptor';
31
+ import { MatTabsModule } from '@angular/material/tabs';
32
+
33
+ import { ConfigOptions } from './models/config-options.model';
34
+ import { CONFIG_SETTINGS_TOKEN } from './models/config-token.model';
35
+ import { HTTPManagerService } from './services/request-manager-services/http-manager.service';
36
+ import { LocalStorageManagerService } from './services/local-storage-manager-service/local-storage-manager.service';
37
+
38
+ import { FileDownloaderModule } from './http-request-services-demo/request-manager-demo/file-downloader/file-download.module';
39
+ import { ToastMessageDisplayModule, ToastMessageDisplayService } from 'toast-message-display';
40
+
41
+ // Message Display System
42
+ import { MessageDisplayRouterService, SnackbarStrategy } from './message-display';
43
+
44
+ // Fix: Import components directly instead of from public-api to avoid circular dependency
45
+ import { HttpRequestServicesDemoComponent } from './http-request-services-demo/http-request-services-demo.component';
46
+ import { DatabaseDataDemoComponent } from './http-request-services-demo/database-data-demo/database-data-demo.component';
47
+ import { LocalStorageDemoComponent } from './http-request-services-demo/local-storage-demo/local-storage-demo.component';
48
+ import { RequestManagerDemoComponent } from './http-request-services-demo/request-manager-demo/request-manager-demo.component';
49
+ import { RequestManagerStateDemoComponent } from './http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component';
50
+
51
+ import { LocalStorageSignalsDemoComponent } from './http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component';
52
+ import { RequestManagerWsDemoComponent } from './http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component';
53
+ import { RequestSignalsManagerDemoComponent } from './http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component';
54
+ import { StoreStateManagerDemoComponent } from './http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component';
55
+
56
+ import { WsDataControlComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component';
57
+ import { WsMessagingComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component';
58
+ import { WsNotificationsComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component';
59
+ import { WsAiMessagingComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component';
60
+ import { WsChatsComponent } from './http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component';
61
+ import { RequestManagerBasicDemoComponent } from './http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component';
62
+ import { UploadDemoComponent } from './http-request-services-demo/upload-demo/upload-demo.component';
63
+
64
+ // import { MessengerChatModule } from 'src/app/components/messenger-chat/messenger-chat.module';
65
+ // import { StoreStateManagerModule } from "src/app/beta_components/store-state-manager/store-state-manager.module";
66
+
67
+
68
+ @NgModule({
69
+ imports: [
70
+ CommonModule,
71
+ ToastMessageDisplayModule,
72
+ FormsModule,
73
+ ReactiveFormsModule,
74
+ MatButtonModule,
75
+ MatTabsModule,
76
+ MatSelectModule,
77
+ MatChipsModule,
78
+ MatMenuModule,
79
+ MatIconModule,
80
+ MatTableModule,
81
+ MatButtonToggleModule,
82
+ MatAutocompleteModule,
83
+ MatProgressBarModule,
84
+ MatProgressSpinnerModule,
85
+ MatSlideToggleModule,
86
+ MatDividerModule,
87
+ MatFormFieldModule,
88
+ MatInputModule,
89
+ MatToolbarModule,
90
+ MatSlideToggleModule,
91
+ TranslateModule.forRoot(),
92
+ MatSidenavModule,
93
+ MatDatepickerModule,
94
+ MatNativeDateModule,
95
+ MatCardModule,
96
+ FileDownloaderModule,
97
+ // MessengerChatModule,
98
+ // StoreStateManagerModule
99
+ ],
100
+ declarations: [
101
+ RequestManagerBasicDemoComponent,
102
+ HttpRequestServicesDemoComponent,
103
+ RequestManagerStateDemoComponent,
104
+ RequestManagerDemoComponent,
105
+ RequestSignalsManagerDemoComponent,
106
+ LocalStorageDemoComponent,
107
+ LocalStorageSignalsDemoComponent,
108
+ RequestManagerWsDemoComponent,
109
+ StoreStateManagerDemoComponent,
110
+ DatabaseDataDemoComponent,
111
+ WsDataControlComponent,
112
+ WsMessagingComponent,
113
+ WsNotificationsComponent,
114
+ WsAiMessagingComponent,
115
+ WsChatsComponent,
116
+ UploadDemoComponent,
117
+ ],
118
+ exports: [
119
+ HttpRequestServicesDemoComponent,
120
+ UploadDemoComponent,
121
+ ],
122
+ providers: [
123
+ { provide: HTTP_INTERCEPTORS, useClass: WithCredentialsInterceptor, multi: true },
124
+ { provide: HTTP_INTERCEPTORS, useClass: RequestHeadersInterceptor, multi: true },
125
+ { provide: HTTP_INTERCEPTORS, useClass: ProxyDebuggerInterceptor, multi: true },
126
+ { provide: CONFIG_SETTINGS_TOKEN, useValue: ConfigOptions.adapt() },
127
+ HTTPManagerService, LocalStorageManagerService,
128
+ ToastMessageDisplayService,
129
+ MessageDisplayRouterService,
130
+ SnackbarStrategy
131
+ ],
132
+ })
133
+ export class HttpRequestManagerModule {
134
+
135
+ static forRoot(config: ConfigOptions = ConfigOptions.adapt()): ModuleWithProviders<HttpRequestManagerModule> {
136
+ return {
137
+ ngModule: HttpRequestManagerModule,
138
+ providers: [
139
+ { provide: CONFIG_SETTINGS_TOKEN, useValue: ConfigOptions.adapt(config) },
140
+ HTTPManagerService, LocalStorageManagerService //all services that need access to config
141
+ ],
142
+ };
143
+ }
144
+
145
+ }
146
+
147
+
@@ -0,0 +1,116 @@
1
+ <div style="padding: 2rem;">
2
+
3
+ <h2>
4
+ Database Manager Service Demo
5
+ </h2>
6
+
7
+ <div style="margin-bottom: 1rem; display: flex; gap: 1rem;">
8
+ <button mat-stroked-button
9
+ color="primary"
10
+ (click)="clearAllData()"
11
+ >
12
+ Clear Data
13
+ </button>
14
+ <button mat-stroked-button
15
+ color="primary"
16
+ (click)="updateData()"
17
+ >
18
+ Update Data
19
+ </button>
20
+ <div style="flex:1"></div>
21
+ <button
22
+ mat-stroked-button
23
+ color="warn"
24
+ [disabled]="!dataToDisplay.length"
25
+ (click)="removeData()"
26
+ >
27
+ Remove Data
28
+ </button>
29
+ <button mat-stroked-button
30
+ color="primary"
31
+ (click)="addData()"
32
+ >
33
+ Add Data
34
+ </button>
35
+ </div>
36
+
37
+ <div class="table-container">
38
+ <table mat-table [dataSource]="dataSource">
39
+
40
+ <ng-container matColumnDef="id">
41
+ <th mat-header-cell *matHeaderCellDef>ID</th>
42
+ <td mat-cell *matCellDef="let element">{{element.id}}</td>
43
+ </ng-container>
44
+
45
+ <ng-container matColumnDef="last_name">
46
+ <th mat-header-cell *matHeaderCellDef>Last Name</th>
47
+ <td mat-cell *matCellDef="let element">{{element.last_name}}</td>
48
+ </ng-container>
49
+
50
+ <ng-container matColumnDef="age">
51
+ <th mat-header-cell *matHeaderCellDef>Age</th>
52
+ <td mat-cell *matCellDef="let element">{{element.age}}</td>
53
+ </ng-container>
54
+
55
+ <ng-container matColumnDef="amount">
56
+ <th mat-header-cell *matHeaderCellDef>Amount</th>
57
+ <td mat-cell *matCellDef="let element">{{element.amount | currency}}</td>
58
+ </ng-container>
59
+
60
+ <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
61
+ <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
62
+ </table>
63
+ </div>
64
+
65
+ <!-- ── SQL Query Section ─────────────────────────────────────────────── -->
66
+ <mat-divider style="margin: 2rem 0;"></mat-divider>
67
+
68
+ <h3 style="margin-bottom: 1rem;">SQL Query with DexieJS</h3>
69
+
70
+ <div style="display: flex; gap: 1rem; align-items: flex-start;">
71
+ <mat-form-field style="flex: 1;" appearance="outline">
72
+ <mat-label>SQL Query</mat-label>
73
+ <textarea
74
+ matInput
75
+ [(ngModel)]="sqlQuery"
76
+ rows="3"
77
+ placeholder="e.g. SELECT * FROM sample_table WHERE age > 20"
78
+ (keydown.control.enter)="runSqlQuery()"
79
+ ></textarea>
80
+ <mat-hint>Ctrl+Enter to execute</mat-hint>
81
+ </mat-form-field>
82
+
83
+ <button
84
+ mat-flat-button
85
+ color="primary"
86
+ style="margin-top: 4px;"
87
+ [disabled]="sqlLoading || !sqlQuery.trim()"
88
+ (click)="runSqlQuery()"
89
+ >
90
+ {{ sqlLoading ? 'Running…' : 'Execute' }}
91
+ </button>
92
+ </div>
93
+
94
+ <!-- Error -->
95
+ <div *ngIf="sqlError" style="color: #d32f2f; margin: 0.5rem 0 1rem; font-size: 0.875rem;">
96
+ <mat-icon style="vertical-align: middle; font-size: 16px; height: 16px; width: 16px;">error</mat-icon>
97
+ {{ sqlError }}
98
+ </div>
99
+
100
+ <!-- Results table (dynamic columns) -->
101
+ <div *ngIf="!sqlLoading && sqlResults.length > 0" class="table-container" style="margin-top: 1rem;">
102
+ <div>
103
+ {{ sqlResults | json }}
104
+ </div>
105
+ <p style="font-size: 0.8rem; color: #666; margin-top: 0.5rem;">
106
+ {{ sqlResults.length }} row{{ sqlResults.length === 1 ? '' : 's' }} returned
107
+ </p>
108
+ </div>
109
+
110
+ <!-- Empty state -->
111
+ <p *ngIf="!sqlLoading && !sqlError && sqlResults.length === 0 && sqlQuery.trim()"
112
+ style="color: #888; font-size: 0.875rem; margin-top: 0.5rem;">
113
+ No results to display. Execute a query above.
114
+ </p>
115
+
116
+ </div>
@@ -0,0 +1,255 @@
1
+ import { Component, OnInit, inject, OnDestroy } from '@angular/core';
2
+ import { Subject, Observable, ReplaySubject } from 'rxjs';
3
+ import { tap } from 'rxjs/operators';
4
+ import { DataSource } from '@angular/cdk/collections';
5
+
6
+ import { TableSchemaDef } from '../../services/database-manager-service/models/table-schema';
7
+ import { DatabaseManagerService } from '../../services/database-manager-service';
8
+ import { DexieSqlService } from '../../services/SQL-DixieJS service/dexie-sql.service';
9
+
10
+ export interface TableRecord {
11
+ id: number;
12
+ last_name: string;
13
+ age: number;
14
+ amount: number;
15
+ }
16
+
17
+ @Component({
18
+ selector: 'app-database-data-demo',
19
+ templateUrl: './database-data-demo.component.html',
20
+ styleUrls: ['./database-data-demo.component.scss'],
21
+ standalone: false
22
+ })
23
+ export class DatabaseDataDemoComponent implements OnInit, OnDestroy {
24
+
25
+ db = inject(DatabaseManagerService);
26
+ sql = inject(DexieSqlService);
27
+ private destroy$ = new Subject<void>();
28
+
29
+ dataToDisplay: TableRecord[] = [];
30
+ dataSource = new DatabaseDataSource(this.dataToDisplay);
31
+ displayedColumns: string[] = ['id', 'last_name', 'age', 'amount'];
32
+
33
+ names = ['Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis'];
34
+
35
+ // ── SQL Query section ────────────────────────────────────────────────────
36
+ sqlQuery = 'SELECT * FROM sample_table';
37
+ sqlResults: any[] = [];
38
+ sqlResultCols: string[] = [];
39
+ sqlError: string | null = null;
40
+ sqlLoading = false;
41
+
42
+ constructor() { }
43
+
44
+ ngOnDestroy() {
45
+ this.destroy$.next();
46
+ this.destroy$.complete();
47
+ }
48
+
49
+ addData() {
50
+
51
+ const newRecord: TableRecord = {
52
+ id: Math.max(...this.dataToDisplay.map(r => r.id), 0) + 1,
53
+ last_name: this.names[Math.floor(Math.random() * this.names.length)],
54
+ age: Math.floor(Math.random() * 80) + 18,
55
+ amount: Math.floor(Math.random() * 1000)
56
+ };
57
+
58
+ this.dataToDisplay = [...this.dataToDisplay, newRecord];
59
+ this.db.createTableRecord('sample_table', newRecord).subscribe(
60
+ () => this.refreshData()
61
+ );
62
+
63
+ }
64
+
65
+ removeData() {
66
+ if (this.dataToDisplay.length > 0) {
67
+ const removedRecord = this.dataToDisplay[this.dataToDisplay.length - 1];
68
+ this.dataToDisplay = this.dataToDisplay.slice(0, -1);
69
+ this.db.deleteTableRecord('sample_table', removedRecord.id).subscribe(
70
+ () => this.refreshData()
71
+ );
72
+ }
73
+ }
74
+
75
+ updateData() {
76
+
77
+ if (this.dataToDisplay.length === 0) return;
78
+
79
+ const randomIndex = Math.floor(Math.random() * this.dataToDisplay.length);
80
+ const recordToUpdate = this.dataToDisplay[randomIndex];
81
+
82
+ const updatedRecord: TableRecord = {
83
+ ...recordToUpdate,
84
+ last_name: this.names[Math.floor(Math.random() * this.names.length)],
85
+ age: Math.floor(Math.random() * 80) + 18,
86
+ amount: Math.floor(Math.random() * 1000)
87
+ };
88
+
89
+ this.dataToDisplay = this.dataToDisplay.map((r, index) =>
90
+ index === randomIndex ? updatedRecord : r
91
+ );
92
+
93
+ this.db.updateTableRecord('sample_table', updatedRecord).subscribe(
94
+ () => this.refreshData()
95
+ );
96
+
97
+ }
98
+
99
+ clearAllData() {
100
+ if (this.dataToDisplay.length === 0) return;
101
+
102
+ const idsToDelete = this.dataToDisplay.map(r => r.id);
103
+ this.dataToDisplay = [];
104
+
105
+ this.db.deleteTableRecords('sample_table', idsToDelete).subscribe(
106
+ () => this.refreshData()
107
+ );
108
+ }
109
+
110
+ private refreshData() {
111
+ this.db.getTableRecords('sample_table').subscribe(
112
+ (records: any) => {
113
+ this.dataToDisplay = records || [];
114
+ this.dataSource.setData(this.dataToDisplay);
115
+ }
116
+ );
117
+ }
118
+
119
+ ngOnInit() {
120
+
121
+ const tableDef = TableSchemaDef.adapt({
122
+ table: 'sample_table',
123
+ schema: '++id, last_name, age, amount'
124
+ });
125
+
126
+ this.db.createDatabaseTable(tableDef).subscribe(() => {
127
+ console.log('Database Table Initialized');
128
+
129
+ // hasTable
130
+ this.db.hasDatabaseTable('sample_table')
131
+ .subscribe(data => console.log('hasDatabaseTable:', data))
132
+
133
+ // Tables
134
+ this.db.getDatabaseTables()
135
+ .subscribe(data => console.log('getDatabaseTables:', data))
136
+
137
+ // getTable
138
+ this.db.getDatabaseTable('sample_table')
139
+ .subscribe(data => console.log('getDatabaseTable:', data))
140
+
141
+ // Table Schema
142
+ this.db.getDatabaseTableSchema('sample_table')
143
+ .subscribe(data => console.log('getDatabaseTableSchema:', data))
144
+
145
+ // Insert Table Records
146
+ const records = [
147
+ { id: 1, age: 12, last_name: 'Bonifacio', amount: 80 },
148
+ { id: 2, age: 15, last_name: 'Johns', amount: 700 },
149
+ { id: 3, age: 22, last_name: 'Kims', amount: 234 },
150
+ { id: 4, age: 45, last_name: 'Harrys', amount: 1200 },
151
+ ]
152
+
153
+ this.db.createTableRecords('sample_table', records).subscribe(() => {
154
+ this.refreshData();
155
+ });
156
+ });
157
+ }
158
+
159
+ createTable(tableDef: TableSchemaDef) {
160
+ return this.db.createDatabaseTable(tableDef)
161
+ }
162
+
163
+ // CRUD
164
+ findTableRecords(table: string, column: string, value: any) {
165
+ return this.db.findTableRecords(table, column, value)
166
+ .pipe(
167
+ tap((data: any) => console.log('findTableRecords:', data))
168
+ )
169
+ }
170
+
171
+ findTableRecord(table: string, column: string, value: any) {
172
+ return this.db.findTableRecord(table, column, value)
173
+ .pipe(
174
+ tap((data: any) => console.log('findTableRecord:', data))
175
+ )
176
+ }
177
+
178
+ getTableRecords(table: string) {
179
+ return this.db.getTableRecords(table)
180
+ .pipe(
181
+ tap((data: any) => console.log('getTableRecords:', data))
182
+ )
183
+ }
184
+
185
+ getTableRecord(table: string, id: number) {
186
+ return this.db.getTableRecord(table, id)
187
+ .pipe(
188
+ tap((data: any) => console.log('getTableRecord:', data))
189
+ )
190
+ }
191
+
192
+ createTableRecord<T>(table: string, record: T) {
193
+ return this.db.createTableRecord(table, record)
194
+ .pipe(
195
+ tap((data: any) => console.log('createTableRecord:', data))
196
+ )
197
+ }
198
+
199
+ updateTableRecord<T>(table: string, record: T) {
200
+ return this.db.updateTableRecord(table, record)
201
+ .pipe(
202
+ tap((data: any) => console.log('updateTableRecord:', data))
203
+ )
204
+ }
205
+
206
+ deleteTableRecord<T>(table: string, id: number) {
207
+ return this.db.deleteTableRecord(table, id)
208
+ .pipe(
209
+ tap((data: any) => console.log('deleteTableRecord:', data))
210
+ )
211
+ }
212
+
213
+ runSqlQuery() {
214
+ const q = (this.sqlQuery ?? '').trim();
215
+ if (!q) return;
216
+
217
+ this.sqlLoading = true;
218
+ this.sqlError = null;
219
+ this.sqlResults = [];
220
+ this.sqlResultCols = [];
221
+
222
+ this.sql.query(q).subscribe({
223
+ next: rows => {
224
+ this.sqlResults = rows;
225
+ this.sqlResultCols = rows.length > 0 ? Object.keys(rows[0]) : [];
226
+ this.sqlLoading = false;
227
+ },
228
+ error: err => {
229
+ this.sqlError = err?.message ?? String(err);
230
+ this.sqlLoading = false;
231
+ }
232
+ });
233
+ }
234
+
235
+ }
236
+
237
+ class DatabaseDataSource extends DataSource<TableRecord> {
238
+ private _dataStream = new ReplaySubject<TableRecord[]>();
239
+
240
+ constructor(initialData: TableRecord[]) {
241
+ super();
242
+ this.setData(initialData);
243
+ }
244
+
245
+ connect(): Observable<TableRecord[]> {
246
+ return this._dataStream;
247
+ }
248
+
249
+ disconnect() {}
250
+
251
+ setData(data: TableRecord[]) {
252
+ this._dataStream.next(data);
253
+ }
254
+
255
+ }
@@ -0,0 +1,123 @@
1
+ <mat-toolbar style="display:flex">
2
+ <div>Http Request Manager Services</div>
3
+ <div style="flex:1"></div>
4
+ <button mat-stroked-button [matMenuTriggerFor]="menu">Services</button>
5
+ <mat-menu #menu="matMenu">
6
+ @for (type of requestTypes; track type; let i = $index) {
7
+ @if (type?.divider) {
8
+ <div
9
+ style="margin-top: .5rem; margin-bottom: .5rem;"
10
+ >
11
+ <mat-divider></mat-divider>
12
+ </div>
13
+ }
14
+ <button
15
+ mat-menu-item
16
+ (click)="onSelected(i)"
17
+ [disabled]="type.disabled"
18
+ >
19
+ {{ type.name }}
20
+ </button>
21
+ }
22
+
23
+ </mat-menu>
24
+ </mat-toolbar>
25
+
26
+ <span>
27
+ @switch (selectedService) {
28
+ @case ('basic_http_service') {
29
+ <p>
30
+ <app-request-manager-basic-demo></app-request-manager-basic-demo>
31
+ </p>
32
+ }
33
+ @case ('http_service') {
34
+ <p>
35
+ <ng-container *ngTemplateOutlet="HTTP_OPTIONS"></ng-container>
36
+ <app-request-manager-demo
37
+ [server]="server"
38
+ [adapter]="adapter"
39
+ [mapper]="mapper"
40
+ ></app-request-manager-demo>
41
+ </p>
42
+ }
43
+ <!-- <p *ngSwitchCase="'http_signals_service'">
44
+ <ng-container *ngTemplateOutlet="HTTP_OPTIONS"></ng-container>
45
+ <app-request-signals-manager-demo></app-request-signals-manager-demo>
46
+ </p> -->
47
+ @case ('http_state_service') {
48
+ <p>
49
+ <ng-container *ngTemplateOutlet="HTTP_OPTIONS"></ng-container>
50
+ <app-request-manager-state-demo
51
+ [server]="server"
52
+ [adapter]="adapter"
53
+ [mapper]="mapper"
54
+ ></app-request-manager-state-demo>
55
+ </p>
56
+ }
57
+ @case ('http_state_service_ws') {
58
+ <p>
59
+ <ng-container *ngTemplateOutlet="HTTP_OPTIONS"></ng-container>
60
+ <app-request-manager-ws-demo
61
+ [server]="server"
62
+ [wsServer]="wsServer"
63
+ [jwtToken]="jwtToken"
64
+ [user]="user"
65
+ [path]="path"
66
+ ></app-request-manager-ws-demo>
67
+ </p>
68
+ }
69
+ @case ('file_upload_demo') {
70
+ <p>
71
+ <lib-upload-demo></lib-upload-demo>
72
+ </p>
73
+ }
74
+ @case ('database_service') {
75
+ <p>
76
+ <app-database-data-demo></app-database-data-demo>
77
+ </p>
78
+ }
79
+ @case ('local_storage_service') {
80
+ <p>
81
+ <ng-container *ngTemplateOutlet="LOCAL_OPTIONS"></ng-container>
82
+ <app-local-storage-demo></app-local-storage-demo>
83
+ </p>
84
+ }
85
+ <!-- <p *ngSwitchCase="'local_storage_signals_service'">
86
+ <ng-container *ngTemplateOutlet="LOCAL_OPTIONS"></ng-container>
87
+ <app-local-storage-signals-demo></app-local-storage-signals-demo>
88
+ </p> -->
89
+ @case ('store_state_manager') {
90
+ <p>
91
+ <ng-container *ngTemplateOutlet="LOCAL_OPTIONS"></ng-container>
92
+ <app-store-state-manager-demo></app-store-state-manager-demo>
93
+ </p>
94
+ }
95
+ @default {
96
+ <p>
97
+ Other
98
+ </p>
99
+ }
100
+ }
101
+ </span>
102
+
103
+ <ng-template #HTTP_OPTIONS>
104
+ @if (injectionOptions?.httpRequestOptions) {
105
+ <div class="box">
106
+ <h3 style="font-weight: bold;">Injection Token Detected - HTTP Options</h3>
107
+ {{ injectionOptions?.httpRequestOptions| json }}
108
+ </div>
109
+ }
110
+ </ng-template>
111
+
112
+ <ng-template #LOCAL_OPTIONS>
113
+ @if (injectionOptions?.LocalStorageOptions) {
114
+ <ng-container class="box">
115
+ <div class="box">
116
+ <h3 style="font-weight: bold;">Injection Token Detected - LocalStorage Options</h3>
117
+ {{ injectionOptions?.LocalStorageOptions| json }}
118
+ </div>
119
+ </ng-container>
120
+ }
121
+ </ng-template>
122
+
123
+
@@ -0,0 +1,6 @@
1
+ .box {
2
+ padding: 1rem;
3
+ background-color: whitesmoke;
4
+ border: thin gray solid;
5
+ margin-top: 1rem;
6
+ }