http-request-manager 15.0.26 → 18.0.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 (232) hide show
  1. package/esm2022/http-request-manager.mjs +5 -0
  2. package/esm2022/lib/http-request-manager.module.mjs +146 -0
  3. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +71 -0
  4. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +41 -0
  5. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +173 -0
  6. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +80 -0
  7. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +42 -0
  8. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +88 -0
  9. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +11 -0
  10. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +29 -0
  11. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +9 -0
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +12 -0
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +14 -0
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +315 -0
  15. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +270 -0
  16. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +67 -0
  17. package/esm2022/lib/index.mjs +4 -0
  18. package/esm2022/lib/interceptors/credentials.interceptor.mjs +14 -0
  19. package/esm2022/lib/interceptors/index.mjs +5 -0
  20. package/esm2022/lib/interceptors/models/error-settings.model.mjs +10 -0
  21. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +47 -0
  22. package/esm2022/lib/interceptors/request-error.interceptor.mjs +49 -0
  23. package/esm2022/lib/interceptors/request-header.interceptor.mjs +41 -0
  24. package/esm2022/lib/models/config-http-options.model.mjs +18 -0
  25. package/esm2022/lib/models/config-local-storage-options.model.mjs +12 -0
  26. package/esm2022/lib/models/config-options.model.mjs +12 -0
  27. package/esm2022/lib/models/config-token.model.mjs +8 -0
  28. package/esm2022/lib/models/data-type.enum.mjs +7 -0
  29. package/esm2022/lib/models/database-storage.model.mjs +10 -0
  30. package/esm2022/lib/models/index.mjs +7 -0
  31. package/esm2022/lib/models/retry-options.model.mjs +10 -0
  32. package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +119 -0
  33. package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +143 -0
  34. package/esm2022/lib/services/database-manager-services/index.mjs +4 -0
  35. package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +20 -0
  36. package/esm2022/lib/services/index.mjs +6 -0
  37. package/esm2022/lib/services/local-storage-manager-service/index.mjs +3 -0
  38. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +302 -0
  39. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +13 -0
  40. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +6 -0
  41. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +13 -0
  42. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +10 -0
  43. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +12 -0
  44. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +7 -0
  45. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +207 -0
  46. package/esm2022/lib/services/request-manager-services/index.mjs +5 -0
  47. package/esm2022/lib/services/request-manager-services/request.service.mjs +189 -0
  48. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +9 -0
  49. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +10 -0
  50. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +5 -0
  51. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +14 -0
  52. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +19 -0
  53. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +267 -0
  54. package/esm2022/lib/services/request-manager-state-service/index.mjs +3 -0
  55. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +20 -0
  56. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +3 -0
  57. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +10 -0
  58. package/esm2022/lib/services/utils/app.service.mjs +26 -0
  59. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +186 -0
  60. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +35 -0
  61. package/esm2022/lib/services/utils/encryption/index.mjs +4 -0
  62. package/esm2022/lib/services/utils/encryption/random.mjs +52 -0
  63. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +77 -0
  64. package/esm2022/lib/services/utils/headers.service.mjs +21 -0
  65. package/esm2022/lib/services/utils/index.mjs +6 -0
  66. package/esm2022/lib/services/utils/object-merger.service.mjs +50 -0
  67. package/esm2022/lib/services/utils/path-query.service.mjs +54 -0
  68. package/esm2022/lib/services/utils/utils.service.mjs +155 -0
  69. package/esm2022/public-api.mjs +11 -0
  70. package/fesm2022/http-request-manager.mjs +3444 -0
  71. package/fesm2022/http-request-manager.mjs.map +1 -0
  72. package/http-request-manager-18.0.1.tgz +0 -0
  73. package/index.d.ts +5 -0
  74. package/lib/http-request-manager.module.d.ts +33 -0
  75. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +19 -0
  76. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +24 -0
  77. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +56 -0
  78. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +26 -0
  79. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +13 -0
  80. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +27 -0
  81. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +12 -0
  82. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +16 -0
  83. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +8 -0
  84. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +14 -0
  85. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +14 -0
  86. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +107 -0
  87. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +122 -0
  88. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +15 -0
  89. package/lib/index.d.ts +3 -0
  90. package/lib/interceptors/credentials.interceptor.d.ts +8 -0
  91. package/{src/lib/interceptors/index.ts → lib/interceptors/index.d.ts} +0 -2
  92. package/lib/interceptors/models/error-settings.model.d.ts +10 -0
  93. package/lib/interceptors/proxy-debugger.interceptor.d.ts +12 -0
  94. package/lib/interceptors/request-error.interceptor.d.ts +10 -0
  95. package/lib/interceptors/request-header.interceptor.d.ts +15 -0
  96. package/lib/models/config-http-options.model.d.ts +21 -0
  97. package/lib/models/config-local-storage-options.model.d.ts +13 -0
  98. package/lib/models/config-options.model.d.ts +12 -0
  99. package/{src/lib/models/config-token.model.ts → lib/models/config-token.model.d.ts} +1 -2
  100. package/lib/models/data-type.enum.d.ts +5 -0
  101. package/lib/models/database-storage.model.d.ts +10 -0
  102. package/lib/models/index.d.ts +6 -0
  103. package/lib/models/retry-options.model.d.ts +10 -0
  104. package/lib/services/database-manager-services/database.manager.service.d.ts +31 -0
  105. package/lib/services/database-manager-services/db.storage.service.d.ts +26 -0
  106. package/{src/lib/services/database-manager-services/index.ts → lib/services/database-manager-services/index.d.ts} +0 -1
  107. package/lib/services/database-manager-services/models/table-schema.d.ts +11 -0
  108. package/{src/lib/services/index.ts → lib/services/index.d.ts} +0 -4
  109. package/lib/services/local-storage-manager-service/index.d.ts +2 -0
  110. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +86 -0
  111. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +15 -0
  112. package/{src/lib/services/local-storage-manager-service/models/index.ts → lib/services/local-storage-manager-service/models/index.d.ts} +1 -2
  113. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +15 -0
  114. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +10 -0
  115. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +13 -0
  116. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +5 -0
  117. package/lib/services/request-manager-services/http-manager.service.d.ts +41 -0
  118. package/{src/lib/services/request-manager-services/index.ts → lib/services/request-manager-services/index.d.ts} +0 -2
  119. package/lib/services/request-manager-services/request.service.d.ts +27 -0
  120. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +2 -0
  121. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +2 -0
  122. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +7 -0
  123. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +2 -0
  124. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +51 -0
  125. package/{src/lib/services/request-manager-state-service/index.ts → lib/services/request-manager-state-service/index.d.ts} +0 -1
  126. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +27 -0
  127. package/{src/lib/services/request-manager-state-service/models/index.ts → lib/services/request-manager-state-service/models/index.d.ts} +0 -1
  128. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +10 -0
  129. package/lib/services/utils/app.service.d.ts +8 -0
  130. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +17 -0
  131. package/lib/services/utils/encryption/encryption-test.service.d.ts +10 -0
  132. package/{src/lib/services/utils/encryption/index.ts → lib/services/utils/encryption/index.d.ts} +0 -2
  133. package/lib/services/utils/encryption/random.d.ts +7 -0
  134. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +14 -0
  135. package/lib/services/utils/headers.service.d.ts +10 -0
  136. package/{src/lib/services/utils/index.ts → lib/services/utils/index.d.ts} +0 -2
  137. package/lib/services/utils/object-merger.service.d.ts +12 -0
  138. package/lib/services/utils/path-query.service.d.ts +11 -0
  139. package/lib/services/utils/utils.service.d.ts +24 -0
  140. package/package.json +14 -1
  141. package/{src/public-api.ts → public-api.d.ts} +0 -7
  142. package/ng-package.json +0 -8
  143. package/src/lib/http-request-manager.module.ts +0 -101
  144. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.html +0 -3
  145. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.scss +0 -0
  146. package/src/lib/http-request-services-demo/database-data-demo/database-data-demo.component.ts +0 -105
  147. package/src/lib/http-request-services-demo/http-request-services-demo.component.html +0 -64
  148. package/src/lib/http-request-services-demo/http-request-services-demo.component.scss +0 -6
  149. package/src/lib/http-request-services-demo/http-request-services-demo.component.ts +0 -34
  150. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.html +0 -195
  151. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.scss +0 -17
  152. package/src/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.ts +0 -205
  153. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.html +0 -59
  154. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.scss +0 -60
  155. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.ts +0 -71
  156. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.ts +0 -28
  157. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.html +0 -10
  158. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.scss +0 -29
  159. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.ts +0 -99
  160. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.ts +0 -22
  161. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.html +0 -8
  162. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.scss +0 -19
  163. package/src/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.ts +0 -25
  164. package/src/lib/http-request-services-demo/request-manager-demo/models/app-session.model.ts +0 -30
  165. package/src/lib/http-request-services-demo/request-manager-demo/models/app.model.ts +0 -19
  166. package/src/lib/http-request-services-demo/request-manager-demo/models/get-sample.model.ts +0 -25
  167. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.ts +0 -19
  168. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-details.ts +0 -24
  169. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.ts +0 -30
  170. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-client.model.ts +0 -49
  171. package/src/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.ts +0 -33
  172. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.html +0 -336
  173. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.scss +0 -24
  174. package/src/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.ts +0 -403
  175. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.html +0 -328
  176. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.scss +0 -24
  177. package/src/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.ts +0 -347
  178. package/src/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.ts +0 -88
  179. package/src/lib/index.ts +0 -3
  180. package/src/lib/interceptors/credentials.interceptor.ts +0 -18
  181. package/src/lib/interceptors/models/error-settings.model.ts +0 -22
  182. package/src/lib/interceptors/proxy-debugger.interceptor.ts +0 -46
  183. package/src/lib/interceptors/request-error.interceptor.ts +0 -65
  184. package/src/lib/interceptors/request-header.interceptor.ts +0 -58
  185. package/src/lib/models/config-http-options.model.ts +0 -42
  186. package/src/lib/models/config-local-storage-options.model.ts +0 -27
  187. package/src/lib/models/config-options.model.ts +0 -27
  188. package/src/lib/models/data-type.enum.ts +0 -5
  189. package/src/lib/models/database-storage.model.ts +0 -24
  190. package/src/lib/models/index.ts +0 -9
  191. package/src/lib/models/retry-options.model.ts +0 -22
  192. package/src/lib/services/database-manager-services/database.manager.service.ts +0 -193
  193. package/src/lib/services/database-manager-services/db.storage.service.ts +0 -191
  194. package/src/lib/services/database-manager-services/models/table-schema.ts +0 -35
  195. package/src/lib/services/local-storage-manager-service/index.ts +0 -2
  196. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.spec.ts +0 -71
  197. package/src/lib/services/local-storage-manager-service/local-storage-manager.service.ts +0 -421
  198. package/src/lib/services/local-storage-manager-service/models/global-store-options.model.ts +0 -30
  199. package/src/lib/services/local-storage-manager-service/models/setting-options.model.ts +0 -30
  200. package/src/lib/services/local-storage-manager-service/models/storage-data.model.ts +0 -24
  201. package/src/lib/services/local-storage-manager-service/models/storage-option.model.ts +0 -29
  202. package/src/lib/services/local-storage-manager-service/models/storage-type.enum.ts +0 -5
  203. package/src/lib/services/request-manager-services/README.md +0 -268
  204. package/src/lib/services/request-manager-services/http-manager.service.spec.ts +0 -230
  205. package/src/lib/services/request-manager-services/http-manager.service.ts +0 -274
  206. package/src/lib/services/request-manager-services/request.service.ts +0 -261
  207. package/src/lib/services/request-manager-services/rxjs-operators/countdown.ts +0 -17
  208. package/src/lib/services/request-manager-services/rxjs-operators/delay-retry.ts +0 -16
  209. package/src/lib/services/request-manager-services/rxjs-operators/request-polling.ts +0 -21
  210. package/src/lib/services/request-manager-services/rxjs-operators/request-streaming.ts +0 -32
  211. package/src/lib/services/request-manager-state-service/http-manager-state.store.ts +0 -402
  212. package/src/lib/services/request-manager-state-service/models/api-request.model.ts +0 -50
  213. package/src/lib/services/request-manager-state-service/models/request-options.model.ts +0 -22
  214. package/src/lib/services/utils/app.service.spec.ts +0 -25
  215. package/src/lib/services/utils/app.service.ts +0 -21
  216. package/src/lib/services/utils/encryption/README.md +0 -79
  217. package/src/lib/services/utils/encryption/asymmetrical-encryption.service.ts +0 -282
  218. package/src/lib/services/utils/encryption/encryption-test.service.ts +0 -39
  219. package/src/lib/services/utils/encryption/random.ts +0 -69
  220. package/src/lib/services/utils/encryption/symmetrical-encryption.service.ts +0 -93
  221. package/src/lib/services/utils/headers.service.spec.ts +0 -80
  222. package/src/lib/services/utils/headers.service.ts +0 -18
  223. package/src/lib/services/utils/object-merger.service.spec.ts +0 -16
  224. package/src/lib/services/utils/object-merger.service.ts +0 -60
  225. package/src/lib/services/utils/path-query.service.spec.ts +0 -117
  226. package/src/lib/services/utils/path-query.service.ts +0 -69
  227. package/src/lib/services/utils/utils.service.spec.ts +0 -164
  228. package/src/lib/services/utils/utils.service.ts +0 -192
  229. package/tsconfig.lib.json +0 -32
  230. package/tsconfig.lib.prod.json +0 -10
  231. package/tsconfig.spec.json +0 -14
  232. /package/{src/lib/services/request-manager-services/rxjs-operators/index.ts → lib/services/request-manager-services/rxjs-operators/index.d.ts} +0 -0
@@ -1,328 +0,0 @@
1
- <div style="margin: 2rem;">
2
-
3
- <h2>
4
- HTTP Request State Manager
5
- </h2>
6
-
7
- <div [formGroup]="requestForm" style="margin-top: 2rem;">
8
- <div style="display: flex; gap: .5rem">
9
- <mat-form-field appearance="outline">
10
- <mat-label>State Data Type</mat-label>
11
- <mat-select formControlName="datatype">
12
- <mat-option value="ARRAY">Array</mat-option>
13
- <mat-option value="OBJECT">Object</mat-option>
14
- </mat-select>
15
- </mat-form-field>
16
- </div>
17
- <div style="display: flex; gap: .5rem">
18
- <mat-form-field appearance="outline">
19
- <mat-label>Adapter (Model)</mat-label>
20
- <mat-select formControlName="adapter" #adapterSelect>
21
- <mat-option>None</mat-option>
22
- <mat-option *ngFor="let adapter of sampleAdaptors" [value]="adapter.value">
23
- {{adapter.label}}
24
- </mat-option>
25
- </mat-select>
26
- </mat-form-field>
27
- <mat-form-field appearance="outline">
28
- <mat-label>Mapper (Model)</mat-label>
29
- <mat-select formControlName="mapper" #mapperSelect>
30
- <mat-option>None</mat-option>
31
- <mat-option *ngFor="let mapper of sampleMappers" [value]="mapper.value">
32
- {{mapper.label}}
33
- </mat-option>
34
- </mat-select>
35
- </mat-form-field>
36
- </div>
37
-
38
- <div style="display: flex; margin-bottom: 2rem;" *ngIf="adapterSelect.value || mapperSelect.value">
39
- <div style="flex:1" class="box">
40
- <h3>Adapter (Incoming)</h3>
41
- <div *ngIf="adapterSelect.value; else NO_ADAPTER">
42
- {{ props(adapterSelect.value) | json }}
43
- </div>
44
- <ng-template #NO_ADAPTER>No Transformation</ng-template>
45
- </div>
46
- <div style="flex:1" class="box">
47
- <h3>Mapper (Outgoing)</h3>
48
- <div *ngIf="mapperSelect.value; else NO_MAPPER">
49
- {{ props(mapperSelect.value) | json }}
50
- </div>
51
- <ng-template #NO_MAPPER>No Transformation</ng-template>
52
- </div>
53
- </div>
54
-
55
- <div>
56
- <mat-form-field appearance="outline">
57
- <mat-label>RestPath (/ delimited)</mat-label>
58
- <input matInput placeholder="clients/list" formControlName="path">
59
- </mat-form-field>
60
- </div>
61
- <div>
62
- <div formArrayName="headers">
63
- <div *ngFor="let task of headers.controls; let i = index" [formGroupName]="i">
64
- <div style="display: flex; gap: .5rem">
65
- <mat-form-field appearance="outline">
66
- <mat-label>Key</mat-label>
67
- <input matInput placeholder="authentication" formControlName="key">
68
- </mat-form-field>
69
- <mat-form-field appearance="outline" style="flex:1">
70
- <mat-label>Value</mat-label>
71
- <input matInput placeholder="sample" formControlName="value">
72
- </mat-form-field>
73
- <div style="margin-top: .5rem;">
74
- <button mat-icon-button (click)="removeHeader(i)">
75
- <mat-icon>close</mat-icon>
76
- </button>
77
- </div>
78
- </div>
79
- </div>
80
- </div>
81
- <button mat-stroked-button (click)="addHeader()">Add Header</button>
82
- </div>
83
- <div style="margin-top: 2rem; display: flex; flex-direction:column; gap: 1rem;">
84
- <div>
85
- <mat-slide-toggle #failedState>Retry on Failed</mat-slide-toggle>
86
- <div *ngIf="failedState.checked" style="display: flex; gap: .5rem; margin-top: 1rem;" formGroupName="retry">
87
- <mat-form-field appearance="outline">
88
- <mat-label>#of Times</mat-label>
89
- <input matInput placeholder="3" formControlName="times" value="3">
90
- </mat-form-field>
91
- <mat-form-field appearance="outline">
92
- <mat-label>Delay Until Next</mat-label>
93
- <input matInput placeholder="3" formControlName="delay" value="3">
94
- </mat-form-field>
95
- </div>
96
- </div>
97
- <div>
98
- <mat-slide-toggle #pollingState>Polling</mat-slide-toggle>
99
- <div *ngIf="pollingState.checked">
100
- <mat-form-field appearance="outline" style="margin-top: 1rem">
101
- <mat-label>#of Seconds</mat-label>
102
- <input matInput placeholder="3" formControlName="polling" value="3">
103
- </mat-form-field>
104
- </div>
105
- </div>
106
- <div>
107
- <mat-slide-toggle #DBState>Database Storage</mat-slide-toggle>
108
- <div *ngIf="DBState.checked" style="display: flex; gap: .5rem; margin-top: 1rem" formGroupName="database">
109
- <mat-form-field appearance="outline">
110
- <mat-label>Table Name</mat-label>
111
- <input matInput placeholder="table" formControlName="table" value="">
112
- </mat-form-field>
113
- <div>
114
- <mat-form-field appearance="outline">
115
- <mat-label>Expires In</mat-label>
116
- <mat-select formControlName="expiresIn">
117
- <mat-option value="1m">One Minute</mat-option>
118
- <mat-option value="1h">One Hour</mat-option>
119
- <mat-option value="1d">One Day</mat-option>
120
- </mat-select>
121
- </mat-form-field>
122
- </div>
123
- </div>
124
- </div>
125
- <div style="margin-top: 1rem; display: flex;">
126
- <span style="flex:1"></span>
127
- <button mat-stroked-button (click)="onSetStateOptions()" [disabled]="!hasChanged">
128
- Set API Request Options
129
- </button>
130
- </div>
131
- <div>
132
- <mat-error *ngIf="(error$ | async) as error">
133
- {{ error }}
134
- </mat-error>
135
- </div>
136
- </div>
137
- </div>
138
-
139
- <div style="margin-bottom: 1rem; margin-top: 2rem;">
140
- <mat-progress-bar mode="indeterminate"
141
- *ngIf="(isPending$ | async)"
142
- ></mat-progress-bar>
143
- <div *ngIf="pollingState.checked">
144
- <mat-progress-bar mode="determinate"
145
- *ngIf="!(isPending$ | async) && (this.countdown$ | async) || -1 > 0"
146
- [value]="(this.countdown$ | async)"
147
- ></mat-progress-bar>
148
- </div>
149
-
150
- </div>
151
-
152
- <div style="margin-top: 2rem" *ngIf="(GET$ | async) as data">
153
- <div style="display: flex;">
154
- <h2 style="flex:1;">CURRENT STATE ({{ dataType }})</h2>
155
- </div>
156
- <div *ngIf="data.length > 1">
157
- <mat-form-field appearance="outline">
158
- <mat-label>Records</mat-label>
159
- <mat-select [formControl]="selectedRecord" [disabled]="data === null && data?.length === 0">
160
- <mat-option [value]="">None</mat-option>
161
- <mat-option *ngFor="let item of data" [value]="item">
162
- {{item.name || (item.first_name) | titlecase}}
163
- </mat-option>
164
- </mat-select>
165
- </mat-form-field>
166
- </div>
167
- <div *ngIf="(dataObservable$ | async) as dataRecord">
168
- <div *ngIf="(selectedRecord$ | async) as record; else NO_RECORD">
169
- {{ record | json }}
170
- </div>
171
- <ng-template #NO_RECORD>No Record Selected from State</ng-template>
172
-
173
- </div>
174
- <div style="margin-top: 1rem;">
175
- <span *ngIf="data !== null && data?.length > 0; else NO_DATA">
176
- State contains a Total of {{ data.length }} Records
177
- </span>
178
- <ng-template #NO_DATA>No Records</ng-template>
179
- <div style="display: flex; gap: .5rem; text-align: end; justify-content: flex-end;">
180
- <button class="btn" mat-stroked-button (click)="onClearRecords()">Clear</button>
181
- <button class="btn" mat-stroked-button (click)="onRefreshRecords()" [disabled]="hasChanged">Refresh</button>
182
- </div>
183
- </div>
184
- </div>
185
-
186
-
187
-
188
-
189
- <div style="margin-top: 1rem">
190
- <mat-divider></mat-divider>
191
- </div>
192
-
193
- <div style="margin-top: 2rem">
194
- <div style="display: flex;">
195
- <h2 style="flex:1">GET Request ({{ dataType }})</h2>
196
- <div>
197
- <button mat-raised-button (click)="onGetRequest()" [disabled]="hasChanged" class="btn">Request</button>
198
- </div>
199
- </div>
200
-
201
- <div *ngIf="(GET_error$ | async) as get_error" style="margin-top: .5rem;">
202
- <mat-error>{{ get_error }}</mat-error>
203
- </div>
204
-
205
- <div style="margin-top: 1rem;">
206
- <!-- <div [innerHTML]="(GET$ | async) | jsonv"></div> -->
207
- <div *ngIf="(GET$ | async) as getData">{{ getData | json }}</div>
208
- </div>
209
-
210
- </div>
211
-
212
- <div style="margin-top: 2rem">
213
- <mat-divider></mat-divider>
214
- </div>
215
-
216
- <div style="margin-top: 2rem">
217
- <div style="display: flex;">
218
- <h2 style="flex:1">POST Request</h2>
219
- <div>
220
- <button mat-raised-button (click)="onCreateRequest()" [disabled]="hasChanged" class="btn">Request</button>
221
- </div>
222
- </div>
223
-
224
- <div *ngIf="(POST_error$ | async) as post_error" style="margin-top: .5rem;">
225
- <mat-error>{{ post_error }}</mat-error>
226
- </div>
227
-
228
- <div style="margin-top: 1rem;">
229
- <!-- <div [innerHTML]="(POST$ | async) | jsonv"></div> -->
230
- <div *ngIf="(POST$ | async) as postData">{{ postData | json }}</div>
231
- </div>
232
-
233
- </div>
234
-
235
- <div style="margin-top: 2rem">
236
- <mat-divider></mat-divider>
237
- </div>
238
-
239
- <div style="margin-top: 2rem">
240
- <div style="display: flex;">
241
- <h2 style="flex:1">PUT Request</h2>
242
- <div>
243
- <button mat-raised-button (click)="onUpdateRequest()" [disabled]="hasChanged" class="btn">Request</button>
244
- </div>
245
- </div>
246
-
247
- <div *ngIf="(PUT_error$ | async) as put_error" style="margin-top: .5rem;">
248
- <mat-error>{{ put_error }}</mat-error>
249
- </div>
250
-
251
- <div style="margin-top: 1rem;">
252
- <!-- <div [innerHTML]="(PUT$ | async) | jsonv"></div> -->
253
- <div *ngIf="(PUT$ | async) as putData">{{ putData | json }}</div>
254
- </div>
255
-
256
- </div>
257
-
258
- <div style="margin-top: 2rem">
259
- <mat-divider></mat-divider>
260
- </div>
261
-
262
- <div style="margin-top: 2rem">
263
- <div style="display: flex;">
264
- <h2 style="flex:1">DELETE Request</h2>
265
- <div>
266
- <button mat-raised-button (click)="onDeleteRequest()" [disabled]="hasChanged" class="btn">Request</button>
267
- </div>
268
- </div>
269
-
270
- <div *ngIf="(DELETE_error$ | async) as delete_error" style="margin-top: .5rem;">
271
- <mat-error>{{ delete_error }}</mat-error>
272
- </div>
273
-
274
- <div style="margin-top: 1rem;">
275
- <!-- <div [innerHTML]="(DELETE$ | async) | jsonv"></div> -->
276
- <div *ngIf="(DELETE$ | async) as deleteData">{{ deleteData | json }}</div>
277
- </div>
278
-
279
- </div>
280
-
281
- <div style="margin-top: 2rem">
282
- <mat-divider></mat-divider>
283
- </div>
284
-
285
- <div style="margin-top: 2rem">
286
- <div style="display: flex;">
287
- <h2 style="flex:1">Streaming GET Request</h2>
288
- <div>
289
- <button mat-raised-button (click)="onStreamRequest()" class="btn" [disabled]="hasChanged">Request</button>
290
- </div>
291
- </div>
292
-
293
- <div *ngIf="(STREAM_error$ | async) as stream_error" style="margin-top: .5rem;">
294
- <mat-error>{{ stream_error }}</mat-error>
295
- </div>
296
-
297
- <div style="margin-top: 1rem;">
298
- <div *ngIf="(STREAM$ | async) as data" class="container">
299
- <table mat-table [dataSource]="data">
300
- <ng-container matColumnDef="id">
301
- <th mat-header-cell *matHeaderCellDef> ID </th>
302
- <td mat-cell *matCellDef="let element"> {{element.id}} </td>
303
- </ng-container>
304
-
305
- <ng-container matColumnDef="name">
306
- <th mat-header-cell *matHeaderCellDef> First Name </th>
307
- <td mat-cell *matCellDef="let element"> {{element.name}} </td>
308
- </ng-container>
309
-
310
- <ng-container matColumnDef="lastName">
311
- <th mat-header-cell *matHeaderCellDef> Last Name </th>
312
- <td mat-cell *matCellDef="let element"> {{element.lastName}} </td>
313
- </ng-container>
314
-
315
- <ng-container matColumnDef="age">
316
- <th mat-header-cell *matHeaderCellDef> Age </th>
317
- <td mat-cell *matCellDef="let element"> {{element.age}} </td>
318
- </ng-container>
319
-
320
- <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
321
- <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
322
- </table>
323
- </div>
324
- </div>
325
-
326
- </div>
327
-
328
- </div>
@@ -1,24 +0,0 @@
1
- .btn {
2
- min-width: 120px;
3
- }
4
-
5
- .mat-mdc-row .mat-mdc-cell {
6
- border-bottom: 1px solid transparent;
7
- border-top: 1px solid transparent;
8
- cursor: pointer;
9
- }
10
-
11
- .mat-mdc-row:hover .mat-mdc-cell {
12
- border-color: currentColor;
13
- background-color: whitesmoke;
14
- }
15
-
16
- .container {
17
- height: 400px;
18
- overflow: auto;
19
- }
20
-
21
- .box {
22
- padding: 10px;
23
- border: 1px solid #ccc;
24
- }
@@ -1,347 +0,0 @@
1
- import { Component, OnInit, ViewChild, inject } from '@angular/core';
2
-
3
- import { StateManagerDemoService } from './services/state-manager-demo.service';
4
- import { FormBuilder, Validators, FormArray } from '@angular/forms';
5
-
6
- import { Observable, BehaviorSubject, EMPTY, map, tap, catchError, throwError } from 'rxjs';
7
-
8
- import { ClientInfo } from '../request-manager-demo/models/sample-client-info';
9
- import { ClientInfoMapper } from '../request-manager-demo/models/sample-mapper-client-info';
10
- import { AIPrompt } from '../request-manager-demo/models/sample-ai-prompt';
11
-
12
- import { DataType } from '../../models';
13
- import { DatabaseStorage } from '../../models/database-storage.model';
14
- import { HTTPManagerService, ApiRequest } from '../../services';
15
-
16
-
17
- @Component({
18
- selector: 'app-request-manager-state-demo',
19
- templateUrl: './request-manager-state-demo.component.html',
20
- styleUrls: ['./request-manager-state-demo.component.scss'],
21
- })
22
- export class RequestManagerStateDemoComponent implements OnInit {
23
-
24
- stateManagerDemoService = inject(StateManagerDemoService)
25
-
26
- displayedColumns = ['id','name', 'lastName', 'age']
27
-
28
- selectedRecord$?: Observable<ClientInfo|null>
29
-
30
- fb = inject(FormBuilder)
31
-
32
- httpManagerService = inject(HTTPManagerService)
33
-
34
- isPending$ = this.stateManagerDemoService.isPending$
35
- error$ = this.stateManagerDemoService.error$
36
-
37
- countdown$ = this.httpManagerService.countdown$
38
-
39
- GET_error$ = new BehaviorSubject<string>('')
40
- POST_error$ = new BehaviorSubject<string>('')
41
- PUT_error$ = new BehaviorSubject<string>('')
42
- DELETE_error$ = new BehaviorSubject<string>('')
43
-
44
- STREAM_error$ = new BehaviorSubject<string>('')
45
- STREAM_AI_error$ = new BehaviorSubject<string>('')
46
-
47
- GET$ = new BehaviorSubject<any>(null)
48
- POST$ = new BehaviorSubject(null)
49
- PUT$ = new BehaviorSubject(null)
50
- DELETE$ = new BehaviorSubject(null)
51
-
52
- STREAM = new BehaviorSubject(null)
53
- STREAM$ = this.STREAM.asObservable()
54
-
55
- STREAM_AI = new BehaviorSubject<{response: string}[]>([])
56
- STREAM_AI$ = this.STREAM_AI.asObservable()
57
- .pipe(
58
- map((items: any) => (items) ? items.map((item: any) => item.response) : []),
59
- map((items: any) => items.join('\n').trim()),
60
- )
61
-
62
- @ViewChild("failedState", { static: true }) failedState: any
63
- @ViewChild("pollingState", { static: true }) pollingState: any
64
-
65
- questionControl = this.fb.control("", [Validators.required])
66
-
67
- requestType = ''
68
-
69
- prompts: string[] = []
70
-
71
- AIType = 0
72
-
73
- get dataObservable$() {
74
-
75
- switch (this.requestType) {
76
- case 'GET':
77
- return this.GET$
78
-
79
- case 'PUT':
80
- return this.PUT$
81
-
82
- case 'POST':
83
- return this.POST$
84
-
85
- case 'DELETE':
86
- return this.DELETE$
87
-
88
- case 'STREAM':
89
- return this.STREAM
90
-
91
- case 'STREAM_AI':
92
- return this.STREAM_AI
93
-
94
- default:
95
- return this.GET$
96
- break;
97
- }
98
-
99
- }
100
-
101
- sampleClientData = {
102
- id: 0,
103
- name: "Old School Dates",
104
- domain: "osd.com",
105
- service: "osd",
106
- spiffe: "osd.com/osd",
107
- secret: "SMOPECXP-OS4P-USOG-X2II-3XMD1FQDR3IJX",
108
- created: 1693003138,
109
- modified: 1693003138,
110
- icon: "",
111
- imageFile: "",
112
- }
113
-
114
- selectedRecord = this.fb.control(null)
115
-
116
- requestForm = this.fb.group({
117
- datatype: this.fb.control('ARRAY'),
118
- path: this.fb.control<string>("ai/"),
119
- headers: this.fb.array([]),
120
- adapter: [null],
121
- mapper: [null],
122
- retry: this.fb.group({
123
- times: [3],
124
- delay: [3],
125
- }),
126
- polling: [3],
127
- database: this.fb.group({
128
- table: [''],
129
- expiresIn: ['1m'],
130
- })
131
- })
132
-
133
- get hasChanged() {
134
- return this.requestForm.dirty || this.requestForm.untouched
135
- }
136
-
137
- get dataType() {
138
- return this.requestForm.get("datatype")?.value
139
- }
140
-
141
- get database() {
142
- return this.requestForm.get("database")?.value
143
- }
144
-
145
- get retry() {
146
- return this.requestForm.get("retry")?.value
147
- }
148
-
149
- sampleAdaptors = [
150
- { label: "ClientInfo Basic", value: ClientInfo.adapt },
151
- { label: "AI Prompt", value: AIPrompt.adapt },
152
- ]
153
-
154
- sampleMappers = [
155
- { label: "Mapper Basic", value: ClientInfoMapper.adapt },
156
- { label: "AI Prompt", value: AIPrompt.adapt },
157
- ]
158
-
159
- get headers(): FormArray {
160
- return this.requestForm.get('headers') as FormArray
161
- }
162
-
163
- get isValid() {
164
- this.requestForm.markAllAsTouched()
165
- return this.requestForm.valid
166
- }
167
-
168
- // server = `http://sample-endpoint/as/authorization.oauth2`
169
-
170
- arrayObjectsToObjects = (arr: any[]) => {
171
- return Array.isArray(arr) ? arr.reduce((obj, item) => Object.assign(obj, { [item.key]: item.value }), {}) : {}
172
- }
173
-
174
- props = (adapter: any) => {
175
- return (adapter) ? adapter() : null
176
- }
177
-
178
- constructor() { }
179
-
180
- ngOnInit() {
181
-
182
- this.stateManagerDemoService.data$.pipe(
183
- tap((data) => console.log("API STREAM_AI response", data)),
184
- )
185
-
186
- this.error$.pipe(
187
- tap((data) => {
188
- debugger
189
- console.log("API STREAM response", data)
190
- }),
191
- catchError(error => {
192
- return throwError(() => this.errorHandling(error, 'STREAM'))
193
- })
194
- )
195
-
196
- this.selectedRecord.valueChanges
197
- .subscribe((data: ClientInfo|null) => {
198
- this.selectedRecord$ = (data) ? this.stateManagerDemoService.selectRecord$(data.id) : EMPTY
199
- })
200
-
201
- this.stateManagerDemoService.data$
202
- .pipe(
203
- tap((data) => {
204
-
205
- switch (this.requestType) {
206
- case 'GET':
207
- this.GET$.next(data)
208
- break;
209
-
210
- case 'PUT':
211
- this.PUT$.next(data)
212
- break;
213
-
214
- case 'POST':
215
- this.POST$.next(data)
216
- break;
217
-
218
- case 'DELETE':
219
- this.DELETE$.next(data)
220
- break;
221
-
222
- case 'STREAM':
223
- this.STREAM.next(data)
224
- break;
225
-
226
- case 'STREAM_AI':
227
- this.STREAM_AI.next(data)
228
- break;
229
-
230
- default:
231
- break;
232
- }
233
-
234
- })
235
- ).subscribe()
236
-
237
- }
238
-
239
- addHeader() {
240
- const header = this.fb.group({
241
- key: ['', Validators.required],
242
- value: ['']
243
- });
244
- this.headers.push(header)
245
- }
246
-
247
- removeHeader(index: number) {
248
- this.headers.removeAt(index)
249
- }
250
-
251
- compileRequest() {
252
-
253
- const requestParams = this.requestForm.value
254
-
255
- requestParams.headers = this.arrayObjectsToObjects(
256
- requestParams.headers || []
257
- )
258
-
259
- const pathReq = (requestParams.path === "") ? [] : (requestParams.path || "").split("/")
260
-
261
- if (!this.pollingState.checked) requestParams.polling = 0
262
-
263
- if (!this.failedState.checked) {
264
- requestParams.retry = { times: 0,delay: 0 }
265
- }
266
-
267
- const currentOptions = ApiRequest.adapt(requestParams)
268
- currentOptions.path = []
269
- const apiOptions = ApiRequest.adapt({ ...currentOptions, path: pathReq })
270
-
271
- return { apiOptions: apiOptions, path: pathReq }
272
-
273
- }
274
-
275
- onSetStateOptions() {
276
-
277
- if(!this.isValid) return
278
-
279
- const reqParams = this.compileRequest()
280
-
281
- const db = DatabaseStorage.adapt(this.database)
282
- const type = this.dataType === "ARRAY" ? DataType.ARRAY : DataType.OBJECT
283
- this.stateManagerDemoService.setAPIOptions(reqParams.apiOptions, type, db)
284
-
285
- this.requestForm.markAsPristine()
286
- }
287
-
288
- onClearRecords() {
289
- this.stateManagerDemoService.clearRecords()
290
- }
291
-
292
- onRefreshRecords() {
293
- this.stateManagerDemoService.refreshData()
294
- }
295
-
296
- onGetRequest() {
297
- this.requestType = 'GET'
298
- this.stateManagerDemoService.getClients()
299
- }
300
-
301
- onCreateRequest() {
302
- this.requestType = 'POST'
303
- this.stateManagerDemoService.createClient(this.sampleClientData)
304
- }
305
-
306
- onUpdateRequest() {
307
- this.requestType = 'PUT'
308
- this.stateManagerDemoService.updateClient(this.sampleClientData)
309
- }
310
-
311
- onDeleteRequest() {
312
- this.requestType = 'DELETE'
313
- this.stateManagerDemoService.deleteClient(this.sampleClientData)
314
- }
315
-
316
- onStreamRequest() {
317
-
318
- if(!this.isValid) return
319
-
320
- const reqParams = this.compileRequest()
321
-
322
- reqParams.apiOptions.stream = true
323
-
324
- this.requestType = 'STREAM'
325
-
326
- this.stateManagerDemoService.streamRequest()
327
-
328
- }
329
-
330
- errorHandling(err: any, type: string) { console.log(err, type)
331
- if(type === 'GET') this.GET_error$.next(err.message)
332
- if(type === 'POST') this.POST_error$.next(err.message)
333
- if(type === 'PUT') this.PUT_error$.next(err.message)
334
- if(type === 'DELETE') this.DELETE_error$.next(err.message)
335
- if(type === 'STREAM') this.STREAM_error$.next(err.message)
336
- if(type === 'STREAM_AI') this.STREAM_AI_error$.next(err.message)
337
- }
338
-
339
- onSelectAIType(type: number) {
340
- this.AIType = type
341
- }
342
-
343
- onClearHistory() {
344
- this.prompts = []
345
- }
346
-
347
- }