smartcomply-web-sdk 1.0.89 → 1.0.91
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/camera/ActionDetector.d.ts +2 -1
- package/dist/camera/ActionDetector.d.ts.map +1 -1
- package/dist/camera/ActionDetector.js +21 -5
- package/dist/camera/ActionDetector.js.map +1 -1
- package/dist/client/Smartcomply.d.ts +14 -2
- package/dist/client/Smartcomply.d.ts.map +1 -1
- package/dist/client/Smartcomply.js +15 -2
- package/dist/client/Smartcomply.js.map +1 -1
- package/dist/esm/camera/ActionDetector.d.ts +2 -1
- package/dist/esm/camera/ActionDetector.d.ts.map +1 -1
- package/dist/esm/camera/ActionDetector.js +21 -5
- package/dist/esm/camera/ActionDetector.js.map +1 -1
- package/dist/esm/client/Smartcomply.d.ts +14 -2
- package/dist/esm/client/Smartcomply.d.ts.map +1 -1
- package/dist/esm/client/Smartcomply.js +15 -2
- package/dist/esm/client/Smartcomply.js.map +1 -1
- package/dist/esm/flow/SmartComplyFlow.d.ts +24 -9
- package/dist/esm/flow/SmartComplyFlow.d.ts.map +1 -1
- package/dist/esm/flow/SmartComplyFlow.js +151 -25
- package/dist/esm/flow/SmartComplyFlow.js.map +1 -1
- package/dist/esm/flow/spinner.js +14 -14
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/liveness/LivenessUI.js +83 -83
- package/dist/esm/types/liveness.d.ts +15 -0
- package/dist/esm/types/liveness.d.ts.map +1 -1
- package/dist/flow/SmartComplyFlow.d.ts +24 -9
- package/dist/flow/SmartComplyFlow.d.ts.map +1 -1
- package/dist/flow/SmartComplyFlow.js +152 -25
- package/dist/flow/SmartComplyFlow.js.map +1 -1
- package/dist/flow/spinner.js +14 -14
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/liveness/LivenessUI.js +83 -83
- package/dist/smartcomply.browser.js +108 -11
- package/dist/smartcomply.browser.js.map +3 -3
- package/dist/types/liveness.d.ts +15 -0
- package/dist/types/liveness.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/esm/components/CameraView.d.ts +0 -59
- package/dist/esm/components/CameraView.d.ts.map +0 -1
- package/dist/esm/components/CameraView.js +0 -238
- package/dist/esm/components/CameraView.js.map +0 -1
- package/dist/esm/components/DocumentUpload.d.ts +0 -21
- package/dist/esm/components/DocumentUpload.d.ts.map +0 -1
- package/dist/esm/components/DocumentUpload.js +0 -216
- package/dist/esm/components/DocumentUpload.js.map +0 -1
|
@@ -9,7 +9,8 @@ export declare class ActionDetector {
|
|
|
9
9
|
private blinkHoldCount;
|
|
10
10
|
private blinkDetected;
|
|
11
11
|
private motionDetected;
|
|
12
|
-
private
|
|
12
|
+
private minYaw;
|
|
13
|
+
private maxYaw;
|
|
13
14
|
check(result: FaceDetectionResult): ScanProgress;
|
|
14
15
|
/** Snapshot of what's been detected so far — for reading the result after
|
|
15
16
|
* the scan loop has already ended (e.g. to report alongside the submit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionDetector.d.ts","sourceRoot":"","sources":["../../src/camera/ActionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAwBrD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;
|
|
1
|
+
{"version":3,"file":"ActionDetector.d.ts","sourceRoot":"","sources":["../../src/camera/ActionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAwBrD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;IAErC,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY;IA2ChD;;4DAEwD;IACxD,WAAW,IAAI,YAAY;IAI3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -26,7 +26,10 @@ class ActionDetector {
|
|
|
26
26
|
this.blinkHoldCount = 0;
|
|
27
27
|
this.blinkDetected = false;
|
|
28
28
|
this.motionDetected = false;
|
|
29
|
-
|
|
29
|
+
// Running min/max yaw seen so far in the scan, not a single fixed
|
|
30
|
+
// first-frame baseline (see check() below for why).
|
|
31
|
+
this.minYaw = null;
|
|
32
|
+
this.maxYaw = null;
|
|
30
33
|
}
|
|
31
34
|
check(result) {
|
|
32
35
|
if (!result.faceDetected) {
|
|
@@ -47,10 +50,23 @@ class ActionDetector {
|
|
|
47
50
|
}
|
|
48
51
|
if (!this.motionDetected) {
|
|
49
52
|
const yaw = this.getHeadYaw(result.transformMatrix);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
// A single first-frame baseline used to anchor this check — but the
|
|
54
|
+
// scan's first frame is essentially never a settled, neutral pose
|
|
55
|
+
// (camera/UI is still initializing, the user hasn't found center
|
|
56
|
+
// yet), and that baseline was never re-anchored for the rest of the
|
|
57
|
+
// window. A genuine head turn that happened to move TOWARD that
|
|
58
|
+
// arbitrary first reading, rather than away from it, read as a small
|
|
59
|
+
// delta and was missed — reported live as "blink saved, motion not,"
|
|
60
|
+
// on an ordinary fast look-around. Tracking the running min/max yaw
|
|
61
|
+
// and firing on their SPREAD instead fixes this: it's baseline-free,
|
|
62
|
+
// so it doesn't matter which frame happened to come first or which
|
|
63
|
+
// direction the real turn went — only that a genuine range of motion
|
|
64
|
+
// occurred somewhere across the window.
|
|
65
|
+
if (this.minYaw === null || yaw < this.minYaw)
|
|
66
|
+
this.minYaw = yaw;
|
|
67
|
+
if (this.maxYaw === null || yaw > this.maxYaw)
|
|
68
|
+
this.maxYaw = yaw;
|
|
69
|
+
if (this.maxYaw - this.minYaw >= YAW_MOTION_THRESHOLD_DEG) {
|
|
54
70
|
this.motionDetected = true;
|
|
55
71
|
}
|
|
56
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionDetector.js","sourceRoot":"","sources":["../../src/camera/ActionDetector.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,wBAAwB,GAAG,CAAC,CAAC,CAAC,oDAAoD;AASxF,MAAa,cAAc;IAA3B;QACU,mBAAc,GAAG,CAAC,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ActionDetector.js","sourceRoot":"","sources":["../../src/camera/ActionDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { SDKConfig } from "./Config";
|
|
|
2
2
|
import { OnboardingModule } from "../modules/onboarding/onboarding";
|
|
3
3
|
import { LivenessModule } from "../modules/liveness/liveness";
|
|
4
4
|
import { SessionResponse, SDKInitConfig } from "../types/onboarding";
|
|
5
|
+
import { LivenessResumeInfoResponse } from "../types/liveness";
|
|
5
6
|
/**
|
|
6
7
|
* SmartComply SDK — main entry point.
|
|
7
8
|
*
|
|
@@ -21,7 +22,7 @@ export declare class SmartComply {
|
|
|
21
22
|
* CDN tag they installed with (e.g. @1, which floats to the latest
|
|
22
23
|
* matching release) actually resolved to the version they expect.
|
|
23
24
|
*/
|
|
24
|
-
static readonly VERSION = "1.0.
|
|
25
|
+
static readonly VERSION = "1.0.91";
|
|
25
26
|
private http;
|
|
26
27
|
private clientId;
|
|
27
28
|
private _sessionToken;
|
|
@@ -61,7 +62,7 @@ export declare class SmartComply {
|
|
|
61
62
|
* the request, so the resume_token has to be the one in use throughout.
|
|
62
63
|
*
|
|
63
64
|
* No expires_at is set here — the resume_token's own issuance response
|
|
64
|
-
* only carries resume_expires_at (a
|
|
65
|
+
* only carries resume_expires_at (a 24h invite-link window), not the
|
|
65
66
|
* session's own runtime expiry the way createSession() returns one. The
|
|
66
67
|
* backend still enforces the real expiry server-side regardless; this
|
|
67
68
|
* only means the client-side "session about to expire" warning timer
|
|
@@ -79,5 +80,16 @@ export declare class SmartComply {
|
|
|
79
80
|
* Returns: { brand_name, theme, verification_type, channels, redirect_url, ... }
|
|
80
81
|
*/
|
|
81
82
|
initializeConfig(): Promise<SDKInitConfig>;
|
|
83
|
+
/**
|
|
84
|
+
* Resolve a resume_token to the entry/step it's resuming, without
|
|
85
|
+
* consuming the single-use resume binding (unlike create/, which does).
|
|
86
|
+
* Only meaningful after resumeSession() — a normal createSession()
|
|
87
|
+
* session was never issued for a resume, so this returns a 404
|
|
88
|
+
* (NOT_A_RESUME_TOKEN) for it, same as the backend.
|
|
89
|
+
*
|
|
90
|
+
* GET /v1/sdk/liveness/resume-info/
|
|
91
|
+
* Auth: x-access-token: <sessionToken>
|
|
92
|
+
*/
|
|
93
|
+
getResumeInfo(): Promise<LivenessResumeInfoResponse>;
|
|
82
94
|
}
|
|
83
95
|
//# sourceMappingURL=Smartcomply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smartcomply.d.ts","sourceRoot":"","sources":["../../src/client/Smartcomply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,aAAa,EACd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Smartcomply.d.ts","sourceRoot":"","sources":["../../src/client/Smartcomply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,YAAY;IAEnC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,UAAU,CAA8B;IAEzC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;gBAEpB,MAAM,EAAE,SAAS;IAiB7B,sDAAsD;IACtD,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED,uCAAuC;IACvC,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,gFAAgF;IAChF,IAAI,SAAS,IAAI,aAAa,GAAG,IAAI,CAEpC;IAED;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAgB/C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMxC;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAUhD;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,0BAA0B,CAAC;CAM3D"}
|
|
@@ -75,7 +75,7 @@ class SmartComply {
|
|
|
75
75
|
* the request, so the resume_token has to be the one in use throughout.
|
|
76
76
|
*
|
|
77
77
|
* No expires_at is set here — the resume_token's own issuance response
|
|
78
|
-
* only carries resume_expires_at (a
|
|
78
|
+
* only carries resume_expires_at (a 24h invite-link window), not the
|
|
79
79
|
* session's own runtime expiry the way createSession() returns one. The
|
|
80
80
|
* backend still enforces the real expiry server-side regardless; this
|
|
81
81
|
* only means the client-side "session about to expire" warning timer
|
|
@@ -101,6 +101,19 @@ class SmartComply {
|
|
|
101
101
|
this._sdkConfig = config;
|
|
102
102
|
return config;
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Resolve a resume_token to the entry/step it's resuming, without
|
|
106
|
+
* consuming the single-use resume binding (unlike create/, which does).
|
|
107
|
+
* Only meaningful after resumeSession() — a normal createSession()
|
|
108
|
+
* session was never issued for a resume, so this returns a 404
|
|
109
|
+
* (NOT_A_RESUME_TOKEN) for it, same as the backend.
|
|
110
|
+
*
|
|
111
|
+
* GET /v1/sdk/liveness/resume-info/
|
|
112
|
+
* Auth: x-access-token: <sessionToken>
|
|
113
|
+
*/
|
|
114
|
+
async getResumeInfo() {
|
|
115
|
+
return this.http.sessionRequest("GET", "/v1/sdk/liveness/resume-info/");
|
|
116
|
+
}
|
|
104
117
|
}
|
|
105
118
|
exports.SmartComply = SmartComply;
|
|
106
119
|
/**
|
|
@@ -112,5 +125,5 @@ exports.SmartComply = SmartComply;
|
|
|
112
125
|
* CDN tag they installed with (e.g. @1, which floats to the latest
|
|
113
126
|
* matching release) actually resolved to the version they expect.
|
|
114
127
|
*/
|
|
115
|
-
SmartComply.VERSION = "1.0.
|
|
128
|
+
SmartComply.VERSION = "1.0.91";
|
|
116
129
|
//# sourceMappingURL=Smartcomply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smartcomply.js","sourceRoot":"","sources":["../../src/client/Smartcomply.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,iEAAoE;AACpE,2DAA8D;AAC9D,4CAA4C;
|
|
1
|
+
{"version":3,"file":"Smartcomply.js","sourceRoot":"","sources":["../../src/client/Smartcomply.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAC1C,iEAAoE;AACpE,2DAA8D;AAC9D,4CAA4C;AAO5C;;;;;;;;GAQG;AACH,MAAa,WAAW;IAqBtB,YAAY,MAAiB;QAPrB,kBAAa,GAAkB,IAAI,CAAC;QACpC,sBAAiB,GAAkB,IAAI,CAAC;QACxC,eAAU,GAAyB,IAAI,CAAC;QAM9C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,6BAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,yBAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,kBAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,uCAAuC;IACvC,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,gFAAgF;IAChF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,MAAM,EACN,qBAAqB,EACrB,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC7B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE7C,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAC3C,KAAK,EACL,iBAAiB,CAClB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAC7B,KAAK,EACL,+BAA+B,CAChC,CAAC;IACJ,CAAC;;AA5IH,kCA6IC;AA5IC;;;;;;;;GAQG;AACa,mBAAO,GAAG,QAAQ,AAAX,CAAY"}
|
|
@@ -9,7 +9,8 @@ export declare class ActionDetector {
|
|
|
9
9
|
private blinkHoldCount;
|
|
10
10
|
private blinkDetected;
|
|
11
11
|
private motionDetected;
|
|
12
|
-
private
|
|
12
|
+
private minYaw;
|
|
13
|
+
private maxYaw;
|
|
13
14
|
check(result: FaceDetectionResult): ScanProgress;
|
|
14
15
|
/** Snapshot of what's been detected so far — for reading the result after
|
|
15
16
|
* the scan loop has already ended (e.g. to report alongside the submit
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionDetector.d.ts","sourceRoot":"","sources":["../../../src/camera/ActionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAwBrD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;
|
|
1
|
+
{"version":3,"file":"ActionDetector.d.ts","sourceRoot":"","sources":["../../../src/camera/ActionDetector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAwBrD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAuB;IAErC,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY;IA2ChD;;4DAEwD;IACxD,WAAW,IAAI,YAAY;IAI3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -23,7 +23,10 @@ export class ActionDetector {
|
|
|
23
23
|
this.blinkHoldCount = 0;
|
|
24
24
|
this.blinkDetected = false;
|
|
25
25
|
this.motionDetected = false;
|
|
26
|
-
|
|
26
|
+
// Running min/max yaw seen so far in the scan, not a single fixed
|
|
27
|
+
// first-frame baseline (see check() below for why).
|
|
28
|
+
this.minYaw = null;
|
|
29
|
+
this.maxYaw = null;
|
|
27
30
|
}
|
|
28
31
|
check(result) {
|
|
29
32
|
if (!result.faceDetected) {
|
|
@@ -44,10 +47,23 @@ export class ActionDetector {
|
|
|
44
47
|
}
|
|
45
48
|
if (!this.motionDetected) {
|
|
46
49
|
const yaw = this.getHeadYaw(result.transformMatrix);
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
// A single first-frame baseline used to anchor this check — but the
|
|
51
|
+
// scan's first frame is essentially never a settled, neutral pose
|
|
52
|
+
// (camera/UI is still initializing, the user hasn't found center
|
|
53
|
+
// yet), and that baseline was never re-anchored for the rest of the
|
|
54
|
+
// window. A genuine head turn that happened to move TOWARD that
|
|
55
|
+
// arbitrary first reading, rather than away from it, read as a small
|
|
56
|
+
// delta and was missed — reported live as "blink saved, motion not,"
|
|
57
|
+
// on an ordinary fast look-around. Tracking the running min/max yaw
|
|
58
|
+
// and firing on their SPREAD instead fixes this: it's baseline-free,
|
|
59
|
+
// so it doesn't matter which frame happened to come first or which
|
|
60
|
+
// direction the real turn went — only that a genuine range of motion
|
|
61
|
+
// occurred somewhere across the window.
|
|
62
|
+
if (this.minYaw === null || yaw < this.minYaw)
|
|
63
|
+
this.minYaw = yaw;
|
|
64
|
+
if (this.maxYaw === null || yaw > this.maxYaw)
|
|
65
|
+
this.maxYaw = yaw;
|
|
66
|
+
if (this.maxYaw - this.minYaw >= YAW_MOTION_THRESHOLD_DEG) {
|
|
51
67
|
this.motionDetected = true;
|
|
52
68
|
}
|
|
53
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionDetector.js","sourceRoot":"","sources":["../../../src/camera/ActionDetector.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,wBAAwB,GAAG,CAAC,CAAC,CAAC,oDAAoD;AASxF,MAAM,OAAO,cAAc;IAA3B;QACU,mBAAc,GAAG,CAAC,CAAC;QACnB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ActionDetector.js","sourceRoot":"","sources":["../../../src/camera/ActionDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { SDKConfig } from "./Config";
|
|
|
2
2
|
import { OnboardingModule } from "../modules/onboarding/onboarding";
|
|
3
3
|
import { LivenessModule } from "../modules/liveness/liveness";
|
|
4
4
|
import { SessionResponse, SDKInitConfig } from "../types/onboarding";
|
|
5
|
+
import { LivenessResumeInfoResponse } from "../types/liveness";
|
|
5
6
|
/**
|
|
6
7
|
* SmartComply SDK — main entry point.
|
|
7
8
|
*
|
|
@@ -21,7 +22,7 @@ export declare class SmartComply {
|
|
|
21
22
|
* CDN tag they installed with (e.g. @1, which floats to the latest
|
|
22
23
|
* matching release) actually resolved to the version they expect.
|
|
23
24
|
*/
|
|
24
|
-
static readonly VERSION = "1.0.
|
|
25
|
+
static readonly VERSION = "1.0.91";
|
|
25
26
|
private http;
|
|
26
27
|
private clientId;
|
|
27
28
|
private _sessionToken;
|
|
@@ -61,7 +62,7 @@ export declare class SmartComply {
|
|
|
61
62
|
* the request, so the resume_token has to be the one in use throughout.
|
|
62
63
|
*
|
|
63
64
|
* No expires_at is set here — the resume_token's own issuance response
|
|
64
|
-
* only carries resume_expires_at (a
|
|
65
|
+
* only carries resume_expires_at (a 24h invite-link window), not the
|
|
65
66
|
* session's own runtime expiry the way createSession() returns one. The
|
|
66
67
|
* backend still enforces the real expiry server-side regardless; this
|
|
67
68
|
* only means the client-side "session about to expire" warning timer
|
|
@@ -79,5 +80,16 @@ export declare class SmartComply {
|
|
|
79
80
|
* Returns: { brand_name, theme, verification_type, channels, redirect_url, ... }
|
|
80
81
|
*/
|
|
81
82
|
initializeConfig(): Promise<SDKInitConfig>;
|
|
83
|
+
/**
|
|
84
|
+
* Resolve a resume_token to the entry/step it's resuming, without
|
|
85
|
+
* consuming the single-use resume binding (unlike create/, which does).
|
|
86
|
+
* Only meaningful after resumeSession() — a normal createSession()
|
|
87
|
+
* session was never issued for a resume, so this returns a 404
|
|
88
|
+
* (NOT_A_RESUME_TOKEN) for it, same as the backend.
|
|
89
|
+
*
|
|
90
|
+
* GET /v1/sdk/liveness/resume-info/
|
|
91
|
+
* Auth: x-access-token: <sessionToken>
|
|
92
|
+
*/
|
|
93
|
+
getResumeInfo(): Promise<LivenessResumeInfoResponse>;
|
|
82
94
|
}
|
|
83
95
|
//# sourceMappingURL=Smartcomply.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smartcomply.d.ts","sourceRoot":"","sources":["../../../src/client/Smartcomply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,aAAa,EACd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Smartcomply.d.ts","sourceRoot":"","sources":["../../../src/client/Smartcomply.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EACL,eAAe,EACf,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,OAAO,YAAY;IAEnC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,UAAU,CAA8B;IAEzC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;gBAEpB,MAAM,EAAE,SAAS;IAiB7B,sDAAsD;IACtD,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAEhC;IAED,uCAAuC;IACvC,IAAI,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAEpC;IAED,gFAAgF;IAChF,IAAI,SAAS,IAAI,aAAa,GAAG,IAAI,CAEpC;IAED;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;IAgB/C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAMxC;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAUhD;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,0BAA0B,CAAC;CAM3D"}
|
|
@@ -72,7 +72,7 @@ export class SmartComply {
|
|
|
72
72
|
* the request, so the resume_token has to be the one in use throughout.
|
|
73
73
|
*
|
|
74
74
|
* No expires_at is set here — the resume_token's own issuance response
|
|
75
|
-
* only carries resume_expires_at (a
|
|
75
|
+
* only carries resume_expires_at (a 24h invite-link window), not the
|
|
76
76
|
* session's own runtime expiry the way createSession() returns one. The
|
|
77
77
|
* backend still enforces the real expiry server-side regardless; this
|
|
78
78
|
* only means the client-side "session about to expire" warning timer
|
|
@@ -98,6 +98,19 @@ export class SmartComply {
|
|
|
98
98
|
this._sdkConfig = config;
|
|
99
99
|
return config;
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Resolve a resume_token to the entry/step it's resuming, without
|
|
103
|
+
* consuming the single-use resume binding (unlike create/, which does).
|
|
104
|
+
* Only meaningful after resumeSession() — a normal createSession()
|
|
105
|
+
* session was never issued for a resume, so this returns a 404
|
|
106
|
+
* (NOT_A_RESUME_TOKEN) for it, same as the backend.
|
|
107
|
+
*
|
|
108
|
+
* GET /v1/sdk/liveness/resume-info/
|
|
109
|
+
* Auth: x-access-token: <sessionToken>
|
|
110
|
+
*/
|
|
111
|
+
async getResumeInfo() {
|
|
112
|
+
return this.http.sessionRequest("GET", "/v1/sdk/liveness/resume-info/");
|
|
113
|
+
}
|
|
101
114
|
}
|
|
102
115
|
/**
|
|
103
116
|
* Package version, hardcoded to match package.json — bump this alongside
|
|
@@ -108,5 +121,5 @@ export class SmartComply {
|
|
|
108
121
|
* CDN tag they installed with (e.g. @1, which floats to the latest
|
|
109
122
|
* matching release) actually resolved to the version they expect.
|
|
110
123
|
*/
|
|
111
|
-
SmartComply.VERSION = "1.0.
|
|
124
|
+
SmartComply.VERSION = "1.0.91";
|
|
112
125
|
//# sourceMappingURL=Smartcomply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Smartcomply.js","sourceRoot":"","sources":["../../../src/client/Smartcomply.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"Smartcomply.js","sourceRoot":"","sources":["../../../src/client/Smartcomply.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C;;;;;;;;GAQG;AACH,MAAM,OAAO,WAAW;IAqBtB,YAAY,MAAiB;QAPrB,kBAAa,GAAkB,IAAI,CAAC;QACpC,sBAAiB,GAAkB,IAAI,CAAC;QACxC,eAAU,GAAyB,IAAI,CAAC;QAM9C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,SAAS,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,sDAAsD;IACtD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,uCAAuC;IACvC,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,gFAAgF;IAChF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CACtC,MAAM,EACN,qBAAqB,EACrB,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC7B,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE7C,mEAAmE;QACnE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,WAAmB;QAC/B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAC3C,KAAK,EACL,iBAAiB,CAClB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QACzB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAC7B,KAAK,EACL,+BAA+B,CAChC,CAAC;IACJ,CAAC;;AA3ID;;;;;;;;GAQG;AACa,mBAAO,GAAG,QAAQ,AAAX,CAAY"}
|
|
@@ -14,15 +14,19 @@ export interface FlowOptions {
|
|
|
14
14
|
* deep-link payload, etc.) and pass it straight through here; the SDK
|
|
15
15
|
* does not parse the host page's URL itself.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
17
|
+
* Authenticates the widget as the resumed session (instead of creating a
|
|
18
|
+
* new one) and looks up which step failed, so the customer lands
|
|
19
|
+
* directly on document_capture or liveness instead of the welcome
|
|
20
|
+
* screen — skipping country/ID-type selection, which is pre-filled from
|
|
21
|
+
* the original attempt. Falls back to the normal welcome screen if that
|
|
22
|
+
* lookup doesn't resolve cleanly (an already-used/expired token, or the
|
|
23
|
+
* original channel no longer exists in this config); the resume itself
|
|
24
|
+
* still works correctly via the backend's own resume-match once
|
|
25
|
+
* create/submit is called either way — this only affects which screen
|
|
26
|
+
* is shown first.
|
|
27
|
+
*
|
|
28
|
+
* A data-verification/liveness-only failure has no document channel to
|
|
29
|
+
* re-select, so it goes straight to the liveness step.
|
|
26
30
|
*/
|
|
27
31
|
resumeToken?: string;
|
|
28
32
|
onComplete?: (result: FlowResult) => void;
|
|
@@ -36,6 +40,16 @@ export interface FlowResult {
|
|
|
36
40
|
submittedAt: string | null;
|
|
37
41
|
verificationResult?: VerifyIdentityResponse;
|
|
38
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Whether a showErrorStep() message is about an expired/invalid resume or
|
|
45
|
+
* resubmit link (RESUME_TARGET_UNAVAILABLE / NOT_A_RESUME_TOKEN — see
|
|
46
|
+
* SmartComplyFlow._resolveResumeStep), rather than a plain session timeout.
|
|
47
|
+
* Extracted to a standalone function so this specific classification is
|
|
48
|
+
* independently testable, same as resolveIdTypeInfo below — showErrorStep's
|
|
49
|
+
* own regex-based classification block is otherwise tightly coupled to DOM
|
|
50
|
+
* rendering it doesn't make sense to extract wholesale for this fix.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isResumeLinkErrorMessage(message: string): boolean;
|
|
39
53
|
export declare function resolveIdTypeInfo(typeName: string, isDocumentFlow: boolean): {
|
|
40
54
|
icon: string;
|
|
41
55
|
desc: string;
|
|
@@ -117,6 +131,7 @@ export declare class SmartComplyFlow {
|
|
|
117
131
|
close(): void;
|
|
118
132
|
private mount;
|
|
119
133
|
private initialize;
|
|
134
|
+
private _resolveResumeStep;
|
|
120
135
|
private _showExpiryWarningWhenSafe;
|
|
121
136
|
private static readonly MAX_EXPIRY_DEFERRALS;
|
|
122
137
|
private _expiryDeferrals;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAIxF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAoB,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"SmartComplyFlow.d.ts","sourceRoot":"","sources":["../../../src/flow/SmartComplyFlow.ts"],"names":[],"mappings":"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"}
|