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,106 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import * as CryptoJS from 'crypto-js';
3
-
4
- import { RandomSignature } from './random';
5
- import { AppService } from '../app.service';
6
-
7
- @Injectable({
8
- providedIn: 'root'
9
- })
10
- export class SymmetricalEncryptionService {
11
-
12
- appID: string; // APP SERVICE TO MANAGER ENCRYPTION KEY
13
-
14
- private appService = inject(AppService)
15
-
16
- constructor() {
17
- // TODO: The APP ID is not a string, it is a function
18
- this.appID = (this.appService.appID) ? this.appService.appID : ''
19
- if(this.appID === '') console.warn('No App Key has been define')
20
- }
21
-
22
- generateCipherKey() {
23
- return (RandomSignature().toString() + RandomSignature().toString()).substring(0, 8)
24
- }
25
-
26
- encrypt(str: any, key = this.appID) {
27
-
28
- if(!str || key === '') return ''
29
-
30
- let _key = CryptoJS.enc.Utf8.parse(key)
31
- let _iv = CryptoJS.enc.Utf8.parse(key)
32
-
33
- try {
34
-
35
- const encrypted = CryptoJS.AES.encrypt(
36
- JSON.stringify(str), _key, {
37
- keySize: 16,
38
- iv: _iv,
39
- mode: CryptoJS.mode.ECB,
40
- padding: CryptoJS.pad.Pkcs7
41
- });
42
-
43
- return encrypted.toString()
44
-
45
- } catch(error: any) {
46
- console.log(error)
47
- }
48
-
49
- return
50
- }
51
-
52
- decrypt(str: string, key = this.appID) {
53
-
54
- if(!str || key === '') return null
55
-
56
- let _key = CryptoJS.enc.Utf8.parse(key)
57
- let _iv = CryptoJS.enc.Utf8.parse(key)
58
-
59
- try {
60
-
61
- const decrypted = CryptoJS.AES.decrypt(
62
- str, _key, {
63
- keySize: 16,
64
- iv: _iv,
65
- mode: CryptoJS.mode.ECB,
66
- padding: CryptoJS.pad.Pkcs7
67
- });
68
-
69
- // Check if the decrypted data is valid before converting to UTF-8
70
- const decryptedStr = decrypted.toString(CryptoJS.enc.Utf8);
71
- if (!decryptedStr) {
72
- console.warn('Decryption resulted in empty string');
73
- return null;
74
- }
75
-
76
- return decryptedStr;
77
-
78
- } catch(error: any) {
79
- const message = String(error?.message || '');
80
- if (message && !message.includes('Malformed UTF-8 data')) {
81
- console.warn('Decryption failed');
82
- }
83
- return null;
84
- }
85
-
86
- return null;
87
- }
88
-
89
- createSignature(url: string, len = 16) {
90
- const sig = CryptoJS.SHA256(url).toString(CryptoJS.enc.Hex)
91
- return sig.substring(0, len).toUpperCase()
92
- }
93
-
94
- normalizeURL(url: string) {
95
- const normalizedURL = url.replace(/(https?:\/\/)?(www\.)?/, '').replace(/\/+$/, '');
96
- return normalizedURL;
97
- }
98
-
99
- generateSignature(url: string) {
100
- const normalizedURL = this.normalizeURL(url)
101
- const hash = CryptoJS.SHA256(normalizedURL)
102
- const signature = hash.toString(CryptoJS.enc.Hex)
103
- return signature;
104
- }
105
-
106
- }
@@ -1,80 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { HeadersService } from './headers.service';
4
-
5
- describe('HeadersService', () => {
6
- let service: HeadersService;
7
-
8
- beforeEach(() => {
9
- TestBed.configureTestingModule({
10
- providers: [HeadersService]
11
- });
12
- service = TestBed.inject(HeadersService);
13
- });
14
-
15
- it('should be created', () => {
16
- expect(service).toBeTruthy();
17
- });
18
-
19
- it('should generate headers correctly', () => {
20
- service.headers = { 'Content-Type': 'application/json' };
21
- const customHeaders = { 'Authorization': 'Bearer token' };
22
- const result = service.generateHeaders(customHeaders);
23
- expect(result.headers.get('Content-Type')).toBe('application/json');
24
- expect(result.headers.get('Authorization')).toBe('Bearer token');
25
- });
26
-
27
- it('should override default headers with custom headers', () => {
28
- service.headers = { 'Content-Type': 'application/json' };
29
- const customHeaders = { 'Content-Type': 'text/plain' };
30
- const result = service.generateHeaders(customHeaders);
31
- expect(result.headers.get('Content-Type')).toBe('text/plain');
32
- });
33
-
34
- it('should handle empty custom headers', () => {
35
- service.headers = { 'Content-Type': 'application/json' };
36
- const customHeaders = {};
37
- const result = service.generateHeaders(customHeaders);
38
- expect(result.headers.get('Content-Type')).toBe('application/json');
39
- });
40
-
41
- it('should handle empty default headers', () => {
42
- service.headers = {};
43
- const customHeaders = { 'Content-Type': 'text/plain' };
44
- const result = service.generateHeaders(customHeaders);
45
- expect(result.headers.get('Content-Type')).toBe('text/plain');
46
- });
47
-
48
- it('should merge multiple headers correctly', () => {
49
- service.headers = { 'Content-Type': 'application/json', 'Accept': 'application/json' };
50
- const customHeaders = { 'Authorization': 'Bearer token', 'Accept': 'text/plain' };
51
- const result = service.generateHeaders(customHeaders);
52
- expect(result.headers.get('Content-Type')).toBe('application/json');
53
- expect(result.headers.get('Authorization')).toBe('Bearer token');
54
- expect(result.headers.get('Accept')).toBe('text/plain');
55
- });
56
-
57
- it('should handle no headers', () => {
58
- service.headers = {};
59
- const customHeaders = {};
60
- const result = service.generateHeaders(customHeaders);
61
- expect(result.headers.keys().length).toBe(0);
62
- });
63
-
64
- it('should prioritize custom headers over default headers', () => {
65
- service.headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer defaultToken' };
66
- const customHeaders = { 'Authorization': 'Bearer customToken' };
67
- const result = service.generateHeaders(customHeaders);
68
- expect(result.headers.get('Content-Type')).toBe('application/json');
69
- expect(result.headers.get('Authorization')).toBe('Bearer customToken');
70
- });
71
-
72
- it('should add new custom headers to default headers', () => {
73
- service.headers = { 'Content-Type': 'application/json' };
74
- const customHeaders = { 'Authorization': 'Bearer token', 'Accept': 'application/xml' };
75
- const result = service.generateHeaders(customHeaders);
76
- expect(result.headers.get('Content-Type')).toBe('application/json');
77
- expect(result.headers.get('Authorization')).toBe('Bearer token');
78
- expect(result.headers.get('Accept')).toBe('application/xml');
79
- });
80
- });
@@ -1,18 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
-
4
- @Injectable({
5
- providedIn: 'root'
6
- })
7
- export class HeadersService {
8
-
9
- headers = {}
10
-
11
- generateHeaders(headers?: Record<string, string>): { headers: HttpHeaders } {
12
-
13
- const allHeaders = headers ? { ...this.headers, ...headers } : {}
14
- return { headers: new HttpHeaders(allHeaders) }
15
-
16
- }
17
-
18
- }
@@ -1,9 +0,0 @@
1
- export * from './app.service';
2
- export * from './headers.service';
3
- export * from './path-query.service';
4
- export * from './utils.service';
5
- export * from './random-color.utils';
6
- export * from './encryption/index';
7
- export * from './logger.service';
8
- export * from './models/index';
9
-
@@ -1,90 +0,0 @@
1
- import { Injectable, isDevMode } from '@angular/core';
2
-
3
- /**
4
- * LoggerService for http-request-manager library
5
- *
6
- * Automatically enables debug logging in development mode,
7
- * disables it in production mode.
8
- *
9
- * Usage:
10
- * ```typescript
11
- * constructor(private logger: LoggerService) {}
12
- *
13
- * this.logger.debug('WebSocket', 'Connected successfully');
14
- * this.logger.info('HTTP', 'Request completed', { status: 200 });
15
- * this.logger.warn('State', 'Cache miss for key', { key: 'user' });
16
- * this.logger.error('Database', 'Connection failed', error);
17
- * ```
18
- */
19
- @Injectable({
20
- providedIn: 'root'
21
- })
22
- export class LoggerService {
23
- private static readonly DEBUG_FLAG_KEY = 'HTTP_MGR_DEBUG';
24
- private debugMode: boolean;
25
-
26
- constructor() {
27
- this.debugMode = isDevMode() && this.isDebugFlagEnabled();
28
- }
29
-
30
- /**
31
- * Debug level logging - only shown in development mode
32
- * Use for: Detailed diagnostic information, state changes, connection events
33
- */
34
- debug(context: string, message: string, data?: any): void {
35
- if (this.debugMode) {
36
- console.log(`[HTTP-MGR DEBUG] ${context}: ${message}`, data ?? '');
37
- }
38
- }
39
-
40
- /**
41
- * Info level logging - only shown in development mode
42
- * Use for: Important operational messages, successful operations
43
- */
44
- info(context: string, message: string, data?: any): void {
45
- if (this.debugMode) {
46
- console.info(`[HTTP-MGR INFO] ${context}: ${message}`, data ?? '');
47
- }
48
- }
49
-
50
- /**
51
- * Warning level logging - always shown
52
- * Use for: Potential issues, deprecated usage, recoverable errors
53
- */
54
- warn(context: string, message: string, data?: any): void {
55
- console.warn(`[HTTP-MGR WARN] ${context}: ${message}`, data ?? '');
56
- }
57
-
58
- /**
59
- * Error level logging - always shown
60
- * Use for: Actual errors, failures, exceptions
61
- */
62
- error(context: string, message: string, data?: any): void {
63
- console.error(`[HTTP-MGR ERROR] ${context}: ${message}`, data ?? '');
64
- }
65
-
66
- /**
67
- * Check if debug mode is enabled (development mode)
68
- */
69
- isDebugEnabled(): boolean {
70
- return this.debugMode;
71
- }
72
-
73
- private isDebugFlagEnabled(): boolean {
74
- try {
75
- if (typeof globalThis === 'undefined' || !globalThis.localStorage) {
76
- return true;
77
- }
78
-
79
- const value = globalThis.localStorage.getItem(LoggerService.DEBUG_FLAG_KEY);
80
- if (value === null) {
81
- return true;
82
- }
83
-
84
- const normalized = value.trim().toLowerCase();
85
- return !['0', 'false', 'off', 'no'].includes(normalized);
86
- } catch {
87
- return true;
88
- }
89
- }
90
- }
@@ -1,4 +0,0 @@
1
- export * from './normalized-request-options.model';
2
- export * from './path-tracker-state.model';
3
- export * from './query-tracker-state.model';
4
- export * from './query-params-tracker-options.model';
@@ -1,24 +0,0 @@
1
- export type QueryValue = string;
2
- export type NormalizedQueryParams = Record<string, QueryValue>;
3
-
4
- export interface NormalizedRequestOptionsInterface {
5
- pathKey: string;
6
- query: NormalizedQueryParams;
7
- hasQuery: boolean;
8
- }
9
-
10
- export class NormalizedRequestOptionsModel implements NormalizedRequestOptionsInterface {
11
- constructor(
12
- public pathKey: string = '',
13
- public query: NormalizedQueryParams = {},
14
- public hasQuery: boolean = false
15
- ) {}
16
-
17
- static adapt(item?: any): NormalizedRequestOptionsModel {
18
- return new NormalizedRequestOptionsModel(
19
- item?.pathKey,
20
- item?.query,
21
- item?.hasQuery
22
- );
23
- }
24
- }
@@ -1,20 +0,0 @@
1
- import { QueryValue } from './normalized-request-options.model';
2
-
3
- export interface PathTrackerStateInterface {
4
- watchExpiresAt?: number;
5
- consumedValuesByKey: Record<string, QueryValue[]>;
6
- }
7
-
8
- export class PathTrackerStateModel implements PathTrackerStateInterface {
9
- constructor(
10
- public consumedValuesByKey: Record<string, QueryValue[]> = {},
11
- public watchExpiresAt?: number
12
- ) {}
13
-
14
- static adapt(item?: any): PathTrackerStateModel {
15
- return new PathTrackerStateModel(
16
- item?.consumedValuesByKey && typeof item.consumedValuesByKey === 'object' ? item.consumedValuesByKey : {},
17
- item?.watchExpiresAt
18
- );
19
- }
20
- }
@@ -1,24 +0,0 @@
1
- export interface QueryParamsTrackerOptionsInterface {
2
- mode?: 'exact' | 'variation';
3
- watchParams?: string[];
4
- watchExpiresAt?: string | number;
5
- watchParamsExpire?: string | number;
6
- }
7
-
8
- export class QueryParamsTrackerOptionsModel implements QueryParamsTrackerOptionsInterface {
9
- constructor(
10
- public mode?: 'exact' | 'variation',
11
- public watchParams?: string[],
12
- public watchExpiresAt?: string | number,
13
- public watchParamsExpire?: string | number
14
- ) {}
15
-
16
- static adapt(item?: any): QueryParamsTrackerOptionsModel {
17
- return new QueryParamsTrackerOptionsModel(
18
- item?.mode,
19
- Array.isArray(item?.watchParams) ? item.watchParams : [],
20
- item?.watchExpiresAt,
21
- item?.watchParamsExpire
22
- );
23
- }
24
- }
@@ -1,23 +0,0 @@
1
- import { PathTrackerStateInterface, PathTrackerStateModel } from './path-tracker-state.model';
2
-
3
- export interface QueryTrackerStateInterface {
4
- paths: Record<string, PathTrackerStateInterface>;
5
- }
6
-
7
- export class QueryTrackerStateModel implements QueryTrackerStateInterface {
8
- constructor(
9
- public paths: Record<string, PathTrackerStateInterface> = {}
10
- ) {}
11
-
12
- static adapt(item?: any): QueryTrackerStateModel {
13
- const paths: Record<string, PathTrackerStateInterface> = {};
14
-
15
- if (item?.paths && typeof item.paths === 'object') {
16
- Object.keys(item.paths).forEach((key) => {
17
- paths[key] = PathTrackerStateModel.adapt(item.paths[key]);
18
- });
19
- }
20
-
21
- return new QueryTrackerStateModel(paths);
22
- }
23
- }
@@ -1,18 +0,0 @@
1
- /* tslint:disable:no-unused-variable */
2
-
3
- import { TestBed, inject } from '@angular/core/testing';
4
- import { HttpClientTestingModule } from '@angular/common/http/testing';
5
- import { ObjectMergerService } from './object-merger.service';
6
-
7
- describe('Service: ObjectMerger', () => {
8
- beforeEach(() => {
9
- TestBed.configureTestingModule({
10
- imports: [HttpClientTestingModule],
11
- providers: [ObjectMergerService]
12
- });
13
- });
14
-
15
- it('should ...', inject([ObjectMergerService], (service: ObjectMergerService) => {
16
- expect(service).toBeTruthy();
17
- }));
18
- });
@@ -1,78 +0,0 @@
1
- import { Inject, Injectable, Optional, inject } from '@angular/core';
2
-
3
- import { ApiRequest } from '../request-manager-state-service/models';
4
- import { SettingOptions } from '../local-storage-manager-service';
5
- import { UtilsService } from './utils.service';
6
-
7
- import { CONFIG_SETTINGS_TOKEN } from '../../models/config-token.model';
8
- import { ConfigHTTPOptions, ConfigOptions, LocalStorageOptions } from '../request-manager-services';
9
-
10
- @Injectable({
11
- providedIn: 'root'
12
- })
13
- export class ObjectMergerService {
14
-
15
- utils = inject(UtilsService);
16
-
17
- constructor(@Inject(CONFIG_SETTINGS_TOKEN) @Optional() private configOptions?: ConfigOptions) {
18
- if (!this.configOptions) this.configOptions = ConfigOptions.adapt()
19
- }
20
-
21
- mergeOptions(options = ApiRequest.adapt()) {
22
-
23
- const configForRoot = (this.configOptions?.httpRequestOptions) ? this.configOptions.httpRequestOptions : ConfigHTTPOptions.adapt()
24
- const mergedOptions = ApiRequest.adapt(options)
25
-
26
- mergedOptions.server = (options && options.server === '') ? configForRoot?.server || '' : options.server
27
-
28
- mergedOptions.path = [ ...options.path || [], ...configForRoot?.path || [] ]
29
-
30
- mergedOptions.headers = { ...options.headers || {}, ...configForRoot?.headers || {} }
31
-
32
- mergedOptions.retry = (options && (options?.retry?.times !== 0 || options?.retry?.delay !== 3)) ? options.retry : configForRoot?.retry || { times: 0, delay: 3 };
33
-
34
- mergedOptions.polling = (options && options?.polling !== 0) ? options.polling : configForRoot?.polling || 0;
35
-
36
- mergedOptions.displayError = (options && options?.displayError) ? options.displayError : configForRoot?.displayError || false;
37
-
38
- mergedOptions.stream = (options && options?.stream) ? options.stream : configForRoot?.stream || false;
39
-
40
- return mergedOptions;
41
-
42
- }
43
-
44
- mergeStorageOptions(options = SettingOptions.adapt()) {
45
-
46
- const configForRoot = (this.configOptions?.LocalStorageOptions) ? this.configOptions.LocalStorageOptions : LocalStorageOptions.adapt()
47
- const configForRootOptions = configForRoot.options || LocalStorageOptions.adapt().options
48
-
49
- const mergedOptions = SettingOptions.adapt(options)
50
-
51
- // storage type
52
- mergedOptions.storage = (options && (typeof options.storage !== 'undefined')) ? options.storage : (configForRootOptions?.storage ?? 0)
53
-
54
- // expires: prefer explicit numeric expires; if not provided, compute from expiresIn string; otherwise use config default
55
- // if an explicit, non-zero numeric expires is provided, use it
56
- if (options && (typeof options.expires !== 'undefined') && options.expires !== null && Number(options.expires) > 0) {
57
- mergedOptions.expires = Number(options.expires);
58
- } else if (options && options.expiresIn) {
59
- // compute numeric epoch from expiresIn string using UtilsService if available
60
- try {
61
- mergedOptions.expires = this.utils ? this.utils.expires(options.expiresIn) : 0;
62
- } catch {
63
- mergedOptions.expires = 0;
64
- }
65
- } else {
66
- mergedOptions.expires = configForRootOptions?.expires ?? 0;
67
- }
68
-
69
- // keep expiresIn string if explicitly provided, otherwise use config default
70
- mergedOptions.expiresIn = (options && (typeof options.expiresIn !== 'undefined')) ? options.expiresIn : (configForRootOptions?.expiresIn || '')
71
-
72
- mergedOptions.encrypted = (options && (typeof options.encrypted !== 'undefined')) ? options.encrypted : (configForRootOptions?.encrypted || false)
73
-
74
- return mergedOptions;
75
-
76
- }
77
-
78
- }
@@ -1,117 +0,0 @@
1
- import { TestBed } from '@angular/core/testing';
2
- import { PathQueryService } from './path-query.service';
3
-
4
- describe('PathQueryService', () => {
5
- let service: PathQueryService;
6
-
7
- beforeEach(() => {
8
- TestBed.configureTestingModule({
9
- providers: [PathQueryService]
10
- });
11
- service = TestBed.inject(PathQueryService);
12
- });
13
-
14
- it('should be created', () => {
15
- expect(service).toBeTruthy();
16
- });
17
-
18
- it('should build API path with only server', () => {
19
- const result = service.buildAPIPath('http://example.com');
20
- expect(result).toBe('http://example.com');
21
- });
22
-
23
- it('should build API path with server and path params', () => {
24
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource']);
25
- expect(result).toBe('http://example.com/path/to/resource');
26
- });
27
-
28
- it('should build API path with server, path params, and query params', () => {
29
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource', { query: 'value' }]);
30
- expect(result).toBe('http://example.com/path/to/resource?query=value');
31
- });
32
-
33
- it('should build API path with server and query params', () => {
34
- const result = service.buildAPIPath('http://example.com', [{ query: 'value' }]);
35
- expect(result).toBe('http://example.com?query=value');
36
- });
37
-
38
- it('should handle empty query params', () => {
39
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource', {}]);
40
- expect(result).toBe('http://example.com/path/to/resource');
41
- });
42
-
43
- it('should remove empty query params', () => {
44
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource', { query: '' }]);
45
- expect(result).toBe('http://example.com/path/to/resource');
46
- });
47
-
48
- it('should clean URL path', () => {
49
- const result = service.buildAPIPath('http://example.com', ['path', '', 'to', 'resource']);
50
- expect(result).toBe('http://example.com/path/to/resource');
51
- });
52
-
53
- it('should handle null query params', () => {
54
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource', null]);
55
- expect(result).toBe('http://example.com/path/to/resource');
56
- });
57
-
58
- it('should handle undefined query params', () => {
59
- const result = service.buildAPIPath('http://example.com', ['path', 'to', 'resource', undefined]);
60
- expect(result).toBe('http://example.com/path/to/resource');
61
- });
62
-
63
- it('should build API path with server as string array and path params', () => {
64
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource']);
65
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
66
- });
67
-
68
- it('should build API path with server as string array, path params, and query params', () => {
69
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', { query: 'value' }]);
70
- expect(result).toBe('http://example.com/api/v1/path/to/resource?query=value');
71
- });
72
-
73
- it('should build API path with server as string array and query params', () => {
74
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], [{ query: 'value' }]);
75
- expect(result).toBe('http://example.com/api/v1?query=value');
76
- });
77
-
78
- it('should handle empty query params with server as string array', () => {
79
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', {}]);
80
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
81
- });
82
-
83
- it('should remove empty query params with server as string array', () => {
84
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', { query: '' }]);
85
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
86
- });
87
-
88
- it('should clean URL path with server as string array', () => {
89
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', '', 'to', 'resource']);
90
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
91
- });
92
-
93
- it('should handle null query params with server as string array', () => {
94
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', null]);
95
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
96
- });
97
-
98
- it('should handle undefined query params with server as string array', () => {
99
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', undefined]);
100
- expect(result).toBe('http://example.com/api/v1/path/to/resource');
101
- });
102
-
103
- it('should handle multiple query params with server as string array', () => {
104
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', { query1: 'value1', query2: 'value2' }]);
105
- expect(result).toBe('http://example.com/api/v1/path/to/resource?query1=value1&query2=value2');
106
- });
107
-
108
- it('should handle array query params with server as string array', () => {
109
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', 'to', 'resource', { query: ['value1', 'value2'] }]);
110
- expect(result).toBe('http://example.com/api/v1/path/to/resource?query=value1%2Cvalue2');
111
- });
112
-
113
- it('should handle mixed path and query params with server as string array', () => {
114
- const result = service.buildAPIPath(['http://example.com', 'api', 'v1'], ['path', { query: 'value' }, 'to', 'resource']);
115
- expect(result).toBe('http://example.com/api/v1/path/to/resource?query=value');
116
- });
117
- });