@facesignai/api 1.0.27 → 1.0.29

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@facesignai/api",
3
3
  "package-name": "@facesignai/api",
4
- "version": "1.0.27",
4
+ "version": "1.0.29",
5
5
  "description": "Facesign API wrapper",
6
6
  "repository": {
7
7
  "type": "git",
@@ -10,6 +10,7 @@ export interface RequestParameters {
10
10
  declare class Client {
11
11
  #private;
12
12
  constructor(options?: ClientOptions);
13
+ private getServerUrlFromApiKey;
13
14
  private setLogLevel;
14
15
  private request;
15
16
  readonly session: {
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,MAAM,EAEN,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAE5B,YAAY,EAEZ,gBAAgB,EAGhB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAA;AAIxB,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,eAAe,CAAA;AAE/E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,cAAM,MAAM;;gBAOU,OAAO,CAAC,EAAE,aAAa;IAe3C,OAAO,CAAC,WAAW;YA6BL,OAAO;IA2ErB,SAAgB,OAAO;QACrB;;WAEG;uBACY,eAAe,KAAG,QAAQ,qBAAqB,CAAC;QAQ/D;;WAEG;yBACc,oBAAoB,KAAG,QAAQ,kBAAkB,CAAC;QAQnE;;WAEG;mCACwB,4BAA4B;QAQvD;;WAEG;sBACW,qBAAqB,KAAG,QAAQ,mBAAmB,CAAC;;MAqBnE;IAED,SAAgB,KAAK;QACnB;;WAEG;wBACW,QAAQ,gBAAgB,CAAC;MAQxC;IAED,SAAgB,OAAO;QACrB;;WAEG;wBACW,QAAQ,kBAAkB,CAAC;MAQ1C;CACF;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,MAAM,EAEN,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,4BAA4B,EAE5B,YAAY,EAEZ,gBAAgB,EAGhB,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EAEpB,MAAM,iBAAiB,CAAA;AAIxB,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,eAAe,CAAA;AAE/E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,cAAM,MAAM;;gBAOS,OAAO,CAAC,EAAE,aAAa;IAiB1C,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,WAAW;YA6BL,OAAO;IA2ErB,SAAgB,OAAO;QACrB;;WAEG;uBACY,eAAe,KAAG,QAAQ,qBAAqB,CAAC;QAQ/D;;WAEG;yBACc,oBAAoB,KAAG,QAAQ,kBAAkB,CAAC;QAQnE;;WAEG;mCACwB,4BAA4B;QAQvD;;WAEG;sBACW,qBAAqB,KAAG,QAAQ,mBAAmB,CAAC;;MAqBnE;IAED,SAAgB,KAAK;QACnB;;WAEG;wBACW,QAAQ,gBAAgB,CAAC;MAQxC;IAED,SAAgB,OAAO;QACrB;;WAEG;wBACW,QAAQ,kBAAkB,CAAC;MAQ1C;CACF;AAED,eAAe,MAAM,CAAA"}
@@ -119,6 +119,9 @@ class Client {
119
119
  if (options === null || options === void 0 ? void 0 : options.serverUrl) {
120
120
  __classPrivateFieldSet(this, _Client_serverUrl, options.serverUrl, "f");
121
121
  }
122
+ else if (options === null || options === void 0 ? void 0 : options.auth) {
123
+ __classPrivateFieldSet(this, _Client_serverUrl, this.getServerUrlFromApiKey(options.auth), "f");
124
+ }
122
125
  if (options && options.logLevel) {
123
126
  this.setLogLevel(options.logLevel);
124
127
  }
@@ -126,6 +129,17 @@ class Client {
126
129
  loglevel_1.default.disableAll();
127
130
  }
128
131
  }
132
+ getServerUrlFromApiKey(apiKey) {
133
+ if (apiKey.startsWith('sk_live_')) {
134
+ return 'https://api.facesign.ai';
135
+ }
136
+ else if (apiKey.startsWith('sk_test_')) {
137
+ return 'https://api.dev.facesign.ai';
138
+ }
139
+ // Default fallback for keys without prefix (backward compatibility)
140
+ loglevel_1.default.warn('API key does not have a recognized prefix (sk_live_ or sk_test_). Using default production URL.');
141
+ return 'https://api.facesign.ai';
142
+ }
129
143
  setLogLevel(logLevel) {
130
144
  switch (logLevel) {
131
145
  case api_endpoints_1.ILogLevel.DEBUG: {
@@ -1,11 +1,15 @@
1
- export interface Device {
1
+ export interface Device extends Record<string, unknown> {
2
+ isYaBrowser: boolean;
3
+ isAuthoritative: boolean;
2
4
  isMobile: boolean;
3
5
  isMobileNative: boolean;
4
6
  isTablet: boolean;
5
7
  isiPad: boolean;
6
8
  isiPod: boolean;
7
9
  isiPhone: boolean;
10
+ isiPhoneNative: boolean;
8
11
  isAndroid: boolean;
12
+ isAndroidNative: boolean;
9
13
  isBlackberry: boolean;
10
14
  isOpera: boolean;
11
15
  isIE: boolean;
@@ -20,10 +24,10 @@ export interface Device {
20
24
  isSeaMonkey: boolean;
21
25
  isFlock: boolean;
22
26
  isAmaya: boolean;
27
+ isPhantomJS: boolean;
23
28
  isEpiphany: boolean;
24
29
  isDesktop: boolean;
25
30
  isWindows: boolean;
26
- isWindowsPhone: boolean;
27
31
  isLinux: boolean;
28
32
  isLinux64: boolean;
29
33
  isMac: boolean;
@@ -31,7 +35,7 @@ export interface Device {
31
35
  isBada: boolean;
32
36
  isSamsung: boolean;
33
37
  isRaspberry: boolean;
34
- isBot: boolean;
38
+ isBot: boolean | string;
35
39
  isCurl: boolean;
36
40
  isAndroidTablet: boolean;
37
41
  isWinJs: boolean;
@@ -39,14 +43,20 @@ export interface Device {
39
43
  isSilk: boolean;
40
44
  isCaptive: boolean;
41
45
  isSmartTV: boolean;
46
+ isUC: boolean;
47
+ isFacebook: boolean;
48
+ isAlamoFire: boolean;
49
+ isElectron: boolean;
42
50
  silkAccelerated: boolean;
43
51
  browser: string;
44
- version: string;
52
+ version: string | number;
45
53
  os: string;
46
54
  platform: string;
47
- geoIp: {
48
- [key: string]: unknown;
49
- };
55
+ geoIp: Record<string, string | string[]>;
50
56
  source: string;
57
+ isWechat: boolean;
58
+ isWindowsPhone: boolean;
59
+ electronVersion: string;
60
+ SilkAccelerated?: boolean;
51
61
  }
52
62
  //# sourceMappingURL=deviceDetails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceDetails.d.ts","sourceRoot":"","sources":["../../../src/types/deviceDetails.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,qBAAqB,EAAE,OAAO,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;CACf"}
1
+ {"version":3,"file":"deviceDetails.d.ts","sourceRoot":"","sources":["../../../src/types/deviceDetails.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrD,WAAW,EAAE,OAAO,CAAA;IACpB,eAAe,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,OAAO,CAAA;IACf,qBAAqB,EAAE,OAAO,CAAA;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,OAAO,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,OAAO,CAAA;IACnB,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B"}
@@ -8,16 +8,6 @@ export type CriterionAnalysis = {
8
8
  confidence: number;
9
9
  evaluation: CriterionEvaluation;
10
10
  };
11
- export declare enum Criterion {
12
- behavioralAnomalies = "behavioralAnomalies",
13
- environmentalConsistency = "environmentalConsistency",
14
- eyeAndHeadMovement = "eyeAndHeadMovement",
15
- faceAuthenticity = "faceAuthenticity",
16
- facialExpressionAndMovement = "facialExpressionAndMovement",
17
- interactionConfidence = "interactionConfidence",
18
- lipSyncAccuracy = "lipSyncAccuracy",
19
- presenceOfSuspiciousObjectsOrPeople = "presenceOfSuspiciousObjectsOrPeople",
20
- useOfExternalDevices = "useOfExternalDevices"
21
- }
22
- export type VideoAIAnalysis = Record<Criterion, CriterionAnalysis>;
11
+ export type Criterion = "behavioralAnomalies" | "environmentalConsistency" | "eyeAndHeadMovement" | "faceAuthenticity" | "facialExpressionAndMovement" | "interactionConfidence" | "lipSyncAccuracy" | "presenceOfSuspiciousObjectsOrPeople" | "useOfExternalDevices" | string;
12
+ export type VideoAIAnalysis = Partial<Record<Criterion, CriterionAnalysis>>;
23
13
  //# sourceMappingURL=videoAIAnalysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"videoAIAnalysis.d.ts","sourceRoot":"","sources":["../../../src/types/videoAIAnalysis.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,mBAAmB,CAAA;CAChC,CAAA;AAED,oBAAY,SAAS;IACnB,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,kBAAkB,uBAAuB;IACzC,gBAAgB,qBAAqB;IACrC,2BAA2B,gCAAgC;IAC3D,qBAAqB,0BAA0B;IAC/C,eAAe,oBAAoB;IACnC,mCAAmC,wCAAwC;IAC3E,oBAAoB,yBAAyB;CAC9C;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"videoAIAnalysis.d.ts","sourceRoot":"","sources":["../../../src/types/videoAIAnalysis.ts"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAChC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,mBAAmB,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,SAAS,GACjB,qBAAqB,GACrB,0BAA0B,GAC1B,oBAAoB,GACpB,kBAAkB,GAClB,6BAA6B,GAC7B,uBAAuB,GACvB,iBAAiB,GACjB,qCAAqC,GACrC,sBAAsB,GACtB,MAAM,CAAA;AAEV,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC,CAAA"}
@@ -1,21 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Criterion = exports.CriterionEvaluation = void 0;
3
+ exports.CriterionEvaluation = void 0;
4
4
  var CriterionEvaluation;
5
5
  (function (CriterionEvaluation) {
6
6
  CriterionEvaluation["normal"] = "normal";
7
7
  CriterionEvaluation["suspicious"] = "suspicious";
8
8
  CriterionEvaluation["highFraudRisk"] = "highFraudRisk";
9
9
  })(CriterionEvaluation = exports.CriterionEvaluation || (exports.CriterionEvaluation = {}));
10
- var Criterion;
11
- (function (Criterion) {
12
- Criterion["behavioralAnomalies"] = "behavioralAnomalies";
13
- Criterion["environmentalConsistency"] = "environmentalConsistency";
14
- Criterion["eyeAndHeadMovement"] = "eyeAndHeadMovement";
15
- Criterion["faceAuthenticity"] = "faceAuthenticity";
16
- Criterion["facialExpressionAndMovement"] = "facialExpressionAndMovement";
17
- Criterion["interactionConfidence"] = "interactionConfidence";
18
- Criterion["lipSyncAccuracy"] = "lipSyncAccuracy";
19
- Criterion["presenceOfSuspiciousObjectsOrPeople"] = "presenceOfSuspiciousObjectsOrPeople";
20
- Criterion["useOfExternalDevices"] = "useOfExternalDevices";
21
- })(Criterion = exports.Criterion || (exports.Criterion = {}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@facesignai/api",
3
3
  "package-name": "@facesignai/api",
4
- "version": "1.0.27",
4
+ "version": "1.0.29",
5
5
  "description": "Facesign API wrapper",
6
6
  "repository": {
7
7
  "type": "git",
package/CHANGELOG.md DELETED
@@ -1,105 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to the Facesign API will be documented in this file.
4
-
5
- ## [Unreleased]
6
-
7
-
8
- ## [1.0.16] - 2025-01-29
9
-
10
- ### Added
11
- - Two-Factor Authentication node support:
12
- - `FSTwoFactorChannel` enum with EMAIL and SMS channel options
13
- - `FSTwoFactorContactSource` enum for session_data, module_settings, and recognition_match sources
14
- - `FSTwoFactorOutcome` enum with verified, delivery_failed, failed_unverified, cancelled, and error outcomes
15
- - `FSTwoFactorNode` interface with comprehensive configuration options including:
16
- - Multi-channel delivery (Email via Resend, SMS via Twilio)
17
- - Contact source configuration with field mapping
18
- - Template system with variable support ({{userName}}, {{code}}, {{companyName}})
19
- - Verification settings (OTP length, expiry, max attempts, resend delay)
20
- - `FSPhraseAction.START_TWO_FACTOR_VERIFICATION` action for conversation flow integration
21
- - `FSClientEvent.TWO_FACTOR_CODE_SPOKEN` event for spoken code verification
22
-
23
- ## [1.0.15] - 2025-01-28
24
-
25
- ### Added
26
-
27
- - Advanced configuration options for Face Scan node:
28
- - `captureDelay` - Configurable countdown before capture (0 for immediate)
29
- - `detectionInterval` - How often to check for faces (performance tuning)
30
- - `qualityThreshold` - Overall face quality score requirement
31
- - `blurThreshold` - Clarity detection threshold (lower = stricter)
32
- - `minFaceSize` / `maxFaceSize` - Acceptable face size range in pixels
33
- - `enableSound` - Toggle audio feedback
34
- - `enableHaptics` - Toggle haptic feedback on mobile
35
- - `useWebGL` - Control WebGL acceleration usage
36
- - `maxRetries` - Maximum capture attempts allowed
37
-
38
- ## [1.0.14] - 2025-01-28
39
-
40
- ### Added
41
-
42
- - Localization support for permissions screen text:
43
- - `permissionsButtonTextTranslates` - Localized button text per language
44
- - `permissionsMainHeadingTranslates` - Localized main heading per language
45
- - `permissionsSubheadingTranslates` - Localized subheading per language
46
-
47
- ### Changed
48
-
49
- - Kept original non-localized fields for backward compatibility
50
-
51
- ## [1.0.13] - 2025-01-28
52
-
53
- ### Added
54
-
55
- - Face Scan mode enum (`FSFaceScanMode`) with CAPTURE and COMPARE modes
56
- - Enhanced `FSFaceScanNode` interface with mode-based configuration
57
- - `saveToField` option for capture-only mode to store face image URL
58
- - `CAPTURED` outcome for capture-only face scan mode
59
-
60
- ### Changed
61
-
62
- - Reorganized `FSFaceScanOutcome` enum to separate capture and compare mode outcomes
63
- - Updated `FSFaceScanNode` to support both capture-only and capture+compare modes
64
-
65
- ## [1.0.12] - 2025-01-27
66
-
67
- ### Added
68
-
69
- - Face Scan node type (`FACE_SCAN`) for 1:1 biometric face matching
70
- - `FSFaceScanOutcome` enum with match outcomes (match, noMatch, noFace, error)
71
- - `FSFaceScanNode` interface with configuration for reference image sources and matching threshold
72
-
73
- ## [1.0.11] - 2025-01-27
74
-
75
- ### Added
76
-
77
- - Permissions screen customization options to `SessionSettings`:
78
- - `permissionsButtonText` - Custom text for the permissions request button
79
- - `permissionsBackgroundType` - Choose between 'avatar' or 'color' background
80
- - `permissionsBackgroundColor` - Custom color when using solid color background
81
- - `permissionsMainHeading` - Custom main heading text (e.g., "You're about to chat with a digital assistant.")
82
- - `permissionsSubheading` - Custom subheading text (e.g., "Allow FaceSign to use your camera and microphone?")
83
-
84
- ## [1.0.10] - 2024-05-20
85
-
86
- ### Added
87
-
88
- - Document Scanning node type (`DOCUMENT_SCAN`) to support Microblink document scanning integration
89
- - New `MicroblinkDocumentType` enum with supported document types
90
- - `FSDocumentScanOutcome` enum for tracking scan outcomes
91
- - `FSDocumentScanNode` interface with configuration options for document scanning
92
-
93
- ### Changed
94
-
95
- - Updated `FSNode` union type to include the new DocumentScan node type
96
-
97
- ## [1.0.9] - Previous version
98
-
99
- Initial version with support for:
100
-
101
- - Start/End nodes
102
- - Conversation nodes
103
- - Liveness Detection nodes
104
- - Email Input nodes
105
- - Data Validation nodes