@frankieone/one-sdk 0.2.2-alpha → 0.3.0-alpha
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/README.md +1 -1
- package/dist/commit.txt +1 -1
- package/dist/esm/modules/biometrics/types/events.d.ts +9 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js +89 -50
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js.map +1 -1
- package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js +1 -0
- package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js.map +1 -1
- package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/index.js +13 -11
- package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/index.js.map +1 -1
- package/dist/esm/modules/common/modules/ReactiveStore.js +1 -0
- package/dist/esm/modules/common/modules/ReactiveStore.js.map +1 -1
- package/dist/esm/modules/common/modules/objectUtils.d.ts +1 -0
- package/dist/esm/modules/common/modules/objectUtils.js +4 -4
- package/dist/esm/modules/common/modules/objectUtils.js.map +1 -1
- package/dist/esm/modules/common/shared/models/Document.d.ts +9 -10
- package/dist/esm/modules/common/shared/models/Document.js.map +1 -1
- package/dist/esm/modules/common/types/Configuration.d.ts +1 -0
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.d.ts +1 -0
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js +17 -15
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts +8 -2
- package/dist/esm/modules/frankie-client/clients/IDVClient.js +4 -2
- package/dist/esm/modules/frankie-client/clients/IDVClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/OCRClient.d.ts +2 -1
- package/dist/esm/modules/frankie-client/clients/OCRClient.js +4 -6
- package/dist/esm/modules/frankie-client/clients/OCRClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/index.js +19 -14
- package/dist/esm/modules/frankie-client/index.js.map +1 -1
- package/dist/esm/modules/frankie-client/mocks/biometrics/{idvSubmissoin.d.ts → idvSubmission.d.ts} +1 -0
- package/dist/esm/modules/frankie-client/mocks/biometrics/{idvSubmissoin.js → idvSubmission.js} +13 -1
- package/dist/esm/modules/frankie-client/mocks/biometrics/{idvSubmissoin.js.map → idvSubmission.js.map} +1 -1
- package/dist/esm/modules/frankie-client/mocks/index.d.ts +4 -8
- package/dist/esm/modules/frankie-client/mocks/index.js +13 -7
- package/dist/esm/modules/frankie-client/mocks/index.js.map +1 -1
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.d.ts +23 -3
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js +25 -20
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js.map +1 -1
- package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.d.ts +23 -0
- package/dist/esm/modules/frankie-client/mocks/ocr/{driversLicence.js → ocrSubmission.js} +50 -46
- package/dist/esm/modules/frankie-client/mocks/ocr/ocrSubmission.js.map +1 -0
- package/dist/esm/modules/frankie-client/mocks/simplifier.d.ts +28 -0
- package/dist/esm/modules/frankie-client/mocks/simplifier.js +208 -0
- package/dist/esm/modules/frankie-client/mocks/simplifier.js.map +1 -0
- package/dist/esm/modules/index.d.ts +5 -0
- package/dist/esm/modules/index.js +1 -0
- package/dist/esm/modules/index.js.map +1 -1
- package/dist/esm/modules/individual/actions/search.js +3 -1
- package/dist/esm/modules/individual/actions/search.js.map +1 -1
- package/dist/esm/modules/ocr/actions/start.d.ts +1 -0
- package/dist/esm/modules/ocr/actions/start.js +14 -14
- package/dist/esm/modules/ocr/actions/start.js.map +1 -1
- package/dist/esm/modules/ocr/index.d.ts +1 -0
- package/dist/esm/modules/ocr/index.js +1 -0
- package/dist/esm/modules/ocr/index.js.map +1 -1
- package/dist/esm/modules/sdk/parseConfiguration.js +2 -1
- package/dist/esm/modules/sdk/parseConfiguration.js.map +1 -1
- package/dist/esm/modules/sdk/types/configuration.d.ts +6 -1
- package/dist/esm/modules/sdk/types/configuration.js.map +1 -1
- package/dist/umd/biometrics-dummy.js +1 -1
- package/dist/umd/biometrics-dummy.js.map +1 -1
- package/dist/umd/biometrics-ocrlabs.js +1 -1
- package/dist/umd/biometrics-ocrlabs.js.map +1 -1
- package/dist/umd/device-sardine.js +1 -1
- package/dist/umd/oneSdk.umd.js +1 -1
- package/dist/umd/oneSdk.umd.js.map +1 -1
- package/package.json +5 -7
- package/dist/esm/modules/frankie-client/mocks/ocr/driversLicence.d.ts +0 -15
- package/dist/esm/modules/frankie-client/mocks/ocr/driversLicence.js.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EventHub, RecipeConfiguration } from "../../common";
|
|
2
2
|
import { FrankieApiClient } from "../../frankie-client";
|
|
3
3
|
import { SetRequired } from "type-fest";
|
|
4
|
+
import { SimplifiedMockOptions } from "../../frankie-client/mocks/simplifier";
|
|
4
5
|
import { GlobalEvents } from "./events";
|
|
5
6
|
import { OneSdkContext } from "./module";
|
|
6
7
|
/**
|
|
@@ -39,12 +40,16 @@ export declare enum SdkModes {
|
|
|
39
40
|
PROD = "production",
|
|
40
41
|
DUMMY = "dummy"
|
|
41
42
|
}
|
|
43
|
+
export declare type DummyModeOptions = {
|
|
44
|
+
modeName: SdkModes.DUMMY;
|
|
45
|
+
mocks: SimplifiedMockOptions;
|
|
46
|
+
};
|
|
42
47
|
export declare type RecipeOption = string | RecipeConfiguration;
|
|
43
48
|
export declare type RecipeParsed = SetRequired<RecipeConfiguration, "name">;
|
|
44
49
|
export declare type OneSdkRootParameters = {
|
|
45
50
|
recipe?: RecipeOption;
|
|
46
51
|
} & ({
|
|
47
|
-
mode: SdkModes.DUMMY;
|
|
52
|
+
mode: SdkModes.DUMMY | DummyModeOptions;
|
|
48
53
|
session?: {
|
|
49
54
|
token: string;
|
|
50
55
|
} | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../../modules/sdk/types/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../../modules/sdk/types/configuration.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,2BAAe,CAAA;AACjB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[795],{6479:(e,t,i)=>{i.r(t),i.d(t,{wrapper:()=>s});var n=i(5669),o=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function l(e){try{r(n.next(e))}catch(e){s(e)}}function
|
|
1
|
+
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[795],{6479:(e,t,i)=>{i.r(t),i.d(t,{wrapper:()=>s});var n=i(5669),o=function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function l(e){try{r(n.next(e))}catch(e){s(e)}}function c(e){try{r(n.throw(e))}catch(e){s(e)}}function r(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(l,c)}r((n=n.apply(e,t||[])).next())}))};const s={vendor:"dummy-biometrics",initialise(e){return o(this,void 0,void 0,(function*(){const{mountElement:t}=e,i=new n.B(e.frankieClient);return yield i.getToken(),t.appendChild(yield l(Object.assign(Object.assign({},e),{idvClient:i}))),{vendor:"dummy-biometrics"}}))}},l=e=>o(void 0,void 0,void 0,(function*(){const{eventHub:t,idvClient:i,recipe:{biometrics:{is_synchronous:n}}}=e,s=document.createElement("div");s.style.position="relative",s.style.height="480px",s.style.width="640px",s.style.margin="0 auto",s.style.overflow="hidden";const l=document.createElement("h3");l.innerText="Take a selfie!",l.style.position="relative",l.style.marginBottom="-40px",l.style.zIndex="1",l.style.color="white",s.appendChild(l);const r=document.createElement("div");r.style.height="100%",r.style.width="100%",r.style.position="absolute",r.style.display="flex",r.style.alignItems="center",r.style.justifyContent="center",r.innerHTML='<svg style=\'display: inline-block; width: 50px; margin-left: 20px;\' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" enable-background="new 0 0 64 64"><path d="M32,2C15.431,2,2,15.432,2,32c0,16.568,13.432,30,30,30c16.568,0,30-13.432,30-30C62,15.432,48.568,2,32,2z M25.025,50 l-0.02-0.02L24.988,50L11,35.6l7.029-7.164l6.977,7.184l21-21.619L53,21.199L25.025,50z" fill="#43a047"/></svg>';const d=document.createElement("video");d.autoplay=!0,d.autofocus=!0,s.appendChild(d);const a=document.createElement("img");a.src="data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%22740%22 height%3D%221800%22%3E%0D %3Cpath fill-opacity%3D%22.80%22 d%3D%22M0 1800V0h740v1800H0zm237-914.056c0 71.601 59.104 175.672 132.021 175.672s132.022-101.453 132.022-175.672c0-83.917-59.107-151.944-132.022-151.944C296.108 734 237 802.027 237 885.944z%22%2F%3E%0D %3Cpath fill%3D%22none%22 stroke%3D%22%23FFF%22 stroke-width%3D%223%22 d%3D%22M237 885.944c0 71.601 59.104 175.672 132.021 175.672s132.022-101.453 132.022-175.672c0-83.917-59.107-151.944-132.022-151.944C296.108 734 237 802.027 237 885.944z%22%2F%3E%0D%3C%2Fsvg%3E%0D",a.style.position="absolute",a.style.top="0",a.style.left="0",a.style.height="1450px",a.style.width="640px",a.style.marginTop="-500px",s.appendChild(a);const p=yield c();d.srcObject=p;const u=document.createElement("button");return u.style.position="relative",u.style.marginTop="-80px",u.style.borderRadius="50%",u.style.height="50px",u.style.width="50px",u.style.background="white",u.style.outline="2px solid white",u.style.outlineOffset="2px",u.style.zIndex="1",u.onclick=()=>o(void 0,void 0,void 0,(function*(){u.disabled=!0,u.style.background="lightgrey";const{checkStatus:e}=yield i.initProcess({isSynchronous:!!n});p.getTracks().forEach((e=>e.stop())),l.remove(),d.remove(),u.remove(),a.remove(),s.appendChild(r),t.emit(n?"results":"processing",{checkStatus:e,processing:!0})})),s.appendChild(u),s})),c=()=>o(void 0,void 0,void 0,(function*(){if(navigator.mediaDevices.getUserMedia)return navigator.mediaDevices.getUserMedia({video:{facingMode:"user"}});throw new Error("No media device")}))}}]);
|
|
2
2
|
//# sourceMappingURL=biometrics-dummy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometrics-dummy.js","mappings":"ibAIO,MAAMA,EAAyB,CACpCC,OAAQ,mBACFC,WAAWC,G,yCACf,MAAM,aAAEC,GAAiBD,EACnBE,EAAY,IAAIC,EAAA,EAAUH,EAAQI,eAGxC,aAFMF,EAAUG,WAChBJ,EAAaK,kBAAkBC,EAAkB,OAAD,wBAAMP,GAAO,CAAEE,gBACxD,CACLJ,OAAQ,yBAIRS,EAA2BP,GAAsD,OAAD,6BACpF,MAAM,
|
|
1
|
+
{"version":3,"file":"biometrics-dummy.js","mappings":"ibAIO,MAAMA,EAAyB,CACpCC,OAAQ,mBACFC,WAAWC,G,yCACf,MAAM,aAAEC,GAAiBD,EACnBE,EAAY,IAAIC,EAAA,EAAUH,EAAQI,eAGxC,aAFMF,EAAUG,WAChBJ,EAAaK,kBAAkBC,EAAkB,OAAD,wBAAMP,GAAO,CAAEE,gBACxD,CACLJ,OAAQ,yBAIRS,EAA2BP,GAAsD,OAAD,6BACpF,MAAM,SACJQ,EAAQ,UACRN,EACAO,QACEC,YAAcC,eAAgBC,KAE9BZ,EAEEa,EAAQC,SAASC,cAAc,OACrCF,EAAMG,MAAMC,SAAW,WACvBJ,EAAMG,MAAME,OAAS,QACrBL,EAAMG,MAAMG,MAAQ,QACpBN,EAAMG,MAAMI,OAAS,SACrBP,EAAMG,MAAMK,SAAW,SAEvB,MAAMC,EAAQR,SAASC,cAAc,MACrCO,EAAMC,UAAY,iBAClBD,EAAMN,MAAMC,SAAW,WACvBK,EAAMN,MAAMQ,aAAe,QAC3BF,EAAMN,MAAMS,OAAS,IACrBH,EAAMN,MAAMU,MAAQ,QACpBb,EAAMP,YAAYgB,GAElB,MAAMK,EAAWb,SAASC,cAAc,OACxCY,EAASX,MAAME,OAAS,OACxBS,EAASX,MAAMG,MAAQ,OACvBQ,EAASX,MAAMC,SAAW,WAC1BU,EAASX,MAAMY,QAAU,OACzBD,EAASX,MAAMa,WAAa,SAC5BF,EAASX,MAAMc,eAAiB,SAChCH,EAASI,UC7CT,2YD+CA,MAAMC,EAAQlB,SAASC,cAAc,SACrCiB,EAAMC,UAAW,EACjBD,EAAME,WAAY,EAClBrB,EAAMP,YAAY0B,GAElB,MAAMG,EAAUrB,SAASC,cAAc,OACvCoB,EAAQC,IACN,mnBACFD,EAAQnB,MAAMC,SAAW,WACzBkB,EAAQnB,MAAMqB,IAAM,IACpBF,EAAQnB,MAAMsB,KAAO,IACrBH,EAAQnB,MAAME,OAAS,SACvBiB,EAAQnB,MAAMG,MAAQ,QACtBgB,EAAQnB,MAAMuB,UAAY,SAC1B1B,EAAMP,YAAY6B,GAElB,MAAMK,QAAeC,IACrBT,EAAMU,UAAYF,EAElB,MAAMG,EAAS7B,SAASC,cAAc,UA2BtC,OA1BA4B,EAAO3B,MAAMC,SAAW,WACxB0B,EAAO3B,MAAMuB,UAAY,QACzBI,EAAO3B,MAAM4B,aAAe,MAC5BD,EAAO3B,MAAME,OAAS,OACtByB,EAAO3B,MAAMG,MAAQ,OACrBwB,EAAO3B,MAAM6B,WAAa,QAC1BF,EAAO3B,MAAM8B,QAAU,kBACvBH,EAAO3B,MAAM+B,cAAgB,MAC7BJ,EAAO3B,MAAMS,OAAS,IACtBkB,EAAOK,QAAU,IAAY,OAAD,6BAC1BL,EAAOM,UAAW,EAClBN,EAAO3B,MAAM6B,WAAa,YAC1B,MAAM,YAAEK,SAAsBhD,EAAUiD,YAAY,CAAEvC,gBAAiBA,IACvE4B,EAAOY,YAAYC,SAASC,GAAUA,EAAMC,SAC5CjC,EAAMkC,SACNxB,EAAMwB,SACNb,EAAOa,SACPrB,EAAQqB,SACR3C,EAAMP,YAAYqB,GAClBnB,EAASiD,KAAK7C,EAAgB,UAAY,aAAc,CACtDsC,cACAQ,YAAY,OAGhB7C,EAAMP,YAAYqC,GAEX9B,KAGH4B,EAAqB,IAAY,OAAD,6BACpC,GAAIkB,UAAUC,aAAaC,aACzB,OAAOF,UAAUC,aAAaC,aAAa,CAAE7B,MAAO,CAAE8B,WAAY,UAC7D,MAAM,IAAIC,MAAM","sources":["webpack://OneSdk/./modules/biometrics/wrappers/dummy-biometrics/index.ts","webpack://OneSdk/./modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.ts"],"sourcesContent":["import { IDVClient, Status } from \"../../../frankie-client/clients/IDVClient\";\nimport { VendorOptions, VendorWrapper } from \"../../types\";\nimport { svg as greentick } from \"./green-tick-svg\";\n\nexport const wrapper: VendorWrapper = {\n vendor: \"dummy-biometrics\",\n async initialise(options: VendorOptions) {\n const { mountElement } = options;\n const idvClient = new IDVClient(options.frankieClient);\n await idvClient.getToken();\n mountElement.appendChild(await BiometricsCapture({ ...options, idvClient }));\n return {\n vendor: \"dummy-biometrics\",\n };\n },\n};\nconst BiometricsCapture = async (options: VendorOptions & { idvClient: IDVClient }) => {\n const {\n eventHub,\n idvClient,\n recipe: {\n biometrics: { is_synchronous: isSynchronous },\n },\n } = options;\n\n const frame = document.createElement(\"div\");\n frame.style.position = \"relative\";\n frame.style.height = \"480px\";\n frame.style.width = \"640px\";\n frame.style.margin = \"0 auto\";\n frame.style.overflow = \"hidden\";\n\n const title = document.createElement(\"h3\");\n title.innerText = \"Take a selfie!\";\n title.style.position = \"relative\";\n title.style.marginBottom = \"-40px\";\n title.style.zIndex = \"1\";\n title.style.color = \"white\";\n frame.appendChild(title);\n\n const complete = document.createElement(\"div\");\n complete.style.height = \"100%\";\n complete.style.width = \"100%\";\n complete.style.position = \"absolute\";\n complete.style.display = \"flex\";\n complete.style.alignItems = \"center\";\n complete.style.justifyContent = \"center\";\n complete.innerHTML = greentick(\"style='display: inline-block; width: 50px; margin-left: 20px;'\");\n\n const video = document.createElement(\"video\");\n video.autoplay = true;\n video.autofocus = true;\n frame.appendChild(video);\n\n const overlay = document.createElement(\"img\");\n overlay.src =\n \"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%22740%22 height%3D%221800%22%3E%0D %3Cpath fill-opacity%3D%22.80%22 d%3D%22M0 1800V0h740v1800H0zm237-914.056c0 71.601 59.104 175.672 132.021 175.672s132.022-101.453 132.022-175.672c0-83.917-59.107-151.944-132.022-151.944C296.108 734 237 802.027 237 885.944z%22%2F%3E%0D %3Cpath fill%3D%22none%22 stroke%3D%22%23FFF%22 stroke-width%3D%223%22 d%3D%22M237 885.944c0 71.601 59.104 175.672 132.021 175.672s132.022-101.453 132.022-175.672c0-83.917-59.107-151.944-132.022-151.944C296.108 734 237 802.027 237 885.944z%22%2F%3E%0D%3C%2Fsvg%3E%0D\";\n overlay.style.position = \"absolute\";\n overlay.style.top = \"0\";\n overlay.style.left = \"0\";\n overlay.style.height = \"1450px\";\n overlay.style.width = \"640px\";\n overlay.style.marginTop = \"-500px\";\n frame.appendChild(overlay);\n\n const stream = await requestVideoStream();\n video.srcObject = stream;\n\n const button = document.createElement(\"button\");\n button.style.position = \"relative\";\n button.style.marginTop = \"-80px\";\n button.style.borderRadius = \"50%\";\n button.style.height = \"50px\";\n button.style.width = \"50px\";\n button.style.background = \"white\";\n button.style.outline = \"2px solid white\";\n button.style.outlineOffset = \"2px\";\n button.style.zIndex = \"1\";\n button.onclick = async () => {\n button.disabled = true;\n button.style.background = \"lightgrey\";\n const { checkStatus } = await idvClient.initProcess({ isSynchronous: !!isSynchronous });\n stream.getTracks().forEach((track) => track.stop());\n title.remove();\n video.remove();\n button.remove();\n overlay.remove();\n frame.appendChild(complete);\n eventHub.emit(isSynchronous ? \"results\" : \"processing\", {\n checkStatus,\n processing: true,\n });\n };\n frame.appendChild(button);\n\n return frame;\n};\n\nconst requestVideoStream = async () => {\n if (navigator.mediaDevices.getUserMedia) {\n return navigator.mediaDevices.getUserMedia({ video: { facingMode: \"user\" } });\n } else throw new Error(\"No media device\");\n};\n","/* istanbul ignore file */\nexport const svg = (style: string) =>\n `<svg ${style} xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\" enable-background=\"new 0 0 64 64\"><path d=\"M32,2C15.431,2,2,15.432,2,32c0,16.568,13.432,30,30,30c16.568,0,30-13.432,30-30C62,15.432,48.568,2,32,2z M25.025,50 l-0.02-0.02L24.988,50L11,35.6l7.029-7.164l6.977,7.184l21-21.619L53,21.199L25.025,50z\" fill=\"#43a047\"/></svg>`;\n"],"names":["wrapper","vendor","initialise","options","mountElement","idvClient","IDVClient","frankieClient","getToken","appendChild","BiometricsCapture","eventHub","recipe","biometrics","is_synchronous","isSynchronous","frame","document","createElement","style","position","height","width","margin","overflow","title","innerText","marginBottom","zIndex","color","complete","display","alignItems","justifyContent","innerHTML","video","autoplay","autofocus","overlay","src","top","left","marginTop","stream","requestVideoStream","srcObject","button","borderRadius","background","outline","outlineOffset","onclick","disabled","checkStatus","initProcess","getTracks","forEach","track","stop","remove","emit","processing","navigator","mediaDevices","getUserMedia","facingMode","Error"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[295],{4711:(e,t,n)=>{n.r(t),n.d(t,{wrapper:()=>d});var i=n(9727),s=n.n(i),o=n(5669),r=function(e,t,n,i){return new(n||(n=Promise))((function(s,o){function r(e){try{d(i.next(e))}catch(e){o(e)}}function l(e){try{d(i.throw(e))}catch(e){o(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,l)}d((i=i.apply(e,t||[])).next())}))};const l=(e="#fff")=>`\n<svg viewBox="0 0 747 730" preserveAspectRatio="xMinYMin slice" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n <defs>\n <filter x="-8.0%" y="-9.3%" width="116.1%" height="122.5%" filterUnits="objectBoundingBox" id="filter-1">\n <feOffset dx="0" dy="17" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>\n <feGaussianBlur stdDeviation="30" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>\n <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.274448208 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>\n <feMerge>\n <feMergeNode in="shadowMatrixOuter1"></feMergeNode>\n <feMergeNode in="SourceGraphic"></feMergeNode>\n </feMerge>\n </filter>\n </defs>\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.75">\n <g fill="#000000">\n <g filter="url(#filter-1)" transform="translate(-224.000000, -250.000000)">\n <path d="M222,60 L1200,60 L1200,1200 L222,1200 L222,60 Z M596,740 C684.917845,740 757,615.657619 757,494.431116 C757,373.204614 684.917845,301 596,301 C507.082155,301 435,373.204614 435,494.431116 C435,615.657619 507.082155,740 596,740 Z"></path>\n </g>\n </g>\n </g>\n <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">\n <g transform="translate(0.000000, -170.000000)" stroke="${e}" stroke-width="2.2">\n <g transform="translate(-224.000000, -80.000000)">\n <path d="M596,740 C684.917845,740 757,615.657619 757,494.431116 C757,373.204614 684.917845,301 596,301 C507.082155,301 435,373.204614 435,494.431116 C435,615.657619 507.082155,740 596,740 Z"></path>\n </g>\n </g>\n </g>\n</svg>`,d={vendor:"ocrlabs",initialise(e){return r(this,void 0,void 0,(function*(){return a(e),{vendor:"ocrlabs"}}))}},a=e=>{const{mountElement:t}=e;t.style.height="100%",t.style.minHeight="50px",t.style.width="100%",t.style.position="relative",t.style.overflow="hidden";const n=document.createElement("div");n.id="onesdk_idv_loader",n.style.color="black",n.style.position="absolute",n.style.top="20px",n.style.left="50%",n.style.transform="translate(-50%, 0)",n.style.fontSize="20px",n.innerText="Loading...",t.appendChild(n);const i=document.createElement("video");i.id="onesdk_idv_video",i.autoplay=!0,i.muted=!0,i.playsInline=!0,i.style.height="100%",i.style.width="100%",i.style.display="none",t.appendChild(i);const s=document.createElement("div");s.id="onesdk_idv_overlay",s.innerHTML=l(),s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.height="100%",s.style.width="100%",s.style.display="none",t.appendChild(s);const o=document.createElement("div");return o.id="onesdk_idv_instructions",o.style.position="absolute",o.style.bottom="20px",o.style.left="50%",o.style.transform="translate(-50%, 0)",o.style.color="white",o.style.fontSize="20px",t.appendChild(o),f(e),i},c=e=>{const{eventHub:t,mountElement:n}=e;for(;n.firstChild;)n.removeChild(n.firstChild);try{s().close(),t.emit("session_closed")}catch(e){const{message:n}=e;t.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:n}})}},f=e=>r(void 0,void 0,void 0,(function*(){const t=new o.B(e.frankieClient),{eventHub:n,recipe:i}=e,{token:r}=yield t.getToken(),l={session_id:r,tx_id:i.biometrics.provider.tx_id};n.emit("session_data_generated",{session:l});const d=document.getElementById("onesdk_idv_video"),a=document.getElementById("onesdk_idv_loader"),f=document.getElementById("onesdk_idv_instructions");s().observer.on("error",(t=>{const{message:i}=t;n.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:i}}),c(e)}));try{yield s().createSession("wss://engine.au.v3.liveness.idkit.io",{videoElement:d,auth:l}),a.style.display="none",d.style.display="block",f.style.display="block",n.emit("ready"),u(e,t)}catch(t){n.emit("session_data_failed_loading",{code:t.code||null,message:t.message}),c(e)}})),u=(e,t)=>r(void 0,void 0,void 0,(function*(){const{eventHub:n}=e,i=document.getElementById("onesdk_idv_overlay"),o=document.getElementById("onesdk_idv_instructions");i.style.display="block",o.style.display="block";const d=(t,d)=>r(void 0,void 0,void 0,(function*(){const a=s().delay||2e3;return new Promise(((f,u)=>r(void 0,void 0,void 0,(function*(){o.innerText=d,i.innerHTML=l("#fff");try{yield s().detect(t,{retry:!0,timeout:7500}),setTimeout((()=>{o.innerText="Thanks!",i.innerHTML=l("#14ffc0"),setTimeout((()=>{f(!0)}),a)}),a)}catch(t){setTimeout((()=>{o.innerText="Something went wrong",i.innerHTML=l("#ff4747"),n.emit("detection_failed",{message:t&&t.message?t.message:null}),setTimeout((()=>{c(e),f(!1)}),a)}),a)}}))))}));yield d("face","Position your face within the frame"),yield d("smile","Please give us a BIG Smile!");try{yield t.initProcess(),n.emit("processing")}catch(e){const{message:t}=e;n.emit("error",{message:"Error calling initProcess",payload:{message:t}})}c(e)}))}}]);
|
|
1
|
+
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[295],{4711:(I,e,i)=>{i.r(e),i.d(e,{wrapper:()=>l});var g=i(9727),c=i.n(g),s=i(5669),t=function(I,e,i,g){return new(i||(i=Promise))((function(c,s){function t(I){try{l(g.next(I))}catch(I){s(I)}}function d(I){try{l(g.throw(I))}catch(I){s(I)}}function l(I){var e;I.done?c(I.value):(e=I.value,e instanceof i?e:new i((function(I){I(e)}))).then(t,d)}l((g=g.apply(I,e||[])).next())}))};const d=I=>{const e=document.createElement("img");switch(e.style.objectFit="cover",e.style.height="100%",e.style.width="100%",e.style.position="relative",e.style.zIndex="1",I){case"green":e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjMTRmZmMwIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;case"red":e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmY0NzQ3IiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=";break;default:e.src="data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo="}return e},l={vendor:"ocrlabs",initialise(I){return t(this,void 0,void 0,(function*(){return A(I),{vendor:"ocrlabs"}}))}},A=I=>{const{mountElement:e}=I,i=e.cloneNode(!0);e.parentNode.replaceChild(i,e),i.id="onesdk_idv_container",i.style.height="100%",i.style.minHeight="50px",i.style.width="100%",i.style.position="absolute",i.style.top="0",i.style.left="0",i.style.overflow="hidden",i.style.backgroundColor="#000";const g=document.createElement("div");g.id="onesdk_idv_loader",g.style.position="absolute",g.style.top="20px",g.style.left="50%",g.style.transform="translate(-50%, 0)",g.style.color="#fff",g.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',g.style.fontSize="24px",g.innerText="Loading...",i.appendChild(g);const c=document.createElement("video");c.id="onesdk_idv_video",c.autoplay=!0,c.muted=!0,c.style.position="absolute",c.style.top="0",c.style.left="0",c.playsInline=!0,c.style.height="100%",c.style.width="100%",c.style.display="none",c.style.zIndex="1",c.style.objectFit="cover",i.appendChild(c);const s=document.createElement("div");s.id="onesdk_idv_overlay",s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.height="100%",s.style.width="100%",s.style.display="none",s.style.zIndex="2",s.appendChild(d("white")),i.appendChild(s);const t=document.createElement("div");return t.id="onesdk_idv_instructions",t.style.position="absolute",t.style.bottom="20px",t.style.left="50%",t.style.transform="translate(-50%, 0)",t.style.color="#fff",t.style.fontFamily='"Helvetica Neue", Helvetica, Arial, sans-serif',t.style.fontSize="24px",t.style.zIndex="3",i.appendChild(t),M(I),c},n=I=>t(void 0,void 0,void 0,(function*(){const{eventHub:e,mountElement:i}=I,g=document.getElementById("onesdk_idv_container");g&&g.parentNode.replaceChild(i,g);try{yield c().close(),e.emit("session_closed")}catch(I){const{message:i}=I;e.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:i}})}})),M=I=>t(void 0,void 0,void 0,(function*(){const e=new s.B(I.frankieClient),{eventHub:i,recipe:g}=I,{token:t}=yield e.getToken(),d={session_id:t,tx_id:g.biometrics.provider.tx_id};i.emit("session_data_generated",{session:d});const l=document.getElementById("onesdk_idv_video"),A=document.getElementById("onesdk_idv_loader"),M=document.getElementById("onesdk_idv_instructions");c().observer.on("error",(e=>{const{message:g}=e;i.emit("error",{message:"Error from vendor SDK 'OcrLabs'",payload:{message:g}}),n(I)}));try{yield c().createSession("wss://engine.au.v3.liveness.idkit.io",{videoElement:l,auth:d}),A.remove(),l.style.display="block",M.style.display="block",i.emit("ready"),o(I,e)}catch(e){i.emit("session_data_failed_loading",{code:e.code||null,message:e.message}),n(I)}})),o=(I,e)=>t(void 0,void 0,void 0,(function*(){const{eventHub:i,recipe:{biometrics:{is_synchronous:g}}}=I,l=document.getElementById("onesdk_idv_overlay"),A=document.getElementById("onesdk_idv_instructions");l.style.display="block",A.style.display="block";const M=(e,g)=>t(void 0,void 0,void 0,(function*(){const s=c().delay||2e3;return new Promise(((M,o)=>t(void 0,void 0,void 0,(function*(){A.innerText=g,l.removeChild(l.firstChild),l.appendChild(d("white"));try{yield c().detect(e,{retry:!0,timeout:7500}),setTimeout((()=>{A.innerText="Thanks!",l.removeChild(l.firstChild),l.appendChild(d("green")),setTimeout((()=>{M(!0)}),s)}),s)}catch(e){setTimeout((()=>{A.innerText="Something went wrong",l.removeChild(l.firstChild),l.appendChild(d("red")),i.emit("detection_failed",{message:e&&e.message?e.message:null}),setTimeout((()=>{n(I),M(!1)}),s)}),s)}}))))}));yield M("face","Position your face within the frame"),yield M("smile","Please give us a BIG Smile!");try{yield n(I);const{checkStatus:c}=yield e.initProcess({isSynchronous:!!g});switch(c){case s.q.PROVIDER_OFFLINE:i.emit("error",{message:"Error initialising liveness check with OCRLabs. The service doesn't appear to be available.",payload:{message:c,processing:!1}}),n(I);break;case s.q.WAITING_SELFIE_UPLOAD:i.emit("error",{message:"Error initialising liveness check with OCRLabs. You might need to run the 'ocr' component before running 'biometrics'.",payload:{message:c,processing:!1}}),n(I);break;default:i.emit(g?"results":"processing",{checkStatus:c,processing:!0})}}catch(I){const{message:e}=I;i.emit("error",{message:"Error calling initProcess",payload:{message:e}})}n(I)}))}}]);
|
|
2
2
|
//# sourceMappingURL=biometrics-ocrlabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biometrics-ocrlabs.js","mappings":"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","sources":["webpack://OneSdk/./modules/biometrics/wrappers/OcrLabs/index.ts"],"sourcesContent":["import Liveness from \"liveness\";\n\nimport { IDVClient } from \"../../../frankie-client/clients/IDVClient\";\nimport { VendorContext, VendorOptions, VendorWrapper } from \"../../types\";\n\ntype DetectActions = \"face\" | \"smile\";\n\ntype SessionData = {\n session_id: string;\n tx_id: string;\n};\n\nconst createOverlay = (strokeColour = \"#fff\"): string => `\n<svg viewBox=\"0 0 747 730\" preserveAspectRatio=\"xMinYMin slice\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <defs>\n <filter x=\"-8.0%\" y=\"-9.3%\" width=\"116.1%\" height=\"122.5%\" filterUnits=\"objectBoundingBox\" id=\"filter-1\">\n <feOffset dx=\"0\" dy=\"17\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"></feOffset>\n <feGaussianBlur stdDeviation=\"30\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.274448208 0\" type=\"matrix\" in=\"shadowBlurOuter1\" result=\"shadowMatrixOuter1\"></feColorMatrix>\n <feMerge>\n <feMergeNode in=\"shadowMatrixOuter1\"></feMergeNode>\n <feMergeNode in=\"SourceGraphic\"></feMergeNode>\n </feMerge>\n </filter>\n </defs>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" opacity=\"0.75\">\n <g fill=\"#000000\">\n <g filter=\"url(#filter-1)\" transform=\"translate(-224.000000, -250.000000)\">\n <path d=\"M222,60 L1200,60 L1200,1200 L222,1200 L222,60 Z M596,740 C684.917845,740 757,615.657619 757,494.431116 C757,373.204614 684.917845,301 596,301 C507.082155,301 435,373.204614 435,494.431116 C435,615.657619 507.082155,740 596,740 Z\"></path>\n </g>\n </g>\n </g>\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" stroke-linecap=\"round\">\n <g transform=\"translate(0.000000, -170.000000)\" stroke=\"${strokeColour}\" stroke-width=\"2.2\">\n <g transform=\"translate(-224.000000, -80.000000)\">\n <path d=\"M596,740 C684.917845,740 757,615.657619 757,494.431116 C757,373.204614 684.917845,301 596,301 C507.082155,301 435,373.204614 435,494.431116 C435,615.657619 507.082155,740 596,740 Z\"></path>\n </g>\n </g>\n </g>\n</svg>`;\n\nexport const wrapper: VendorWrapper = {\n vendor: \"ocrlabs\",\n async initialise(options: VendorOptions): Promise<VendorContext> {\n // prematurely mount our ui to the dom before sdk session initialisation.\n mountUserInterface(options);\n\n return {\n vendor: \"ocrlabs\",\n };\n },\n};\n\nconst mountUserInterface = (options: VendorOptions): HTMLVideoElement => {\n const { mountElement } = options;\n\n mountElement.style.height = \"100%\";\n mountElement.style.minHeight = \"50px\";\n mountElement.style.width = \"100%\";\n mountElement.style.position = \"relative\";\n mountElement.style.overflow = \"hidden\";\n\n const loader = document.createElement(\"div\");\n loader.id = \"onesdk_idv_loader\";\n loader.style.color = \"black\";\n loader.style.position = \"absolute\";\n loader.style.top = \"20px\";\n loader.style.left = \"50%\";\n loader.style.transform = \"translate(-50%, 0)\";\n loader.style.fontSize = \"20px\";\n loader.innerText = \"Loading...\";\n mountElement.appendChild(loader);\n\n const videoElement = document.createElement(\"video\");\n videoElement.id = \"onesdk_idv_video\";\n videoElement.autoplay = true;\n videoElement.muted = true;\n videoElement.playsInline = true;\n videoElement.style.height = \"100%\";\n videoElement.style.width = \"100%\";\n videoElement.style.display = \"none\";\n mountElement.appendChild(videoElement);\n\n const overlayContainer = document.createElement(\"div\");\n overlayContainer.id = \"onesdk_idv_overlay\";\n overlayContainer.innerHTML = createOverlay();\n overlayContainer.style.position = \"absolute\";\n overlayContainer.style.top = \"0\";\n overlayContainer.style.left = \"0\";\n overlayContainer.style.height = \"100%\";\n overlayContainer.style.width = \"100%\";\n overlayContainer.style.display = \"none\";\n mountElement.appendChild(overlayContainer);\n\n const instructions = document.createElement(\"div\");\n instructions.id = \"onesdk_idv_instructions\";\n instructions.style.position = \"absolute\";\n instructions.style.bottom = \"20px\";\n instructions.style.left = \"50%\";\n instructions.style.transform = \"translate(-50%, 0)\";\n instructions.style.color = \"white\";\n instructions.style.fontSize = \"20px\";\n mountElement.appendChild(instructions);\n\n loadOcrLabs(options);\n\n return videoElement;\n};\n\n// remove any dom nodes we added, then close the ocrlabs session.\nconst cleanup = (options: VendorOptions): void => {\n const { eventHub, mountElement } = options;\n\n while (mountElement.firstChild) {\n mountElement.removeChild(mountElement.firstChild);\n }\n\n try {\n Liveness.close();\n eventHub.emit(\"session_closed\");\n } catch (error) {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error from vendor SDK 'OcrLabs'\",\n payload: { message },\n });\n }\n};\n\nconst loadOcrLabs = async (options: VendorOptions): Promise<void> => {\n const idvClient = new IDVClient(options.frankieClient);\n const { eventHub, recipe } = options;\n\n // fetch session data for ocrlabs initialisation.\n const { token: session_id } = await idvClient.getToken();\n\n const sessionData: SessionData = {\n session_id,\n tx_id: recipe.biometrics.provider.tx_id,\n };\n eventHub.emit(\"session_data_generated\", {\n session: sessionData,\n });\n\n // initialise ocrlabs session, then run liveness checks.\n const videoElement = document.getElementById(\"onesdk_idv_video\") as unknown as HTMLVideoElement;\n const loader = document.getElementById(\"onesdk_idv_loader\");\n const overlayContainer = document.getElementById(\"onesdk_idv_instructions\");\n\n // handle process errors such as network issues.\n /* istanbul ignore next */\n Liveness.observer.on(\"error\", (error) => {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error from vendor SDK 'OcrLabs'\",\n payload: { message },\n });\n cleanup(options);\n });\n\n // initialise ocrlabs session.\n try {\n await Liveness.createSession(\"wss://engine.au.v3.liveness.idkit.io\", {\n videoElement,\n auth: sessionData,\n });\n\n // update ui and broadcast event in case the consumer is providing their own initialisation ui.\n loader.style.display = \"none\";\n videoElement.style.display = \"block\";\n overlayContainer.style.display = \"block\";\n eventHub.emit(\"ready\");\n\n runLivenessChecks(options, idvClient);\n } catch (error) {\n eventHub.emit(\"session_data_failed_loading\", {\n code: error.code || null,\n message: error.message,\n });\n cleanup(options);\n }\n};\n\nconst runLivenessChecks = async (options: VendorOptions, idvClient: IDVClient) => {\n const { eventHub } = options;\n const overlayContainer = document.getElementById(\"onesdk_idv_overlay\");\n const instructions = document.getElementById(\"onesdk_idv_instructions\");\n\n overlayContainer.style.display = \"block\";\n instructions.style.display = \"block\";\n\n // manage the timing of ui changes during each detection step.\n const handleDetection = async (type: DetectActions, instructionCopy: string) => {\n const MIN_INSTRUCTION_DISPLAY_TIME = Liveness.delay || 2000;\n\n const detection = async (resolve, reject) => {\n instructions.innerText = instructionCopy;\n overlayContainer.innerHTML = createOverlay(\"#fff\");\n\n try {\n await Liveness.detect(type, {\n retry: true,\n timeout: 7500,\n });\n\n setTimeout(() => {\n instructions.innerText = \"Thanks!\";\n overlayContainer.innerHTML = createOverlay(\"#14ffc0\");\n\n setTimeout(() => {\n resolve(true);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n } catch (error) {\n setTimeout(() => {\n instructions.innerText = \"Something went wrong\";\n overlayContainer.innerHTML = createOverlay(\"#ff4747\");\n eventHub.emit(\"detection_failed\", {\n message: error && error.message ? error.message : null,\n });\n\n setTimeout(() => {\n cleanup(options);\n resolve(false);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }\n };\n\n return new Promise(detection);\n };\n\n await handleDetection(\"face\", \"Position your face within the frame\");\n await handleDetection(\"smile\", \"Please give us a BIG Smile!\");\n\n try {\n await idvClient.initProcess();\n eventHub.emit(\"processing\");\n } catch (error) {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error calling initProcess\",\n payload: { message },\n });\n }\n\n cleanup(options);\n};\n"],"names":["createOverlay","strokeColour","wrapper","vendor","initialise","options","mountUserInterface","mountElement","style","height","minHeight","width","position","overflow","loader","document","createElement","id","color","top","left","transform","fontSize","innerText","appendChild","videoElement","autoplay","muted","playsInline","display","overlayContainer","innerHTML","instructions","bottom","loadOcrLabs","cleanup","eventHub","firstChild","removeChild","emit","error","message","payload","idvClient","frankieClient","recipe","token","session_id","getToken","sessionData","tx_id","biometrics","provider","session","getElementById","auth","runLivenessChecks","code","handleDetection","type","instructionCopy","MIN_INSTRUCTION_DISPLAY_TIME","Promise","resolve","reject","retry","timeout","setTimeout","initProcess"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"biometrics-ocrlabs.js","mappings":"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","sources":["webpack://OneSdk/./modules/biometrics/wrappers/OcrLabs/index.ts"],"sourcesContent":["import Liveness from \"liveness\";\n\nimport { IDVClient, Status } from \"../../../frankie-client/clients/IDVClient\";\nimport { VendorContext, VendorOptions, VendorWrapper } from \"../../types\";\n\ntype DetectActions = \"face\" | \"smile\";\n\ntype SessionData = {\n session_id: string;\n tx_id: string;\n};\n\ntype OverlayColours = \"white\" | \"green\" | \"red\";\n\nconst createOverlay = (strokeColour: OverlayColours): HTMLImageElement => {\n const imageElement = document.createElement(\"img\");\n imageElement.style.objectFit = \"cover\";\n imageElement.style.height = \"100%\";\n imageElement.style.width = \"100%\";\n imageElement.style.position = \"relative\";\n imageElement.style.zIndex = \"1\";\n\n switch (strokeColour) {\n case \"green\": {\n imageElement.src =\n \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjMTRmZmMwIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\";\n break;\n }\n case \"red\": {\n imageElement.src =\n \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmY0NzQ3IiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\";\n break;\n }\n case \"white\":\n default: {\n imageElement.src =\n \"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNzQ3IDczMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIHg9Ii04LjAlIiB5PSItOS4zJSIgd2lkdGg9IjExNi4xJSIgaGVpZ2h0PSIxMjIuNSUiIGZpbHRlclVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgaWQ9ImZpbHRlci0xIj4KICAgICAgPGZlT2Zmc2V0IGR4PSIwIiBkeT0iMTciIGluPSJTb3VyY2VBbHBoYSIgcmVzdWx0PSJzaGFkb3dPZmZzZXRPdXRlcjEiPjwvZmVPZmZzZXQ+CiAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMwIiBpbj0ic2hhZG93T2Zmc2V0T3V0ZXIxIiByZXN1bHQ9InNoYWRvd0JsdXJPdXRlcjEiPjwvZmVHYXVzc2lhbkJsdXI+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwICAgMCAwIDAgMCAwICAgMCAwIDAgMCAwICAwIDAgMCAwLjI3NDQ0ODIwOCAwIiB0eXBlPSJtYXRyaXgiIGluPSJzaGFkb3dCbHVyT3V0ZXIxIiByZXN1bHQ9InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZUNvbG9yTWF0cml4PgogICAgICA8ZmVNZXJnZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InNoYWRvd01hdHJpeE91dGVyMSI+PC9mZU1lcmdlTm9kZT4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49IlNvdXJjZUdyYXBoaWMiPjwvZmVNZXJnZU5vZGU+CiAgICAgIDwvZmVNZXJnZT4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBvcGFjaXR5PSIwLjc1Ij4KICAgIDxnIGZpbGw9IiMwMDAwMDAiPgogICAgICA8ZyBmaWx0ZXI9InVybCgjZmlsdGVyLTEpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjI0LjAwMDAwMCwgLTI1MC4wMDAwMDApIj4KICAgICAgICA8cGF0aCBkPSJNMjIyLDYwIEwxMjAwLDYwIEwxMjAwLDEyMDAgTDIyMiwxMjAwIEwyMjIsNjAgWiBNNTk2LDc0MCBDNjg0LjkxNzg0NSw3NDAgNzU3LDYxNS42NTc2MTkgNzU3LDQ5NC40MzExMTYgQzc1NywzNzMuMjA0NjE0IDY4NC45MTc4NDUsMzAxIDU5NiwzMDEgQzUwNy4wODIxNTUsMzAxIDQzNSwzNzMuMjA0NjE0IDQzNSw0OTQuNDMxMTE2IEM0MzUsNjE1LjY1NzYxOSA1MDcuMDgyMTU1LDc0MCA1OTYsNzQwIFoiPjwvcGF0aD4KICAgICAgPC9nPgogICAgPC9nPgogIDwvZz4KICA8ZyBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiPgogICAgPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIC0xNzAuMDAwMDAwKSIgc3Ryb2tlPSIjZmZmZmZmIiBzdHJva2Utd2lkdGg9IjIuMiI+CiAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMjQuMDAwMDAwLCAtODAuMDAwMDAwKSI+CiAgICAgICAgPHBhdGggZD0iTTU5Niw3NDAgQzY4NC45MTc4NDUsNzQwIDc1Nyw2MTUuNjU3NjE5IDc1Nyw0OTQuNDMxMTE2IEM3NTcsMzczLjIwNDYxNCA2ODQuOTE3ODQ1LDMwMSA1OTYsMzAxIEM1MDcuMDgyMTU1LDMwMSA0MzUsMzczLjIwNDYxNCA0MzUsNDk0LjQzMTExNiBDNDM1LDYxNS42NTc2MTkgNTA3LjA4MjE1NSw3NDAgNTk2LDc0MCBaIj48L3BhdGg+CiAgICAgIDwvZz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo=\";\n }\n }\n\n return imageElement;\n};\n\nexport const wrapper: VendorWrapper = {\n vendor: \"ocrlabs\",\n async initialise(options: VendorOptions): Promise<VendorContext> {\n // prematurely mount our ui to the dom before sdk session initialisation.\n mountUserInterface(options);\n\n return {\n vendor: \"ocrlabs\",\n };\n },\n};\n\nconst mountUserInterface = (options: VendorOptions): HTMLVideoElement => {\n const { mountElement: originalElement } = options;\n\n const mountElement = originalElement.cloneNode(true) as unknown as HTMLElement;\n originalElement.parentNode.replaceChild(mountElement, originalElement);\n\n mountElement.id = \"onesdk_idv_container\";\n mountElement.style.height = \"100%\";\n mountElement.style.minHeight = \"50px\";\n mountElement.style.width = \"100%\";\n mountElement.style.position = \"absolute\";\n mountElement.style.top = \"0\";\n mountElement.style.left = \"0\";\n mountElement.style.overflow = \"hidden\";\n mountElement.style.backgroundColor = \"#000\";\n\n const loader = document.createElement(\"div\");\n loader.id = \"onesdk_idv_loader\";\n loader.style.position = \"absolute\";\n loader.style.top = \"20px\";\n loader.style.left = \"50%\";\n loader.style.transform = \"translate(-50%, 0)\";\n loader.style.color = \"#fff\";\n loader.style.fontFamily = '\"Helvetica Neue\", Helvetica, Arial, sans-serif';\n loader.style.fontSize = \"24px\";\n loader.innerText = \"Loading...\";\n mountElement.appendChild(loader);\n\n const videoElement = document.createElement(\"video\");\n videoElement.id = \"onesdk_idv_video\";\n videoElement.autoplay = true;\n videoElement.muted = true;\n videoElement.style.position = \"absolute\";\n videoElement.style.top = \"0\";\n videoElement.style.left = \"0\";\n videoElement.playsInline = true;\n videoElement.style.height = \"100%\";\n videoElement.style.width = \"100%\";\n videoElement.style.display = \"none\";\n videoElement.style.zIndex = \"1\";\n videoElement.style.objectFit = \"cover\";\n mountElement.appendChild(videoElement);\n\n const overlayContainer = document.createElement(\"div\");\n overlayContainer.id = \"onesdk_idv_overlay\";\n overlayContainer.style.position = \"absolute\";\n overlayContainer.style.top = \"0\";\n overlayContainer.style.left = \"0\";\n overlayContainer.style.height = \"100%\";\n overlayContainer.style.width = \"100%\";\n overlayContainer.style.display = \"none\";\n overlayContainer.style.zIndex = \"2\";\n overlayContainer.appendChild(createOverlay(\"white\"));\n mountElement.appendChild(overlayContainer);\n\n const instructions = document.createElement(\"div\");\n instructions.id = \"onesdk_idv_instructions\";\n instructions.style.position = \"absolute\";\n instructions.style.bottom = \"20px\";\n instructions.style.left = \"50%\";\n instructions.style.transform = \"translate(-50%, 0)\";\n instructions.style.color = \"#fff\";\n instructions.style.fontFamily = '\"Helvetica Neue\", Helvetica, Arial, sans-serif';\n instructions.style.fontSize = \"24px\";\n instructions.style.zIndex = \"3\";\n mountElement.appendChild(instructions);\n\n loadOcrLabs(options);\n\n return videoElement;\n};\n\n// reset to the original container dom element and close the ocrlabs session.\nconst cleanup = async (options: VendorOptions): Promise<void> => {\n const { eventHub, mountElement } = options;\n\n const cloneElement = document.getElementById(\"onesdk_idv_container\");\n cloneElement && cloneElement.parentNode.replaceChild(mountElement, cloneElement);\n\n try {\n await Liveness.close();\n eventHub.emit(\"session_closed\");\n } catch (error) {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error from vendor SDK 'OcrLabs'\",\n payload: { message },\n });\n }\n};\n\nconst loadOcrLabs = async (options: VendorOptions): Promise<void> => {\n const idvClient = new IDVClient(options.frankieClient);\n const { eventHub, recipe } = options;\n\n // fetch session data for ocrlabs initialisation.\n const { token: session_id } = await idvClient.getToken();\n\n const sessionData: SessionData = {\n session_id,\n tx_id: recipe.biometrics.provider.tx_id,\n };\n eventHub.emit(\"session_data_generated\", {\n session: sessionData,\n });\n\n // initialise ocrlabs session, then run liveness checks.\n const videoElement = document.getElementById(\"onesdk_idv_video\") as unknown as HTMLVideoElement;\n const loader = document.getElementById(\"onesdk_idv_loader\");\n const overlayContainer = document.getElementById(\"onesdk_idv_instructions\");\n\n // handle process errors such as network issues.\n /* istanbul ignore next */\n Liveness.observer.on(\"error\", (error) => {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error from vendor SDK 'OcrLabs'\",\n payload: { message },\n });\n cleanup(options);\n });\n\n // initialise ocrlabs session.\n try {\n await Liveness.createSession(\"wss://engine.au.v3.liveness.idkit.io\", {\n videoElement,\n auth: sessionData,\n });\n\n // update ui and broadcast event in case the consumer is providing their own initialisation ui.\n loader.remove();\n videoElement.style.display = \"block\";\n overlayContainer.style.display = \"block\";\n eventHub.emit(\"ready\");\n\n runLivenessChecks(options, idvClient);\n } catch (error) {\n eventHub.emit(\"session_data_failed_loading\", {\n code: error.code || null,\n message: error.message,\n });\n cleanup(options);\n }\n};\n\nconst runLivenessChecks = async (options: VendorOptions, idvClient: IDVClient) => {\n const {\n eventHub,\n recipe: {\n biometrics: { is_synchronous: isSynchronous },\n },\n } = options;\n const overlayContainer = document.getElementById(\"onesdk_idv_overlay\");\n const instructions = document.getElementById(\"onesdk_idv_instructions\");\n\n overlayContainer.style.display = \"block\";\n instructions.style.display = \"block\";\n\n // manage the timing of ui changes during each detection step.\n const handleDetection = async (type: DetectActions, instructionCopy: string) => {\n const MIN_INSTRUCTION_DISPLAY_TIME = Liveness.delay || 2000;\n\n const detection = async (resolve, reject) => {\n instructions.innerText = instructionCopy;\n overlayContainer.removeChild(overlayContainer.firstChild);\n overlayContainer.appendChild(createOverlay(\"white\"));\n\n try {\n await Liveness.detect(type, {\n retry: true,\n timeout: 7500,\n });\n\n setTimeout(() => {\n instructions.innerText = \"Thanks!\";\n overlayContainer.removeChild(overlayContainer.firstChild);\n overlayContainer.appendChild(createOverlay(\"green\"));\n\n setTimeout(() => {\n resolve(true);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n } catch (error) {\n setTimeout(() => {\n instructions.innerText = \"Something went wrong\";\n overlayContainer.removeChild(overlayContainer.firstChild);\n overlayContainer.appendChild(createOverlay(\"red\"));\n eventHub.emit(\"detection_failed\", {\n message: error && error.message ? error.message : null,\n });\n\n setTimeout(() => {\n cleanup(options);\n resolve(false);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }, MIN_INSTRUCTION_DISPLAY_TIME);\n }\n };\n\n return new Promise(detection);\n };\n\n await handleDetection(\"face\", \"Position your face within the frame\");\n await handleDetection(\"smile\", \"Please give us a BIG Smile!\");\n\n try {\n await cleanup(options);\n const { checkStatus } = await idvClient.initProcess({ isSynchronous: !!isSynchronous });\n\n switch (checkStatus) {\n case Status.PROVIDER_OFFLINE: {\n eventHub.emit(\"error\", {\n message: \"Error initialising liveness check with OCRLabs. The service doesn't appear to be available.\",\n payload: { message: checkStatus, processing: false },\n });\n cleanup(options);\n break;\n }\n case Status.WAITING_SELFIE_UPLOAD: {\n eventHub.emit(\"error\", {\n message:\n \"Error initialising liveness check with OCRLabs. You might need to run the 'ocr' component before running 'biometrics'.\",\n payload: { message: checkStatus, processing: false },\n });\n cleanup(options);\n break;\n }\n default: {\n eventHub.emit(isSynchronous ? \"results\" : \"processing\", {\n checkStatus,\n processing: true,\n });\n }\n }\n } catch (error) {\n const { message } = error;\n eventHub.emit(\"error\", {\n message: \"Error calling initProcess\",\n payload: { message },\n });\n }\n\n cleanup(options);\n};\n"],"names":["createOverlay","strokeColour","imageElement","document","createElement","style","objectFit","height","width","position","zIndex","src","wrapper","vendor","initialise","options","mountUserInterface","mountElement","originalElement","cloneNode","parentNode","replaceChild","id","minHeight","top","left","overflow","backgroundColor","loader","transform","color","fontFamily","fontSize","innerText","appendChild","videoElement","autoplay","muted","playsInline","display","overlayContainer","instructions","bottom","loadOcrLabs","cleanup","eventHub","cloneElement","getElementById","emit","error","message","payload","idvClient","frankieClient","recipe","token","session_id","getToken","sessionData","tx_id","biometrics","provider","session","auth","remove","runLivenessChecks","code","is_synchronous","isSynchronous","handleDetection","type","instructionCopy","MIN_INSTRUCTION_DISPLAY_TIME","Promise","resolve","reject","removeChild","firstChild","retry","timeout","setTimeout","checkStatus","initProcess","processing"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[513],{8167:(e,n,t)=>{t.r(n),t.d(n,{wrapper:()=>r});var i=t(
|
|
1
|
+
"use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[513],{8167:(e,n,t)=>{t.r(n),t.d(n,{wrapper:()=>r});var i=t(6514),s=t(4586),o=function(e,n,t,i){return new(t||(t=Promise))((function(s,o){function r(e){try{c(i.next(e))}catch(e){o(e)}}function d(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?s(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(r,d)}c((i=i.apply(e,n||[])).next())}))};const r={vendor:"sardine",initialise(e){return o(this,void 0,void 0,(function*(){const n=yield function(e){var n;return o(this,void 0,void 0,(function*(){return{customerID:null!==(n=e.session.customerChildID)&&void 0!==n?n:e.session.customerID,frankieClientID:e.recipe.device.provider.clientID,vendorSessionID:(0,s.Z)()}}))}(e);e.eventHub.emit("session_data_generated",{session:n});const t=yield function(e){return o(this,void 0,void 0,(function*(){const{mode:n}=e.module,t="production"===n,s=`https://${t?"api.sardine.ai":"api.dev.sardine.ai"}/assets/loader.min.js`;yield(0,i.loadAsyncAsset)(s);const o=window._Sardine.createContext({clientId:e.session.frankieClientID,partnerID:e.session.customerID,sessionKey:e.session.vendorSessionID,parentElement:document.body,environment:t?"production":"development",onDeviceResponse:function(n){e.module.eventHub.emit("device_details_extracted",{device:n})}});return{vendor:"sardine",set(n,t){const i=d[n];i&&(o.updateConfig({[i]:t}),e.module.eventHub.emit("value_set",{key:n,value:t}))}}}))}({module:e,session:n});return t}))}},d={entityId:"userIdHash",activityType:"flow"}}}]);
|
|
2
2
|
//# sourceMappingURL=device-sardine.js.map
|