@experteam-mx/ngx-services 20.0.0 → 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 +125 -14
  86. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  87. package/index.d.ts +285 -2
  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,66 @@
1
+ import { HttpHeaders, HttpParams } from '@angular/common/http';
2
+ /**
3
+ * Convert an object of key-value pairs into a URL query string.
4
+ *
5
+ * @param {Object} params - The key-value pairs to converted into a query string.
6
+ *
7
+ * @return {string} - The generated query string.
8
+ */
9
+ export const queryString = (params) => {
10
+ const queryElements = [];
11
+ Object.entries(params).forEach(([key, value]) => {
12
+ if (Array.isArray(value)) {
13
+ const arrayQuery = value
14
+ .map((item) => `${encodeURIComponent(key)}=${encodeURIComponent(item)}`)
15
+ .join('&');
16
+ queryElements.push(arrayQuery);
17
+ }
18
+ else {
19
+ const encodedQuery = `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
20
+ queryElements.push(encodedQuery);
21
+ }
22
+ });
23
+ const queryString = queryElements.join('&');
24
+ return queryString.length ? `?${queryString}` : '';
25
+ };
26
+ /**
27
+ * Creates an instance of HttpParams using the provided params object.
28
+ *
29
+ * @param {Object} params - The object containing the params to the HttpParams constructor.
30
+ *
31
+ * @returns {HttpParams} - An instance of HttpParams created from the params object.
32
+ */
33
+ export const httpParams = (params) => new HttpParams({
34
+ fromObject: params
35
+ });
36
+ /**
37
+ * Returns the headers for generating PDF files.
38
+ *
39
+ * @param {string} format - The format of the headers, 'object' or 'http_header'.
40
+ *
41
+ * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.
42
+ */
43
+ export const pdfHeaders = (format = 'object') => {
44
+ const headers = {
45
+ Accept: 'application/pdf'
46
+ };
47
+ return format === 'object'
48
+ ? headers
49
+ : new HttpHeaders(headers);
50
+ };
51
+ /**
52
+ * Returns the headers for generating XML files.
53
+ *
54
+ * @param {string} format - The format of the headers, 'object' or 'http_header'.
55
+ *
56
+ * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.
57
+ */
58
+ export const xmlHeaders = (format = 'object') => {
59
+ const headers = {
60
+ Accept: 'application/xml',
61
+ };
62
+ return format === 'object'
63
+ ? headers
64
+ : new HttpHeaders(headers);
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9oZWxwZXJzL2h0dHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUc5RDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFtQixFQUFVLEVBQUU7SUFDekQsTUFBTSxhQUFhLEdBQWEsRUFBRSxDQUFBO0lBRWxDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLFVBQVUsR0FBRyxLQUFLO2lCQUNyQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksa0JBQWtCLENBQUMsSUFBaUMsQ0FBQyxFQUFFLENBQUM7aUJBQ3BHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUVaLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFlBQVksR0FBRyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEtBQWtDLENBQUMsRUFBRSxDQUFBO1lBRTNHLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDbEMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUUzQyxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtBQUNwRCxDQUFDLENBQUE7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsTUFBbUIsRUFDUCxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUM7SUFDOUIsVUFBVSxFQUFFLE1BQU07Q0FDbkIsQ0FBQyxDQUFBO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBbUMsUUFBUSxFQUF5RCxFQUFFO0lBQy9ILE1BQU0sT0FBTyxHQUFHO1FBQ2QsTUFBTSxFQUFFLGlCQUFpQjtLQUMxQixDQUFBO0lBRUQsT0FBTyxNQUFNLEtBQUssUUFBUTtRQUN4QixDQUFDLENBQUMsT0FBTztRQUNULENBQUMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUM5QixDQUFDLENBQUE7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxTQUFtQyxRQUFRLEVBQXlELEVBQUU7SUFDL0gsTUFBTSxPQUFPLEdBQUc7UUFDZCxNQUFNLEVBQUUsaUJBQWlCO0tBQzFCLENBQUE7SUFFRCxPQUFPLE1BQU0sS0FBSyxRQUFRO1FBQ3hCLENBQUMsQ0FBQyxPQUFPO1FBQ1QsQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQzlCLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vYXBpcy9tb2RlbHMvYXBpLm1vZGVscydcclxuXHJcbi8qKlxyXG4gKiBDb252ZXJ0IGFuIG9iamVjdCBvZiBrZXktdmFsdWUgcGFpcnMgaW50byBhIFVSTCBxdWVyeSBzdHJpbmcuXHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUga2V5LXZhbHVlIHBhaXJzIHRvIGNvbnZlcnRlZCBpbnRvIGEgcXVlcnkgc3RyaW5nLlxyXG4gKlxyXG4gKiBAcmV0dXJuIHtzdHJpbmd9IC0gVGhlIGdlbmVyYXRlZCBxdWVyeSBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgcXVlcnlTdHJpbmcgPSAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IHN0cmluZyA9PiB7XHJcbiAgY29uc3QgcXVlcnlFbGVtZW50czogc3RyaW5nW10gPSBbXVxyXG5cclxuICBPYmplY3QuZW50cmllcyhwYXJhbXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIGNvbnN0IGFycmF5UXVlcnkgPSB2YWx1ZVxyXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGAke2VuY29kZVVSSUNvbXBvbmVudChrZXkpfT0ke2VuY29kZVVSSUNvbXBvbmVudChpdGVtIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pfWApXHJcbiAgICAgICAgLmpvaW4oJyYnKVxyXG5cclxuICAgICAgcXVlcnlFbGVtZW50cy5wdXNoKGFycmF5UXVlcnkpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbmNvZGVkUXVlcnkgPSBgJHtlbmNvZGVVUklDb21wb25lbnQoa2V5KX09JHtlbmNvZGVVUklDb21wb25lbnQodmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YFxyXG5cclxuICAgICAgcXVlcnlFbGVtZW50cy5wdXNoKGVuY29kZWRRdWVyeSlcclxuICAgIH1cclxuICB9KVxyXG5cclxuICBjb25zdCBxdWVyeVN0cmluZyA9IHF1ZXJ5RWxlbWVudHMuam9pbignJicpXHJcblxyXG4gIHJldHVybiBxdWVyeVN0cmluZy5sZW5ndGggPyBgPyR7cXVlcnlTdHJpbmd9YCA6ICcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEh0dHBQYXJhbXMgdXNpbmcgdGhlIHByb3ZpZGVkIHBhcmFtcyBvYmplY3QuXHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHBhcmFtcyB0byB0aGUgSHR0cFBhcmFtcyBjb25zdHJ1Y3Rvci5cclxuICpcclxuICogQHJldHVybnMge0h0dHBQYXJhbXN9IC0gQW4gaW5zdGFuY2Ugb2YgSHR0cFBhcmFtcyBjcmVhdGVkIGZyb20gdGhlIHBhcmFtcyBvYmplY3QuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgaHR0cFBhcmFtcyA9IChcclxuICBwYXJhbXM6IFF1ZXJ5UGFyYW1zXHJcbik6IEh0dHBQYXJhbXMgPT4gbmV3IEh0dHBQYXJhbXMoe1xyXG4gIGZyb21PYmplY3Q6IHBhcmFtc1xyXG59KVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgdGhlIGhlYWRlcnMgZm9yIGdlbmVyYXRpbmcgUERGIGZpbGVzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gZm9ybWF0IC0gVGhlIGZvcm1hdCBvZiB0aGUgaGVhZGVycywgJ29iamVjdCcgb3IgJ2h0dHBfaGVhZGVyJy5cclxuICpcclxuICogQHJldHVybnMge0h0dHBIZWFkZXJzIHwgeyBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9fSAtIFRoZSBoZWFkZXJzIGZvciBnZW5lcmF0aW5nIFBERiBmaWxlcy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBwZGZIZWFkZXJzID0gKGZvcm1hdDogJ29iamVjdCcgfCAnaHR0cF9oZWFkZXInID0gJ29iamVjdCcpOiBIdHRwSGVhZGVycyB8IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSA9PiB7XHJcbiAgY29uc3QgaGVhZGVycyA9IHtcclxuICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL3BkZidcclxuICB9XHJcblxyXG4gIHJldHVybiBmb3JtYXQgPT09ICdvYmplY3QnXHJcbiAgICA/IGhlYWRlcnNcclxuICAgIDogbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm5zIHRoZSBoZWFkZXJzIGZvciBnZW5lcmF0aW5nIFhNTCBmaWxlcy5cclxuICpcclxuICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCAtIFRoZSBmb3JtYXQgb2YgdGhlIGhlYWRlcnMsICdvYmplY3QnIG9yICdodHRwX2hlYWRlcicuXHJcbiAqXHJcbiAqIEByZXR1cm5zIHtIdHRwSGVhZGVycyB8IHsgW2hlYWRlcjogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfX0gLSBUaGUgaGVhZGVycyBmb3IgZ2VuZXJhdGluZyBYTUwgZmlsZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgeG1sSGVhZGVycyA9IChmb3JtYXQ6ICdvYmplY3QnIHwgJ2h0dHBfaGVhZGVyJyA9ICdvYmplY3QnKTogSHR0cEhlYWRlcnMgfCB7IFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gPT4ge1xyXG4gIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi94bWwnLFxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZvcm1hdCA9PT0gJ29iamVjdCdcclxuICAgID8gaGVhZGVyc1xyXG4gICAgOiBuZXcgSHR0cEhlYWRlcnMoaGVhZGVycylcclxufVxyXG4iXX0=
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Intercepts an outgoing HTTP request and modifies its headers to include default values
3
+ * for Cache-Control, Expires, Pragma, Content-Type, Accept, and Accept-Language if they
4
+ * are not already present.
5
+ *
6
+ * @param {HttpRequest<unknown>} req - The outgoing HTTP request to be intercepted and modified.
7
+ * @param {HttpHandlerFn} next - The next handler in the chain to pass the modified request to.
8
+ * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event resulting from the processed request.
9
+ */
10
+ export function apiHeadersInterceptor(req, next) {
11
+ let { headers } = req;
12
+ if (!headers.has('Content-Type') && !(req.body instanceof FormData)) {
13
+ headers = headers.set('Content-Type', 'application/json');
14
+ }
15
+ if (!headers.has('Accept')) {
16
+ headers = headers.set('Accept', 'application/json');
17
+ }
18
+ if (!headers.has('Accept-Language')) {
19
+ headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en');
20
+ }
21
+ req = req.clone({ headers });
22
+ return next(req);
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWhlYWRlcnMuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvaW50ZXJjZXB0b3JzL2FwaS1oZWFkZXJzLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFFLEdBQXlCLEVBQUUsSUFBbUI7SUFDbkYsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQTtJQUVyQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3BFLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDcEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBRTVCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBIYW5kbGVyRm4sIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5cclxuLyoqXHJcbiAqIEludGVyY2VwdHMgYW4gb3V0Z29pbmcgSFRUUCByZXF1ZXN0IGFuZCBtb2RpZmllcyBpdHMgaGVhZGVycyB0byBpbmNsdWRlIGRlZmF1bHQgdmFsdWVzXHJcbiAqIGZvciBDYWNoZS1Db250cm9sLCBFeHBpcmVzLCBQcmFnbWEsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBhbmQgQWNjZXB0LUxhbmd1YWdlIGlmIHRoZXlcclxuICogYXJlIG5vdCBhbHJlYWR5IHByZXNlbnQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7SHR0cFJlcXVlc3Q8dW5rbm93bj59IHJlcSAtIFRoZSBvdXRnb2luZyBIVFRQIHJlcXVlc3QgdG8gYmUgaW50ZXJjZXB0ZWQgYW5kIG1vZGlmaWVkLlxyXG4gKiBAcGFyYW0ge0h0dHBIYW5kbGVyRm59IG5leHQgLSBUaGUgbmV4dCBoYW5kbGVyIGluIHRoZSBjaGFpbiB0byBwYXNzIHRoZSBtb2RpZmllZCByZXF1ZXN0IHRvLlxyXG4gKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEh0dHBFdmVudDx1bmtub3duPj59IEFuIG9ic2VydmFibGUgb2YgdGhlIEhUVFAgZXZlbnQgcmVzdWx0aW5nIGZyb20gdGhlIHByb2Nlc3NlZCByZXF1ZXN0LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwaUhlYWRlcnNJbnRlcmNlcHRvciAocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgbGV0IHsgaGVhZGVycyB9ID0gcmVxXHJcblxyXG4gIGlmICghaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpICYmICEocmVxLmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gIH1cclxuXHJcbiAgaWYgKCFoZWFkZXJzLmhhcygnQWNjZXB0JykpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0JywgJ2FwcGxpY2F0aW9uL2pzb24nKVxyXG4gIH1cclxuXHJcbiAgaWYgKCFoZWFkZXJzLmhhcygnQWNjZXB0LUxhbmd1YWdlJykpIHtcclxuICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQWNjZXB0LUxhbmd1YWdlJywgbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmcnKSA/PyAnZW4nKVxyXG4gIH1cclxuXHJcbiAgcmVxID0gcmVxLmNsb25lKHsgaGVhZGVycyB9KVxyXG5cclxuICByZXR1cm4gbmV4dChyZXEpXHJcbn1cclxuIl19
@@ -0,0 +1,28 @@
1
+ import { inject } from '@angular/core';
2
+ import { CookieService } from 'ngx-cookie-service';
3
+ import { ENVIRONMENT_TOKEN } from '../ngx-services.models';
4
+ /**
5
+ * An HTTP interceptor to append an Authorization header with a Bearer token
6
+ * to outgoing HTTP requests if certain conditions are met.
7
+ *
8
+ * @param {HttpRequest<unknown>} req - The outgoing HTTP request object which may be modified.
9
+ * @param {HttpHandlerFn} next - The next handler in the HTTP request pipeline.
10
+ * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event stream resulting from the request.
11
+ */
12
+ export function apiTokenInterceptor(req, next) {
13
+ const { authCookie } = inject(ENVIRONMENT_TOKEN);
14
+ const cookie = inject(CookieService);
15
+ if (req.headers.has('Authorization') || req.headers.has('AppKey')) {
16
+ return next(req);
17
+ }
18
+ const token = cookie.get(authCookie);
19
+ if (!token)
20
+ return next(req);
21
+ req = req.clone({
22
+ setHeaders: {
23
+ Authorization: `Bearer ${token}`
24
+ }
25
+ });
26
+ return next(req);
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXRva2VuLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGktdG9rZW4uaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd0QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFFMUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBRSxHQUF5QixFQUFFLElBQW1CO0lBQ2pGLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNoRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFFcEMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRXBDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFNUIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDZCxVQUFVLEVBQUU7WUFDVixhQUFhLEVBQUUsVUFBVSxLQUFLLEVBQUU7U0FDakM7S0FDRixDQUFDLENBQUE7SUFFRixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlckZuLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSdcclxuaW1wb3J0IHsgRU5WSVJPTk1FTlRfVE9LRU4gfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5cclxuLyoqXHJcbiAqIEFuIEhUVFAgaW50ZXJjZXB0b3IgdG8gYXBwZW5kIGFuIEF1dGhvcml6YXRpb24gaGVhZGVyIHdpdGggYSBCZWFyZXIgdG9rZW5cclxuICogdG8gb3V0Z29pbmcgSFRUUCByZXF1ZXN0cyBpZiBjZXJ0YWluIGNvbmRpdGlvbnMgYXJlIG1ldC5cclxuICpcclxuICogQHBhcmFtIHtIdHRwUmVxdWVzdDx1bmtub3duPn0gcmVxIC0gVGhlIG91dGdvaW5nIEhUVFAgcmVxdWVzdCBvYmplY3Qgd2hpY2ggbWF5IGJlIG1vZGlmaWVkLlxyXG4gKiBAcGFyYW0ge0h0dHBIYW5kbGVyRm59IG5leHQgLSBUaGUgbmV4dCBoYW5kbGVyIGluIHRoZSBIVFRQIHJlcXVlc3QgcGlwZWxpbmUuXHJcbiAqIEByZXR1cm4ge09ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+Pn0gQW4gb2JzZXJ2YWJsZSBvZiB0aGUgSFRUUCBldmVudCBzdHJlYW0gcmVzdWx0aW5nIGZyb20gdGhlIHJlcXVlc3QuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYXBpVG9rZW5JbnRlcmNlcHRvciAocmVxOiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXJGbik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XHJcbiAgY29uc3QgeyBhdXRoQ29va2llIH0gPSBpbmplY3QoRU5WSVJPTk1FTlRfVE9LRU4pXHJcbiAgY29uc3QgY29va2llID0gaW5qZWN0KENvb2tpZVNlcnZpY2UpXHJcblxyXG4gIGlmIChyZXEuaGVhZGVycy5oYXMoJ0F1dGhvcml6YXRpb24nKSB8fCByZXEuaGVhZGVycy5oYXMoJ0FwcEtleScpKSB7XHJcbiAgICByZXR1cm4gbmV4dChyZXEpXHJcbiAgfVxyXG5cclxuICBjb25zdCB0b2tlbiA9IGNvb2tpZS5nZXQoYXV0aENvb2tpZSlcclxuXHJcbiAgaWYgKCF0b2tlbikgcmV0dXJuIG5leHQocmVxKVxyXG5cclxuICByZXEgPSByZXEuY2xvbmUoe1xyXG4gICAgc2V0SGVhZGVyczoge1xyXG4gICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxyXG4gICAgfVxyXG4gIH0pXHJcblxyXG4gIHJldHVybiBuZXh0KHJlcSlcclxufVxyXG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { inject } from '@angular/core';
2
+ import { HttpResponse } from '@angular/common/http';
3
+ import { of } from 'rxjs';
4
+ import { tap } from 'rxjs/operators';
5
+ import { ENVIRONMENT_TOKEN } from '../ngx-services.models';
6
+ const DEFAULT_TTL = 10000; // ttl in ms
7
+ const cache = new Map();
8
+ /**
9
+ * Interceptor function to handle HTTP caching for GET requests. It retrieves cached responses
10
+ * if available and valid; otherwise, it processes the request and caches the response for future use.
11
+ *
12
+ * @param {HttpRequest<any>} req - The HTTP request object being intercepted.
13
+ * @param {HttpHandlerFn} next - The next HTTP handler function in the chain to process the request.
14
+ * @return {Observable<HttpEvent<any>>} An observable that emits the HTTP event, either from cache
15
+ * or by invoking the next handler.
16
+ */
17
+ export function httpCachingInterceptor(req, next) {
18
+ const { cacheTtl } = inject(ENVIRONMENT_TOKEN);
19
+ if (req.method !== 'GET')
20
+ return next(req);
21
+ const cached = cache.get(req.urlWithParams);
22
+ if (cached) {
23
+ const isExpired = Date.now() > cached.ttl;
24
+ if (!isExpired) {
25
+ return of(cached.res);
26
+ }
27
+ cache.delete(req.urlWithParams); // If expired, remove the entry from cache
28
+ }
29
+ return next(req).pipe(tap((res) => {
30
+ if (!(res instanceof HttpResponse)) {
31
+ return;
32
+ }
33
+ const ttl = Date.now() + (cacheTtl ?? DEFAULT_TTL);
34
+ cache.set(req.urlWithParams, { res, ttl });
35
+ }));
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWNoaW5nLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2ludGVyY2VwdG9ycy9odHRwLWNhY2hpbmcuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0QyxPQUFPLEVBQXlDLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTFGLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRTFELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQSxDQUFDLFlBQVk7QUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1ELENBQUE7QUFFeEU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUUsR0FBcUIsRUFBRSxJQUFtQjtJQUNoRixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFOUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUUxQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUUzQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7UUFFekMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQUMsQ0FBQztRQUV6QyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQSxDQUFDLDBDQUEwQztJQUM1RSxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNuQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNWLElBQUksQ0FBQyxDQUFDLEdBQUcsWUFBWSxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQUMsT0FBTTtRQUFDLENBQUM7UUFFOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxDQUFBO1FBRWxELEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLENBQUMsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlckZuLCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVF9UT0tFTiB9IGZyb20gJy4uL25neC1zZXJ2aWNlcy5tb2RlbHMnXHJcblxyXG5jb25zdCBERUZBVUxUX1RUTCA9IDEwMDAwIC8vIHR0bCBpbiBtc1xyXG5jb25zdCBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IHR0bDogbnVtYmVyLCByZXM6IEh0dHBSZXNwb25zZTxhbnk+IH0+KClcclxuXHJcbi8qKlxyXG4gKiBJbnRlcmNlcHRvciBmdW5jdGlvbiB0byBoYW5kbGUgSFRUUCBjYWNoaW5nIGZvciBHRVQgcmVxdWVzdHMuIEl0IHJldHJpZXZlcyBjYWNoZWQgcmVzcG9uc2VzXHJcbiAqIGlmIGF2YWlsYWJsZSBhbmQgdmFsaWQ7IG90aGVyd2lzZSwgaXQgcHJvY2Vzc2VzIHRoZSByZXF1ZXN0IGFuZCBjYWNoZXMgdGhlIHJlc3BvbnNlIGZvciBmdXR1cmUgdXNlLlxyXG4gKlxyXG4gKiBAcGFyYW0ge0h0dHBSZXF1ZXN0PGFueT59IHJlcSAtIFRoZSBIVFRQIHJlcXVlc3Qgb2JqZWN0IGJlaW5nIGludGVyY2VwdGVkLlxyXG4gKiBAcGFyYW0ge0h0dHBIYW5kbGVyRm59IG5leHQgLSBUaGUgbmV4dCBIVFRQIGhhbmRsZXIgZnVuY3Rpb24gaW4gdGhlIGNoYWluIHRvIHByb2Nlc3MgdGhlIHJlcXVlc3QuXHJcbiAqIEByZXR1cm4ge09ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIEhUVFAgZXZlbnQsIGVpdGhlciBmcm9tIGNhY2hlXHJcbiAqIG9yIGJ5IGludm9raW5nIHRoZSBuZXh0IGhhbmRsZXIuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaHR0cENhY2hpbmdJbnRlcmNlcHRvciAocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlckZuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xyXG4gIGNvbnN0IHsgY2FjaGVUdGwgfSA9IGluamVjdChFTlZJUk9OTUVOVF9UT0tFTilcclxuXHJcbiAgaWYgKHJlcS5tZXRob2QgIT09ICdHRVQnKSByZXR1cm4gbmV4dChyZXEpXHJcblxyXG4gIGNvbnN0IGNhY2hlZCA9IGNhY2hlLmdldChyZXEudXJsV2l0aFBhcmFtcylcclxuXHJcbiAgaWYgKGNhY2hlZCkge1xyXG4gICAgY29uc3QgaXNFeHBpcmVkID0gRGF0ZS5ub3coKSA+IGNhY2hlZC50dGxcclxuXHJcbiAgICBpZiAoIWlzRXhwaXJlZCkgeyByZXR1cm4gb2YoY2FjaGVkLnJlcykgfVxyXG5cclxuICAgIGNhY2hlLmRlbGV0ZShyZXEudXJsV2l0aFBhcmFtcykgLy8gSWYgZXhwaXJlZCwgcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIGNhY2hlXHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV4dChyZXEpLnBpcGUoXHJcbiAgICB0YXAoKHJlcykgPT4ge1xyXG4gICAgICBpZiAoIShyZXMgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpKSB7IHJldHVybiB9XHJcblxyXG4gICAgICBjb25zdCB0dGwgPSBEYXRlLm5vdygpICsgKGNhY2hlVHRsID8/IERFRkFVTFRfVFRMKVxyXG5cclxuICAgICAgY2FjaGUuc2V0KHJlcS51cmxXaXRoUGFyYW1zLCB7IHJlcywgdHRsIH0pXHJcbiAgICB9KVxyXG4gIClcclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Injection token used to inject environment configurations.
4
+ *
5
+ * `ENVIRONMENT_TOKEN` is a dependency injection token that allows
6
+ * for the provision and retrieval of environment-specific configurations
7
+ * within the application. This token is typically associated with an
8
+ * `Environment` type that defines the structure of the configuration.
9
+ */
10
+ export const ENVIRONMENT_TOKEN = new InjectionToken('Environments token');
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNlcnZpY2VzLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9uZ3gtc2VydmljZXMubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUF1RDlDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBYyxvQkFBb0IsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIHRoZSBhcHBsaWNhdGlvbidzIGVudmlyb25tZW50LlxyXG4gKiBUaGlzIHR5cGUgaW5jbHVkZXMgdmFyaW91cyBBUEkgZW5kcG9pbnQgVVJMcywgYXV0aGVudGljYXRpb24gZGV0YWlscywgY2FjaGluZyBvcHRpb25zLCBhbmQgb3RoZXIgcmVsZXZhbnQgc2V0dGluZ3MuXHJcbiAqXHJcbiAqIFByb3BlcnRpZXM6XHJcbiAqIC0gYXBpQ29tcGFuaWVzVXJsOiBUaGUgVVJMIGZvciB0aGUgY29tcGFuaWVzIEFQSSBlbmRwb2ludC5cclxuICogLSBhcGlFdmVudHNVcmw6IFRoZSBVUkwgZm9yIHRoZSBldmVudHMgQVBJIGVuZHBvaW50LlxyXG4gKiAtIGFwaUludm9pY2VzVXJsOiBUaGUgVVJMIGZvciB0aGUgaW52b2ljZXMgQVBJIGVuZHBvaW50LlxyXG4gKiAtIGFwaVJlcG9ydHNVcmw6IFRoZSBVUkwgZm9yIHRoZSByZXBvcnRzIEFQSSBlbmRwb2ludC5cclxuICogLSBhcGlTZWN1cml0eVVybDogVGhlIFVSTCBmb3IgdGhlIHNlY3VyaXR5LXJlbGF0ZWQgQVBJIGVuZHBvaW50LlxyXG4gKiAtIGFwaVNoaXBtZW50VXJsOiBUaGUgVVJMIGZvciB0aGUgc2hpcG1lbnQgQVBJIGVuZHBvaW50LlxyXG4gKiAtIGF1dGhDb29raWU6IFRoZSBuYW1lIG9mIHRoZSBhdXRoZW50aWNhdGlvbiBjb29raWUgdXNlZCBmb3IgdXNlciBzZXNzaW9ucy5cclxuICogLSBjYWNoZVR0bDogT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgdGltZS10by1saXZlIChUVEwpIGZvciBjYWNoZWQgaXRlbXMuXHJcbiAqIC0gcHJpbnRVcmw6IE9wdGlvbmFsLiBUaGUgVVJMIHVzZWQgZm9yIGdlbmVyYXRpbmcgb3IgZG93bmxvYWRpbmcgcHJpbnRhYmxlIGRvY3VtZW50cy5cclxuICogLSBzZWNyZXRLZXk6IEEgc2VjcmV0IGtleSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiBvciBvdGhlciBzZWN1cmUgb3BlcmF0aW9ucy5cclxuICovXHJcbmV4cG9ydCB0eXBlIEVudmlyb25tZW50ID0ge1xyXG4gIGFwaUJpbGxpbmdETz86IHN0cmluZ1xyXG4gIGFwaUJpbGxpbmdHVD86IHN0cmluZ1xyXG4gIGFwaUJpbGxpbmdNWD86IHN0cmluZ1xyXG4gIGFwaUJpbGxpbmdQQT86IHN0cmluZ1xyXG4gIGFwaUJpbGxpbmdTVj86IHN0cmluZ1xyXG4gIGFwaUNhc2hPcGVyYXRpb25zVXJsPzogc3RyaW5nXHJcbiAgYXBpQ2F0YWxvZ3NVcmw/OiBzdHJpbmdcclxuICBhcGlDb21wYW5pZXNVcmw/OiBzdHJpbmdcclxuICBhcGlDb21wb3NpdGlvblVybD86IHN0cmluZ1xyXG4gIGFwaUN1c3RvbXNVcmw/OiBzdHJpbmdcclxuICBhcGlEaXNjb3VudHNVcmw/OiBzdHJpbmdcclxuICBhcGlFdmVudHNVcmw/OiBzdHJpbmdcclxuICBhcGlFVG9vbHNBdXRvQmlsbGluZz86IHN0cmluZ1xyXG4gIGFwaUV4dGVybmFsT3BlcmF0aW9uc0tleT86IHN0cmluZ1xyXG4gIGFwaUV4dGVybmFsT3BlcmF0aW9uc1VybD86IHN0cmluZ1xyXG4gIGFwaUludmVudG9yaWVzVXJsPzogc3RyaW5nXHJcbiAgYXBpSW52b2ljZXNVcmw/OiBzdHJpbmdcclxuICBhcGlOb3RpZmljYXRpb25zVXJsPzogc3RyaW5nXHJcbiAgYXBpT3Blbkl0ZW1zVXJsPzogc3RyaW5nXHJcbiAgYXBpUmVwb3J0c1VybD86IHN0cmluZ1xyXG4gIGFwaVNlY3VyaXR5VXJsPzogc3RyaW5nXHJcbiAgYXBpU2VydmljZXNVcmw/OiBzdHJpbmdcclxuICBhcGlTaGlwbWVudFVybD86IHN0cmluZ1xyXG4gIGFwaVN1cHBsaWVzVXJsPzogc3RyaW5nXHJcbiAgYXV0aENvb2tpZTogc3RyaW5nXHJcbiAgY2FjaGVUdGw/OiBudW1iZXJcclxuICBwcmludFVybD86IHN0cmluZ1xyXG4gIHNlY3JldEtleTogc3RyaW5nXHJcbiAgc29ja2V0cz86IHtcclxuICAgIGFwcF9rZXk6IHN0cmluZ1xyXG4gICAgZGVidWc/OiBib29sZWFuXHJcbiAgICBwb3J0OiBudW1iZXJcclxuICAgIHVybDogc3RyaW5nXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSW5qZWN0aW9uIHRva2VuIHVzZWQgdG8gaW5qZWN0IGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gKlxyXG4gKiBgRU5WSVJPTk1FTlRfVE9LRU5gIGlzIGEgZGVwZW5kZW5jeSBpbmplY3Rpb24gdG9rZW4gdGhhdCBhbGxvd3NcclxuICogZm9yIHRoZSBwcm92aXNpb24gYW5kIHJldHJpZXZhbCBvZiBlbnZpcm9ubWVudC1zcGVjaWZpYyBjb25maWd1cmF0aW9uc1xyXG4gKiB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHRva2VuIGlzIHR5cGljYWxseSBhc3NvY2lhdGVkIHdpdGggYW5cclxuICogYEVudmlyb25tZW50YCB0eXBlIHRoYXQgZGVmaW5lcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBjb25maWd1cmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEVOVklST05NRU5UX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEVudmlyb25tZW50PignRW52aXJvbm1lbnRzIHRva2VuJylcclxuIl19
@@ -0,0 +1,33 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { provideHttpClient } from '@angular/common/http';
3
+ import * as i0 from "@angular/core";
4
+ export class NgxServicesModule {
5
+ /**
6
+ * Returns a module with providers for the NgxServicesModule.
7
+ *
8
+ * @param {Environment} environment - The environment configuration object.
9
+ *
10
+ * @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.
11
+ */
12
+ static forRoot(environment) {
13
+ return {
14
+ ngModule: NgxServicesModule,
15
+ providers: [
16
+ {
17
+ provide: 'env',
18
+ useValue: environment
19
+ }
20
+ ]
21
+ };
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
24
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NgxServicesModule });
25
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxServicesModule, providers: [provideHttpClient()] });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxServicesModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ providers: [provideHttpClient()]
31
+ }]
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNlcnZpY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi9uZ3gtc2VydmljZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBOztBQUt4RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUUsV0FBd0I7UUFDN0MsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxLQUFLO29CQUNkLFFBQVEsRUFBRSxXQUFXO2lCQUN0QjthQUNGO1NBQ0YsQ0FBQTtJQUNILENBQUM7d0dBbEJVLGlCQUFpQjt5R0FBakIsaUJBQWlCO3lHQUFqQixpQkFBaUIsYUFGakIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOzs0RkFFckIsaUJBQWlCO2tCQUg3QixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgcHJvdmlkZUh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUh0dHBDbGllbnQoKV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNlcnZpY2VzTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbW9kdWxlIHdpdGggcHJvdmlkZXJzIGZvciB0aGUgTmd4U2VydmljZXNNb2R1bGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0Vudmlyb25tZW50fSBlbnZpcm9ubWVudCAtIFRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uIG9iamVjdC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge01vZHVsZVdpdGhQcm92aWRlcnM8Tmd4U2VydmljZXNNb2R1bGU+fSBUaGUgbW9kdWxlIHdpdGggcHJvdmlkZXJzIGZvciB0aGUgTmd4U2VydmljZXNNb2R1bGUuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBmb3JSb290IChlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFNlcnZpY2VzTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogTmd4U2VydmljZXNNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6ICdlbnYnLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IGVudmlyb25tZW50XHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,115 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import Pusher from 'pusher-js';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class WebSocketsService {
6
+ environments;
7
+ pusher;
8
+ constructor(environments) {
9
+ this.environments = environments;
10
+ this.pusher = null;
11
+ this.connect()
12
+ .then((pusher) => {
13
+ if (!pusher)
14
+ return;
15
+ this.pusher = pusher;
16
+ });
17
+ }
18
+ /**
19
+ * Publishes an event to the specified channel with the given data.
20
+ *
21
+ * @param {Channel} channel - The channel instance where the event will be published.
22
+ * @param {string} eventName - The name of the event to be published.
23
+ * @param {T} data - The payload data to be sent with the event.
24
+ * @return {Promise<boolean>} A promise that resolves to a boolean indicating
25
+ * whether the event was successfully triggered on the channel.
26
+ */
27
+ async pub(channel, eventName, data) {
28
+ return channel.trigger(`client-${eventName}`, data);
29
+ }
30
+ /**
31
+ * Subscribes to a specified channel, retrying multiple times upon failure.
32
+ *
33
+ * @param {string} channelName - The name of the channel to be subscribed to.
34
+ * @return {Promise<Channel>} A promise that resolves to the subscribed channel object if successful.
35
+ * @throws {Error} If the subscription fails after the maximum number of retry attempts.
36
+ */
37
+ async channelSub(channelName) {
38
+ const attempts = 3;
39
+ for (let attempt = 0; attempt <= attempts; attempt++) {
40
+ const channel = this.pusher?.channel(channelName);
41
+ if (channel?.subscribed) {
42
+ return channel;
43
+ }
44
+ this.pusher?.subscribe(channelName);
45
+ if (attempt < attempts) {
46
+ await this.wait();
47
+ }
48
+ }
49
+ throw new Error(`Failed to subscribe to channel "${channelName}" after ${attempts} attempts.`);
50
+ }
51
+ /**
52
+ * Binds an event listener to a specified event on a given channel using Pusher or a Channel object,
53
+ * and returns an Observable that emits event data of type T.
54
+ *
55
+ * @param {Channel|string} channel - The channel to bind the event to. It can be a Channel object or a string representing the channel name.
56
+ * @param {string} event - The name of the event to bind to the channel.
57
+ * @return {Observable<T>} An Observable that emits data of type T when the specified event is triggered.
58
+ */
59
+ eventBind(channel, event) {
60
+ return new Observable((subscriber) => {
61
+ if (channel?.name) {
62
+ channel.bind(event, (data) => subscriber.next(data));
63
+ }
64
+ else {
65
+ this.pusher?.subscribe(channel)
66
+ .bind(event, (data) => subscriber.next(data));
67
+ }
68
+ });
69
+ }
70
+ /**
71
+ * Unbinds an event from the specified channel and returns an observable
72
+ * that emits data when the event callback is triggered.
73
+ *
74
+ * @param {Channel} channel - The channel object from which the event should be unbound.
75
+ * @param {string} event - The name of the event to unbind.
76
+ * @return {Observable<T>} An observable that emits data from the unbound event callback.
77
+ */
78
+ eventUnbind(channel, event) {
79
+ return new Observable((subscriber) => channel.unbind(event, (data) => subscriber.next(data)));
80
+ }
81
+ connect() {
82
+ return new Promise((resolve) => {
83
+ const { sockets } = this.environments;
84
+ if (!sockets)
85
+ return resolve(false);
86
+ const pusher = new Pusher(sockets.app_key, {
87
+ wsHost: sockets.url,
88
+ wsPort: sockets.port,
89
+ enabledTransports: ['wss', 'ws'],
90
+ forceTLS: false,
91
+ enableStats: false,
92
+ });
93
+ if (sockets.debug) {
94
+ Pusher.logToConsole = true;
95
+ }
96
+ return resolve(pusher);
97
+ });
98
+ }
99
+ async wait() {
100
+ const waitTime = 3 * 1000;
101
+ return new Promise((resolve) => setTimeout(resolve, waitTime));
102
+ }
103
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketsService, deps: [{ token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketsService, providedIn: 'root' });
105
+ }
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSocketsService, decorators: [{
107
+ type: Injectable,
108
+ args: [{
109
+ providedIn: 'root',
110
+ }]
111
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
112
+ type: Inject,
113
+ args: ['env']
114
+ }] }] });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLXNvY2tldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL2xpYi93ZWJzb2NrZXRzL3dlYi1zb2NrZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxNQUFtQixNQUFNLFdBQVcsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBOztBQU1qQyxNQUFNLE9BQU8saUJBQWlCO0lBSUg7SUFIakIsTUFBTSxDQUFlO0lBRTdCLFlBQ3lCLFlBQXlCO1FBQXpCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBRWhELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFBO1FBRWxCLElBQUksQ0FBQyxPQUFPLEVBQUU7YUFDWCxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU07WUFFbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFDdEIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFLLE9BQWdCLEVBQUUsU0FBaUIsRUFBRSxJQUFPO1FBQ3hELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFFLFdBQW1CO1FBQ25DLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQTtRQUVsQixLQUFLLElBQUksT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLElBQUksUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUE7WUFFakQsSUFBSSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sT0FBTyxDQUFBO1lBQ2hCLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQTtZQUVuQyxJQUFJLE9BQU8sR0FBRyxRQUFRLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxXQUFXLFdBQVcsUUFBUSxZQUFZLENBQUMsQ0FBQTtJQUNoRyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBSyxPQUF5QixFQUFFLEtBQWE7UUFDcEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUssT0FBbUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDOUIsT0FBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDdEUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFFLE9BQWtCLENBQUM7cUJBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtZQUNwRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFdBQVcsQ0FBSyxPQUFnQixFQUFFLEtBQWE7UUFDN0MsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBRU8sT0FBTztRQUNiLE9BQU8sSUFBSSxPQUFPLENBQWlCLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7WUFFckMsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDekMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUNuQixNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUk7Z0JBQ3BCLGlCQUFpQixFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztnQkFDaEMsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsV0FBVyxFQUFFLEtBQUs7YUFDbkIsQ0FBQyxDQUFBO1lBRUYsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1lBQzVCLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBSTtRQUNoQixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFBO1FBRXpCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNoRSxDQUFDO3dHQWxIVSxpQkFBaUIsa0JBSWxCLEtBQUs7NEdBSkosaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUtJLE1BQU07MkJBQUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCBQdXNoZXIsIHsgQ2hhbm5lbCB9IGZyb20gJ3B1c2hlci1qcydcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWJTb2NrZXRzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBwdXNoZXI6IFB1c2hlciB8IG51bGxcclxuXHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLnB1c2hlciA9IG51bGxcclxuXHJcbiAgICB0aGlzLmNvbm5lY3QoKVxyXG4gICAgICAudGhlbigocHVzaGVyKSA9PiB7XHJcbiAgICAgICAgaWYgKCFwdXNoZXIpIHJldHVyblxyXG5cclxuICAgICAgICB0aGlzLnB1c2hlciA9IHB1c2hlclxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHVibGlzaGVzIGFuIGV2ZW50IHRvIHRoZSBzcGVjaWZpZWQgY2hhbm5lbCB3aXRoIHRoZSBnaXZlbiBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDaGFubmVsfSBjaGFubmVsIC0gVGhlIGNoYW5uZWwgaW5zdGFuY2Ugd2hlcmUgdGhlIGV2ZW50IHdpbGwgYmUgcHVibGlzaGVkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgdG8gYmUgcHVibGlzaGVkLlxyXG4gICAqIEBwYXJhbSB7VH0gZGF0YSAtIFRoZSBwYXlsb2FkIGRhdGEgdG8gYmUgc2VudCB3aXRoIHRoZSBldmVudC5cclxuICAgKiBAcmV0dXJuIHtQcm9taXNlPGJvb2xlYW4+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZ1xyXG4gICAqIHdoZXRoZXIgdGhlIGV2ZW50IHdhcyBzdWNjZXNzZnVsbHkgdHJpZ2dlcmVkIG9uIHRoZSBjaGFubmVsLlxyXG4gICAqL1xyXG4gIGFzeW5jIHB1YjxUPiAoY2hhbm5lbDogQ2hhbm5lbCwgZXZlbnROYW1lOiBzdHJpbmcsIGRhdGE6IFQpIHtcclxuICAgIHJldHVybiBjaGFubmVsLnRyaWdnZXIoYGNsaWVudC0ke2V2ZW50TmFtZX1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlcyB0byBhIHNwZWNpZmllZCBjaGFubmVsLCByZXRyeWluZyBtdWx0aXBsZSB0aW1lcyB1cG9uIGZhaWx1cmUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgY2hhbm5lbCB0byBiZSBzdWJzY3JpYmVkIHRvLlxyXG4gICAqIEByZXR1cm4ge1Byb21pc2U8Q2hhbm5lbD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzdWJzY3JpYmVkIGNoYW5uZWwgb2JqZWN0IGlmIHN1Y2Nlc3NmdWwuXHJcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBzdWJzY3JpcHRpb24gZmFpbHMgYWZ0ZXIgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJ5IGF0dGVtcHRzLlxyXG4gICAqL1xyXG4gIGFzeW5jIGNoYW5uZWxTdWIgKGNoYW5uZWxOYW1lOiBzdHJpbmcpOiBQcm9taXNlPENoYW5uZWw+IHtcclxuICAgIGNvbnN0IGF0dGVtcHRzID0gM1xyXG5cclxuICAgIGZvciAobGV0IGF0dGVtcHQgPSAwOyBhdHRlbXB0IDw9IGF0dGVtcHRzOyBhdHRlbXB0KyspIHtcclxuICAgICAgY29uc3QgY2hhbm5lbCA9IHRoaXMucHVzaGVyPy5jaGFubmVsKGNoYW5uZWxOYW1lKVxyXG5cclxuICAgICAgaWYgKGNoYW5uZWw/LnN1YnNjcmliZWQpIHtcclxuICAgICAgICByZXR1cm4gY2hhbm5lbFxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnB1c2hlcj8uc3Vic2NyaWJlKGNoYW5uZWxOYW1lKVxyXG5cclxuICAgICAgaWYgKGF0dGVtcHQgPCBhdHRlbXB0cykge1xyXG4gICAgICAgIGF3YWl0IHRoaXMud2FpdCgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBzdWJzY3JpYmUgdG8gY2hhbm5lbCBcIiR7Y2hhbm5lbE5hbWV9XCIgYWZ0ZXIgJHthdHRlbXB0c30gYXR0ZW1wdHMuYClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmRzIGFuIGV2ZW50IGxpc3RlbmVyIHRvIGEgc3BlY2lmaWVkIGV2ZW50IG9uIGEgZ2l2ZW4gY2hhbm5lbCB1c2luZyBQdXNoZXIgb3IgYSBDaGFubmVsIG9iamVjdCxcclxuICAgKiBhbmQgcmV0dXJucyBhbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgZXZlbnQgZGF0YSBvZiB0eXBlIFQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NoYW5uZWx8c3RyaW5nfSBjaGFubmVsIC0gVGhlIGNoYW5uZWwgdG8gYmluZCB0aGUgZXZlbnQgdG8uIEl0IGNhbiBiZSBhIENoYW5uZWwgb2JqZWN0IG9yIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY2hhbm5lbCBuYW1lLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudCAtIFRoZSBuYW1lIG9mIHRoZSBldmVudCB0byBiaW5kIHRvIHRoZSBjaGFubmVsLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VD59IEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyBkYXRhIG9mIHR5cGUgVCB3aGVuIHRoZSBzcGVjaWZpZWQgZXZlbnQgaXMgdHJpZ2dlcmVkLlxyXG4gICAqL1xyXG4gIGV2ZW50QmluZDxUPiAoY2hhbm5lbDogQ2hhbm5lbCB8IHN0cmluZywgZXZlbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgIGlmICgoY2hhbm5lbCBhcyBDaGFubmVsKT8ubmFtZSkge1xyXG4gICAgICAgIChjaGFubmVsIGFzIENoYW5uZWwpLmJpbmQoZXZlbnQsIChkYXRhOiBUKSA9PiBzdWJzY3JpYmVyLm5leHQoZGF0YSkpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wdXNoZXI/LnN1YnNjcmliZSgoY2hhbm5lbCBhcyBzdHJpbmcpKVxyXG4gICAgICAgICAgLmJpbmQoZXZlbnQsIChkYXRhOiBUKSA9PiBzdWJzY3JpYmVyLm5leHQoZGF0YSkpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmRzIGFuIGV2ZW50IGZyb20gdGhlIHNwZWNpZmllZCBjaGFubmVsIGFuZCByZXR1cm5zIGFuIG9ic2VydmFibGVcclxuICAgKiB0aGF0IGVtaXRzIGRhdGEgd2hlbiB0aGUgZXZlbnQgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtDaGFubmVsfSBjaGFubmVsIC0gVGhlIGNoYW5uZWwgb2JqZWN0IGZyb20gd2hpY2ggdGhlIGV2ZW50IHNob3VsZCBiZSB1bmJvdW5kLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudCAtIFRoZSBuYW1lIG9mIHRoZSBldmVudCB0byB1bmJpbmQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxUPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGRhdGEgZnJvbSB0aGUgdW5ib3VuZCBldmVudCBjYWxsYmFjay5cclxuICAgKi9cclxuICBldmVudFVuYmluZDxUPiAoY2hhbm5lbDogQ2hhbm5lbCwgZXZlbnQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PlxyXG4gICAgICBjaGFubmVsLnVuYmluZChldmVudCwgKGRhdGE6IFQpID0+IHN1YnNjcmliZXIubmV4dChkYXRhKSkpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbm5lY3QgKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFB1c2hlciB8IGZhbHNlPigocmVzb2x2ZSkgPT4ge1xyXG4gICAgICBjb25zdCB7IHNvY2tldHMgfSA9IHRoaXMuZW52aXJvbm1lbnRzXHJcblxyXG4gICAgICBpZiAoIXNvY2tldHMpIHJldHVybiByZXNvbHZlKGZhbHNlKVxyXG5cclxuICAgICAgY29uc3QgcHVzaGVyID0gbmV3IFB1c2hlcihzb2NrZXRzLmFwcF9rZXksIHtcclxuICAgICAgICB3c0hvc3Q6IHNvY2tldHMudXJsLFxyXG4gICAgICAgIHdzUG9ydDogc29ja2V0cy5wb3J0LFxyXG4gICAgICAgIGVuYWJsZWRUcmFuc3BvcnRzOiBbJ3dzcycsICd3cyddLFxyXG4gICAgICAgIGZvcmNlVExTOiBmYWxzZSxcclxuICAgICAgICBlbmFibGVTdGF0czogZmFsc2UsXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICBpZiAoc29ja2V0cy5kZWJ1Zykge1xyXG4gICAgICAgIFB1c2hlci5sb2dUb0NvbnNvbGUgPSB0cnVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiByZXNvbHZlKHB1c2hlcilcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHdhaXQgKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3Qgd2FpdFRpbWUgPSAzICogMTAwMFxyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCB3YWl0VGltZSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,90 @@
1
+ /*
2
+ * Public API Surface of ngx-services
3
+ */
4
+ export * from './lib/ngx-services.models';
5
+ export * from './lib/ngx-services.module';
6
+ // api services
7
+ export * from './lib/apis/api-billing-do.service';
8
+ export * from './lib/apis/api-billing-gt.service';
9
+ export * from './lib/apis/api-billing-mx.service';
10
+ export * from './lib/apis/api-billing-pa.service';
11
+ export * from './lib/apis/api-billing-sv.service';
12
+ export * from './lib/apis/api-cash-operations.service';
13
+ export * from './lib/apis/api-catalogs.service';
14
+ export * from './lib/apis/api-companies.service';
15
+ export * from './lib/apis/api-composition.service';
16
+ export * from './lib/apis/api-customs.service';
17
+ export * from './lib/apis/api-discounts.service';
18
+ export * from './lib/apis/api-events.service';
19
+ export * from './lib/apis/api-e-tools-auto-billing.service';
20
+ export * from './lib/apis/api-external-pickups.service';
21
+ export * from './lib/apis/api-inventories.service';
22
+ export * from './lib/apis/api-invoices.service';
23
+ export * from './lib/apis/api-notifications.service';
24
+ export * from './lib/apis/api-open-items.service';
25
+ export * from './lib/apis/api-reports.service';
26
+ export * from './lib/apis/api-security.service';
27
+ export * from './lib/apis/api-services.service';
28
+ export * from './lib/apis/api-shipments.service';
29
+ export * from './lib/apis/api-supplies.service';
30
+ // api models
31
+ export * from './lib/apis/models/api-billing-do.interfaces';
32
+ export * from './lib/apis/models/api-billing-do.types';
33
+ export * from './lib/apis/models/api-billing-mx.interfaces';
34
+ export * from './lib/apis/models/api-billing-mx.types';
35
+ export * from './lib/apis/models/api-billing-pa.interfaces';
36
+ export * from './lib/apis/models/api-billing-pa.types';
37
+ export * from './lib/apis/models/api-billing-sv.interfaces';
38
+ export * from './lib/apis/models/api-billing-sv.types';
39
+ export * from './lib/apis/models/api-billing.models';
40
+ export * from './lib/apis/models/api-cash-operations.interfaces';
41
+ export * from './lib/apis/models/api-cash-operations.types';
42
+ export * from './lib/apis/models/api-catalog.enum';
43
+ export * from './lib/apis/models/api-catalog.interfaces';
44
+ export * from './lib/apis/models/api-catalog.types';
45
+ export * from './lib/apis/models/api-companies.interfaces';
46
+ export * from './lib/apis/models/api-companies.types';
47
+ export * from './lib/apis/models/api-composition.interfaces';
48
+ export * from './lib/apis/models/api-composition.types';
49
+ export * from './lib/apis/models/api-customs.interfaces';
50
+ export * from './lib/apis/models/api-customs.types';
51
+ export * from './lib/apis/models/api-discounts.interfaces';
52
+ export * from './lib/apis/models/api-discounts.types';
53
+ export * from './lib/apis/models/api-e-tools-auto-billing.interfaces';
54
+ export * from './lib/apis/models/api-e-tools-auto-billing.types';
55
+ export * from './lib/apis/models/api-events.enum';
56
+ export * from './lib/apis/models/api-events.interfaces';
57
+ export * from './lib/apis/models/api-events.types';
58
+ export * from './lib/apis/models/api-external-pickups.types';
59
+ export * from './lib/apis/models/api-inventories.enum';
60
+ export * from './lib/apis/models/api-inventories.interfaces';
61
+ export * from './lib/apis/models/api-inventories.types';
62
+ export * from './lib/apis/models/api-invoices.interfaces';
63
+ export * from './lib/apis/models/api-invoices.types';
64
+ export * from './lib/apis/models/api-notifications.interfaces';
65
+ export * from './lib/apis/models/api-notifications.types';
66
+ export * from './lib/apis/models/api-open-items.interfaces';
67
+ export * from './lib/apis/models/api-open-items.types';
68
+ export * from './lib/apis/models/api-reports.interfaces';
69
+ export * from './lib/apis/models/api-reports.types';
70
+ export * from './lib/apis/models/api-security.interfaces';
71
+ export * from './lib/apis/models/api-security.types';
72
+ export * from './lib/apis/models/api-services.interfaces';
73
+ export * from './lib/apis/models/api-services.types';
74
+ export * from './lib/apis/models/api-shipments.interfaces';
75
+ export * from './lib/apis/models/api-shipments.types';
76
+ export * from './lib/apis/models/api-supplies.interfaces';
77
+ export * from './lib/apis/models/api-supplies.types';
78
+ export * from './lib/apis/models/api.models';
79
+ // websockets
80
+ export * from './lib/websockets/web-sockets.service';
81
+ // cypher
82
+ export * from './lib/cypher/crypto.service';
83
+ // interceptors
84
+ export * from './lib/interceptors/api-headers.interceptor';
85
+ export * from './lib/interceptors/api-token.interceptor';
86
+ export * from './lib/interceptors/http-caching.interceptor';
87
+ // helpers
88
+ export * from './lib/helpers/http';
89
+ export * from './lib/helpers/files';
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVydGVhbS1teC9uZ3gtc2VydmljZXMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsMkJBQTJCLENBQUE7QUFFekMsZUFBZTtBQUNmLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQTtBQUNoRCxjQUFjLCtCQUErQixDQUFBO0FBQzdDLGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLG1DQUFtQyxDQUFBO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxhQUFhO0FBQ2IsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyw2Q0FBNkMsQ0FBQTtBQUMzRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxrREFBa0QsQ0FBQTtBQUNoRSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLDhDQUE4QyxDQUFBO0FBQzVELGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLHFDQUFxQyxDQUFBO0FBQ25ELGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQTtBQUNyRCxjQUFjLHVEQUF1RCxDQUFBO0FBQ3JFLGNBQWMsa0RBQWtELENBQUE7QUFDaEUsY0FBYyxtQ0FBbUMsQ0FBQTtBQUNqRCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyw4Q0FBOEMsQ0FBQTtBQUM1RCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsOENBQThDLENBQUE7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsY0FBYyxnREFBZ0QsQ0FBQTtBQUM5RCxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsNkNBQTZDLENBQUE7QUFDM0QsY0FBYyx3Q0FBd0MsQ0FBQTtBQUN0RCxjQUFjLDBDQUEwQyxDQUFBO0FBQ3hELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsMkNBQTJDLENBQUE7QUFDekQsY0FBYyxzQ0FBc0MsQ0FBQTtBQUNwRCxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYywyQ0FBMkMsQ0FBQTtBQUN6RCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMsOEJBQThCLENBQUE7QUFFNUMsYUFBYTtBQUNiLGNBQWMsc0NBQXNDLENBQUE7QUFFcEQsU0FBUztBQUNULGNBQWMsNkJBQTZCLENBQUE7QUFFM0MsZUFBZTtBQUNmLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQTtBQUN4RCxjQUFjLDZDQUE2QyxDQUFBO0FBRTNELFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMscUJBQXFCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXNlcnZpY2VzXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3gtc2VydmljZXMubW9kdWxlJ1xyXG5cclxuLy8gYXBpIHNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWJpbGxpbmctZG8uc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktYmlsbGluZy1ndC5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1iaWxsaW5nLW14LnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWJpbGxpbmctcGEuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktYmlsbGluZy1zdi5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1jYXNoLW9wZXJhdGlvbnMuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktY2F0YWxvZ3Muc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktY29tcGFuaWVzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWNvbXBvc2l0aW9uLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWN1c3RvbXMuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktZGlzY291bnRzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWV2ZW50cy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1lLXRvb2xzLWF1dG8tYmlsbGluZy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1leHRlcm5hbC1waWNrdXBzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWludmVudG9yaWVzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLWludm9pY2VzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLW5vdGlmaWNhdGlvbnMuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9hcGktb3Blbi1pdGVtcy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1yZXBvcnRzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLXNlY3VyaXR5LnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLXNlcnZpY2VzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvYXBpLXNoaXBtZW50cy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL2FwaS1zdXBwbGllcy5zZXJ2aWNlJ1xyXG5cclxuLy8gYXBpIG1vZGVsc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktYmlsbGluZy1kby5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktYmlsbGluZy1kby50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLWJpbGxpbmctbXguaW50ZXJmYWNlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLWJpbGxpbmctbXgudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1iaWxsaW5nLXBhLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1iaWxsaW5nLXBhLnR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktYmlsbGluZy1zdi5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktYmlsbGluZy1zdi50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLWJpbGxpbmcubW9kZWxzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktY2FzaC1vcGVyYXRpb25zLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jYXNoLW9wZXJhdGlvbnMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jYXRhbG9nLmVudW0nXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jYXRhbG9nLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jYXRhbG9nLnR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktY29tcGFuaWVzLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jb21wYW5pZXMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jb21wb3NpdGlvbi5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktY29tcG9zaXRpb24udHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jdXN0b21zLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1jdXN0b21zLnR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktZGlzY291bnRzLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1kaXNjb3VudHMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1lLXRvb2xzLWF1dG8tYmlsbGluZy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktZS10b29scy1hdXRvLWJpbGxpbmcudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1ldmVudHMuZW51bSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLWV2ZW50cy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktZXZlbnRzLnR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktZXh0ZXJuYWwtcGlja3Vwcy50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLWludmVudG9yaWVzLmVudW0nXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1pbnZlbnRvcmllcy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktaW52ZW50b3JpZXMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1pbnZvaWNlcy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktaW52b2ljZXMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1ub3RpZmljYXRpb25zLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1ub3RpZmljYXRpb25zLnR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktb3Blbi1pdGVtcy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktb3Blbi1pdGVtcy50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLXJlcG9ydHMuaW50ZXJmYWNlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLXJlcG9ydHMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1zZWN1cml0eS5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktc2VjdXJpdHkudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1zZXJ2aWNlcy5pbnRlcmZhY2VzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGlzL21vZGVscy9hcGktc2VydmljZXMudHlwZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1zaGlwbWVudHMuaW50ZXJmYWNlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLXNoaXBtZW50cy50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLXN1cHBsaWVzLmludGVyZmFjZXMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwaXMvbW9kZWxzL2FwaS1zdXBwbGllcy50eXBlcydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBpcy9tb2RlbHMvYXBpLm1vZGVscydcclxuXHJcbi8vIHdlYnNvY2tldHNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2Vic29ja2V0cy93ZWItc29ja2V0cy5zZXJ2aWNlJ1xyXG5cclxuLy8gY3lwaGVyXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2N5cGhlci9jcnlwdG8uc2VydmljZSdcclxuXHJcbi8vIGludGVyY2VwdG9yc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmNlcHRvcnMvYXBpLWhlYWRlcnMuaW50ZXJjZXB0b3InXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9hcGktdG9rZW4uaW50ZXJjZXB0b3InXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyY2VwdG9ycy9odHRwLWNhY2hpbmcuaW50ZXJjZXB0b3InXHJcblxyXG4vLyBoZWxwZXJzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMvaHR0cCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9maWxlcydcclxuIl19