http-request-manager 18.4.4 → 18.4.7

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 (204) hide show
  1. package/fesm2022/http-request-manager.mjs +368 -127
  2. package/fesm2022/http-request-manager.mjs.map +1 -1
  3. package/http-request-manager-18.4.7.tgz +0 -0
  4. package/package.json +3 -5
  5. package/types/http-request-manager.d.ts +1731 -0
  6. package/esm2022/http-request-manager.mjs +0 -5
  7. package/esm2022/lib/http-request-manager.module.mjs +0 -162
  8. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -152
  9. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -61
  10. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  11. package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  15. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  16. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  17. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  18. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  19. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  20. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -325
  21. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -277
  22. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -64
  23. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.mjs +0 -13
  24. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.mjs +0 -13
  25. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.mjs +0 -136
  26. package/esm2022/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.mjs +0 -97
  27. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
  28. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
  29. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  30. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
  31. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.mjs +0 -12
  32. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.mjs +0 -36
  33. package/esm2022/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.mjs +0 -34
  34. package/esm2022/lib/index.mjs +0 -4
  35. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  36. package/esm2022/lib/interceptors/index.mjs +0 -5
  37. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  38. package/esm2022/lib/interceptors/models/index.mjs +0 -2
  39. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  40. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  41. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  42. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  43. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  44. package/esm2022/lib/models/config-options.model.mjs +0 -12
  45. package/esm2022/lib/models/config-token.model.mjs +0 -8
  46. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  47. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  48. package/esm2022/lib/models/index.mjs +0 -8
  49. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  50. package/esm2022/lib/services/database-manager-service/database.manager.service.mjs +0 -171
  51. package/esm2022/lib/services/database-manager-service/db.storage.service.mjs +0 -183
  52. package/esm2022/lib/services/database-manager-service/index.mjs +0 -4
  53. package/esm2022/lib/services/database-manager-service/models/index.mjs +0 -2
  54. package/esm2022/lib/services/database-manager-service/models/table-schema.mjs +0 -19
  55. package/esm2022/lib/services/index.mjs +0 -9
  56. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
  57. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -308
  58. package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
  59. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  60. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  61. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
  62. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  63. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -13
  64. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  65. package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
  66. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  67. package/esm2022/lib/services/request-manager-services/index.mjs +0 -7
  68. package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
  69. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -192
  70. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  71. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  72. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  73. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
  74. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  75. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -591
  76. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  77. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -22
  78. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -5
  79. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  80. package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -15
  81. package/esm2022/lib/services/request-manager-state-service/models/ws-user.model.mjs +0 -10
  82. package/esm2022/lib/services/store-state-manager-service/index.mjs +0 -3
  83. package/esm2022/lib/services/store-state-manager-service/models/index.mjs +0 -2
  84. package/esm2022/lib/services/store-state-manager-service/models/state-storage-options.model.mjs +0 -12
  85. package/esm2022/lib/services/store-state-manager-service/store-state-manager.service.mjs +0 -71
  86. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  87. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  88. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  89. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  90. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  91. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  92. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  93. package/esm2022/lib/services/utils/index.mjs +0 -6
  94. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
  95. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  96. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  97. package/esm2022/lib/services/ws-manager-service/index.mjs +0 -3
  98. package/esm2022/lib/services/ws-manager-service/models/channel-info.model.mjs +0 -10
  99. package/esm2022/lib/services/ws-manager-service/models/channel-notification.model.mjs +0 -14
  100. package/esm2022/lib/services/ws-manager-service/models/communication-type.enum.mjs +0 -7
  101. package/esm2022/lib/services/ws-manager-service/models/index.mjs +0 -5
  102. package/esm2022/lib/services/ws-manager-service/models/user-message.model.mjs +0 -12
  103. package/esm2022/lib/services/ws-manager-service/services/websocket.service.mjs +0 -178
  104. package/esm2022/public-api.mjs +0 -11
  105. package/http-request-manager-18.4.4.tgz +0 -0
  106. package/index.d.ts +0 -5
  107. package/lib/http-request-manager.module.d.ts +0 -39
  108. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -46
  109. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -37
  110. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  111. package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
  112. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  113. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  114. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  115. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  116. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  117. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  118. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  119. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  120. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -110
  121. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -124
  122. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  123. package/lib/http-request-services-demo/request-manager-ws-demo/models/oidc-client.model.d.ts +0 -16
  124. package/lib/http-request-services-demo/request-manager-ws-demo/models/user-data.model.d.ts +0 -14
  125. package/lib/http-request-services-demo/request-manager-ws-demo/request-manager-ws-demo.component.d.ts +0 -42
  126. package/lib/http-request-services-demo/request-manager-ws-demo/services/state-request-demo.service.d.ts +0 -15
  127. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  128. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
  129. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  130. package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
  131. package/lib/http-request-services-demo/store-state-manager-demo/models/settings.model.d.ts +0 -14
  132. package/lib/http-request-services-demo/store-state-manager-demo/services/settings-state.service.d.ts +0 -11
  133. package/lib/http-request-services-demo/store-state-manager-demo/store-state-manager-demo.component.d.ts +0 -14
  134. package/lib/index.d.ts +0 -3
  135. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  136. package/lib/interceptors/index.d.ts +0 -4
  137. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  138. package/lib/interceptors/models/index.d.ts +0 -1
  139. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  140. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  141. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  142. package/lib/models/config-http-options.model.d.ts +0 -21
  143. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  144. package/lib/models/config-options.model.d.ts +0 -12
  145. package/lib/models/config-token.model.d.ts +0 -8
  146. package/lib/models/data-type.enum.d.ts +0 -5
  147. package/lib/models/database-storage.model.d.ts +0 -10
  148. package/lib/models/index.d.ts +0 -7
  149. package/lib/models/retry-options.model.d.ts +0 -10
  150. package/lib/services/database-manager-service/database.manager.service.d.ts +0 -33
  151. package/lib/services/database-manager-service/db.storage.service.d.ts +0 -26
  152. package/lib/services/database-manager-service/index.d.ts +0 -3
  153. package/lib/services/database-manager-service/models/index.d.ts +0 -1
  154. package/lib/services/database-manager-service/models/table-schema.d.ts +0 -11
  155. package/lib/services/index.d.ts +0 -7
  156. package/lib/services/local-storage-manager-service/index.d.ts +0 -3
  157. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  158. package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
  159. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  160. package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
  161. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  162. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  163. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -15
  164. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  165. package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
  166. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  167. package/lib/services/request-manager-services/index.d.ts +0 -6
  168. package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
  169. package/lib/services/request-manager-services/request.service.d.ts +0 -28
  170. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  171. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  172. package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
  173. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
  174. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  175. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -90
  176. package/lib/services/request-manager-state-service/index.d.ts +0 -2
  177. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -32
  178. package/lib/services/request-manager-state-service/models/index.d.ts +0 -4
  179. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  180. package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -22
  181. package/lib/services/request-manager-state-service/models/ws-user.model.d.ts +0 -10
  182. package/lib/services/store-state-manager-service/index.d.ts +0 -2
  183. package/lib/services/store-state-manager-service/models/index.d.ts +0 -1
  184. package/lib/services/store-state-manager-service/models/state-storage-options.model.d.ts +0 -13
  185. package/lib/services/store-state-manager-service/store-state-manager.service.d.ts +0 -23
  186. package/lib/services/utils/app.service.d.ts +0 -8
  187. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  188. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  189. package/lib/services/utils/encryption/index.d.ts +0 -3
  190. package/lib/services/utils/encryption/random.d.ts +0 -7
  191. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  192. package/lib/services/utils/headers.service.d.ts +0 -10
  193. package/lib/services/utils/index.d.ts +0 -5
  194. package/lib/services/utils/object-merger.service.d.ts +0 -14
  195. package/lib/services/utils/path-query.service.d.ts +0 -11
  196. package/lib/services/utils/utils.service.d.ts +0 -24
  197. package/lib/services/ws-manager-service/index.d.ts +0 -2
  198. package/lib/services/ws-manager-service/models/channel-info.model.d.ts +0 -10
  199. package/lib/services/ws-manager-service/models/channel-notification.model.d.ts +0 -17
  200. package/lib/services/ws-manager-service/models/communication-type.enum.d.ts +0 -5
  201. package/lib/services/ws-manager-service/models/index.d.ts +0 -4
  202. package/lib/services/ws-manager-service/models/user-message.model.d.ts +0 -14
  203. package/lib/services/ws-manager-service/services/websocket.service.d.ts +0 -24
  204. package/public-api.d.ts +0 -7
@@ -1,14 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class WithCredentialsInterceptor {
4
- intercept(req, next) {
5
- req = req.clone({ withCredentials: true });
6
- return next.handle(req);
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WithCredentialsInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WithCredentialsInterceptor }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WithCredentialsInterceptor, decorators: [{
12
- type: Injectable
13
- }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGVudGlhbHMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9jcmVkZW50aWFscy5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sMEJBQTBCO0lBRXJDLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRzlDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFFMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7K0dBUlUsMEJBQTBCO21IQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciwgSHR0cEhhbmRsZXIsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXaXRoQ3JlZGVudGlhbHNJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOlxuICAgIE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcblxuICAgICAgcmVxID0gcmVxLmNsb25lKHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pXG5cbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- export * from "./models/index";
2
- export * from "./credentials.interceptor";
3
- export * from "./request-header.interceptor";
4
- export * from "./request-error.interceptor";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgKiBmcm9tIFwiLi9tb2RlbHMvaW5kZXhcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vY3JlZGVudGlhbHMuaW50ZXJjZXB0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlcXVlc3QtaGVhZGVyLmludGVyY2VwdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXF1ZXN0LWVycm9yLmludGVyY2VwdG9yXCI7XG4iXX0=
@@ -1,10 +0,0 @@
1
- export class ErrorDisplaySettings {
2
- constructor(displayTime = 3 * 1000, position = 'top') {
3
- this.displayTime = displayTime;
4
- this.position = position;
5
- }
6
- static adapt(item) {
7
- return new ErrorDisplaySettings((item?.displayTime) ? item.displayTime * 1000 : 3 * 1000, item?.position);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3Itc2V0dGluZ3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9tb2RlbHMvZXJyb3Itc2V0dGluZ3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNTLGNBQWMsQ0FBQyxHQUFHLElBQUksRUFDdEIsV0FBVyxLQUFLO1FBRGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDdEIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksb0JBQW9CLENBQzdCLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksRUFDeEQsSUFBSSxFQUFFLFFBQVEsQ0FDZixDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFcnJvckRpc3BsYXlTZXR0aW5nc0ludGVyZmFjZSB7XG4gIGRpc3BsYXlUaW1lOiBudW1iZXJcbiAgcG9zaXRpb246IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgRXJyb3JEaXNwbGF5U2V0dGluZ3MgaW1wbGVtZW50cyBFcnJvckRpc3BsYXlTZXR0aW5nc0ludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpc3BsYXlUaW1lID0gMyAqIDEwMDAsXG4gICAgcHVibGljIHBvc2l0aW9uID0gJ3RvcCdcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogRXJyb3JEaXNwbGF5U2V0dGluZ3Mge1xuXG4gICAgcmV0dXJuIG5ldyBFcnJvckRpc3BsYXlTZXR0aW5ncyhcbiAgICAgIChpdGVtPy5kaXNwbGF5VGltZSkgPyBpdGVtLmRpc3BsYXlUaW1lICogMTAwMCA6IDMgKiAxMDAwLFxuICAgICAgaXRlbT8ucG9zaXRpb24sXG4gICAgKVxuXG4gIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from "./error-settings.model";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3Itc2V0dGluZ3MubW9kZWxcIjtcbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export const PROXY_CONFIG = new InjectionToken('PROXY_CONFIG');
4
- export class ProxyDebuggerInterceptor {
5
- constructor(proxyConfig) {
6
- this.proxyConfig = proxyConfig;
7
- }
8
- intercept(req, next) {
9
- if (!this.proxyConfig) {
10
- return next.handle(req);
11
- }
12
- const headers = req.headers.keys().reduce((acc, key) => {
13
- acc[key] = req.headers.get(key) || '';
14
- return acc;
15
- }, {});
16
- for (const proxyPath in this.proxyConfig) {
17
- if (this.proxyConfig.hasOwnProperty(proxyPath)) {
18
- const proxyDetails = this.proxyConfig[proxyPath];
19
- const regex = new RegExp('^' + proxyPath.replace('/', '').replace('*', '(.*)'));
20
- if (regex.test(req.url)) {
21
- const target = proxyDetails.target;
22
- const endpoint = req.url.replace(regex, '$1');
23
- const actualPath = target + '/' + endpoint;
24
- console.log('Request Proxied:', {
25
- requestUrl: req.url,
26
- requestPayload: req.body,
27
- headers: headers,
28
- proxyPath: proxyPath,
29
- actualPath: actualPath,
30
- });
31
- }
32
- }
33
- }
34
- return next.handle(req);
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProxyDebuggerInterceptor, deps: [{ token: PROXY_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
37
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProxyDebuggerInterceptor }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProxyDebuggerInterceptor, decorators: [{
40
- type: Injectable
41
- }], ctorParameters: () => [{ type: undefined, decorators: [{
42
- type: Optional
43
- }, {
44
- type: Inject,
45
- args: [PROXY_CONFIG]
46
- }] }] });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveHktZGVidWdnZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9wcm94eS1kZWJ1Z2dlci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUk3RSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQXNCLGNBQWMsQ0FBQyxDQUFDO0FBR3BGLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsWUFBc0QsV0FBZ0M7UUFBaEMsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO0lBQUcsQ0FBQztJQUUxRixTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDckQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUE0QixDQUFDLENBQUM7UUFFakMsS0FBSyxNQUFNLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUVoRixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7b0JBQ25DLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDOUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUM7b0JBRTNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUU7d0JBQzlCLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRzt3QkFDbkIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxJQUFJO3dCQUN4QixPQUFPLEVBQUUsT0FBTzt3QkFDaEIsU0FBUyxFQUFFLFNBQVM7d0JBQ3BCLFVBQVUsRUFBRSxVQUFVO3FCQUN2QixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7K0dBckNVLHdCQUF3QixrQkFFSCxZQUFZO21IQUZqQyx3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7OzBCQUdJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0LCBIdHRwSGFuZGxlciwgSHR0cEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgUFJPWFlfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFJlY29yZDxzdHJpbmcsIGFueT4+KCdQUk9YWV9DT05GSUcnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb3h5RGVidWdnZXJJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChQUk9YWV9DT05GSUcpIHByaXZhdGUgcHJveHlDb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pIHt9XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG5cbiAgICBpZiAoIXRoaXMucHJveHlDb25maWcpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cblxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXEuaGVhZGVycy5rZXlzKCkucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSByZXEuaGVhZGVycy5nZXQoa2V5KSB8fCAnJztcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XG5cbiAgICBmb3IgKGNvbnN0IHByb3h5UGF0aCBpbiB0aGlzLnByb3h5Q29uZmlnKSB7XG4gICAgICBpZiAodGhpcy5wcm94eUNvbmZpZy5oYXNPd25Qcm9wZXJ0eShwcm94eVBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHByb3h5RGV0YWlscyA9IHRoaXMucHJveHlDb25maWdbcHJveHlQYXRoXTtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCdeJyArIHByb3h5UGF0aC5yZXBsYWNlKCcvJywgJycpLnJlcGxhY2UoJyonLCAnKC4qKScpKTtcblxuICAgICAgICBpZiAocmVnZXgudGVzdChyZXEudXJsKSkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHByb3h5RGV0YWlscy50YXJnZXQ7XG4gICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSByZXEudXJsLnJlcGxhY2UocmVnZXgsICckMScpO1xuICAgICAgICAgIGNvbnN0IGFjdHVhbFBhdGggPSB0YXJnZXQgKyAnLycgKyBlbmRwb2ludDtcblxuICAgICAgICAgIGNvbnNvbGUubG9nKCdSZXF1ZXN0IFByb3hpZWQ6Jywge1xuICAgICAgICAgICAgcmVxdWVzdFVybDogcmVxLnVybCxcbiAgICAgICAgICAgIHJlcXVlc3RQYXlsb2FkOiByZXEuYm9keSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnMsXG4gICAgICAgICAgICBwcm94eVBhdGg6IHByb3h5UGF0aCxcbiAgICAgICAgICAgIGFjdHVhbFBhdGg6IGFjdHVhbFBhdGgsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgfVxufVxuIl19
@@ -1,49 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { catchError, throwError } from 'rxjs';
3
- import { ToastMessageDisplayService, ToastDisplay, ToastColors } from 'toast-message-display';
4
- import * as i0 from "@angular/core";
5
- export class RequestErrorInterceptor {
6
- constructor() {
7
- this.toastMessage = inject(ToastMessageDisplayService);
8
- }
9
- intercept(req, next) {
10
- return next.handle(req).pipe(catchError((error) => {
11
- const displayError = ToastDisplay.adapt({
12
- message: 'This is a toast message. This is an Error!!',
13
- action: 'OK',
14
- color: ToastColors.SUCCESS,
15
- icon: 'info',
16
- duration: 5 * 1000, //5 seconds
17
- });
18
- if (error.status >= 400 && error.status < 500) {
19
- displayError.color = ToastColors.WARN;
20
- displayError.message = error.error || `${error.status}: ${error.statusText}`;
21
- console.error('Client Error:', {
22
- status: error.status,
23
- message: error.message,
24
- error: error.error,
25
- text: error.statusText,
26
- });
27
- this.toastMessage.toastMessage(displayError);
28
- }
29
- else if (error.status >= 500) {
30
- displayError.color = ToastColors.ERROR;
31
- displayError.message = error.error || `${error.status}: ${error.statusText}`;
32
- console.error('Server Error:', {
33
- status: error.status,
34
- message: error.message,
35
- error: error.error,
36
- text: error.statusText,
37
- });
38
- this.toastMessage.toastMessage(displayError);
39
- }
40
- return throwError(() => error);
41
- }));
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestErrorInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestErrorInterceptor }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestErrorInterceptor, decorators: [{
47
- type: Injectable
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1lcnJvci5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvaW50ZXJjZXB0b3JzL3JlcXVlc3QtZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFbEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFekQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTs7QUFHN0YsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUdFLGlCQUFZLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7S0FxRGxEO0lBbkRDLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBRWhELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBRTFCLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRTtZQUV0QyxNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxPQUFPLEVBQUUsNkNBQTZDO2dCQUN0RCxNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU87Z0JBQzFCLElBQUksRUFBRSxNQUFNO2dCQUNaLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLFdBQVc7YUFDaEMsQ0FBQyxDQUFBO1lBRUYsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUU5QyxZQUFZLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUE7Z0JBQ3JDLFlBQVksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFBO2dCQUU1RSxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtvQkFDN0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUNwQixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87b0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztvQkFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVO2lCQUN2QixDQUFDLENBQUE7Z0JBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUE7WUFFOUMsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBRS9CLFlBQVksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQTtnQkFDdEMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBRTVFLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO29CQUM3QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07b0JBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztvQkFDdEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVU7aUJBQ3ZCLENBQUMsQ0FBQTtnQkFFRixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUU5QyxDQUFDO1lBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFaEMsQ0FBQyxDQUFDLENBRUgsQ0FBQTtJQUNILENBQUM7K0dBckRVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgVG9hc3RNZXNzYWdlRGlzcGxheVNlcnZpY2UsIFRvYXN0RGlzcGxheSwgVG9hc3RDb2xvcnMgfSBmcm9tICd0b2FzdC1tZXNzYWdlLWRpc3BsYXknXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0RXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG5cbiAgdG9hc3RNZXNzYWdlID0gaW5qZWN0KFRvYXN0TWVzc2FnZURpc3BsYXlTZXJ2aWNlKVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcblxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG5cbiAgICAgICAgY29uc3QgZGlzcGxheUVycm9yID0gVG9hc3REaXNwbGF5LmFkYXB0KHtcbiAgICAgICAgICBtZXNzYWdlOiAnVGhpcyBpcyBhIHRvYXN0IG1lc3NhZ2UuIFRoaXMgaXMgYW4gRXJyb3IhIScsXG4gICAgICAgICAgYWN0aW9uOiAnT0snLFxuICAgICAgICAgIGNvbG9yOiBUb2FzdENvbG9ycy5TVUNDRVNTLFxuICAgICAgICAgIGljb246ICdpbmZvJyxcbiAgICAgICAgICBkdXJhdGlvbjogNSAqIDEwMDAsIC8vNSBzZWNvbmRzXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA+PSA0MDAgJiYgZXJyb3Iuc3RhdHVzIDwgNTAwKSB7XG5cbiAgICAgICAgICBkaXNwbGF5RXJyb3IuY29sb3IgPSBUb2FzdENvbG9ycy5XQVJOXG4gICAgICAgICAgZGlzcGxheUVycm9yLm1lc3NhZ2UgPSBlcnJvci5lcnJvciB8fCBgJHtlcnJvci5zdGF0dXN9OiAke2Vycm9yLnN0YXR1c1RleHR9YFxuXG4gICAgICAgICAgY29uc29sZS5lcnJvcignQ2xpZW50IEVycm9yOicsIHtcbiAgICAgICAgICAgIHN0YXR1czogZXJyb3Iuc3RhdHVzLFxuICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvci5lcnJvcixcbiAgICAgICAgICAgIHRleHQ6IGVycm9yLnN0YXR1c1RleHQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHRoaXMudG9hc3RNZXNzYWdlLnRvYXN0TWVzc2FnZShkaXNwbGF5RXJyb3IpXG5cbiAgICAgICAgfSBlbHNlIGlmIChlcnJvci5zdGF0dXMgPj0gNTAwKSB7XG5cbiAgICAgICAgICBkaXNwbGF5RXJyb3IuY29sb3IgPSBUb2FzdENvbG9ycy5FUlJPUlxuICAgICAgICAgIGRpc3BsYXlFcnJvci5tZXNzYWdlID0gZXJyb3IuZXJyb3IgfHwgYCR7ZXJyb3Iuc3RhdHVzfTogJHtlcnJvci5zdGF0dXNUZXh0fWBcblxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1NlcnZlciBFcnJvcjonLCB7XG4gICAgICAgICAgICBzdGF0dXM6IGVycm9yLnN0YXR1cyxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgICBlcnJvcjogZXJyb3IuZXJyb3IsXG4gICAgICAgICAgICB0ZXh0OiBlcnJvci5zdGF0dXNUZXh0LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICB0aGlzLnRvYXN0TWVzc2FnZS50b2FzdE1lc3NhZ2UoZGlzcGxheUVycm9yKVxuXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcilcblxuICAgICAgfSlcblxuICAgIClcbiAgfVxuXG59XG5cblxuIl19
@@ -1,41 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subscription } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngx-translate/core";
5
- export class RequestHeadersInterceptor {
6
- get currentDate() {
7
- const date = new Date();
8
- const year = date.getFullYear();
9
- const month = String(date.getMonth() + 1).padStart(2, '0');
10
- const day = String(date.getDate()).padStart(2, '0');
11
- return `${year}-${month}-${day}`;
12
- }
13
- constructor(translate) {
14
- this.translate = translate;
15
- this.subscriptions = new Subscription();
16
- this.language = 'en-CA';
17
- this.subscriptions.add(this.translate.onLangChange
18
- .subscribe((params) => {
19
- this.language = `${params.lang}-CA`;
20
- }));
21
- }
22
- intercept(request, next) {
23
- request = request.clone({
24
- setHeaders: {
25
- 'Content-Type': 'application/json',
26
- 'Accept-Language': this.language || 'en-CA',
27
- 'Current-Date': this.currentDate
28
- }
29
- });
30
- return next.handle(request);
31
- }
32
- ngOnDestroy() {
33
- this.subscriptions.unsubscribe();
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestHeadersInterceptor, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestHeadersInterceptor }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RequestHeadersInterceptor, decorators: [{
39
- type: Injectable
40
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1oZWFkZXIuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL2ludGVyY2VwdG9ycy9yZXF1ZXN0LWhlYWRlci5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUloRCxNQUFNLE9BQU8seUJBQXlCO0lBS3BDLElBQUksV0FBVztRQUViLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUE7UUFFdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQy9CLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUMxRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUVuRCxPQUFPLEdBQUcsSUFBSSxJQUFJLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQTtJQUVsQyxDQUFDO0lBRUQsWUFDVSxTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWhCckMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFBO1FBQ2xDLGFBQVEsR0FBRyxPQUFPLENBQUE7UUFpQmhCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVk7YUFDMUIsU0FBUyxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUE7UUFDdkMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsT0FBeUIsRUFBRSxJQUFpQjtRQUVwRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN0QixVQUFVLEVBQUU7Z0JBQ1YsY0FBYyxFQUFFLGtCQUFrQjtnQkFDbEMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPO2dCQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDakM7U0FDRixDQUFDLENBQUE7UUFFRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQ2xDLENBQUM7K0dBNUNVLHlCQUF5QjttSEFBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXF1ZXN0SGVhZGVyc0ludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpXG4gIGxhbmd1YWdlID0gJ2VuLUNBJ1xuXG4gIGdldCBjdXJyZW50RGF0ZSgpIHtcblxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpXG5cbiAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgY29uc3QgbW9udGggPSBTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKVxuICAgIGNvbnN0IGRheSA9IFN0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKVxuXG4gICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWBcblxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZVxuICAgICAgLnN1YnNjcmliZSgocGFyYW1zOiBMYW5nQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlID0gYCR7cGFyYW1zLmxhbmd9LUNBYFxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG5cbiAgICByZXF1ZXN0ID0gcmVxdWVzdC5jbG9uZSh7XG4gICAgICBzZXRIZWFkZXJzOiB7XG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiB0aGlzLmxhbmd1YWdlIHx8ICdlbi1DQScsXG4gICAgICAgICdDdXJyZW50LURhdGUnOiB0aGlzLmN1cnJlbnREYXRlXG4gICAgICB9XG4gICAgfSlcblxuICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KVxuXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKVxuICB9XG59XG5cbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { RetryOptions } from "./retry-options.model";
2
- export class ConfigHTTPOptions {
3
- constructor(server = '', path, headers, polling, retry, stream, displayError) {
4
- this.server = server;
5
- this.path = path;
6
- this.headers = headers;
7
- this.polling = polling;
8
- this.retry = retry;
9
- this.stream = stream;
10
- this.displayError = displayError;
11
- }
12
- static adapt(item) {
13
- const server = Array.isArray(item?.server) ? item.server.join('/') : item?.server || '';
14
- const retryOptions = item?.retry ? RetryOptions.adapt(item.retry) : RetryOptions.adapt();
15
- return new ConfigHTTPOptions(server, (item?.path) ? item.path : [], (item?.headers) ? item.headers : {}, item?.polling ? Math.floor(item.polling) : 0, retryOptions, (item?.stream) ? item.stream : false, (item?.displayError) ? item.displayError : false);
16
- }
17
- }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWh0dHAtb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvbW9kZWxzL2NvbmZpZy1odHRwLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBWXBELE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsWUFDUyxTQUFTLEVBQUUsRUFDWCxJQUFZLEVBQ1osT0FBYSxFQUNiLE9BQWdCLEVBQ2hCLEtBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLFlBQXNCO1FBTnRCLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFVO0lBQzVCLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN4RixNQUFNLFlBQVksR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXpGLE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsTUFBTSxFQUNOLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQzdCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ25DLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzVDLFlBQVksRUFDWixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUNwQyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUNqRCxDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmV0cnlPcHRpb25zIH0gZnJvbSBcIi4vcmV0cnktb3B0aW9ucy5tb2RlbFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnSFRUUE9wdGlvbnNJbnRlcmZhY2Uge1xuICBzZXJ2ZXI6IHN0cmluZ1xuICBwYXRoPzogYW55W11cbiAgaGVhZGVycz86IGFueVxuICBwb2xsaW5nPzogbnVtYmVyIC8vIHNlY29uZHMgKHVuZGVmaW5lZCB8IDAgPSBub25lKVxuICByZXRyeT86IFJldHJ5T3B0aW9uc1xuICBzdHJlYW0/OiBib29sZWFuXG4gIGRpc3BsYXlFcnJvcj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNsYXNzIENvbmZpZ0hUVFBPcHRpb25zIGltcGxlbWVudHMgQ29uZmlnSFRUUE9wdGlvbnNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2ZXIgPSAnJyxcbiAgICBwdWJsaWMgcGF0aD86IGFueVtdLFxuICAgIHB1YmxpYyBoZWFkZXJzPzogYW55LFxuICAgIHB1YmxpYyBwb2xsaW5nPzogbnVtYmVyLFxuICAgIHB1YmxpYyByZXRyeT86IFJldHJ5T3B0aW9ucyxcbiAgICBwdWJsaWMgc3RyZWFtPzogYm9vbGVhbixcbiAgICBwdWJsaWMgZGlzcGxheUVycm9yPzogYm9vbGVhbixcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogQ29uZmlnSFRUUE9wdGlvbnMge1xuXG4gICAgY29uc3Qgc2VydmVyID0gQXJyYXkuaXNBcnJheShpdGVtPy5zZXJ2ZXIpID8gaXRlbS5zZXJ2ZXIuam9pbignLycpIDogaXRlbT8uc2VydmVyIHx8ICcnO1xuICAgIGNvbnN0IHJldHJ5T3B0aW9ucyA9IGl0ZW0/LnJldHJ5ID8gUmV0cnlPcHRpb25zLmFkYXB0KGl0ZW0ucmV0cnkpIDogUmV0cnlPcHRpb25zLmFkYXB0KCk7XG5cbiAgICByZXR1cm4gbmV3IENvbmZpZ0hUVFBPcHRpb25zKFxuICAgICAgc2VydmVyLFxuICAgICAgKGl0ZW0/LnBhdGgpID8gaXRlbS5wYXRoIDogW10sXG4gICAgICAoaXRlbT8uaGVhZGVycykgPyBpdGVtLmhlYWRlcnMgOiB7fSxcbiAgICAgIGl0ZW0/LnBvbGxpbmcgPyBNYXRoLmZsb29yKGl0ZW0ucG9sbGluZykgOiAwLFxuICAgICAgcmV0cnlPcHRpb25zLFxuICAgICAgKGl0ZW0/LnN0cmVhbSkgPyBpdGVtLnN0cmVhbSA6IGZhbHNlLFxuICAgICAgKGl0ZW0/LmRpc3BsYXlFcnJvcikgPyBpdGVtLmRpc3BsYXlFcnJvciA6IGZhbHNlLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { SettingOptions } from "../services";
2
- export class LocalStorageOptions {
3
- constructor(storageName, storageSettingsName, options) {
4
- this.storageName = storageName;
5
- this.storageSettingsName = storageSettingsName;
6
- this.options = options;
7
- }
8
- static adapt(item) {
9
- return new LocalStorageOptions((item?.storageName) ? item.storageName : 'storage', (item?.storageSettingsName) ? item.storageSettingsName : 'global-storage', (item?.options) ? SettingOptions.adapt(item.options) : SettingOptions.adapt());
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWxvY2FsLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvbW9kZWxzL2NvbmZpZy1sb2NhbC1zdG9yYWdlLW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQVE1QyxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ1MsV0FBb0IsRUFDcEIsbUJBQTRCLEVBQzVCLE9BQXdCO1FBRnhCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBUztRQUM1QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUM5QixDQUFDO0lBRUosTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFVO1FBRXJCLE9BQU8sSUFBSSxtQkFBbUIsQ0FDNUIsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDbEQsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFDekUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQzlFLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXR0aW5nT3B0aW9ucyB9IGZyb20gXCIuLi9zZXJ2aWNlc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTdG9yYWdlT3B0aW9uc0ludGVyZmFjZSB7XG4gIHN0b3JhZ2VOYW1lPzogc3RyaW5nXG4gIHN0b3JhZ2VTZXR0aW5nc05hbWU/OiBzdHJpbmdcbiAgb3B0aW9ucz86IFNldHRpbmdPcHRpb25zLFxufVxuXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlT3B0aW9ucyBpbXBsZW1lbnRzIExvY2FsU3RvcmFnZU9wdGlvbnNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdG9yYWdlTmFtZT86IHN0cmluZyxcbiAgICBwdWJsaWMgc3RvcmFnZVNldHRpbmdzTmFtZT86IHN0cmluZyxcbiAgICBwdWJsaWMgb3B0aW9ucz86IFNldHRpbmdPcHRpb25zLFxuICApIHt9XG5cbiAgc3RhdGljIGFkYXB0KGl0ZW0/OiBhbnkpOiBMb2NhbFN0b3JhZ2VPcHRpb25zIHtcblxuICAgIHJldHVybiBuZXcgTG9jYWxTdG9yYWdlT3B0aW9ucyhcbiAgICAgIChpdGVtPy5zdG9yYWdlTmFtZSkgPyBpdGVtLnN0b3JhZ2VOYW1lIDogJ3N0b3JhZ2UnLFxuICAgICAgKGl0ZW0/LnN0b3JhZ2VTZXR0aW5nc05hbWUpID8gaXRlbS5zdG9yYWdlU2V0dGluZ3NOYW1lIDogJ2dsb2JhbC1zdG9yYWdlJyxcbiAgICAgIChpdGVtPy5vcHRpb25zKSA/IFNldHRpbmdPcHRpb25zLmFkYXB0KGl0ZW0ub3B0aW9ucykgOiBTZXR0aW5nT3B0aW9ucy5hZGFwdCgpLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { ConfigHTTPOptions } from "./config-http-options.model";
2
- import { LocalStorageOptions } from "./config-local-storage-options.model";
3
- export class ConfigOptions {
4
- constructor(httpRequestOptions, LocalStorageOptions) {
5
- this.httpRequestOptions = httpRequestOptions;
6
- this.LocalStorageOptions = LocalStorageOptions;
7
- }
8
- static adapt(item) {
9
- return new ConfigOptions((item?.httpRequestOptions) ? ConfigHTTPOptions.adapt(item.httpRequestOptions) : undefined, (item?.LocalStorageOptions) ? LocalStorageOptions.adapt(item.LocalStorageOptions) : undefined);
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLW9wdGlvbnMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL21vZGVscy9jb25maWctb3B0aW9ucy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQVEzRSxNQUFNLE9BQU8sYUFBYTtJQUV4QixZQUNTLGtCQUFzQyxFQUN0QyxtQkFBeUM7UUFEekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXNCO0lBRS9DLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3pGLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUU5RixDQUFBO0lBRUgsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnSFRUUE9wdGlvbnMgfSBmcm9tIFwiLi9jb25maWctaHR0cC1vcHRpb25zLm1vZGVsXCI7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VPcHRpb25zIH0gZnJvbSBcIi4vY29uZmlnLWxvY2FsLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ09wdGlvbnNJbnRlcmZhY2Uge1xuICBodHRwUmVxdWVzdE9wdGlvbnM/OiBDb25maWdIVFRQT3B0aW9uc1xuICBMb2NhbFN0b3JhZ2VPcHRpb25zPzogTG9jYWxTdG9yYWdlT3B0aW9uc1xuICAvLyBEYXRhYmFzZU9wdGlvbnM6IGFueVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlnT3B0aW9ucyBpbXBsZW1lbnRzIENvbmZpZ09wdGlvbnNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBodHRwUmVxdWVzdE9wdGlvbnM/OiBDb25maWdIVFRQT3B0aW9ucyxcbiAgICBwdWJsaWMgTG9jYWxTdG9yYWdlT3B0aW9ucz86IExvY2FsU3RvcmFnZU9wdGlvbnMsXG4gICAgLy8gcHVibGljIERhdGFiYXNlT3B0aW9ucz86IGFueSxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogQ29uZmlnT3B0aW9ucyB7XG4gICAgcmV0dXJuIG5ldyBDb25maWdPcHRpb25zKFxuICAgICAgKGl0ZW0/Lmh0dHBSZXF1ZXN0T3B0aW9ucykgPyBDb25maWdIVFRQT3B0aW9ucy5hZGFwdChpdGVtLmh0dHBSZXF1ZXN0T3B0aW9ucykgOiB1bmRlZmluZWQsXG4gICAgICAoaXRlbT8uTG9jYWxTdG9yYWdlT3B0aW9ucykgPyBMb2NhbFN0b3JhZ2VPcHRpb25zLmFkYXB0KGl0ZW0uTG9jYWxTdG9yYWdlT3B0aW9ucykgOiB1bmRlZmluZWQsXG4gICAgICAvLyBpdGVtPy5EYXRhYmFzZU9wdGlvbnMsXG4gICAgKVxuXG4gIH1cblxufVxuIl19
@@ -1,8 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- /**
3
- * An injection token that provides the configuration settings for the application.
4
- * This token can be used to inject the `ConfigSettings` instance into components or services
5
- * that require access to the application configuration.
6
- */
7
- export const CONFIG_SETTINGS_TOKEN = new InjectionToken('http.config');
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXRva2VuLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9tb2RlbHMvY29uZmlnLXRva2VuLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0M7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFnQixhQUFhLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpZ09wdGlvbnMgfSBmcm9tIFwiLi9jb25maWctb3B0aW9ucy5tb2RlbFwiO1xuXG4vKipcbiAqIEFuIGluamVjdGlvbiB0b2tlbiB0aGF0IHByb3ZpZGVzIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgYXBwbGljYXRpb24uXG4gKiBUaGlzIHRva2VuIGNhbiBiZSB1c2VkIHRvIGluamVjdCB0aGUgYENvbmZpZ1NldHRpbmdzYCBpbnN0YW5jZSBpbnRvIGNvbXBvbmVudHMgb3Igc2VydmljZXNcbiAqIHRoYXQgcmVxdWlyZSBhY2Nlc3MgdG8gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBDT05GSUdfU0VUVElOR1NfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29uZmlnT3B0aW9ucz4oJ2h0dHAuY29uZmlnJyk7XG4iXX0=
@@ -1,7 +0,0 @@
1
- export var DataType;
2
- (function (DataType) {
3
- DataType[DataType["ANY"] = 0] = "ANY";
4
- DataType[DataType["ARRAY"] = 1] = "ARRAY";
5
- DataType[DataType["OBJECT"] = 2] = "OBJECT";
6
- })(DataType || (DataType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL21vZGVscy9kYXRhLXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxRQUlYO0FBSkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUFPLENBQUE7SUFDUCx5Q0FBSyxDQUFBO0lBQ0wsMkNBQU0sQ0FBQTtBQUNSLENBQUMsRUFKVyxRQUFRLEtBQVIsUUFBUSxRQUluQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERhdGFUeXBlIHtcbiAgQU5ZID0gMCxcbiAgQVJSQVksXG4gIE9CSkVDVFxufVxuIl19
@@ -1,10 +0,0 @@
1
- export class DatabaseStorage {
2
- constructor(table = '', expiresIn) {
3
- this.table = table;
4
- this.expiresIn = expiresIn;
5
- }
6
- static adapt(item) {
7
- return new DatabaseStorage(item?.table, item?.expiresIn);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2Utc3RvcmFnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvbW9kZWxzL2RhdGFiYXNlLXN0b3JhZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFDUyxRQUFRLEVBQUUsRUFDVixTQUFhO1FBRGIsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNWLGNBQVMsR0FBVCxTQUFTLENBQUk7SUFDbkIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixPQUFPLElBQUksZUFBZSxDQUN4QixJQUFJLEVBQUUsS0FBSyxFQUNYLElBQUksRUFBRSxTQUFTLENBQ2hCLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlU3RvcmFnZUludGVyZmFjZSB7XG4gIHRhYmxlOiBzdHJpbmdcbiAgZXhwaXJlc0luOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlU3RvcmFnZSBpbXBsZW1lbnRzIERhdGFiYXNlU3RvcmFnZUludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhYmxlID0gJycsXG4gICAgcHVibGljIGV4cGlyZXNJbjogJycsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IERhdGFiYXNlU3RvcmFnZSB7XG5cbiAgICByZXR1cm4gbmV3IERhdGFiYXNlU3RvcmFnZShcbiAgICAgIGl0ZW0/LnRhYmxlLFxuICAgICAgaXRlbT8uZXhwaXJlc0luLFxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,8 +0,0 @@
1
- export * from './database-storage.model';
2
- export * from './retry-options.model';
3
- export * from './data-type.enum';
4
- export * from './config-token.model';
5
- export * from './config-http-options.model';
6
- export * from './config-local-storage-options.model';
7
- export * from './config-options.model';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUE7QUFFckMsY0FBYyxrQkFBa0IsQ0FBQTtBQUVoQyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLHdCQUF3QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYXRhYmFzZS1zdG9yYWdlLm1vZGVsJ1xuZXhwb3J0ICogZnJvbSAnLi9yZXRyeS1vcHRpb25zLm1vZGVsJ1xuXG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdHlwZS5lbnVtJ1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy10b2tlbi5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLWh0dHAtb3B0aW9ucy5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLWxvY2FsLXN0b3JhZ2Utb3B0aW9ucy5tb2RlbCdcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLW9wdGlvbnMubW9kZWwnXG5cbiJdfQ==
@@ -1,10 +0,0 @@
1
- export class RetryOptions {
2
- constructor(times = 0, delay = 3) {
3
- this.times = times;
4
- this.delay = delay;
5
- }
6
- static adapt(item) {
7
- return new RetryOptions(item?.times, item?.delay);
8
- }
9
- }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cnktb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvbW9kZWxzL3JldHJ5LW9wdGlvbnMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFlBQVk7SUFFdkIsWUFDUyxRQUFRLENBQUMsRUFDVCxRQUFRLENBQUM7UUFEVCxVQUFLLEdBQUwsS0FBSyxDQUFJO1FBQ1QsVUFBSyxHQUFMLEtBQUssQ0FBSTtJQUNmLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFFckIsT0FBTyxJQUFJLFlBQVksQ0FDckIsSUFBSSxFQUFFLEtBQUssRUFDWCxJQUFJLEVBQUUsS0FBSyxDQUNaLENBQUE7SUFFSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFJldHJ5T3B0aW9uc0ludGVyZmFjZSB7XG4gIHRpbWVzPzogbnVtYmVyIC8vIHRvdGFsIHJlcXVlc3QgdG8gYmUgbWFkZSBpbmNsdWRpbmcgaW5pdGlhbCByZXF1ZXN0XG4gIGRlbGF5PzogbnVtYmVyIC8vIHNlY29uZHMgKDw9IDMgZGVmYXVsdCAzIHNlY29uZHMpXG59XG5cbmV4cG9ydCBjbGFzcyBSZXRyeU9wdGlvbnMgaW1wbGVtZW50cyBSZXRyeU9wdGlvbnNJbnRlcmZhY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0aW1lcyA9IDAsXG4gICAgcHVibGljIGRlbGF5ID0gMyxcbiAgKSB7fVxuXG4gIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogUmV0cnlPcHRpb25zIHtcblxuICAgIHJldHVybiBuZXcgUmV0cnlPcHRpb25zKFxuICAgICAgaXRlbT8udGltZXMsXG4gICAgICBpdGVtPy5kZWxheVxuICAgIClcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,171 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { DbService } from './db.storage.service';
3
- import { EMPTY, from } from 'rxjs';
4
- import { map, switchMap } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class DatabaseManagerService extends DbService {
7
- constructor() {
8
- super();
9
- }
10
- getDatabaseTables() {
11
- return from(this.DBOpened()).pipe(map(() => this.tables.map((item) => item.name)));
12
- }
13
- databaseExists() {
14
- return from(this.hasDatabase());
15
- }
16
- hasDatabaseTable(table) {
17
- const tableName = this.cleanTableName(table);
18
- return from(this.DBOpened()).pipe(map(() => {
19
- return this.tableExists(tableName);
20
- }));
21
- }
22
- getDatabaseTable(table) {
23
- const tableName = this.cleanTableName(table);
24
- return from(this.DBOpened()).pipe(map(() => {
25
- const found = this.getTable(tableName);
26
- if (!found) {
27
- console.warn('No Such Table:', tableName);
28
- return null;
29
- }
30
- return found;
31
- }));
32
- }
33
- getDatabaseTableSchema(table) {
34
- const tableName = this.cleanTableName(table);
35
- return this.getDatabaseTable(tableName).pipe(map((dbTable) => {
36
- if (!dbTable)
37
- return [];
38
- const cols = dbTable.schema.indexes.map((col) => col.name);
39
- const pri = dbTable.schema.primKey.name;
40
- return [pri, ...cols];
41
- }));
42
- }
43
- createDatabaseTable(tableDef) {
44
- return from(this.createTable(tableDef.table, tableDef.schema)).pipe(switchMap(() => this.DBOpened()));
45
- }
46
- updateDatabaseTableSchema(tableDef) {
47
- return from(this.createTable(tableDef.table, tableDef.schema)).pipe(switchMap(() => this.getDatabaseTable(tableDef.table)));
48
- }
49
- // CRUD
50
- findTableRecords(table, column, value) {
51
- const tableName = this.cleanTableName(table);
52
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
53
- if (!tableData) {
54
- console.warn(`findTableRecords: Table '${tableName}' not found`);
55
- return from([]);
56
- }
57
- return from(tableData.where(column).equals(value).toArray());
58
- }));
59
- }
60
- findTableRecord(table, column, value) {
61
- const tableName = this.cleanTableName(table);
62
- return this.findTableRecords(tableName, column, value).pipe(map((records) => records && records.length > 0 ? records[0] : null));
63
- }
64
- getTableRecords(table) {
65
- const tableName = this.cleanTableName(table);
66
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
67
- if (!tableData) {
68
- console.warn(`getTableRecords: Table '${tableName}' not found`);
69
- return from([]);
70
- }
71
- return from(tableData.toArray());
72
- }));
73
- }
74
- getTableRecord(table, id) {
75
- const tableName = this.cleanTableName(table);
76
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
77
- if (!tableData) {
78
- console.warn(`getTableRecord: Table '${tableName}' not found`);
79
- return from([null]);
80
- }
81
- return from(tableData.get(id)).pipe(map((record) => record || null));
82
- }));
83
- }
84
- createTableRecord(table, record) {
85
- const tableName = this.cleanTableName(table);
86
- return this.createTableRecords(tableName, [record])
87
- .pipe(map((item) => item ? item[0] : null));
88
- }
89
- createTableRecords(table, records) {
90
- const tableName = this.cleanTableName(table);
91
- return from(this.DBOpened()).pipe(switchMap(() => {
92
- if (!this.tables.some(t => t.name === tableName)) {
93
- console.error(`createTableRecords: Table '${tableName}' does not exist in DB version ${this.verno}. Available:`, this.tables.map(t => t.name));
94
- return EMPTY;
95
- }
96
- const tableInstance = this.table(tableName);
97
- // Extract schema fields directly from the table instance
98
- const schema = tableInstance.schema;
99
- const validFields = [
100
- schema.primKey.name,
101
- ...schema.indexes.map(idx => idx.name)
102
- ];
103
- const insertRecords = records.map((record) => {
104
- const objectFromSchema = {};
105
- validFields.forEach((field) => {
106
- if (field) {
107
- objectFromSchema[field] = record[field] ?? null;
108
- }
109
- });
110
- return objectFromSchema;
111
- });
112
- console.log(`createTableRecords: Bulk putting ${insertRecords.length} records into ${tableName}`);
113
- return from(tableInstance.bulkPut(insertRecords)).pipe(map(() => insertRecords));
114
- }));
115
- }
116
- updateTableRecord(table, record) {
117
- const tableName = this.cleanTableName(table);
118
- return this.updateTableRecords(tableName, [record])
119
- .pipe(map(item => item.length > 0 ? item[0] : null));
120
- }
121
- updateTableRecords(table, records) {
122
- const tableName = this.cleanTableName(table);
123
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
124
- return this.getDatabaseTableSchema(tableName).pipe(switchMap((schema) => {
125
- const insertRecords = records.map((record) => {
126
- const objectFromSchema = {};
127
- schema.forEach((field) => {
128
- const data = record[field] ?? null;
129
- objectFromSchema[field] = data;
130
- });
131
- return objectFromSchema;
132
- });
133
- return from(tableData.bulkPut(insertRecords)).pipe(map(() => insertRecords));
134
- }));
135
- }));
136
- }
137
- deleteTableRecord(table, id) {
138
- const tableName = this.cleanTableName(table);
139
- return this.deleteTableRecords(tableName, [id])
140
- .pipe(map(item => item.length > 0 ? item[0] : null));
141
- }
142
- deleteTableRecords(table, ids) {
143
- const tableName = this.cleanTableName(table);
144
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
145
- return this.getDatabaseTableSchema(tableName).pipe(switchMap((schema) => {
146
- console.log(`deleteTableRecords: Starting delete of ${ids.length} records from ${table}. IDs:`, ids);
147
- return from(tableData.bulkDelete(ids)).pipe(map(() => ids));
148
- }));
149
- }));
150
- }
151
- clearTable(table) {
152
- const tableName = this.cleanTableName(table);
153
- return this.getDatabaseTable(tableName).pipe(switchMap((tableData) => {
154
- if (!tableData) {
155
- console.warn(`clearTable: Table '${tableName}' not found`);
156
- return from([]);
157
- }
158
- console.log(`clearTable: Clearing all records from ${tableName}`);
159
- return from(tableData.clear());
160
- }));
161
- }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
163
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, providedIn: 'root' }); }
164
- }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DatabaseManagerService, decorators: [{
166
- type: Injectable,
167
- args: [{
168
- providedIn: 'root'
169
- }]
170
- }], ctorParameters: () => [] });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UubWFuYWdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy9kYXRhYmFzZS1tYW5hZ2VyLXNlcnZpY2UvZGF0YWJhc2UubWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2hELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxTQUFTO0lBRW5EO1FBQ0UsS0FBSyxFQUFFLENBQUE7SUFDVCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNyRCxDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYTtRQUM1QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0IsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNwQyxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9CLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZDLElBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFBO2dCQUN6QyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQWE7UUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzFDLEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ25CLElBQUcsQ0FBQyxPQUFPO2dCQUFFLE9BQU8sRUFBRSxDQUFBO1lBQ3RCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQy9ELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQTtZQUN2QyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUF3QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqRSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQ2pDLENBQUE7SUFDSCxDQUFDO0lBRUQseUJBQXlCLENBQUMsUUFBd0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakUsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkQsQ0FBQTtJQUNILENBQUM7SUFFRCxPQUFPO0lBQ1AsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFVO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMxQyxTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsU0FBUyxhQUFhLENBQUMsQ0FBQztnQkFDakUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFVO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhO1FBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMxQyxTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQywyQkFBMkIsU0FBUyxhQUFhLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWEsRUFBRSxFQUFVO1FBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUMxQyxTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsU0FBUyxhQUFhLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBYSxFQUFFLE1BQVc7UUFDMUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNsRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLE9BQWM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsOEJBQThCLFNBQVMsa0NBQWtDLElBQUksQ0FBQyxLQUFLLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMvSSxPQUFPLEtBQUssQ0FBQztZQUNsQixDQUFDO1lBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUU1Qyx5REFBeUQ7WUFDekQsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRztnQkFDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJO2dCQUNuQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzthQUN6QyxDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLGdCQUFnQixHQUEyQixFQUFFLENBQUM7Z0JBQ3BELFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtvQkFDbEMsSUFBSSxLQUFLLEVBQUUsQ0FBQzt3QkFDUixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBSSxNQUFjLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO29CQUM3RCxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU8sZ0JBQWdCLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxhQUFhLENBQUMsTUFBTSxpQkFBaUIsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUVsRyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQzNCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWEsRUFBRSxNQUFXO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUM5QyxDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQWEsRUFBRSxPQUFjO1FBRTlDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUUxQyxTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUUzQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBRWhELFNBQVMsQ0FBQyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtnQkFFN0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO29CQUVoRCxNQUFNLGdCQUFnQixHQUEyQixFQUFFLENBQUE7b0JBRW5ELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTt3QkFDL0IsTUFBTSxJQUFJLEdBQUksTUFBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQTt3QkFDM0MsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO29CQUNoQyxDQUFDLENBQUMsQ0FBQTtvQkFFRixPQUFPLGdCQUFnQixDQUFBO2dCQUV6QixDQUFDLENBQUMsQ0FBQTtnQkFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM5QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQzNCLENBQUM7WUFFSixDQUFDLENBQUMsQ0FFSCxDQUFBO1FBRUgsQ0FBQyxDQUFDLENBRUgsQ0FBQTtJQUVILENBQUM7SUFFRCxpQkFBaUIsQ0FBSSxLQUFhLEVBQUUsRUFBVTtRQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzlDLElBQUksQ0FDSCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDOUMsQ0FBQTtJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhLEVBQUUsR0FBYTtRQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FFMUMsU0FBUyxDQUFDLENBQUMsU0FBYyxFQUFFLEVBQUU7WUFFM0IsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUVoRCxTQUFTLENBQUMsQ0FBQyxNQUFnQixFQUFFLEVBQUU7Z0JBRTdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLEdBQUcsQ0FBQyxNQUFNLGlCQUFpQixLQUFLLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFFckcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUNqQixDQUFDO1lBRUosQ0FBQyxDQUFDLENBRUgsQ0FBQTtRQUVILENBQUMsQ0FBQyxDQUVILENBQUE7SUFFSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzFDLFNBQVMsQ0FBQyxDQUFDLFNBQWMsRUFBRSxFQUFFO1lBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixTQUFTLGFBQWEsQ0FBQyxDQUFDO2dCQUMzRCxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsQixDQUFDO1lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzsrR0F6UFUsc0JBQXNCO21IQUF0QixzQkFBc0IsY0FGckIsTUFBTTs7NEZBRVAsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERiU2VydmljZSB9IGZyb20gJy4vZGIuc3RvcmFnZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgVGFibGVTY2hlbWFEZWYgfSBmcm9tICcuL21vZGVscy90YWJsZS1zY2hlbWEnO1xuaW1wb3J0IHsgRU1QVFksIGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhYmFzZU1hbmFnZXJTZXJ2aWNlIGV4dGVuZHMgRGJTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpXG4gIH1cblxuICBnZXREYXRhYmFzZVRhYmxlcygpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gdGhpcy50YWJsZXMubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0ubmFtZSkpXG4gICAgKVxuICB9XG5cbiAgZGF0YWJhc2VFeGlzdHMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5oYXNEYXRhYmFzZSgpKTtcbiAgfVxuXG4gIGhhc0RhdGFiYXNlVGFibGUodGFibGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMuY2xlYW5UYWJsZU5hbWUodGFibGUpO1xuICAgIHJldHVybiBmcm9tKHRoaXMuREJPcGVuZWQoKSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlRXhpc3RzKHRhYmxlTmFtZSlcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgZ2V0RGF0YWJhc2VUYWJsZSh0YWJsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gZnJvbSh0aGlzLkRCT3BlbmVkKCkpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5nZXRUYWJsZSh0YWJsZU5hbWUpO1xuICAgICAgICAgIGlmKCFmb3VuZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdObyBTdWNoIFRhYmxlOicsIHRhYmxlTmFtZSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldERhdGFiYXNlVGFibGVTY2hlbWEodGFibGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlKHRhYmxlTmFtZSkucGlwZShcbiAgICAgIG1hcCgoZGJUYWJsZTogYW55KSA9PiB7XG4gICAgICAgIGlmKCFkYlRhYmxlKSByZXR1cm4gW11cbiAgICAgICAgY29uc3QgY29scyA9IGRiVGFibGUuc2NoZW1hLmluZGV4ZXMubWFwKChjb2w6IGFueSkgPT4gY29sLm5hbWUpXG4gICAgICAgIGNvbnN0IHByaSA9IGRiVGFibGUuc2NoZW1hLnByaW1LZXkubmFtZVxuICAgICAgICByZXR1cm4gW3ByaSwgLi4uY29sc11cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgY3JlYXRlRGF0YWJhc2VUYWJsZSh0YWJsZURlZjogVGFibGVTY2hlbWFEZWYpIHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNyZWF0ZVRhYmxlKHRhYmxlRGVmLnRhYmxlLCB0YWJsZURlZi5zY2hlbWEpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuREJPcGVuZWQoKSlcbiAgICApXG4gIH1cblxuICB1cGRhdGVEYXRhYmFzZVRhYmxlU2NoZW1hKHRhYmxlRGVmOiBUYWJsZVNjaGVtYURlZikge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY3JlYXRlVGFibGUodGFibGVEZWYudGFibGUsIHRhYmxlRGVmLnNjaGVtYSkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXREYXRhYmFzZVRhYmxlKHRhYmxlRGVmLnRhYmxlKSlcbiAgICApXG4gIH1cblxuICAvLyBDUlVEXG4gIGZpbmRUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlKHRhYmxlTmFtZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGFibGVEYXRhOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCF0YWJsZURhdGEpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYGZpbmRUYWJsZVJlY29yZHM6IFRhYmxlICcke3RhYmxlTmFtZX0nIG5vdCBmb3VuZGApO1xuICAgICAgICAgIHJldHVybiBmcm9tKFtdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnJvbSh0YWJsZURhdGEud2hlcmUoY29sdW1uKS5lcXVhbHModmFsdWUpLnRvQXJyYXkoKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBmaW5kVGFibGVSZWNvcmQodGFibGU6IHN0cmluZywgY29sdW1uOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gdGhpcy5maW5kVGFibGVSZWNvcmRzKHRhYmxlTmFtZSwgY29sdW1uLCB2YWx1ZSkucGlwZShcbiAgICAgIG1hcCgocmVjb3JkczogYW55KSA9PiByZWNvcmRzICYmIHJlY29yZHMubGVuZ3RoID4gMCA/IHJlY29yZHNbMF0gOiBudWxsKVxuICAgICk7XG4gIH1cblxuICBnZXRUYWJsZVJlY29yZHModGFibGU6IHN0cmluZykge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMuY2xlYW5UYWJsZU5hbWUodGFibGUpO1xuICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGVOYW1lKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0YWJsZURhdGE6IGFueSkgPT4ge1xuICAgICAgICBpZiAoIXRhYmxlRGF0YSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgZ2V0VGFibGVSZWNvcmRzOiBUYWJsZSAnJHt0YWJsZU5hbWV9JyBub3QgZm91bmRgKTtcbiAgICAgICAgICByZXR1cm4gZnJvbShbXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZyb20odGFibGVEYXRhLnRvQXJyYXkoKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRUYWJsZVJlY29yZCh0YWJsZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gdGhpcy5jbGVhblRhYmxlTmFtZSh0YWJsZSk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RGF0YWJhc2VUYWJsZSh0YWJsZU5hbWUpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRhYmxlRGF0YTogYW55KSA9PiB7XG4gICAgICAgIGlmICghdGFibGVEYXRhKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKGBnZXRUYWJsZVJlY29yZDogVGFibGUgJyR7dGFibGVOYW1lfScgbm90IGZvdW5kYCk7XG4gICAgICAgICAgcmV0dXJuIGZyb20oW251bGxdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnJvbSh0YWJsZURhdGEuZ2V0KGlkKSkucGlwZShcbiAgICAgICAgICBtYXAoKHJlY29yZDogYW55KSA9PiByZWNvcmQgfHwgbnVsbClcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZVRhYmxlUmVjb3JkKHRhYmxlOiBzdHJpbmcsIHJlY29yZDogYW55KSB7XG4gICAgY29uc3QgdGFibGVOYW1lID0gdGhpcy5jbGVhblRhYmxlTmFtZSh0YWJsZSk7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVGFibGVSZWNvcmRzKHRhYmxlTmFtZSwgW3JlY29yZF0pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKGl0ZW06IGFueSkgPT4gaXRlbSA/IGl0ZW1bMF0gOiBudWxsKSlcbiAgfVxuXG4gIGNyZWF0ZVRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nLCByZWNvcmRzOiBhbnlbXSkge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMuY2xlYW5UYWJsZU5hbWUodGFibGUpO1xuICAgIHJldHVybiBmcm9tKHRoaXMuREJPcGVuZWQoKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy50YWJsZXMuc29tZSh0ID0+IHQubmFtZSA9PT0gdGFibGVOYW1lKSkge1xuICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYGNyZWF0ZVRhYmxlUmVjb3JkczogVGFibGUgJyR7dGFibGVOYW1lfScgZG9lcyBub3QgZXhpc3QgaW4gREIgdmVyc2lvbiAke3RoaXMudmVybm99LiBBdmFpbGFibGU6YCwgdGhpcy50YWJsZXMubWFwKHQgPT4gdC5uYW1lKSk7XG4gICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFibGVJbnN0YW5jZSA9IHRoaXMudGFibGUodGFibGVOYW1lKTtcblxuICAgICAgICAvLyBFeHRyYWN0IHNjaGVtYSBmaWVsZHMgZGlyZWN0bHkgZnJvbSB0aGUgdGFibGUgaW5zdGFuY2VcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gdGFibGVJbnN0YW5jZS5zY2hlbWE7XG4gICAgICAgIGNvbnN0IHZhbGlkRmllbGRzID0gW1xuICAgICAgICAgICAgc2NoZW1hLnByaW1LZXkubmFtZSxcbiAgICAgICAgICAgIC4uLnNjaGVtYS5pbmRleGVzLm1hcChpZHggPT4gaWR4Lm5hbWUpXG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgaW5zZXJ0UmVjb3JkcyA9IHJlY29yZHMubWFwKChyZWNvcmQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JqZWN0RnJvbVNjaGVtYTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgICAgICAgICAgdmFsaWRGaWVsZHMuZm9yRWFjaCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3RGcm9tU2NoZW1hW2ZpZWxkXSA9IChyZWNvcmQgYXMgYW55KVtmaWVsZF0gPz8gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBvYmplY3RGcm9tU2NoZW1hO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zb2xlLmxvZyhgY3JlYXRlVGFibGVSZWNvcmRzOiBCdWxrIHB1dHRpbmcgJHtpbnNlcnRSZWNvcmRzLmxlbmd0aH0gcmVjb3JkcyBpbnRvICR7dGFibGVOYW1lfWApO1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRhYmxlSW5zdGFuY2UuYnVsa1B1dChpbnNlcnRSZWNvcmRzKSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiBpbnNlcnRSZWNvcmRzKVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlVGFibGVSZWNvcmQodGFibGU6IHN0cmluZywgcmVjb3JkOiBhbnkpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVUYWJsZVJlY29yZHModGFibGVOYW1lLCBbcmVjb3JkXSlcbiAgICAucGlwZShcbiAgICAgIG1hcChpdGVtID0+IGl0ZW0ubGVuZ3RoID4gMCA/IGl0ZW1bMF0gOiBudWxsKVxuICAgIClcbiAgfVxuXG4gIHVwZGF0ZVRhYmxlUmVjb3Jkcyh0YWJsZTogc3RyaW5nLCByZWNvcmRzOiBhbnlbXSkge1xuXG4gICAgY29uc3QgdGFibGVOYW1lID0gdGhpcy5jbGVhblRhYmxlTmFtZSh0YWJsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlKHRhYmxlTmFtZSkucGlwZShcblxuICAgICAgc3dpdGNoTWFwKCh0YWJsZURhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGVTY2hlbWEodGFibGVOYW1lKS5waXBlKFxuXG4gICAgICAgICAgc3dpdGNoTWFwKChzY2hlbWE6IHN0cmluZ1tdKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IGluc2VydFJlY29yZHMgPSByZWNvcmRzLm1hcCgocmVjb3JkOiBhbnkpID0+IHtcblxuICAgICAgICAgICAgICBjb25zdCBvYmplY3RGcm9tU2NoZW1hOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge31cblxuICAgICAgICAgICAgICBzY2hlbWEuZm9yRWFjaCgoZmllbGQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSAocmVjb3JkIGFzIGFueSlbZmllbGRdID8/IG51bGxcbiAgICAgICAgICAgICAgICBvYmplY3RGcm9tU2NoZW1hW2ZpZWxkXSA9IGRhdGFcbiAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0RnJvbVNjaGVtYVxuXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZXR1cm4gZnJvbSh0YWJsZURhdGEuYnVsa1B1dChpbnNlcnRSZWNvcmRzKSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gaW5zZXJ0UmVjb3JkcylcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICB9KVxuXG4gICAgICAgIClcblxuICAgICAgfSlcblxuICAgIClcblxuICB9XG5cbiAgZGVsZXRlVGFibGVSZWNvcmQ8VD4odGFibGU6IHN0cmluZywgaWQ6IG51bWJlcikge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMuY2xlYW5UYWJsZU5hbWUodGFibGUpO1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZVRhYmxlUmVjb3Jkcyh0YWJsZU5hbWUsIFtpZF0pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoaXRlbSA9PiBpdGVtLmxlbmd0aCA+IDAgPyBpdGVtWzBdIDogbnVsbClcbiAgICApXG4gIH1cblxuICBkZWxldGVUYWJsZVJlY29yZHModGFibGU6IHN0cmluZywgaWRzOiBudW1iZXJbXSkge1xuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHRoaXMuY2xlYW5UYWJsZU5hbWUodGFibGUpO1xuICAgIHJldHVybiB0aGlzLmdldERhdGFiYXNlVGFibGUodGFibGVOYW1lKS5waXBlKFxuXG4gICAgICBzd2l0Y2hNYXAoKHRhYmxlRGF0YTogYW55KSA9PiB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YWJhc2VUYWJsZVNjaGVtYSh0YWJsZU5hbWUpLnBpcGUoXG5cbiAgICAgICAgICBzd2l0Y2hNYXAoKHNjaGVtYTogc3RyaW5nW10pID0+IHtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coYGRlbGV0ZVRhYmxlUmVjb3JkczogU3RhcnRpbmcgZGVsZXRlIG9mICR7aWRzLmxlbmd0aH0gcmVjb3JkcyBmcm9tICR7dGFibGV9LiBJRHM6YCwgaWRzKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZyb20odGFibGVEYXRhLmJ1bGtEZWxldGUoaWRzKSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4gaWRzKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIH0pXG5cbiAgICAgICAgKVxuXG4gICAgICB9KVxuXG4gICAgKVxuXG4gIH1cblxuICBjbGVhclRhYmxlKHRhYmxlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0YWJsZU5hbWUgPSB0aGlzLmNsZWFuVGFibGVOYW1lKHRhYmxlKTtcbiAgICByZXR1cm4gdGhpcy5nZXREYXRhYmFzZVRhYmxlKHRhYmxlTmFtZSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodGFibGVEYXRhOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCF0YWJsZURhdGEpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oYGNsZWFyVGFibGU6IFRhYmxlICcke3RhYmxlTmFtZX0nIG5vdCBmb3VuZGApO1xuICAgICAgICAgIHJldHVybiBmcm9tKFtdKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhgY2xlYXJUYWJsZTogQ2xlYXJpbmcgYWxsIHJlY29yZHMgZnJvbSAke3RhYmxlTmFtZX1gKTtcbiAgICAgICAgcmV0dXJuIGZyb20odGFibGVEYXRhLmNsZWFyKCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==