@regulaforensics/facesdk-webclient 4.1.3 → 4.1.5

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 (59) hide show
  1. package/dist/cjs-es5/api/group-api.js +99 -50
  2. package/dist/cjs-es5/api/matching-api.js +116 -19
  3. package/dist/cjs-es5/api/person-api.js +141 -71
  4. package/dist/cjs-es5/api/search-api.js +15 -8
  5. package/dist/cjs-es5/ext/group-api.js +15 -15
  6. package/dist/cjs-es5/ext/matching-api.js +5 -5
  7. package/dist/cjs-es5/ext/person-api.js +21 -21
  8. package/dist/cjs-es5/ext/search-api.js +3 -3
  9. package/dist/cjs-es5/models/index.js +10 -2
  10. package/dist/cjs-es5/models/match-and-search-request-all-of-images.js +16 -0
  11. package/dist/cjs-es5/models/match-and-search-request-all-of.js +16 -0
  12. package/dist/cjs-es5/models/match-and-search-request.js +16 -0
  13. package/dist/cjs-es5/models/match-and-search-response-all-of-detections.js +16 -0
  14. package/dist/cjs-es5/models/match-and-search-response-all-of.js +16 -0
  15. package/dist/cjs-es5/models/match-and-search-response.js +16 -0
  16. package/dist/cjs-es5/models/person-with-images-all-of.js +16 -0
  17. package/dist/cjs-es5/models/person-with-images.js +16 -0
  18. package/dist/cjs-es5/models/search-parameters.js +16 -0
  19. package/dist/esm-es5/api/group-api.js +99 -50
  20. package/dist/esm-es5/api/matching-api.js +116 -19
  21. package/dist/esm-es5/api/person-api.js +141 -71
  22. package/dist/esm-es5/api/search-api.js +15 -8
  23. package/dist/esm-es5/ext/group-api.js +15 -15
  24. package/dist/esm-es5/ext/matching-api.js +5 -5
  25. package/dist/esm-es5/ext/person-api.js +21 -21
  26. package/dist/esm-es5/ext/search-api.js +3 -3
  27. package/dist/esm-es5/models/index.js +10 -2
  28. package/dist/esm-es5/models/match-and-search-request-all-of-images.js +14 -0
  29. package/dist/esm-es5/models/match-and-search-request-all-of.js +14 -0
  30. package/dist/esm-es5/models/match-and-search-request.js +14 -0
  31. package/dist/esm-es5/models/match-and-search-response-all-of-detections.js +14 -0
  32. package/dist/esm-es5/models/match-and-search-response-all-of.js +14 -0
  33. package/dist/esm-es5/models/match-and-search-response.js +14 -0
  34. package/dist/esm-es5/models/person-with-images-all-of.js +14 -0
  35. package/dist/esm-es5/models/person-with-images.js +14 -0
  36. package/dist/esm-es5/models/search-parameters.js +14 -0
  37. package/package.json +1 -1
  38. package/src/api/group-api.ts +105 -49
  39. package/src/api/matching-api.ts +115 -18
  40. package/src/api/person-api.ts +150 -70
  41. package/src/api/search-api.ts +15 -7
  42. package/src/ext/group-api.ts +14 -14
  43. package/src/ext/matching-api.ts +4 -4
  44. package/src/ext/person-api.ts +20 -20
  45. package/src/ext/search-api.ts +2 -2
  46. package/src/models/crop.ts +1 -1
  47. package/src/models/image.ts +12 -0
  48. package/src/models/index.ts +9 -1
  49. package/src/models/match-and-search-request-all-of-images.ts +38 -0
  50. package/src/models/match-and-search-request-all-of.ts +31 -0
  51. package/src/models/match-and-search-request.ts +26 -0
  52. package/src/models/match-and-search-response-all-of-detections.ts +45 -0
  53. package/src/models/match-and-search-response-all-of.ts +50 -0
  54. package/src/models/match-and-search-response.ts +28 -0
  55. package/src/models/person-with-images-all-of.ts +31 -0
  56. package/src/models/person-with-images.ts +26 -0
  57. package/src/models/recognize-image-all-of.ts +6 -0
  58. package/src/models/search-parameters.ts +42 -0
  59. package/src/models/search-request.ts +2 -2
@@ -88,10 +88,11 @@ export var MatchingApiAxiosParamCreator = function (configuration) {
88
88
  *
89
89
  * @summary Detect facial coordinates
90
90
  * @param {DetectRequest} detectRequest
91
+ * @param {string} [xRequestID]
91
92
  * @param {*} [options] Override http request option.
92
93
  * @throws {RequiredError}
93
94
  */
94
- detect: function (detectRequest, options) {
95
+ detect: function (detectRequest, xRequestID, options) {
95
96
  if (options === void 0) { options = {}; }
96
97
  return __awaiter(_this, void 0, void 0, function () {
97
98
  var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
@@ -106,6 +107,9 @@ export var MatchingApiAxiosParamCreator = function (configuration) {
106
107
  localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
107
108
  localVarHeaderParameter = {};
108
109
  localVarQueryParameter = {};
110
+ if (xRequestID !== undefined && xRequestID !== null) {
111
+ localVarHeaderParameter['X-RequestID'] = String(xRequestID);
112
+ }
109
113
  localVarHeaderParameter['Content-Type'] = 'application/json';
110
114
  setSearchParams(localVarUrlObj, localVarQueryParameter);
111
115
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -120,12 +124,13 @@ export var MatchingApiAxiosParamCreator = function (configuration) {
120
124
  },
121
125
  /**
122
126
  *
123
- * @summary Compare provided face images in all combinations and return similarity score for each pair.
127
+ * @summary Compare provided face images in all combinations and return the similarity score for each pair.
124
128
  * @param {MatchRequest} matchRequest
129
+ * @param {string} [xRequestID]
125
130
  * @param {*} [options] Override http request option.
126
131
  * @throws {RequiredError}
127
132
  */
128
- match: function (matchRequest, options) {
133
+ match: function (matchRequest, xRequestID, options) {
129
134
  if (options === void 0) { options = {}; }
130
135
  return __awaiter(_this, void 0, void 0, function () {
131
136
  var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
@@ -140,6 +145,9 @@ export var MatchingApiAxiosParamCreator = function (configuration) {
140
145
  localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
141
146
  localVarHeaderParameter = {};
142
147
  localVarQueryParameter = {};
148
+ if (xRequestID !== undefined && xRequestID !== null) {
149
+ localVarHeaderParameter['X-RequestID'] = String(xRequestID);
150
+ }
143
151
  localVarHeaderParameter['Content-Type'] = 'application/json';
144
152
  setSearchParams(localVarUrlObj, localVarQueryParameter);
145
153
  headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
@@ -152,6 +160,44 @@ export var MatchingApiAxiosParamCreator = function (configuration) {
152
160
  });
153
161
  });
154
162
  },
163
+ /**
164
+ *
165
+ * @summary Match and Search in one request
166
+ * @param {MatchAndSearchRequest} matchAndSearchRequest
167
+ * @param {string} [xRequestID]
168
+ * @param {*} [options] Override http request option.
169
+ * @throws {RequiredError}
170
+ */
171
+ matchAndSearch: function (matchAndSearchRequest, xRequestID, options) {
172
+ if (options === void 0) { options = {}; }
173
+ return __awaiter(_this, void 0, void 0, function () {
174
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
175
+ return __generator(this, function (_a) {
176
+ // verify required parameter 'matchAndSearchRequest' is not null or undefined
177
+ assertParamExists('matchAndSearch', 'matchAndSearchRequest', matchAndSearchRequest);
178
+ localVarPath = "/api/match_and_search";
179
+ localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
180
+ if (configuration) {
181
+ baseOptions = configuration.baseOptions;
182
+ }
183
+ localVarRequestOptions = __assign(__assign({ method: 'POST' }, baseOptions), options);
184
+ localVarHeaderParameter = {};
185
+ localVarQueryParameter = {};
186
+ if (xRequestID !== undefined && xRequestID !== null) {
187
+ localVarHeaderParameter['X-RequestID'] = String(xRequestID);
188
+ }
189
+ localVarHeaderParameter['Content-Type'] = 'application/json';
190
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
191
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
192
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
193
+ localVarRequestOptions.data = serializeDataIfNeeded(matchAndSearchRequest, localVarRequestOptions, configuration);
194
+ return [2 /*return*/, {
195
+ url: toPathString(localVarUrlObj),
196
+ options: localVarRequestOptions,
197
+ }];
198
+ });
199
+ });
200
+ },
155
201
  };
156
202
  };
157
203
  /**
@@ -165,15 +211,16 @@ export var MatchingApiFp = function (configuration) {
165
211
  *
166
212
  * @summary Detect facial coordinates
167
213
  * @param {DetectRequest} detectRequest
214
+ * @param {string} [xRequestID]
168
215
  * @param {*} [options] Override http request option.
169
216
  * @throws {RequiredError}
170
217
  */
171
- detect: function (detectRequest, options) {
218
+ detect: function (detectRequest, xRequestID, options) {
172
219
  return __awaiter(this, void 0, void 0, function () {
173
220
  var localVarAxiosArgs;
174
221
  return __generator(this, function (_a) {
175
222
  switch (_a.label) {
176
- case 0: return [4 /*yield*/, localVarAxiosParamCreator.detect(detectRequest, options)];
223
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.detect(detectRequest, xRequestID, options)];
177
224
  case 1:
178
225
  localVarAxiosArgs = _a.sent();
179
226
  return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
@@ -183,17 +230,39 @@ export var MatchingApiFp = function (configuration) {
183
230
  },
184
231
  /**
185
232
  *
186
- * @summary Compare provided face images in all combinations and return similarity score for each pair.
233
+ * @summary Compare provided face images in all combinations and return the similarity score for each pair.
187
234
  * @param {MatchRequest} matchRequest
235
+ * @param {string} [xRequestID]
188
236
  * @param {*} [options] Override http request option.
189
237
  * @throws {RequiredError}
190
238
  */
191
- match: function (matchRequest, options) {
239
+ match: function (matchRequest, xRequestID, options) {
192
240
  return __awaiter(this, void 0, void 0, function () {
193
241
  var localVarAxiosArgs;
194
242
  return __generator(this, function (_a) {
195
243
  switch (_a.label) {
196
- case 0: return [4 /*yield*/, localVarAxiosParamCreator.match(matchRequest, options)];
244
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.match(matchRequest, xRequestID, options)];
245
+ case 1:
246
+ localVarAxiosArgs = _a.sent();
247
+ return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
248
+ }
249
+ });
250
+ });
251
+ },
252
+ /**
253
+ *
254
+ * @summary Match and Search in one request
255
+ * @param {MatchAndSearchRequest} matchAndSearchRequest
256
+ * @param {string} [xRequestID]
257
+ * @param {*} [options] Override http request option.
258
+ * @throws {RequiredError}
259
+ */
260
+ matchAndSearch: function (matchAndSearchRequest, xRequestID, options) {
261
+ return __awaiter(this, void 0, void 0, function () {
262
+ var localVarAxiosArgs;
263
+ return __generator(this, function (_a) {
264
+ switch (_a.label) {
265
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.matchAndSearch(matchAndSearchRequest, xRequestID, options)];
197
266
  case 1:
198
267
  localVarAxiosArgs = _a.sent();
199
268
  return [2 /*return*/, createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)];
@@ -214,21 +283,34 @@ export var MatchingApiFactory = function (configuration, basePath, axios) {
214
283
  *
215
284
  * @summary Detect facial coordinates
216
285
  * @param {DetectRequest} detectRequest
286
+ * @param {string} [xRequestID]
217
287
  * @param {*} [options] Override http request option.
218
288
  * @throws {RequiredError}
219
289
  */
220
- detect: function (detectRequest, options) {
221
- return localVarFp.detect(detectRequest, options).then(function (request) { return request(axios, basePath); });
290
+ detect: function (detectRequest, xRequestID, options) {
291
+ return localVarFp.detect(detectRequest, xRequestID, options).then(function (request) { return request(axios, basePath); });
222
292
  },
223
293
  /**
224
294
  *
225
- * @summary Compare provided face images in all combinations and return similarity score for each pair.
295
+ * @summary Compare provided face images in all combinations and return the similarity score for each pair.
226
296
  * @param {MatchRequest} matchRequest
297
+ * @param {string} [xRequestID]
298
+ * @param {*} [options] Override http request option.
299
+ * @throws {RequiredError}
300
+ */
301
+ match: function (matchRequest, xRequestID, options) {
302
+ return localVarFp.match(matchRequest, xRequestID, options).then(function (request) { return request(axios, basePath); });
303
+ },
304
+ /**
305
+ *
306
+ * @summary Match and Search in one request
307
+ * @param {MatchAndSearchRequest} matchAndSearchRequest
308
+ * @param {string} [xRequestID]
227
309
  * @param {*} [options] Override http request option.
228
310
  * @throws {RequiredError}
229
311
  */
230
- match: function (matchRequest, options) {
231
- return localVarFp.match(matchRequest, options).then(function (request) { return request(axios, basePath); });
312
+ matchAndSearch: function (matchAndSearchRequest, xRequestID, options) {
313
+ return localVarFp.matchAndSearch(matchAndSearchRequest, xRequestID, options).then(function (request) { return request(axios, basePath); });
232
314
  },
233
315
  };
234
316
  };
@@ -247,27 +329,42 @@ var MatchingApi = /** @class */ (function (_super) {
247
329
  *
248
330
  * @summary Detect facial coordinates
249
331
  * @param {DetectRequest} detectRequest
332
+ * @param {string} [xRequestID]
250
333
  * @param {*} [options] Override http request option.
251
334
  * @throws {RequiredError}
252
335
  * @memberof MatchingApi
253
336
  */
254
- MatchingApi.prototype.detect = function (detectRequest, options) {
337
+ MatchingApi.prototype.detect = function (detectRequest, xRequestID, options) {
255
338
  var _this = this;
256
- return MatchingApiFp(this.configuration).detect(detectRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
339
+ return MatchingApiFp(this.configuration).detect(detectRequest, xRequestID, options).then(function (request) { return request(_this.axios, _this.basePath); });
257
340
  };
258
341
  /**
259
342
  *
260
- * @summary Compare provided face images in all combinations and return similarity score for each pair.
343
+ * @summary Compare provided face images in all combinations and return the similarity score for each pair.
261
344
  * @param {MatchRequest} matchRequest
345
+ * @param {string} [xRequestID]
346
+ * @param {*} [options] Override http request option.
347
+ * @throws {RequiredError}
348
+ * @memberof MatchingApi
349
+ */
350
+ MatchingApi.prototype.match = function (matchRequest, xRequestID, options) {
351
+ var _this = this;
352
+ return MatchingApiFp(this.configuration).match(matchRequest, xRequestID, options).then(function (request) { return request(_this.axios, _this.basePath); });
353
+ };
354
+ /**
355
+ *
356
+ * @summary Match and Search in one request
357
+ * @param {MatchAndSearchRequest} matchAndSearchRequest
358
+ * @param {string} [xRequestID]
262
359
  * @param {*} [options] Override http request option.
263
360
  * @throws {RequiredError}
264
361
  * @memberof MatchingApi
265
362
  */
266
- MatchingApi.prototype.match = function (matchRequest, options) {
363
+ MatchingApi.prototype.matchAndSearch = function (matchAndSearchRequest, xRequestID, options) {
267
364
  var _this = this;
268
- return MatchingApiFp(this.configuration).match(matchRequest, options).then(function (request) { return request(_this.axios, _this.basePath); });
365
+ return MatchingApiFp(this.configuration).matchAndSearch(matchAndSearchRequest, xRequestID, options).then(function (request) { return request(_this.axios, _this.basePath); });
269
366
  };
270
367
  return MatchingApi;
271
368
  }(BaseAPI));
272
369
  export { MatchingApi };
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hpbmctYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tYXRjaGluZy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjs7Ozs7Ozs7OztHQVVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0gsT0FBTyxXQUFnRSxNQUFNLE9BQU8sQ0FBQztBQUVyRix5REFBeUQ7QUFDekQsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQW9GLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN04sYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE9BQU8sRUFBaUIsTUFBTSxTQUFTLENBQUM7QUFTN0Y7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBVSxhQUE2QjtJQUF2QyxpQkEyRTNDO0lBMUVHLE9BQU87UUFDSDs7Ozs7O1dBTUc7UUFDSCxNQUFNLEVBQUUsVUFBTyxhQUE0QixFQUFFLE9BQWdDO1lBQWhDLHdCQUFBLEVBQUEsWUFBZ0M7Ozs7b0JBQ3pFLHFFQUFxRTtvQkFDckUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQTtvQkFDckQsWUFBWSxHQUFHLGFBQWEsQ0FBQztvQkFFN0IsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxhQUFhLEVBQUU7d0JBQ2YsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7cUJBQzNDO29CQUVLLHNCQUFzQix1QkFBSyxNQUFNLEVBQUUsTUFBTSxJQUFLLFdBQVcsR0FBSyxPQUFPLENBQUMsQ0FBQztvQkFDdkUsdUJBQXVCLEdB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
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2hpbmctYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9tYXRjaGluZy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjs7Ozs7Ozs7OztHQVVHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0gsT0FBTyxXQUFnRSxNQUFNLE9BQU8sQ0FBQztBQUVyRix5REFBeUQ7QUFDekQsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQW9GLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN04sYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLEVBQW1DLE9BQU8sRUFBaUIsTUFBTSxTQUFTLENBQUM7QUFhN0Y7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLElBQU0sNEJBQTRCLEdBQUcsVUFBVSxhQUE2QjtJQUF2QyxpQkE4SDNDO0lBN0hHLE9BQU87UUFDSDs7Ozs7OztXQU9HO1FBQ0gsTUFBTSxFQUFFLFVBQU8sYUFBNEIsRUFBRSxVQUFtQixFQUFFLE9BQWdDO1lBQWhDLHdCQUFBLEVBQUEsWUFBZ0M7Ozs7b0JBQzlGLHFFQUFxRTtvQkFDckUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQTtvQkFDckQsWUFBWSxHQUFHLGFBQWEsQ0FBQztvQkFFN0IsY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxhQUFhLEVBQUU7d0JBQ2YsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7cUJBQzNDO29CQUVLLHNCQUFzQix1QkFBSyxNQUFNLEVBQUUsTUFBTSxJQUFLLFdBQVcsR0FBSyxPQUFPLENBQUMsQ0FBQztvQkFD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