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
@@ -0,0 +1,267 @@
1
+ import { inject, Inject, Injectable, InjectionToken } from '@angular/core';
2
+ import { ComponentStore } from '@ngrx/component-store';
3
+ import { BehaviorSubject, of } from 'rxjs';
4
+ import { tap, switchMap, concatMap, scan, delay } from 'rxjs/operators';
5
+ import { DatabaseStorage } from '../../models/database-storage.model';
6
+ import { HTTPManagerService, DataType } from '../request-manager-services';
7
+ import { ApiRequest, RequestOptions } from './models';
8
+ import * as i0 from "@angular/core";
9
+ const API_OPTS = new InjectionToken('API_OPTS');
10
+ const defaultState = {
11
+ data: [],
12
+ dataObject: null,
13
+ };
14
+ export class HTTPManagerStateService extends ComponentStore {
15
+ constructor(apiOptions = ApiRequest.adapt(), dataType, database) {
16
+ super(defaultState);
17
+ this.apiOptions = apiOptions;
18
+ this.dataType = dataType;
19
+ this.database = database;
20
+ this.httpManagerService = inject(HTTPManagerService);
21
+ this.error$ = this.httpManagerService.error$;
22
+ this.isPending$ = this.httpManagerService.isPending$.pipe(delay(1));
23
+ // PAGINATION
24
+ this.page = new BehaviorSubject(0);
25
+ this.page$ = this.page.asObservable();
26
+ this.totalPages = new BehaviorSubject(0);
27
+ this.totalPages$ = this.totalPages.asObservable();
28
+ this.percentage = new BehaviorSubject(0);
29
+ this.percentage$ = this.percentage.asObservable();
30
+ // ----------
31
+ this.hasDatabase = false;
32
+ this.streamedResponse = [];
33
+ // --------------------------------------------------------------------------------------------------
34
+ // SELECTORS
35
+ this.data$ = this.select(({ data, dataObject }) => {
36
+ const isArray = (this.dataType === DataType.ARRAY) ? true : false;
37
+ return (isArray) ? data : dataObject;
38
+ });
39
+ this.selectRecord$ = (id) => this.select(this.data$, (data) => {
40
+ if (this.dataType === DataType.ARRAY && Array.isArray(data)) {
41
+ return data.find(item => item.id === id);
42
+ }
43
+ else {
44
+ return data.id === id ? data : null;
45
+ }
46
+ });
47
+ // --------------------------------------------------------------------------------------------------
48
+ // UPDATERS
49
+ this.setData$ = this.updater((state, data) => {
50
+ if (!data)
51
+ return state;
52
+ if (this.dataType === DataType.ARRAY) {
53
+ const dataArray = Array.isArray(data) ? data : [data];
54
+ const stateDataSample = (state.data.length > 0) ? Object.keys(state.data[0]) : [];
55
+ const newDataSample = (dataArray.length > 0) ? Object.keys(dataArray[0]) : [];
56
+ const isSame = (state.data.length === 0) ? false : stateDataSample.every((value, index) => value === newDataSample[index]);
57
+ const updatedData = (!isSame && dataArray.length !== 0) ? this.updateArrayState([], dataArray) : this.updateArrayState(state.data, dataArray);
58
+ return { ...state, data: updatedData, dataObject: null };
59
+ }
60
+ else {
61
+ const dataObject = this.isEmpty(data) ? null : data;
62
+ return { ...state, data: [], dataObject: dataObject };
63
+ }
64
+ });
65
+ this.addData$ = this.updater((state, data) => {
66
+ if (this.dataType === DataType.ARRAY) {
67
+ const newState = [...state.data, data];
68
+ return { ...state, ...{ data: newState } };
69
+ }
70
+ else {
71
+ return { ...state, ...{ dataObject: data } };
72
+ }
73
+ });
74
+ this.deleteData$ = this.updater((state, data) => {
75
+ if (this.dataType === DataType.ARRAY) {
76
+ const newState = state.data.filter(item => item.id !== data.id);
77
+ return { ...state, ...{ data: newState } };
78
+ }
79
+ else {
80
+ return { ...state, ...{ dataObject: null } };
81
+ }
82
+ });
83
+ this.updateData$ = this.updater((state, data) => {
84
+ if (this.dataType === DataType.ARRAY) {
85
+ const objIndex = state.data.findIndex(item => item.id === data.id);
86
+ if (objIndex > -1) {
87
+ const newState = [...state.data];
88
+ newState[objIndex] = data;
89
+ return { ...state, ...{ data: newState } };
90
+ }
91
+ return state;
92
+ }
93
+ else {
94
+ return { ...state, ...{ dataObject: data } };
95
+ }
96
+ });
97
+ // --------------------------------------------------------------------------------------------------
98
+ // EFFECTS
99
+ this.clearRecords = this.effect(data => data.pipe(tap(() => {
100
+ if (this.dataType === DataType.ARRAY) {
101
+ this.setData$([]);
102
+ }
103
+ else {
104
+ this.setData$({});
105
+ }
106
+ })));
107
+ this.refreshData = this.effect(data => data.pipe(tap(() => {
108
+ // this.apiService.flushDatabase(this.otherOptions.database?.table)
109
+ this.fetchRecords();
110
+ })));
111
+ // --------------------------------------------------------------------------------------------------
112
+ // CRUD OPERATIONS
113
+ // FETCH RECORDS
114
+ this.fetchRecords = (options) => this.effect(() => of(RequestOptions.adapt(options)).pipe(switchMap(() => {
115
+ this.streamedResponse = [];
116
+ const requestOptions = this.updateRequestOptions(options?.headers);
117
+ return this.httpManagerService.getRequest(requestOptions, options?.path)
118
+ .pipe(tap((data) => {
119
+ data = (!data) ? (this.dataType === DataType.ARRAY) ? [] : {} : data;
120
+ this.setData$(data);
121
+ }));
122
+ })));
123
+ // CREATE RECORD
124
+ this.createRecord = (data, options) => this.effect(() => of(data).pipe(switchMap((data) => {
125
+ this.streamedResponse = [];
126
+ const requestOptions = this.updateRequestOptions(options?.headers);
127
+ return this.httpManagerService.postRequest(data, requestOptions, options?.path)
128
+ .pipe(tap((data) => {
129
+ data = (!data) ? (this.dataType === DataType.ARRAY) ? [] : {} : data;
130
+ this.addData$(data);
131
+ }));
132
+ })));
133
+ // UPDATE RECORD
134
+ this.updateRecord = (data, options) => this.effect(() => of(data).pipe(concatMap((data) => {
135
+ this.streamedResponse = [];
136
+ const requestOptions = this.updateRequestOptions(options?.headers);
137
+ return this.httpManagerService.putRequest(data, requestOptions, options?.path)
138
+ .pipe(tap((data) => {
139
+ data = (!data) ? (this.dataType === DataType.ARRAY) ? [] : {} : data;
140
+ this.updateData$(data);
141
+ }));
142
+ })));
143
+ // DELETE RECORD
144
+ this.deleteRecord = (options) => this.effect(() => of(options).pipe(concatMap((data) => {
145
+ this.streamedResponse = [];
146
+ const requestOptions = this.updateRequestOptions(options?.headers);
147
+ return this.httpManagerService.deleteRequest(requestOptions, options?.path)
148
+ .pipe(tap((data) => {
149
+ data = (!data) ? (this.dataType === DataType.ARRAY) ? [] : {} : data;
150
+ this.deleteData$(data);
151
+ }));
152
+ })));
153
+ // --------------------------------------------------------------------------------------------------
154
+ // FETCH STREAM
155
+ this.createStream = (data, options) => this.effect(() => of(data).pipe(tap(() => this.httpManagerService.isPending.next(true)), switchMap((data) => {
156
+ const requestOptions = this.updateRequestOptions(options?.headers);
157
+ return this.httpManagerService.postRequest(data, requestOptions, options?.path)
158
+ .pipe(tap((res) => {
159
+ if (res.length > 0)
160
+ this.setData$(res);
161
+ this.streamedResponse = res;
162
+ }), scan((acc, res) => {
163
+ const previous = acc.current;
164
+ const current = res;
165
+ return { previous, current };
166
+ }, { previous: null, current: null }), tap(({ previous, current }) => {
167
+ if (previous && JSON.stringify(previous) === JSON.stringify(current)) {
168
+ this.httpManagerService.isPending.next(false);
169
+ this.setData$([]);
170
+ }
171
+ else {
172
+ this.httpManagerService.isPending.next(true);
173
+ }
174
+ }));
175
+ })));
176
+ this.fetchStream = (options) => this.effect(() => of(options).pipe(tap(() => this.httpManagerService.isPending.next(true)), switchMap((options) => {
177
+ const requestOptions = this.updateRequestOptions(options?.headers);
178
+ requestOptions.stream = true;
179
+ return this.httpManagerService.getRequest(requestOptions, options?.path)
180
+ .pipe(tap((res) => {
181
+ if (res.length > 0)
182
+ this.setData$(res);
183
+ this.streamedResponse = res;
184
+ }), scan((acc, res) => {
185
+ const previous = acc.current;
186
+ const current = res;
187
+ return { previous, current };
188
+ }, { previous: null, current: null }), tap(({ previous, current }) => {
189
+ if (previous && JSON.stringify(previous) === JSON.stringify(current)) {
190
+ this.httpManagerService.isPending.next(false);
191
+ this.setData$([]);
192
+ }
193
+ else {
194
+ this.httpManagerService.isPending.next(true);
195
+ }
196
+ }));
197
+ })));
198
+ this.setApiRequestOptions(apiOptions, dataType, database);
199
+ }
200
+ setApiRequestOptions(apiOptions, dataType, database) {
201
+ this.apiOptions = ApiRequest.adapt(apiOptions);
202
+ this.dataType = (dataType) ? dataType : DataType.ARRAY;
203
+ this.hasDatabase = this.database?.table === "" ? false : true;
204
+ this.database = (this.hasDatabase) ? DatabaseStorage.adapt(database) : undefined;
205
+ }
206
+ get ApiRequestOptions() {
207
+ return this.apiOptions;
208
+ }
209
+ initStorage() {
210
+ // if(this.otherOptions.database) {
211
+ // console.log('Has Database Option:', this.otherOptions.database.table)
212
+ // const schema = (this.otherOptions.adapters?.incoming) ? Object.keys(this.otherOptions.adapters.incoming({})).join() : '++id'
213
+ // this.apiService.initDB(this.otherOptions.database.expiresIn, this.otherOptions.database.table, schema)
214
+ // }
215
+ }
216
+ initializeState(data) {
217
+ this.setData$(data);
218
+ }
219
+ updateArrayState(currentData, newData) {
220
+ const filterCurrentData = () => {
221
+ const ids = this.streamedResponse.map((obj) => obj.id);
222
+ return currentData.filter(obj => (obj.id) ? ids.includes(obj.id) : obj);
223
+ };
224
+ const filteredCurrentData = (this.httpManagerService.isPending.value) ? currentData : filterCurrentData();
225
+ const updatedData = filteredCurrentData.map(item => {
226
+ const newItem = newData.find(newItem => {
227
+ const hasId = (newItem?.id && item?.id) ? true : false;
228
+ return (hasId) ? newItem.id === item.id : JSON.stringify(newItem) === JSON.stringify(item);
229
+ });
230
+ return (newItem) ? { ...item, ...newItem } : item;
231
+ });
232
+ const addedData = newData.filter(newItem => {
233
+ return !filteredCurrentData.some(item => {
234
+ const hasId = (newItem?.id && item?.id) ? true : false;
235
+ return (hasId) ? item.id === newItem.id : JSON.stringify(newItem) === JSON.stringify(item);
236
+ });
237
+ });
238
+ return [...updatedData, ...addedData];
239
+ }
240
+ // --------------------------------------------------------------------------------------------------
241
+ // MISC
242
+ isEmpty(obj) {
243
+ return Object.keys(obj).length === 0;
244
+ }
245
+ updateRequestOptions(headers) {
246
+ const options = ApiRequest.adapt({ ...this.apiOptions });
247
+ options.headers = (headers)
248
+ ? { ...options.headers, ...headers }
249
+ : { ...options.headers };
250
+ return options;
251
+ }
252
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPManagerStateService, deps: [{ token: API_OPTS }, { token: "dataType" }, { token: "database" }], target: i0.ɵɵFactoryTarget.Injectable }); }
253
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPManagerStateService }); }
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HTTPManagerStateService, decorators: [{
256
+ type: Injectable
257
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
258
+ type: Inject,
259
+ args: [API_OPTS]
260
+ }] }, { type: undefined, decorators: [{
261
+ type: Inject,
262
+ args: ["dataType"]
263
+ }] }, { type: undefined, decorators: [{
264
+ type: Inject,
265
+ args: ["database"]
266
+ }] }]; } });
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1tYW5hZ2VyLXN0YXRlLnN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9yZXF1ZXN0LW1hbmFnZXItc3RhdGUtc2VydmljZS9odHRwLW1hbmFnZXItc3RhdGUuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUd0RCxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBYSxVQUFVLENBQUMsQ0FBQztBQU81RCxNQUFNLFlBQVksR0FBNkI7SUFDN0MsSUFBSSxFQUFFLEVBQUU7SUFDUixVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBR0YsTUFBTSxPQUFPLHVCQUFrRCxTQUFRLGNBQXNDO0lBc0IzRyxZQUM0QixhQUFhLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFDN0IsUUFBOEIsRUFDOUIsUUFBc0M7UUFFbEUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBSk0sZUFBVSxHQUFWLFVBQVUsQ0FBcUI7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LHFHQUFxRztJQUNyRyxPQUFPO0lBRUMsT0FBTyxDQUFDLEdBQVE7UUFDdEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQWE7UUFFeEMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFFeEQsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUNyQixDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUE7UUFFOUIsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQzsrR0F4WFUsdUJBQXVCLGtCQXVCeEIsUUFBUSxhQUNSLFVBQVUsYUFDVixVQUFVO21IQXpCVCx1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7OzBCQXdCTixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsVUFBVTs7MEJBQ2pCLE1BQU07MkJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgY29uY2F0TWFwLCBzY2FuLCBkZWxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERhdGFiYXNlU3RvcmFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9kYXRhYmFzZS1zdG9yYWdlLm1vZGVsJztcbmltcG9ydCB7IEhUVFBNYW5hZ2VyU2VydmljZSwgRGF0YVR5cGUgfSBmcm9tICcuLi9yZXF1ZXN0LW1hbmFnZXItc2VydmljZXMnO1xuaW1wb3J0IHsgQXBpUmVxdWVzdCwgUmVxdWVzdE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cblxuY29uc3QgQVBJX09QVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXBpUmVxdWVzdD4oJ0FQSV9PUFRTJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJU3RhdGVNYW5hZ2VyRGF0YTxUPiB7XG4gIGRhdGE6IFRbXVxuICBkYXRhT2JqZWN0OiBUIHwgbnVsbFxufVxuXG5jb25zdCBkZWZhdWx0U3RhdGU6IEFQSVN0YXRlTWFuYWdlckRhdGE8YW55PiA9IHtcbiAgZGF0YTogW10sXG4gIGRhdGFPYmplY3Q6IG51bGwsXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSFRUUE1hbmFnZXJTdGF0ZVNlcnZpY2U8VCBleHRlbmRzIHsgaWQ6IG51bWJlciB9PiBleHRlbmRzIENvbXBvbmVudFN0b3JlPEFQSVN0YXRlTWFuYWdlckRhdGE8VD4+IHtcblxuICBodHRwTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSFRUUE1hbmFnZXJTZXJ2aWNlKVxuXG4gIGVycm9yJCA9IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmVycm9yJFxuICBpc1BlbmRpbmckID0gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UuaXNQZW5kaW5nJC5waXBlKGRlbGF5KDEpKVxuXG4gIC8vIFBBR0lOQVRJT05cbiAgcHJpdmF0ZSBwYWdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG4gIHBhZ2UkID0gdGhpcy5wYWdlLmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHJpdmF0ZSB0b3RhbFBhZ2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG4gIHRvdGFsUGFnZXMkID0gdGhpcy50b3RhbFBhZ2VzLmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHJpdmF0ZSBwZXJjZW50YWdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG4gIHBlcmNlbnRhZ2UkID0gdGhpcy5wZXJjZW50YWdlLmFzT2JzZXJ2YWJsZSgpXG4gIC8vIC0tLS0tLS0tLS1cblxuICBwcml2YXRlIGhhc0RhdGFiYXNlID0gZmFsc2VcblxuICBzdHJlYW1lZFJlc3BvbnNlID0gW11cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFQSV9PUFRTKSBwcml2YXRlIGFwaU9wdGlvbnMgPSBBcGlSZXF1ZXN0LmFkYXB0KCksXG4gICAgQEluamVjdChcImRhdGFUeXBlXCIpIHByaXZhdGUgZGF0YVR5cGU6IERhdGFUeXBlIHwgdW5kZWZpbmVkLFxuICAgIEBJbmplY3QoXCJkYXRhYmFzZVwiKSBwcml2YXRlIGRhdGFiYXNlPzogRGF0YWJhc2VTdG9yYWdlIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHN1cGVyKGRlZmF1bHRTdGF0ZSk7XG4gICAgdGhpcy5zZXRBcGlSZXF1ZXN0T3B0aW9ucyhhcGlPcHRpb25zLCBkYXRhVHlwZSwgZGF0YWJhc2UpXG4gIH1cblxuICBzZXRBcGlSZXF1ZXN0T3B0aW9ucyhhcGlPcHRpb25zPzogQXBpUmVxdWVzdCwgZGF0YVR5cGU/OiBEYXRhVHlwZSwgZGF0YWJhc2U/OiBEYXRhYmFzZVN0b3JhZ2UpIHtcblxuICAgIHRoaXMuYXBpT3B0aW9ucyA9IEFwaVJlcXVlc3QuYWRhcHQoYXBpT3B0aW9ucylcbiAgICB0aGlzLmRhdGFUeXBlID0gKGRhdGFUeXBlKSA/IGRhdGFUeXBlIDogRGF0YVR5cGUuQVJSQVlcblxuICAgIHRoaXMuaGFzRGF0YWJhc2UgPSB0aGlzLmRhdGFiYXNlPy50YWJsZSA9PT0gXCJcIiA/IGZhbHNlIDogdHJ1ZVxuICAgIHRoaXMuZGF0YWJhc2UgPSAodGhpcy5oYXNEYXRhYmFzZSkgPyBEYXRhYmFzZVN0b3JhZ2UuYWRhcHQoZGF0YWJhc2UpIDogdW5kZWZpbmVkXG5cbiAgfVxuXG4gIGdldCBBcGlSZXF1ZXN0T3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5hcGlPcHRpb25zXG4gIH1cblxuICBpbml0U3RvcmFnZSgpIHtcbiAgICAvLyBpZih0aGlzLm90aGVyT3B0aW9ucy5kYXRhYmFzZSkge1xuICAgICAgLy8gY29uc29sZS5sb2coJ0hhcyBEYXRhYmFzZSBPcHRpb246JywgdGhpcy5vdGhlck9wdGlvbnMuZGF0YWJhc2UudGFibGUpXG4gICAgICAvLyBjb25zdCBzY2hlbWEgPSAodGhpcy5vdGhlck9wdGlvbnMuYWRhcHRlcnM/LmluY29taW5nKSA/IE9iamVjdC5rZXlzKHRoaXMub3RoZXJPcHRpb25zLmFkYXB0ZXJzLmluY29taW5nKHt9KSkuam9pbigpIDogJysraWQnXG4gICAgICAvLyB0aGlzLmFwaVNlcnZpY2UuaW5pdERCKHRoaXMub3RoZXJPcHRpb25zLmRhdGFiYXNlLmV4cGlyZXNJbiwgdGhpcy5vdGhlck9wdGlvbnMuZGF0YWJhc2UudGFibGUsIHNjaGVtYSlcbiAgICAvLyB9XG4gIH1cblxuICBpbml0aWFsaXplU3RhdGUoZGF0YTogYW55KSB7XG4gICAgdGhpcy5zZXREYXRhJChkYXRhKVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gU0VMRUNUT1JTXG5cbiAgcmVhZG9ubHkgZGF0YSQgPSB0aGlzLnNlbGVjdCgoeyBkYXRhLCBkYXRhT2JqZWN0IH0pID0+IHtcbiAgICBjb25zdCBpc0FycmF5ID0oIHRoaXMuZGF0YVR5cGUgPT09IERhdGFUeXBlLkFSUkFZKSA/IHRydWUgOiBmYWxzZVxuICAgIHJldHVybiAoaXNBcnJheSkgPyBkYXRhIDogZGF0YU9iamVjdFxuICB9KVxuXG4gIHJlYWRvbmx5IHNlbGVjdFJlY29yZCQgPSAoaWQ6IG51bWJlcikgPT4gdGhpcy5zZWxlY3QoXG4gICAgdGhpcy5kYXRhJCxcbiAgICAoZGF0YSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGF0YVR5cGUgPT09IERhdGFUeXBlLkFSUkFZICYmIEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGlkKSBhcyBUIHwgbnVsbFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChkYXRhIGFzIFQpLmlkID09PSBpZCA/IGRhdGEgOiBudWxsXG4gICAgICB9XG4gICAgfVxuICApO1xuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLy8gVVBEQVRFUlNcblxuICBwcml2YXRlIHJlYWRvbmx5IHNldERhdGEkID0gdGhpcy51cGRhdGVyKChzdGF0ZTogQVBJU3RhdGVNYW5hZ2VyRGF0YTxUPiwgZGF0YTogVCB8IFRbXSB8IGFueSkgPT4ge1xuXG4gICAgaWYgKCFkYXRhKSByZXR1cm4gc3RhdGU7XG5cbiAgICBpZiAodGhpcy5kYXRhVHlwZSA9PT0gRGF0YVR5cGUuQVJSQVkpIHtcblxuICAgICAgY29uc3QgZGF0YUFycmF5ID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV1cblxuICAgICAgY29uc3Qgc3RhdGVEYXRhU2FtcGxlID0gKHN0YXRlLmRhdGEubGVuZ3RoID4gMCkgPyBPYmplY3Qua2V5cyhzdGF0ZS5kYXRhWzBdKSA6IFtdXG4gICAgICBjb25zdCBuZXdEYXRhU2FtcGxlID0gKGRhdGFBcnJheS5sZW5ndGggPiAwKSA/IE9iamVjdC5rZXlzKGRhdGFBcnJheVswXSkgOiBbXVxuXG4gICAgICBjb25zdCBpc1NhbWUgPSAoc3RhdGUuZGF0YS5sZW5ndGggPT09IDApID8gZmFsc2UgOiBzdGF0ZURhdGFTYW1wbGUuZXZlcnkoKHZhbHVlLCBpbmRleCkgPT4gdmFsdWUgPT09IG5ld0RhdGFTYW1wbGVbaW5kZXhdKVxuICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSAoIWlzU2FtZSAmJiBkYXRhQXJyYXkubGVuZ3RoICE9PSAwKSA/IHRoaXMudXBkYXRlQXJyYXlTdGF0ZShbXSwgZGF0YUFycmF5KSA6IHRoaXMudXBkYXRlQXJyYXlTdGF0ZShzdGF0ZS5kYXRhLCBkYXRhQXJyYXkpXG5cbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBkYXRhOiB1cGRhdGVkRGF0YSwgZGF0YU9iamVjdDogbnVsbCB9IGFzIEFQSVN0YXRlTWFuYWdlckRhdGE8VD47XG5cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZGF0YU9iamVjdCA9IHRoaXMuaXNFbXB0eShkYXRhKSA/IG51bGwgOiBkYXRhO1xuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIGRhdGE6IFtdLCBkYXRhT2JqZWN0OiBkYXRhT2JqZWN0IH0gYXMgQVBJU3RhdGVNYW5hZ2VyRGF0YTxUPjtcbiAgICB9XG5cbiAgfSk7XG5cbiAgcHJpdmF0ZSB1cGRhdGVBcnJheVN0YXRlKGN1cnJlbnREYXRhOiBhbnlbXSwgbmV3RGF0YTogYW55W10pOiBhbnlbXSB7XG5cbiAgICBjb25zdCBmaWx0ZXJDdXJyZW50RGF0YSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IHRoaXMuc3RyZWFtZWRSZXNwb25zZS5tYXAoKG9iajogYW55KSA9PiBvYmouaWQpXG4gICAgICByZXR1cm4gY3VycmVudERhdGEuZmlsdGVyKG9iaiA9PiAob2JqLmlkKSA/IGlkcy5pbmNsdWRlcyhvYmouaWQpIDogb2JqKVxuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcmVkQ3VycmVudERhdGEgPSAodGhpcy5odHRwTWFuYWdlclNlcnZpY2UuaXNQZW5kaW5nLnZhbHVlKSA/IGN1cnJlbnREYXRhIDogZmlsdGVyQ3VycmVudERhdGEoKVxuXG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSBmaWx0ZXJlZEN1cnJlbnREYXRhLm1hcChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgbmV3SXRlbSA9IG5ld0RhdGEuZmluZChuZXdJdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBoYXNJZCA9IChuZXdJdGVtPy5pZCAmJiBpdGVtPy5pZCkgPyB0cnVlIDogZmFsc2VcbiAgICAgICAgICByZXR1cm4gKGhhc0lkKSA/IG5ld0l0ZW0uaWQgPT09IGl0ZW0uaWQgOiBKU09OLnN0cmluZ2lmeShuZXdJdGVtKSA9PT0gSlNPTi5zdHJpbmdpZnkoaXRlbSlcbiAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIChuZXdJdGVtKSA/IHsgLi4uaXRlbSwgLi4ubmV3SXRlbSB9IDogaXRlbVxuICAgIH0pXG5cbiAgICBjb25zdCBhZGRlZERhdGEgPSBuZXdEYXRhLmZpbHRlcihuZXdJdGVtID0+IHtcbiAgICAgIHJldHVybiAhZmlsdGVyZWRDdXJyZW50RGF0YS5zb21lKGl0ZW0gPT4ge1xuICAgICAgICAgIGNvbnN0IGhhc0lkID0gKG5ld0l0ZW0/LmlkICYmIGl0ZW0/LmlkKSA/IHRydWUgOiBmYWxzZVxuICAgICAgICAgIHJldHVybiAoaGFzSWQpID8gaXRlbS5pZCA9PT0gbmV3SXRlbS5pZCA6IEpTT04uc3RyaW5naWZ5KG5ld0l0ZW0pID09PSBKU09OLnN0cmluZ2lmeShpdGVtKVxuICAgICAgfSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIFsuLi51cGRhdGVkRGF0YSwgLi4uYWRkZWREYXRhXVxuXG59XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhZGREYXRhJCA9IHRoaXMudXBkYXRlcigoc3RhdGU6IEFQSVN0YXRlTWFuYWdlckRhdGE8VD4sIGRhdGE6IFQpID0+IHtcblxuICAgIGlmICh0aGlzLmRhdGFUeXBlID09PSBEYXRhVHlwZS5BUlJBWSkge1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSBbLi4uc3RhdGUuZGF0YSwgZGF0YV07XG4gICAgICByZXR1cm4geyAuLi5zdGF0ZSwgLi4ueyBkYXRhOiBuZXdTdGF0ZSB9IH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIC4uLnsgZGF0YU9iamVjdDogZGF0YSB9IH1cbiAgICB9XG5cbiAgfSlcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlbGV0ZURhdGEkID0gdGhpcy51cGRhdGVyKChzdGF0ZTogQVBJU3RhdGVNYW5hZ2VyRGF0YTxUPiwgZGF0YTogVCAmIHsgaWQ6IG51bWJlciB9KSA9PiB7XG4gICAgaWYgKHRoaXMuZGF0YVR5cGUgPT09IERhdGFUeXBlLkFSUkFZKSB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSBzdGF0ZS5kYXRhLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT09IGRhdGEuaWQpXG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIC4uLnsgZGF0YTogbmV3U3RhdGUgfSB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCAuLi57IGRhdGFPYmplY3Q6IG51bGwgfSB9XG4gICAgfVxuICB9KVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXBkYXRlRGF0YSQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlOiBBUElTdGF0ZU1hbmFnZXJEYXRhPFQ+LCBkYXRhOiBUKSA9PiB7XG5cbiAgICBpZiAodGhpcy5kYXRhVHlwZSA9PT0gRGF0YVR5cGUuQVJSQVkpIHtcblxuICAgICAgY29uc3Qgb2JqSW5kZXggPSBzdGF0ZS5kYXRhLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uaWQgPT09IGRhdGEuaWQpXG5cbiAgICAgIGlmIChvYmpJbmRleCA+IC0xKSB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gWy4uLnN0YXRlLmRhdGFdXG4gICAgICAgIG5ld1N0YXRlW29iakluZGV4XSA9IGRhdGFcbiAgICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIC4uLnsgZGF0YTogbmV3U3RhdGUgfSB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdGF0ZVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCAuLi57IGRhdGFPYmplY3Q6IGRhdGEgfSB9XG4gICAgfVxuXG4gIH0pXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gRUZGRUNUU1xuXG4gIHJlYWRvbmx5IGNsZWFyUmVjb3JkcyA9IHRoaXMuZWZmZWN0KGRhdGEgPT5cbiAgICBkYXRhLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5kYXRhVHlwZSA9PT0gRGF0YVR5cGUuQVJSQVkpIHtcbiAgICAgICAgICB0aGlzLnNldERhdGEkKFtdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0RGF0YSQoe30pXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICkpXG5cbiAgcmVhZG9ubHkgcmVmcmVzaERhdGEgPSB0aGlzLmVmZmVjdChkYXRhID0+XG4gICAgZGF0YS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgLy8gdGhpcy5hcGlTZXJ2aWNlLmZsdXNoRGF0YWJhc2UodGhpcy5vdGhlck9wdGlvbnMuZGF0YWJhc2U/LnRhYmxlKVxuICAgICAgICB0aGlzLmZldGNoUmVjb3JkcygpXG4gICAgICB9KVxuICApKVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENSVUQgT1BFUkFUSU9OU1xuXG4gIC8vIEZFVENIIFJFQ09SRFNcbiAgcmVhZG9ubHkgZmV0Y2hSZWNvcmRzID0gKG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucykgPT5cbiAgICB0aGlzLmVmZmVjdDxhbnk+KCgpID0+XG4gICAgb2YoUmVxdWVzdE9wdGlvbnMuYWRhcHQob3B0aW9ucykpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuXG4gICAgICAgIHRoaXMuc3RyZWFtZWRSZXNwb25zZSA9IFtdXG4gICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0gdGhpcy51cGRhdGVSZXF1ZXN0T3B0aW9ucyhvcHRpb25zPy5oZWFkZXJzKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5nZXRSZXF1ZXN0KHJlcXVlc3RPcHRpb25zLCBvcHRpb25zPy5wYXRoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgZGF0YSA9ICghZGF0YSkgPyAodGhpcy5kYXRhVHlwZSA9PT0gRGF0YVR5cGUuQVJSQVkpID8gW10gOiB7fSA6IGRhdGFcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0YSQoZGF0YSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgIH0pXG4gICAgKVxuICApXG5cbiAgLy8gQ1JFQVRFIFJFQ09SRFxuICByZWFkb25seSBjcmVhdGVSZWNvcmQgPSAoZGF0YTogYW55fG51bGwsIG9wdGlvbnM/OiBSZXF1ZXN0T3B0aW9ucykgPT5cbiAgICB0aGlzLmVmZmVjdDxhbnk+KCgpID0+XG4gICAgICBvZihkYXRhKS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKGRhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgIHRoaXMuc3RyZWFtZWRSZXNwb25zZSA9IFtdXG4gICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0gdGhpcy51cGRhdGVSZXF1ZXN0T3B0aW9ucyhvcHRpb25zPy5oZWFkZXJzKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5wb3N0UmVxdWVzdChkYXRhLCByZXF1ZXN0T3B0aW9ucywgb3B0aW9ucz8ucGF0aClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGRhdGEgPSAoIWRhdGEpID8gKHRoaXMuZGF0YVR5cGUgPT09IERhdGFUeXBlLkFSUkFZKSA/IFtdIDoge30gOiBkYXRhXG4gICAgICAgICAgICB0aGlzLmFkZERhdGEkKGRhdGEpXG4gICAgICAgICAgfSksXG4gICAgICAgIClcblxuICAgICAgfSlcbiAgICApXG4gIClcblxuICAvLyBVUERBVEUgUkVDT1JEXG4gIHJlYWRvbmx5IHVwZGF0ZVJlY29yZCA9IChkYXRhOiBhbnl8bnVsbCwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKSA9PlxuICAgIHRoaXMuZWZmZWN0PGFueT4oKCkgPT5cbiAgICBvZihkYXRhKS5waXBlKFxuICAgICAgY29uY2F0TWFwKChkYXRhOiBhbnkpID0+IHtcblxuICAgICAgICB0aGlzLnN0cmVhbWVkUmVzcG9uc2UgPSBbXVxuICAgICAgICBjb25zdCByZXF1ZXN0T3B0aW9ucyA9IHRoaXMudXBkYXRlUmVxdWVzdE9wdGlvbnMob3B0aW9ucz8uaGVhZGVycylcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UucHV0UmVxdWVzdChkYXRhLCByZXF1ZXN0T3B0aW9ucywgb3B0aW9ucz8ucGF0aClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGRhdGEgPSAoIWRhdGEpID8gKHRoaXMuZGF0YVR5cGUgPT09IERhdGFUeXBlLkFSUkFZKSA/IFtdIDoge30gOiBkYXRhXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZURhdGEkKGRhdGEpXG4gICAgICAgICAgfSksXG4gICAgICAgIClcblxuICAgICAgfSlcbiAgICApXG4gIClcblxuICAvLyBERUxFVEUgUkVDT1JEXG4gIHJlYWRvbmx5IGRlbGV0ZVJlY29yZCA9IChvcHRpb25zPzogUmVxdWVzdE9wdGlvbnMpID0+XG4gICAgdGhpcy5lZmZlY3Q8YW55PigoKSA9PlxuICAgIG9mKG9wdGlvbnMpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoKGRhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgIHRoaXMuc3RyZWFtZWRSZXNwb25zZSA9IFtdXG4gICAgICAgIGNvbnN0IHJlcXVlc3RPcHRpb25zID0gdGhpcy51cGRhdGVSZXF1ZXN0T3B0aW9ucyhvcHRpb25zPy5oZWFkZXJzKVxuXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5kZWxldGVSZXF1ZXN0KHJlcXVlc3RPcHRpb25zLCBvcHRpb25zPy5wYXRoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgZGF0YSA9ICghZGF0YSkgPyAodGhpcy5kYXRhVHlwZSA9PT0gRGF0YVR5cGUuQVJSQVkpID8gW10gOiB7fSA6IGRhdGFcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRGF0YSQoZGF0YSlcbiAgICAgICAgICB9KSxcbiAgICAgICAgKVxuXG4gICAgICB9KVxuICAgIClcbiAgKVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIEZFVENIIFNUUkVBTVxuXG4gIHJlYWRvbmx5IGNyZWF0ZVN0cmVhbSA9IChkYXRhOiBhbnl8bnVsbCwgb3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKSA9PlxuICAgIHRoaXMuZWZmZWN0PGFueT4oKCkgPT5cbiAgICBvZihkYXRhKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmlzUGVuZGluZy5uZXh0KHRydWUpKSxcbiAgICAgIHN3aXRjaE1hcCgoZGF0YTogYW55KSA9PiB7XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB0aGlzLnVwZGF0ZVJlcXVlc3RPcHRpb25zKG9wdGlvbnM/LmhlYWRlcnMpXG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLnBvc3RSZXF1ZXN0KGRhdGEsIHJlcXVlc3RPcHRpb25zLCBvcHRpb25zPy5wYXRoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICBpZihyZXMubGVuZ3RoID4gMCkgdGhpcy5zZXREYXRhJChyZXMpXG4gICAgICAgICAgICB0aGlzLnN0cmVhbWVkUmVzcG9uc2UgPSByZXNcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzY2FuKChhY2MsIHJlczogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gYWNjLmN1cnJlbnRcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZXNcbiAgICAgICAgICAgIHJldHVybiB7IHByZXZpb3VzLCBjdXJyZW50IH07XG5cbiAgICAgICAgICB9LCB7IHByZXZpb3VzOiBudWxsLCBjdXJyZW50OiBudWxsIH0pLFxuICAgICAgICAgIHRhcCgoeyBwcmV2aW91cywgY3VycmVudCB9KSA9PiB7XG5cbiAgICAgICAgICAgIGlmKHByZXZpb3VzICYmIEpTT04uc3RyaW5naWZ5KHByZXZpb3VzKSA9PT0gSlNPTi5zdHJpbmdpZnkoY3VycmVudCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5odHRwTWFuYWdlclNlcnZpY2UuaXNQZW5kaW5nLm5leHQoZmFsc2UpXG4gICAgICAgICAgICAgIHRoaXMuc2V0RGF0YSQoW10pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5pc1BlbmRpbmcubmV4dCh0cnVlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuXG4gICAgICB9KVxuICAgIClcblxuICApXG5cbiAgcmVhZG9ubHkgZmV0Y2hTdHJlYW0gPSAob3B0aW9ucz86IFJlcXVlc3RPcHRpb25zKSA9PlxuICAgIHRoaXMuZWZmZWN0PGFueT4oKCkgPT5cbiAgICBvZihvcHRpb25zKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmlzUGVuZGluZy5uZXh0KHRydWUpKSxcbiAgICAgIHN3aXRjaE1hcCgob3B0aW9uczogYW55KSA9PiB7XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdE9wdGlvbnMgPSB0aGlzLnVwZGF0ZVJlcXVlc3RPcHRpb25zKG9wdGlvbnM/LmhlYWRlcnMpXG4gICAgICAgIHJlcXVlc3RPcHRpb25zLnN0cmVhbSA9IHRydWVcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwTWFuYWdlclNlcnZpY2UuZ2V0UmVxdWVzdChyZXF1ZXN0T3B0aW9ucywgb3B0aW9ucz8ucGF0aClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFwKChyZXM6IGFueSkgPT4ge1xuXG4gICAgICAgICAgICBpZihyZXMubGVuZ3RoID4gMCkgdGhpcy5zZXREYXRhJChyZXMpXG4gICAgICAgICAgICB0aGlzLnN0cmVhbWVkUmVzcG9uc2UgPSByZXNcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzY2FuKChhY2MsIHJlczogYW55KSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gYWNjLmN1cnJlbnRcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZXNcbiAgICAgICAgICAgIHJldHVybiB7IHByZXZpb3VzLCBjdXJyZW50IH1cblxuICAgICAgICAgIH0sIHsgcHJldmlvdXM6IG51bGwsIGN1cnJlbnQ6IG51bGwgfSksXG4gICAgICAgICAgdGFwKCh7IHByZXZpb3VzLCBjdXJyZW50IH0pID0+IHtcblxuICAgICAgICAgICAgaWYocHJldmlvdXMgJiYgSlNPTi5zdHJpbmdpZnkocHJldmlvdXMpID09PSBKU09OLnN0cmluZ2lmeShjdXJyZW50KSkge1xuICAgICAgICAgICAgICB0aGlzLmh0dHBNYW5hZ2VyU2VydmljZS5pc1BlbmRpbmcubmV4dChmYWxzZSlcbiAgICAgICAgICAgICAgdGhpcy5zZXREYXRhJChbXSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuaHR0cE1hbmFnZXJTZXJ2aWNlLmlzUGVuZGluZy5uZXh0KHRydWUpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICB9KVxuICAgICAgICApXG5cbiAgICAgIH0pLFxuICAgIClcbiAgKVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIE1JU0NcblxuICBwcml2YXRlIGlzRW1wdHkob2JqOiBhbnkpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDBcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmVxdWVzdE9wdGlvbnMoaGVhZGVycz86IGFueSk6IEFwaVJlcXVlc3Qge1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IEFwaVJlcXVlc3QuYWRhcHQoeyAuLi50aGlzLmFwaU9wdGlvbnMgfSlcblxuICAgIG9wdGlvbnMuaGVhZGVycyA9IChoZWFkZXJzKVxuICAgICAgICAgID8geyAuLi5vcHRpb25zLmhlYWRlcnMsIC4uLmhlYWRlcnMgfVxuICAgICAgICAgIDogeyAuLi5vcHRpb25zLmhlYWRlcnMgfVxuXG4gICAgcmV0dXJuIG9wdGlvbnNcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from "./http-manager-state.store";
2
+ export * from "./models/index";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2h0dHAtbWFuYWdlci1zdGF0ZS5zdG9yZVwiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvaW5kZXhcIjtcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { RetryOptions } from "../../request-manager-services";
2
+ export class ApiRequest {
3
+ constructor(server = '', path, headers, adapter, mapper, polling, retry, stream, displayError, saveAs) {
4
+ this.server = server;
5
+ this.path = path;
6
+ this.headers = headers;
7
+ this.adapter = adapter;
8
+ this.mapper = mapper;
9
+ this.polling = polling;
10
+ this.retry = retry;
11
+ this.stream = stream;
12
+ this.displayError = displayError;
13
+ this.saveAs = saveAs;
14
+ }
15
+ static adapt(item) {
16
+ const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
17
+ return new ApiRequest(server, (item?.path) ? item.path : [], (item?.headers) ? item.headers : {}, item?.adapter, item?.mapper, item?.polling ? Math.floor(item.polling) : 0, item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt(), (item?.stream) ? item.stream : false, (item?.displayError) ? item.displayError : false, item?.saveAs);
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlcXVlc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL21vZGVscy9hcGktcmVxdWVzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFlN0QsTUFBTSxPQUFPLFVBQVU7SUFFckIsWUFDUyxTQUFTLEVBQUUsRUFDWCxJQUFZLEVBQ1osT0FBYSxFQUNiLE9BQWEsRUFDYixNQUFZLEVBQ1osT0FBZ0IsRUFDaEIsS0FBb0IsRUFDcEIsTUFBZ0IsRUFDaEIsWUFBc0IsRUFDdEIsTUFBZTtRQVRmLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQU07UUFDYixXQUFNLEdBQU4sTUFBTSxDQUFNO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQVU7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztJQUNyQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFFeEYsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsTUFBTSxFQUNOLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ25DLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUM1QyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUNuRSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUNwQyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUNoRCxJQUFJLEVBQUUsTUFBTSxDQUNiLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXRyeU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vcmVxdWVzdC1tYW5hZ2VyLXNlcnZpY2VzXCJcblxuZXhwb3J0IGludGVyZmFjZSBBcGlSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgc2VydmVyOiBzdHJpbmdcbiAgcGF0aD86IGFueVtdXG4gIGhlYWRlcnM/OiBhbnlcbiAgYWRhcHRlcj86IGFueVxuICBtYXBwZXI/OiBhbnlcbiAgcG9sbGluZz86IG51bWJlciAvLyBzZWNvbmRzICh1bmRlZmluZWQgfCAwID0gbm9uZSlcbiAgcmV0cnk/OiBSZXRyeU9wdGlvbnNcbiAgc3RyZWFtPzogYm9vbGVhblxuICBkaXNwbGF5RXJyb3I/OiBib29sZWFuXG4gIHNhdmVBcz86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgQXBpUmVxdWVzdCBpbXBsZW1lbnRzIEFwaVJlcXVlc3RJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2ZXIgPSAnJyxcbiAgICBwdWJsaWMgcGF0aD86IGFueVtdLFxuICAgIHB1YmxpYyBoZWFkZXJzPzogYW55LFxuICAgIHB1YmxpYyBhZGFwdGVyPzogYW55LFxuICAgIHB1YmxpYyBtYXBwZXI/OiBhbnksXG4gICAgcHVibGljIHBvbGxpbmc/OiBudW1iZXIsXG4gICAgcHVibGljIHJldHJ5PzogUmV0cnlPcHRpb25zLFxuICAgIHB1YmxpYyBzdHJlYW0/OiBib29sZWFuLFxuICAgIHB1YmxpYyBkaXNwbGF5RXJyb3I/OiBib29sZWFuLFxuICAgIHB1YmxpYyBzYXZlQXM/OiBzdHJpbmcsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IEFwaVJlcXVlc3Qge1xuXG4gICAgY29uc3Qgc2VydmVyID0gQXJyYXkuaXNBcnJheShpdGVtPy5zZXJ2ZXIpID8gaXRlbS5zZXJ2ZXIuam9pbignLycpIDogaXRlbT8uc2VydmVyIHx8ICcnO1xuXG4gICAgcmV0dXJuIG5ldyBBcGlSZXF1ZXN0KFxuICAgICAgc2VydmVyLFxuICAgICAgKGl0ZW0/LnBhdGgpID8gaXRlbS5wYXRoIDogW10sXG4gICAgICAoaXRlbT8uaGVhZGVycykgPyBpdGVtLmhlYWRlcnMgOiB7fSxcbiAgICAgIGl0ZW0/LmFkYXB0ZXIsXG4gICAgICBpdGVtPy5tYXBwZXIsXG4gICAgICBpdGVtPy5wb2xsaW5nID8gTWF0aC5mbG9vcihpdGVtLnBvbGxpbmcpIDogMCxcbiAgICAgIGl0ZW0/LnJldHJ5ID8gUmV0cnlPcHRpb25zLmFkYXB0KGl0ZW0ucmV0cnkpIDogUmV0cnlPcHRpb25zLmFkYXB0KCksXG4gICAgICAoaXRlbT8uc3RyZWFtKSA/IGl0ZW0uc3RyZWFtIDogZmFsc2UsXG4gICAgICAoaXRlbT8uZGlzcGxheUVycm9yKSA/IGl0ZW0uZGlzcGxheUVycm9yIDogZmFsc2UsXG4gICAgICBpdGVtPy5zYXZlQXMsXG4gICAgKVxuXG4gIH1cblxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from "./api-request.model";
2
+ export * from "./request-options.model";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtbWFuYWdlci1zdGF0ZS1zZXJ2aWNlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hcGktcmVxdWVzdC5tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVxdWVzdC1vcHRpb25zLm1vZGVsXCI7XG5cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export class RequestOptions {
2
+ constructor(path = [], headers = {}) {
3
+ this.path = path;
4
+ this.headers = headers;
5
+ }
6
+ static adapt(item) {
7
+ return new RequestOptions(item?.path, item?.headers);
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1vcHRpb25zLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9yZXF1ZXN0LW1hbmFnZXItc3RhdGUtc2VydmljZS9tb2RlbHMvcmVxdWVzdC1vcHRpb25zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQ1MsT0FBYyxFQUFFLEVBQ2hCLFVBQVUsRUFBRTtRQURaLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBSztJQUNsQixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxjQUFjLENBQ3ZCLElBQUksRUFBRSxJQUFJLEVBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FDZCxDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSB7XG4gICAgcGF0aDogYW55W10sXG4gICAgaGVhZGVyczogYW55LFxufVxuXG5leHBvcnQgY2xhc3MgUmVxdWVzdE9wdGlvbnMgaW1wbGVtZW50cyBSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhdGg6IGFueVtdID0gW10sXG4gICAgcHVibGljIGhlYWRlcnMgPSB7fSxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogUmVxdWVzdE9wdGlvbnMge1xuXG4gICAgcmV0dXJuIG5ldyBSZXF1ZXN0T3B0aW9ucyhcbiAgICAgIGl0ZW0/LnBhdGgsXG4gICAgICBpdGVtPy5oZWFkZXJzLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { APP_ID, Inject, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ // Must provide a value for APP_ID in AppModule->Providers
4
+ // providers: [
5
+ // {
6
+ // provide: APP_ID,
7
+ // useValue: "056991ac-3537-43ab-b5b9-83edf6554eff",
8
+ // },
9
+ export class AppService {
10
+ constructor(id) {
11
+ this.id = id;
12
+ this.appID = this.id;
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppService, deps: [{ token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppService, providedIn: 'root' }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AppService, decorators: [{
18
+ type: Injectable,
19
+ args: [{
20
+ providedIn: 'root'
21
+ }]
22
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
23
+ type: Inject,
24
+ args: [APP_ID]
25
+ }] }]; } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2FwcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0QsMERBQTBEO0FBQzFELGVBQWU7QUFDZixNQUFNO0FBQ04sdUJBQXVCO0FBQ3ZCLHdEQUF3RDtBQUN4RCxPQUFPO0FBS1AsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFBb0MsRUFBVTtRQUFWLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO0lBQ3RCLENBQUM7K0dBTlUsVUFBVSxrQkFJRCxNQUFNO21IQUpmLFVBQVUsY0FGVCxNQUFNOzs0RkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS2MsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lELCBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gTXVzdCBwcm92aWRlIGEgdmFsdWUgZm9yIEFQUF9JRCBpbiBBcHBNb2R1bGUtPlByb3ZpZGVyc1xuLy8gcHJvdmlkZXJzOiBbXG4vLyAgIHtcbi8vICAgICBwcm92aWRlOiBBUFBfSUQsXG4vLyAgICAgdXNlVmFsdWU6IFwiMDU2OTkxYWMtMzUzNy00M2FiLWI1YjktODNlZGY2NTU0ZWZmXCIsXG4vLyAgIH0sXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcFNlcnZpY2Uge1xuXG4gIGFwcElEOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9JRCkgcHJpdmF0ZSBpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5hcHBJRCA9IHRoaXMuaWRcbiAgfVxuXG59XG4iXX0=