@frankieone/one-sdk 1.0.0-beta → 1.1.0-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/dist/commit.txt +2 -2
  2. package/dist/esm/features.config.d.ts +39 -0
  3. package/dist/esm/features.config.d.ts.map +1 -0
  4. package/dist/esm/features.config.js +38 -0
  5. package/dist/esm/features.config.js.map +1 -0
  6. package/dist/esm/modules/biometrics/vendors/Incode/index.d.ts +1 -1
  7. package/dist/esm/modules/biometrics/vendors/Incode/index.d.ts.map +1 -1
  8. package/dist/esm/modules/biometrics/vendors/Incode/index.js +15 -1
  9. package/dist/esm/modules/biometrics/vendors/Incode/index.js.map +1 -1
  10. package/dist/esm/modules/biometrics/vendors/OcrLabs/index.d.ts +1 -1
  11. package/dist/esm/modules/biometrics/vendors/OcrLabs/index.d.ts.map +1 -1
  12. package/dist/esm/modules/biometrics/vendors/OcrLabs/index.js +3 -27
  13. package/dist/esm/modules/biometrics/vendors/OcrLabs/index.js.map +1 -1
  14. package/dist/esm/modules/biometrics/vendors/Onfido/index.d.ts +1 -1
  15. package/dist/esm/modules/biometrics/vendors/Onfido/index.d.ts.map +1 -1
  16. package/dist/esm/modules/biometrics/vendors/Onfido/index.js +9 -9
  17. package/dist/esm/modules/biometrics/vendors/Onfido/index.js.map +1 -1
  18. package/dist/esm/modules/biometrics/vendors/dummy-biometrics/index.d.ts +1 -1
  19. package/dist/esm/modules/common/errors/{OneSDKError.d.ts → OneSDKError.class.d.ts} +1 -1
  20. package/dist/esm/modules/common/errors/OneSDKError.class.d.ts.map +1 -0
  21. package/dist/esm/modules/common/errors/{OneSDKError.js → OneSDKError.class.js} +1 -1
  22. package/dist/esm/modules/common/errors/OneSDKError.class.js.map +1 -0
  23. package/dist/esm/modules/common/index.d.ts +1 -1
  24. package/dist/esm/modules/common/index.d.ts.map +1 -1
  25. package/dist/esm/modules/common/index.js +1 -1
  26. package/dist/esm/modules/common/index.js.map +1 -1
  27. package/dist/esm/modules/common/modules/HOF.d.ts +2 -2
  28. package/dist/esm/modules/common/modules/HOF.js +1 -1
  29. package/dist/esm/modules/common/modules/error.d.ts +2 -2
  30. package/dist/esm/modules/common/modules/error.js +2 -2
  31. package/dist/esm/modules/common/modules/error.js.map +1 -1
  32. package/dist/esm/modules/common/modules/eventHub/index.d.ts +2 -2
  33. package/dist/esm/modules/common/modules/eventHub/index.d.ts.map +1 -1
  34. package/dist/esm/modules/common/modules/eventHub/index.js +59 -12
  35. package/dist/esm/modules/common/modules/eventHub/index.js.map +1 -1
  36. package/dist/esm/modules/common/modules/eventHub/types.d.ts +11 -8
  37. package/dist/esm/modules/common/modules/eventHub/types.d.ts.map +1 -1
  38. package/dist/esm/modules/common/modules/eventHub/windowEventHub.d.ts +13 -0
  39. package/dist/esm/modules/common/modules/eventHub/windowEventHub.d.ts.map +1 -0
  40. package/dist/esm/modules/common/modules/eventHub/windowEventHub.js +39 -0
  41. package/dist/esm/modules/common/modules/eventHub/windowEventHub.js.map +1 -0
  42. package/dist/esm/modules/common/modules/vendorLoading.d.ts +10 -10
  43. package/dist/esm/modules/common/modules/vendorLoading.d.ts.map +1 -1
  44. package/dist/esm/modules/common/modules/vendorLoading.js +2 -2
  45. package/dist/esm/modules/common/modules/vendorLoading.js.map +1 -1
  46. package/dist/esm/modules/common/types/oneSDKModules/{BaseParameters.d.ts → baseParameters.types.d.ts} +1 -1
  47. package/dist/esm/modules/common/types/oneSDKModules/baseParameters.types.d.ts.map +1 -0
  48. package/dist/esm/modules/common/types/oneSDKModules/{BaseParameters.js → baseParameters.types.js} +1 -1
  49. package/dist/esm/modules/common/types/oneSDKModules/baseParameters.types.js.map +1 -0
  50. package/dist/esm/modules/common/types/oneSDKModules/definition.types.d.ts +15 -3
  51. package/dist/esm/modules/common/types/oneSDKModules/definition.types.d.ts.map +1 -1
  52. package/dist/esm/modules/common/types/oneSDKModules/index.d.ts +2 -2
  53. package/dist/esm/modules/common/types/oneSDKModules/index.d.ts.map +1 -1
  54. package/dist/esm/modules/common/types/oneSDKModules/index.js +2 -2
  55. package/dist/esm/modules/common/types/oneSDKModules/index.js.map +1 -1
  56. package/dist/esm/modules/common/types/oneSDKModules/initialiseFunction.d.ts +4 -4
  57. package/dist/esm/modules/common/types/oneSDKModules/initialiseFunction.d.ts.map +1 -1
  58. package/dist/esm/modules/common/types/oneSDKModules/initialiseFunction.js.map +1 -1
  59. package/dist/esm/modules/common/types/oneSDKModules/{TypeSystem.d.ts → typeSystem.types.d.ts} +1 -1
  60. package/dist/esm/modules/common/types/oneSDKModules/typeSystem.types.d.ts.map +1 -0
  61. package/dist/esm/modules/common/types/oneSDKModules/typeSystem.types.js +2 -0
  62. package/dist/esm/modules/common/types/oneSDKModules/typeSystem.types.js.map +1 -0
  63. package/dist/esm/modules/common/types/recipeConfiguration.types.d.ts +5 -11
  64. package/dist/esm/modules/common/types/recipeConfiguration.types.d.ts.map +1 -1
  65. package/dist/esm/modules/common/vendors/incode/index.d.ts +2 -1
  66. package/dist/esm/modules/common/vendors/incode/index.d.ts.map +1 -1
  67. package/dist/esm/modules/common/vendors/incode/index.js +2 -4
  68. package/dist/esm/modules/common/vendors/incode/index.js.map +1 -1
  69. package/dist/esm/modules/common/vendors/incode/startCamera.d.ts +1 -1
  70. package/dist/esm/modules/common/vendors/incode/startCamera.d.ts.map +1 -1
  71. package/dist/esm/modules/common/vendors/incode/startCamera.js +24 -2
  72. package/dist/esm/modules/common/vendors/incode/startCamera.js.map +1 -1
  73. package/dist/esm/modules/common/vendors/smart-ui/promisifySmartUI.d.ts +13 -0
  74. package/dist/esm/modules/common/vendors/smart-ui/promisifySmartUI.d.ts.map +1 -0
  75. package/dist/esm/modules/common/vendors/smart-ui/promisifySmartUI.js +30 -0
  76. package/dist/esm/modules/common/vendors/smart-ui/promisifySmartUI.js.map +1 -0
  77. package/dist/esm/modules/common/vendors/smart-ui/useSmartUI.d.ts +35 -0
  78. package/dist/esm/modules/common/vendors/smart-ui/useSmartUI.d.ts.map +1 -0
  79. package/dist/esm/modules/common/vendors/smart-ui/useSmartUI.js +60 -0
  80. package/dist/esm/modules/common/vendors/smart-ui/useSmartUI.js.map +1 -0
  81. package/dist/esm/modules/config/modules.d.ts +4 -2
  82. package/dist/esm/modules/config/modules.d.ts.map +1 -1
  83. package/dist/esm/modules/config/modules.js +9 -7
  84. package/dist/esm/modules/config/modules.js.map +1 -1
  85. package/dist/esm/modules/idv/actions/mount.d.ts +14 -0
  86. package/dist/esm/modules/idv/actions/mount.d.ts.map +1 -0
  87. package/dist/esm/modules/idv/actions/mount.js +67 -0
  88. package/dist/esm/modules/idv/actions/mount.js.map +1 -0
  89. package/dist/esm/modules/idv/definition.types.d.ts +2 -1
  90. package/dist/esm/modules/idv/definition.types.d.ts.map +1 -1
  91. package/dist/esm/modules/idv/{events.d.ts → events.types.d.ts} +1 -1
  92. package/dist/esm/modules/idv/events.types.d.ts.map +1 -0
  93. package/dist/esm/modules/idv/events.types.js +2 -0
  94. package/dist/esm/modules/idv/events.types.js.map +1 -0
  95. package/dist/esm/modules/idv/index.d.ts.map +1 -1
  96. package/dist/esm/modules/idv/index.js +19 -73
  97. package/dist/esm/modules/idv/index.js.map +1 -1
  98. package/dist/esm/modules/idv/vendors/Incode/index.d.ts +5 -6
  99. package/dist/esm/modules/idv/vendors/Incode/index.d.ts.map +1 -1
  100. package/dist/esm/modules/idv/vendors/Incode/index.js +6 -5
  101. package/dist/esm/modules/idv/vendors/Incode/index.js.map +1 -1
  102. package/dist/esm/modules/idv/vendors/Mastercard/index.d.ts +5 -5
  103. package/dist/esm/modules/idv/vendors/Mastercard/index.d.ts.map +1 -1
  104. package/dist/esm/modules/idv/vendors/Mastercard/index.js +11 -12
  105. package/dist/esm/modules/idv/vendors/Mastercard/index.js.map +1 -1
  106. package/dist/esm/modules/idv/vendors/OcrLabs/endFlow.js +1 -1
  107. package/dist/esm/modules/idv/vendors/OcrLabs/endFlow.js.map +1 -1
  108. package/dist/esm/modules/idv/vendors/OcrLabs/index.d.ts +3 -2
  109. package/dist/esm/modules/idv/vendors/OcrLabs/index.d.ts.map +1 -1
  110. package/dist/esm/modules/idv/vendors/OcrLabs/startDummyFlow.d.ts +2 -2
  111. package/dist/esm/modules/idv/vendors/OcrLabs/startDummyFlow.d.ts.map +1 -1
  112. package/dist/esm/modules/idv/vendors/OcrLabs/startDummyFlow.js +2 -2
  113. package/dist/esm/modules/idv/vendors/OcrLabs/startDummyFlow.js.map +1 -1
  114. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframe.d.ts +7 -5
  115. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframe.d.ts.map +1 -1
  116. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframe.js +1 -1
  117. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframe.js.map +1 -1
  118. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframeEventListener.d.ts +11 -5
  119. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframeEventListener.d.ts.map +1 -1
  120. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframeEventListener.js +9 -4
  121. package/dist/esm/modules/idv/vendors/common/iframeUtils/createIframeEventListener.js.map +1 -1
  122. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts +8 -4
  123. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.d.ts.map +1 -1
  124. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js +58 -46
  125. package/dist/esm/modules/idv/vendors/common/iframeUtils/defineIframeIDVWrapper.js.map +1 -1
  126. package/dist/esm/modules/idv/vendors/common/iframeUtils/updateIndividualModuleState.d.ts +12 -0
  127. package/dist/esm/modules/idv/vendors/common/iframeUtils/updateIndividualModuleState.d.ts.map +1 -0
  128. package/dist/esm/modules/idv/vendors/common/iframeUtils/updateIndividualModuleState.js +34 -0
  129. package/dist/esm/modules/idv/vendors/common/iframeUtils/updateIndividualModuleState.js.map +1 -0
  130. package/dist/esm/modules/index.d.ts +7 -7
  131. package/dist/esm/modules/index.d.ts.map +1 -1
  132. package/dist/esm/modules/index.js +16 -11
  133. package/dist/esm/modules/index.js.map +1 -1
  134. package/dist/esm/modules/individual/actions/search.d.ts +3 -3
  135. package/dist/esm/modules/individual/actions/search.d.ts.map +1 -1
  136. package/dist/esm/modules/individual/actions/search.js +8 -8
  137. package/dist/esm/modules/individual/actions/search.js.map +1 -1
  138. package/dist/esm/modules/individual/actions/submit.d.ts +11 -8
  139. package/dist/esm/modules/individual/actions/submit.d.ts.map +1 -1
  140. package/dist/esm/modules/individual/actions/submit.js +41 -20
  141. package/dist/esm/modules/individual/actions/submit.js.map +1 -1
  142. package/dist/esm/modules/individual/definition.d.ts +13 -13
  143. package/dist/esm/modules/individual/definition.d.ts.map +1 -1
  144. package/dist/esm/modules/individual/index.d.ts +3 -3
  145. package/dist/esm/modules/individual/index.js +23 -23
  146. package/dist/esm/modules/meta.json +1 -1
  147. package/dist/esm/modules/ocr/actions/mount.d.ts +9 -4
  148. package/dist/esm/modules/ocr/actions/mount.d.ts.map +1 -1
  149. package/dist/esm/modules/ocr/actions/mount.js +54 -32
  150. package/dist/esm/modules/ocr/actions/mount.js.map +1 -1
  151. package/dist/esm/modules/ocr/actions/start.d.ts +1 -0
  152. package/dist/esm/modules/ocr/actions/start.d.ts.map +1 -1
  153. package/dist/esm/modules/ocr/actions/start.js +85 -69
  154. package/dist/esm/modules/ocr/actions/start.js.map +1 -1
  155. package/dist/esm/modules/ocr/definition.d.ts +21 -9
  156. package/dist/esm/modules/ocr/definition.d.ts.map +1 -1
  157. package/dist/esm/modules/ocr/index.d.ts.map +1 -1
  158. package/dist/esm/modules/ocr/index.js +6 -4
  159. package/dist/esm/modules/ocr/index.js.map +1 -1
  160. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts +13 -2
  161. package/dist/esm/modules/ocr/vendors/Incode/index.d.ts.map +1 -1
  162. package/dist/esm/modules/ocr/vendors/Incode/index.js +13 -18
  163. package/dist/esm/modules/ocr/vendors/Incode/index.js.map +1 -1
  164. package/dist/esm/modules/ocr/vendors/Onfido/index.d.ts +13 -2
  165. package/dist/esm/modules/ocr/vendors/Onfido/index.d.ts.map +1 -1
  166. package/dist/esm/modules/ocr/vendors/Onfido/index.js +17 -20
  167. package/dist/esm/modules/ocr/vendors/Onfido/index.js.map +1 -1
  168. package/dist/esm/modules/ocr/vendors/common/initProcess.d.ts +20 -9
  169. package/dist/esm/modules/ocr/vendors/common/initProcess.d.ts.map +1 -1
  170. package/dist/esm/modules/ocr/vendors/common/initProcess.js +52 -17
  171. package/dist/esm/modules/ocr/vendors/common/initProcess.js.map +1 -1
  172. package/dist/esm/modules/ocr/vendors/common/mutationObserver.d.ts +2 -2
  173. package/dist/esm/modules/ocr/vendors/common/mutationObserver.d.ts.map +1 -1
  174. package/dist/esm/modules/ocr/vendors/common/mutationObserver.js +2 -2
  175. package/dist/esm/modules/ocr/vendors/common/mutationObserver.js.map +1 -1
  176. package/dist/esm/modules/ocr/vendors/dummy-ocr/index.d.ts +13 -2
  177. package/dist/esm/modules/ocr/vendors/dummy-ocr/index.d.ts.map +1 -1
  178. package/dist/esm/modules/sdk/devTools/attachDevTools.d.ts +22 -0
  179. package/dist/esm/modules/sdk/devTools/attachDevTools.d.ts.map +1 -0
  180. package/dist/esm/modules/sdk/devTools/attachDevTools.js +38 -0
  181. package/dist/esm/modules/sdk/devTools/attachDevTools.js.map +1 -0
  182. package/dist/esm/modules/sdk/index.d.ts +2 -2
  183. package/dist/esm/modules/sdk/index.d.ts.map +1 -1
  184. package/dist/esm/modules/sdk/index.js +17 -13
  185. package/dist/esm/modules/sdk/index.js.map +1 -1
  186. package/dist/esm/modules/sdk/initialisation/componentLoader.d.ts +147 -36
  187. package/dist/esm/modules/sdk/initialisation/componentLoader.d.ts.map +1 -1
  188. package/dist/esm/modules/sdk/initialisation/componentLoader.js +14 -11
  189. package/dist/esm/modules/sdk/initialisation/componentLoader.js.map +1 -1
  190. package/dist/esm/modules/sdk/initialisation/sharedDependencies.d.ts +4 -4
  191. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js +26 -26
  192. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js.map +1 -1
  193. package/dist/esm/modules/sdk/types/oneSDKParameters.d.ts +5 -4
  194. package/dist/esm/modules/sdk/types/oneSDKParameters.d.ts.map +1 -1
  195. package/dist/esm/modules/sdk/types/oneSDKParameters.js.map +1 -1
  196. package/dist/esm/modules/session/SessionContext.d.ts +1 -1
  197. package/dist/esm/modules/session/SessionContext.js +6 -6
  198. package/dist/esm/modules/smart-ui/definition.d.ts +50 -0
  199. package/dist/esm/modules/smart-ui/definition.d.ts.map +1 -0
  200. package/dist/esm/modules/smart-ui/definition.js +2 -0
  201. package/dist/esm/modules/smart-ui/definition.js.map +1 -0
  202. package/dist/esm/modules/smart-ui/implementations/legacy/i18n.json +6 -0
  203. package/dist/esm/modules/smart-ui/implementations/legacy/index.d.ts +54 -0
  204. package/dist/esm/modules/smart-ui/implementations/legacy/index.d.ts.map +1 -0
  205. package/dist/esm/modules/smart-ui/implementations/legacy/index.js +75 -0
  206. package/dist/esm/modules/smart-ui/implementations/legacy/index.js.map +1 -0
  207. package/dist/esm/modules/smart-ui/implementations/legacy/loadSmartUI.d.ts +9 -0
  208. package/dist/esm/modules/smart-ui/implementations/legacy/loadSmartUI.d.ts.map +1 -0
  209. package/dist/esm/modules/smart-ui/implementations/legacy/loadSmartUI.js +42 -0
  210. package/dist/esm/modules/smart-ui/implementations/legacy/loadSmartUI.js.map +1 -0
  211. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIEvents.types.d.ts +23 -0
  212. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIEvents.types.d.ts.map +1 -0
  213. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIEvents.types.js +2 -0
  214. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIEvents.types.js.map +1 -0
  215. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIOptions.types.d.ts +76 -0
  216. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIOptions.types.d.ts.map +1 -0
  217. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIOptions.types.js +2 -0
  218. package/dist/esm/modules/smart-ui/implementations/legacy/smartUIOptions.types.js.map +1 -0
  219. package/dist/esm/modules/smart-ui/index.d.ts +4 -0
  220. package/dist/esm/modules/smart-ui/index.d.ts.map +1 -0
  221. package/dist/esm/modules/smart-ui/index.js +26 -0
  222. package/dist/esm/modules/smart-ui/index.js.map +1 -0
  223. package/dist/esm/modules/smart-ui/validateConfiguration.d.ts +6 -0
  224. package/dist/esm/modules/smart-ui/validateConfiguration.d.ts.map +1 -0
  225. package/dist/esm/modules/smart-ui/validateConfiguration.js +10 -0
  226. package/dist/esm/modules/smart-ui/validateConfiguration.js.map +1 -0
  227. package/dist/esm/modules/types.d.ts +16 -16
  228. package/dist/esm/modules/types.d.ts.map +1 -1
  229. package/dist/esm/modules/types.js +4 -4
  230. package/dist/esm/modules/types.js.map +1 -1
  231. package/dist/release.txt +2 -2
  232. package/dist/umd/biometrics-dummy.js +1 -1
  233. package/dist/umd/biometrics-incode.js +1 -1
  234. package/dist/umd/biometrics-incode.js.map +1 -1
  235. package/dist/umd/biometrics-ocrlabs.js +1 -1
  236. package/dist/umd/biometrics-ocrlabs.js.map +1 -1
  237. package/dist/umd/biometrics-onfido.js +1 -1
  238. package/dist/umd/biometrics-onfido.js.map +1 -1
  239. package/dist/umd/device-sardine.js +1 -1
  240. package/dist/umd/idv-incode.js +1 -1
  241. package/dist/umd/idv-incode.js.map +1 -1
  242. package/dist/umd/idv-mastercard.js +1 -1
  243. package/dist/umd/idv-mastercard.js.map +1 -1
  244. package/dist/umd/idv-ocrlabs.js +1 -1
  245. package/dist/umd/idv-ocrlabs.js.map +1 -1
  246. package/dist/umd/ocr-dummy.js +1 -1
  247. package/dist/umd/ocr-dummy.js.map +1 -1
  248. package/dist/umd/ocr-incode.js +1 -1
  249. package/dist/umd/ocr-incode.js.map +1 -1
  250. package/dist/umd/ocr-onfido.js +1 -1
  251. package/dist/umd/ocr-onfido.js.map +1 -1
  252. package/dist/umd/oneSdk.umd.js +1 -1
  253. package/dist/umd/oneSdk.umd.js.map +1 -1
  254. package/dist/umd/smartui-legacy.js +2 -0
  255. package/dist/umd/smartui-legacy.js.map +1 -0
  256. package/dist/version.txt +2 -2
  257. package/package.json +1 -1
  258. package/dist/esm/modules/common/errors/OneSDKError.d.ts.map +0 -1
  259. package/dist/esm/modules/common/errors/OneSDKError.js.map +0 -1
  260. package/dist/esm/modules/common/types/oneSDKModules/BaseParameters.d.ts.map +0 -1
  261. package/dist/esm/modules/common/types/oneSDKModules/BaseParameters.js.map +0 -1
  262. package/dist/esm/modules/common/types/oneSDKModules/TypeSystem.d.ts.map +0 -1
  263. package/dist/esm/modules/common/types/oneSDKModules/TypeSystem.js +0 -2
  264. package/dist/esm/modules/common/types/oneSDKModules/TypeSystem.js.map +0 -1
  265. package/dist/esm/modules/idv/events.d.ts.map +0 -1
  266. package/dist/esm/modules/idv/events.js +0 -2
  267. package/dist/esm/modules/idv/events.js.map +0 -1
  268. package/dist/esm/modules/ocr/vendors/common/mutation-observer.d.ts +0 -4
  269. package/dist/esm/modules/ocr/vendors/common/mutation-observer.d.ts.map +0 -1
  270. package/dist/esm/modules/ocr/vendors/common/mutation-observer.js +0 -21
  271. package/dist/esm/modules/ocr/vendors/common/mutation-observer.js.map +0 -1
  272. package/dist/esm/modules/ocr/vendors/common/status-evaluators.d.ts +0 -18
  273. package/dist/esm/modules/ocr/vendors/common/status-evaluators.d.ts.map +0 -1
  274. package/dist/esm/modules/ocr/vendors/common/status-evaluators.js +0 -11
  275. package/dist/esm/modules/ocr/vendors/common/status-evaluators.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[802],{21344:(e,n,t)=>{t.r(n),t.d(n,{initialise:()=>u});var o=t(10573),i=t(77836),r=t(33415),c=t(99434),s=t(51410),d=t(36932),a=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const u=(0,c.J)("incode",((e,n)=>a(void 0,void 0,void 0,(function*(){const{frankieClient:t,recipe:c}=e,{mountElement:u,eventHub:l}=n,m=new d.Bv(t),v=yield(0,o.e)(m,l);if(!v)return;const{vendorParameters:p}=v;try{const{apiURL:e,clientId:n,interviewId:t}=p,{incode:o,session:i}=yield(0,s.N9)({clientId:n,apiURL:e,interviewId:t}),{onLog:d,onError:v}=(0,s.WN)("biometrics",{eventHub:l,entityId:m.entityId}),f={incode:o,session:i,eventHub:l,mountElement:u,onError:v,onLog:d};(0,s.iW)("selfie",Object.assign(Object.assign({},f),{onSuccess:()=>a(void 0,void 0,void 0,(function*(){l.emit("detection_complete"),yield(0,r.g)({idvClient:m,recipe:c,eventHub:l}),l.emit("session_closed")}))})),l.emit("ready",{domElement:u})}catch(e){const n=(0,i.q)(c),{type:t=null,message:o=""}=e;l.emit("error",n("DEFAULT",{type:t,message:o}))}return{}}))))},10573:(e,n,t)=>{t.d(n,{e:()=>o});const o=(e,n)=>{return t=void 0,o=void 0,r=function*(){try{const{entityId:t,token:o,vendorParameters:i}=yield e.getToken();return n.emit("session_data_generated",{session:{entityId:t,token:o,vendorParameters:i}}),{entityId:t,token:o,vendorParameters:i}}catch(e){const{code:t=null,message:o=""}=e;return n.emit("session_data_failed_loading",{code:t,message:o}),null}},new((i=void 0)||(i=Promise))((function(e,n){function c(e){try{d(r.next(e))}catch(e){n(e)}}function s(e){try{d(r.throw(e))}catch(e){n(e)}}function d(n){var t;n.done?e(n.value):(t=n.value,t instanceof i?t:new i((function(e){e(t)}))).then(c,s)}d((r=r.apply(t,o||[])).next())}));var t,o,i,r}},77836:(e,n,t)=>{t.d(n,{q:()=>r});var o=t(96834),i=t(36932);const r=e=>{const{biometrics:{provider:{name:n}}}=e;return(e,...t)=>{return new o.OneSDKError((r=n,{DEFAULT:`Error from vendor SDK '${r}'`,INIT_PROCESS:"Error from biometrics submission",[i.ck.PROVIDER_OFFLINE]:`Error initialising biometrics check with '${r}'. The service doesn't appear to be available.`,[i.ck.WAITING_DOC_UPLOAD]:`Error initialising biometrics check with '${r}'. You might need to run the 'ocr' component before running 'biometrics'.`,[i.ck.WAITING_SELFIE_UPLOAD]:`Error initialising biometrics check with '${r}'. You might need to capture selfie before running 'biometrics'.`})[e],t);var r}}},33415:(e,n,t)=>{t.d(n,{g:()=>r});var o=t(77836),i=t(36932);const r=({idvClient:e,recipe:n,eventHub:t})=>{return r=void 0,c=void 0,d=function*(){const{biometrics:{is_synchronous:r}}=n,c=(0,o.q)(n),{checkStatus:s,ocrDocument:d}=yield e.initProcess({isSynchronous:!!r});(0,i.b9)(s)||(0,i.KM)(s)?t.emit("error",c(s)):t.emit(r?"results":"processing",{checkStatus:s,document:d,entityId:e.entityId})},new((s=void 0)||(s=Promise))((function(e,n){function t(e){try{i(d.next(e))}catch(e){n(e)}}function o(e){try{i(d.throw(e))}catch(e){n(e)}}function i(n){var i;n.done?e(n.value):(i=n.value,i instanceof s?i:new s((function(e){e(i)}))).then(t,o)}i((d=d.apply(r,c||[])).next())}));var r,c,s,d}},51410:(e,n,t)=>{t.d(n,{WN:()=>c,N9:()=>u,iW:()=>d});var o=t(96834),i=t(97356),r=t(25491);const c=(e,{eventHub:n,entityId:t})=>{let c=!1;const s=["InternalServerError","skip","OSVersionNotSupported","browserNotSupported"];return{biometrics:{onLog:({type:e})=>{"noAttemps"===e&&(c=!0)},onError:({type:e,payload:r})=>{c?n.emit("detection_failed",{message:null==r?void 0:r.message}):"permissionDenied"===e?n.emit("input_required",{entityId:t},i.ck.INTERRUPTED):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:r}))}},ocr:{onLog:({type:e,payload:t})=>{["IDNotDetected","nothingHappened","manualCaptureOn","successCapture","attemptFailed","success"].includes(e)?n.emit("info",{message:null==t?void 0:t.message,payload:{type:e}}):"noAttemps"===e&&(c=!0)},onError:({type:e,payload:t})=>{c?n.emit("detection_failed",{message:null==t?void 0:t.message}):"permissionDenied"===e?n.emit("input_required",{documentType:null,side:"front"},r.$_.INTERRUPTED,(()=>({}))):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:t}))}}}[e]};var s=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const d=(e,n)=>s(void 0,void 0,void 0,(function*(){const{incode:t,session:i,eventHub:r,mountElement:c,onSuccess:d=(()=>({})),onError:a,onLog:u}=n;return new Promise(((n,l)=>{try{t.renderCamera(e,c,{onSuccess:e=>s(void 0,void 0,void 0,(function*(){return d(e),n({})})),onError:e=>(a(e),l(e)),onLog:e=>{u(e)},token:i,numberOfTries:3})}catch(e){const{message:n=""}=e;return r.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{message:n})),l(e)}}))}));var a=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const u=({clientId:e,apiURL:n,interviewId:t})=>a(void 0,void 0,void 0,(function*(){yield(0,o.loadAsyncAsset)("https://sdk.incode.com/sdk/onBoarding-1.59.0.js");const i=yield l({clientId:e,apiURL:n}),r=yield i.createSession("ALL",null,{interviewId:t});return{incode:i,session:r}})),l=({clientId:e,apiURL:n})=>a(void 0,void 0,void 0,(function*(){const t=window.OnBoarding.create({clientId:e,apiURL:n});return yield t.warmup(),t}))}}]);
1
+ "use strict";(self.webpackChunkOneSdk=self.webpackChunkOneSdk||[]).push([[802],{21344:(e,n,t)=>{t.r(n),t.d(n,{initialise:()=>u});var o=t(10573),i=t(77836),r=t(33415),c=t(99434),s=t(51410),d=t(36932),a=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const u=(0,c.J)("incode",((e,n)=>a(void 0,void 0,void 0,(function*(){const{frankieClient:t,recipe:c}=e,{biometrics:{provider:u}}=c,{mountElement:l,eventHub:m}=n,v=new d.Bv(t),p=yield(0,o.e)(v,m);if(!p)return;const{vendorParameters:f}=p;try{const{apiURL:e,clientId:n,interviewId:t}=f,{incode:o,session:i}=yield(0,s.N9)({clientId:n,apiURL:e,interviewId:t,sdkVersion:"incode"===u.name&&u.sdkVersion}),d=document.createElement("style");d.innerHTML="\n .IncodeCaptureSelfieBordersContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n }",document.head.appendChild(d);const{onLog:p,onError:y}=(0,s.WN)("biometrics",{eventHub:m,entityId:v.entityId}),h={incode:o,session:i,eventHub:m,mountElement:l,onError:y,onLog:p};(0,s.iW)("biometrics",Object.assign(Object.assign({},h),{onSuccess:()=>a(void 0,void 0,void 0,(function*(){m.emit("detection_complete"),yield(0,r.g)({idvClient:v,recipe:c,eventHub:m}),m.emit("session_closed")}))})),m.emit("ready",{domElement:l})}catch(e){const n=(0,i.q)(c),{type:t=null,message:o=""}=e;m.emit("error",n("DEFAULT",{type:t,message:o}))}return{}}))))},10573:(e,n,t)=>{t.d(n,{e:()=>o});const o=(e,n)=>{return t=void 0,o=void 0,r=function*(){try{const{entityId:t,token:o,vendorParameters:i}=yield e.getToken();return n.emit("session_data_generated",{session:{entityId:t,token:o,vendorParameters:i}}),{entityId:t,token:o,vendorParameters:i}}catch(e){const{code:t=null,message:o=""}=e;return n.emit("session_data_failed_loading",{code:t,message:o}),null}},new((i=void 0)||(i=Promise))((function(e,n){function c(e){try{d(r.next(e))}catch(e){n(e)}}function s(e){try{d(r.throw(e))}catch(e){n(e)}}function d(n){var t;n.done?e(n.value):(t=n.value,t instanceof i?t:new i((function(e){e(t)}))).then(c,s)}d((r=r.apply(t,o||[])).next())}));var t,o,i,r}},77836:(e,n,t)=>{t.d(n,{q:()=>r});var o=t(77494),i=t(36932);const r=e=>{const{biometrics:{provider:{name:n}}}=e;return(e,...t)=>{return new o.OneSDKError((r=n,{DEFAULT:`Error from vendor SDK '${r}'`,INIT_PROCESS:"Error from biometrics submission",[i.ck.PROVIDER_OFFLINE]:`Error initialising biometrics check with '${r}'. The service doesn't appear to be available.`,[i.ck.WAITING_DOC_UPLOAD]:`Error initialising biometrics check with '${r}'. You might need to run the 'ocr' component before running 'biometrics'.`,[i.ck.WAITING_SELFIE_UPLOAD]:`Error initialising biometrics check with '${r}'. You might need to capture selfie before running 'biometrics'.`})[e],t);var r}}},33415:(e,n,t)=>{t.d(n,{g:()=>r});var o=t(77836),i=t(36932);const r=({idvClient:e,recipe:n,eventHub:t})=>{return r=void 0,c=void 0,d=function*(){const{biometrics:{is_synchronous:r}}=n,c=(0,o.q)(n),{checkStatus:s,ocrDocument:d}=yield e.initProcess({isSynchronous:!!r});(0,i.b9)(s)||(0,i.KM)(s)?t.emit("error",c(s)):t.emit(r?"results":"processing",{checkStatus:s,document:d,entityId:e.entityId})},new((s=void 0)||(s=Promise))((function(e,n){function t(e){try{i(d.next(e))}catch(e){n(e)}}function o(e){try{i(d.throw(e))}catch(e){n(e)}}function i(n){var i;n.done?e(n.value):(i=n.value,i instanceof s?i:new s((function(e){e(i)}))).then(t,o)}i((d=d.apply(r,c||[])).next())}));var r,c,s,d}},51410:(e,n,t)=>{t.d(n,{WN:()=>c,N9:()=>l,iW:()=>d});var o=t(77494),i=t(71497),r=t(25491);const c=(e,{eventHub:n,entityId:t})=>{let c=!1;const s=["InternalServerError","skip","OSVersionNotSupported","browserNotSupported"];return{biometrics:{onLog:({type:e})=>{"noAttemps"===e&&(c=!0)},onError:({type:e,payload:r})=>{c?n.emit("detection_failed",{message:null==r?void 0:r.message}):"permissionDenied"===e?n.emit("input_required",{entityId:t},i.ck.INTERRUPTED):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:r}))}},ocr:{onLog:({type:e,payload:t})=>{["IDNotDetected","nothingHappened","manualCaptureOn","successCapture","attemptFailed","success"].includes(e)?n.emit("info",{message:null==t?void 0:t.message,payload:{type:e}}):"noAttemps"===e&&(c=!0)},onError:({type:e,payload:t})=>{c?n.emit("detection_failed",{message:null==t?void 0:t.message}):"permissionDenied"===e?n.emit("input_required",{documentType:null,side:"front"},r.$_.INTERRUPTED,(()=>({}))):s.includes(e)&&n.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{type:e,payload:t}))}}}[e]};var s=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const d=(e,n)=>s(void 0,void 0,void 0,(function*(){if("ocr"===e)return yield a("front",Object.assign(Object.assign({},n),{onSuccess:({skipBackIdCapture:e})=>s(void 0,void 0,void 0,(function*(){e?null==n||n.onSuccess({}):yield a("back",n)}))}));if("biometrics"===e)return yield a("selfie",n);throw new o.OneSDKError("Unknown purpose",{purpose:e})})),a=(e,n)=>s(void 0,void 0,void 0,(function*(){const{incode:t,session:i,eventHub:r,mountElement:c,onSuccess:d=(()=>({})),onError:a,onLog:u}=n;return new Promise(((n,l)=>{if(c.children.length>0){const e=new o.OneSDKError("Incode requires mountElement to be an empty container.",{});return r.emit("error",e),l(e)}try{t.renderCamera(e,c,{onSuccess:e=>s(void 0,void 0,void 0,(function*(){return d(e),n({})})),onError:e=>(a(e),l(e)),onLog:e=>{u(e)},token:i,numberOfTries:3})}catch(e){const{message:n=""}=e;return r.emit("error",new o.OneSDKError("Error from vendor SDK 'Incode'",{message:n})),l(e)}}))}));var u=function(e,n,t,o){return new(t||(t=Promise))((function(i,r){function c(e){try{d(o.next(e))}catch(e){r(e)}}function s(e){try{d(o.throw(e))}catch(e){r(e)}}function d(e){var n;e.done?i(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,s)}d((o=o.apply(e,n||[])).next())}))};const l=({clientId:e,apiURL:n,interviewId:t,sdkVersion:i="1.59.0"})=>u(void 0,void 0,void 0,(function*(){yield(0,o.loadAsyncAsset)(`https://sdk.incode.com/sdk/onBoarding-${i}.js`);const r=yield m({clientId:e,apiURL:n}),c=yield r.createSession("ALL",null,{interviewId:t});return{incode:r,session:c}})),m=({clientId:e,apiURL:n})=>u(void 0,void 0,void 0,(function*(){const t=window.OnBoarding.create({clientId:e,apiURL:n});return yield t.warmup(),t}))}}]);
2
2
  //# sourceMappingURL=biometrics-incode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"biometrics-incode.js","mappings":"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","sources":["webpack://OneSdk/./modules/biometrics/vendors/Incode/index.ts","webpack://OneSdk/./modules/biometrics/vendors/common/createSession.ts","webpack://OneSdk/./modules/biometrics/vendors/common/errors.ts","webpack://OneSdk/./modules/biometrics/vendors/common/initProcess.ts","webpack://OneSdk/./modules/common/vendors/incode/createEventHandlers.ts","webpack://OneSdk/./modules/common/vendors/incode/startCamera.ts","webpack://OneSdk/./modules/common/vendors/incode/index.ts"],"sourcesContent":["import type { BiometricsModule } from '@module/biometrics';\nimport { createSession } from '@module/biometrics/vendors/common/createSession';\nimport { mkErrors } from '@module/biometrics/vendors/common/errors';\nimport { initProcess } from '@module/biometrics/vendors/common/initProcess';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { IncodeSession } from '@module/common/vendors/incode';\nimport {\n createEventHandlers,\n install,\n startCamera,\n} from '@module/common/vendors/incode';\nimport { IDVClient } from '@module/frankie-client/clients/IDVClient';\n\nexport const initialise = defineWrapper<BiometricsModule>('incode', async (\n shared,\n options,\n) => {\n const { frankieClient, recipe } = shared;\n const { mountElement, eventHub } = options;\n const idvClient = new IDVClient(frankieClient);\n\n // generate session token from backend\n const idvSession = await createSession<IncodeSession>(idvClient, eventHub);\n // terminate initialising if session failed\n if (!idvSession) return;\n const { vendorParameters } = idvSession;\n\n try {\n // initialise Incode with credentials\n const { apiURL, clientId, interviewId } = vendorParameters;\n const { incode, session } = await install({\n clientId,\n apiURL,\n interviewId,\n });\n\n const {\n onLog,\n onError,\n } = createEventHandlers('biometrics', {\n eventHub,\n entityId: idvClient.entityId,\n });\n const cameraProps = {\n incode,\n session,\n eventHub,\n mountElement,\n onError,\n onLog,\n };\n // turn on camera to capture selfie\n // \"void\" operator indicates the intention of non-blocking async process\n // it allows other events to emit while using camera to capture\n void startCamera('selfie', {\n ...cameraProps,\n onSuccess: async (): Promise<void> => {\n eventHub.emit('detection_complete');\n await initProcess({ idvClient, recipe, eventHub });\n eventHub.emit('session_closed');\n },\n });\n eventHub.emit('ready', { domElement: mountElement });\n } catch (error) {\n const errorMessages = mkErrors(recipe);\n const { type = null, message = '' } = error;\n eventHub.emit('error', errorMessages('DEFAULT', { type, message }));\n }\n\n return {};\n});\n","import type { Events } from '@module/biometrics/events';\nimport type { EventHub } from '@module/common';\nimport type { IDVClient } from '@module/frankie-client/clients/IDVClient';\nimport type { _DictionaryWrite } from '@types';\n\n/**\n * Creates a session by obtaining an entity ID, token, and vendor parameters from an IDVClient.\n * It will also emit 'session_data_generated' event to the provided event hub.\n * This function won't throw errors. Instead, it will emit 'session_data_failed_loading' and return null.\n *\n * @param idvClient - The IDVClient instance used to obtain the session data.\n * @param eventHub - The EventHub instance for emitting session-related events.\n * @returns A Promise that resolves with an object containing entityId, token, and vendorParameters upon success, or null if a session couldn't be created\n */\nexport const createSession = async <T extends _DictionaryWrite<unknown>>(\n idvClient: IDVClient,\n eventHub: EventHub<Events>,\n): Promise<{ entityId: string; token: string; vendorParameters: T } | null> => {\n try {\n const { entityId, token, vendorParameters } = await idvClient.getToken<T>();\n eventHub.emit('session_data_generated', {\n session: { entityId, token, vendorParameters },\n });\n return { entityId, token, vendorParameters };\n } catch (error) {\n const { code = null, message = '' } = error;\n eventHub.emit('session_data_failed_loading', { code, message });\n return null;\n }\n};\n","import { OneSDKError } from '@module/common';\nimport { IDVStatus } from '@module/frankie-client/clients/IDVClient';\nimport type { RecipeParsed } from '@module/sdk/types';\n\nexport type ErrorMessages = Record<\n 'DEFAULT' | 'INIT_PROCESS' | Extract<IDVStatus, 'PROVIDER_OFFLINE' | 'WAITING_DOC_UPLOAD' | 'WAITING_SELFIE_UPLOAD'>,\n string\n>;\n\nconst mkErrorMessages = (provider: string): ErrorMessages => ({\n DEFAULT: `Error from vendor SDK '${provider}'`,\n INIT_PROCESS: 'Error from biometrics submission',\n [IDVStatus.PROVIDER_OFFLINE]: `Error initialising biometrics check with '${provider}'. The service doesn't appear to be available.`,\n [IDVStatus.WAITING_DOC_UPLOAD]: `Error initialising biometrics check with '${provider}'. You might need to run the 'ocr' component before running 'biometrics'.`,\n [IDVStatus.WAITING_SELFIE_UPLOAD]: `Error initialising biometrics check with '${provider}'. You might need to capture selfie before running 'biometrics'.`,\n});\n\nexport const mkErrors = (recipe: RecipeParsed) => {\n const {\n biometrics: {\n provider: {\n name,\n },\n },\n } = recipe;\n\n return (type: keyof ErrorMessages, ...payload: unknown[]) => {\n return new OneSDKError(mkErrorMessages(name)[type], payload);\n };\n \n};\n","import type { Events } from '@module/biometrics/events';\nimport type { ErrorMessages } from '@module/biometrics/vendors/common/errors';\nimport { mkErrors } from '@module/biometrics/vendors/common/errors';\nimport type { EventHub } from '@module/common';\nimport type { IDVClient } from '@module/frankie-client/clients/IDVClient';\nimport {\n isErrorStatus,\n isInputRequiredStatus,\n} from '@module/frankie-client/clients/IDVClient';\nimport type { RecipeParsed } from '@module/sdk/types';\n\nexport const initProcess = async (\n { idvClient, recipe, eventHub }: {\n idvClient: IDVClient;\n recipe: RecipeParsed;\n eventHub: EventHub<Events>;\n },\n) => {\n const { biometrics: { is_synchronous: isSynchronous } } = recipe;\n const errorMessages = mkErrors(recipe);\n const {\n checkStatus,\n ocrDocument,\n } = await idvClient.initProcess({ isSynchronous: !!isSynchronous });\n if (isInputRequiredStatus(checkStatus) || isErrorStatus(checkStatus)) {\n eventHub.emit('error', errorMessages((checkStatus as keyof ErrorMessages)));\n } else {\n eventHub.emit(isSynchronous ? 'results' : 'processing', {\n checkStatus,\n document: ocrDocument,\n entityId: idvClient.entityId,\n });\n }\n};\n","import { IDVStatus } from '@frankieone/one-sdk';\nimport type { Events as BiometricsEvents } from '@module/biometrics';\nimport type { EventHub } from '@module/common';\nimport { OneSDKError } from '@module/common';\nimport type {\n IncodeResponse,\n} from '@module/common/vendors/incode/onBoarding.types';\nimport type { Events as OcrEvents } from '@module/ocr';\nimport { OCRStatus } from '@module/types';\n\n/**\n * Creates event handlers for a given EventHub.\n *\n * @param {'ocr' | 'biometrics'} module - The module type for which to create event handlers.\n * @param {object} options - The options for creating event handlers.\n * @param {EventHub<OcrEvents | BiometricsEvents>} options.eventHub - The EventHub for handling events.\n * @param {string} [options.entityId] - An optional entityId parameter.\n * @returns {object} - The event handlers for the specified module ('biometrics' or 'ocr').\n **/\nexport const createEventHandlers = (\n module: 'ocr' | 'biometrics', {\n eventHub,\n entityId,\n }: {\n eventHub: EventHub<OcrEvents | BiometricsEvents>;\n entityId?: string;\n },\n) => {\n\n // A flag indicating whether the event handler should emit error event\n let noAttemptsFlag = false;\n\n // user or environment issues that are not related to a specific workflow\n const genericErrors = [\n 'InternalServerError',\n 'skip',\n 'OSVersionNotSupported',\n 'browserNotSupported',\n ];\n\n /**\n * Event handlers for biometrics-related events.\n *\n * @namespace biometrics\n */\n const biometrics = {\n /**\n * Handles log events for biometrics.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onLog: (\n { type }: IncodeResponse,\n ): void => {\n if (type === 'noAttemps') { // not a typo, 'noAttemps' comes from Incode SDK\n // we would like to emit this scenario along with an Incode error event\n // update the error state so that a corresponding error can be emitted\n noAttemptsFlag = true;\n }\n },\n /**\n * Handles error events for biometrics.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onError: (\n { type, payload }: IncodeResponse,\n ): void => {\n // check if error state is being flagged in the log already\n if (noAttemptsFlag) {\n eventHub.emit('detection_failed', {\n message: payload?.message,\n });\n } else if (type === 'permissionDenied') {\n eventHub.emit('input_required', { entityId }, IDVStatus.INTERRUPTED);\n } else if (genericErrors.includes(type)) {\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, {\n type,\n payload,\n }));\n }\n },\n };\n\n /**\n * Event handlers for OCR-related events.\n *\n * @namespace ocr\n */\n const ocr = {\n /**\n * Handles log events for OCR.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onLog: (\n { type, payload }: IncodeResponse,\n ): void => {\n if ([\n 'IDNotDetected',\n 'nothingHappened',\n 'manualCaptureOn',\n 'successCapture',\n 'attemptFailed',\n 'success',\n ].includes(type)) {\n eventHub.emit('info', {\n message: payload?.message,\n payload: { type },\n });\n } else if (type === 'noAttemps') { // not a typo, 'noAttemps' comes from Incode SDK\n // we would like to emit this scenario along with an Incode error event\n // update the error state so that a corresponding error can be emitted\n noAttemptsFlag = true;\n }\n },\n /**\n * Handles error events for OCR.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onError: (\n { type, payload }: IncodeResponse,\n ): void => {\n // check if error state is being flagged in the log already\n if (noAttemptsFlag) {\n eventHub.emit('detection_failed', {\n message: payload?.message,\n });\n } else if (type === 'permissionDenied') {\n eventHub.emit('input_required',\n {\n documentType: null,\n side: 'front',\n }, OCRStatus.INTERRUPTED, () => ({}));\n } else if (genericErrors.includes(type)) {\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, {\n type,\n payload,\n }));\n }\n },\n };\n\n return { biometrics, ocr }[module];\n};\n","import type { EventHub } from '@module/common';\nimport { OneSDKError } from '@module/common';\nimport type {\n IncodeInstance, IncodeResponse,\n IncodeSession,\n} from '@module/common/vendors/incode/onBoarding.types';\nimport type { Events } from '@module/ocr';\n\ntype CameraProps = {\n incode: IncodeInstance;\n session: IncodeSession;\n eventHub: EventHub<Events>;\n mountElement: HTMLElement;\n onSuccess?: (response: unknown) => void;\n onError: (response: unknown, payload?: unknown) => void;\n onLog: (response: unknown) => void;\n}\n\nexport const startCamera = async (\n type: 'front' | 'back' | 'selfie',\n cameraProps: CameraProps,\n) => {\n const {\n incode,\n session,\n eventHub,\n mountElement,\n onSuccess = () => ({}),\n onError,\n onLog,\n } = cameraProps;\n return new Promise((resolve, reject): void => {\n try {\n incode.renderCamera(type, mountElement, {\n onSuccess: async (response): Promise<void> => {\n onSuccess(response);\n return resolve({});\n },\n onError: (error: IncodeResponse) => {\n onError(error);\n return reject(error);\n },\n onLog: (log: IncodeResponse) => {\n onLog(log);\n },\n token: session,\n numberOfTries: 3,\n });\n } catch (error) {\n const { message = '' } = error;\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, { message }));\n return reject(error);\n }\n });\n};\n","import { loadAsyncAsset } from '@module/common';\nimport type {\n IncodeConfig,\n IncodeInstance,\n IncodeSession,\n} from '@module/common/vendors/incode/onBoarding.types';\n\nexport { createEventHandlers } from './createEventHandlers';\nexport { startCamera } from './startCamera';\nexport * from './onBoarding.types';\n\nexport const install = async ({\n clientId,\n apiURL,\n interviewId,\n}: IncodeConfig & { interviewId: string }): Promise<{\n incode: IncodeInstance;\n session: IncodeSession;\n}> => {\n // install Incode script from CDN\n // TODO: if multiple versions are supported in the future, make sure to\n // add `version` to the recipe object, next to provider.name\n await loadAsyncAsset('https://sdk.incode.com/sdk/onBoarding-1.59.0.js');\n\n const incode = await createInstance({ clientId, apiURL });\n const session = await incode.createSession('ALL', null, {\n interviewId,\n });\n return { incode, session };\n};\n\nconst createInstance = async ({\n clientId,\n apiURL,\n}: IncodeConfig): Promise<IncodeInstance> => {\n const incode = window.OnBoarding.create({ clientId, apiURL });\n await incode.warmup();\n return incode;\n};\n"],"names":["initialise","shared","options","frankieClient","recipe","mountElement","eventHub","idvClient","idvSession","vendorParameters","apiURL","clientId","interviewId","incode","session","onLog","onError","entityId","cameraProps","onSuccess","emit","domElement","error","errorMessages","type","message","createSession","token","getToken","code","mkErrors","biometrics","provider","name","payload","OneSDKError","DEFAULT","INIT_PROCESS","PROVIDER_OFFLINE","WAITING_DOC_UPLOAD","WAITING_SELFIE_UPLOAD","initProcess","is_synchronous","isSynchronous","checkStatus","ocrDocument","document","createEventHandlers","module","noAttemptsFlag","genericErrors","INTERRUPTED","includes","ocr","documentType","side","startCamera","Promise","resolve","reject","renderCamera","response","log","numberOfTries","install","loadAsyncAsset","createInstance","window","OnBoarding","create","warmup"],"sourceRoot":""}
1
+ {"version":3,"file":"biometrics-incode.js","mappings":"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","sources":["webpack://OneSdk/./modules/biometrics/vendors/Incode/index.ts","webpack://OneSdk/./modules/biometrics/vendors/common/createSession.ts","webpack://OneSdk/./modules/biometrics/vendors/common/errors.ts","webpack://OneSdk/./modules/biometrics/vendors/common/initProcess.ts","webpack://OneSdk/./modules/common/vendors/incode/createEventHandlers.ts","webpack://OneSdk/./modules/common/vendors/incode/startCamera.ts","webpack://OneSdk/./modules/common/vendors/incode/index.ts"],"sourcesContent":["import type { BiometricsModule } from '@module/biometrics';\nimport { createSession } from '@module/biometrics/vendors/common/createSession';\nimport { mkErrors } from '@module/biometrics/vendors/common/errors';\nimport { initProcess } from '@module/biometrics/vendors/common/initProcess';\nimport { defineWrapper } from '@module/common/modules/defineModule';\nimport type { IncodeSession } from '@module/common/vendors/incode';\nimport {\n createEventHandlers,\n install,\n startCamera,\n} from '@module/common/vendors/incode';\nimport { IDVClient } from '@module/frankie-client/clients/IDVClient';\n\nexport const initialise = defineWrapper<BiometricsModule>('incode', async (\n shared,\n options,\n) => {\n const { frankieClient, recipe } = shared;\n const { biometrics: { provider } } = recipe;\n const { mountElement, eventHub } = options;\n const idvClient = new IDVClient(frankieClient);\n\n // generate session token from backend\n const idvSession = await createSession<IncodeSession>(idvClient, eventHub);\n // terminate initialising if session failed\n if (!idvSession) return;\n const { vendorParameters } = idvSession;\n\n try {\n // initialise Incode with credentials\n const { apiURL, clientId, interviewId } = vendorParameters;\n const { incode, session } = await install({\n clientId,\n apiURL,\n interviewId,\n sdkVersion: provider.name === 'incode' && provider.sdkVersion,\n });\n\n /**\n * There is CSS misalignment from Incode loading animation\n * Adding style override to enforce center alignment\n */\n const styleSheet = document.createElement('style');\n styleSheet.innerHTML = `\n .IncodeCaptureSelfieBordersContainer {\n display: flex;\n align-items: center;\n justify-content: center;\n }`;\n document.head.appendChild(styleSheet);\n\n const {\n onLog,\n onError,\n } = createEventHandlers('biometrics', {\n eventHub,\n entityId: idvClient.entityId,\n });\n const cameraProps = {\n incode,\n session,\n eventHub,\n mountElement,\n onError,\n onLog,\n };\n // turn on camera to capture selfie\n // \"void\" operator indicates the intention of non-blocking async process\n // it allows other events to emit while using camera to capture\n void startCamera('biometrics', {\n ...cameraProps,\n onSuccess: async (): Promise<void> => {\n eventHub.emit('detection_complete');\n await initProcess({ idvClient, recipe, eventHub });\n eventHub.emit('session_closed');\n },\n });\n eventHub.emit('ready', { domElement: mountElement });\n } catch (error) {\n const errorMessages = mkErrors(recipe);\n const { type = null, message = '' } = error;\n eventHub.emit('error', errorMessages('DEFAULT', { type, message }));\n }\n\n return {};\n});\n","import type { Events } from '@module/biometrics/events';\nimport type { EventHub } from '@module/common';\nimport type { IDVClient } from '@module/frankie-client/clients/IDVClient';\nimport type { _DictionaryWrite } from '@types';\n\n/**\n * Creates a session by obtaining an entity ID, token, and vendor parameters from an IDVClient.\n * It will also emit 'session_data_generated' event to the provided event hub.\n * This function won't throw errors. Instead, it will emit 'session_data_failed_loading' and return null.\n *\n * @param idvClient - The IDVClient instance used to obtain the session data.\n * @param eventHub - The EventHub instance for emitting session-related events.\n * @returns A Promise that resolves with an object containing entityId, token, and vendorParameters upon success, or null if a session couldn't be created\n */\nexport const createSession = async <T extends _DictionaryWrite<unknown>>(\n idvClient: IDVClient,\n eventHub: EventHub<Events>,\n): Promise<{ entityId: string; token: string; vendorParameters: T } | null> => {\n try {\n const { entityId, token, vendorParameters } = await idvClient.getToken<T>();\n eventHub.emit('session_data_generated', {\n session: { entityId, token, vendorParameters },\n });\n return { entityId, token, vendorParameters };\n } catch (error) {\n const { code = null, message = '' } = error;\n eventHub.emit('session_data_failed_loading', { code, message });\n return null;\n }\n};\n","import { OneSDKError } from '@module/common';\nimport { IDVStatus } from '@module/frankie-client/clients/IDVClient';\nimport type { RecipeParsed } from '@module/sdk/types';\n\nexport type ErrorMessages = Record<\n 'DEFAULT' | 'INIT_PROCESS' | Extract<IDVStatus, 'PROVIDER_OFFLINE' | 'WAITING_DOC_UPLOAD' | 'WAITING_SELFIE_UPLOAD'>,\n string\n>;\n\nconst mkErrorMessages = (provider: string): ErrorMessages => ({\n DEFAULT: `Error from vendor SDK '${provider}'`,\n INIT_PROCESS: 'Error from biometrics submission',\n [IDVStatus.PROVIDER_OFFLINE]: `Error initialising biometrics check with '${provider}'. The service doesn't appear to be available.`,\n [IDVStatus.WAITING_DOC_UPLOAD]: `Error initialising biometrics check with '${provider}'. You might need to run the 'ocr' component before running 'biometrics'.`,\n [IDVStatus.WAITING_SELFIE_UPLOAD]: `Error initialising biometrics check with '${provider}'. You might need to capture selfie before running 'biometrics'.`,\n});\n\nexport const mkErrors = (recipe: RecipeParsed) => {\n const {\n biometrics: {\n provider: {\n name,\n },\n },\n } = recipe;\n\n return (type: keyof ErrorMessages, ...payload: unknown[]) => {\n return new OneSDKError(mkErrorMessages(name)[type], payload);\n };\n \n};\n","import type { Events } from '@module/biometrics/events';\nimport type { ErrorMessages } from '@module/biometrics/vendors/common/errors';\nimport { mkErrors } from '@module/biometrics/vendors/common/errors';\nimport type { EventHub } from '@module/common';\nimport type { IDVClient } from '@module/frankie-client/clients/IDVClient';\nimport {\n isErrorStatus,\n isInputRequiredStatus,\n} from '@module/frankie-client/clients/IDVClient';\nimport type { RecipeParsed } from '@module/sdk/types';\n\nexport const initProcess = async (\n { idvClient, recipe, eventHub }: {\n idvClient: IDVClient;\n recipe: RecipeParsed;\n eventHub: EventHub<Events>;\n },\n) => {\n const { biometrics: { is_synchronous: isSynchronous } } = recipe;\n const errorMessages = mkErrors(recipe);\n const {\n checkStatus,\n ocrDocument,\n } = await idvClient.initProcess({ isSynchronous: !!isSynchronous });\n if (isInputRequiredStatus(checkStatus) || isErrorStatus(checkStatus)) {\n eventHub.emit('error', errorMessages((checkStatus as keyof ErrorMessages)));\n } else {\n eventHub.emit(isSynchronous ? 'results' : 'processing', {\n checkStatus,\n document: ocrDocument,\n entityId: idvClient.entityId,\n });\n }\n};\n","import { IDVStatus } from '@frankieone/one-sdk';\nimport type { Events as BiometricsEvents } from '@module/biometrics';\nimport type { EventHub } from '@module/common';\nimport { OneSDKError } from '@module/common';\nimport type {\n IncodeResponse,\n} from '@module/common/vendors/incode/onBoarding.types';\nimport type { Events as OcrEvents } from '@module/ocr';\nimport { OCRStatus } from '@module/types';\n\n/**\n * Creates event handlers for a given EventHub.\n *\n * @param {'ocr' | 'biometrics'} module - The module type for which to create event handlers.\n * @param {object} options - The options for creating event handlers.\n * @param {EventHub<OcrEvents | BiometricsEvents>} options.eventHub - The EventHub for handling events.\n * @param {string} [options.entityId] - An optional entityId parameter.\n * @returns {object} - The event handlers for the specified module ('biometrics' or 'ocr').\n **/\nexport const createEventHandlers = (\n module: 'ocr' | 'biometrics', {\n eventHub,\n entityId,\n }: {\n eventHub: EventHub<OcrEvents | BiometricsEvents>;\n entityId?: string;\n },\n) => {\n\n // A flag indicating whether the event handler should emit error event\n let noAttemptsFlag = false;\n\n // user or environment issues that are not related to a specific workflow\n const genericErrors = [\n 'InternalServerError',\n 'skip',\n 'OSVersionNotSupported',\n 'browserNotSupported',\n ];\n\n /**\n * Event handlers for biometrics-related events.\n *\n * @namespace biometrics\n */\n const biometrics = {\n /**\n * Handles log events for biometrics.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onLog: (\n { type }: IncodeResponse,\n ): void => {\n if (type === 'noAttemps') { // not a typo, 'noAttemps' comes from Incode SDK\n // we would like to emit this scenario along with an Incode error event\n // update the error state so that a corresponding error can be emitted\n noAttemptsFlag = true;\n }\n },\n /**\n * Handles error events for biometrics.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onError: (\n { type, payload }: IncodeResponse,\n ): void => {\n // check if error state is being flagged in the log already\n if (noAttemptsFlag) {\n eventHub.emit('detection_failed', {\n message: payload?.message,\n });\n } else if (type === 'permissionDenied') {\n eventHub.emit('input_required', { entityId }, IDVStatus.INTERRUPTED);\n } else if (genericErrors.includes(type)) {\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, {\n type,\n payload,\n }));\n }\n },\n };\n\n /**\n * Event handlers for OCR-related events.\n *\n * @namespace ocr\n */\n const ocr = {\n /**\n * Handles log events for OCR.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onLog: (\n { type, payload }: IncodeResponse,\n ): void => {\n if ([\n 'IDNotDetected',\n 'nothingHappened',\n 'manualCaptureOn',\n 'successCapture',\n 'attemptFailed',\n 'success',\n ].includes(type)) {\n eventHub.emit('info', {\n message: payload?.message,\n payload: { type },\n });\n } else if (type === 'noAttemps') { // not a typo, 'noAttemps' comes from Incode SDK\n // we would like to emit this scenario along with an Incode error event\n // update the error state so that a corresponding error can be emitted\n noAttemptsFlag = true;\n }\n },\n /**\n * Handles error events for OCR.\n *\n * @param {IncodeResponse} response - The response object from Incode.\n */\n onError: (\n { type, payload }: IncodeResponse,\n ): void => {\n // check if error state is being flagged in the log already\n if (noAttemptsFlag) {\n eventHub.emit('detection_failed', {\n message: payload?.message,\n });\n } else if (type === 'permissionDenied') {\n eventHub.emit('input_required',\n {\n documentType: null,\n side: 'front',\n }, OCRStatus.INTERRUPTED, () => ({}));\n } else if (genericErrors.includes(type)) {\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, {\n type,\n payload,\n }));\n }\n },\n };\n\n return { biometrics, ocr }[module];\n};\n","import type { EventHub } from '@module/common';\nimport { OneSDKError } from '@module/common';\nimport type { IncodeInstance, IncodeResponse, IncodeSession } from '@module/common/vendors/incode/onBoarding.types';\nimport type { Events } from '@module/ocr';\n\ntype CameraProps = {\n incode: IncodeInstance;\n session: IncodeSession;\n eventHub: EventHub<Events>;\n mountElement: HTMLElement;\n onSuccess?: (response: unknown) => void;\n onError: (response: unknown, payload?: unknown) => void;\n onLog: (response: unknown) => void;\n};\n\nexport const startCamera = async (purpose: 'biometrics' | 'ocr', cameraProps: CameraProps) => {\n if (purpose === 'ocr') {\n return await renderCamera('front', {\n ...cameraProps,\n onSuccess: async ({ skipBackIdCapture }: { skipBackIdCapture: boolean }): Promise<void> => {\n // when Incode determines it needs to capture the back of document\n if (!skipBackIdCapture) {\n await renderCamera('back', cameraProps);\n } else {\n cameraProps?.onSuccess({});\n }\n },\n });\n } else if (purpose === 'biometrics') {\n return await renderCamera('selfie', cameraProps);\n }\n throw new OneSDKError('Unknown purpose', { purpose });\n};\n\nconst renderCamera = async (type: 'front' | 'back' | 'selfie', cameraProps: CameraProps) => {\n const { incode, session, eventHub, mountElement, onSuccess = () => ({}), onError, onLog } = cameraProps;\n return new Promise((resolve, reject): void => {\n if (mountElement.children.length > 0) {\n const error = new OneSDKError(`Incode requires mountElement to be an empty container.`, {});\n eventHub.emit('error', error);\n return reject(error);\n }\n try {\n incode.renderCamera(type, mountElement, {\n onSuccess: async (response): Promise<void> => {\n onSuccess(response);\n return resolve({});\n },\n onError: (error: IncodeResponse) => {\n onError(error);\n return reject(error);\n },\n onLog: (log: IncodeResponse) => {\n onLog(log);\n },\n token: session,\n numberOfTries: 3,\n });\n } catch (error) {\n const { message = '' } = error;\n eventHub.emit('error', new OneSDKError(`Error from vendor SDK 'Incode'`, { message }));\n return reject(error);\n }\n });\n};\n","import { loadAsyncAsset } from '@module/common';\nimport type {\n IncodeConfig,\n IncodeInstance,\n IncodeSession,\n} from '@module/common/vendors/incode/onBoarding.types';\n\nexport { createEventHandlers } from './createEventHandlers';\nexport { startCamera } from './startCamera';\nexport * from './onBoarding.types';\n\nexport const install = async ({\n clientId,\n apiURL,\n interviewId,\n sdkVersion = '1.59.0',\n}: IncodeConfig & { interviewId: string; sdkVersion?: string }): Promise<{\n incode: IncodeInstance;\n session: IncodeSession;\n}> => {\n // install Incode script from CDN\n await loadAsyncAsset(`https://sdk.incode.com/sdk/onBoarding-${sdkVersion}.js`);\n\n const incode = await createInstance({ clientId, apiURL });\n const session = await incode.createSession('ALL', null, {\n interviewId,\n });\n return { incode, session };\n};\n\nconst createInstance = async ({\n clientId,\n apiURL,\n}: IncodeConfig): Promise<IncodeInstance> => {\n const incode = window.OnBoarding.create({ clientId, apiURL });\n await incode.warmup();\n return incode;\n};\n"],"names":["initialise","shared","options","frankieClient","recipe","biometrics","provider","mountElement","eventHub","idvClient","idvSession","vendorParameters","apiURL","clientId","interviewId","incode","session","sdkVersion","name","styleSheet","document","createElement","innerHTML","head","appendChild","onLog","onError","entityId","cameraProps","onSuccess","emit","domElement","error","errorMessages","type","message","createSession","token","getToken","code","mkErrors","payload","OneSDKError","DEFAULT","INIT_PROCESS","PROVIDER_OFFLINE","WAITING_DOC_UPLOAD","WAITING_SELFIE_UPLOAD","initProcess","is_synchronous","isSynchronous","checkStatus","ocrDocument","createEventHandlers","module","noAttemptsFlag","genericErrors","INTERRUPTED","includes","ocr","documentType","side","startCamera","purpose","renderCamera","skipBackIdCapture","Promise","resolve","reject","children","length","response","log","numberOfTries","install","loadAsyncAsset","createInstance","window","OnBoarding","create","warmup"],"sourceRoot":""}