@experteam-mx/ngx-services 20.0.0-beta.4 → 20.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 (170) hide show
  1. package/README.md +24 -24
  2. package/esm2022/experteam-mx-ngx-services.mjs +5 -0
  3. package/esm2022/lib/apis/api-billing-do.service.mjs +41 -0
  4. package/esm2022/lib/apis/api-billing-gt.service.mjs +61 -0
  5. package/esm2022/lib/apis/api-billing-mx.service.mjs +62 -0
  6. package/esm2022/lib/apis/api-billing-pa.service.mjs +105 -0
  7. package/esm2022/lib/apis/api-billing-sv.service.mjs +83 -0
  8. package/esm2022/lib/apis/api-cash-operations.service.mjs +93 -0
  9. package/esm2022/lib/apis/api-catalogs.service.mjs +626 -0
  10. package/esm2022/lib/apis/api-companies.service.mjs +1031 -0
  11. package/esm2022/lib/apis/api-composition.service.mjs +55 -0
  12. package/esm2022/lib/apis/api-customs.service.mjs +157 -0
  13. package/esm2022/lib/apis/api-discounts.service.mjs +243 -0
  14. package/esm2022/lib/apis/api-e-tools-auto-billing.service.mjs +75 -0
  15. package/esm2022/lib/apis/api-events.service.mjs +53 -0
  16. package/esm2022/lib/apis/api-external-pickups.service.mjs +74 -0
  17. package/esm2022/lib/apis/api-inventories.service.mjs +208 -0
  18. package/esm2022/lib/apis/api-invoices.service.mjs +398 -0
  19. package/esm2022/lib/apis/api-notifications.service.mjs +104 -0
  20. package/esm2022/lib/apis/api-open-items.service.mjs +62 -0
  21. package/esm2022/lib/apis/api-reports.service.mjs +172 -0
  22. package/esm2022/lib/apis/api-security.service.mjs +245 -0
  23. package/esm2022/lib/apis/api-services.service.mjs +93 -0
  24. package/esm2022/lib/apis/api-shipments.service.mjs +116 -0
  25. package/esm2022/lib/apis/api-supplies.service.mjs +133 -0
  26. package/esm2022/lib/apis/models/api-billing-do.interfaces.mjs +2 -0
  27. package/esm2022/lib/apis/models/api-billing-do.types.mjs +2 -0
  28. package/esm2022/lib/apis/models/api-billing-mx.interfaces.mjs +2 -0
  29. package/esm2022/lib/apis/models/api-billing-mx.types.mjs +2 -0
  30. package/esm2022/lib/apis/models/api-billing-pa.interfaces.mjs +2 -0
  31. package/esm2022/lib/apis/models/api-billing-pa.types.mjs +2 -0
  32. package/esm2022/lib/apis/models/api-billing-sv.interfaces.mjs +2 -0
  33. package/esm2022/lib/apis/models/api-billing-sv.types.mjs +2 -0
  34. package/esm2022/lib/apis/models/api-billing.models.mjs +2 -0
  35. package/esm2022/lib/apis/models/api-cash-operations.interfaces.mjs +2 -0
  36. package/esm2022/lib/apis/models/api-cash-operations.types.mjs +2 -0
  37. package/esm2022/lib/apis/models/api-catalog.enum.mjs +9 -0
  38. package/esm2022/lib/apis/models/api-catalog.interfaces.mjs +2 -0
  39. package/esm2022/lib/apis/models/api-catalog.types.mjs +2 -0
  40. package/esm2022/lib/apis/models/api-companies.interfaces.mjs +2 -0
  41. package/esm2022/lib/apis/models/api-companies.types.mjs +2 -0
  42. package/esm2022/lib/apis/models/api-composition.interfaces.mjs +2 -0
  43. package/esm2022/lib/apis/models/api-composition.types.mjs +2 -0
  44. package/esm2022/lib/apis/models/api-customs.interfaces.mjs +2 -0
  45. package/esm2022/lib/apis/models/api-customs.types.mjs +2 -0
  46. package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +2 -0
  47. package/esm2022/lib/apis/models/api-discounts.types.mjs +2 -0
  48. package/esm2022/lib/apis/models/api-e-tools-auto-billing.interfaces.mjs +2 -0
  49. package/esm2022/lib/apis/models/api-e-tools-auto-billing.types.mjs +2 -0
  50. package/esm2022/lib/apis/models/api-events.enum.mjs +7 -0
  51. package/esm2022/lib/apis/models/api-events.interfaces.mjs +2 -0
  52. package/esm2022/lib/apis/models/api-events.types.mjs +2 -0
  53. package/esm2022/lib/apis/models/api-external-pickups.types.mjs +2 -0
  54. package/esm2022/lib/apis/models/api-inventories.enum.mjs +22 -0
  55. package/esm2022/lib/apis/models/api-inventories.interfaces.mjs +2 -0
  56. package/esm2022/lib/apis/models/api-inventories.types.mjs +2 -0
  57. package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +2 -0
  58. package/esm2022/lib/apis/models/api-invoices.types.mjs +2 -0
  59. package/esm2022/lib/apis/models/api-notifications.interfaces.mjs +2 -0
  60. package/esm2022/lib/apis/models/api-notifications.types.mjs +2 -0
  61. package/esm2022/lib/apis/models/api-open-items.interfaces.mjs +2 -0
  62. package/esm2022/lib/apis/models/api-open-items.types.mjs +2 -0
  63. package/esm2022/lib/apis/models/api-reports.interfaces.mjs +2 -0
  64. package/esm2022/lib/apis/models/api-reports.types.mjs +2 -0
  65. package/esm2022/lib/apis/models/api-security.interfaces.mjs +2 -0
  66. package/esm2022/lib/apis/models/api-security.types.mjs +2 -0
  67. package/esm2022/lib/apis/models/api-services.interfaces.mjs +2 -0
  68. package/esm2022/lib/apis/models/api-services.types.mjs +2 -0
  69. package/esm2022/lib/apis/models/api-shipments.enums.mjs +8 -0
  70. package/esm2022/lib/apis/models/api-shipments.interfaces.mjs +2 -0
  71. package/esm2022/lib/apis/models/api-shipments.types.mjs +2 -0
  72. package/esm2022/lib/apis/models/api-supplies.interfaces.mjs +2 -0
  73. package/esm2022/lib/apis/models/api-supplies.types.mjs +2 -0
  74. package/esm2022/lib/apis/models/api.models.mjs +2 -0
  75. package/esm2022/lib/cypher/crypto.service.mjs +93 -0
  76. package/esm2022/lib/helpers/files.mjs +9 -0
  77. package/esm2022/lib/helpers/http.mjs +66 -0
  78. package/esm2022/lib/interceptors/api-headers.interceptor.mjs +24 -0
  79. package/esm2022/lib/interceptors/api-token.interceptor.mjs +28 -0
  80. package/esm2022/lib/interceptors/http-caching.interceptor.mjs +37 -0
  81. package/esm2022/lib/ngx-services.models.mjs +11 -0
  82. package/esm2022/lib/ngx-services.module.mjs +33 -0
  83. package/esm2022/lib/websockets/web-sockets.service.mjs +115 -0
  84. package/esm2022/public-api.mjs +90 -0
  85. package/fesm2022/experteam-mx-ngx-services.mjs +126 -5
  86. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  87. package/index.d.ts +287 -4
  88. package/lib/apis/api-billing-do.service.d.ts +24 -0
  89. package/lib/apis/api-billing-gt.service.d.ts +38 -0
  90. package/lib/apis/api-billing-mx.service.d.ts +39 -0
  91. package/lib/apis/api-billing-pa.service.d.ts +68 -0
  92. package/lib/apis/api-billing-sv.service.d.ts +55 -0
  93. package/lib/apis/api-cash-operations.service.d.ts +62 -0
  94. package/lib/apis/api-catalogs.service.d.ts +458 -0
  95. package/lib/apis/api-companies.service.d.ts +714 -0
  96. package/lib/apis/api-composition.service.d.ts +35 -0
  97. package/lib/apis/api-customs.service.d.ts +110 -0
  98. package/lib/apis/api-discounts.service.d.ts +167 -0
  99. package/lib/apis/api-e-tools-auto-billing.service.d.ts +49 -0
  100. package/lib/apis/api-events.service.d.ts +33 -0
  101. package/lib/apis/api-external-pickups.service.d.ts +46 -0
  102. package/lib/apis/api-inventories.service.d.ts +145 -0
  103. package/lib/apis/api-invoices.service.d.ts +280 -0
  104. package/lib/apis/api-notifications.service.d.ts +70 -0
  105. package/lib/apis/api-open-items.service.d.ts +41 -0
  106. package/lib/apis/api-reports.service.d.ts +120 -0
  107. package/lib/apis/api-security.service.d.ts +162 -0
  108. package/lib/apis/api-services.service.d.ts +61 -0
  109. package/lib/apis/api-shipments.service.d.ts +77 -0
  110. package/lib/apis/api-supplies.service.d.ts +93 -0
  111. package/lib/apis/models/api-billing-do.interfaces.d.ts +6 -0
  112. package/lib/apis/models/api-billing-do.types.d.ts +5 -0
  113. package/lib/apis/models/api-billing-mx.interfaces.d.ts +21 -0
  114. package/lib/apis/models/api-billing-mx.types.d.ts +13 -0
  115. package/lib/apis/models/api-billing-pa.interfaces.d.ts +26 -0
  116. package/lib/apis/models/api-billing-pa.types.d.ts +16 -0
  117. package/lib/apis/models/api-billing-sv.interfaces.d.ts +22 -0
  118. package/lib/apis/models/api-billing-sv.types.d.ts +21 -0
  119. package/lib/apis/models/api-billing.models.d.ts +27 -0
  120. package/lib/apis/models/api-cash-operations.interfaces.d.ts +40 -0
  121. package/lib/apis/models/api-cash-operations.types.d.ts +30 -0
  122. package/lib/apis/models/api-catalog.enum.d.ts +7 -0
  123. package/lib/apis/models/api-catalog.interfaces.d.ts +219 -0
  124. package/lib/apis/models/api-catalog.types.d.ts +217 -0
  125. package/lib/apis/models/api-companies.interfaces.d.ts +341 -0
  126. package/lib/apis/models/api-companies.types.d.ts +457 -0
  127. package/lib/apis/models/api-composition.interfaces.d.ts +272 -0
  128. package/lib/apis/models/api-composition.types.d.ts +9 -0
  129. package/lib/apis/models/api-customs.interfaces.d.ts +125 -0
  130. package/lib/apis/models/api-customs.types.d.ts +90 -0
  131. package/lib/apis/models/api-discounts.interfaces.d.ts +78 -0
  132. package/lib/apis/models/api-discounts.types.d.ts +89 -0
  133. package/lib/apis/models/api-e-tools-auto-billing.interfaces.d.ts +45 -0
  134. package/lib/apis/models/api-e-tools-auto-billing.types.d.ts +30 -0
  135. package/lib/apis/models/api-events.enum.d.ts +5 -0
  136. package/lib/apis/models/api-events.interfaces.d.ts +21 -0
  137. package/lib/apis/models/api-events.types.d.ts +14 -0
  138. package/lib/apis/models/api-external-pickups.types.d.ts +31 -0
  139. package/lib/apis/models/api-inventories.enum.d.ts +18 -0
  140. package/lib/apis/models/api-inventories.interfaces.d.ts +40 -0
  141. package/lib/apis/models/api-inventories.types.d.ts +62 -0
  142. package/lib/apis/models/api-invoices.interfaces.d.ts +267 -0
  143. package/lib/apis/models/api-invoices.types.d.ts +195 -0
  144. package/lib/apis/models/api-notifications.interfaces.d.ts +36 -0
  145. package/lib/apis/models/api-notifications.types.d.ts +34 -0
  146. package/lib/apis/models/api-open-items.interfaces.d.ts +32 -0
  147. package/lib/apis/models/api-open-items.types.d.ts +58 -0
  148. package/lib/apis/models/api-reports.interfaces.d.ts +342 -0
  149. package/lib/apis/models/api-reports.types.d.ts +59 -0
  150. package/lib/apis/models/api-security.interfaces.d.ts +68 -0
  151. package/lib/apis/models/api-security.types.d.ts +72 -0
  152. package/lib/apis/models/api-services.interfaces.d.ts +43 -0
  153. package/lib/apis/models/api-services.types.d.ts +57 -0
  154. package/lib/apis/models/api-shipments.enums.d.ts +6 -0
  155. package/lib/apis/models/api-shipments.interfaces.d.ts +41 -0
  156. package/lib/apis/models/api-shipments.types.d.ts +121 -0
  157. package/lib/apis/models/api-supplies.interfaces.d.ts +40 -0
  158. package/lib/apis/models/api-supplies.types.d.ts +50 -0
  159. package/lib/apis/models/api.models.d.ts +36 -0
  160. package/lib/cypher/crypto.service.d.ts +15 -0
  161. package/lib/helpers/files.d.ts +2 -0
  162. package/lib/helpers/http.d.ts +38 -0
  163. package/lib/interceptors/api-headers.interceptor.d.ts +12 -0
  164. package/lib/interceptors/api-token.interceptor.d.ts +11 -0
  165. package/lib/interceptors/http-caching.interceptor.d.ts +12 -0
  166. package/lib/ngx-services.models.d.ts +62 -0
  167. package/lib/ngx-services.module.d.ts +16 -0
  168. package/lib/websockets/web-sockets.service.d.ts +49 -0
  169. package/package.json +1 -1
  170. package/public-api.d.ts +80 -0
@@ -0,0 +1,55 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "ngx-cookie-service";
5
+ import * as i2 from "@angular/common/http";
6
+ export class ApiCompositionService {
7
+ environments;
8
+ cookie;
9
+ http;
10
+ constructor(environments, cookie, http) {
11
+ this.environments = environments;
12
+ this.cookie = cookie;
13
+ this.http = http;
14
+ }
15
+ /**
16
+ * Retrieves the API security URL from the environment configuration.
17
+ *
18
+ * @return {string} The API security URL.
19
+ */
20
+ get url() {
21
+ return this.environments.apiCompositionUrl ?? '';
22
+ }
23
+ /**
24
+ * Retrieves shipment details based on the provided shipment ID.
25
+ *
26
+ * @param {number} id - The unique identifier of the shipment to retrieve.
27
+ * @return {Observable<ShipmentOut>} An observable that emits the details of the shipment.
28
+ */
29
+ getShipment(id) {
30
+ return this.http.get(`${this.url}/shipments/${id}`)
31
+ .pipe(map(({ data }) => data));
32
+ }
33
+ /**
34
+ * Fetches the country references data based on the provided query parameters.
35
+ *
36
+ * @param {QueryParams} params - The query parameters for the API request.
37
+ * @return {Observable<CompositionCountryReferencesOut>} - An observable emitting the country references.
38
+ */
39
+ getCountryReferences(params) {
40
+ return this.http.get(`${this.url}/country-references`, { params })
41
+ .pipe(map(({ data }) => data));
42
+ }
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCompositionService, deps: [{ token: 'env' }, { token: i1.CookieService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
44
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCompositionService, providedIn: 'root' });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCompositionService, decorators: [{
47
+ type: Injectable,
48
+ args: [{
49
+ providedIn: 'root'
50
+ }]
51
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
52
+ type: Inject,
53
+ args: ['env']
54
+ }] }, { type: i1.CookieService }, { type: i2.HttpClient }] });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbXBvc2l0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktY29tcG9zaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7O0FBT3RDLE1BQU0sT0FBTyxxQkFBcUI7SUFFUDtJQUNmO0lBQ0E7SUFIVixZQUN5QixZQUF5QixFQUN4QyxNQUFxQixFQUNyQixJQUFnQjtRQUZELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUE7SUFDbEQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFFLEVBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsRUFBRSxDQUFDO2FBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLE1BQW1CO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThDLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUM1RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO3dHQXBDVSxxQkFBcUIsa0JBRXRCLEtBQUs7NEdBRkoscUJBQXFCLGNBRnBCLE1BQU07OzRGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcbmltcG9ydCB7IENvbXBvc2l0aW9uQ291bnRyeVJlZmVyZW5jZXNPdXQsIFNoaXBtZW50T3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLWNvbXBvc2l0aW9uLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpQ29tcG9zaXRpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGNvb2tpZTogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgc2VjdXJpdHkgVVJMIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgc2VjdXJpdHkgVVJMLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpQ29tcG9zaXRpb25VcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBzaGlwbWVudCBkZXRhaWxzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBzaGlwbWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxTaGlwbWVudE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZGV0YWlscyBvZiB0aGUgc2hpcG1lbnQuXHJcbiAgICovXHJcbiAgZ2V0U2hpcG1lbnQgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNoaXBtZW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFNoaXBtZW50T3V0Pj4oYCR7dGhpcy51cmx9L3NoaXBtZW50cy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgY291bnRyeSByZWZlcmVuY2VzIGRhdGEgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIEFQSSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q29tcG9zaXRpb25Db3VudHJ5UmVmZXJlbmNlc091dD59IC0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY291bnRyeSByZWZlcmVuY2VzLlxyXG4gICAqL1xyXG4gIGdldENvdW50cnlSZWZlcmVuY2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb21wb3NpdGlvbkNvdW50cnlSZWZlcmVuY2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvbXBvc2l0aW9uQ291bnRyeVJlZmVyZW5jZXNPdXQ+PihgJHt0aGlzLnVybH0vY291bnRyeS1yZWZlcmVuY2VzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,157 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class ApiCustomsService {
6
+ environments;
7
+ http;
8
+ constructor(environments, http) {
9
+ this.environments = environments;
10
+ this.http = http;
11
+ }
12
+ /**
13
+ * Retrieves the URL for the cash operations API from the environment configurations.
14
+ *
15
+ * @return {string} The URL of the cash operations API.
16
+ */
17
+ get url() {
18
+ return this.environments.apiCustomsUrl ?? '';
19
+ }
20
+ /**
21
+ * Fetches the available fields for a given level.
22
+ *
23
+ * @return {Observable<FieldsOut>} An Observable that emits the list of fields.
24
+ * @param params
25
+ */
26
+ getFields(params) {
27
+ return this.http.get(`${this.url}/fields`, {
28
+ params
29
+ }).pipe(map(({ data }) => data));
30
+ }
31
+ /**
32
+ * Retrieves override configurations for a given level.
33
+ *
34
+ * @return {Observable<OverridesOut>} An Observable that emits the overrides configuration.
35
+ * @param params
36
+ */
37
+ getOverrides(params) {
38
+ return this.http.get(`${this.url}/overrides`, {
39
+ params
40
+ }).pipe(map(({ data }) => data));
41
+ }
42
+ /**
43
+ * Fetches the catalogs used in customs operations.
44
+ *
45
+ * @return {Observable<CatalogsOut>} An Observable that emits the catalogs.
46
+ */
47
+ getCatalogs(params) {
48
+ return this.http.get(`${this.url}/catalogs`, {
49
+ params
50
+ }).pipe(map(({ data }) => data));
51
+ }
52
+ /**
53
+ * Retrieves the list of rules based on the provided query parameters.
54
+ *
55
+ * @param {QueryParams} params - Query parameters to filter the rules.
56
+ * @return {Observable<RulesOut>} An Observable that emits the list of rules.
57
+ */
58
+ getRules(params) {
59
+ return this.http.get(`${this.url}/rules`, { params }).pipe(map(({ data }) => data));
60
+ }
61
+ /**
62
+ * Retrieves the details of a specific rule by its ID.
63
+ *
64
+ * @param {number} id - The ID of the rule.
65
+ * @return {Observable<RuleOut>} An Observable that emits the rule details.
66
+ */
67
+ getRule(id) {
68
+ return this.http.get(`${this.url}/rules/${id}`).pipe(map(({ data }) => data));
69
+ }
70
+ /**
71
+ * Creates a new criteria.
72
+ *
73
+ * @param {CriteriaIn} body - The criteria payload to create.
74
+ * @return {Observable<CriteriaOut>} An Observable that emits the created criteria.
75
+ */
76
+ postCriteria(body) {
77
+ return this.http.post(`${this.url}/criteria`, body).pipe(map(({ data }) => data));
78
+ }
79
+ /**
80
+ * Creates a new rule.
81
+ *
82
+ * @param {RuleIn} body - The rule payload to create.
83
+ * @return {Observable<RuleOut>} An Observable that emits the created rule.
84
+ */
85
+ postRules(body) {
86
+ return this.http.post(`${this.url}/rules`, body).pipe(map(({ data }) => data));
87
+ }
88
+ /**
89
+ * Retrieves rules that match the given criteria.
90
+ *
91
+ * @param {RuleCriteriaIn} params - Criteria used to search for matching rules.
92
+ * @return {Observable<RulesByCriteriaOut>} An Observable that emits the list of matching rules.
93
+ */
94
+ postRulesByCriteria(params) {
95
+ return this.http.post(`${this.url}/rules/by-criteria`, params).pipe(map(({ data }) => data));
96
+ }
97
+ /**
98
+ * Enables a specific rule by its ID.
99
+ *
100
+ * @param {number} id - The ID of the rule to enable.
101
+ * @return {Observable<{}>} An Observable that emits an empty array on success.
102
+ */
103
+ putRuleActivate(id) {
104
+ return this.http.put(`${this.url}/rules/${id}/activate`, null).pipe(map(({ data }) => data));
105
+ }
106
+ /**
107
+ * Disables (deletes) a specific rule by its ID.
108
+ *
109
+ * @param {number} id - The ID of the rule to disable.
110
+ * @return {Observable<[]>} An Observable that emits an empty array on success.
111
+ */
112
+ deleteRule(id) {
113
+ return this.http.delete(`${this.url}/rules/${id}`).pipe(map(({ data }) => data));
114
+ }
115
+ /**
116
+ * Updates an existing criteria by its ID.
117
+ *
118
+ * @param {number} id - The ID of the criteria.
119
+ * @param {CriteriaIn} body - The updated criteria payload.
120
+ * @return {Observable<CriteriaOut>} An Observable that emits the updated criteria.
121
+ */
122
+ putCriteria(id, body) {
123
+ return this.http.put(`${this.url}/criteria/${id}`, body).pipe(map(({ data }) => data));
124
+ }
125
+ /**
126
+ * Updates an existing rule by its ID.
127
+ *
128
+ * @param {number} id - The ID of the rule.
129
+ * @param {RulesIn} body - The updated rule payload.
130
+ * @return {Observable<RuleOut>} An Observable that emits the updated rule.
131
+ */
132
+ putRule(id, body) {
133
+ return this.http.put(`${this.url}/rules/${id}`, body).pipe(map(({ data }) => data));
134
+ }
135
+ /**
136
+ * Retrieves the list of country groups used in customs operations.
137
+ *
138
+ * @return {Observable<CountryGroupsOut>} An Observable that emits the list of country groups.
139
+ */
140
+ getCountryGroups(params) {
141
+ return this.http.get(`${this.url}/country-groups`, {
142
+ params
143
+ }).pipe(map(({ data }) => data));
144
+ }
145
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCustomsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
146
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCustomsService, providedIn: 'root' });
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiCustomsService, decorators: [{
149
+ type: Injectable,
150
+ args: [{
151
+ providedIn: 'root'
152
+ }]
153
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
154
+ type: Inject,
155
+ args: ['env']
156
+ }] }, { type: i1.HttpClient }] });
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWN1c3RvbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9hcGlzL2FwaS1jdXN0b21zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJbEQsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxpQkFBaUI7SUFFSDtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3RCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUE7SUFDOUMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFFLE1BQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLEdBQUcsU0FBUyxFQUFFO1lBQ3BCLE1BQU07U0FDUCxDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN4QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFFLE1BQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLEdBQUcsWUFBWSxFQUFFO1lBQ3ZCLE1BQU07U0FDUCxDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFD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SUFBSSxDQUFDLEdBQUcsQ0FDbEIsR0FBRyxJQUFJLENBQUMsR0FBRyxhQUFhLEVBQUUsRUFBRSxFQUM1QixJQUFJLENBQ0wsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ3hCLENBQUE7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFFLEVBQVMsRUFBRSxJQUFhO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFLEVBQUUsRUFDekIsSUFBSSxDQUNMLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN4QixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBRSxNQUFtQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNsQixHQUFHLElBQUksQ0FBQyxHQUFHLGlCQUFpQixFQUM1QjtZQUNFLE1BQU07U0FDUCxDQUNGLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN4QixDQUFBO0lBQ0gsQ0FBQzt3R0FoTlUsaUJBQWlCLGtCQUVsQixLQUFLOzRHQUZKLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQge1xyXG4gIENhdGFsb2dzT3V0LCBDb3VudHJ5R3JvdXBzT3V0LFxyXG4gIENyaXRlcmlhSW4sXHJcbiAgQ3JpdGVyaWFPdXQsXHJcbiAgRmllbGRzT3V0LFxyXG4gIE92ZXJyaWRlc091dCwgUnVsZUNyaXRlcmlhSW4sIFJ1bGVJbixcclxuICBSdWxlT3V0LCBSdWxlc0J5Q3JpdGVyaWFPdXQsIFJ1bGVzSW4sXHJcbiAgUnVsZXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktY3VzdG9tcy50eXBlcydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwaUN1c3RvbXNTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnRcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIGNhc2ggb3BlcmF0aW9ucyBBUEkgZnJvbSB0aGUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBVUkwgb2YgdGhlIGNhc2ggb3BlcmF0aW9ucyBBUEkuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlDdXN0b21zVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdmFpbGFibGUgZmllbGRzIGZvciBhIGdpdmVuIGxldmVsLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxGaWVsZHNPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgZmllbGRzLlxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBnZXRGaWVsZHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEZpZWxkc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxGaWVsZHNPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L2ZpZWxkc2AsIHtcclxuICAgICAgICBwYXJhbXNcclxuICAgICAgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIG92ZXJyaWRlIGNvbmZpZ3VyYXRpb25zIGZvciBhIGdpdmVuIGxldmVsLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxPdmVycmlkZXNPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIG92ZXJyaWRlcyBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSBwYXJhbXNcclxuICAgKi9cclxuICBnZXRPdmVycmlkZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPE92ZXJyaWRlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxPdmVycmlkZXNPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L292ZXJyaWRlc2AsIHtcclxuICAgICAgICBwYXJhbXNcclxuICAgICAgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgY2F0YWxvZ3MgdXNlZCBpbiBjdXN0b21zIG9wZXJhdGlvbnMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENhdGFsb2dzT3V0Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjYXRhbG9ncy5cclxuICAgKi9cclxuICBnZXRDYXRhbG9ncyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Q2F0YWxvZ3NPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Q2F0YWxvZ3NPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L2NhdGFsb2dzYCwge1xyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGxpc3Qgb2YgcnVsZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBRdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcnVsZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSdWxlc091dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBydWxlcy5cclxuICAgKi9cclxuICBnZXRSdWxlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8UnVsZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UnVsZXNPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L3J1bGVzYCxcclxuICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxzIG9mIGEgc3BlY2lmaWMgcnVsZSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHJ1bGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSdWxlT3V0Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBydWxlIGRldGFpbHMuXHJcbiAgICovXHJcbiAgZ2V0UnVsZSAoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8UnVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxSdWxlT3V0Pj4oXHJcbiAgICAgIGAke3RoaXMudXJsfS9ydWxlcy8ke2lkfWBcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgY3JpdGVyaWEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NyaXRlcmlhSW59IGJvZHkgLSBUaGUgY3JpdGVyaWEgcGF5bG9hZCB0byBjcmVhdGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDcml0ZXJpYU91dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3JlYXRlZCBjcml0ZXJpYS5cclxuICAgKi9cclxuICBwb3N0Q3JpdGVyaWEgKGJvZHk6IENyaXRlcmlhSW4pOiBPYnNlcnZhYmxlPENyaXRlcmlhT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxDcml0ZXJpYU91dD4+KGAke3RoaXMudXJsfS9jcml0ZXJpYWAsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgcnVsZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UnVsZUlufSBib2R5IC0gVGhlIHJ1bGUgcGF5bG9hZCB0byBjcmVhdGUuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSdWxlT3V0Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBjcmVhdGVkIHJ1bGUuXHJcbiAgICovXHJcbiAgcG9zdFJ1bGVzIChib2R5OiBSdWxlSW4pOiBPYnNlcnZhYmxlPFJ1bGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vcnVsZXNgLFxyXG4gICAgICBib2R5XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcnVsZXMgdGhhdCBtYXRjaCB0aGUgZ2l2ZW4gY3JpdGVyaWEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1J1bGVDcml0ZXJpYUlufSBwYXJhbXMgLSBDcml0ZXJpYSB1c2VkIHRvIHNlYXJjaCBmb3IgbWF0Y2hpbmcgcnVsZXMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxSdWxlc0J5Q3JpdGVyaWFPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgbWF0Y2hpbmcgcnVsZXMuXHJcbiAgICovXHJcbiAgcG9zdFJ1bGVzQnlDcml0ZXJpYSAocGFyYW1zOiBSdWxlQ3JpdGVyaWFJbik6IE9ic2VydmFibGU8UnVsZXNCeUNyaXRlcmlhT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxSdWxlc0J5Q3JpdGVyaWFPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L3J1bGVzL2J5LWNyaXRlcmlhYCxcclxuICAgICAgcGFyYW1zXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmFibGVzIGEgc3BlY2lmaWMgcnVsZSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHJ1bGUgdG8gZW5hYmxlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gZW1wdHkgYXJyYXkgb24gc3VjY2Vzcy5cclxuICAgKi9cclxuICBwdXRSdWxlQWN0aXZhdGUgKGlkOm51bWJlcik6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8e30+PihcclxuICAgICAgYCR7dGhpcy51cmx9L3J1bGVzLyR7aWR9L2FjdGl2YXRlYCwgbnVsbFxyXG4gICAgKS5waXBlKFxyXG4gICAgICBtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzYWJsZXMgKGRlbGV0ZXMpIGEgc3BlY2lmaWMgcnVsZSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHJ1bGUgdG8gZGlzYWJsZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFtdPn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGVtcHR5IGFycmF5IG9uIHN1Y2Nlc3MuXHJcbiAgICovXHJcbiAgZGVsZXRlUnVsZSAoaWQ6bnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KFxyXG4gICAgICBgJHt0aGlzLnVybH0vcnVsZXMvJHtpZH1gXHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGNyaXRlcmlhIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSBJRCBvZiB0aGUgY3JpdGVyaWEuXHJcbiAgICogQHBhcmFtIHtDcml0ZXJpYUlufSBib2R5IC0gVGhlIHVwZGF0ZWQgY3JpdGVyaWEgcGF5bG9hZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPENyaXRlcmlhT3V0Pn0gQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGNyaXRlcmlhLlxyXG4gICAqL1xyXG4gIHB1dENyaXRlcmlhIChpZDpudW1iZXIsIGJvZHk6IENyaXRlcmlhSW4pOiBPYnNlcnZhYmxlPENyaXRlcmlhT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPENyaXRlcmlhT3V0Pj4oXHJcbiAgICAgIGAke3RoaXMudXJsfS9jcml0ZXJpYS8ke2lkfWAsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgcnVsZSBieSBpdHMgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgSUQgb2YgdGhlIHJ1bGUuXHJcbiAgICogQHBhcmFtIHtSdWxlc0lufSBib2R5IC0gVGhlIHVwZGF0ZWQgcnVsZSBwYXlsb2FkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UnVsZU91dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBydWxlLlxyXG4gICAqL1xyXG4gIHB1dFJ1bGUgKGlkOm51bWJlciwgYm9keTogUnVsZXNJbik6IE9ic2VydmFibGU8UnVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxSdWxlT3V0Pj4oXHJcbiAgICAgIGAke3RoaXMudXJsfS9ydWxlcy8ke2lkfWAsXHJcbiAgICAgIGJvZHlcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiBjb3VudHJ5IGdyb3VwcyB1c2VkIGluIGN1c3RvbXMgb3BlcmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q291bnRyeUdyb3Vwc091dD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgbGlzdCBvZiBjb3VudHJ5IGdyb3Vwcy5cclxuICAgKi9cclxuICBnZXRDb3VudHJ5R3JvdXBzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxDb3VudHJ5R3JvdXBzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPENvdW50cnlHcm91cHNPdXQ+PihcclxuICAgICAgYCR7dGhpcy51cmx9L2NvdW50cnktZ3JvdXBzYCxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICB9XHJcbiAgICApLnBpcGUoXHJcbiAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpXHJcbiAgICApXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,243 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class ApiDiscountsService {
6
+ environments;
7
+ http;
8
+ constructor(environments, http) {
9
+ this.environments = environments;
10
+ this.http = http;
11
+ }
12
+ /**
13
+ * Gets the API endpoint URL for discounts from the environments configuration.
14
+ *
15
+ * @return {string} The URL for the discounts API. Returns an empty string if not defined.
16
+ */
17
+ get url() {
18
+ return this.environments.apiDiscountsUrl ?? '';
19
+ }
20
+ /**
21
+ * Fetches available discounts based on the provided query parameters.
22
+ *
23
+ * @param {QueryParams} params - The query parameters used to filter and retrieve discounts.
24
+ * @return {Observable<DiscountsOut>} An Observable that emits the retrieved discounts data.
25
+ */
26
+ getDiscounts(params) {
27
+ return this.http.get(`${this.url}/discounts`, { params })
28
+ .pipe(map(({ data }) => data));
29
+ }
30
+ /**
31
+ * Sends a request to create or update discounts on the server.
32
+ *
33
+ * @param {DiscountIn} body - The discount information to be submitted.
34
+ * @return {Observable<DiscountOut>} An Observable emitting the server's response containing the created or updated discount details.
35
+ */
36
+ postDiscounts(body) {
37
+ return this.http.post(`${this.url}/discounts`, body)
38
+ .pipe(map(({ data }) => data));
39
+ }
40
+ /**
41
+ * Updates the discount information for a specific item.
42
+ *
43
+ * @param {number} id - The unique identifier of the item whose discount is to be updated.
44
+ * @param {DiscountIn} body - The payload containing the updated discount details.
45
+ * @return {Observable<DiscountOut>} An observable emitting the updated discount details.
46
+ */
47
+ putDiscounts(id, body) {
48
+ return this.http.put(`${this.url}/discounts/${id}`, body)
49
+ .pipe(map(({ data }) => data));
50
+ }
51
+ /**
52
+ * Retrieves the top customers based on the provided query parameters.
53
+ *
54
+ * @param {QueryParams} params - The query parameters to filter and sort the top customers.
55
+ * @return {Observable<TopCustomersOut>} An observable emitting the list of top customers.
56
+ */
57
+ getTopCustomers(params) {
58
+ return this.http.get(`${this.url}/top-customers`, { params })
59
+ .pipe(map(({ data }) => data));
60
+ }
61
+ /**
62
+ * Sends a POST request to load the top customer data in the system, using the provided input.
63
+ * Transforms the API response to extract the data field containing the discount information.
64
+ *
65
+ * @param {OperationsLoadTopCustomerV2In} body - The input payload containing the company country ID and the file.
66
+ * @param {number} body.company_country_id - The ID of the company's country.
67
+ * @param {File} body.file - The file containing data to be processed.
68
+ * @return {Observable<DiscountOut>} An observable containing the discount output information.
69
+ */
70
+ postOperationsLoadTopCustomerV2(body) {
71
+ const formData = new FormData();
72
+ formData.append('company_country_id', String(body.company_country_id));
73
+ formData.append('file', body.file);
74
+ return this.http.post(`${this.url}/operations/load-top-customer/V2`, formData)
75
+ .pipe(map(({ data }) => data));
76
+ }
77
+ /**
78
+ * Fetches the loyalty periods based on the provided query parameters.
79
+ *
80
+ * @param {QueryParams} params - An object containing query parameters to filter the periods.
81
+ * @return {Observable<LoyaltyPeriodsOut>} An observable that emits the fetched loyalty periods.
82
+ */
83
+ getLoyaltyPeriods(params) {
84
+ return this.http.get(`${this.url}/loyalty-periods`, { params })
85
+ .pipe(map(({ data }) => data));
86
+ }
87
+ /**
88
+ * Retrieves the loyalty period details for the given ID.
89
+ *
90
+ * @param {number} id - The unique identifier of the loyalty period to retrieve.
91
+ * @return {Observable<LoyaltyPeriodOut>} An observable emitting the loyalty period details.
92
+ */
93
+ getLoyaltyPeriod(id) {
94
+ return this.http.get(`${this.url}/loyalty-periods/${id}`)
95
+ .pipe(map(({ data }) => data));
96
+ }
97
+ /**
98
+ * Sends a PUT request to update the loyalty period with the provided data.
99
+ *
100
+ * @param {LoyaltyPeriodIn} body - The data for the loyalty period to be updated.
101
+ * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period data.
102
+ */
103
+ postLoyaltyPeriod(body) {
104
+ return this.http.put(`${this.url}/loyalty-periods`, body)
105
+ .pipe(map(({ data }) => data));
106
+ }
107
+ /**
108
+ * Updates the loyalty period for a specified ID with the provided data.
109
+ *
110
+ * @param {number} id - The unique identifier of the loyalty period to update.
111
+ * @param {LoyaltyPeriodIn} body - An object containing the updated details of the loyalty period.
112
+ * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period details.
113
+ */
114
+ putLoyaltyPeriod(id, body) {
115
+ return this.http.put(`${this.url}/loyalty-periods/${id}`, body)
116
+ .pipe(map(({ data }) => data));
117
+ }
118
+ /**
119
+ * Retrieves the loyalty rules based on the provided query parameters.
120
+ *
121
+ * @param {QueryParams} params - The query parameters to filter the loyalty rules.
122
+ * @return {Observable<LoyaltyRulesOut>} An observable containing the loyalty rules output.
123
+ */
124
+ getLoyaltyRules(params) {
125
+ return this.http.get(`${this.url}/loyalty-rules`, { params })
126
+ .pipe(map(({ data }) => data));
127
+ }
128
+ /**
129
+ * Retrieves a specific loyalty rule based on the provided ID.
130
+ *
131
+ * @param {number} id - The unique identifier of the loyalty rule to retrieve.
132
+ * @return {Observable<LoyaltyRuleOut>} An observable that emits the details of the specified loyalty rule.
133
+ */
134
+ getLoyaltyRule(id) {
135
+ return this.http.get(`${this.url}/loyalty-rules/${id}`)
136
+ .pipe(map(({ data }) => data));
137
+ }
138
+ /**
139
+ * Sends a request to add or update a loyalty rule.
140
+ *
141
+ * @param {LoyaltyRuleIn} body - The loyalty rule data to be sent to the server.
142
+ * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule details.
143
+ */
144
+ postLoyaltyRule(body) {
145
+ return this.http.put(`${this.url}/loyalty-rules`, body)
146
+ .pipe(map(({ data }) => data));
147
+ }
148
+ /**
149
+ * Updates an existing loyalty rule with the provided data.
150
+ *
151
+ * @param {number} id - The unique identifier of the loyalty rule to update.
152
+ * @param {LoyaltyRuleIn} body - The data to update the loyalty rule with.
153
+ * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule.
154
+ */
155
+ putLoyaltyRule(id, body) {
156
+ return this.http.put(`${this.url}/loyalty-rules/${id}`, body)
157
+ .pipe(map(({ data }) => data));
158
+ }
159
+ /**
160
+ * Fetches customer restrictions based on the provided query parameters.
161
+ *
162
+ * @param {QueryParams} params - The query parameters to filter customer restrictions.
163
+ * @return {Observable<CustomerRestrictionsOut>} An observable that emits the customer restrictions data.
164
+ */
165
+ getCustomerRestrictions(params) {
166
+ return this.http.get(`${this.url}/customer-restrictions`, { params })
167
+ .pipe(map(({ data }) => data));
168
+ }
169
+ /**
170
+ * Retrieves customer restriction details for a given customer ID.
171
+ *
172
+ * @param {number} id - The unique identifier of the customer.
173
+ * @return {Observable<CustomerRestrictionOut>} An observable containing the customer restriction details.
174
+ */
175
+ getCustomerRestriction(id) {
176
+ return this.http.get(`${this.url}/customer-restrictions/${id}`)
177
+ .pipe(map(({ data }) => data));
178
+ }
179
+ /**
180
+ * Sends a request to apply a restriction to a customer.
181
+ *
182
+ * @param {CustomerRestrictionIn} body - The restriction details to be applied to the customer.
183
+ * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.
184
+ */
185
+ postCustomerRestriction(body) {
186
+ return this.http.put(`${this.url}/customer-restrictions`, body)
187
+ .pipe(map(({ data }) => data));
188
+ }
189
+ /**
190
+ * Updates customer restrictions using the provided ID and data.
191
+ *
192
+ * @param {number} id - The unique identifier of the customer restriction to be updated.
193
+ * @param {LoyaltyRuleIn} body - The data object containing the customer restriction details to be updated.
194
+ * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.
195
+ */
196
+ putCustomerRestriction(id, body) {
197
+ return this.http.put(`${this.url}/customer-restrictions/${id}`, body)
198
+ .pipe(map(({ data }) => data));
199
+ }
200
+ /**
201
+ * Deletes a customer restriction by its ID.
202
+ *
203
+ * @param {number} id - The unique identifier of the customer restriction to delete.
204
+ * @return {Observable<{}>} An Observable that emits the result of the deletion operation.
205
+ */
206
+ deleteCustomerRestriction(id) {
207
+ return this.http.delete(`${this.url}/customer-restrictions/${id}`)
208
+ .pipe(map(({ data }) => data));
209
+ }
210
+ /**
211
+ * Sends a request to apply a restriction to a customer (Version 2).
212
+ *
213
+ * @param {CustomerRestrictionInV2} body - The restriction details to be applied to the customer.
214
+ * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.
215
+ */
216
+ postCustomerRestrictionV2(body) {
217
+ return this.http.post(`${this.url}/customer-restrictions/V2`, body)
218
+ .pipe(map(({ data }) => data));
219
+ }
220
+ /**
221
+ * Updates customer restrictions using the provided ID and data (Version 2).
222
+ *
223
+ * @param {number} id - The unique identifier of the customer restriction to be updated.
224
+ * @param {CustomerRestrictionInV2} body - The data object containing the customer restriction details to be updated.
225
+ * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.
226
+ */
227
+ putCustomerRestrictionV2(id, body) {
228
+ return this.http.put(`${this.url}/customer-restrictions/V2/${id}`, body)
229
+ .pipe(map(({ data }) => data));
230
+ }
231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
232
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, providedIn: 'root' });
233
+ }
234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiDiscountsService, decorators: [{
235
+ type: Injectable,
236
+ args: [{
237
+ providedIn: 'root'
238
+ }]
239
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
240
+ type: Inject,
241
+ args: ['env']
242
+ }] }, { type: i1.HttpClient }] });
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWRpc2NvdW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLWRpc2NvdW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRWxELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQXVCdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUVMO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxZQUFZLENBQUUsTUFBbUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxhQUFhLENBQUUsSUFBZ0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBMEIsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsSUFBSSxDQUFDO2FBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJ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SSxDQUFDLEdBQUcsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO2FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHlCQUF5QixDQUFFLElBQTZCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsMkJBQTJCLEVBQUUsSUFBSSxDQUFDO2FBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCx3QkFBd0IsQ0FBRSxFQUFVLEVBQUUsSUFBNkI7UUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBcUMsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDO2FBQ3pHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBclBVLG1CQUFtQixrQkFFcEIsS0FBSzs0R0FGSixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBDdXN0b21lclJlc3RyaWN0aW9uSW4sXHJcbiAgQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIsXHJcbiAgQ3VzdG9tZXJSZXN0cmljdGlvbk91dCxcclxuICBDdXN0b21lclJlc3RyaWN0aW9uc091dCxcclxuICBEaXNjb3VudEluLFxyXG4gIERpc2NvdW50T3V0LFxyXG4gIERpc2NvdW50c091dCxcclxuICBMb3lhbHR5UGVyaW9kSW4sXHJcbiAgTG95YWx0eVBlcmlvZE91dCxcclxuICBMb3lhbHR5UGVyaW9kc091dCxcclxuICBMb3lhbHR5UnVsZUluLFxyXG4gIExveWFsdHlSdWxlT3V0LFxyXG4gIExveWFsdHlSdWxlc091dCxcclxuICBPcGVyYXRpb25zTG9hZFRvcEN1c3RvbWVyVjJJbixcclxuICBUb3BDdXN0b21lcnNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktZGlzY291bnRzLnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpRGlzY291bnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgQVBJIGVuZHBvaW50IFVSTCBmb3IgZGlzY291bnRzIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIGZvciB0aGUgZGlzY291bnRzIEFQSS4gUmV0dXJucyBhbiBlbXB0eSBzdHJpbmcgaWYgbm90IGRlZmluZWQuXHJcbiAgICovXHJcbiAgZ2V0IHVybCAoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50cy5hcGlEaXNjb3VudHNVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgYXZhaWxhYmxlIGRpc2NvdW50cyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCByZXRyaWV2ZSBkaXNjb3VudHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudHNPdXQ+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJldHJpZXZlZCBkaXNjb3VudHMgZGF0YS5cclxuICAgKi9cclxuICBnZXREaXNjb3VudHMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPERpc2NvdW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxEaXNjb3VudHNPdXQ+PihgJHt0aGlzLnVybH0vZGlzY291bnRzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gY3JlYXRlIG9yIHVwZGF0ZSBkaXNjb3VudHMgb24gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RGlzY291bnRJbn0gYm9keSAtIFRoZSBkaXNjb3VudCBpbmZvcm1hdGlvbiB0byBiZSBzdWJtaXR0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudE91dD59IEFuIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHNlcnZlcidzIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgb3IgdXBkYXRlZCBkaXNjb3VudCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3REaXNjb3VudHMgKGJvZHk6IERpc2NvdW50SW4pOiBPYnNlcnZhYmxlPERpc2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxEaXNjb3VudE91dD4+KGAke3RoaXMudXJsfS9kaXNjb3VudHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgdGhlIGRpc2NvdW50IGluZm9ybWF0aW9uIGZvciBhIHNwZWNpZmljIGl0ZW0uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGl0ZW0gd2hvc2UgZGlzY291bnQgaXMgdG8gYmUgdXBkYXRlZC5cclxuICAgKiBAcGFyYW0ge0Rpc2NvdW50SW59IGJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGRpc2NvdW50IGRldGFpbHMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxEaXNjb3VudE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHVwZGF0ZWQgZGlzY291bnQgZGV0YWlscy5cclxuICAgKi9cclxuICBwdXREaXNjb3VudHMgKGlkOiBudW1iZXIsIGJvZHk6IERpc2NvdW50SW4pOiBPYnNlcnZhYmxlPERpc2NvdW50T3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPERpc2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L2Rpc2NvdW50cy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSB0b3AgY3VzdG9tZXJzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIGFuZCBzb3J0IHRoZSB0b3AgY3VzdG9tZXJzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VG9wQ3VzdG9tZXJzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgbGlzdCBvZiB0b3AgY3VzdG9tZXJzLlxyXG4gICAqL1xyXG4gIGdldFRvcEN1c3RvbWVycyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8VG9wQ3VzdG9tZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFRvcEN1c3RvbWVyc091dD4+KGAke3RoaXMudXJsfS90b3AtY3VzdG9tZXJzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byBsb2FkIHRoZSB0b3AgY3VzdG9tZXIgZGF0YSBpbiB0aGUgc3lzdGVtLCB1c2luZyB0aGUgcHJvdmlkZWQgaW5wdXQuXHJcbiAgICogVHJhbnNmb3JtcyB0aGUgQVBJIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIGRhdGEgZmllbGQgY29udGFpbmluZyB0aGUgZGlzY291bnQgaW5mb3JtYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMklufSBib2R5IC0gVGhlIGlucHV0IHBheWxvYWQgY29udGFpbmluZyB0aGUgY29tcGFueSBjb3VudHJ5IElEIGFuZCB0aGUgZmlsZS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gYm9keS5jb21wYW55X2NvdW50cnlfaWQgLSBUaGUgSUQgb2YgdGhlIGNvbXBhbnkncyBjb3VudHJ5LlxyXG4gICAqIEBwYXJhbSB7RmlsZX0gYm9keS5maWxlIC0gVGhlIGZpbGUgY29udGFpbmluZyBkYXRhIHRvIGJlIHByb2Nlc3NlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPERpc2NvdW50T3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBkaXNjb3VudCBvdXRwdXQgaW5mb3JtYXRpb24uXHJcbiAgICovXHJcbiAgcG9zdE9wZXJhdGlvbnNMb2FkVG9wQ3VzdG9tZXJWMiAoYm9keTogT3BlcmF0aW9uc0xvYWRUb3BDdXN0b21lclYySW4pOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpXHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2NvbXBhbnlfY291bnRyeV9pZCcsIFN0cmluZyhib2R5LmNvbXBhbnlfY291bnRyeV9pZCkpXHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBib2R5LmZpbGUpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8e30+PihgJHt0aGlzLnVybH0vb3BlcmF0aW9ucy9sb2FkLXRvcC1jdXN0b21lci9WMmAsIGZvcm1EYXRhKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGxveWFsdHkgcGVyaW9kcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIEFuIG9iamVjdCBjb250YWluaW5nIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBwZXJpb2RzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZHNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgbG95YWx0eSBwZXJpb2RzLlxyXG4gICAqL1xyXG4gIGdldExveWFsdHlQZXJpb2RzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kc091dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbG95YWx0eSBwZXJpb2QgZGV0YWlscyBmb3IgdGhlIGdpdmVuIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBsb3lhbHR5IHBlcmlvZCB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSBsb3lhbHR5IHBlcmlvZCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGdldExveWFsdHlQZXJpb2QgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPExveWFsdHlQZXJpb2RPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8TG95YWx0eVBlcmlvZE91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXBlcmlvZHMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgUFVUIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBsb3lhbHR5IHBlcmlvZCB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UGVyaW9kSW59IGJvZHkgLSBUaGUgZGF0YSBmb3IgdGhlIGxveWFsdHkgcGVyaW9kIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxMb3lhbHR5UGVyaW9kT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcGVyaW9kIGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdExveWFsdHlQZXJpb2QgKGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcGVyaW9kc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgbG95YWx0eSBwZXJpb2QgZm9yIGEgc3BlY2lmaWVkIElEIHdpdGggdGhlIHByb3ZpZGVkIGRhdGEuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGxveWFsdHkgcGVyaW9kIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0xveWFsdHlQZXJpb2RJbn0gYm9keSAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1cGRhdGVkIGRldGFpbHMgb2YgdGhlIGxveWFsdHkgcGVyaW9kLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBsb3lhbHR5IHBlcmlvZCBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dExveWFsdHlQZXJpb2QgKGlkOiBudW1iZXIsIGJvZHk6IExveWFsdHlQZXJpb2RJbik6IE9ic2VydmFibGU8TG95YWx0eVBlcmlvZE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UGVyaW9kT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcGVyaW9kcy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsb3lhbHR5IHJ1bGVzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtRdWVyeVBhcmFtc30gcGFyYW1zIC0gVGhlIHF1ZXJ5IHBhcmFtZXRlcnMgdG8gZmlsdGVyIHRoZSBsb3lhbHR5IHJ1bGVzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsb3lhbHR5IHJ1bGVzIG91dHB1dC5cclxuICAgKi9cclxuICBnZXRMb3lhbHR5UnVsZXMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPExveWFsdHlSdWxlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZXNPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgc3BlY2lmaWMgbG95YWx0eSBydWxlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBydWxlIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmllZCBsb3lhbHR5IHJ1bGUuXHJcbiAgICovXHJcbiAgZ2V0TG95YWx0eVJ1bGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPExveWFsdHlSdWxlT3V0Pj4oYCR7dGhpcy51cmx9L2xveWFsdHktcnVsZXMvJHtpZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcmVxdWVzdCB0byBhZGQgb3IgdXBkYXRlIGEgbG95YWx0eSBydWxlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtMb3lhbHR5UnVsZUlufSBib2R5IC0gVGhlIGxveWFsdHkgcnVsZSBkYXRhIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPExveWFsdHlSdWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSB1cGRhdGVkIGxveWFsdHkgcnVsZSBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3RMb3lhbHR5UnVsZSAoYm9keTogTG95YWx0eVJ1bGVJbik6IE9ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8TG95YWx0eVJ1bGVPdXQ+PihgJHt0aGlzLnVybH0vbG95YWx0eS1ydWxlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBsb3lhbHR5IHJ1bGUgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbG95YWx0eSBydWxlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge0xveWFsdHlSdWxlSW59IGJvZHkgLSBUaGUgZGF0YSB0byB1cGRhdGUgdGhlIGxveWFsdHkgcnVsZSB3aXRoLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8TG95YWx0eVJ1bGVPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVwZGF0ZWQgbG95YWx0eSBydWxlLlxyXG4gICAqL1xyXG4gIHB1dExveWFsdHlSdWxlIChpZDogbnVtYmVyLCBib2R5OiBMb3lhbHR5UnVsZUluKTogT2JzZXJ2YWJsZTxMb3lhbHR5UnVsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxMb3lhbHR5UnVsZU91dD4+KGAke3RoaXMudXJsfS9sb3lhbHR5LXJ1bGVzLyR7aWR9YCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBjdXN0b21lciByZXN0cmljdGlvbnMuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb25zIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0Q3VzdG9tZXJSZXN0cmljdGlvbnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25zT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25zT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9uc2AsIHsgcGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGRldGFpbHMgZm9yIGEgZ2l2ZW4gY3VzdG9tZXIgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gZGV0YWlscy5cclxuICAgKi9cclxuICBnZXRDdXN0b21lclJlc3RyaWN0aW9uIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItcmVzdHJpY3Rpb25zLyR7aWR9YClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gYXBwbHkgYSByZXN0cmljdGlvbiB0byBhIGN1c3RvbWVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDdXN0b21lclJlc3RyaWN0aW9uSW59IGJvZHkgLSBUaGUgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjdXN0b21lci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHdpdGggdGhlIGFwcGxpZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24uXHJcbiAgICovXHJcbiAgcG9zdEN1c3RvbWVyUmVzdHJpY3Rpb24gKGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9uc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBjdXN0b21lciByZXN0cmljdGlvbnMgdXNpbmcgdGhlIHByb3ZpZGVkIElEIGFuZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiB0byBiZSB1cGRhdGVkLlxyXG4gICAqIEBwYXJhbSB7TG95YWx0eVJ1bGVJbn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dEN1c3RvbWVyUmVzdHJpY3Rpb24gKGlkOiBudW1iZXIsIGJvZHk6IEN1c3RvbWVyUmVzdHJpY3Rpb25Jbik6IE9ic2VydmFibGU8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhIGN1c3RvbWVyIHJlc3RyaWN0aW9uIGJ5IGl0cyBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3VzdG9tZXIgcmVzdHJpY3Rpb24gdG8gZGVsZXRlLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRpb24gb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIGRlbGV0ZUN1c3RvbWVyUmVzdHJpY3Rpb24gKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2N1c3RvbWVyLXJlc3RyaWN0aW9ucy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIGFwcGx5IGEgcmVzdHJpY3Rpb24gdG8gYSBjdXN0b21lciAoVmVyc2lvbiAyKS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tZXJSZXN0cmljdGlvbkluVjJ9IGJvZHkgLSBUaGUgcmVzdHJpY3Rpb24gZGV0YWlscyB0byBiZSBhcHBsaWVkIHRvIHRoZSBjdXN0b21lci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJlc3BvbnNlIHdpdGggdGhlIGFwcGxpZWQgY3VzdG9tZXIgcmVzdHJpY3Rpb24uXHJcbiAgICovXHJcbiAgcG9zdEN1c3RvbWVyUmVzdHJpY3Rpb25WMiAoYm9keTogQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+PihgJHt0aGlzLnVybH0vY3VzdG9tZXItcmVzdHJpY3Rpb25zL1YyYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGN1c3RvbWVyIHJlc3RyaWN0aW9ucyB1c2luZyB0aGUgcHJvdmlkZWQgSUQgYW5kIGRhdGEgKFZlcnNpb24gMikuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1c3RvbWVyIHJlc3RyaWN0aW9uIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHBhcmFtIHtDdXN0b21lclJlc3RyaWN0aW9uSW5WMn0gYm9keSAtIFRoZSBkYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzIHRvIGJlIHVwZGF0ZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxDdXN0b21lclJlc3RyaWN0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgdXBkYXRlZCBjdXN0b21lciByZXN0cmljdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHB1dEN1c3RvbWVyUmVzdHJpY3Rpb25WMiAoaWQ6IG51bWJlciwgYm9keTogQ3VzdG9tZXJSZXN0cmljdGlvbkluVjIpOiBPYnNlcnZhYmxlPEN1c3RvbWVyUmVzdHJpY3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PEFwaVN1Y2Nlc3M8Q3VzdG9tZXJSZXN0cmljdGlvbk91dD4+KGAke3RoaXMudXJsfS9jdXN0b21lci1yZXN0cmljdGlvbnMvVjIvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,75 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { map } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ export class ApiEToolsAutoBillingService {
6
+ environments;
7
+ http;
8
+ constructor(environments, http) {
9
+ this.environments = environments;
10
+ this.http = http;
11
+ }
12
+ /**
13
+ * Retrieves the URL for the shipments API from the environment configurations.
14
+ *
15
+ * @return {string} The URL of the shipments API.
16
+ */
17
+ get url() {
18
+ return this.environments.apiEToolsAutoBilling ?? '';
19
+ }
20
+ /**
21
+ * Updates external shipment address details for the given address ID.
22
+ *
23
+ * @param {Object} params - The parameters for the API request.
24
+ * @param {string} params.id - The unique identifier of the address to update.
25
+ * @param {Object} params.body - The payload containing updated address details.
26
+ * @return {Observable<ExternalShipmentAddressesOut>} An observable containing the updated external shipment address information.
27
+ */
28
+ patchExternalShipmentAddresses({ id, ...body }) {
29
+ return this.http.patch(`${this.url}/external-shipment-addresses/${id}`, body)
30
+ .pipe(map(({ data }) => data));
31
+ }
32
+ /**
33
+ * Fetches the external shipment file by its identifier.
34
+ *
35
+ * @param {number} fileId - The unique identifier of the external shipment file to be retrieved.
36
+ * @return {Observable<ExternalShipmentFileOut>} An observable containing the external shipment file data.
37
+ */
38
+ getExternalShipmentFile(fileId) {
39
+ return this.http.get(`${this.url}/external-shipment-files/${fileId}`)
40
+ .pipe(map(({ data }) => data));
41
+ }
42
+ /**
43
+ * Retrieves the history entries for a specific external shipment.
44
+ *
45
+ * @param {number} id - The ID of the external shipment to retrieve history for.
46
+ * @return {Observable<ExternalShipmentHistoriesOut>} An observable containing the external shipment history entries.
47
+ */
48
+ getExternalShipmentHistories(id) {
49
+ return this.http.get(`${this.url}/external-shipments/${id}/external-shipment-histories`)
50
+ .pipe(map(({ data }) => data));
51
+ }
52
+ /**
53
+ * Retrieves the list of external shipment statuses
54
+ *
55
+ * @param {QueryParams} params - The query parameters used to fetch the external shipment statuses.
56
+ * @return {Observable<ExternalShipmentStatusOut>} An observable that emits the external shipment statuses data.
57
+ */
58
+ getExternalShipmentStatuses(params) {
59
+ return this.http.get(`${this.url}/external-shipment-statuses`, {
60
+ params
61
+ }).pipe(map(({ data }) => data));
62
+ }
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiEToolsAutoBillingService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
64
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiEToolsAutoBillingService, providedIn: 'root' });
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiEToolsAutoBillingService, decorators: [{
67
+ type: Injectable,
68
+ args: [{
69
+ providedIn: 'root'
70
+ }]
71
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
72
+ type: Inject,
73
+ args: ['env']
74
+ }] }, { type: i1.HttpClient }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWUtdG9vbHMtYXV0by1iaWxsaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFjdEMsTUFBTSxPQUFPLDJCQUEyQjtJQUViO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFBO0lBQ3JELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsOEJBQThCLENBQUUsRUFDOUIsRUFBRSxFQUNGLEdBQUcsSUFBSSxFQUNxQjtRQUM1QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUEyQyxHQUFHLElBQUksQ0FBQyxHQUFHLGdDQUFnQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDcEgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCLENBQUUsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFzQyxHQUFHLElBQUksQ0FBQyxHQUFHLDRCQUE0QixNQUFNLEVBQUUsQ0FBQzthQUN2RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxFQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJDLEdBQUcsSUFBSSxDQUFDLEdBQUcsdUJBQXVCLEVBQUUsOEJBQThCLENBQUM7YUFDL0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCLENBQUUsTUFBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsR0FBRyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsRUFBRTtZQUNwRyxNQUFNO1NBQ1AsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBL0RVLDJCQUEyQixrQkFFNUIsS0FBSzs0R0FGSiwyQkFBMkIsY0FGMUIsTUFBTTs7NEZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MsIFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvYXBpLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzSW4sXHJcbiAgRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dCxcclxuICBFeHRlcm5hbFNoaXBtZW50RmlsZU91dCxcclxuICBFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzT3V0LFxyXG4gIEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcudHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcGlFVG9vbHNBdXRvQmlsbGluZ1NlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yIChcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52aXJvbm1lbnRzOiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgVVJMIGZvciB0aGUgc2hpcG1lbnRzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9ucy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVSTCBvZiB0aGUgc2hpcG1lbnRzIEFQSS5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaUVUb29sc0F1dG9CaWxsaW5nID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGV4dGVybmFsIHNoaXBtZW50IGFkZHJlc3MgZGV0YWlscyBmb3IgdGhlIGdpdmVuIGFkZHJlc3MgSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBBUEkgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLmlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBhZGRyZXNzIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zLmJvZHkgLSBUaGUgcGF5bG9hZCBjb250YWluaW5nIHVwZGF0ZWQgYWRkcmVzcyBkZXRhaWxzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgdXBkYXRlZCBleHRlcm5hbCBzaGlwbWVudCBhZGRyZXNzIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIHBhdGNoRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3NlcyAoe1xyXG4gICAgaWQsXHJcbiAgICAuLi5ib2R5XHJcbiAgfTogRXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc0luKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50QWRkcmVzc2VzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPEFwaVN1Y2Nlc3M8RXh0ZXJuYWxTaGlwbWVudEFkZHJlc3Nlc091dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudC1hZGRyZXNzZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoZXMgdGhlIGV4dGVybmFsIHNoaXBtZW50IGZpbGUgYnkgaXRzIGlkZW50aWZpZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gZmlsZUlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCBmaWxlIHRvIGJlIHJldHJpZXZlZC5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRGaWxlT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBleHRlcm5hbCBzaGlwbWVudCBmaWxlIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudEZpbGUgKGZpbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50RmlsZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFeHRlcm5hbFNoaXBtZW50RmlsZU91dD4+KGAke3RoaXMudXJsfS9leHRlcm5hbC1zaGlwbWVudC1maWxlcy8ke2ZpbGVJZH1gKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgaGlzdG9yeSBlbnRyaWVzIGZvciBhIHNwZWNpZmljIGV4dGVybmFsIHNoaXBtZW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIElEIG9mIHRoZSBleHRlcm5hbCBzaGlwbWVudCB0byByZXRyaWV2ZSBoaXN0b3J5IGZvci5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRIaXN0b3JpZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGV4dGVybmFsIHNoaXBtZW50IGhpc3RvcnkgZW50cmllcy5cclxuICAgKi9cclxuICBnZXRFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50SGlzdG9yaWVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dGVybmFsU2hpcG1lbnRIaXN0b3JpZXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnRzLyR7aWR9L2V4dGVybmFsLXNoaXBtZW50LWhpc3Rvcmllc2ApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIGV4dGVybmFsIHNoaXBtZW50IHN0YXR1c2VzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB1c2VkIHRvIGZldGNoIHRoZSBleHRlcm5hbCBzaGlwbWVudCBzdGF0dXNlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGV4dGVybmFsIHNoaXBtZW50IHN0YXR1c2VzIGRhdGEuXHJcbiAgICovXHJcbiAgZ2V0RXh0ZXJuYWxTaGlwbWVudFN0YXR1c2VzIChwYXJhbXM6IFF1ZXJ5UGFyYW1zKTogT2JzZXJ2YWJsZTxFeHRlcm5hbFNoaXBtZW50U3RhdHVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEV4dGVybmFsU2hpcG1lbnRTdGF0dXNPdXQ+PihgJHt0aGlzLnVybH0vZXh0ZXJuYWwtc2hpcG1lbnQtc3RhdHVzZXNgLCB7XHJcbiAgICAgIHBhcmFtc1xyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19