@regulaforensics/facesdk-webclient 4.1.5 → 5.1.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 (31) hide show
  1. package/dist/cjs-es5/api/liveness-api.js +355 -0
  2. package/dist/cjs-es5/api/liveness20-api.js +432 -0
  3. package/dist/cjs-es5/api.js +2 -1
  4. package/dist/cjs-es5/models/face-quality-scenarios.js +2 -1
  5. package/dist/cjs-es5/models/faces-response-all-of.js +16 -0
  6. package/dist/cjs-es5/models/faces-response.js +16 -0
  7. package/dist/cjs-es5/models/image-source.js +3 -2
  8. package/dist/cjs-es5/models/index.js +4 -1
  9. package/dist/cjs-es5/models/liveness-transaction.js +16 -0
  10. package/dist/esm-es5/api/liveness-api.js +352 -0
  11. package/dist/esm-es5/api/liveness20-api.js +429 -0
  12. package/dist/esm-es5/api.js +2 -1
  13. package/dist/esm-es5/models/face-quality-scenarios.js +2 -1
  14. package/dist/esm-es5/models/faces-response-all-of.js +14 -0
  15. package/dist/esm-es5/models/faces-response.js +14 -0
  16. package/dist/esm-es5/models/image-source.js +3 -2
  17. package/dist/esm-es5/models/index.js +4 -1
  18. package/dist/esm-es5/models/liveness-transaction.js +14 -0
  19. package/package.json +1 -1
  20. package/src/api/liveness-api.ts +268 -0
  21. package/src/api/liveness20-api.ts +340 -0
  22. package/src/api.ts +1 -0
  23. package/src/models/face-quality-scenarios.ts +1 -0
  24. package/src/models/faces-response-all-of.ts +37 -0
  25. package/src/models/faces-response.ts +26 -0
  26. package/src/models/image-source.ts +2 -1
  27. package/src/models/index.ts +3 -0
  28. package/src/models/liveness-transaction.ts +78 -0
  29. package/src/models/match-and-search-response-all-of-detections.ts +3 -4
  30. package/src/models/match-and-search-response-all-of.ts +8 -8
  31. package/src/models/search-parameters.ts +1 -1
@@ -0,0 +1,355 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Regula FaceSDK Web API
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
+ *
8
+ * The version of the OpenAPI document: 4.1.3
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ var __extends = (this && this.__extends) || (function () {
16
+ var extendStatics = function (d, b) {
17
+ extendStatics = Object.setPrototypeOf ||
18
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
19
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
20
+ return extendStatics(d, b);
21
+ };
22
+ return function (d, b) {
23
+ extendStatics(d, b);
24
+ function __() { this.constructor = d; }
25
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
26
+ };
27
+ })();
28
+ var __assign = (this && this.__assign) || function () {
29
+ __assign = Object.assign || function(t) {
30
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
31
+ s = arguments[i];
32
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
33
+ t[p] = s[p];
34
+ }
35
+ return t;
36
+ };
37
+ return __assign.apply(this, arguments);
38
+ };
39
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
40
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
41
+ return new (P || (P = Promise))(function (resolve, reject) {
42
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
43
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
44
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
45
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
46
+ });
47
+ };
48
+ var __generator = (this && this.__generator) || function (thisArg, body) {
49
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
50
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
51
+ function verb(n) { return function (v) { return step([n, v]); }; }
52
+ function step(op) {
53
+ if (f) throw new TypeError("Generator is already executing.");
54
+ while (_) try {
55
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
56
+ if (y = 0, t) op = [op[0] & 2, t.value];
57
+ switch (op[0]) {
58
+ case 0: case 1: t = op; break;
59
+ case 4: _.label++; return { value: op[1], done: false };
60
+ case 5: _.label++; y = op[1]; op = [0]; continue;
61
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
62
+ default:
63
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
64
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
65
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
66
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
67
+ if (t[2]) _.ops.pop();
68
+ _.trys.pop(); continue;
69
+ }
70
+ op = body.call(thisArg, _);
71
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
72
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
73
+ }
74
+ };
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.LivenessApi = exports.LivenessApiFactory = exports.LivenessApiFp = exports.LivenessApiAxiosParamCreator = void 0;
77
+ var axios_1 = require("axios");
78
+ // Some imports not used depending on template conditions
79
+ // @ts-ignore
80
+ var common_1 = require("../common");
81
+ // @ts-ignore
82
+ var base_1 = require("../base");
83
+ /**
84
+ * LivenessApi - axios parameter creator
85
+ * @export
86
+ */
87
+ exports.LivenessApiAxiosParamCreator = function (configuration) {
88
+ var _this = this;
89
+ return {
90
+ /**
91
+ *
92
+ * @summary Liveness 2.0 metadata
93
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
94
+ * @param {*} [options] Override http request option.
95
+ * @throws {RequiredError}
96
+ */
97
+ livenessMetadata: function (eRRORUNKNOWN, options) {
98
+ if (options === void 0) { options = {}; }
99
+ return __awaiter(_this, void 0, void 0, function () {
100
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
101
+ return __generator(this, function (_a) {
102
+ // verify required parameter 'eRRORUNKNOWN' is not null or undefined
103
+ common_1.assertParamExists('livenessMetadata', 'eRRORUNKNOWN', eRRORUNKNOWN);
104
+ localVarPath = "/api/v2/liveness/metadata";
105
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
106
+ if (configuration) {
107
+ baseOptions = configuration.baseOptions;
108
+ }
109
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
110
+ localVarHeaderParameter = {};
111
+ localVarQueryParameter = {};
112
+ if (eRRORUNKNOWN !== undefined) {
113
+ localVarQueryParameter[''] = eRRORUNKNOWN;
114
+ }
115
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
116
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
117
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
118
+ return [2 /*return*/, {
119
+ url: common_1.toPathString(localVarUrlObj),
120
+ options: localVarRequestOptions,
121
+ }];
122
+ });
123
+ });
124
+ },
125
+ /**
126
+ *
127
+ * @summary Liveness 2.0 portrait
128
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
129
+ * @param {*} [options] Override http request option.
130
+ * @throws {RequiredError}
131
+ */
132
+ livenessPortrait: function (eRRORUNKNOWN, options) {
133
+ if (options === void 0) { options = {}; }
134
+ return __awaiter(_this, void 0, void 0, function () {
135
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
136
+ return __generator(this, function (_a) {
137
+ // verify required parameter 'eRRORUNKNOWN' is not null or undefined
138
+ common_1.assertParamExists('livenessPortrait', 'eRRORUNKNOWN', eRRORUNKNOWN);
139
+ localVarPath = "/api/v2/liveness/portrait";
140
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
141
+ if (configuration) {
142
+ baseOptions = configuration.baseOptions;
143
+ }
144
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
145
+ localVarHeaderParameter = {};
146
+ localVarQueryParameter = {};
147
+ if (eRRORUNKNOWN !== undefined) {
148
+ localVarQueryParameter[''] = eRRORUNKNOWN;
149
+ }
150
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
151
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
152
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
153
+ return [2 /*return*/, {
154
+ url: common_1.toPathString(localVarUrlObj),
155
+ options: localVarRequestOptions,
156
+ }];
157
+ });
158
+ });
159
+ },
160
+ /**
161
+ *
162
+ * @summary Liveness 2.0 video
163
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
164
+ * @param {*} [options] Override http request option.
165
+ * @throws {RequiredError}
166
+ */
167
+ livenessVideo: function (eRRORUNKNOWN, options) {
168
+ if (options === void 0) { options = {}; }
169
+ return __awaiter(_this, void 0, void 0, function () {
170
+ var localVarPath, localVarUrlObj, baseOptions, localVarRequestOptions, localVarHeaderParameter, localVarQueryParameter, headersFromBaseOptions;
171
+ return __generator(this, function (_a) {
172
+ // verify required parameter 'eRRORUNKNOWN' is not null or undefined
173
+ common_1.assertParamExists('livenessVideo', 'eRRORUNKNOWN', eRRORUNKNOWN);
174
+ localVarPath = "/api/v2/liveness/video";
175
+ localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
176
+ if (configuration) {
177
+ baseOptions = configuration.baseOptions;
178
+ }
179
+ localVarRequestOptions = __assign(__assign({ method: 'GET' }, baseOptions), options);
180
+ localVarHeaderParameter = {};
181
+ localVarQueryParameter = {};
182
+ if (eRRORUNKNOWN !== undefined) {
183
+ localVarQueryParameter[''] = eRRORUNKNOWN;
184
+ }
185
+ common_1.setSearchParams(localVarUrlObj, localVarQueryParameter);
186
+ headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
187
+ localVarRequestOptions.headers = __assign(__assign(__assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
188
+ return [2 /*return*/, {
189
+ url: common_1.toPathString(localVarUrlObj),
190
+ options: localVarRequestOptions,
191
+ }];
192
+ });
193
+ });
194
+ },
195
+ };
196
+ };
197
+ /**
198
+ * LivenessApi - functional programming interface
199
+ * @export
200
+ */
201
+ exports.LivenessApiFp = function (configuration) {
202
+ var localVarAxiosParamCreator = exports.LivenessApiAxiosParamCreator(configuration);
203
+ return {
204
+ /**
205
+ *
206
+ * @summary Liveness 2.0 metadata
207
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
208
+ * @param {*} [options] Override http request option.
209
+ * @throws {RequiredError}
210
+ */
211
+ livenessMetadata: function (eRRORUNKNOWN, options) {
212
+ return __awaiter(this, void 0, void 0, function () {
213
+ var localVarAxiosArgs;
214
+ return __generator(this, function (_a) {
215
+ switch (_a.label) {
216
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.livenessMetadata(eRRORUNKNOWN, options)];
217
+ case 1:
218
+ localVarAxiosArgs = _a.sent();
219
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
220
+ }
221
+ });
222
+ });
223
+ },
224
+ /**
225
+ *
226
+ * @summary Liveness 2.0 portrait
227
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
228
+ * @param {*} [options] Override http request option.
229
+ * @throws {RequiredError}
230
+ */
231
+ livenessPortrait: function (eRRORUNKNOWN, options) {
232
+ return __awaiter(this, void 0, void 0, function () {
233
+ var localVarAxiosArgs;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.livenessPortrait(eRRORUNKNOWN, options)];
237
+ case 1:
238
+ localVarAxiosArgs = _a.sent();
239
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
240
+ }
241
+ });
242
+ });
243
+ },
244
+ /**
245
+ *
246
+ * @summary Liveness 2.0 video
247
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
248
+ * @param {*} [options] Override http request option.
249
+ * @throws {RequiredError}
250
+ */
251
+ livenessVideo: function (eRRORUNKNOWN, options) {
252
+ return __awaiter(this, void 0, void 0, function () {
253
+ var localVarAxiosArgs;
254
+ return __generator(this, function (_a) {
255
+ switch (_a.label) {
256
+ case 0: return [4 /*yield*/, localVarAxiosParamCreator.livenessVideo(eRRORUNKNOWN, options)];
257
+ case 1:
258
+ localVarAxiosArgs = _a.sent();
259
+ return [2 /*return*/, common_1.createRequestFunction(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)];
260
+ }
261
+ });
262
+ });
263
+ },
264
+ };
265
+ };
266
+ /**
267
+ * LivenessApi - factory interface
268
+ * @export
269
+ */
270
+ exports.LivenessApiFactory = function (configuration, basePath, axios) {
271
+ var localVarFp = exports.LivenessApiFp(configuration);
272
+ return {
273
+ /**
274
+ *
275
+ * @summary Liveness 2.0 metadata
276
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
277
+ * @param {*} [options] Override http request option.
278
+ * @throws {RequiredError}
279
+ */
280
+ livenessMetadata: function (eRRORUNKNOWN, options) {
281
+ return localVarFp.livenessMetadata(eRRORUNKNOWN, options).then(function (request) { return request(axios, basePath); });
282
+ },
283
+ /**
284
+ *
285
+ * @summary Liveness 2.0 portrait
286
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
287
+ * @param {*} [options] Override http request option.
288
+ * @throws {RequiredError}
289
+ */
290
+ livenessPortrait: function (eRRORUNKNOWN, options) {
291
+ return localVarFp.livenessPortrait(eRRORUNKNOWN, options).then(function (request) { return request(axios, basePath); });
292
+ },
293
+ /**
294
+ *
295
+ * @summary Liveness 2.0 video
296
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
297
+ * @param {*} [options] Override http request option.
298
+ * @throws {RequiredError}
299
+ */
300
+ livenessVideo: function (eRRORUNKNOWN, options) {
301
+ return localVarFp.livenessVideo(eRRORUNKNOWN, options).then(function (request) { return request(axios, basePath); });
302
+ },
303
+ };
304
+ };
305
+ /**
306
+ * LivenessApi - object-oriented interface
307
+ * @export
308
+ * @class LivenessApi
309
+ * @extends {BaseAPI}
310
+ */
311
+ var LivenessApi = /** @class */ (function (_super) {
312
+ __extends(LivenessApi, _super);
313
+ function LivenessApi() {
314
+ return _super !== null && _super.apply(this, arguments) || this;
315
+ }
316
+ /**
317
+ *
318
+ * @summary Liveness 2.0 metadata
319
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
320
+ * @param {*} [options] Override http request option.
321
+ * @throws {RequiredError}
322
+ * @memberof LivenessApi
323
+ */
324
+ LivenessApi.prototype.livenessMetadata = function (eRRORUNKNOWN, options) {
325
+ var _this = this;
326
+ return exports.LivenessApiFp(this.configuration).livenessMetadata(eRRORUNKNOWN, options).then(function (request) { return request(_this.axios, _this.basePath); });
327
+ };
328
+ /**
329
+ *
330
+ * @summary Liveness 2.0 portrait
331
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
332
+ * @param {*} [options] Override http request option.
333
+ * @throws {RequiredError}
334
+ * @memberof LivenessApi
335
+ */
336
+ LivenessApi.prototype.livenessPortrait = function (eRRORUNKNOWN, options) {
337
+ var _this = this;
338
+ return exports.LivenessApiFp(this.configuration).livenessPortrait(eRRORUNKNOWN, options).then(function (request) { return request(_this.axios, _this.basePath); });
339
+ };
340
+ /**
341
+ *
342
+ * @summary Liveness 2.0 video
343
+ * @param {number} eRRORUNKNOWN ID of the current liveness transaction.
344
+ * @param {*} [options] Override http request option.
345
+ * @throws {RequiredError}
346
+ * @memberof LivenessApi
347
+ */
348
+ LivenessApi.prototype.livenessVideo = function (eRRORUNKNOWN, options) {
349
+ var _this = this;
350
+ return exports.LivenessApiFp(this.configuration).livenessVideo(eRRORUNKNOWN, options).then(function (request) { return request(_this.axios, _this.basePath); });
351
+ };
352
+ return LivenessApi;
353
+ }(base_1.BaseAPI));
354
+ exports.LivenessApi = LivenessApi;
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZW5lc3MtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9saXZlbmVzcy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9CQUFvQjtBQUNwQixvQkFBb0I7QUFDcEI7Ozs7Ozs7Ozs7R0FVRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0gsK0JBQXFGO0FBRXJGLHlEQUF5RDtBQUN6RCxhQUFhO0FBQ2Isb0NBQTZOO0FBQzdOLGFBQWE7QUFDYixnQ0FBNkY7QUFDN0Y7OztHQUdHO0FBQ1UsUUFBQSw0QkFBNEIsR0FBRyxVQUFVLGFBQTZCO0lBQXZDLGlCQWtIM0M7SUFqSEcsT0FBTztRQUNIOzs7Ozs7V0FNRztRQUNILGdCQUFnQixFQUFFLFVBQU8sWUFBb0IsRUFBRSxPQUFnQztZQUFoQyx3QkFBQSxFQUFBLFlBQWdDOzs7O29CQUMzRSxvRUFBb0U7b0JBQ3BFLDBCQUFpQixDQUFDLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQTtvQkFDN0QsWUFBWSxHQUFHLDJCQUEyQixDQUFDO29CQUUzQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLHVCQUFjLENBQUMsQ0FBQztvQkFFN0QsSUFBSSxhQUFhLEVBQUU7d0JBQ2YsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7cUJBQzNDO29CQUVLLHNCQUFzQix1QkFBSyxNQUFNLEVBQUUsS0FBSyxJQUFLLFdBQVcsR0FBSyxPQUFPLENBQUMsQ0FBQztvQkFDdEUsdUJBQXVCLEdBQUcsRUFBUyxDQUFDO29CQUNwQyxzQkFBc0IsR0FBRyxFQUFTLENBQUM7b0JBRXpDLElBQUksWUFBWSxLQUFLLFNBQVMsRUFBRTt3QkFDNUIsc0JBQXNCLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDO3FCQUM3QztvQkFJRCx3QkFBZSxDQUFDLGNB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