http-request-manager 18.15.34 → 18.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/fesm2022/http-request-manager.mjs +13688 -0
  2. package/fesm2022/http-request-manager.mjs.map +1 -0
  3. package/http-request-manager-18.16.0.tgz +0 -0
  4. package/package.json +15 -6
  5. package/types/http-request-manager.d.ts +3968 -0
  6. package/TEST_COVERAGE_SUMMARY.md +0 -458
  7. package/ng-package.json +0 -8
  8. package/src/docs/ADVANCED_WEBSOCKET.md +0 -633
  9. package/src/docs/ARCHITECTURE.md +0 -633
  10. package/src/docs/BATCH_REQUEST_README.md +0 -467
  11. package/src/docs/COMPLETE_API_REFERENCE.md +0 -1037
  12. package/src/docs/DATABASE_README.md +0 -1195
  13. package/src/docs/ENCRYPTION_README.md +0 -403
  14. package/src/docs/HTTP_MANAGER_README.md +0 -628
  15. package/src/docs/HTTP_SINGNALS_MANAGER_README.md +0 -654
  16. package/src/docs/HTTP_STATE_MANAGER_README.md +0 -1391
  17. package/src/docs/INTERCEPTOR_README.md +0 -549
  18. package/src/docs/LOCAL_STORAGE_README.md +0 -1056
  19. package/src/docs/LOCAL_STORAGE_SIGNALS_README.md +0 -338
  20. package/src/docs/LOGGER_README.md +0 -310
  21. package/src/docs/MESSAGE_TRACKER_README.md +0 -518
  22. package/src/docs/MESSAGE_TRACKER_SIGNALS_README.md +0 -563
  23. package/src/docs/MODELS_README.md +0 -1264
  24. package/src/docs/SIGNAL_SERVICES_README.md +0 -238
  25. package/src/docs/SQL_DIXIE_README.md +0 -574
  26. package/src/docs/STORE_STATE_MANAGER_README.md +0 -556
  27. package/src/docs/STORE_STATE_SIGNALS_README.md +0 -600
  28. package/src/docs/UPLOAD_REQUEST_README.md +0 -324
  29. package/src/docs/UTILS_README.md +0 -1604
  30. package/src/docs/WEBSOCKET_MESSAGE_SERVICE.md +0 -799
  31. package/src/docs/WEBSOCKET_SIGNALS_README.md +0 -641
  32. package/src/docs/WEBSOCKET_SINGLETON_REFACTORING.md +0 -201
  33. package/src/docs/WS_MANAGER_README.md +0 -613
  34. package/src/lib/http-request-manager.module.ts +0 -147
  35. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -116
  36. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  37. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -255
  38. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -123
  39. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  40. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -53
  41. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  42. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  43. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -208
  44. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.html +0 -200
  45. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.scss +0 -17
  46. package/src/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.ts +0 -214
  47. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.html +0 -53
  48. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.scss +0 -60
  49. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/download-file/download-file.component.ts +0 -72
  50. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-download.module.ts +0 -28
  51. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.html +0 -10
  52. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.scss +0 -29
  53. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/file-downloader.component.ts +0 -100
  54. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/models/download-labels-model.ts +0 -22
  55. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.html +0 -8
  56. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.scss +0 -19
  57. package/src/lib/http-request-services-demo/request-manager-basic-demo/file-downloader/spinner/spinner.component.ts +0 -26
  58. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app-session.model.ts +0 -30
  59. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/app.model.ts +0 -19
  60. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/get-sample.model.ts +0 -25
  61. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-ai-prompt.ts +0 -19
  62. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-details.ts +0 -24
  63. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client-info.ts +0 -30
  64. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-client.model.ts +0 -49
  65. package/src/lib/http-request-services-demo/request-manager-basic-demo/models/sample-mapper-client-info.ts +0 -33
  66. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.html +0 -279
  67. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.scss +0 -24
  68. package/src/lib/http-request-services-demo/request-manager-basic-demo/request-manager-basic-demo.component.ts +0 -461
  69. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  70. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  71. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  72. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  73. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  74. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  75. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  76. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  77. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  78. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  79. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  80. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  81. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  82. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  83. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  84. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  85. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  86. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  87. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  88. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -622
  89. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -106
  90. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -687
  91. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -418
  92. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  93. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -576
  94. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -89
  95. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/services/state-data-request.service.ts +0 -119
  96. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.css +0 -0
  97. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.html +0 -3
  98. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-ai-messaging/ws-ai-messaging.component.ts +0 -16
  99. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.css +0 -0
  100. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.html +0 -3
  101. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-chats/ws-chats.component.ts +0 -16
  102. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.css +0 -31
  103. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.html +0 -94
  104. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.scss +0 -41
  105. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.spec.ts +0 -203
  106. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-data-control/ws-data-control.component.ts +0 -144
  107. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.css +0 -11
  108. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.html +0 -102
  109. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.spec.ts +0 -40
  110. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-messaging/ws-messaging.component.ts +0 -230
  111. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.css +0 -30
  112. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.html +0 -172
  113. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.spec.ts +0 -31
  114. package/src/lib/http-request-services-demo/request-manager-ws-demo/components/ws-notifications/ws-notifications.component.ts +0 -239
  115. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.ts +0 -31
  116. package/src/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.ts +0 -32
  117. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.css +0 -0
  118. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.html +0 -84
  119. package/src/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.ts +0 -40
  120. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/index.ts +0 -3
  121. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/jwt-token.service.ts +0 -62
  122. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/message-service-demo.service.ts +0 -83
  123. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/notification-service-demo.service.ts +0 -147
  124. package/src/lib/http-request-services-demo/request-manager-ws-demo/services/state-service-demo.service.ts +0 -168
  125. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.html +0 -53
  126. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  127. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/download-file/download-file.component.ts +0 -72
  128. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-download.module.ts +0 -28
  129. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.html +0 -10
  130. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  131. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/file-downloader.component.ts +0 -100
  132. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  133. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  134. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  135. package/src/lib/http-request-services-demo/request-signals-manager-demo/file-downloader/spinner/spinner.component.ts +0 -26
  136. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app-session.model.ts +0 -30
  137. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/app.model.ts +0 -19
  138. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/get-sample.model.ts +0 -25
  139. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.ts +0 -19
  140. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-details.ts +0 -24
  141. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.ts +0 -30
  142. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client.model.ts +0 -49
  143. package/src/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.ts +0 -33
  144. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.html +0 -380
  145. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.scss +0 -24
  146. package/src/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.ts +0 -410
  147. package/src/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.ts +0 -28
  148. package/src/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.ts +0 -49
  149. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.css +0 -0
  150. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.html +0 -23
  151. package/src/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.ts +0 -36
  152. package/src/lib/http-request-services-demo/store-state-signals-demo/store-state-signals-demo.component.ts +0 -161
  153. package/src/lib/http-request-services-demo/upload-demo/models/index.ts +0 -1
  154. package/src/lib/http-request-services-demo/upload-demo/models/upload-state.model.ts +0 -30
  155. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.html +0 -89
  156. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.scss +0 -160
  157. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.spec.ts +0 -101
  158. package/src/lib/http-request-services-demo/upload-demo/upload-demo.component.ts +0 -136
  159. package/src/lib/index.ts +0 -3
  160. package/src/lib/interceptors/credentials.interceptor.ts +0 -16
  161. package/src/lib/interceptors/index.ts +0 -6
  162. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  163. package/src/lib/interceptors/models/index.ts +0 -2
  164. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  165. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  166. package/src/lib/interceptors/request-header.interceptor.ts +0 -56
  167. package/src/lib/message-display/README.md +0 -509
  168. package/src/lib/message-display/index.ts +0 -4
  169. package/src/lib/message-display/models/action.model.ts +0 -27
  170. package/src/lib/message-display/models/communication-message.model.ts +0 -77
  171. package/src/lib/message-display/models/display-config.model.ts +0 -35
  172. package/src/lib/message-display/models/display-rule.interface.ts +0 -28
  173. package/src/lib/message-display/models/display-strategy.interface.ts +0 -8
  174. package/src/lib/message-display/models/index.ts +0 -6
  175. package/src/lib/message-display/models/slide.model.ts +0 -24
  176. package/src/lib/message-display/rules/default-display-rules.ts +0 -35
  177. package/src/lib/message-display/services/message-display-router.service.ts +0 -63
  178. package/src/lib/message-display/strategies/snackbar.strategy.ts +0 -46
  179. package/src/lib/models/batch-options.model.ts +0 -33
  180. package/src/lib/models/batch-progress.model.ts +0 -19
  181. package/src/lib/models/batch-request-state.model.ts +0 -40
  182. package/src/lib/models/batch-result.model.ts +0 -30
  183. package/src/lib/models/config-http-options.model.ts +0 -45
  184. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  185. package/src/lib/models/config-options.model.ts +0 -27
  186. package/src/lib/models/config-token.model.ts +0 -9
  187. package/src/lib/models/data-type.enum.ts +0 -5
  188. package/src/lib/models/database-storage.model.ts +0 -24
  189. package/src/lib/models/index.ts +0 -16
  190. package/src/lib/models/retry-options.model.ts +0 -22
  191. package/src/lib/models/upload-validation-error.model.ts +0 -46
  192. package/src/lib/services/SQL-DixieJS service/dexie-query-executor.ts +0 -246
  193. package/src/lib/services/SQL-DixieJS service/dexie-sql.service.ts +0 -31
  194. package/src/lib/services/SQL-DixieJS service/index.ts +0 -4
  195. package/src/lib/services/SQL-DixieJS service/models/execution-plan.model.ts +0 -52
  196. package/src/lib/services/SQL-DixieJS service/models/index.ts +0 -3
  197. package/src/lib/services/SQL-DixieJS service/models/sql-errors.model.ts +0 -13
  198. package/src/lib/services/SQL-DixieJS service/models/sql-options.model.ts +0 -3
  199. package/src/lib/services/SQL-DixieJS service/query-planner.ts +0 -284
  200. package/src/lib/services/SQL-DixieJS service/schema-validator.ts +0 -217
  201. package/src/lib/services/SQL-DixieJS service/sql-parser.ts +0 -35
  202. package/src/lib/services/database-manager-service/database.manager.service.ts +0 -384
  203. package/src/lib/services/database-manager-service/db.storage.service.ts +0 -240
  204. package/src/lib/services/database-manager-service/index.ts +0 -4
  205. package/src/lib/services/database-manager-service/models/index.ts +0 -2
  206. package/src/lib/services/database-manager-service/models/table-schema.ts +0 -33
  207. package/src/lib/services/index.ts +0 -20
  208. package/src/lib/services/local-storage-manager-service/index.ts +0 -4
  209. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  210. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -567
  211. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.spec.ts +0 -67
  212. package/src/lib/services/local-storage-manager-service/local-storage-signals-manager.service.ts +0 -437
  213. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  214. package/src/lib/services/local-storage-manager-service/models/index.ts +0 -6
  215. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -35
  216. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  217. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -32
  218. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  219. package/src/lib/services/request-manager-services/README.md +0 -282
  220. package/src/lib/services/request-manager-services/http-manager-signals.service.ts +0 -674
  221. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -353
  222. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -727
  223. package/src/lib/services/request-manager-services/index.ts +0 -8
  224. package/src/lib/services/request-manager-services/request-signals.service.ts +0 -372
  225. package/src/lib/services/request-manager-services/request.service.ts +0 -435
  226. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  227. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  228. package/src/lib/services/request-manager-services/rxjs-operators/index.ts +0 -4
  229. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -35
  230. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -468
  231. package/src/lib/services/request-manager-state-service/http-manager-state.store.spec.ts +0 -665
  232. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -2395
  233. package/src/lib/services/request-manager-state-service/index.ts +0 -3
  234. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -86
  235. package/src/lib/services/request-manager-state-service/models/index.ts +0 -14
  236. package/src/lib/services/request-manager-state-service/models/operation-result.model.ts +0 -18
  237. package/src/lib/services/request-manager-state-service/models/parsing-result.model.ts +0 -21
  238. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -37
  239. package/src/lib/services/request-manager-state-service/models/stream-config.model.ts +0 -20
  240. package/src/lib/services/request-manager-state-service/models/stream-event-metadata.model.ts +0 -23
  241. package/src/lib/services/request-manager-state-service/models/stream-event.model.ts +0 -23
  242. package/src/lib/services/request-manager-state-service/models/stream-output.model.ts +0 -23
  243. package/src/lib/services/request-manager-state-service/models/stream-progress.model.ts +0 -24
  244. package/src/lib/services/request-manager-state-service/models/stream-type.enum.ts +0 -13
  245. package/src/lib/services/request-manager-state-service/models/ws-options.model.ts +0 -42
  246. package/src/lib/services/store-state-manager-service/index.ts +0 -4
  247. package/src/lib/services/store-state-manager-service/models/index.ts +0 -3
  248. package/src/lib/services/store-state-manager-service/models/state-operation-result.model.ts +0 -30
  249. package/src/lib/services/store-state-manager-service/models/state-storage-options.model.ts +0 -24
  250. package/src/lib/services/store-state-manager-service/store-state-manager-signals.service.ts +0 -169
  251. package/src/lib/services/store-state-manager-service/store-state-manager.service.ts +0 -153
  252. package/src/lib/services/utils/app.service.spec.ts +0 -25
  253. package/src/lib/services/utils/app.service.ts +0 -21
  254. package/src/lib/services/utils/encryption/README.md +0 -79
  255. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  256. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  257. package/src/lib/services/utils/encryption/index.ts +0 -5
  258. package/src/lib/services/utils/encryption/random.ts +0 -81
  259. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -106
  260. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  261. package/src/lib/services/utils/headers.service.ts +0 -18
  262. package/src/lib/services/utils/index.ts +0 -9
  263. package/src/lib/services/utils/logger.service.ts +0 -90
  264. package/src/lib/services/utils/models/index.ts +0 -4
  265. package/src/lib/services/utils/models/normalized-request-options.model.ts +0 -24
  266. package/src/lib/services/utils/models/path-tracker-state.model.ts +0 -20
  267. package/src/lib/services/utils/models/query-params-tracker-options.model.ts +0 -24
  268. package/src/lib/services/utils/models/query-tracker-state.model.ts +0 -23
  269. package/src/lib/services/utils/object-merger.service.spec.ts +0 -18
  270. package/src/lib/services/utils/object-merger.service.ts +0 -78
  271. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  272. package/src/lib/services/utils/path-query.service.ts +0 -69
  273. package/src/lib/services/utils/query-params-tracker.service.ts +0 -442
  274. package/src/lib/services/utils/random-color.utils.ts +0 -83
  275. package/src/lib/services/utils/utils.service.spec.ts +0 -165
  276. package/src/lib/services/utils/utils.service.ts +0 -192
  277. package/src/lib/services/ws-manager-service/index.ts +0 -13
  278. package/src/lib/services/ws-manager-service/message-tracker-signals.service.ts +0 -147
  279. package/src/lib/services/ws-manager-service/message-tracker.service.ts +0 -477
  280. package/src/lib/services/ws-manager-service/models/channel-info.model.ts +0 -29
  281. package/src/lib/services/ws-manager-service/models/channel-message-data.model.ts +0 -24
  282. package/src/lib/services/ws-manager-service/models/channel-message.model.ts +0 -36
  283. package/src/lib/services/ws-manager-service/models/channel-type.enum.ts +0 -6
  284. package/src/lib/services/ws-manager-service/models/communication-type.enum.ts +0 -5
  285. package/src/lib/services/ws-manager-service/models/index.ts +0 -10
  286. package/src/lib/services/ws-manager-service/models/notification-message.model.ts +0 -29
  287. package/src/lib/services/ws-manager-service/models/public-message.model.ts +0 -18
  288. package/src/lib/services/ws-manager-service/models/state-message.model.ts +0 -18
  289. package/src/lib/services/ws-manager-service/models/ws-user.model.ts +0 -38
  290. package/src/lib/services/ws-manager-service/services/index.ts +0 -4
  291. package/src/lib/services/ws-manager-service/services/websocket-message.service.ts +0 -129
  292. package/src/lib/services/ws-manager-service/services/websocket.service.ts +0 -434
  293. package/src/lib/services/ws-manager-service/websocket-service/index.ts +0 -1
  294. package/src/lib/services/ws-manager-service/websocket-service/websocket-manager.service.ts +0 -716
  295. package/src/lib/services/ws-manager-service/websocket-services-complete.spec.ts +0 -596
  296. package/src/lib/services/ws-manager-service/websocket-signals-manager.service.ts +0 -141
  297. package/src/public-api.ts +0 -19
  298. package/tsconfig.lib.json +0 -34
  299. package/tsconfig.lib.prod.json +0 -10
  300. package/tsconfig.spec.json +0 -14
@@ -1,1264 +0,0 @@
1
- # Models Reference Guide
2
-
3
- Comprehensive reference for all data models used in the HTTP Request Manager library.
4
-
5
- ## Model Pattern
6
-
7
- All models follow a consistent pattern with an interface and implementation class:
8
-
9
- ```typescript
10
- export interface ModelNameInterface {
11
- property1: string;
12
- property2?: number;
13
- property3: SomeType;
14
- }
15
-
16
- export class ModelNameModel implements ModelNameInterface {
17
- constructor(
18
- public property1: string = '',
19
- public property2?: number,
20
- public property3: SomeType
21
- ) {}
22
-
23
- static adapt(item?: any): ModelNameModel {
24
- return new ModelNameModel(
25
- item?.property1,
26
- item?.property2,
27
- item?.property3 ? SomeType.adapt(item.property3) : SomeType.adapt()
28
- );
29
- }
30
- }
31
- ```
32
-
33
- **Key Features:**
34
- - ✅ Interface + Class pattern
35
- - ✅ Public constructor parameters
36
- - ✅ Default values for required fields
37
- - ✅ Static `adapt()` method for transformation
38
- - ✅ Type safety with TypeScript
39
-
40
- ---
41
-
42
- ## HTTP Request Models
43
-
44
- ### ApiRequest
45
-
46
- Configuration for HTTP requests.
47
-
48
- ```typescript
49
- export interface ApiRequestInterface {
50
- server: string;
51
- path?: any[];
52
- headers?: any;
53
- adapter?: any;
54
- mapper?: any;
55
- polling?: number;
56
- retry?: RetryOptions;
57
- stream?: boolean;
58
- streamType?: StreamType;
59
- displayError?: boolean;
60
- displaySuccess?: boolean;
61
- successMessage?: string;
62
- errorMessage?: string;
63
- saveAs?: string;
64
- fileContentHeader?: string;
65
- ws?: WSOptions;
66
- env?: string;
67
- uploadFiles?: File | File[];
68
- uploadFieldName?: string;
69
- uploadHttpMethod?: 'POST' | 'PUT';
70
- allowedTypes?: string[];
71
- maxFileSize?: number;
72
- maxTotalSize?: number;
73
- }
74
-
75
- export class ApiRequest implements ApiRequestInterface {
76
- constructor(
77
- public server = '',
78
- public path?: any[],
79
- public headers?: any,
80
- public adapter?: any,
81
- public mapper?: any,
82
- public polling?: number,
83
- public retry?: RetryOptions,
84
- public stream?: boolean,
85
- public streamType?: StreamType,
86
- public displayError?: boolean,
87
- public displaySuccess?: boolean,
88
- public successMessage?: string,
89
- public errorMessage?: string,
90
- public saveAs?: string,
91
- public fileContentHeader?: string,
92
- public ws?: WSOptions,
93
- public env?: string,
94
- public uploadFiles?: File | File[],
95
- public uploadFieldName?: string,
96
- public uploadHttpMethod?: 'POST' | 'PUT',
97
- public allowedTypes?: string[],
98
- public maxFileSize?: number,
99
- public maxTotalSize?: number,
100
- ) {}
101
-
102
- static adapt(item?: any): ApiRequest {
103
- const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
104
- return new ApiRequest(
105
- server,
106
- item?.path ? item.path : [],
107
- item?.headers ? item.headers : {},
108
- item?.adapter,
109
- item?.mapper,
110
- item?.polling ? Math.floor(item.polling) : 0,
111
- item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt(),
112
- item?.stream ? item.stream : false,
113
- item?.streamType || StreamType.AI_STREAMING,
114
- item?.displayError ? item.displayError : false,
115
- item?.displaySuccess ? item.displaySuccess : false,
116
- item?.successMessage,
117
- item?.errorMessage,
118
- item?.saveAs,
119
- item?.fileContentHeader,
120
- item?.ws,
121
- item?.env || 'dev',
122
- item?.uploadFiles,
123
- item?.uploadFieldName,
124
- item?.uploadHttpMethod,
125
- Array.isArray(item?.allowedTypes) ? item.allowedTypes : [],
126
- item?.maxFileSize,
127
- item?.maxTotalSize,
128
- );
129
- }
130
- }
131
- ```
132
-
133
- **Properties:**
134
-
135
- | Property | Type | Default | Description |
136
- |----------|------|---------|-------------|
137
- | `server` | `string` | `''` | Base URL or server key for the request |
138
- | `path` | `any[]` | `[]` | Path segments to append to URL |
139
- | `headers` | `any` | `{}` | Custom headers for the request |
140
- | `adapter` | `Function` | `undefined` | Transform incoming response data |
141
- | `mapper` | `Function` | `undefined` | Transform outgoing request payload |
142
- | `polling` | `number` | `0` | Polling interval in seconds (0 = disabled) |
143
- | `retry` | `RetryOptions` | `{ times: 0, delay: 3 }` | Retry configuration |
144
- | `stream` | `boolean` | `false` | Enable streaming response handling |
145
- | `streamType` | `StreamType` | `AI_STREAMING` | Streaming format: `NDJSON`, `SSE`, or `AI_STREAMING` |
146
- | `displayError` | `boolean` | `false` | Show error toast notification |
147
- | `displaySuccess` | `boolean` | `false` | Show success toast notification |
148
- | `successMessage` | `string` | `undefined` | Custom success toast message |
149
- | `errorMessage` | `string` | `undefined` | Custom error toast message |
150
- | `saveAs` | `string` | `undefined` | Filename for file downloads |
151
- | `fileContentHeader` | `string` | `undefined` | Content-Disposition header value for downloads |
152
- | `ws` | `WSOptions` | `undefined` | WebSocket configuration for real-time sync |
153
- | `env` | `string` | `'dev'` | Environment for WebSocket channel naming |
154
- | `uploadFiles` | `File \| File[]` | `undefined` | Files to upload (set internally by `uploadRequest`) |
155
- | `uploadFieldName` | `string` | `undefined` | Form-data field name for uploaded files |
156
- | `uploadHttpMethod` | `'POST' \| 'PUT'` | `undefined` | HTTP method for upload requests |
157
- | `allowedTypes` | `string[]` | `[]` | Allowed MIME types for upload validation |
158
- | `maxFileSize` | `number` | `undefined` | Maximum per-file size in bytes |
159
- | `maxTotalSize` | `number` | `undefined` | Maximum total upload size in bytes |
160
-
161
- **Usage:**
162
- ```typescript
163
- const request = ApiRequest.adapt({
164
- server: 'https://api.example.com',
165
- path: ['users', 123],
166
- headers: { 'Authorization': 'Bearer token' },
167
- adapter: User.adapt,
168
- retry: { times: 3, delay: 2 }
169
- });
170
- ```
171
-
172
- ### RequestOptions
173
-
174
- Extended request configuration for state manager methods (`fetchRecords`, `fetchStream`, etc.).
175
-
176
- ```typescript
177
- export interface RequestOptionsInterface {
178
- path: any[];
179
- headers: any;
180
- forceRefresh?: boolean;
181
- ignoreQueryParams?: string[];
182
- queryParamsExpiresIn?: string | number;
183
- watchParams?: string[];
184
- watchExpiresAt?: number;
185
- }
186
-
187
- export class RequestOptions implements RequestOptionsInterface {
188
- constructor(
189
- public path: any[] = [],
190
- public headers = {},
191
- public forceRefresh?: boolean,
192
- public ignoreQueryParams?: string[],
193
- public queryParamsExpiresIn?: string | number,
194
- public watchParams?: string[],
195
- public watchExpiresAt?: number,
196
- ) {}
197
-
198
- static adapt(item?: any): RequestOptions {
199
- return new RequestOptions(
200
- item?.path,
201
- item?.headers,
202
- item?.forceRefresh,
203
- Array.isArray(item?.ignoreQueryParams) ? item.ignoreQueryParams : [],
204
- item?.queryParamsExpiresIn,
205
- item?.watchParams,
206
- item?.watchExpiresAt,
207
- );
208
- }
209
- }
210
- ```
211
-
212
- **Properties:**
213
-
214
- | Property | Type | Default | Description |
215
- |----------|------|---------|-------------|
216
- | `path` | `any[]` | `[]` | URL path segments |
217
- | `headers` | `any` | `{}` | Custom HTTP headers |
218
- | `forceRefresh` | `boolean` | `undefined` | Bypass query tracking and always make the API request |
219
- | `ignoreQueryParams` | `string[]` | `[]` | Query parameter keys to exclude from request-change tracking |
220
- | `queryParamsExpiresIn` | `string \| number` | `undefined` | Expiry duration for tracked query values (e.g., `'10s'`, `'5mn'`, `'1h'`) |
221
- | `watchParams` | `string[]` | `undefined` | Specific query keys to watch for change detection (variation mode) |
222
- | `watchExpiresAt` | `number` | `undefined` | Epoch timestamp when tracked values expire |
223
-
224
- **Usage:**
225
- ```typescript
226
- service.fetchRecords(RequestOptions.adapt({
227
- path: ['users'],
228
- ignoreQueryParams: ['page', 'size'],
229
- queryParamsExpiresIn: '10s',
230
- forceRefresh: false
231
- }));
232
- ```
233
-
234
- **Scope and behavior:**
235
- - Database enabled (`DatabaseStorage` configured): tracker is active and can prevent repeated identical API calls until expiry resets tracked values.
236
- - Database disabled: tracker is not enabled; requests go straight to API.
237
- - `forceRefresh: true` bypasses tracking and always makes the API request.
238
-
239
- ---
240
-
241
- ## Configuration Models
242
-
243
- ### ConfigOptions
244
-
245
- Global library configuration passed via `forRoot()`.
246
-
247
- ```typescript
248
- export interface ConfigOptions {
249
- httpRequestOptions?: ConfigHTTPOptions;
250
- LocalStorageOptions?: ConfigLocalStorageOptions;
251
- }
252
-
253
- export class ConfigOptions implements ConfigOptions {
254
- constructor(
255
- public httpRequestOptions?: ConfigHTTPOptions,
256
- public LocalStorageOptions?: ConfigLocalStorageOptions
257
- ) {}
258
-
259
- static adapt(item?: any): ConfigOptions {
260
- return new ConfigOptions(
261
- item?.httpRequestOptions ? ConfigHTTPOptions.adapt(item.httpRequestOptions) : undefined,
262
- item?.LocalStorageOptions ? ConfigLocalStorageOptions.adapt(item.LocalStorageOptions) : undefined
263
- );
264
- }
265
- }
266
- ```
267
-
268
- ### ConfigHTTPOptions
269
-
270
- HTTP service configuration.
271
-
272
- ```typescript
273
- export interface ConfigHTTPOptions {
274
- server: string;
275
- path?: any[];
276
- headers?: any;
277
- polling?: number;
278
- retry?: RetryOptions;
279
- stream?: boolean;
280
- displayError?: boolean;
281
- displaySuccess?: boolean;
282
- }
283
-
284
- export class ConfigHTTPOptions {
285
- constructor(
286
- public server: string = '',
287
- public path?: any[],
288
- public headers?: any,
289
- public polling?: number,
290
- public retry?: RetryOptions,
291
- public stream?: boolean,
292
- public displayError?: boolean,
293
- public displaySuccess?: boolean,
294
- ) {}
295
-
296
- static adapt(item?: any): ConfigHTTPOptions {
297
- return new ConfigHTTPOptions(
298
- item?.server,
299
- Array.isArray(item?.path) ? item.path : [],
300
- item?.headers,
301
- item?.polling,
302
- item?.retry ? RetryOptions.adapt(item.retry) : undefined,
303
- item?.stream,
304
- item?.displayError,
305
- item?.displaySuccess,
306
- );
307
- }
308
- }
309
- ```
310
-
311
- **Usage:**
312
- ```typescript
313
- HttpRequestManagerModule.forRoot({
314
- httpRequestOptions: {
315
- server: 'https://api.example.com',
316
- retry: { times: 3, delay: 2 },
317
- displayError: true
318
- }
319
- })
320
- ```
321
-
322
- ### ConfigLocalStorageOptions
323
-
324
- LocalStorage configuration.
325
-
326
- ```typescript
327
- export interface ConfigLocalStorageOptions {
328
- storageName: string;
329
- storageSettingsName: string;
330
- options?: SettingOptions;
331
- }
332
-
333
- export class ConfigLocalStorageOptions {
334
- constructor(
335
- public storageName: string = 'storage',
336
- public storageSettingsName: string = 'global-storage',
337
- public options?: SettingOptions
338
- ) {}
339
-
340
- static adapt(item?: any): ConfigLocalStorageOptions {
341
- return new ConfigLocalStorageOptions(
342
- item?.storageName,
343
- item?.storageSettingsName,
344
- item?.options ? SettingOptions.adapt(item.options) : undefined
345
- );
346
- }
347
- }
348
- ```
349
-
350
- ### ConfigToken
351
-
352
- Injection token type for configuration.
353
-
354
- ```typescript
355
- export const CONFIG_SETTINGS_TOKEN = new InjectionToken<ConfigOptions>(
356
- 'HTTP_REQUEST_MANAGER_CONFIG'
357
- );
358
- ```
359
-
360
- **Usage:**
361
- ```typescript
362
- constructor(
363
- @Inject(CONFIG_SETTINGS_TOKEN) private config?: ConfigOptions
364
- ) {
365
- // Use config
366
- }
367
- ```
368
-
369
- ---
370
-
371
- ## State Management Models
372
-
373
- ### DataType
374
-
375
- Enum for data structure types.
376
-
377
- ```typescript
378
- export enum DataType {
379
- ARRAY = 'array',
380
- OBJECT = 'object'
381
- }
382
- ```
383
-
384
- **Usage:**
385
- ```typescript
386
- // For list of records
387
- super(request, DataType.ARRAY);
388
-
389
- // For single object
390
- super(request, DataType.OBJECT);
391
- ```
392
-
393
- ### DatabaseStorage
394
-
395
- IndexedDB caching configuration.
396
-
397
- ```typescript
398
- export interface DatabaseStorageInterface {
399
- table: string;
400
- expiresIn?: string;
401
- }
402
-
403
- export class DatabaseStorage {
404
- constructor(
405
- public table: string,
406
- public expiresIn?: string
407
- ) {}
408
-
409
- static adapt(item?: any): DatabaseStorage {
410
- return new DatabaseStorage(
411
- item?.table,
412
- item?.expiresIn
413
- );
414
- }
415
- }
416
- ```
417
-
418
- **Usage:**
419
- ```typescript
420
- super(
421
- ApiRequest.adapt({ path: ['users'] }),
422
- DataType.ARRAY,
423
- DatabaseStorage.adapt({
424
- table: 'users',
425
- expiresIn: '1h'
426
- })
427
- );
428
- ```
429
-
430
- ### StateStorageOptions
431
-
432
- Persistent state configuration for StoreStateManagerService.
433
-
434
- ```typescript
435
- export interface StateStorageOptionsInterface {
436
- store: string;
437
- options?: SettingOptions;
438
- model?: Function;
439
- version?: number;
440
- }
441
-
442
- export class StateStorageOptions {
443
- constructor(
444
- public store: string,
445
- public options?: SettingOptions,
446
- public model?: Function,
447
- public version?: number
448
- ) {}
449
-
450
- static adapt(item?: any): StateStorageOptions {
451
- return new StateStorageOptions(
452
- item?.store,
453
- item?.options ? SettingOptions.adapt(item.options) : undefined,
454
- item?.model,
455
- item?.version
456
- );
457
- }
458
- }
459
- ```
460
-
461
- **Usage:**
462
- ```typescript
463
- export class AppStateService extends StoreStateManagerService<AppState> {
464
- constructor() {
465
- super(StateStorageOptions.adapt({
466
- store: 'app-state',
467
- options: {
468
- storage: StorageType.GLOBAL,
469
- encrypted: true,
470
- expiresIn: '24h'
471
- },
472
- model: AppState.adapt,
473
- version: 1
474
- }));
475
- }
476
- }
477
- ```
478
-
479
- ---
480
-
481
- ## WebSocket Models
482
-
483
- ### WSOptions
484
-
485
- WebSocket connection configuration.
486
-
487
- ```typescript
488
- export interface WSOptionsInterface {
489
- wsServer: string;
490
- id: string;
491
- user?: any;
492
- channels?: string[];
493
- jwtToken?: string;
494
- }
495
-
496
- export class WSOptions {
497
- constructor(
498
- public wsServer: string,
499
- public id: string,
500
- public user?: any,
501
- public channels?: string[],
502
- public jwtToken?: string
503
- ) {}
504
-
505
- static adapt(item?: any): WSOptions {
506
- return new WSOptions(
507
- item?.wsServer,
508
- item?.id,
509
- item?.user,
510
- Array.isArray(item?.channels) ? item.channels : [],
511
- item?.jwtToken
512
- );
513
- }
514
- }
515
- ```
516
-
517
- **Usage:**
518
- ```typescript
519
- const wsOptions = WSOptions.adapt({
520
- wsServer: 'ws://localhost:8080',
521
- id: 'my-channel',
522
- user: { userId: 123, name: 'John' },
523
- channels: ['notifications', 'updates']
524
- });
525
-
526
- wsManager.connect(wsOptions, 'jwt-token');
527
- ```
528
-
529
- ### StreamType
530
-
531
- Enum for streaming response types.
532
-
533
- ```typescript
534
- export enum StreamType {
535
- NDJSON = 'ndjson',
536
- SSE = 'sse'
537
- }
538
- ```
539
-
540
- ### ChannelType
541
-
542
- Enum for channel prefixes.
543
-
544
- ```typescript
545
- export enum ChannelType {
546
- STATE = 'SYS', // Private state sync
547
- MESSAGE = 'PUB', // Public messaging
548
- NOTIFICATION = 'MES' // Persistent notifications
549
- }
550
- ```
551
-
552
- **Usage:**
553
- ```typescript
554
- const privateChannel = createChannelName(ChannelType.STATE, 'user-123');
555
- // Result: 'SYS-user-123'
556
-
557
- const publicChannel = createChannelName(ChannelType.MESSAGE, 'general');
558
- // Result: 'PUB-general'
559
-
560
- const notificationChannel = createChannelName(ChannelType.NOTIFICATION, 'alerts');
561
- // Result: 'MES-alerts'
562
- ```
563
-
564
- ### ChannelMessage
565
-
566
- WebSocket message structure.
567
-
568
- ```typescript
569
- export interface ChannelMessageInterface {
570
- type: string;
571
- channel: string;
572
- content: any;
573
- sessionId?: {
574
- id: string;
575
- name?: string;
576
- email?: string;
577
- };
578
- timestamp?: number;
579
- }
580
-
581
- export class ChannelMessage {
582
- constructor(
583
- public type: string,
584
- public channel: string,
585
- public content: any,
586
- public sessionId?: {
587
- id: string;
588
- name?: string;
589
- email?: string;
590
- },
591
- public timestamp?: number
592
- ) {}
593
-
594
- static adapt(item?: any): ChannelMessage {
595
- return new ChannelMessage(
596
- item?.type,
597
- item?.channel,
598
- item?.content,
599
- item?.sessionId ? {
600
- id: item.sessionId.id,
601
- name: item.sessionId.name,
602
- email: item.sessionId.email
603
- } : undefined,
604
- item?.timestamp
605
- );
606
- }
607
- }
608
- ```
609
-
610
- ### WSUser
611
-
612
- WebSocket user information.
613
-
614
- ```typescript
615
- export interface WSUserInterface {
616
- id: string;
617
- name?: string;
618
- email?: string;
619
- channels?: string[];
620
- }
621
-
622
- export class WSUser {
623
- constructor(
624
- public id: string,
625
- public name?: string,
626
- public email?: string,
627
- public channels?: string[]
628
- ) {}
629
-
630
- static adapt(item?: any): WSUser {
631
- return new WSUser(
632
- item?.id,
633
- item?.name,
634
- item?.email,
635
- Array.isArray(item?.channels) ? item.channels : []
636
- );
637
- }
638
- }
639
- ```
640
-
641
- ### CommunicationType
642
-
643
- Enum for WebSocket message types.
644
-
645
- ```typescript
646
- export enum CommunicationType {
647
- SUBSCRIBE = 'subscribe',
648
- UNSUBSCRIBE = 'unsubscribe',
649
- MESSAGE = 'message',
650
- NOTIFICATION = 'notification',
651
- BROADCAST = 'broadcast',
652
- USER_LIST = 'user-list',
653
- CHANNEL_CREATED = 'channel-created',
654
- CHANNEL_DELETED = 'channel-deleted',
655
- PRESENCE = 'presence',
656
- HISTORY = 'history',
657
- LAST_SEEN = 'last-seen'
658
- }
659
- ```
660
-
661
- ---
662
-
663
- ## Storage Models
664
-
665
- ### StorageType
666
-
667
- Enum for storage scope.
668
-
669
- ```typescript
670
- export enum StorageType {
671
- GLOBAL = 'global', // localStorage
672
- SESSION = 'session' // sessionStorage
673
- }
674
- ```
675
-
676
- ### SettingOptions
677
-
678
- Storage configuration options.
679
-
680
- ```typescript
681
- export interface SettingOptionsInterface {
682
- storage?: StorageType;
683
- expires?: number;
684
- expiresIn?: string;
685
- encrypted?: boolean;
686
- }
687
-
688
- export class SettingOptions {
689
- constructor(
690
- public storage?: StorageType,
691
- public expires?: number,
692
- public expiresIn?: string,
693
- public encrypted?: boolean
694
- ) {}
695
-
696
- static adapt(item?: any): SettingOptions {
697
- return new SettingOptions(
698
- item?.storage,
699
- item?.expires,
700
- item?.expiresIn,
701
- item?.encrypted
702
- );
703
- }
704
- }
705
- ```
706
-
707
- **Usage:**
708
- ```typescript
709
- // Encrypted localStorage with 7-day expiration
710
- SettingOptions.adapt({
711
- storage: StorageType.GLOBAL,
712
- encrypted: true,
713
- expiresIn: '7d'
714
- });
715
-
716
- // Unencrypted sessionStorage
717
- SettingOptions.adapt({
718
- storage: StorageType.SESSION,
719
- encrypted: false
720
- });
721
- ```
722
-
723
- ### StorageData
724
-
725
- Internal storage data structure.
726
-
727
- ```typescript
728
- export interface StorageDataInterface {
729
- data: any;
730
- settings: SettingOptions;
731
- expires?: number;
732
- }
733
- ```
734
-
735
- ---
736
-
737
- ## Database Models
738
-
739
- ### TableSchemaDef
740
-
741
- IndexedDB table schema definition.
742
-
743
- ```typescript
744
- export interface TableSchemaDefInterface {
745
- table: string;
746
- schema: string;
747
- }
748
-
749
- export class TableSchemaDef {
750
- constructor(
751
- public table: string,
752
- public schema: string
753
- ) {}
754
-
755
- static adapt(item?: any): TableSchemaDef {
756
- return new TableSchemaDef(
757
- item?.table,
758
- item?.schema
759
- );
760
- }
761
- }
762
- ```
763
-
764
- **Usage:**
765
- ```typescript
766
- const userTable = TableSchemaDef.adapt({
767
- table: 'users',
768
- schema: '++id, name, email, age, createdAt'
769
- });
770
-
771
- dbManager.createDatabaseTable(userTable).subscribe();
772
- ```
773
-
774
- ### Schema Examples
775
-
776
- ```typescript
777
- // Simple auto-increment ID
778
- '++id'
779
-
780
- // Multiple indexes
781
- '++id, name, email'
782
-
783
- // Compound index
784
- '++id, [category+status]'
785
-
786
- // Multi-entry index
787
- '++id, tags' // tags is an array
788
-
789
- // Full schema example
790
- '++id, name, email, &username, [firstName+lastName], tags'
791
- ```
792
-
793
- ---
794
-
795
- ## Retry & Error Models
796
-
797
- ### RetryOptions
798
-
799
- Retry configuration for HTTP requests.
800
-
801
- ```typescript
802
- export interface RetryOptionsInterface {
803
- times: number;
804
- delay: number;
805
- }
806
-
807
- export class RetryOptions {
808
- constructor(
809
- public times: number = 0,
810
- public delay: number = 3
811
- ) {}
812
-
813
- static adapt(item?: any): RetryOptions {
814
- return new RetryOptions(
815
- item?.times || 0,
816
- item?.delay || 3
817
- );
818
- }
819
- }
820
- ```
821
-
822
- **Usage:**
823
- ```typescript
824
- // Retry 3 times with 2 second delay
825
- RetryOptions.adapt({ times: 3, delay: 2 });
826
-
827
- // No retry
828
- RetryOptions.adapt({ times: 0 });
829
-
830
- // Default retry
831
- RetryOptions.adapt(); // { times: 0, delay: 3 }
832
- ```
833
-
834
- ### ErrorSettings
835
-
836
- Error handling configuration for interceptors.
837
-
838
- ```typescript
839
- export interface ErrorSettingsInterface {
840
- displayError?: boolean;
841
- displayWarning?: boolean;
842
- customHandler?: (error: any) => void;
843
- }
844
-
845
- export class ErrorSettings {
846
- constructor(
847
- public displayError?: boolean,
848
- public displayWarning?: boolean,
849
- public customHandler?: (error: any) => void
850
- ) {}
851
- }
852
- ```
853
-
854
- ---
855
-
856
- ## Utility Models
857
-
858
- ### ObjectMerger
859
-
860
- Deep merge configuration.
861
-
862
- ```typescript
863
- export interface MergeOptions {
864
- clone?: boolean;
865
- mergeArrays?: boolean;
866
- customMerge?: (key: string, target: any, source: any) => any;
867
- }
868
- ```
869
-
870
- **Usage:**
871
- ```typescript
872
- const merged = objectMerger.deepMerge(obj1, obj2, {
873
- clone: true,
874
- mergeArrays: false
875
- });
876
- ```
877
-
878
- ### HeadersConfig
879
-
880
- Header configuration.
881
-
882
- ```typescript
883
- export interface HeadersConfig {
884
- 'Content-Type'?: string;
885
- 'Accept-Language'?: string;
886
- 'Current-Date'?: string;
887
- 'Authorization'?: string;
888
- [key: string]: string | undefined;
889
- }
890
- ```
891
-
892
- ---
893
-
894
- ## Model Adapters Pattern
895
-
896
- All models use the `adapt()` pattern for safe transformation:
897
-
898
- ```typescript
899
- // Basic adaptation
900
- const user = User.adapt(apiResponse);
901
-
902
- // With nested objects
903
- const order = Order.adapt({
904
- ...data,
905
- customer: Customer.adapt(data.customer),
906
- items: data.items.map(item => OrderItem.adapt(item))
907
- });
908
-
909
- // With defaults
910
- const config = ConfigOptions.adapt(userProvided || {});
911
-
912
- // Array adaptation
913
- const users = response.users.map(u => User.adapt(u));
914
- ```
915
-
916
- ### Adapter Functions
917
-
918
- Adapters can be passed to HTTP requests:
919
-
920
- ```typescript
921
- const request = ApiRequest.adapt({
922
- path: ['users'],
923
- adapter: User.adapt // Transform response
924
- });
925
-
926
- httpManager.getRequest(request).subscribe();
927
- // data$ will emit User[] instead of raw JSON
928
- ```
929
-
930
- ### Custom Adapters
931
-
932
- Create adapters for your models:
933
-
934
- ```typescript
935
- export interface ProductInterface {
936
- id: number;
937
- name: string;
938
- price: number;
939
- category: Category;
940
- }
941
-
942
- export class Product implements ProductInterface {
943
- constructor(
944
- public id: number = 0,
945
- public name: string = '',
946
- public price: number = 0,
947
- public category: Category
948
- ) {}
949
-
950
- static adapt(item?: any): Product {
951
- return new Product(
952
- item?.id,
953
- item?.name,
954
- item?.price,
955
- item?.category ? Category.adapt(item.category) : Category.adapt()
956
- );
957
- }
958
- }
959
- ```
960
-
961
- ---
962
-
963
- ## Batch Request Models
964
-
965
- ### BatchOptions
966
-
967
- Configuration for batch request execution.
968
-
969
- ```typescript
970
- export interface BatchOptionsInterface {
971
- mode?: 'sequential' | 'parallel';
972
- stopOnError?: boolean;
973
- concurrency?: number;
974
- ignoreErrors?: boolean;
975
- logErrors?: boolean;
976
- displaySuccess?: boolean;
977
- displayError?: boolean;
978
- }
979
-
980
- export class BatchOptions implements BatchOptionsInterface {
981
- constructor(
982
- public mode: 'sequential' | 'parallel' = 'sequential',
983
- public stopOnError: boolean = false,
984
- public concurrency: number = 3,
985
- public ignoreErrors: boolean = false,
986
- public logErrors: boolean = true,
987
- public displaySuccess?: boolean,
988
- public displayError?: boolean,
989
- ) {}
990
-
991
- static adapt(item?: any): BatchOptions {
992
- return new BatchOptions(
993
- item?.mode ?? 'sequential',
994
- item?.stopOnError ?? false,
995
- item?.concurrency ?? 3,
996
- item?.ignoreErrors ?? false,
997
- item?.logErrors !== false,
998
- item?.displaySuccess ?? false,
999
- item?.displayError ?? false,
1000
- );
1001
- }
1002
- }
1003
- ```
1004
-
1005
- ### BatchProgress
1006
-
1007
- Progress tracking for batch operations.
1008
-
1009
- ```typescript
1010
- export interface BatchProgress {
1011
- total: number;
1012
- pending: number;
1013
- completed: number;
1014
- failed: number;
1015
- percent: number;
1016
- }
1017
- ```
1018
-
1019
- ### BatchRequestState
1020
-
1021
- Per-request state within a batch operation.
1022
-
1023
- ```typescript
1024
- export type BatchRequestState<T> =
1025
- | BatchPendingState
1026
- | BatchSuccessState<T>
1027
- | BatchErrorState;
1028
-
1029
- export interface BatchPendingState {
1030
- index: number;
1031
- request: any;
1032
- isPending: true;
1033
- data?: undefined;
1034
- error?: undefined;
1035
- }
1036
-
1037
- export interface BatchSuccessState<T> {
1038
- index: number;
1039
- request: any;
1040
- isPending: false;
1041
- data: T;
1042
- error?: undefined;
1043
- }
1044
-
1045
- export interface BatchErrorState {
1046
- index: number;
1047
- request: any;
1048
- isPending: false;
1049
- data?: undefined;
1050
- error: any;
1051
- }
1052
- ```
1053
-
1054
- ### BatchResult
1055
-
1056
- Result of a single request within a batch.
1057
-
1058
- ```typescript
1059
- export interface BatchResultInterface<T = any> {
1060
- request: any;
1061
- success: boolean;
1062
- data?: T;
1063
- error?: any;
1064
- index: number;
1065
- timestamp: number;
1066
- }
1067
-
1068
- export class BatchResult<T = any> implements BatchResultInterface<T> {
1069
- constructor(
1070
- public request: any,
1071
- public success: boolean,
1072
- public data?: T,
1073
- public error?: any,
1074
- public index: number = 0,
1075
- public timestamp: number = Date.now(),
1076
- ) {}
1077
-
1078
- static adapt<T>(item?: any): BatchResult<T> {
1079
- return new BatchResult<T>(
1080
- item?.request,
1081
- item?.success ?? false,
1082
- item?.data,
1083
- item?.error,
1084
- item?.index ?? 0,
1085
- item?.timestamp ?? Date.now(),
1086
- );
1087
- }
1088
- }
1089
- ```
1090
-
1091
- ---
1092
-
1093
- ## Upload Models
1094
-
1095
- ### UploadValidationErrorModel
1096
-
1097
- Error returned when upload validation fails.
1098
-
1099
- ```typescript
1100
- export interface InvalidFileInfoInterface {
1101
- fileName: string;
1102
- fileSize: number;
1103
- fileType: string;
1104
- errors: string[];
1105
- }
1106
-
1107
- export class InvalidFileInfoModel implements InvalidFileInfoInterface {
1108
- constructor(
1109
- public fileName: string = '',
1110
- public fileSize: number = 0,
1111
- public fileType: string = '',
1112
- public errors: string[] = []
1113
- ) {}
1114
-
1115
- static adapt(item?: any): InvalidFileInfoModel {
1116
- return new InvalidFileInfoModel(
1117
- item?.fileName,
1118
- item?.fileSize,
1119
- item?.fileType,
1120
- Array.isArray(item?.errors) ? item.errors : []
1121
- );
1122
- }
1123
- }
1124
-
1125
- export interface UploadValidationErrorInterface {
1126
- invalidFiles: InvalidFileInfoModel[];
1127
- validFilesCount: number;
1128
- totalFilesCount: number;
1129
- }
1130
-
1131
- export class UploadValidationErrorModel implements UploadValidationErrorInterface {
1132
- constructor(
1133
- public invalidFiles: InvalidFileInfoModel[] = [],
1134
- public validFilesCount: number = 0,
1135
- public totalFilesCount: number = 0
1136
- ) {}
1137
-
1138
- static adapt(item?: any): UploadValidationErrorModel {
1139
- return new UploadValidationErrorModel(
1140
- Array.isArray(item?.invalidFiles) ? item.invalidFiles.map((f: any) => InvalidFileInfoModel.adapt(f)) : [],
1141
- item?.validFilesCount,
1142
- item?.totalFilesCount
1143
- );
1144
- }
1145
- }
1146
- ```
1147
-
1148
- ---
1149
-
1150
- ## Query Parameter Tracking Models
1151
-
1152
- ### QueryParamsTrackerOptions
1153
-
1154
- Options for the query parameter tracking system.
1155
-
1156
- ```typescript
1157
- export interface QueryParamsTrackerOptionsInterface {
1158
- mode?: 'exact' | 'variation';
1159
- watchParams?: string[];
1160
- watchExpiresAt?: string | number;
1161
- watchParamsExpire?: string | number;
1162
- }
1163
-
1164
- export class QueryParamsTrackerOptionsModel implements QueryParamsTrackerOptionsInterface {
1165
- constructor(
1166
- public mode?: 'exact' | 'variation',
1167
- public watchParams?: string[],
1168
- public watchExpiresAt?: string | number,
1169
- public watchParamsExpire?: string | number
1170
- ) {}
1171
-
1172
- static adapt(item?: any): QueryParamsTrackerOptionsModel {
1173
- return new QueryParamsTrackerOptionsModel(
1174
- item?.mode,
1175
- Array.isArray(item?.watchParams) ? item.watchParams : [],
1176
- item?.watchExpiresAt,
1177
- item?.watchParamsExpire
1178
- );
1179
- }
1180
- }
1181
- ```
1182
-
1183
- **Properties:**
1184
-
1185
- | Property | Type | Default | Description |
1186
- |----------|------|---------|-------------|
1187
- | `mode` | `'exact' \| 'variation'` | `undefined` | Tracking mode: `exact` matches full query hash, `variation` watches individual param values |
1188
- | `watchParams` | `string[]` | `[]` | Specific query parameter keys to watch for changes |
1189
- | `watchExpiresAt` | `string \| number` | `undefined` | Epoch timestamp or duration string when tracked values expire |
1190
- | `watchParamsExpire` | `string \| number` | `undefined` | Alternative expiry duration for watched params (e.g., `'10s'`, `'5mn'`) |
1191
-
1192
- ### NormalizedRequestOptions
1193
-
1194
- Internal normalized representation of request options.
1195
-
1196
- ```typescript
1197
- export type QueryValue = string;
1198
- export type NormalizedQueryParams = Record<string, QueryValue>;
1199
-
1200
- export interface NormalizedRequestOptionsInterface {
1201
- pathKey: string;
1202
- query: NormalizedQueryParams;
1203
- hasQuery: boolean;
1204
- }
1205
- ```
1206
-
1207
- ### PathTrackerState
1208
-
1209
- Per-path tracking state for consumed query values.
1210
-
1211
- ```typescript
1212
- export interface PathTrackerStateInterface {
1213
- watchExpiresAt?: number;
1214
- consumedValuesByKey: Record<string, QueryValue[]>;
1215
- }
1216
- ```
1217
-
1218
- ### QueryTrackerState
1219
-
1220
- Top-level state for the query parameter tracking system.
1221
-
1222
- ```typescript
1223
- export interface QueryTrackerStateInterface {
1224
- paths: Record<string, PathTrackerStateInterface>;
1225
- }
1226
- ```
1227
-
1228
- ---
1229
-
1230
- ## Operation Models
1231
-
1232
- ### OperationResultModel
1233
-
1234
- Result of a CRUD operation emitted after state changes.
1235
-
1236
- ```typescript
1237
- export interface OperationResultInterface {
1238
- success: boolean;
1239
- operation: 'CREATE' | 'UPDATE' | 'DELETE';
1240
- }
1241
-
1242
- export class OperationResultModel implements OperationResultInterface {
1243
- constructor(
1244
- public success: boolean = false,
1245
- public operation: 'CREATE' | 'UPDATE' | 'DELETE' = 'UPDATE',
1246
- ) {}
1247
-
1248
- static adapt(item?: any): OperationResultModel {
1249
- return new OperationResultModel(
1250
- item?.success ?? false,
1251
- item?.operation || 'UPDATE',
1252
- );
1253
- }
1254
- }
1255
- ```
1256
-
1257
- ---
1258
-
1259
- ## Related Documentation
1260
-
1261
- - [`Complete API Reference`](COMPLETE_API_REFERENCE.md) - Full API with methods
1262
- - [`HTTP Manager`](HTTP_MANAGER_README.md) - HTTP service usage
1263
- - [`State Manager`](HTTP_STATE_MANAGER_README.md) - State management
1264
- - [`Architecture`](ARCHITECTURE.md) - System architecture