@regulaforensics/facesdk-webclient 5.1.1 → 5.2.0

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 (253) hide show
  1. package/.github/workflows/run-smoke-test.yml +0 -3
  2. package/.github/workflows/trivy-scan.yaml +24 -0
  3. package/dist/cjs-es5/api/diagnostics-api.js +199 -0
  4. package/dist/cjs-es5/api/group-api.js +60 -60
  5. package/dist/cjs-es5/api/liveness20-api.js +5 -5
  6. package/dist/cjs-es5/api/matching-api.js +21 -21
  7. package/dist/cjs-es5/api/person-api.js +96 -189
  8. package/dist/cjs-es5/api/search-api.js +10 -10
  9. package/dist/cjs-es5/api.js +3 -2
  10. package/dist/cjs-es5/base.js +1 -1
  11. package/dist/cjs-es5/common.js +1 -1
  12. package/dist/cjs-es5/configuration.js +1 -1
  13. package/dist/cjs-es5/ext/person-api.js +1 -4
  14. package/dist/cjs-es5/models/crop.js +1 -1
  15. package/dist/cjs-es5/models/detect-request-attributes.js +16 -0
  16. package/dist/cjs-es5/models/detect-request.js +1 -1
  17. package/dist/cjs-es5/models/detect-response-all-of.js +1 -1
  18. package/dist/cjs-es5/models/detect-response.js +1 -1
  19. package/dist/cjs-es5/models/detect-result.js +1 -1
  20. package/dist/cjs-es5/models/detection-face.js +1 -1
  21. package/dist/cjs-es5/models/detection-quality.js +1 -1
  22. package/dist/cjs-es5/models/detection.js +1 -1
  23. package/dist/cjs-es5/models/face-attribute.js +37 -0
  24. package/dist/cjs-es5/models/face-image-quality-align-type.js +1 -1
  25. package/dist/cjs-es5/models/face-image-quality-groups.js +1 -1
  26. package/dist/cjs-es5/models/face-image-quality-status.js +1 -1
  27. package/dist/cjs-es5/models/face-quality-config-name.js +5 -4
  28. package/dist/cjs-es5/models/face-quality-scenarios.js +2 -2
  29. package/dist/cjs-es5/models/face-sdkresult-code.js +27 -26
  30. package/dist/cjs-es5/models/face-sdkresult.js +1 -1
  31. package/dist/cjs-es5/models/faces-response-all-of.js +1 -1
  32. package/dist/cjs-es5/models/faces-response.js +1 -1
  33. package/dist/cjs-es5/models/group-all-of.js +1 -1
  34. package/dist/cjs-es5/models/group-page-all-of.js +1 -1
  35. package/dist/cjs-es5/models/group-page.js +1 -1
  36. package/dist/cjs-es5/models/group-to-create.js +1 -1
  37. package/dist/cjs-es5/models/group.js +1 -1
  38. package/dist/cjs-es5/models/image-fields-image.js +1 -1
  39. package/dist/cjs-es5/models/image-fields.js +1 -1
  40. package/dist/cjs-es5/models/image-page-all-of.js +1 -1
  41. package/dist/cjs-es5/models/image-page.js +1 -1
  42. package/dist/cjs-es5/models/image-source.js +2 -2
  43. package/dist/cjs-es5/models/image.js +1 -1
  44. package/dist/cjs-es5/models/index.js +8 -1
  45. package/dist/cjs-es5/models/match-and-search-request-all-of-images.js +1 -1
  46. package/dist/cjs-es5/models/match-and-search-request-all-of.js +1 -1
  47. package/dist/cjs-es5/models/match-and-search-request.js +1 -1
  48. package/dist/cjs-es5/models/match-and-search-response-all-of-detections.js +1 -1
  49. package/dist/cjs-es5/models/match-and-search-response-all-of.js +1 -1
  50. package/dist/cjs-es5/models/match-and-search-response.js +1 -1
  51. package/dist/cjs-es5/models/match-image-detection.js +1 -1
  52. package/dist/cjs-es5/models/match-image-result.js +1 -1
  53. package/dist/cjs-es5/models/match-image.js +1 -1
  54. package/dist/cjs-es5/models/match-request.js +1 -1
  55. package/dist/cjs-es5/models/match-response-all-of.js +1 -1
  56. package/dist/cjs-es5/models/match-response.js +1 -1
  57. package/dist/cjs-es5/models/operation-log.js +1 -1
  58. package/dist/cjs-es5/models/output-image-params.js +1 -1
  59. package/dist/cjs-es5/models/page.js +1 -1
  60. package/dist/cjs-es5/models/person-all-of.js +1 -1
  61. package/dist/cjs-es5/models/person-created-response.js +16 -0
  62. package/dist/cjs-es5/models/person-fields.js +1 -1
  63. package/dist/cjs-es5/models/person-with-images-all-of.js +1 -1
  64. package/dist/cjs-es5/models/person-with-images.js +1 -1
  65. package/dist/cjs-es5/models/person.js +1 -1
  66. package/dist/cjs-es5/models/persons-page-all-of.js +1 -1
  67. package/dist/cjs-es5/models/persons-page.js +1 -1
  68. package/dist/cjs-es5/models/process-param.js +1 -1
  69. package/dist/cjs-es5/models/quality-config.js +1 -1
  70. package/dist/cjs-es5/models/quality-detail.js +1 -1
  71. package/dist/cjs-es5/models/quality-details-groups.js +1 -1
  72. package/dist/cjs-es5/models/quality-request.js +1 -1
  73. package/dist/cjs-es5/models/recognize-image-all-of.js +1 -1
  74. package/dist/cjs-es5/models/recognize-image.js +1 -1
  75. package/dist/cjs-es5/models/resize-options.js +16 -0
  76. package/dist/cjs-es5/models/search-bad-params.js +16 -0
  77. package/dist/cjs-es5/models/search-detection.js +16 -0
  78. package/dist/cjs-es5/models/search-parameters-create-person.js +16 -0
  79. package/dist/cjs-es5/models/search-parameters.js +1 -1
  80. package/dist/cjs-es5/models/search-person-all-of.js +1 -1
  81. package/dist/cjs-es5/models/search-person.js +1 -1
  82. package/dist/cjs-es5/models/search-request.js +1 -1
  83. package/dist/cjs-es5/models/search-result.js +1 -1
  84. package/dist/cjs-es5/models/transaction-info.js +1 -1
  85. package/dist/cjs-es5/models/update-group.js +1 -1
  86. package/dist/esm-es5/api/diagnostics-api.js +196 -0
  87. package/dist/esm-es5/api/group-api.js +60 -60
  88. package/dist/esm-es5/api/liveness20-api.js +5 -5
  89. package/dist/esm-es5/api/matching-api.js +21 -21
  90. package/dist/esm-es5/api/person-api.js +96 -189
  91. package/dist/esm-es5/api/search-api.js +10 -10
  92. package/dist/esm-es5/api.js +3 -2
  93. package/dist/esm-es5/base.js +1 -1
  94. package/dist/esm-es5/common.js +1 -1
  95. package/dist/esm-es5/configuration.js +1 -1
  96. package/dist/esm-es5/ext/person-api.js +1 -4
  97. package/dist/esm-es5/models/crop.js +1 -1
  98. package/dist/esm-es5/models/detect-request-attributes.js +14 -0
  99. package/dist/esm-es5/models/detect-request.js +1 -1
  100. package/dist/esm-es5/models/detect-response-all-of.js +1 -1
  101. package/dist/esm-es5/models/detect-response.js +1 -1
  102. package/dist/esm-es5/models/detect-result.js +1 -1
  103. package/dist/esm-es5/models/detection-face.js +1 -1
  104. package/dist/esm-es5/models/detection-quality.js +1 -1
  105. package/dist/esm-es5/models/detection.js +1 -1
  106. package/dist/esm-es5/models/face-attribute.js +34 -0
  107. package/dist/esm-es5/models/face-image-quality-align-type.js +1 -1
  108. package/dist/esm-es5/models/face-image-quality-groups.js +1 -1
  109. package/dist/esm-es5/models/face-image-quality-status.js +1 -1
  110. package/dist/esm-es5/models/face-quality-config-name.js +5 -4
  111. package/dist/esm-es5/models/face-quality-scenarios.js +2 -2
  112. package/dist/esm-es5/models/face-sdkresult-code.js +27 -26
  113. package/dist/esm-es5/models/face-sdkresult.js +1 -1
  114. package/dist/esm-es5/models/faces-response-all-of.js +1 -1
  115. package/dist/esm-es5/models/faces-response.js +1 -1
  116. package/dist/esm-es5/models/group-all-of.js +1 -1
  117. package/dist/esm-es5/models/group-page-all-of.js +1 -1
  118. package/dist/esm-es5/models/group-page.js +1 -1
  119. package/dist/esm-es5/models/group-to-create.js +1 -1
  120. package/dist/esm-es5/models/group.js +1 -1
  121. package/dist/esm-es5/models/image-fields-image.js +1 -1
  122. package/dist/esm-es5/models/image-fields.js +1 -1
  123. package/dist/esm-es5/models/image-page-all-of.js +1 -1
  124. package/dist/esm-es5/models/image-page.js +1 -1
  125. package/dist/esm-es5/models/image-source.js +2 -2
  126. package/dist/esm-es5/models/image.js +1 -1
  127. package/dist/esm-es5/models/index.js +8 -1
  128. package/dist/esm-es5/models/match-and-search-request-all-of-images.js +1 -1
  129. package/dist/esm-es5/models/match-and-search-request-all-of.js +1 -1
  130. package/dist/esm-es5/models/match-and-search-request.js +1 -1
  131. package/dist/esm-es5/models/match-and-search-response-all-of-detections.js +1 -1
  132. package/dist/esm-es5/models/match-and-search-response-all-of.js +1 -1
  133. package/dist/esm-es5/models/match-and-search-response.js +1 -1
  134. package/dist/esm-es5/models/match-image-detection.js +1 -1
  135. package/dist/esm-es5/models/match-image-result.js +1 -1
  136. package/dist/esm-es5/models/match-image.js +1 -1
  137. package/dist/esm-es5/models/match-request.js +1 -1
  138. package/dist/esm-es5/models/match-response-all-of.js +1 -1
  139. package/dist/esm-es5/models/match-response.js +1 -1
  140. package/dist/esm-es5/models/operation-log.js +1 -1
  141. package/dist/esm-es5/models/output-image-params.js +1 -1
  142. package/dist/esm-es5/models/page.js +1 -1
  143. package/dist/esm-es5/models/person-all-of.js +1 -1
  144. package/dist/esm-es5/models/person-created-response.js +14 -0
  145. package/dist/esm-es5/models/person-fields.js +1 -1
  146. package/dist/esm-es5/models/person-with-images-all-of.js +1 -1
  147. package/dist/esm-es5/models/person-with-images.js +1 -1
  148. package/dist/esm-es5/models/person.js +1 -1
  149. package/dist/esm-es5/models/persons-page-all-of.js +1 -1
  150. package/dist/esm-es5/models/persons-page.js +1 -1
  151. package/dist/esm-es5/models/process-param.js +1 -1
  152. package/dist/esm-es5/models/quality-config.js +1 -1
  153. package/dist/esm-es5/models/quality-detail.js +1 -1
  154. package/dist/esm-es5/models/quality-details-groups.js +1 -1
  155. package/dist/esm-es5/models/quality-request.js +1 -1
  156. package/dist/esm-es5/models/recognize-image-all-of.js +1 -1
  157. package/dist/esm-es5/models/recognize-image.js +1 -1
  158. package/dist/esm-es5/models/resize-options.js +14 -0
  159. package/dist/esm-es5/models/search-bad-params.js +14 -0
  160. package/dist/esm-es5/models/search-detection.js +14 -0
  161. package/dist/esm-es5/models/search-parameters-create-person.js +14 -0
  162. package/dist/esm-es5/models/search-parameters.js +1 -1
  163. package/dist/esm-es5/models/search-person-all-of.js +1 -1
  164. package/dist/esm-es5/models/search-person.js +1 -1
  165. package/dist/esm-es5/models/search-request.js +1 -1
  166. package/dist/esm-es5/models/search-result.js +1 -1
  167. package/dist/esm-es5/models/transaction-info.js +1 -1
  168. package/dist/esm-es5/models/update-group.js +1 -1
  169. package/package.json +1 -1
  170. package/src/api/diagnostics-api.ts +126 -0
  171. package/src/api/group-api.ts +79 -79
  172. package/src/api/liveness20-api.ts +5 -5
  173. package/src/api/matching-api.ts +21 -21
  174. package/src/api/person-api.ts +127 -217
  175. package/src/api/search-api.ts +12 -10
  176. package/src/api.ts +2 -1
  177. package/src/base.ts +1 -1
  178. package/src/common.ts +1 -1
  179. package/src/configuration.ts +1 -1
  180. package/src/ext/group-api.ts +5 -5
  181. package/src/ext/person-api.ts +8 -11
  182. package/src/models/crop.ts +3 -3
  183. package/src/models/detect-request-attributes.ts +31 -0
  184. package/src/models/detect-request.ts +5 -4
  185. package/src/models/detect-response-all-of.ts +1 -1
  186. package/src/models/detect-response.ts +1 -1
  187. package/src/models/detect-result.ts +1 -1
  188. package/src/models/detection-face.ts +9 -3
  189. package/src/models/detection-quality.ts +1 -1
  190. package/src/models/detection.ts +2 -2
  191. package/src/models/face-attribute.ts +42 -0
  192. package/src/models/face-image-quality-align-type.ts +1 -1
  193. package/src/models/face-image-quality-groups.ts +1 -1
  194. package/src/models/face-image-quality-status.ts +1 -1
  195. package/src/models/face-quality-config-name.ts +4 -3
  196. package/src/models/face-quality-scenarios.ts +2 -2
  197. package/src/models/face-sdkresult-code.ts +26 -25
  198. package/src/models/face-sdkresult.ts +1 -1
  199. package/src/models/faces-response-all-of.ts +1 -1
  200. package/src/models/faces-response.ts +1 -1
  201. package/src/models/group-all-of.ts +5 -5
  202. package/src/models/group-page-all-of.ts +2 -2
  203. package/src/models/group-page.ts +1 -1
  204. package/src/models/group-to-create.ts +7 -1
  205. package/src/models/group.ts +1 -1
  206. package/src/models/image-fields-image.ts +17 -4
  207. package/src/models/image-fields.ts +33 -2
  208. package/src/models/image-page-all-of.ts +1 -1
  209. package/src/models/image-page.ts +1 -1
  210. package/src/models/image-source.ts +2 -2
  211. package/src/models/image.ts +10 -10
  212. package/src/models/index.ts +7 -0
  213. package/src/models/match-and-search-request-all-of-images.ts +1 -1
  214. package/src/models/match-and-search-request-all-of.ts +8 -2
  215. package/src/models/match-and-search-request.ts +2 -1
  216. package/src/models/match-and-search-response-all-of-detections.ts +2 -2
  217. package/src/models/match-and-search-response-all-of.ts +1 -1
  218. package/src/models/match-and-search-response.ts +1 -1
  219. package/src/models/match-image-detection.ts +3 -3
  220. package/src/models/match-image-result.ts +20 -20
  221. package/src/models/match-image.ts +8 -2
  222. package/src/models/match-request.ts +3 -3
  223. package/src/models/match-response-all-of.ts +7 -7
  224. package/src/models/match-response.ts +1 -1
  225. package/src/models/operation-log.ts +2 -2
  226. package/src/models/output-image-params.ts +2 -2
  227. package/src/models/page.ts +2 -2
  228. package/src/models/person-all-of.ts +12 -6
  229. package/src/models/person-created-response.ts +43 -0
  230. package/src/models/person-fields.ts +13 -1
  231. package/src/models/person-with-images-all-of.ts +1 -1
  232. package/src/models/person-with-images.ts +1 -1
  233. package/src/models/person.ts +1 -1
  234. package/src/models/persons-page-all-of.ts +1 -1
  235. package/src/models/persons-page.ts +1 -1
  236. package/src/models/process-param.ts +1 -1
  237. package/src/models/quality-config.ts +5 -5
  238. package/src/models/quality-detail.ts +1 -1
  239. package/src/models/quality-details-groups.ts +3 -4
  240. package/src/models/quality-request.ts +2 -2
  241. package/src/models/recognize-image-all-of.ts +3 -3
  242. package/src/models/recognize-image.ts +1 -1
  243. package/src/models/resize-options.ts +42 -0
  244. package/src/models/search-bad-params.ts +42 -0
  245. package/src/models/search-detection.ts +90 -0
  246. package/src/models/search-parameters-create-person.ts +36 -0
  247. package/src/models/search-parameters.ts +7 -12
  248. package/src/models/search-person-all-of.ts +9 -2
  249. package/src/models/search-person.ts +2 -1
  250. package/src/models/search-request.ts +3 -1
  251. package/src/models/search-result.ts +3 -3
  252. package/src/models/transaction-info.ts +18 -6
  253. package/src/models/update-group.ts +5 -5
@@ -5,7 +5,7 @@
5
5
  * Regula FaceSDK Web API
6
6
  * Regula FaceSDK Web API # Clients * [JavaScript](https://github.com/regulaforensics/FaceSDK-web-js-client) client for the browser and node.js based on axios * [Java](https://github.com/regulaforensics/FaceSDK-web-java-client) client compatible with jvm and android * [Python](https://github.com/regulaforensics/FaceSDK-web-python-client) 3.5+ client * [C#](https://github.com/regulaforensics/FaceSDK-web-csharp-client) client for .NET & .NET Core
7
7
  *
8
- * The version of the OpenAPI document: 5.1.0
8
+ * The version of the OpenAPI document: 5.2.0
9
9
  *
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -90,9 +90,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
90
90
  /**
91
91
  *
92
92
  * @summary Add person image
93
- * @param {number} personId Person ID.
93
+ * @param {string} personId Person ID.
94
94
  * @param {ImageFields} imageFields Image to add.
95
- * @param {string} [xRequestID]
95
+ * @param {string} [xRequestID] Request header label.
96
96
  * @param {*} [options] Override http request option.
97
97
  * @throws {RequiredError}
98
98
  */
@@ -105,8 +105,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
105
105
  common_1.assertParamExists('addImageToPerson', 'personId', personId);
106
106
  // verify required parameter 'imageFields' is not null or undefined
107
107
  common_1.assertParamExists('addImageToPerson', 'imageFields', imageFields);
108
- localVarPath = "/api/persons/{person_id}/images"
109
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
108
+ localVarPath = "/api/persons/{personId}/images"
109
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
110
110
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
111
111
  if (configuration) {
112
112
  baseOptions = configuration.baseOptions;
@@ -133,7 +133,7 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
133
133
  *
134
134
  * @summary Create person
135
135
  * @param {PersonFields} personFields
136
- * @param {string} [xRequestID]
136
+ * @param {string} [xRequestID] Request header label.
137
137
  * @param {*} [options] Override http request option.
138
138
  * @throws {RequiredError}
139
139
  */
@@ -170,9 +170,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
170
170
  /**
171
171
  *
172
172
  * @summary Delete image of person
173
- * @param {number} imageId Image ID.
174
- * @param {number} personId Person ID.
175
- * @param {string} [xRequestID]
173
+ * @param {string} imageId Image ID.
174
+ * @param {string} personId Person ID.
175
+ * @param {string} [xRequestID] Request header label.
176
176
  * @param {*} [options] Override http request option.
177
177
  * @throws {RequiredError}
178
178
  */
@@ -185,9 +185,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
185
185
  common_1.assertParamExists('deleteImageOfPerson', 'imageId', imageId);
186
186
  // verify required parameter 'personId' is not null or undefined
187
187
  common_1.assertParamExists('deleteImageOfPerson', 'personId', personId);
188
- localVarPath = "/api/persons/{person_id}/images/{image_id}"
189
- .replace("{" + "image_id" + "}", encodeURIComponent(String(imageId)))
190
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
188
+ localVarPath = "/api/persons/{personId}/images/{imageId}"
189
+ .replace("{" + "imageId" + "}", encodeURIComponent(String(imageId)))
190
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
191
191
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
192
192
  if (configuration) {
193
193
  baseOptions = configuration.baseOptions;
@@ -211,8 +211,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
211
211
  /**
212
212
  *
213
213
  * @summary Delete person
214
- * @param {number} personId Person ID.
215
- * @param {string} [xRequestID]
214
+ * @param {string} personId Person ID.
215
+ * @param {string} [xRequestID] Request header label.
216
216
  * @param {*} [options] Override http request option.
217
217
  * @throws {RequiredError}
218
218
  */
@@ -223,8 +223,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
223
223
  return __generator(this, function (_a) {
224
224
  // verify required parameter 'personId' is not null or undefined
225
225
  common_1.assertParamExists('deletePerson', 'personId', personId);
226
- localVarPath = "/api/persons/{person_id}"
227
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
226
+ localVarPath = "/api/persons/{personId}"
227
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
228
228
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
229
229
  if (configuration) {
230
230
  baseOptions = configuration.baseOptions;
@@ -250,8 +250,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
250
250
  * @summary Get person groups
251
251
  * @param {number} page The page number to get a list of persons or groups.
252
252
  * @param {number} size The page size with a list of persons or groups, items.
253
- * @param {number} personId Person ID.
254
- * @param {string} [xRequestID]
253
+ * @param {string} personId Person ID.
254
+ * @param {string} [xRequestID] Request header label.
255
255
  * @param {*} [options] Override http request option.
256
256
  * @throws {RequiredError}
257
257
  */
@@ -266,8 +266,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
266
266
  common_1.assertParamExists('getAllGroupsByPersonId', 'size', size);
267
267
  // verify required parameter 'personId' is not null or undefined
268
268
  common_1.assertParamExists('getAllGroupsByPersonId', 'personId', personId);
269
- localVarPath = "/api/persons/{person_id}/groups"
270
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
269
+ localVarPath = "/api/persons/{personId}/groups"
270
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
271
271
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
272
272
  if (configuration) {
273
273
  baseOptions = configuration.baseOptions;
@@ -299,8 +299,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
299
299
  * @summary Get person images
300
300
  * @param {number} page The page number to get a list of persons or groups.
301
301
  * @param {number} size The page size with a list of persons or groups, items.
302
- * @param {number} personId Person ID.
303
- * @param {string} [xRequestID]
302
+ * @param {string} personId Person ID.
303
+ * @param {string} [xRequestID] Request header label.
304
304
  * @param {*} [options] Override http request option.
305
305
  * @throws {RequiredError}
306
306
  */
@@ -315,53 +315,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
315
315
  common_1.assertParamExists('getAllImagesByPersonId', 'size', size);
316
316
  // verify required parameter 'personId' is not null or undefined
317
317
  common_1.assertParamExists('getAllImagesByPersonId', 'personId', personId);
318
- localVarPath = "/api/persons/{person_id}/images"
319
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
320
- localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
321
- if (configuration) {
322
- baseOptions = configuration.baseOptions;
323
- }
324
- localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
325
- localVarHeaderParameter = {};
326
- localVarQueryParameter = {};
327
- if (page !== undefined) {
328
- localVarQueryParameter['page'] = page;
329
- }
330
- if (size !== undefined) {
331
- localVarQueryParameter['size'] = size;
332
- }
333
- if (xRequestID !== undefined && xRequestID !== null) {
334
- localVarHeaderParameter['X-RequestID'] = String(xRequestID);
335
- }
336
- common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
337
- headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
338
- localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
339
- return [2 /*return*/, {
340
- url: common_1.toPathString(localVarUrlObj),
341
- options: localVarRequestOptions,
342
- }];
343
- });
344
- });
345
- },
346
- /**
347
- *
348
- * @summary Get persons
349
- * @param {number} page The page number to get a list of persons or groups.
350
- * @param {number} size The page size with a list of persons or groups, items.
351
- * @param {string} [xRequestID]
352
- * @param {*} [options] Override http request option.
353
- * @throws {RequiredError}
354
- */
355
- getAllPersons: function (page, size, xRequestID, options) {
356
- if (options === void 0) { options = {}; }
357
- return __awaiter(_this, void 0, void 0, function () {
358
- var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
359
- return __generator(this, function (_a) {
360
- // verify required parameter 'page' is not null or undefined
361
- common_1.assertParamExists('getAllPersons', 'page', page);
362
- // verify required parameter 'size' is not null or undefined
363
- common_1.assertParamExists('getAllPersons', 'size', size);
364
- localVarPath = "/api/persons";
318
+ localVarPath = "/api/persons/{personId}/images"
319
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
365
320
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
366
321
  if (configuration) {
367
322
  baseOptions = configuration.baseOptions;
@@ -391,9 +346,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
391
346
  /**
392
347
  *
393
348
  * @summary Get person image by id
394
- * @param {number} imageId Image ID.
395
- * @param {number} personId Person ID.
396
- * @param {string} [xRequestID]
349
+ * @param {string} imageId Image ID.
350
+ * @param {string} personId Person ID.
351
+ * @param {string} [xRequestID] Request header label.
397
352
  * @param {*} [options] Override http request option.
398
353
  * @throws {RequiredError}
399
354
  */
@@ -406,9 +361,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
406
361
  common_1.assertParamExists('getImageOfPerson', 'imageId', imageId);
407
362
  // verify required parameter 'personId' is not null or undefined
408
363
  common_1.assertParamExists('getImageOfPerson', 'personId', personId);
409
- localVarPath = "/api/persons/{person_id}/images/{image_id}"
410
- .replace("{" + "image_id" + "}", encodeURIComponent(String(imageId)))
411
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
364
+ localVarPath = "/api/persons/{personId}/images/{imageId}"
365
+ .replace("{" + "imageId" + "}", encodeURIComponent(String(imageId)))
366
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
412
367
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
413
368
  if (configuration) {
414
369
  baseOptions = configuration.baseOptions;
@@ -432,8 +387,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
432
387
  /**
433
388
  *
434
389
  * @summary Get person
435
- * @param {number} personId Person ID.
436
- * @param {string} [xRequestID]
390
+ * @param {string} personId Person ID.
391
+ * @param {string} [xRequestID] Request header label.
437
392
  * @param {*} [options] Override http request option.
438
393
  * @throws {RequiredError}
439
394
  */
@@ -444,8 +399,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
444
399
  return __generator(this, function (_a) {
445
400
  // verify required parameter 'personId' is not null or undefined
446
401
  common_1.assertParamExists('getPerson', 'personId', personId);
447
- localVarPath = "/api/persons/{person_id}"
448
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
402
+ localVarPath = "/api/persons/{personId}"
403
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
449
404
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
450
405
  if (configuration) {
451
406
  baseOptions = configuration.baseOptions;
@@ -469,9 +424,9 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
469
424
  /**
470
425
  *
471
426
  * @summary Update person
472
- * @param {number} personId Person ID.
427
+ * @param {string} personId Person ID.
473
428
  * @param {PersonFields} personFields Request body for the Person to update.
474
- * @param {string} [xRequestID]
429
+ * @param {string} [xRequestID] Request header label.
475
430
  * @param {*} [options] Override http request option.
476
431
  * @throws {RequiredError}
477
432
  */
@@ -484,8 +439,8 @@ exports.PersonApiAxiosParamCreator = function (configuration) {
484
439
  common_1.assertParamExists('updatePerson', 'personId', personId);
485
440
  // verify required parameter 'personFields' is not null or undefined
486
441
  common_1.assertParamExists('updatePerson', 'personFields', personFields);
487
- localVarPath = "/api/persons/{person_id}"
488
- .replace("{" + "person_id" + "}", encodeURIComponent(String(personId)));
442
+ localVarPath = "/api/persons/{personId}"
443
+ .replace("{" + "personId" + "}", encodeURIComponent(String(personId)));
489
444
  localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
490
445
  if (configuration) {
491
446
  baseOptions = configuration.baseOptions;
@@ -520,9 +475,9 @@ exports.PersonApiFp = function (configuration) {
520
475
  /**
521
476
  *
522
477
  * @summary Add person image
523
- * @param {number} personId Person ID.
478
+ * @param {string} personId Person ID.
524
479
  * @param {ImageFields} imageFields Image to add.
525
- * @param {string} [xRequestID]
480
+ * @param {string} [xRequestID] Request header label.
526
481
  * @param {*} [options] Override http request option.
527
482
  * @throws {RequiredError}
528
483
  */
@@ -543,7 +498,7 @@ exports.PersonApiFp = function (configuration) {
543
498
  *
544
499
  * @summary Create person
545
500
  * @param {PersonFields} personFields
546
- * @param {string} [xRequestID]
501
+ * @param {string} [xRequestID] Request header label.
547
502
  * @param {*} [options] Override http request option.
548
503
  * @throws {RequiredError}
549
504
  */
@@ -563,9 +518,9 @@ exports.PersonApiFp = function (configuration) {
563
518
  /**
564
519
  *
565
520
  * @summary Delete image of person
566
- * @param {number} imageId Image ID.
567
- * @param {number} personId Person ID.
568
- * @param {string} [xRequestID]
521
+ * @param {string} imageId Image ID.
522
+ * @param {string} personId Person ID.
523
+ * @param {string} [xRequestID] Request header label.
569
524
  * @param {*} [options] Override http request option.
570
525
  * @throws {RequiredError}
571
526
  */
@@ -585,8 +540,8 @@ exports.PersonApiFp = function (configuration) {
585
540
  /**
586
541
  *
587
542
  * @summary Delete person
588
- * @param {number} personId Person ID.
589
- * @param {string} [xRequestID]
543
+ * @param {string} personId Person ID.
544
+ * @param {string} [xRequestID] Request header label.
590
545
  * @param {*} [options] Override http request option.
591
546
  * @throws {RequiredError}
592
547
  */
@@ -608,8 +563,8 @@ exports.PersonApiFp = function (configuration) {
608
563
  * @summary Get person groups
609
564
  * @param {number} page The page number to get a list of persons or groups.
610
565
  * @param {number} size The page size with a list of persons or groups, items.
611
- * @param {number} personId Person ID.
612
- * @param {string} [xRequestID]
566
+ * @param {string} personId Person ID.
567
+ * @param {string} [xRequestID] Request header label.
613
568
  * @param {*} [options] Override http request option.
614
569
  * @throws {RequiredError}
615
570
  */
@@ -631,8 +586,8 @@ exports.PersonApiFp = function (configuration) {
631
586
  * @summary Get person images
632
587
  * @param {number} page The page number to get a list of persons or groups.
633
588
  * @param {number} size The page size with a list of persons or groups, items.
634
- * @param {number} personId Person ID.
635
- * @param {string} [xRequestID]
589
+ * @param {string} personId Person ID.
590
+ * @param {string} [xRequestID] Request header label.
636
591
  * @param {*} [options] Override http request option.
637
592
  * @throws {RequiredError}
638
593
  */
@@ -649,34 +604,12 @@ exports.PersonApiFp = function (configuration) {
649
604
  });
650
605
  });
651
606
  },
652
- /**
653
- *
654
- * @summary Get persons
655
- * @param {number} page The page number to get a list of persons or groups.
656
- * @param {number} size The page size with a list of persons or groups, items.
657
- * @param {string} [xRequestID]
658
- * @param {*} [options] Override http request option.
659
- * @throws {RequiredError}
660
- */
661
- getAllPersons: function (page, size, xRequestID, options) {
662
- return __awaiter(this, void 0, void 0, function () {
663
- var localVarAxiosArgs;
664
- return __generator(this, function (_a) {
665
- switch (_a.label) {
666
- case 0: return [4 /*yield*/, localVarAxiosParamCreator.getAllPersons(page, size, xRequestID, options)];
667
- case 1:
668
- localVarAxiosArgs = _a.sent();
669
- return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
670
- }
671
- });
672
- });
673
- },
674
607
  /**
675
608
  *
676
609
  * @summary Get person image by id
677
- * @param {number} imageId Image ID.
678
- * @param {number} personId Person ID.
679
- * @param {string} [xRequestID]
610
+ * @param {string} imageId Image ID.
611
+ * @param {string} personId Person ID.
612
+ * @param {string} [xRequestID] Request header label.
680
613
  * @param {*} [options] Override http request option.
681
614
  * @throws {RequiredError}
682
615
  */
@@ -696,8 +629,8 @@ exports.PersonApiFp = function (configuration) {
696
629
  /**
697
630
  *
698
631
  * @summary Get person
699
- * @param {number} personId Person ID.
700
- * @param {string} [xRequestID]
632
+ * @param {string} personId Person ID.
633
+ * @param {string} [xRequestID] Request header label.
701
634
  * @param {*} [options] Override http request option.
702
635
  * @throws {RequiredError}
703
636
  */
@@ -717,9 +650,9 @@ exports.PersonApiFp = function (configuration) {
717
650
  /**
718
651
  *
719
652
  * @summary Update person
720
- * @param {number} personId Person ID.
653
+ * @param {string} personId Person ID.
721
654
  * @param {PersonFields} personFields Request body for the Person to update.
722
- * @param {string} [xRequestID]
655
+ * @param {string} [xRequestID] Request header label.
723
656
  * @param {*} [options] Override http request option.
724
657
  * @throws {RequiredError}
725
658
  */
@@ -748,9 +681,9 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
748
681
  /**
749
682
  *
750
683
  * @summary Add person image
751
- * @param {number} personId Person ID.
684
+ * @param {string} personId Person ID.
752
685
  * @param {ImageFields} imageFields Image to add.
753
- * @param {string} [xRequestID]
686
+ * @param {string} [xRequestID] Request header label.
754
687
  * @param {*} [options] Override http request option.
755
688
  * @throws {RequiredError}
756
689
  */
@@ -761,7 +694,7 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
761
694
  *
762
695
  * @summary Create person
763
696
  * @param {PersonFields} personFields
764
- * @param {string} [xRequestID]
697
+ * @param {string} [xRequestID] Request header label.
765
698
  * @param {*} [options] Override http request option.
766
699
  * @throws {RequiredError}
767
700
  */
@@ -771,9 +704,9 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
771
704
  /**
772
705
  *
773
706
  * @summary Delete image of person
774
- * @param {number} imageId Image ID.
775
- * @param {number} personId Person ID.
776
- * @param {string} [xRequestID]
707
+ * @param {string} imageId Image ID.
708
+ * @param {string} personId Person ID.
709
+ * @param {string} [xRequestID] Request header label.
777
710
  * @param {*} [options] Override http request option.
778
711
  * @throws {RequiredError}
779
712
  */
@@ -783,8 +716,8 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
783
716
  /**
784
717
  *
785
718
  * @summary Delete person
786
- * @param {number} personId Person ID.
787
- * @param {string} [xRequestID]
719
+ * @param {string} personId Person ID.
720
+ * @param {string} [xRequestID] Request header label.
788
721
  * @param {*} [options] Override http request option.
789
722
  * @throws {RequiredError}
790
723
  */
@@ -796,8 +729,8 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
796
729
  * @summary Get person groups
797
730
  * @param {number} page The page number to get a list of persons or groups.
798
731
  * @param {number} size The page size with a list of persons or groups, items.
799
- * @param {number} personId Person ID.
800
- * @param {string} [xRequestID]
732
+ * @param {string} personId Person ID.
733
+ * @param {string} [xRequestID] Request header label.
801
734
  * @param {*} [options] Override http request option.
802
735
  * @throws {RequiredError}
803
736
  */
@@ -809,32 +742,20 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
809
742
  * @summary Get person images
810
743
  * @param {number} page The page number to get a list of persons or groups.
811
744
  * @param {number} size The page size with a list of persons or groups, items.
812
- * @param {number} personId Person ID.
813
- * @param {string} [xRequestID]
745
+ * @param {string} personId Person ID.
746
+ * @param {string} [xRequestID] Request header label.
814
747
  * @param {*} [options] Override http request option.
815
748
  * @throws {RequiredError}
816
749
  */
817
750
  getAllImagesByPersonId: function (page, size, personId, xRequestID, options) {
818
751
  return localVarFp.getAllImagesByPersonId(page, size, personId, xRequestID, options).then(function (request) { return request(axios, basePath); });
819
752
  },
820
- /**
821
- *
822
- * @summary Get persons
823
- * @param {number} page The page number to get a list of persons or groups.
824
- * @param {number} size The page size with a list of persons or groups, items.
825
- * @param {string} [xRequestID]
826
- * @param {*} [options] Override http request option.
827
- * @throws {RequiredError}
828
- */
829
- getAllPersons: function (page, size, xRequestID, options) {
830
- return localVarFp.getAllPersons(page, size, xRequestID, options).then(function (request) { return request(axios, basePath); });
831
- },
832
753
  /**
833
754
  *
834
755
  * @summary Get person image by id
835
- * @param {number} imageId Image ID.
836
- * @param {number} personId Person ID.
837
- * @param {string} [xRequestID]
756
+ * @param {string} imageId Image ID.
757
+ * @param {string} personId Person ID.
758
+ * @param {string} [xRequestID] Request header label.
838
759
  * @param {*} [options] Override http request option.
839
760
  * @throws {RequiredError}
840
761
  */
@@ -844,8 +765,8 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
844
765
  /**
845
766
  *
846
767
  * @summary Get person
847
- * @param {number} personId Person ID.
848
- * @param {string} [xRequestID]
768
+ * @param {string} personId Person ID.
769
+ * @param {string} [xRequestID] Request header label.
849
770
  * @param {*} [options] Override http request option.
850
771
  * @throws {RequiredError}
851
772
  */
@@ -855,9 +776,9 @@ exports.PersonApiFactory = function (configuration, basePath, axios) {
855
776
  /**
856
777
  *
857
778
  * @summary Update person
858
- * @param {number} personId Person ID.
779
+ * @param {string} personId Person ID.
859
780
  * @param {PersonFields} personFields Request body for the Person to update.
860
- * @param {string} [xRequestID]
781
+ * @param {string} [xRequestID] Request header label.
861
782
  * @param {*} [options] Override http request option.
862
783
  * @throws {RequiredError}
863
784
  */
@@ -880,9 +801,9 @@ var PersonApi = /** @class */ (function (_super) {
880
801
  /**
881
802
  *
882
803
  * @summary Add person image
883
- * @param {number} personId Person ID.
804
+ * @param {string} personId Person ID.
884
805
  * @param {ImageFields} imageFields Image to add.
885
- * @param {string} [xRequestID]
806
+ * @param {string} [xRequestID] Request header label.
886
807
  * @param {*} [options] Override http request option.
887
808
  * @throws {RequiredError}
888
809
  * @memberof PersonApi
@@ -895,7 +816,7 @@ var PersonApi = /** @class */ (function (_super) {
895
816
  *
896
817
  * @summary Create person
897
818
  * @param {PersonFields} personFields
898
- * @param {string} [xRequestID]
819
+ * @param {string} [xRequestID] Request header label.
899
820
  * @param {*} [options] Override http request option.
900
821
  * @throws {RequiredError}
901
822
  * @memberof PersonApi
@@ -907,9 +828,9 @@ var PersonApi = /** @class */ (function (_super) {
907
828
  /**
908
829
  *
909
830
  * @summary Delete image of person
910
- * @param {number} imageId Image ID.
911
- * @param {number} personId Person ID.
912
- * @param {string} [xRequestID]
831
+ * @param {string} imageId Image ID.
832
+ * @param {string} personId Person ID.
833
+ * @param {string} [xRequestID] Request header label.
913
834
  * @param {*} [options] Override http request option.
914
835
  * @throws {RequiredError}
915
836
  * @memberof PersonApi
@@ -921,8 +842,8 @@ var PersonApi = /** @class */ (function (_super) {
921
842
  /**
922
843
  *
923
844
  * @summary Delete person
924
- * @param {number} personId Person ID.
925
- * @param {string} [xRequestID]
845
+ * @param {string} personId Person ID.
846
+ * @param {string} [xRequestID] Request header label.
926
847
  * @param {*} [options] Override http request option.
927
848
  * @throws {RequiredError}
928
849
  * @memberof PersonApi
@@ -936,8 +857,8 @@ var PersonApi = /** @class */ (function (_super) {
936
857
  * @summary Get person groups
937
858
  * @param {number} page The page number to get a list of persons or groups.
938
859
  * @param {number} size The page size with a list of persons or groups, items.
939
- * @param {number} personId Person ID.
940
- * @param {string} [xRequestID]
860
+ * @param {string} personId Person ID.
861
+ * @param {string} [xRequestID] Request header label.
941
862
  * @param {*} [options] Override http request option.
942
863
  * @throws {RequiredError}
943
864
  * @memberof PersonApi
@@ -951,8 +872,8 @@ var PersonApi = /** @class */ (function (_super) {
951
872
  * @summary Get person images
952
873
  * @param {number} page The page number to get a list of persons or groups.
953
874
  * @param {number} size The page size with a list of persons or groups, items.
954
- * @param {number} personId Person ID.
955
- * @param {string} [xRequestID]
875
+ * @param {string} personId Person ID.
876
+ * @param {string} [xRequestID] Request header label.
956
877
  * @param {*} [options] Override http request option.
957
878
  * @throws {RequiredError}
958
879
  * @memberof PersonApi
@@ -961,26 +882,12 @@ var PersonApi = /** @class */ (function (_super) {
961
882
  var _this = this;
962
883
  return exports.PersonApiFp(this.configuration).getAllImagesByPersonId(page, size, personId, xRequestID, options).then(function (request) { return request(_this.axios, _this.basePath); });
963
884
  };
964
- /**
965
- *
966
- * @summary Get persons
967
- * @param {number} page The page number to get a list of persons or groups.
968
- * @param {number} size The page size with a list of persons or groups, items.
969
- * @param {string} [xRequestID]
970
- * @param {*} [options] Override http request option.
971
- * @throws {RequiredError}
972
- * @memberof PersonApi
973
- */
974
- PersonApi.prototype.getAllPersons = function (page, size, xRequestID, options) {
975
- var _this = this;
976
- return exports.PersonApiFp(this.configuration).getAllPersons(page, size, xRequestID, options).then(function (request) { return request(_this.axios, _this.basePath); });
977
- };
978
885
  /**
979
886
  *
980
887
  * @summary Get person image by id
981
- * @param {number} imageId Image ID.
982
- * @param {number} personId Person ID.
983
- * @param {string} [xRequestID]
888
+ * @param {string} imageId Image ID.
889
+ * @param {string} personId Person ID.
890
+ * @param {string} [xRequestID] Request header label.
984
891
  * @param {*} [options] Override http request option.
985
892
  * @throws {RequiredError}
986
893
  * @memberof PersonApi
@@ -992,8 +899,8 @@ var PersonApi = /** @class */ (function (_super) {
992
899
  /**
993
900
  *
994
901
  * @summary Get person
995
- * @param {number} personId Person ID.
996
- * @param {string} [xRequestID]
902
+ * @param {string} personId Person ID.
903
+ * @param {string} [xRequestID] Request header label.
997
904
  * @param {*} [options] Override http request option.
998
905
  * @throws {RequiredError}
999
906
  * @memberof PersonApi
@@ -1005,9 +912,9 @@ var PersonApi = /** @class */ (function (_super) {
1005
912
  /**
1006
913
  *
1007
914
  * @summary Update person
1008
- * @param {number} personId Person ID.
915
+ * @param {string} personId Person ID.
1009
916
  * @param {PersonFields} personFields Request body for the Person to update.
1010
- * @param {string} [xRequestID]
917
+ * @param {string} [xRequestID] Request header label.
1011
918
  * @param {*} [options] Override http request option.
1012
919
  * @throws {RequiredError}
1013
920
  * @memberof PersonApi
@@ -1019,4 +926,4 @@ var PersonApi = /** @class */ (function (_super) {
1019
926
  return PersonApi;
1020
927
  }(base_1.BaseAPI));
1021
928
  exports.PersonApi = PersonApi;
1022
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcGVyc29uLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjs7Ozs7Ozs7OztHQVVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHSCwrQkFBcUY7QUFFckYseURBQXlEO0FBQ3pELGFBQWE7QUFDYixvQ0FBNk47QUFDN04sYUFBYTtBQUNiLGdDQUE2RjtBQWlCN0Y7OztHQUdHO0FBQ1UsUUFBQSwwQkFBMEIsR0FBRyxVQUFVLGFBQTZCO0lBQXZDLGlCQXFjekM7SUFwY0csT0FBTztRQUNIOzs7Ozs7OztXQVFHO1FBQ0gsZ0JBQWdCLEVBQUUsVUFBTyxRQUFnQixFQUFFLFdBQXdCLEVBQUUsVUFBbUIsRUFBRSxPQUFnQztZQUFoQyx3QkFBQSxFQUFBLFlBQWdDOzs7O29CQUN0SCxnRUFBZ0U7b0JBQ2hFLDBCQUFpQixDQUFDLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQTtvQkFDM0QsbUVBQW1FO29CQUNuRSwwQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7b0JBQzNELFlBQVksR0FBRyxpQ0FBaUM7eUJBQ2pELE9BQU8sQ0FBQyxNQUFJLFdBQVcsTUFBRyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRWpFLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsdUJBQWMsQ0FBQyxDQUFDO29CQUU3RCxJQUFJLGFBQWEsRUFBRTt3QkFDZixXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztxQkFDM0M7b0JBRUssc0JBQXNCLHVCQUFLLE1BQU0sRUFBRSxNQUFNLElBQUssV0FBVyxHQUFLLE9BQU8s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
929
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcGVyc29uLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjs7Ozs7Ozs7OztHQVVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHSCwrQkFBcUY7QUFFckYseURBQXlEO0FBQ3pELGFBQWE7QUFDYixvQ0FBNk47QUFDN04sYUFBYTtBQUNiLGdDQUE2RjtBQWU3Rjs7O0dBR0c7QUFDVSxRQUFBLDBCQUEwQixHQUFHLFVBQVUsYUFBNkI7SUFBdkMsaUJBb1p6QztJQW5aRyxPQUFPO1FBQ0g7Ozs7Ozs7O1dBUUc7UUFDSCxnQkFBZ0IsRUFBRSxVQUFPLFFBQWdCLEVBQUUsV0FBd0IsRUFBRSxVQUFtQixFQUFFLE9BQWdDO1lBQWhDLHdCQUFBLEVBQUEsWUFBZ0M7Ozs7b0JBQ3RILGdFQUFnRTtvQkFDaEUsMEJBQWlCLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO29CQUMzRCxtRUFBbUU7b0JBQ25FLDBCQUFpQixDQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQTtvQkFDM0QsWUFBWSxHQUFHLGdDQUFnQzt5QkFDaEQsT0FBTyxDQUFDLE1BQUksVUFBVSxNQUFHLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFaEUsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSx1QkFBYyxDQUFDLENBQUM7b0JBRTdELElBQUksYUFBYSxFQUFFO3dCQUNmLFdBQVcsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO3FCQUMzQztvQkFFSyxzQkFBc0IsdUJBQUssTUFBTSxFQUFFLE1BQU0sSUFBSyxXQUFXLEdBQUssT0FBTyxD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