@experteam-mx/ngx-services 18.9.21 → 20.0.0-beta

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 (180) hide show
  1. package/README.md +80 -24
  2. package/fesm2022/experteam-mx-ngx-services.mjs +576 -433
  3. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  4. package/index.d.ts +7667 -3
  5. package/package.json +6 -8
  6. package/esm2022/experteam-mx-ngx-services.mjs +0 -5
  7. package/esm2022/lib/apis/api-billing-do.service.mjs +0 -41
  8. package/esm2022/lib/apis/api-billing-gt.service.mjs +0 -61
  9. package/esm2022/lib/apis/api-billing-mx.service.mjs +0 -62
  10. package/esm2022/lib/apis/api-billing-pa.service.mjs +0 -105
  11. package/esm2022/lib/apis/api-billing-sv.service.mjs +0 -83
  12. package/esm2022/lib/apis/api-cash-operations.service.mjs +0 -93
  13. package/esm2022/lib/apis/api-catalogs.service.mjs +0 -616
  14. package/esm2022/lib/apis/api-companies.service.mjs +0 -1031
  15. package/esm2022/lib/apis/api-composition.service.mjs +0 -55
  16. package/esm2022/lib/apis/api-customs.service.mjs +0 -157
  17. package/esm2022/lib/apis/api-discounts.service.mjs +0 -242
  18. package/esm2022/lib/apis/api-e-tools-auto-billing.service.mjs +0 -75
  19. package/esm2022/lib/apis/api-events.service.mjs +0 -53
  20. package/esm2022/lib/apis/api-external-ops.service.mjs +0 -87
  21. package/esm2022/lib/apis/api-inventories.service.mjs +0 -208
  22. package/esm2022/lib/apis/api-invoices.service.mjs +0 -453
  23. package/esm2022/lib/apis/api-notifications.service.mjs +0 -104
  24. package/esm2022/lib/apis/api-open-items.service.mjs +0 -62
  25. package/esm2022/lib/apis/api-quote.service.mjs +0 -87
  26. package/esm2022/lib/apis/api-reports.service.mjs +0 -172
  27. package/esm2022/lib/apis/api-security.service.mjs +0 -245
  28. package/esm2022/lib/apis/api-services.service.mjs +0 -103
  29. package/esm2022/lib/apis/api-shipments.service.mjs +0 -116
  30. package/esm2022/lib/apis/api-supplies.service.mjs +0 -133
  31. package/esm2022/lib/apis/models/api-billing-do.interfaces.mjs +0 -2
  32. package/esm2022/lib/apis/models/api-billing-do.types.mjs +0 -2
  33. package/esm2022/lib/apis/models/api-billing-mx.interfaces.mjs +0 -2
  34. package/esm2022/lib/apis/models/api-billing-mx.types.mjs +0 -2
  35. package/esm2022/lib/apis/models/api-billing-pa.interfaces.mjs +0 -2
  36. package/esm2022/lib/apis/models/api-billing-pa.types.mjs +0 -2
  37. package/esm2022/lib/apis/models/api-billing-sv.interfaces.mjs +0 -2
  38. package/esm2022/lib/apis/models/api-billing-sv.types.mjs +0 -2
  39. package/esm2022/lib/apis/models/api-billing.models.mjs +0 -2
  40. package/esm2022/lib/apis/models/api-cash-operations.interfaces.mjs +0 -2
  41. package/esm2022/lib/apis/models/api-cash-operations.types.mjs +0 -2
  42. package/esm2022/lib/apis/models/api-catalog.enum.mjs +0 -9
  43. package/esm2022/lib/apis/models/api-catalog.interfaces.mjs +0 -2
  44. package/esm2022/lib/apis/models/api-catalog.types.mjs +0 -2
  45. package/esm2022/lib/apis/models/api-companies.interfaces.mjs +0 -2
  46. package/esm2022/lib/apis/models/api-companies.types.mjs +0 -2
  47. package/esm2022/lib/apis/models/api-composition.interfaces.mjs +0 -2
  48. package/esm2022/lib/apis/models/api-composition.types.mjs +0 -2
  49. package/esm2022/lib/apis/models/api-customs.interfaces.mjs +0 -2
  50. package/esm2022/lib/apis/models/api-customs.types.mjs +0 -2
  51. package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +0 -2
  52. package/esm2022/lib/apis/models/api-discounts.types.mjs +0 -2
  53. package/esm2022/lib/apis/models/api-e-tools-auto-billing.interfaces.mjs +0 -2
  54. package/esm2022/lib/apis/models/api-e-tools-auto-billing.types.mjs +0 -2
  55. package/esm2022/lib/apis/models/api-events.enum.mjs +0 -7
  56. package/esm2022/lib/apis/models/api-events.interfaces.mjs +0 -2
  57. package/esm2022/lib/apis/models/api-events.types.mjs +0 -2
  58. package/esm2022/lib/apis/models/api-external-ops.interfaces.mjs +0 -2
  59. package/esm2022/lib/apis/models/api-external-ops.types.mjs +0 -2
  60. package/esm2022/lib/apis/models/api-inventories.enum.mjs +0 -22
  61. package/esm2022/lib/apis/models/api-inventories.interfaces.mjs +0 -2
  62. package/esm2022/lib/apis/models/api-inventories.types.mjs +0 -2
  63. package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +0 -2
  64. package/esm2022/lib/apis/models/api-invoices.types.mjs +0 -2
  65. package/esm2022/lib/apis/models/api-notifications.interfaces.mjs +0 -2
  66. package/esm2022/lib/apis/models/api-notifications.types.mjs +0 -2
  67. package/esm2022/lib/apis/models/api-open-items.interfaces.mjs +0 -2
  68. package/esm2022/lib/apis/models/api-open-items.types.mjs +0 -2
  69. package/esm2022/lib/apis/models/api-quote.interfaces.mjs +0 -2
  70. package/esm2022/lib/apis/models/api-quote.types.mjs +0 -2
  71. package/esm2022/lib/apis/models/api-reports.interfaces.mjs +0 -2
  72. package/esm2022/lib/apis/models/api-reports.types.mjs +0 -2
  73. package/esm2022/lib/apis/models/api-security.interfaces.mjs +0 -2
  74. package/esm2022/lib/apis/models/api-security.types.mjs +0 -2
  75. package/esm2022/lib/apis/models/api-services.interfaces.mjs +0 -2
  76. package/esm2022/lib/apis/models/api-services.types.mjs +0 -2
  77. package/esm2022/lib/apis/models/api-shipments.enums.mjs +0 -8
  78. package/esm2022/lib/apis/models/api-shipments.interfaces.mjs +0 -2
  79. package/esm2022/lib/apis/models/api-shipments.types.mjs +0 -2
  80. package/esm2022/lib/apis/models/api-supplies.interfaces.mjs +0 -2
  81. package/esm2022/lib/apis/models/api-supplies.types.mjs +0 -2
  82. package/esm2022/lib/apis/models/api.models.mjs +0 -2
  83. package/esm2022/lib/cypher/crypto.service.mjs +0 -93
  84. package/esm2022/lib/helpers/files.mjs +0 -9
  85. package/esm2022/lib/helpers/http.mjs +0 -66
  86. package/esm2022/lib/interceptors/api-headers.interceptor.mjs +0 -24
  87. package/esm2022/lib/interceptors/api-key.interceptor.mjs +0 -48
  88. package/esm2022/lib/interceptors/api-token.interceptor.mjs +0 -28
  89. package/esm2022/lib/interceptors/http-caching.interceptor.mjs +0 -37
  90. package/esm2022/lib/ngx-services.models.mjs +0 -11
  91. package/esm2022/lib/ngx-services.module.mjs +0 -33
  92. package/esm2022/lib/websockets/web-sockets.service.mjs +0 -115
  93. package/esm2022/public-api.mjs +0 -94
  94. package/lib/apis/api-billing-do.service.d.ts +0 -24
  95. package/lib/apis/api-billing-gt.service.d.ts +0 -38
  96. package/lib/apis/api-billing-mx.service.d.ts +0 -39
  97. package/lib/apis/api-billing-pa.service.d.ts +0 -68
  98. package/lib/apis/api-billing-sv.service.d.ts +0 -55
  99. package/lib/apis/api-cash-operations.service.d.ts +0 -62
  100. package/lib/apis/api-catalogs.service.d.ts +0 -451
  101. package/lib/apis/api-companies.service.d.ts +0 -714
  102. package/lib/apis/api-composition.service.d.ts +0 -35
  103. package/lib/apis/api-customs.service.d.ts +0 -110
  104. package/lib/apis/api-discounts.service.d.ts +0 -166
  105. package/lib/apis/api-e-tools-auto-billing.service.d.ts +0 -49
  106. package/lib/apis/api-events.service.d.ts +0 -33
  107. package/lib/apis/api-external-ops.service.d.ts +0 -54
  108. package/lib/apis/api-inventories.service.d.ts +0 -145
  109. package/lib/apis/api-invoices.service.d.ts +0 -317
  110. package/lib/apis/api-notifications.service.d.ts +0 -70
  111. package/lib/apis/api-open-items.service.d.ts +0 -41
  112. package/lib/apis/api-quote.service.d.ts +0 -65
  113. package/lib/apis/api-reports.service.d.ts +0 -120
  114. package/lib/apis/api-security.service.d.ts +0 -162
  115. package/lib/apis/api-services.service.d.ts +0 -67
  116. package/lib/apis/api-shipments.service.d.ts +0 -77
  117. package/lib/apis/api-supplies.service.d.ts +0 -93
  118. package/lib/apis/models/api-billing-do.interfaces.d.ts +0 -6
  119. package/lib/apis/models/api-billing-do.types.d.ts +0 -5
  120. package/lib/apis/models/api-billing-mx.interfaces.d.ts +0 -21
  121. package/lib/apis/models/api-billing-mx.types.d.ts +0 -13
  122. package/lib/apis/models/api-billing-pa.interfaces.d.ts +0 -26
  123. package/lib/apis/models/api-billing-pa.types.d.ts +0 -16
  124. package/lib/apis/models/api-billing-sv.interfaces.d.ts +0 -22
  125. package/lib/apis/models/api-billing-sv.types.d.ts +0 -21
  126. package/lib/apis/models/api-billing.models.d.ts +0 -27
  127. package/lib/apis/models/api-cash-operations.interfaces.d.ts +0 -40
  128. package/lib/apis/models/api-cash-operations.types.d.ts +0 -30
  129. package/lib/apis/models/api-catalog.enum.d.ts +0 -7
  130. package/lib/apis/models/api-catalog.interfaces.d.ts +0 -211
  131. package/lib/apis/models/api-catalog.types.d.ts +0 -213
  132. package/lib/apis/models/api-companies.interfaces.d.ts +0 -346
  133. package/lib/apis/models/api-companies.types.d.ts +0 -461
  134. package/lib/apis/models/api-composition.interfaces.d.ts +0 -272
  135. package/lib/apis/models/api-composition.types.d.ts +0 -9
  136. package/lib/apis/models/api-customs.interfaces.d.ts +0 -125
  137. package/lib/apis/models/api-customs.types.d.ts +0 -90
  138. package/lib/apis/models/api-discounts.interfaces.d.ts +0 -78
  139. package/lib/apis/models/api-discounts.types.d.ts +0 -89
  140. package/lib/apis/models/api-e-tools-auto-billing.interfaces.d.ts +0 -45
  141. package/lib/apis/models/api-e-tools-auto-billing.types.d.ts +0 -30
  142. package/lib/apis/models/api-events.enum.d.ts +0 -5
  143. package/lib/apis/models/api-events.interfaces.d.ts +0 -21
  144. package/lib/apis/models/api-events.types.d.ts +0 -14
  145. package/lib/apis/models/api-external-ops.interfaces.d.ts +0 -21
  146. package/lib/apis/models/api-external-ops.types.d.ts +0 -35
  147. package/lib/apis/models/api-inventories.enum.d.ts +0 -18
  148. package/lib/apis/models/api-inventories.interfaces.d.ts +0 -40
  149. package/lib/apis/models/api-inventories.types.d.ts +0 -62
  150. package/lib/apis/models/api-invoices.interfaces.d.ts +0 -277
  151. package/lib/apis/models/api-invoices.types.d.ts +0 -236
  152. package/lib/apis/models/api-notifications.interfaces.d.ts +0 -36
  153. package/lib/apis/models/api-notifications.types.d.ts +0 -34
  154. package/lib/apis/models/api-open-items.interfaces.d.ts +0 -32
  155. package/lib/apis/models/api-open-items.types.d.ts +0 -58
  156. package/lib/apis/models/api-quote.interfaces.d.ts +0 -13
  157. package/lib/apis/models/api-quote.types.d.ts +0 -17
  158. package/lib/apis/models/api-reports.interfaces.d.ts +0 -353
  159. package/lib/apis/models/api-reports.types.d.ts +0 -59
  160. package/lib/apis/models/api-security.interfaces.d.ts +0 -68
  161. package/lib/apis/models/api-security.types.d.ts +0 -72
  162. package/lib/apis/models/api-services.interfaces.d.ts +0 -49
  163. package/lib/apis/models/api-services.types.d.ts +0 -67
  164. package/lib/apis/models/api-shipments.enums.d.ts +0 -6
  165. package/lib/apis/models/api-shipments.interfaces.d.ts +0 -41
  166. package/lib/apis/models/api-shipments.types.d.ts +0 -121
  167. package/lib/apis/models/api-supplies.interfaces.d.ts +0 -40
  168. package/lib/apis/models/api-supplies.types.d.ts +0 -50
  169. package/lib/apis/models/api.models.d.ts +0 -36
  170. package/lib/cypher/crypto.service.d.ts +0 -15
  171. package/lib/helpers/files.d.ts +0 -2
  172. package/lib/helpers/http.d.ts +0 -38
  173. package/lib/interceptors/api-headers.interceptor.d.ts +0 -12
  174. package/lib/interceptors/api-key.interceptor.d.ts +0 -35
  175. package/lib/interceptors/api-token.interceptor.d.ts +0 -11
  176. package/lib/interceptors/http-caching.interceptor.d.ts +0 -12
  177. package/lib/ngx-services.models.d.ts +0 -63
  178. package/lib/ngx-services.module.d.ts +0 -16
  179. package/lib/websockets/web-sockets.service.d.ts +0 -49
  180. package/public-api.d.ts +0 -84
@@ -1,245 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { HttpHeaders } from '@angular/common/http';
3
- import { map, tap } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "ngx-cookie-service";
6
- import * as i2 from "@angular/common/http";
7
- export class ApiSecurityService {
8
- environments;
9
- cookie;
10
- http;
11
- constructor(environments, cookie, http) {
12
- this.environments = environments;
13
- this.cookie = cookie;
14
- this.http = http;
15
- }
16
- /**
17
- * Retrieves the API security URL from the environments configuration.
18
- *
19
- * @return {string} The API security URL.
20
- */
21
- get url() {
22
- return this.environments.apiSecurityUrl ?? '';
23
- }
24
- /**
25
- * Handles the login authentication request by sending the login data to the authentication endpoint.
26
- *
27
- * @param {AuthLoginIn} body The payload containing login credentials.
28
- * @return {Observable<AuthLoginOut>} An observable emitting the authentication response data.
29
- */
30
- postAuthLogin(body) {
31
- return this.http.post(`${this.url}/auth/login`, body)
32
- .pipe(map(({ data }) => data), tap(({ access_token }) => this.cookie.set(this.environments.authCookie, access_token, { path: '/' })));
33
- }
34
- /**
35
- * Handles the user login process by sending user credentials to the authentication endpoint.
36
- *
37
- * @param {AuthUserLoginIn} body - The request payload containing user login details such as username and password.
38
- * @return {Observable<AuthLoginOut>} An observable that emits the authenticated user's login data upon successful login.
39
- */
40
- postAuthUserLogin(body) {
41
- return this.http.post(`${this.url}/auth/user-login`, body)
42
- .pipe(map(({ data }) => data));
43
- }
44
- /**
45
- * Logs out the current user by making a POST request to the logout endpoint.
46
- *
47
- * This method deletes all cookies after a successful logout.
48
- *
49
- * @return {Observable<{}>} An observable that emits the server's response to the logout request.
50
- */
51
- postAuthLogout() {
52
- return this.http.post(`${this.url}/auth/logout`, null)
53
- .pipe(map(({ data }) => data), tap(() => this.cookie.delete(this.environments.authCookie, '/')));
54
- }
55
- /**
56
- * Creates a new session for a specified model.
57
- *
58
- * @param {Object} params - The parameters for creating the session.
59
- * @param {string} params.modelType - The type of the model.
60
- * @param {string} params.modelId - The ID of the model.
61
- * @param {string} [params.token] - Optional authorization token.
62
- *
63
- * @return {Observable<SessionOut>} An observable containing the created session details.
64
- */
65
- postSession({ modelType, modelId, token, }) {
66
- let headers = new HttpHeaders({});
67
- if (token) {
68
- headers = headers.set('Authorization', `Bearer ${token}`);
69
- }
70
- return this.http.post(`${this.url}/sessions`, {
71
- model_type: modelType,
72
- model_id: modelId,
73
- }, {
74
- headers
75
- }).pipe(map(({ data }) => data));
76
- }
77
- /**
78
- * Fetches the authenticated user's information.
79
- * Sends a GET request to the endpoint '/auth/me' to retrieve information
80
- * about the currently authenticated user.
81
- *
82
- * @return {Observable<AuthMeOut>} An observable that emits the authenticated user's data.
83
- */
84
- getAuthMe() {
85
- return this.http.get(`${this.url}/auth/me`)
86
- .pipe(map(({ data }) => data));
87
- }
88
- /**
89
- * Fetches the authenticated user's details from the server.
90
- *
91
- * @param token The JWT token used for authorization.
92
- * @return An Observable that emits the user's details encapsulated in a MeOut object.
93
- */
94
- getOtherMe(token) {
95
- return this.http.get(`${this.url}/auth/me`, {
96
- headers: {
97
- Authorization: `Bearer ${token}`
98
- }
99
- }).pipe(map(({ data }) => data));
100
- }
101
- /**
102
- * Fetches a user by their unique ID.
103
- *
104
- * @param {number} id - The unique identifier of the user to be fetched.
105
- * @return {Observable<GetUserOut>} An observable containing the user information.
106
- */
107
- getUser(id) {
108
- return this.http.get(`${this.url}/users/${id}`)
109
- .pipe(map(({ data }) => data));
110
- }
111
- /**
112
- * Fetches a list of users from the server based on the specified query parameters.
113
- *
114
- * @param {QueryParams} params - The query parameters to filter the list of users.
115
- * @return {Observable<GetUsersOut>} An observable that emits the list of users retrieved from the server.
116
- */
117
- getUsers(params) {
118
- return this.http.get(`${this.url}/users`, { params })
119
- .pipe(map(({ data }) => data));
120
- }
121
- /**
122
- * Updates the information of a specified user on the server.
123
- *
124
- * @param {Object} params - The parameter object.
125
- * @param {Object} params.user - The user object containing updated data.
126
- * @param {string} params.user.id - The unique identifier of the user to be updated.
127
- *
128
- * @return {void} This method does not return a value.
129
- */
130
- putUsers({ user }) {
131
- return this.http.put(`${this.url}/users/${user.id}`, user)
132
- .pipe(map(({ data }) => data));
133
- }
134
- /**
135
- * Changes the language for the authenticated user.
136
- *
137
- * @param {Object} params - The input parameters for changing the language.
138
- * @param {string} params.languageId - The ID of the new language to be set.
139
- * @return {Observable<ApiSuccess<AuthMeOut>>} An observable that emits the result of the language change request.
140
- */
141
- putChangeLanguage({ languageId }) {
142
- return this.http.put(`${this.url}/auth/me`, {
143
- language_id: languageId
144
- }).pipe(map(({ data }) => data));
145
- }
146
- /**
147
- * Retrieves a list of roles with their permissions.
148
- *
149
- * @param {QueryParams} params - The query parameters to filter the roles.
150
- * @returns {Observable<RoleIn[]>} An observable that emits an array of role permissions.
151
- */
152
- getRoles(params) {
153
- return this.http.get(`${this.url}/roles`, { params })
154
- .pipe(map(({ data }) => data));
155
- }
156
- /**
157
- * Retrieves roles by the specified ID.
158
- *
159
- * @param id - The ID of the role to retrieve.
160
- * @returns An Observable that emits the role data.
161
- */
162
- getRole(id) {
163
- return this.http.get(`${this.url}/roles/${id}`)
164
- .pipe(map(({ data }) => data));
165
- }
166
- /**
167
- * Creates a new role with the specified permissions.
168
- *
169
- * @param {RoleIn} body - The permissions and details for the new role.
170
- * @returns {Observable<RoleOut>} An observable containing the created role's permissions.
171
- */
172
- postRole(body) {
173
- return this.http.post(`${this.url}/roles`, body)
174
- .pipe(map(({ data }) => data));
175
- }
176
- /**
177
- * Updates the permissions of a specific role.
178
- *
179
- * @param id - The unique identifier of the role to update.
180
- * @param body - The new permissions to assign to the role.
181
- * @returns An Observable that emits the updated module permissions.
182
- */
183
- putRole(id, body) {
184
- return this.http.put(`${this.url}/roles/${id}`, body)
185
- .pipe(map(({ data }) => data));
186
- }
187
- /**
188
- * Deletes the permissions associated with a specific role.
189
- *
190
- * @param {number} id - The unique identifier of the role whose permissions are to be deleted.
191
- * @returns {Observable<{}>} An observable that emits the result of the delete operation.
192
- */
193
- deleteRole(id) {
194
- return this.http.delete(`${this.url}/roles/${id}`)
195
- .pipe(map(({ data }) => data));
196
- }
197
- /**
198
- * Retrieves the role types from the API.
199
- *
200
- * @param {QueryParams} params - The query parameters to be sent with the request.
201
- * @returns {Observable<RoleTypesOut>} An observable containing the role types output.
202
- */
203
- getRoleTypes(params) {
204
- return this.http.get(`${this.url}/role-types`, { params })
205
- .pipe(map(({ data }) => data));
206
- }
207
- /**
208
- * Retrieves a list of modules and permissions
209
- *
210
- * @param queryParams - The query parameters to filter the modules.
211
- * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.
212
- */
213
- getModules(queryParams) {
214
- return this.http.get(`${this.url}/modules`, {
215
- params: queryParams
216
- }).pipe(map(({ data }) => data));
217
- }
218
- /**
219
- * Retrieves a list of modules and permissions
220
- *
221
- * @param params.token - Custom token for authorization.
222
- * @param params.queryParams - The query parameters to filter the modules.
223
- * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.
224
- */
225
- getModulesByToken(params) {
226
- return this.http.get(`${this.url}/modules`, {
227
- params: params.queryParams,
228
- headers: {
229
- Authorization: `Bearer ${params.token}`
230
- }
231
- }).pipe(map(({ data }) => data));
232
- }
233
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiSecurityService, deps: [{ token: 'env' }, { token: i1.CookieService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
234
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiSecurityService, providedIn: 'root' });
235
- }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiSecurityService, decorators: [{
237
- type: Injectable,
238
- args: [{
239
- providedIn: 'root'
240
- }]
241
- }], ctorParameters: () => [{ type: undefined, decorators: [{
242
- type: Inject,
243
- args: ['env']
244
- }] }, { type: i1.CookieService }, { type: i2.HttpClient }] });
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlY3VyaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktc2VjdXJpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQW9CbEQsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRTlELE9BQU8sRUFBRSxHQUFHLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBOzs7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBQ0E7SUFIVixZQUN5QixZQUF5QixFQUN4QyxNQUFxQixFQUNyQixJQUFnQjtRQUZELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN2QixDQUFDO0lBRUo7Ozs7T0FJRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFBO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBRSxJQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUM7YUFDNUUsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUN2QixHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVB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SUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFFLFdBQXdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXlCLEdBQUcsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFO1lBQ2xFLE1BQU0sRUFBRSxXQUFXO1NBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLENBQUUsTUFHbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRTtZQUNsRSxNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDMUIsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUU7YUFDeEM7U0FDRixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0FqUVUsa0JBQWtCLGtCQUVuQixLQUFLOzRHQUZKLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBBcGlTdWNjZXNzLCBRdWVyeVBhcmFtcyB9IGZyb20gJy4vbW9kZWxzL2FwaS5tb2RlbHMnXHJcbmltcG9ydCB7XHJcbiAgQXV0aExvZ2luSW4sXHJcbiAgQXV0aExvZ2luT3V0LFxyXG4gIEF1dGhNZU91dCxcclxuICBBdXRoVXNlckxvZ2luSW4sXHJcbiAgQ2hhbmdlTGFuZ3VhZ2VJbixcclxuICBHZXRVc2VyT3V0LFxyXG4gIEdldFVzZXJzT3V0LFxyXG4gIE1vZHVsZXNPdXQsXHJcbiAgUHV0VXNlcnNJbixcclxuICBQdXRVc2Vyc091dCxcclxuICBSb2xlSW4sXHJcbiAgUm9sZU91dCxcclxuICBSb2xlc091dCxcclxuICBSb2xlVHlwZXNPdXQsXHJcbiAgU2Vzc2lvbkluLFxyXG4gIFNlc3Npb25PdXRcclxufSBmcm9tICcuL21vZGVscy9hcGktc2VjdXJpdHkudHlwZXMnXHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpU2VjdXJpdHlTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvciAoXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudmlyb25tZW50czogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIGNvb2tpZTogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBBUEkgc2VjdXJpdHkgVVJMIGZyb20gdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgQVBJIHNlY3VyaXR5IFVSTC5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaVNlY3VyaXR5VXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBsb2dpbiBhdXRoZW50aWNhdGlvbiByZXF1ZXN0IGJ5IHNlbmRpbmcgdGhlIGxvZ2luIGRhdGEgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIGVuZHBvaW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtBdXRoTG9naW5Jbn0gYm9keSBUaGUgcGF5bG9hZCBjb250YWluaW5nIGxvZ2luIGNyZWRlbnRpYWxzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QXV0aExvZ2luT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgYXV0aGVudGljYXRpb24gcmVzcG9uc2UgZGF0YS5cclxuICAgKi9cclxuICBwb3N0QXV0aExvZ2luIChib2R5OiBBdXRoTG9naW5Jbik6IE9ic2VydmFibGU8QXV0aExvZ2luT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxBdXRoTG9naW5PdXQ+PihgJHt0aGlzLnVybH0vYXV0aC9sb2dpbmAsIGJvZHkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpLFxyXG4gICAgICAgIHRhcCgoeyBhY2Nlc3NfdG9rZW4gfSkgPT4gdGhpcy5jb29raWUuc2V0KHRoaXMuZW52aXJvbm1lbnRzLmF1dGhDb29raWUsIGFjY2Vzc190b2tlbiwgeyBwYXRoOiAnLycgfSkpXHJcbiAgICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgdGhlIHVzZXIgbG9naW4gcHJvY2VzcyBieSBzZW5kaW5nIHVzZXIgY3JlZGVudGlhbHMgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIGVuZHBvaW50LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtBdXRoVXNlckxvZ2luSW59IGJvZHkgLSBUaGUgcmVxdWVzdCBwYXlsb2FkIGNvbnRhaW5pbmcgdXNlciBsb2dpbiBkZXRhaWxzIHN1Y2ggYXMgdXNlcm5hbWUgYW5kIHBhc3N3b3JkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QXV0aExvZ2luT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIncyBsb2dpbiBkYXRhIHVwb24gc3VjY2Vzc2Z1bCBsb2dpbi5cclxuICAgKi9cclxuICBwb3N0QXV0aFVzZXJMb2dpbiAoYm9keTogQXV0aFVzZXJMb2dpbkluKTogT2JzZXJ2YWJsZTxBdXRoTG9naW5PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPEF1dGhMb2dpbk91dD4+KGAke3RoaXMudXJsfS9hdXRoL3VzZXItbG9naW5gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvZ3Mgb3V0IHRoZSBjdXJyZW50IHVzZXIgYnkgbWFraW5nIGEgUE9TVCByZXF1ZXN0IHRvIHRoZSBsb2dvdXQgZW5kcG9pbnQuXHJcbiAgICpcclxuICAgKiBUaGlzIG1ldGhvZCBkZWxldGVzIGFsbCBjb29raWVzIGFmdGVyIGEgc3VjY2Vzc2Z1bCBsb2dvdXQuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPHt9Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzZXJ2ZXIncyByZXNwb25zZSB0byB0aGUgbG9nb3V0IHJlcXVlc3QuXHJcbiAgICovXHJcbiAgcG9zdEF1dGhMb2dvdXQgKCk6IE9ic2VydmFibGU8e30+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPHt9Pj4oYCR7dGhpcy51cmx9L2F1dGgvbG9nb3V0YCwgbnVsbClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh7IGRhdGEgfSkgPT4gZGF0YSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY29va2llLmRlbGV0ZSh0aGlzLmVudmlyb25tZW50cy5hdXRoQ29va2llLCAnLycpKVxyXG4gICAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IHNlc3Npb24gZm9yIGEgc3BlY2lmaWVkIG1vZGVsLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciBjcmVhdGluZyB0aGUgc2Vzc2lvbi5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLm1vZGVsVHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBtb2RlbC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLm1vZGVsSWQgLSBUaGUgSUQgb2YgdGhlIG1vZGVsLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLnRva2VuXSAtIE9wdGlvbmFsIGF1dGhvcml6YXRpb24gdG9rZW4uXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNlc3Npb25PdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGNyZWF0ZWQgc2Vzc2lvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIHBvc3RTZXNzaW9uICh7XHJcbiAgICBtb2RlbFR5cGUsXHJcbiAgICBtb2RlbElkLFxyXG4gICAgdG9rZW4sXHJcbiAgfTogU2Vzc2lvbkluKTogT2JzZXJ2YWJsZTxTZXNzaW9uT3V0PiB7XHJcbiAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7fSlcclxuXHJcbiAgICBpZiAodG9rZW4pIHsgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYEJlYXJlciAke3Rva2VufWApIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxTZXNzaW9uT3V0Pj4oXHJcbiAgICAgIGAke3RoaXMudXJsfS9zZXNzaW9uc2AsIHtcclxuICAgICAgICBtb2RlbF90eXBlOiBtb2RlbFR5cGUsXHJcbiAgICAgICAgbW9kZWxfaWQ6IG1vZGVsSWQsXHJcbiAgICAgIH0sIHtcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIncyBpbmZvcm1hdGlvbi5cclxuICAgKiBTZW5kcyBhIEdFVCByZXF1ZXN0IHRvIHRoZSBlbmRwb2ludCAnL2F1dGgvbWUnIHRvIHJldHJpZXZlIGluZm9ybWF0aW9uXHJcbiAgICogYWJvdXQgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXIuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEF1dGhNZU91dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgZGF0YS5cclxuICAgKi9cclxuICBnZXRBdXRoTWUgKCk6IE9ic2VydmFibGU8QXV0aE1lT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEF1dGhNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYClcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIncyBkZXRhaWxzIGZyb20gdGhlIHNlcnZlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0b2tlbiBUaGUgSldUIHRva2VuIHVzZWQgZm9yIGF1dGhvcml6YXRpb24uXHJcbiAgICogQHJldHVybiBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHVzZXIncyBkZXRhaWxzIGVuY2Fwc3VsYXRlZCBpbiBhIE1lT3V0IG9iamVjdC5cclxuICAgKi9cclxuICBnZXRPdGhlck1lICh0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdXRoTWVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8QXV0aE1lT3V0Pj4oYCR7dGhpcy51cmx9L2F1dGgvbWVgLCB7XHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YFxyXG4gICAgICB9XHJcbiAgICB9KS5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIHVzZXIgYnkgdGhlaXIgdW5pcXVlIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB1c2VyIHRvIGJlIGZldGNoZWQuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxHZXRVc2VyT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSB1c2VyIGluZm9ybWF0aW9uLlxyXG4gICAqL1xyXG4gIGdldFVzZXIgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEdldFVzZXJPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8R2V0VXNlck91dD4+KGAke3RoaXMudXJsfS91c2Vycy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBhIGxpc3Qgb2YgdXNlcnMgZnJvbSB0aGUgc2VydmVyIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgbGlzdCBvZiB1c2Vycy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEdldFVzZXJzT3V0Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIHVzZXJzIHJldHJpZXZlZCBmcm9tIHRoZSBzZXJ2ZXIuXHJcbiAgICovXHJcbiAgZ2V0VXNlcnMgKHBhcmFtczogUXVlcnlQYXJhbXMpOiBPYnNlcnZhYmxlPEdldFVzZXJzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPEdldFVzZXJzT3V0Pj4oYCR7dGhpcy51cmx9L3VzZXJzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBpbmZvcm1hdGlvbiBvZiBhIHNwZWNpZmllZCB1c2VyIG9uIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gVGhlIHBhcmFtZXRlciBvYmplY3QuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcy51c2VyIC0gVGhlIHVzZXIgb2JqZWN0IGNvbnRhaW5pbmcgdXBkYXRlZCBkYXRhLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMudXNlci5pZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgdXNlciB0byBiZSB1cGRhdGVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH0gVGhpcyBtZXRob2QgZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuXHJcbiAgICovXHJcbiAgcHV0VXNlcnMgKHsgdXNlciB9OiBQdXRVc2Vyc0luKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFB1dFVzZXJzT3V0Pj4oYCR7dGhpcy51cmx9L3VzZXJzLyR7dXNlci5pZH1gLCB1c2VyKVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZXMgdGhlIGxhbmd1YWdlIGZvciB0aGUgYXV0aGVudGljYXRlZCB1c2VyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIFRoZSBpbnB1dCBwYXJhbWV0ZXJzIGZvciBjaGFuZ2luZyB0aGUgbGFuZ3VhZ2UuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5sYW5ndWFnZUlkIC0gVGhlIElEIG9mIHRoZSBuZXcgbGFuZ3VhZ2UgdG8gYmUgc2V0LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8QXBpU3VjY2VzczxBdXRoTWVPdXQ+Pn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSByZXN1bHQgb2YgdGhlIGxhbmd1YWdlIGNoYW5nZSByZXF1ZXN0LlxyXG4gICAqL1xyXG4gIHB1dENoYW5nZUxhbmd1YWdlICh7XHJcbiAgICBsYW5ndWFnZUlkXHJcbiAgfTogQ2hhbmdlTGFuZ3VhZ2VJbik6IE9ic2VydmFibGU8QXV0aE1lT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPEF1dGhNZU91dD4+KGAke3RoaXMudXJsfS9hdXRoL21lYCwge1xyXG4gICAgICBsYW5ndWFnZV9pZDogbGFuZ3VhZ2VJZFxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygcm9sZXMgd2l0aCB0aGVpciBwZXJtaXNzaW9ucy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciB0aGUgcm9sZXMuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Um9sZUluW10+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgYW4gYXJyYXkgb2Ygcm9sZSBwZXJtaXNzaW9ucy5cclxuICAgKi9cclxuICBnZXRSb2xlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Um9sZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Um9sZXNPdXQ+PihgJHt0aGlzLnVybH0vcm9sZXNgLCB7IHBhcmFtcyB9KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyByb2xlcyBieSB0aGUgc3BlY2lmaWVkIElELlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIElEIG9mIHRoZSByb2xlIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcm9sZSBkYXRhLlxyXG4gICAqL1xyXG4gIGdldFJvbGUgKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPFJvbGVPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8Um9sZU91dD4+KGAke3RoaXMudXJsfS9yb2xlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyByb2xlIHdpdGggdGhlIHNwZWNpZmllZCBwZXJtaXNzaW9ucy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7Um9sZUlufSBib2R5IC0gVGhlIHBlcm1pc3Npb25zIGFuZCBkZXRhaWxzIGZvciB0aGUgbmV3IHJvbGUuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8Um9sZU91dD59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgY3JlYXRlZCByb2xlJ3MgcGVybWlzc2lvbnMuXHJcbiAgICovXHJcbiAgcG9zdFJvbGUgKGJvZHk6IFJvbGVJbik6IE9ic2VydmFibGU8Um9sZU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8Um9sZU91dD4+KGAke3RoaXMudXJsfS9yb2xlc2AsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyB0aGUgcGVybWlzc2lvbnMgb2YgYSBzcGVjaWZpYyByb2xlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByb2xlIHRvIHVwZGF0ZS5cclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBuZXcgcGVybWlzc2lvbnMgdG8gYXNzaWduIHRvIHRoZSByb2xlLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgdXBkYXRlZCBtb2R1bGUgcGVybWlzc2lvbnMuXHJcbiAgICovXHJcbiAgcHV0Um9sZSAoaWQ6IG51bWJlciwgYm9keTogUm9sZUluKTogT2JzZXJ2YWJsZTxSb2xlT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxBcGlTdWNjZXNzPFJvbGVPdXQ+PihgJHt0aGlzLnVybH0vcm9sZXMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZXMgdGhlIHBlcm1pc3Npb25zIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvbGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge251bWJlcn0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJvbGUgd2hvc2UgcGVybWlzc2lvbnMgYXJlIHRvIGJlIGRlbGV0ZWQuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8e30+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3VsdCBvZiB0aGUgZGVsZXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBkZWxldGVSb2xlIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTx7fT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGU8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9yb2xlcy8ke2lkfWApXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSByb2xlIHR5cGVzIGZyb20gdGhlIEFQSS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGJlIHNlbnQgd2l0aCB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxSb2xlVHlwZXNPdXQ+fSBBbiBvYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHJvbGUgdHlwZXMgb3V0cHV0LlxyXG4gICAqL1xyXG4gIGdldFJvbGVUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8Um9sZVR5cGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPFJvbGVUeXBlc091dD4+KGAke3RoaXMudXJsfS9yb2xlLXR5cGVzYCwgeyBwYXJhbXMgfSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG1vZHVsZXMgYW5kIHBlcm1pc3Npb25zXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcXVlcnlQYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIG1vZHVsZXMuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxNb2R1bGVzT3V0W10+IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG1vZHVsZXMgYW5kIHBlcm1pc3Npb25zLlxyXG4gICAqL1xyXG4gIGdldE1vZHVsZXMgKHF1ZXJ5UGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8TW9kdWxlc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxNb2R1bGVzT3V0Pj4oYCR7dGhpcy51cmx9L21vZHVsZXNgLCB7XHJcbiAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIG1vZHVsZXMgYW5kIHBlcm1pc3Npb25zXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1zLnRva2VuIC0gQ3VzdG9tIHRva2VuIGZvciBhdXRob3JpemF0aW9uLlxyXG4gICAqIEBwYXJhbSBwYXJhbXMucXVlcnlQYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIG1vZHVsZXMuXHJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxNb2R1bGVzT3V0W10+IC0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGFuIGFycmF5IG9mIG1vZHVsZXMgYW5kIHBlcm1pc3Npb25zLlxyXG4gICAqL1xyXG4gIGdldE1vZHVsZXNCeVRva2VuIChwYXJhbXM6IHtcclxuICAgIHRva2VuOiBzdHJpbmcsXHJcbiAgICBxdWVyeVBhcmFtczogUXVlcnlQYXJhbXNcclxuICB9KTogT2JzZXJ2YWJsZTxNb2R1bGVzT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcGlTdWNjZXNzPE1vZHVsZXNPdXQ+PihgJHt0aGlzLnVybH0vbW9kdWxlc2AsIHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMucXVlcnlQYXJhbXMsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cGFyYW1zLnRva2VufWBcclxuICAgICAgfVxyXG4gICAgfSkucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19
@@ -1,103 +0,0 @@
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 ApiServicesService {
6
- environments;
7
- http;
8
- constructor(environments, http) {
9
- this.environments = environments;
10
- this.http = http;
11
- }
12
- /**
13
- * Retrieves the URL for the services API from the environment settings.
14
- * If the URL is not defined, an empty string is returned.
15
- *
16
- * @return {string} The API Services URL or an empty string if not defined.
17
- */
18
- get url() {
19
- return this.environments.apiServicesUrl ?? '';
20
- }
21
- /**
22
- * Retrieves service areas based on the provided query parameters.
23
- *
24
- * @param {ServiceAreaIn} body - The query parameters used to filter and retrieve service areas.
25
- * @return {Observable<NotificationsOut>} An observable that emits the fetched service areas.
26
- */
27
- postServiceAreas(body) {
28
- return this.http.post(`${this.url}/service-areas`, body)
29
- .pipe(map(({ data }) => data));
30
- }
31
- /**
32
- * Validate facility values based on the provided parameter.
33
- *
34
- * @param {ValidateFacilityIn} body - The facility data to be sent in the request body
35
- * @return {Observable<ValidateFacilityOut>} An observable emitting the response containing the facility validated output data.
36
- */
37
- postValidateFacility(body) {
38
- return this.http.post(`${this.url}/facilities`, body)
39
- .pipe(map(({ data }) => data));
40
- }
41
- /**
42
- * Create an email resource.
43
- *
44
- * @param {EmailErrorIn} body - The email data to be sent in the request body
45
- * @return {Observable<{}>} An observable emitting the response data.
46
- */
47
- postEmailError(body) {
48
- return this.http.post(`${this.url}/emails/error`, body)
49
- .pipe(map(({ data }) => data));
50
- }
51
- /**
52
- * Sends a promotion request to the server using the provided body.
53
- *
54
- * @param {PromotionIn} body - The promotion data to be sent in the request body.
55
- * @return {Observable<PromotionOut>} An observable emitting the response containing the promotion output data.
56
- */
57
- postPromotion(body) {
58
- return this.http.post(`${this.url}/promotions`, body)
59
- .pipe(map(({ data }) => data));
60
- }
61
- /**
62
- * Validate NIP account value based on the provided parameter.
63
- *
64
- * @param {ValidateNIPIn} body - The NIP account data to be sent in the request body
65
- * @return {Observable<ValidateNIPOut>} An observable emitting the response containing the NIP account validated data.
66
- */
67
- postValidateNIP(body) {
68
- return this.http.post(`${this.url}/accounts/nip`, body)
69
- .pipe(map(({ data }) => data));
70
- }
71
- /**
72
- * Validate BR Identification value based on the provided parameter.
73
- *
74
- * @param {ValidateIdentificationBRIn} body - The BR Identification data to be sent in the request body
75
- * @return {Observable<ValidateIdentificationBROut>} An observable emitting the response containing the BR Identification validated data.
76
- */
77
- postValidateIdentificationBR(body) {
78
- return this.http.post(`${this.url}/identifications/br-validation`, body)
79
- .pipe(map(({ data }) => data));
80
- }
81
- /**
82
- * Fetches postal location details based on the provided query parameters.
83
- * @param {GetPostalLocationsIn} queryParams - The query parameters to filter and fetch postal location data.
84
- * @return {Observable<PostalLocationsOut>} An observable that emits the postal location details.
85
- */
86
- getPostalLocations(queryParams) {
87
- return this.http.get(`${this.url}/postal-locations`, {
88
- params: queryParams
89
- }).pipe(map(({ data }) => data));
90
- }
91
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiServicesService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
92
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiServicesService, providedIn: 'root' });
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiServicesService, decorators: [{
95
- type: Injectable,
96
- args: [{
97
- providedIn: 'root'
98
- }]
99
- }], ctorParameters: () => [{ type: undefined, decorators: [{
100
- type: Inject,
101
- args: ['env']
102
- }] }, { type: i1.HttpClient }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNlcnZpY2VzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHBlcnRlYW0tbXgvbmd4LXNlcnZpY2VzL3NyYy9saWIvYXBpcy9hcGktc2VydmljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUlsRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFBOzs7QUFtQnRDLE1BQU0sT0FBTyxrQkFBa0I7SUFFSjtJQUNmO0lBRlYsWUFDeUIsWUFBeUIsRUFDeEMsSUFBZ0I7UUFERCxpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN4QyxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3ZCLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFBO0lBQy9DLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFFLElBQW1CO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQThCLEdBQUcsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDO2FBQ2xGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLElBQXdCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcsYUFBYSxFQUFFLElBQUksQ0FBQzthQUNuRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUUsSUFBa0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBaUIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUUsSUFBSSxDQUFDO2FBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBRSxJQUFpQjtRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEyQixHQUFHLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUM7YUFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZUFBZSxDQUFFLElBQW1CO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQTZCLEdBQUcsSUFBSSxDQUFDLEdBQUcsZUFBZSxFQUFFLElBQUksQ0FBQzthQUNoRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCw0QkFBNEIsQ0FBRSxJQUFnQztRQUM1RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUEwQyxHQUFHLElBQUksQ0FBQyxHQUFHLGdDQUFnQyxFQUFFLElBQUksQ0FBQzthQUM5RyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFFLFdBQWlDO1FBQ25ELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsbUJBQW1CLEVBQUU7WUFDbkYsTUFBTSxFQUFFLFdBQVc7U0FDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7d0dBM0ZVLGtCQUFrQixrQkFFbkIsS0FBSzs0R0FGSixrQkFBa0IsY0FIakIsTUFBTTs7NEZBR1Asa0JBQWtCO2tCQUo5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBSUksTUFBTTsyQkFBQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9uZ3gtc2VydmljZXMubW9kZWxzJ1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEFwaVN1Y2Nlc3MgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQge1xyXG4gIFZhbGlkYXRlRmFjaWxpdHlJbixcclxuICBWYWxpZGF0ZUZhY2lsaXR5T3V0LFxyXG4gIFNlcnZpY2VBcmVhc091dCxcclxuICBFbWFpbEVycm9ySW4sXHJcbiAgUHJvbW90aW9uSW4sXHJcbiAgUHJvbW90aW9uT3V0LFxyXG4gIFZhbGlkYXRlTklQT3V0LFxyXG4gIFZhbGlkYXRlTklQSW4sXHJcbiAgVmFsaWRhdGVJZGVudGlmaWNhdGlvbkJST3V0LFxyXG4gIFZhbGlkYXRlSWRlbnRpZmljYXRpb25CUkluLCBTZXJ2aWNlQXJlYUluLCBQb3N0YWxMb2NhdGlvbnNPdXQsIEdldFBvc3RhbExvY2F0aW9uc0luXHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLXNlcnZpY2VzLnR5cGVzJ1xyXG5pbXBvcnQgeyBNb2R1bGVzT3V0IH0gZnJvbSAnLi9tb2RlbHMvYXBpLXNlY3VyaXR5LnR5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2VzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIFVSTCBmb3IgdGhlIHNlcnZpY2VzIEFQSSBmcm9tIHRoZSBlbnZpcm9ubWVudCBzZXR0aW5ncy5cclxuICAgKiBJZiB0aGUgVVJMIGlzIG5vdCBkZWZpbmVkLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBBUEkgU2VydmljZXMgVVJMIG9yIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgZGVmaW5lZC5cclxuICAgKi9cclxuICBnZXQgdXJsICgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZW52aXJvbm1lbnRzLmFwaVNlcnZpY2VzVXJsID8/ICcnXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgc2VydmljZSBhcmVhcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7U2VydmljZUFyZWFJbn0gYm9keSAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHVzZWQgdG8gZmlsdGVyIGFuZCByZXRyaWV2ZSBzZXJ2aWNlIGFyZWFzLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8Tm90aWZpY2F0aW9uc091dD59IEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgZmV0Y2hlZCBzZXJ2aWNlIGFyZWFzLlxyXG4gICAqL1xyXG4gIHBvc3RTZXJ2aWNlQXJlYXMgKGJvZHk6IFNlcnZpY2VBcmVhSW4pOiBPYnNlcnZhYmxlPFNlcnZpY2VBcmVhc091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8U2VydmljZUFyZWFzT3V0Pj4oYCR7dGhpcy51cmx9L3NlcnZpY2UtYXJlYXNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlIGZhY2lsaXR5IHZhbHVlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWYWxpZGF0ZUZhY2lsaXR5SW59IGJvZHkgLSBUaGUgZmFjaWxpdHkgZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHlcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFZhbGlkYXRlRmFjaWxpdHlPdXQ+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBjb250YWluaW5nIHRoZSBmYWNpbGl0eSB2YWxpZGF0ZWQgb3V0cHV0IGRhdGEuXHJcbiAgICovXHJcbiAgcG9zdFZhbGlkYXRlRmFjaWxpdHkgKGJvZHk6IFZhbGlkYXRlRmFjaWxpdHlJbik6IE9ic2VydmFibGU8VmFsaWRhdGVGYWNpbGl0eU91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8VmFsaWRhdGVGYWNpbGl0eU91dD4+KGAke3RoaXMudXJsfS9mYWNpbGl0aWVzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYW4gZW1haWwgcmVzb3VyY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0VtYWlsRXJyb3JJbn0gYm9keSAtIFRoZSBlbWFpbCBkYXRhIHRvIGJlIHNlbnQgaW4gdGhlIHJlcXVlc3QgYm9keVxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8e30+fSBBbiBvYnNlcnZhYmxlIGVtaXR0aW5nIHRoZSByZXNwb25zZSBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RFbWFpbEVycm9yIChib2R5OiBFbWFpbEVycm9ySW4pOiBPYnNlcnZhYmxlPHt9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2Vzczx7fT4+KGAke3RoaXMudXJsfS9lbWFpbHMvZXJyb3JgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGEgcHJvbW90aW9uIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB1c2luZyB0aGUgcHJvdmlkZWQgYm9keS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7UHJvbW90aW9uSW59IGJvZHkgLSBUaGUgcHJvbW90aW9uIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5LlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8UHJvbW90aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzcG9uc2UgY29udGFpbmluZyB0aGUgcHJvbW90aW9uIG91dHB1dCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RQcm9tb3Rpb24gKGJvZHk6IFByb21vdGlvbkluKTogT2JzZXJ2YWJsZTxQcm9tb3Rpb25PdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFByb21vdGlvbk91dD4+KGAke3RoaXMudXJsfS9wcm9tb3Rpb25zYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZSBOSVAgYWNjb3VudCB2YWx1ZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVyLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWYWxpZGF0ZU5JUElufSBib2R5IC0gVGhlIE5JUCBhY2NvdW50IGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgcmVxdWVzdCBib2R5XHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxWYWxpZGF0ZU5JUE91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIE5JUCBhY2NvdW50IHZhbGlkYXRlZCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RWYWxpZGF0ZU5JUCAoYm9keTogVmFsaWRhdGVOSVBJbik6IE9ic2VydmFibGU8VmFsaWRhdGVOSVBPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFZhbGlkYXRlTklQT3V0Pj4oYCR7dGhpcy51cmx9L2FjY291bnRzL25pcGAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGUgQlIgSWRlbnRpZmljYXRpb24gdmFsdWUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VmFsaWRhdGVJZGVudGlmaWNhdGlvbkJSSW59IGJvZHkgLSBUaGUgQlIgSWRlbnRpZmljYXRpb24gZGF0YSB0byBiZSBzZW50IGluIHRoZSByZXF1ZXN0IGJvZHlcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFZhbGlkYXRlSWRlbnRpZmljYXRpb25CUk91dD59IEFuIG9ic2VydmFibGUgZW1pdHRpbmcgdGhlIHJlc3BvbnNlIGNvbnRhaW5pbmcgdGhlIEJSIElkZW50aWZpY2F0aW9uIHZhbGlkYXRlZCBkYXRhLlxyXG4gICAqL1xyXG4gIHBvc3RWYWxpZGF0ZUlkZW50aWZpY2F0aW9uQlIgKGJvZHk6IFZhbGlkYXRlSWRlbnRpZmljYXRpb25CUkluKTogT2JzZXJ2YWJsZTxWYWxpZGF0ZUlkZW50aWZpY2F0aW9uQlJPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlTdWNjZXNzPFZhbGlkYXRlSWRlbnRpZmljYXRpb25CUk91dD4+KGAke3RoaXMudXJsfS9pZGVudGlmaWNhdGlvbnMvYnItdmFsaWRhdGlvbmAsIGJvZHkpXHJcbiAgICAgIC5waXBlKG1hcCgoeyBkYXRhIH0pID0+IGRhdGEpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBwb3N0YWwgbG9jYXRpb24gZGV0YWlscyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0ge0dldFBvc3RhbExvY2F0aW9uc0lufSBxdWVyeVBhcmFtcyAtIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIHRvIGZpbHRlciBhbmQgZmV0Y2ggcG9zdGFsIGxvY2F0aW9uIGRhdGEuXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBvc3RhbCBsb2NhdGlvbiBkZXRhaWxzLlxyXG4gICAqL1xyXG4gIGdldFBvc3RhbExvY2F0aW9ucyAocXVlcnlQYXJhbXM6IEdldFBvc3RhbExvY2F0aW9uc0luKTogT2JzZXJ2YWJsZTxQb3N0YWxMb2NhdGlvbnNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8UG9zdGFsTG9jYXRpb25zT3V0Pj4oYCR7dGhpcy51cmx9L3Bvc3RhbC1sb2NhdGlvbnNgLCB7XHJcbiAgICAgIHBhcmFtczogcXVlcnlQYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,116 +0,0 @@
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 ApiShipmentsService {
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.apiShipmentUrl ?? '';
19
- }
20
- /**
21
- * Retrieves the parameter values based on the provided parameter names.
22
- *
23
- * @param {ValidateAccountIn} body - An object of parameter names for which the values need to be fetched.
24
- * @return {Observable<ValidateAccountIn>} An observable that emits the fetched parameter values
25
- * @param body
26
- */
27
- postValidateAccount(body) {
28
- return this.http.post(`${this.url}/accounts`, body)
29
- .pipe(map(({ data }) => data));
30
- }
31
- /**
32
- * Sends a POST request to the shipments manifest endpoint with the provided body.
33
- *
34
- * @param body - The request payload of type `ManifestMultipleIn`.
35
- * @returns An observable that emits the response data of type `ManifestMultipleOut`.
36
- */
37
- postManifestMultiple(body) {
38
- return this.http.post(`${this.url}/shipments/manifest`, body)
39
- .pipe(map(({ data }) => data));
40
- }
41
- /**
42
- * Validates and obtains the number of shipments allowed by an employee customer
43
- *
44
- * @return {Observable<ShipmentEmployeeCustomer>} An observable containing the shipments allowed by an employee
45
- * @param id
46
- */
47
- getEmployeeCustomer(id) {
48
- return this.http.get(`${this.url}/shipments/employee-customer/${id}`).pipe(map(({ data }) => data));
49
- }
50
- /**
51
- * Cancels a specific shipment by providing its ID and a reason for cancellation.
52
- * Sends a PATCH request to update the shipment's cancellation status with the specified reason.
53
- *
54
- * @param {Object} param0 - The input object containing shipment cancellation details.
55
- * @param {string} param0.shipmentId - The unique identifier of the shipment to be canceled.
56
- * @param {string} param0.reasonId - The unique identifier of the reason for cancellation.
57
- * @return {Observable<ShipmentCancellationOut>} An observable emitting the result of the cancellation operation.
58
- */
59
- patchShipmentsCancellation({ shipmentId, reasonId }) {
60
- return this.http.patch(`${this.url}/shipments/${shipmentId}/cancellation`, {
61
- cancellationReasonId: reasonId
62
- }).pipe(map(({ data }) => data));
63
- }
64
- /**
65
- * Fetches a list of export types based on the provided query parameters.
66
- *
67
- * @param {QueryParams} params - The query parameters to filter the export types.
68
- * @return {Observable<ExportTypesOut>} An observable containing the list of export types.
69
- */
70
- getExportTypes(params) {
71
- return this.http.get(`${this.url}/export-types`, {
72
- params
73
- }).pipe(map(({ data }) => data));
74
- }
75
- /**
76
- * Retrieves a paginated list of embassy shipments
77
- * @param {QueryParams} params - Query parameters for filtering and pagination
78
- * @returns {Observable<EmbassyShipmentsOut>} Observable containing the list of shipments and pagination metadata
79
- */
80
- getEmbassyShipments(params) {
81
- return this.http.get(`${this.url}/embassy-shipments`, {
82
- params
83
- }).pipe(map(({ data }) => data));
84
- }
85
- /**
86
- * Creates a new embassy shipment
87
- * @param {EmbassyShipmentIn} body - The shipment data to create
88
- * @returns {Observable<EmbassyShipmentOut>} Observable containing the created shipment with its assigned ID
89
- */
90
- postEmbassyShipments(body) {
91
- return this.http.post(`${this.url}/embassy-shipments`, body)
92
- .pipe(map(({ data }) => data));
93
- }
94
- /**
95
- * Updates an existing embassy shipment
96
- * @param {number} id - The unique identifier of the shipment to update
97
- * @param {EmbassyShipmentIn} body - The updated shipment data
98
- * @returns {Observable<EmbassyShipmentOut>} Observable containing the updated shipment
99
- */
100
- putEmbassyShipments(id, body) {
101
- return this.http.put(`${this.url}/embassy-shipments/${id}`, body)
102
- .pipe(map(({ data }) => data));
103
- }
104
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiShipmentsService, deps: [{ token: 'env' }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
105
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiShipmentsService, providedIn: 'root' });
106
- }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApiShipmentsService, decorators: [{
108
- type: Injectable,
109
- args: [{
110
- providedIn: 'root'
111
- }]
112
- }], ctorParameters: () => [{ type: undefined, decorators: [{
113
- type: Inject,
114
- args: ['env']
115
- }] }, { type: i1.HttpClient }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXNoaXBtZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXhwZXJ0ZWFtLW14L25neC1zZXJ2aWNlcy9zcmMvbGliL2FwaXMvYXBpLXNoaXBtZW50cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUE7OztBQW1CdEMsTUFBTSxPQUFPLG1CQUFtQjtJQUVMO0lBQ2Y7SUFGVixZQUN5QixZQUF5QixFQUN4QyxJQUFnQjtRQURELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQVk7SUFDdEIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQTtJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsbUJBQW1CLENBQUUsSUFBdUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBaUMsR0FBRyxJQUFJLENBQUMsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDO2FBQ2hGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFFLElBQXdCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcscUJBQXFCLEVBQUUsSUFBSSxDQUFDO2FBQzNGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFFLEVBQVU7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUMsR0FBRyxJQUFJLENBQUMsR0FBRyxnQ0FBZ0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUMzSSxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCwwQkFBMEIsQ0FBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQTBCO1FBQzFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQXNDLEdBQUcsSUFBSSxDQUFDLEdBQUcsY0FBYyxVQUFVLGVBQWUsRUFBRTtZQUM5RyxvQkFBb0IsRUFBRSxRQUFRO1NBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUUsTUFBbUI7UUFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBNkIsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLEVBQUU7WUFDM0UsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFFLE1BQW1CO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtDLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLEVBQUU7WUFDckYsTUFBTTtTQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFFLElBQXVCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWlDLEdBQUcsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO2FBQ3pGLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFFLEVBQVUsRUFBRSxJQUF1QjtRQUN0RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFpQyxHQUFHLElBQUksQ0FBQyxHQUFHLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUM7YUFDOUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQzt3R0F6R1UsbUJBQW1CLGtCQUVwQixLQUFLOzRHQUZKLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFHSSxNQUFNOzJCQUFDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vbmd4LXNlcnZpY2VzLm1vZGVscydcclxuaW1wb3J0IHtcclxuICBFbWJhc3N5U2hpcG1lbnRJbiwgRW1iYXNzeVNoaXBtZW50T3V0LFxyXG4gIEVtYmFzc3lTaGlwbWVudHNPdXQsXHJcbiAgRXhwb3J0VHlwZXNPdXQsXHJcbiAgTWFuaWZlc3RNdWx0aXBsZUluLFxyXG4gIE1hbmlmZXN0TXVsdGlwbGVPdXQsXHJcbiAgU2hpcG1lbnRDYW5jZWxsYXRpb25JbixcclxuICBTaGlwbWVudENhbmNlbGxhdGlvbk91dCxcclxuICBTaGlwbWVudEVtcGxveWVlQ3VzdG9tZXIsXHJcbiAgVmFsaWRhdGVBY2NvdW50SW4sXHJcbiAgVmFsaWRhdGVBY2NvdW50T3V0XHJcbn0gZnJvbSAnLi9tb2RlbHMvYXBpLXNoaXBtZW50cy50eXBlcydcclxuaW1wb3J0IHsgQXBpU3VjY2VzcywgUXVlcnlQYXJhbXMgfSBmcm9tICcuL21vZGVscy9hcGkubW9kZWxzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpU2hpcG1lbnRzU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IgKFxyXG4gICAgQEluamVjdCgnZW52JykgcHJpdmF0ZSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50XHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBVUkwgZm9yIHRoZSBzaGlwbWVudHMgQVBJIGZyb20gdGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb25zLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgVVJMIG9mIHRoZSBzaGlwbWVudHMgQVBJLlxyXG4gICAqL1xyXG4gIGdldCB1cmwgKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5lbnZpcm9ubWVudHMuYXBpU2hpcG1lbnRVcmwgPz8gJydcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgcGFyYW1ldGVyIHZhbHVlcyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGFyYW1ldGVyIG5hbWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWYWxpZGF0ZUFjY291bnRJbn0gYm9keSAtIEFuIG9iamVjdCBvZiBwYXJhbWV0ZXIgbmFtZXMgZm9yIHdoaWNoIHRoZSB2YWx1ZXMgbmVlZCB0byBiZSBmZXRjaGVkLlxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8VmFsaWRhdGVBY2NvdW50SW4+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGZldGNoZWQgcGFyYW1ldGVyIHZhbHVlc1xyXG4gICAqIEBwYXJhbSBib2R5XHJcbiAgICovXHJcbiAgcG9zdFZhbGlkYXRlQWNjb3VudCAoYm9keTogVmFsaWRhdGVBY2NvdW50SW4pOiBPYnNlcnZhYmxlPFZhbGlkYXRlQWNjb3VudE91dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8VmFsaWRhdGVBY2NvdW50T3V0Pj4oYCR7dGhpcy51cmx9L2FjY291bnRzYCwgYm9keSlcclxuICAgICAgLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc2hpcG1lbnRzIG1hbmlmZXN0IGVuZHBvaW50IHdpdGggdGhlIHByb3ZpZGVkIGJvZHkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSByZXF1ZXN0IHBheWxvYWQgb2YgdHlwZSBgTWFuaWZlc3RNdWx0aXBsZUluYC5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHJlc3BvbnNlIGRhdGEgb2YgdHlwZSBgTWFuaWZlc3RNdWx0aXBsZU91dGAuXHJcbiAgICovXHJcbiAgcG9zdE1hbmlmZXN0TXVsdGlwbGUgKGJvZHk6IE1hbmlmZXN0TXVsdGlwbGVJbikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVN1Y2Nlc3M8TWFuaWZlc3RNdWx0aXBsZU91dD4+KGAke3RoaXMudXJsfS9zaGlwbWVudHMvbWFuaWZlc3RgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlcyBhbmQgb2J0YWlucyB0aGUgbnVtYmVyIG9mIHNoaXBtZW50cyBhbGxvd2VkIGJ5IGFuIGVtcGxveWVlIGN1c3RvbWVyXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50RW1wbG95ZWVDdXN0b21lcj59IEFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgc2hpcG1lbnRzIGFsbG93ZWQgYnkgYW4gZW1wbG95ZWVcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICBnZXRFbXBsb3llZUN1c3RvbWVyIChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxTaGlwbWVudEVtcGxveWVlQ3VzdG9tZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8U2hpcG1lbnRFbXBsb3llZUN1c3RvbWVyPj4oYCR7dGhpcy51cmx9L3NoaXBtZW50cy9lbXBsb3llZS1jdXN0b21lci8ke2lkfWApLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWxzIGEgc3BlY2lmaWMgc2hpcG1lbnQgYnkgcHJvdmlkaW5nIGl0cyBJRCBhbmQgYSByZWFzb24gZm9yIGNhbmNlbGxhdGlvbi5cclxuICAgKiBTZW5kcyBhIFBBVENIIHJlcXVlc3QgdG8gdXBkYXRlIHRoZSBzaGlwbWVudCdzIGNhbmNlbGxhdGlvbiBzdGF0dXMgd2l0aCB0aGUgc3BlY2lmaWVkIHJlYXNvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbTAgLSBUaGUgaW5wdXQgb2JqZWN0IGNvbnRhaW5pbmcgc2hpcG1lbnQgY2FuY2VsbGF0aW9uIGRldGFpbHMuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtMC5zaGlwbWVudElkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBzaGlwbWVudCB0byBiZSBjYW5jZWxlZC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW0wLnJlYXNvbklkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZWFzb24gZm9yIGNhbmNlbGxhdGlvbi5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPFNoaXBtZW50Q2FuY2VsbGF0aW9uT3V0Pn0gQW4gb2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgcmVzdWx0IG9mIHRoZSBjYW5jZWxsYXRpb24gb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIHBhdGNoU2hpcG1lbnRzQ2FuY2VsbGF0aW9uICh7IHNoaXBtZW50SWQsIHJlYXNvbklkIH06IFNoaXBtZW50Q2FuY2VsbGF0aW9uSW4pOiBPYnNlcnZhYmxlPFNoaXBtZW50Q2FuY2VsbGF0aW9uT3V0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPEFwaVN1Y2Nlc3M8U2hpcG1lbnRDYW5jZWxsYXRpb25PdXQ+PihgJHt0aGlzLnVybH0vc2hpcG1lbnRzLyR7c2hpcG1lbnRJZH0vY2FuY2VsbGF0aW9uYCwge1xyXG4gICAgICBjYW5jZWxsYXRpb25SZWFzb25JZDogcmVhc29uSWRcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaGVzIGEgbGlzdCBvZiBleHBvcnQgdHlwZXMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1F1ZXJ5UGFyYW1zfSBwYXJhbXMgLSBUaGUgcXVlcnkgcGFyYW1ldGVycyB0byBmaWx0ZXIgdGhlIGV4cG9ydCB0eXBlcy5cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEV4cG9ydFR5cGVzT3V0Pn0gQW4gb2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBsaXN0IG9mIGV4cG9ydCB0eXBlcy5cclxuICAgKi9cclxuICBnZXRFeHBvcnRUeXBlcyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RXhwb3J0VHlwZXNPdXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVN1Y2Nlc3M8RXhwb3J0VHlwZXNPdXQ+PihgJHt0aGlzLnVybH0vZXhwb3J0LXR5cGVzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBwYWdpbmF0ZWQgbGlzdCBvZiBlbWJhc3N5IHNoaXBtZW50c1xyXG4gICAqIEBwYXJhbSB7UXVlcnlQYXJhbXN9IHBhcmFtcyAtIFF1ZXJ5IHBhcmFtZXRlcnMgZm9yIGZpbHRlcmluZyBhbmQgcGFnaW5hdGlvblxyXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPEVtYmFzc3lTaGlwbWVudHNPdXQ+fSBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2Ygc2hpcG1lbnRzIGFuZCBwYWdpbmF0aW9uIG1ldGFkYXRhXHJcbiAgICovXHJcbiAgZ2V0RW1iYXNzeVNoaXBtZW50cyAocGFyYW1zOiBRdWVyeVBhcmFtcyk6IE9ic2VydmFibGU8RW1iYXNzeVNoaXBtZW50c091dD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpU3VjY2VzczxFbWJhc3N5U2hpcG1lbnRzT3V0Pj4oYCR7dGhpcy51cmx9L2VtYmFzc3ktc2hpcG1lbnRzYCwge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pLnBpcGUobWFwKCh7IGRhdGEgfSkgPT4gZGF0YSkpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGVtYmFzc3kgc2hpcG1lbnRcclxuICAgKiBAcGFyYW0ge0VtYmFzc3lTaGlwbWVudElufSBib2R5IC0gVGhlIHNoaXBtZW50IGRhdGEgdG8gY3JlYXRlXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8RW1iYXNzeVNoaXBtZW50T3V0Pn0gT2JzZXJ2YWJsZSBjb250YWluaW5nIHRoZSBjcmVhdGVkIHNoaXBtZW50IHdpdGggaXRzIGFzc2lnbmVkIElEXHJcbiAgICovXHJcbiAgcG9zdEVtYmFzc3lTaGlwbWVudHMgKGJvZHk6IEVtYmFzc3lTaGlwbWVudEluKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpU3VjY2VzczxFbWJhc3N5U2hpcG1lbnRPdXQ+PihgJHt0aGlzLnVybH0vZW1iYXNzeS1zaGlwbWVudHNgLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZXMgYW4gZXhpc3RpbmcgZW1iYXNzeSBzaGlwbWVudFxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgc2hpcG1lbnQgdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIHtFbWJhc3N5U2hpcG1lbnRJbn0gYm9keSAtIFRoZSB1cGRhdGVkIHNoaXBtZW50IGRhdGFcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxFbWJhc3N5U2hpcG1lbnRPdXQ+fSBPYnNlcnZhYmxlIGNvbnRhaW5pbmcgdGhlIHVwZGF0ZWQgc2hpcG1lbnRcclxuICAgKi9cclxuICBwdXRFbWJhc3N5U2hpcG1lbnRzIChpZDogbnVtYmVyLCBib2R5OiBFbWJhc3N5U2hpcG1lbnRJbikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpU3VjY2VzczxFbWJhc3N5U2hpcG1lbnRPdXQ+PihgJHt0aGlzLnVybH0vZW1iYXNzeS1zaGlwbWVudHMvJHtpZH1gLCBib2R5KVxyXG4gICAgICAucGlwZShtYXAoKHsgZGF0YSB9KSA9PiBkYXRhKSlcclxuICB9XHJcbn1cclxuIl19