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,69 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
-
3
- @Injectable({
4
- providedIn: 'root'
5
- })
6
- export class PathQueryService {
7
-
8
- buildAPIPath(server: string|string[], params?: any[]|any) {
9
-
10
- server = (Array.isArray(server)) ? server.join('/') : server
11
-
12
- const pathObjects = (params) ? params.filter((path:any) => (!this.isObject(path))) : []
13
- const queryObjects = (params) ? params.filter((path:any) => (this.isObject(path))) : []
14
-
15
- const query = this.removeEmptyParams(queryObjects.reduce((r: any, c: any) => {
16
- Object.entries(c).forEach(([key, value]) => {
17
- r[key] = Array.isArray(value) ? value.join(',') : value
18
- })
19
- return r
20
- }, {}))
21
-
22
- let path = this.buildRestPath(server, pathObjects)
23
-
24
- return(Object.keys(query).length > 0) ? path + '?' + this.buildQueryPath(query) : path
25
-
26
- }
27
-
28
- private buildRestPath(server: string, params: any[]): string {
29
- server = (server) ? server : ''
30
- server = (server.charAt(0) === '/') ? server.substring(1) : server
31
- return this.cleanUrlPath(server +'/'+ params.join('/'))
32
- }
33
-
34
- private buildQueryPath(params: any): string {
35
-
36
- const searchParams = new URLSearchParams()
37
-
38
- for (const key in params) {
39
-
40
- if (Array.isArray(params[key])) {
41
- params[key].forEach((value: any) => searchParams.append(key, value));
42
- } else {
43
- searchParams.append(key, params[key]);
44
- }
45
-
46
- }
47
-
48
- return searchParams.toString()
49
-
50
- }
51
-
52
- private cleanUrlPath(str: string) {
53
- return str.replace(/([^:]\/)\/+/g, "$1").replace(/\/$/,'')
54
- }
55
-
56
- private isObject(val: any): boolean {
57
- return (val === null) ? false : ( (typeof val === 'function') || (typeof val === 'object') )
58
- }
59
-
60
- private removeEmptyParams = (obj: any): Record<string, any> =>
61
- Object.fromEntries(
62
- Object.entries(obj)
63
- .map(([key, value]) =>
64
- [key, value && typeof value === 'object' ? this.removeEmptyParams(value) : value]
65
- )
66
- .filter(([_, value]) => value !== undefined && value !== "")
67
- )
68
-
69
- }
@@ -1,442 +0,0 @@
1
- // import { inject, Injectable } from '@angular/core';
2
- // import { BehaviorSubject } from 'rxjs';
3
- // import { take } from 'rxjs/operators';
4
-
5
- // import { LocalStorageManagerService } from '../local-storage-manager-service/local-storage-manager.service';
6
- // import { SettingOptions } from '../local-storage-manager-service/models/setting-options.model';
7
- // import { StorageType } from '../local-storage-manager-service/models/storage-type.enum';
8
- // import {
9
- // NormalizedQueryParams,
10
- // NormalizedRequestOptionsInterface,
11
- // QueryValue
12
- // } from './models/normalized-request-options.model';
13
- // import { PathTrackerStateInterface } from './models/path-tracker-state.model';
14
- // import { QueryParamsTrackerOptionsInterface } from './models/query-params-tracker-options.model';
15
- // import { QueryTrackerStateInterface, QueryTrackerStateModel } from './models/query-tracker-state.model';
16
-
17
- // export type QueryParamsTrackerOptions = QueryParamsTrackerOptionsInterface;
18
-
19
- // const TRACKER_STORE_NAME = 'query_params_tracker';
20
- // const TRACKER_SESSION_INIT_KEY = 'query_params_tracker_initialized';
21
- // const DEFAULT_TRACKER_OPTIONS = SettingOptions.adapt({
22
- // storage: StorageType.GLOBAL,
23
- // encrypted: false,
24
- // });
25
-
26
- // @Injectable({
27
- // providedIn: 'root'
28
- // })
29
- // export class QueryParamsTrackerService {
30
-
31
- // private state: QueryTrackerStateInterface = { paths: {} };
32
- // private stateRestored = false;
33
- // private readonly localStorageManager = inject(LocalStorageManagerService);
34
- // readonly ready$ = new BehaviorSubject<boolean>(false);
35
-
36
- // getPathsSnapshot(): QueryTrackerStateInterface['paths'] {
37
- // this.ensureStateRestored();
38
- // return QueryTrackerStateModel.adapt(this.state).paths;
39
- // }
40
-
41
- // clearTracking(resetSessionInit = false): void {
42
- // this.state = { paths: {} };
43
- // this.localStorageManager.deleteStore({ name: TRACKER_STORE_NAME });
44
-
45
- // if (resetSessionInit && this.hasSessionStorage()) {
46
- // sessionStorage.removeItem(TRACKER_SESSION_INIT_KEY);
47
- // }
48
- // }
49
-
50
- // clearTrackingForPath(pathKey: string): void {
51
- // this.ensureStateRestored();
52
- // if (this.state.paths[pathKey]) {
53
- // delete this.state.paths[pathKey];
54
- // this.persistState();
55
- // }
56
- // }
57
-
58
- // checkRequestOptions(requestOptions: any[] = [], options: QueryParamsTrackerOptions = {}): boolean {
59
- // this.ensureStateRestored();
60
-
61
- // if (!this.ready$.value) {
62
- // return true;
63
- // }
64
-
65
- // const normalized = this.normalizeRequestOptions(requestOptions);
66
-
67
- // if (!normalized.pathKey) return false;
68
-
69
- // this.cleanupExpiredEntries();
70
-
71
- // if (!normalized.hasQuery) {
72
- // const pathState = this.ensurePathState(normalized.pathKey);
73
- // const pathSeenBefore = Object.keys(pathState.consumedValuesByKey).length > 0;
74
- // if (!pathSeenBefore) {
75
- // this.persistState();
76
- // }
77
- // return !pathSeenBefore;
78
- // }
79
-
80
- // if (options.mode === 'exact') {
81
- // return this.checkExact(normalized, options);
82
- // }
83
-
84
- // return this.checkVariation(normalized, options);
85
- // }
86
-
87
- // matchesPath(requestOptions: any[] = [], expectedPathOptions: any[] = []): boolean {
88
- // this.ensureStateRestored();
89
- // const requestPath = this.normalizeRequestOptions(requestOptions).pathKey;
90
- // const expectedPath = this.normalizeRequestOptions(expectedPathOptions).pathKey;
91
- // return Boolean(requestPath) && requestPath === expectedPath;
92
- // }
93
-
94
- // private checkExact(normalized: NormalizedRequestOptionsInterface, options: QueryParamsTrackerOptions): boolean {
95
- // const pathState = this.ensurePathState(normalized.pathKey);
96
- // const filteredQuery = this.filterQueryByWatchParams(normalized.query, options.watchParams);
97
-
98
- // if (Object.keys(filteredQuery).length === 0) {
99
- // return false;
100
- // }
101
-
102
- // const hash = this.stringifyQuery(filteredQuery);
103
- // const consumed = pathState.consumedValuesByKey['__exact__'] || [];
104
-
105
- // if (!consumed.includes(hash)) {
106
- // pathState.consumedValuesByKey['__exact__'] = [...consumed, hash];
107
- // this.persistState();
108
- // return true;
109
- // }
110
-
111
- // return false;
112
- // }
113
-
114
- // private checkVariation(normalized: NormalizedRequestOptionsInterface, options: QueryParamsTrackerOptions): boolean {
115
- // const pathState = this.ensurePathState(normalized.pathKey);
116
-
117
- // if (Array.isArray(options.watchParams) && options.watchParams.length === 0) {
118
- // const pathSeenBefore = Object.keys(pathState.consumedValuesByKey).length > 0;
119
- // if (!pathSeenBefore) {
120
- // pathState.watchExpiresAt = this.buildExpiryEpoch(
121
- // typeof options.watchExpiresAt !== 'undefined' ? options.watchExpiresAt : options.watchParamsExpire
122
- // );
123
- // this.persistState();
124
- // }
125
- // return !pathSeenBefore;
126
- // }
127
-
128
- // const filteredQuery = this.filterQueryByWatchParams(normalized.query, options.watchParams);
129
- // const keys = Object.keys(filteredQuery);
130
-
131
- // if (keys.length === 0) {
132
- // return false;
133
- // }
134
-
135
- // this.resetPathStateIfExpired(pathState);
136
-
137
- // let accepted = false;
138
-
139
- // keys.forEach((key) => {
140
- // const currentValue = filteredQuery[key];
141
- // const consumed = pathState.consumedValuesByKey[key] || [];
142
-
143
- // if (!consumed.includes(currentValue)) {
144
- // pathState.consumedValuesByKey[key] = [...consumed, currentValue];
145
- // accepted = true;
146
- // }
147
- // });
148
-
149
- // if (accepted) {
150
- // pathState.watchExpiresAt = this.buildExpiryEpoch(
151
- // typeof options.watchExpiresAt !== 'undefined' ? options.watchExpiresAt : options.watchParamsExpire
152
- // );
153
- // this.persistState();
154
- // }
155
-
156
- // return accepted;
157
- // }
158
-
159
- // private filterQueryByWatchParams(
160
- // query: NormalizedQueryParams,
161
- // watchParams?: string[]
162
- // ): NormalizedQueryParams {
163
- // if (!Array.isArray(watchParams)) {
164
- // return query;
165
- // }
166
-
167
- // if (watchParams.length === 0) {
168
- // return {};
169
- // }
170
-
171
- // const normalizedWatchParams = watchParams.map((p) => this.normalizeParamKey(p));
172
- // return Object.keys(query).reduce((acc, key) => {
173
- // if (normalizedWatchParams.includes(key)) {
174
- // acc[key] = query[key];
175
- // }
176
- // return acc;
177
- // }, {} as NormalizedQueryParams);
178
- // }
179
-
180
- // private normalizeRequestOptions(requestOptions: any[]): NormalizedRequestOptionsInterface {
181
- // const params = Array.isArray(requestOptions) ? requestOptions : [];
182
- // const pathSegments: string[] = [];
183
- // const queryObjects: Record<string, any>[] = [];
184
-
185
- // params.forEach((item) => {
186
- // if (this.isPlainObject(item)) {
187
- // queryObjects.push(item);
188
- // } else if (typeof item !== 'undefined' && item !== null) {
189
- // const parsed = this.parsePathSegment(String(item));
190
- // if (parsed.pathSegment) {
191
- // pathSegments.push(parsed.pathSegment);
192
- // }
193
- // if (Object.keys(parsed.queryObject).length > 0) {
194
- // queryObjects.push(parsed.queryObject);
195
- // }
196
- // }
197
- // });
198
-
199
- // const query = queryObjects.reduce((acc, current) => {
200
- // Object.keys(current).forEach((key) => {
201
- // const normalizedKey = this.normalizeParamKey(key);
202
- // const value = current[key];
203
-
204
- // if (!normalizedKey || typeof value === 'undefined' || value === null || value === '') {
205
- // return;
206
- // }
207
-
208
- // acc[normalizedKey] = this.normalizeParamValue(value);
209
- // });
210
-
211
- // return acc;
212
- // }, {} as NormalizedQueryParams);
213
-
214
- // return {
215
- // pathKey: this.normalizePath(pathSegments),
216
- // query,
217
- // hasQuery: Object.keys(query).length > 0,
218
- // };
219
- // }
220
-
221
- // private parsePathSegment(rawSegment: string): { pathSegment: string; queryObject: Record<string, any> } {
222
- // const [pathPart, ...queryParts] = String(rawSegment).split('?');
223
- // const queryString = queryParts.join('?');
224
- // const queryObject: Record<string, any> = {};
225
-
226
- // if (queryString) {
227
- // queryString.split('&').forEach((pair) => {
228
- // if (!pair) return;
229
-
230
- // const [rawKey, ...rawValueParts] = pair.split('=');
231
- // const key = this.safeDecode(rawKey).trim();
232
- // const value = this.safeDecode(rawValueParts.join('=')).trim();
233
-
234
- // if (!key) return;
235
-
236
- // queryObject[key] = value;
237
- // });
238
- // }
239
-
240
- // return {
241
- // pathSegment: pathPart,
242
- // queryObject,
243
- // };
244
- // }
245
-
246
- // private safeDecode(value: string | undefined): string {
247
- // if (typeof value === 'undefined') {
248
- // return '';
249
- // }
250
-
251
- // try {
252
- // return decodeURIComponent(value);
253
- // } catch {
254
- // return String(value);
255
- // }
256
- // }
257
-
258
- // private normalizePath(pathSegments: string[]): string {
259
- // return pathSegments
260
- // .map((segment) => String(segment).trim())
261
- // .filter((segment) => segment.length > 0)
262
- // .join('/')
263
- // .replace(/([^:]\/+)\/+/g, '$1')
264
- // .replace(/^\//, '')
265
- // .replace(/\/$/, '');
266
- // }
267
-
268
- // private normalizeParamKey(key: string): string {
269
- // return String(key).trim().toLowerCase();
270
- // }
271
-
272
- // private normalizeParamValue(value: any): QueryValue {
273
- // if (Array.isArray(value)) {
274
- // return value.map((item) => this.normalizeParamValue(item)).join(',');
275
- // }
276
-
277
- // if (this.isPlainObject(value)) {
278
- // return this.stringifyQuery(
279
- // Object.keys(value).reduce((acc, key) => {
280
- // acc[this.normalizeParamKey(key)] = this.normalizeParamValue(value[key]);
281
- // return acc;
282
- // }, {} as NormalizedQueryParams)
283
- // );
284
- // }
285
-
286
- // return String(value).trim().toLowerCase();
287
- // }
288
-
289
- // private buildExpiryEpoch(expireIn?: string | number): number | undefined {
290
- // if (typeof expireIn === 'undefined' || expireIn === null || expireIn === '') {
291
- // return undefined;
292
- // }
293
-
294
- // if (typeof expireIn === 'number' && Number.isFinite(expireIn) && expireIn > 0) {
295
- // return Math.floor(Date.now() / 1000) + Math.floor(expireIn);
296
- // }
297
-
298
- // const raw = String(expireIn).trim().toLowerCase().replace(/\s+/g, '');
299
- // const parsed = raw.match(/^(\d+)(y|w|d|hr|h|mn|min|m|s)$/);
300
-
301
- // if (!parsed) {
302
- // return undefined;
303
- // }
304
-
305
- // const value = Number(parsed[1]);
306
- // const unit = parsed[2];
307
-
308
- // const toSeconds: Record<string, number> = {
309
- // y: 31556926,
310
- // w: 604800,
311
- // d: 86400,
312
- // hr: 3600,
313
- // h: 3600,
314
- // mn: 60,
315
- // min: 60,
316
- // m: 60,
317
- // s: 1,
318
- // };
319
-
320
- // const seconds = toSeconds[unit];
321
-
322
- // if (!seconds) {
323
- // return undefined;
324
- // }
325
-
326
- // return Math.floor(Date.now() / 1000) + value * seconds;
327
- // }
328
-
329
- // private resetPathStateIfExpired(pathState: PathTrackerStateInterface): void {
330
- // const now = Math.floor(Date.now() / 1000);
331
-
332
- // if (pathState.watchExpiresAt && pathState.watchExpiresAt <= now) {
333
- // pathState.consumedValuesByKey = {};
334
- // pathState.watchExpiresAt = undefined;
335
- // }
336
- // }
337
-
338
- // private cleanupExpiredEntries(): void {
339
- // const now = Math.floor(Date.now() / 1000);
340
-
341
- // Object.keys(this.state.paths).forEach((pathKey) => {
342
- // const pathState = this.state.paths[pathKey];
343
-
344
- // if (pathState.watchExpiresAt && pathState.watchExpiresAt <= now) {
345
- // pathState.consumedValuesByKey = {};
346
- // pathState.watchExpiresAt = undefined;
347
- // }
348
-
349
- // const hasTrackedValues = Object.keys(pathState.consumedValuesByKey).some(
350
- // (key) => (pathState.consumedValuesByKey[key] || []).length > 0
351
- // );
352
- // if (!hasTrackedValues) {
353
- // delete this.state.paths[pathKey];
354
- // }
355
- // });
356
- // }
357
-
358
- // private ensurePathState(pathKey: string): PathTrackerStateInterface {
359
- // if (!this.state.paths[pathKey]) {
360
- // this.state.paths[pathKey] = {
361
- // consumedValuesByKey: {},
362
- // };
363
- // }
364
-
365
- // return this.state.paths[pathKey];
366
- // }
367
-
368
- // private ensureStateRestored(): void {
369
- // if (this.stateRestored) {
370
- // return;
371
- // }
372
-
373
- // this.stateRestored = true;
374
- // this.restoreState();
375
- // }
376
-
377
- // private restoreState(): void {
378
- // this.localStorageManager.store$(TRACKER_STORE_NAME)
379
- // .pipe(take(1))
380
- // .subscribe({
381
- // next: (storedState: any) => {
382
- // if (this.isTrackerState(storedState)) {
383
- // this.state = QueryTrackerStateModel.adapt(storedState);
384
- // this.cleanupExpiredEntries();
385
- // } else {
386
- // this.state = { paths: {} };
387
- // }
388
-
389
- // this.ready$.next(true);
390
- // },
391
- // error: () => {
392
- // this.state = { paths: {} };
393
- // this.ready$.next(true);
394
- // }
395
- // });
396
- // }
397
-
398
- // private persistState(): void {
399
- // this.localStorageManager.storeExists$(TRACKER_STORE_NAME)
400
- // .pipe(take(1))
401
- // .subscribe((exists: boolean) => {
402
- // if (exists) {
403
- // this.localStorageManager.updateStore({ name: TRACKER_STORE_NAME, data: this.state });
404
- // return;
405
- // }
406
-
407
- // this.localStorageManager.createStore({
408
- // name: TRACKER_STORE_NAME,
409
- // data: this.state,
410
- // options: DEFAULT_TRACKER_OPTIONS,
411
- // });
412
- // });
413
- // }
414
-
415
- // private stringifyQuery(query: NormalizedQueryParams): string {
416
- // return JSON.stringify(
417
- // Object.keys(query)
418
- // .sort()
419
- // .reduce((acc, key) => {
420
- // acc[key] = query[key];
421
- // return acc;
422
- // }, {} as NormalizedQueryParams)
423
- // );
424
- // }
425
-
426
- // private isTrackerState(value: any): value is QueryTrackerStateInterface {
427
- // return this.isPlainObject(value) && this.isPlainObject(value.paths);
428
- // }
429
-
430
- // private isPlainObject(value: any): boolean {
431
- // return Object.prototype.toString.call(value) === '[object Object]';
432
- // }
433
-
434
- // private hasSessionStorage(): boolean {
435
- // try {
436
- // return typeof sessionStorage !== 'undefined';
437
- // } catch {
438
- // return false;
439
- // }
440
- // }
441
-
442
- // }
@@ -1,83 +0,0 @@
1
- /**
2
- * Generate a random hex color code
3
- * @returns A random hex color string (e.g., "#FF5733")
4
- */
5
- export const RandomHexColor = (): string => {
6
- // Generate a random number between 0 and 16777215 (0xFFFFFF)
7
- const randomColor = Math.floor(Math.random() * 16777215);
8
- // Convert to hexadecimal and pad with zeros to ensure 6 digits
9
- const hexColor = randomColor.toString(16).padStart(6, '0');
10
- // Return with # prefix
11
- return `#${hexColor}`;
12
- };
13
-
14
- /**
15
- * Generate a random hex color with constraints to ensure good visibility
16
- * @param options Optional constraints for color generation
17
- * @returns A random hex color string with good contrast
18
- */
19
- export const RandomVisibleColor = (options?: {
20
- minBrightness?: number; // Minimum brightness (0-255), default: 50
21
- maxBrightness?: number; // Maximum brightness (0-255), default: 200
22
- }): string => {
23
- const minBrightness = options?.minBrightness ?? 50;
24
- const maxBrightness = options?.maxBrightness ?? 200;
25
-
26
- // Generate RGB values within the specified brightness range
27
- const r = Math.floor(Math.random() * (maxBrightness - minBrightness) + minBrightness);
28
- const g = Math.floor(Math.random() * (maxBrightness - minBrightness) + minBrightness);
29
- const b = Math.floor(Math.random() * (maxBrightness - minBrightness) + minBrightness);
30
-
31
- // Convert to hex and pad with zeros
32
- const toHex = (n: number) => n.toString(16).padStart(2, '0');
33
- return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
34
- };
35
-
36
- /**
37
- * Generate a random color from a predefined palette
38
- * @returns A hex color from a set of visually distinct colors
39
- */
40
- export const RandomPaletteColor = (): string => {
41
- const colorPalette = [
42
- '#FF6B6B', // Coral
43
- '#4ECDC4', // Turquoise
44
- '#45B7D1', // Sky Blue
45
- '#FFBE0B', // Amber
46
- '#FB5607', // Orange
47
- '#8338EC', // Violet
48
- '#3A86FF', // Azure
49
- '#38B000', // Green
50
- '#9D4EDD', // Purple
51
- '#FF006E', // Pink
52
- '#0077B6', // Blue
53
- '#2A9D8F' // Teal
54
- ];
55
-
56
- const randomIndex = Math.floor(Math.random() * colorPalette.length);
57
- return colorPalette[randomIndex];
58
- };
59
-
60
- /**
61
- * Generate a random HSL color
62
- * @param options Optional constraints for HSL generation
63
- * @returns A random HSL color string (e.g., "hsl(120, 100%, 50%)")
64
- */
65
- export const RandomHSLColor = (options?: {
66
- saturation?: [number, number]; // Saturation range (0-100), default: [50, 100]
67
- lightness?: [number, number]; // Lightness range (0-100), default: [40, 80]
68
- }): string => {
69
- // Full range for hue (0-360)
70
- const hue = Math.floor(Math.random() * 361);
71
-
72
- // Default or custom saturation range
73
- const satMin = options?.saturation?.[0] ?? 50;
74
- const satMax = options?.saturation?.[1] ?? 100;
75
- const saturation = Math.floor(Math.random() * (satMax - satMin + 1) + satMin);
76
-
77
- // Default or custom lightness range
78
- const lightMin = options?.lightness?.[0] ?? 40;
79
- const lightMax = options?.lightness?.[1] ?? 80;
80
- const lightness = Math.floor(Math.random() * (lightMax - lightMin + 1) + lightMin);
81
-
82
- return `hsl(${hue}, ${saturation}%, ${lightness}%)`;
83
- };