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