http-request-manager 15.0.24 → 15.0.26

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 (232) hide show
  1. package/ng-package.json +8 -0
  2. package/package.json +1 -14
  3. package/src/lib/http-request-manager.module.ts +101 -0
  4. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +3 -0
  5. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  6. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +105 -0
  7. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +64 -0
  8. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +6 -0
  9. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +34 -0
  10. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +195 -0
  11. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +17 -0
  12. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +205 -0
  13. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +59 -0
  14. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +60 -0
  15. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +71 -0
  16. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +28 -0
  17. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +10 -0
  18. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +29 -0
  19. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +99 -0
  20. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +22 -0
  21. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +8 -0
  22. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +19 -0
  23. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +25 -0
  24. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +30 -0
  25. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +19 -0
  26. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +25 -0
  27. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +19 -0
  28. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +24 -0
  29. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +30 -0
  30. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +49 -0
  31. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +33 -0
  32. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +336 -0
  33. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +24 -0
  34. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +403 -0
  35. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +328 -0
  36. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +24 -0
  37. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +347 -0
  38. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +88 -0
  39. package/src/lib/index.ts +3 -0
  40. package/src/lib/interceptors/credentials.interceptor.ts +18 -0
  41. package/{lib/interceptors/index.d.ts → src/lib/interceptors/index.ts} +2 -0
  42. package/src/lib/interceptors/models/error-settings.model.ts +22 -0
  43. package/src/lib/interceptors/proxy-debugger.interceptor.ts +46 -0
  44. package/src/lib/interceptors/request-error.interceptor.ts +65 -0
  45. package/src/lib/interceptors/request-header.interceptor.ts +58 -0
  46. package/src/lib/models/config-http-options.model.ts +42 -0
  47. package/src/lib/models/config-local-storage-options.model.ts +27 -0
  48. package/src/lib/models/config-options.model.ts +27 -0
  49. package/{lib/models/config-token.model.d.ts → src/lib/models/config-token.model.ts} +2 -1
  50. package/src/lib/models/data-type.enum.ts +5 -0
  51. package/src/lib/models/database-storage.model.ts +24 -0
  52. package/src/lib/models/index.ts +9 -0
  53. package/src/lib/models/retry-options.model.ts +22 -0
  54. package/src/lib/services/database-manager-services/database.manager.service.ts +193 -0
  55. package/src/lib/services/database-manager-services/db.storage.service.ts +191 -0
  56. package/{lib/services/database-manager-services/index.d.ts → src/lib/services/database-manager-services/index.ts} +1 -0
  57. package/src/lib/services/database-manager-services/models/table-schema.ts +35 -0
  58. package/{lib/services/index.d.ts → src/lib/services/index.ts} +4 -0
  59. package/src/lib/services/local-storage-manager-service/index.ts +2 -0
  60. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +71 -0
  61. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +421 -0
  62. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +30 -0
  63. package/{lib/services/local-storage-manager-service/models/index.d.ts → src/lib/services/local-storage-manager-service/models/index.ts} +2 -1
  64. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +30 -0
  65. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +24 -0
  66. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +29 -0
  67. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +5 -0
  68. package/src/lib/services/request-manager-services/README.md +268 -0
  69. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +230 -0
  70. package/src/lib/services/request-manager-services/http-manager.service.ts +274 -0
  71. package/{lib/services/request-manager-services/index.d.ts → src/lib/services/request-manager-services/index.ts} +2 -0
  72. package/src/lib/services/request-manager-services/request.service.ts +261 -0
  73. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +17 -0
  74. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +16 -0
  75. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +21 -0
  76. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +32 -0
  77. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +402 -0
  78. package/{lib/services/request-manager-state-service/index.d.ts → src/lib/services/request-manager-state-service/index.ts} +1 -0
  79. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +50 -0
  80. package/{lib/services/request-manager-state-service/models/index.d.ts → src/lib/services/request-manager-state-service/models/index.ts} +1 -0
  81. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +22 -0
  82. package/src/lib/services/utils/app.service.spec.ts +25 -0
  83. package/src/lib/services/utils/app.service.ts +21 -0
  84. package/src/lib/services/utils/encryption/README.md +79 -0
  85. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +282 -0
  86. package/src/lib/services/utils/encryption/encryption-test.service.ts +39 -0
  87. package/{lib/services/utils/encryption/index.d.ts → src/lib/services/utils/encryption/index.ts} +2 -0
  88. package/src/lib/services/utils/encryption/random.ts +69 -0
  89. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +93 -0
  90. package/src/lib/services/utils/headers.service.spec.ts +80 -0
  91. package/src/lib/services/utils/headers.service.ts +18 -0
  92. package/{lib/services/utils/index.d.ts → src/lib/services/utils/index.ts} +2 -0
  93. package/src/lib/services/utils/object-merger.service.spec.ts +16 -0
  94. package/src/lib/services/utils/object-merger.service.ts +60 -0
  95. package/src/lib/services/utils/path-query.service.spec.ts +117 -0
  96. package/src/lib/services/utils/path-query.service.ts +69 -0
  97. package/src/lib/services/utils/utils.service.spec.ts +164 -0
  98. package/src/lib/services/utils/utils.service.ts +192 -0
  99. package/{public-api.d.ts → src/public-api.ts} +7 -0
  100. package/tsconfig.lib.json +32 -0
  101. package/tsconfig.lib.prod.json +10 -0
  102. package/tsconfig.spec.json +14 -0
  103. package/esm2022/http-request-manager.mjs +0 -5
  104. package/esm2022/lib/http-request-manager.module.mjs +0 -146
  105. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -71
  106. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -41
  107. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  108. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  109. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  110. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  111. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  112. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  113. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  114. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  115. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  116. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -315
  117. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -270
  118. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -67
  119. package/esm2022/lib/index.mjs +0 -4
  120. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  121. package/esm2022/lib/interceptors/index.mjs +0 -5
  122. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  123. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  124. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  125. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  126. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  127. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  128. package/esm2022/lib/models/config-options.model.mjs +0 -12
  129. package/esm2022/lib/models/config-token.model.mjs +0 -8
  130. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  131. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  132. package/esm2022/lib/models/index.mjs +0 -7
  133. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  134. package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +0 -119
  135. package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +0 -143
  136. package/esm2022/lib/services/database-manager-services/index.mjs +0 -4
  137. package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +0 -20
  138. package/esm2022/lib/services/index.mjs +0 -6
  139. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -3
  140. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -302
  141. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  142. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  143. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -13
  144. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  145. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -12
  146. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  147. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  148. package/esm2022/lib/services/request-manager-services/index.mjs +0 -5
  149. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -189
  150. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  151. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  152. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  153. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -14
  154. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  155. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -267
  156. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  157. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -20
  158. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -3
  159. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  160. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  161. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  162. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  163. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  164. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  165. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  166. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  167. package/esm2022/lib/services/utils/index.mjs +0 -6
  168. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -50
  169. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  170. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  171. package/esm2022/public-api.mjs +0 -11
  172. package/fesm2022/http-request-manager.mjs +0 -3444
  173. package/fesm2022/http-request-manager.mjs.map +0 -1
  174. package/http-request-manager-15.0.24.tgz +0 -0
  175. package/index.d.ts +0 -5
  176. package/lib/http-request-manager.module.d.ts +0 -33
  177. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -19
  178. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -24
  179. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  180. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  181. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  182. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  183. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  184. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  185. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  186. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  187. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  188. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -107
  189. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -122
  190. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  191. package/lib/index.d.ts +0 -3
  192. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  193. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  194. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  195. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  196. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  197. package/lib/models/config-http-options.model.d.ts +0 -21
  198. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  199. package/lib/models/config-options.model.d.ts +0 -12
  200. package/lib/models/data-type.enum.d.ts +0 -5
  201. package/lib/models/database-storage.model.d.ts +0 -10
  202. package/lib/models/index.d.ts +0 -6
  203. package/lib/models/retry-options.model.d.ts +0 -10
  204. package/lib/services/database-manager-services/database.manager.service.d.ts +0 -31
  205. package/lib/services/database-manager-services/db.storage.service.d.ts +0 -26
  206. package/lib/services/database-manager-services/models/table-schema.d.ts +0 -11
  207. package/lib/services/local-storage-manager-service/index.d.ts +0 -2
  208. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  209. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  210. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  211. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  212. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -13
  213. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  214. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  215. package/lib/services/request-manager-services/request.service.d.ts +0 -27
  216. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  217. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  218. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -7
  219. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  220. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -51
  221. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -27
  222. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  223. package/lib/services/utils/app.service.d.ts +0 -8
  224. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  225. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  226. package/lib/services/utils/encryption/random.d.ts +0 -7
  227. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  228. package/lib/services/utils/headers.service.d.ts +0 -10
  229. package/lib/services/utils/object-merger.service.d.ts +0 -12
  230. package/lib/services/utils/path-query.service.d.ts +0 -11
  231. package/lib/services/utils/utils.service.d.ts +0 -24
  232. /package/{lib/services/request-manager-services/rxjs-operators/index.d.ts → src/lib/services/request-manager-services/rxjs-operators/index.ts} +0 -0
@@ -0,0 +1,403 @@
1
+ import { Component, OnInit, ViewChild, inject } from '@angular/core'
2
+
3
+ import { BehaviorSubject, EMPTY, Observable, throwError } from 'rxjs'
4
+ import { FormArray, FormBuilder, Validators } from '@angular/forms'
5
+
6
+ import { ClientInfo } from './models/sample-client-info'
7
+ import { ClientInfoMapper } from './models/sample-mapper-client-info'
8
+ import { AIPrompt } from './models/sample-ai-prompt'
9
+ import { ApiRequest, HTTPManagerService } from '../..'
10
+ import { catchError, map, tap } from 'rxjs/operators'
11
+
12
+ import { ToastColors, ToastDisplay, ToastMessageDisplayService } from 'toast-message-display'
13
+
14
+ @Component({
15
+ selector: 'app-request-manager-demo',
16
+ templateUrl: './request-manager-demo.component.html',
17
+ styleUrls: ['./request-manager-demo.component.scss'],
18
+ })
19
+ export class RequestManagerDemoComponent implements OnInit {
20
+
21
+ displayedColumns = ['id','name', 'lastName', 'age']
22
+
23
+ private fb = inject(FormBuilder)
24
+ private toastMessage = inject(ToastMessageDisplayService)
25
+
26
+ httpManagerService = inject(HTTPManagerService)
27
+
28
+ isPending$ = this.httpManagerService.isPending$
29
+ countdown$ = this.httpManagerService.countdown$
30
+
31
+ GET_error$ = new BehaviorSubject<string>('')
32
+ POST_error$ = new BehaviorSubject<string>('')
33
+ PUT_error$ = new BehaviorSubject<string>('')
34
+ DELETE_error$ = new BehaviorSubject<string>('')
35
+
36
+ STREAM_error$ = new BehaviorSubject<string>('')
37
+ STREAM_AI_error$ = new BehaviorSubject<string>('')
38
+
39
+ GET$?: Observable<any>
40
+ POST$?: Observable<any>
41
+ PUT$?: Observable<any>
42
+ DELETE$?: Observable<any>
43
+
44
+ STREAM_AI$?: Observable<any>
45
+ STREAM$?: Observable<any>
46
+
47
+ requestParams = {
48
+ GET: ApiRequest.adapt(),
49
+ POST: ApiRequest.adapt(),
50
+ PUT: ApiRequest.adapt(),
51
+ DELETE: ApiRequest.adapt(),
52
+ STREAM: ApiRequest.adapt(),
53
+ }
54
+
55
+ @ViewChild("failedState", { static: true }) failedState: any
56
+ @ViewChild("pollingState", { static: true }) pollingState: any
57
+
58
+ questionControl = this.fb.control("", [Validators.required])
59
+
60
+ downloadRequest = ApiRequest.adapt({
61
+ server: 'assets/images',
62
+ path: ['me.jpg'],
63
+ // saveAs: 'john.jpg' // Optional
64
+ })
65
+
66
+ // downloadRequest = ApiRequest.adapt({
67
+ // server: 'oidc/ai/file'
68
+ // })
69
+
70
+ sampleClientData = {
71
+ id: 0,
72
+ name: "Old School Dates",
73
+ domain: "osd.com",
74
+ service: "osd",
75
+ spiffe: "osd.com/osd",
76
+ secret: "SMOPECXP-OS4P-USOG-X2II-3XMD1FQDR3IJX",
77
+ created: 1693003138,
78
+ modified: 1693003138,
79
+ icon: "",
80
+ imageFile: "",
81
+ email: "wavecoders@gmail.com"
82
+ }
83
+
84
+ requestForm = this.fb.group({
85
+ path: this.fb.control<string>("ai/"),
86
+ headers: this.fb.array([]),
87
+ adapter: [null],
88
+ mapper: [null],
89
+ retry: this.fb.group({
90
+ times: [3],
91
+ delay: [3],
92
+ }),
93
+ polling: [3],
94
+ })
95
+
96
+ AIType = 0
97
+
98
+ sampleAdaptors = [
99
+ { label: "ClientInfo Basic", value: ClientInfo.adapt },
100
+ { label: "AI Prompt", value: AIPrompt.adapt },
101
+ ]
102
+
103
+ sampleMappers = [
104
+ { label: "Mapper Basic", value: ClientInfoMapper.adapt },
105
+ { label: "AI Prompt", value: AIPrompt.adapt },
106
+ ]
107
+
108
+ get retry() {
109
+ return this.requestForm.get('retry')?.value
110
+ }
111
+
112
+ get headers(): FormArray {
113
+ return this.requestForm.get('headers') as FormArray
114
+ }
115
+
116
+ get isValid() {
117
+ this.requestForm.markAllAsTouched()
118
+ return this.requestForm.valid
119
+ }
120
+
121
+ hasId = (arr: any[]) => {
122
+ if (arr.length === 0) return false
123
+ return !isNaN(arr[arr.length - 1])
124
+ }
125
+
126
+ props = (adapter: any) => {
127
+ return (adapter) ? adapter() : null
128
+ }
129
+
130
+ // server = `http://sample-endpoint/as/authorization.oauth2`
131
+
132
+ arrayObjectsToObjects = (arr: any[]) => {
133
+ return Array.isArray(arr) ? arr.reduce((obj, item) => Object.assign(obj, { [item.key]: item.value }), {}) : {}
134
+ }
135
+
136
+ constructor() { }
137
+
138
+ ngOnInit() {
139
+
140
+ // const reqGet2 = ApiRequest.adapt({
141
+ // server,
142
+ // path: ['clients'],
143
+ // headers: { authentication: "Bearer <KEY>" },
144
+ // adapter: ClientInfo,
145
+ // dataType: DataType.OBJECT,
146
+ // // concurrent: false,
147
+ // // polling: 3, //seconds
148
+ // })
149
+
150
+ // const req2 = [1024,1025,1026].map(item => {
151
+ // return this.httpManagerService.getRequest<ClientInfo[]>(reqGet2, [item])
152
+ // .pipe(
153
+ // catchError(error => {
154
+ // return throwError(() => new Error(error.error.message))
155
+ // })
156
+ // )
157
+ // })
158
+
159
+ // forkJoin(req2)
160
+ // .subscribe(res => console.log(res))
161
+
162
+ }
163
+
164
+ addHeader() {
165
+ const header = this.fb.group({
166
+ key: ['', Validators.required],
167
+ value: ['']
168
+ })
169
+ this.headers.push(header)
170
+ }
171
+
172
+ removeHeader(index: number) {
173
+ this.headers.removeAt(index)
174
+ }
175
+
176
+ compileRequest() {
177
+
178
+ const requestParams = this.requestForm.value
179
+
180
+ requestParams.headers = this.arrayObjectsToObjects(
181
+ requestParams.headers || []
182
+ )
183
+
184
+ const pathReq = (requestParams.path === "") ? [] : (requestParams.path || "").split("/")
185
+
186
+ if (!this.pollingState.checked) requestParams.polling = 0
187
+
188
+ if (!this.failedState.checked) {
189
+ requestParams.retry = { times: 0,delay: 0 }
190
+ }
191
+
192
+ const apiOptions = ApiRequest.adapt(requestParams)
193
+ apiOptions.path = []
194
+
195
+ return { apiOptions: apiOptions, path: pathReq }
196
+
197
+ }
198
+
199
+ onGetRequest() {
200
+
201
+ if(!this.isValid) return
202
+
203
+ const reqParams = this.compileRequest()
204
+
205
+ this.requestParams.GET = reqParams.apiOptions
206
+
207
+ this.GET$ = EMPTY //Cancels Previous
208
+ this.GET_error$.next('')
209
+
210
+ this.GET$ = this.httpManagerService.getRequest<ClientInfo[]>(reqParams.apiOptions, reqParams.path)
211
+ .pipe(
212
+ // tap((data) => console.log("API GET response", data)),
213
+ catchError(error => {
214
+ return throwError(() => this.errorHandling(error, 'GET'))
215
+ })
216
+ )
217
+
218
+ }
219
+
220
+ onCreateRequest() {
221
+
222
+ if(!this.isValid) return
223
+
224
+ const reqParams = this.compileRequest()
225
+ this.requestParams.POST = reqParams.apiOptions
226
+
227
+ this.POST$ = EMPTY //Cancels Previous
228
+ this.POST_error$.next('')
229
+
230
+ console.log("POST", this.sampleClientData)
231
+ console.log("POST", reqParams.apiOptions)
232
+ console.log("POST", reqParams.path)
233
+
234
+ this.POST$ = this.httpManagerService.postRequest<ClientInfo>(this.sampleClientData, reqParams.apiOptions, reqParams.path)
235
+ .pipe(
236
+ // tap((data) => console.log("API POST response", data)),
237
+ catchError(error => {
238
+ return throwError(() => this.errorHandling(error, 'POST'))
239
+ })
240
+ )
241
+
242
+ }
243
+
244
+ onUpdateRequest() {
245
+
246
+ if(!this.isValid) return
247
+
248
+ const reqParams = this.compileRequest()
249
+
250
+ if(!this.hasId(reqParams.path)) {
251
+ console.log("Missing ID")
252
+ return
253
+ }
254
+
255
+ this.sampleClientData.id = parseInt(reqParams.path[reqParams.path.length-1])
256
+ this.requestParams.PUT = reqParams.apiOptions
257
+
258
+ this.PUT$ = EMPTY //Cancels Previous
259
+ this.PUT_error$.next('')
260
+
261
+ this.PUT$ = this.httpManagerService.putRequest<any>(this.sampleClientData, reqParams.apiOptions, reqParams.path)
262
+ .pipe(
263
+ // tap((data) => console.log("API PUT response", data)),
264
+ catchError(error => {
265
+ return throwError(() => this.errorHandling(error, 'PUT'))
266
+ })
267
+ )
268
+
269
+ }
270
+
271
+ onDeleteRequest() {
272
+
273
+ if(!this.isValid) return
274
+
275
+ const reqParams = this.compileRequest()
276
+ this.requestParams.DELETE = reqParams.apiOptions
277
+
278
+ if(!this.hasId(reqParams.path)) {
279
+ console.log("Missing ID")
280
+ return
281
+ }
282
+
283
+ this.sampleClientData.id = parseInt(reqParams.path[reqParams.path.length-1])
284
+ this.requestParams.DELETE = reqParams.apiOptions
285
+
286
+ this.DELETE$ = EMPTY //Cancels Previous
287
+ this.DELETE_error$.next('')
288
+
289
+ this.DELETE$ = this.httpManagerService.deleteRequest<ClientInfo>(reqParams.apiOptions, reqParams.path)
290
+ .pipe(
291
+ // tap((data) => console.log("API DELETE response", data)),
292
+ catchError(error => {
293
+ return throwError(() => this.errorHandling(error, 'DELETE'))
294
+ })
295
+ )
296
+
297
+ }
298
+
299
+ onStreamPostRequest() {
300
+
301
+ if (!this.isValid) return
302
+
303
+ const reqParams = this.compileRequest()
304
+
305
+ let payload = {}
306
+ let apiPath: string[] = reqParams.path
307
+ let apiOptions = reqParams.apiOptions
308
+ let responseMapper: (items: any) => any = (items) => items.response
309
+
310
+ if (this.AIType === 0) {
311
+
312
+ // API request
313
+ payload = { prompt: this.questionControl.value }
314
+
315
+ } else {
316
+
317
+ // Local Ollama request
318
+ apiOptions.server = "api"
319
+ apiPath = ["generate"]
320
+ apiOptions.stream = true
321
+ payload = {
322
+ model: "phi3:latest",
323
+ prompt: this.questionControl.value,
324
+ stream: true,
325
+ }
326
+
327
+ responseMapper = (items) => items.map((word: any) => word.response).flat().join('')
328
+
329
+ }
330
+
331
+ this.requestParams.STREAM = apiOptions
332
+ this.STREAM_AI$ = EMPTY
333
+ this.STREAM_AI_error$.next('')
334
+
335
+ this.STREAM_AI$ = this.httpManagerService.postRequest<any>(payload, apiOptions, apiPath).pipe(
336
+ map(responseMapper),
337
+ tap(() => this.questionControl.reset()),
338
+ catchError(error => throwError(() => this.errorHandling(error, 'STREAM')))
339
+ )
340
+
341
+ }
342
+
343
+
344
+ onStreamRequest() {
345
+
346
+ if(!this.isValid) return
347
+
348
+ const reqParams = this.compileRequest()
349
+
350
+ reqParams.apiOptions.stream = true
351
+
352
+ this.requestParams.GET = reqParams.apiOptions
353
+ this.STREAM$ = this.httpManagerService.getRequest<ClientInfo[]>(reqParams.apiOptions, reqParams.path)
354
+ .pipe(
355
+ // tap((data) => console.log("API STREAM response", data)),
356
+ catchError(error => {
357
+ return throwError(() => this.errorHandling(error, 'STREAM'))
358
+ })
359
+ )
360
+
361
+ }
362
+
363
+ onDownloadCompleted() {
364
+
365
+ const message = "Download Completed"
366
+
367
+ const display = ToastDisplay.adapt({
368
+ message,
369
+ action: 'Ok',
370
+ color: ToastColors.SUCCESS,
371
+ icon: 'sentiment_satisfied_alt',
372
+ })
373
+
374
+ this.toastMessage.toastMessage(display)
375
+ }
376
+
377
+ onDownloadFailed(err: string) {
378
+
379
+ const message = "Download Failed"
380
+
381
+ const display = ToastDisplay.adapt({
382
+ message,
383
+ action: 'Ok',
384
+ color: ToastColors.ERROR,
385
+ icon: 'warning',
386
+ })
387
+
388
+ this.toastMessage.toastMessage(display)
389
+ }
390
+
391
+ errorHandling(err: any, type: string) {
392
+ if(type === 'GET') this.GET_error$.next(err.message)
393
+ if(type === 'POST') this.POST_error$.next(err.message)
394
+ if(type === 'PUT') this.PUT_error$.next(err.message)
395
+ if(type === 'DELETE') this.DELETE_error$.next(err.message)
396
+ if(type === 'STREAM') this.STREAM_error$.next(err.message)
397
+ }
398
+
399
+ onSelectAIType(type: number) {
400
+ this.AIType = type
401
+ }
402
+
403
+ }