@frankieone/one-sdk 0.1.0-poc.18 → 0.2.2-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.
Files changed (437) hide show
  1. package/dist/commit.txt +1 -1
  2. package/dist/esm/modules/biometrics/constants.d.ts +2 -0
  3. package/dist/esm/modules/biometrics/constants.js +2 -0
  4. package/dist/esm/modules/biometrics/constants.js.map +1 -0
  5. package/dist/esm/modules/biometrics/index.d.ts +4 -0
  6. package/dist/esm/modules/biometrics/index.js +71 -0
  7. package/dist/esm/modules/biometrics/index.js.map +1 -0
  8. package/dist/esm/modules/biometrics/parseConfiguration.d.ts +4 -0
  9. package/dist/esm/modules/biometrics/parseConfiguration.js +9 -0
  10. package/dist/esm/modules/biometrics/parseConfiguration.js.map +1 -0
  11. package/dist/esm/modules/biometrics/types/events.d.ts +23 -0
  12. package/dist/esm/modules/biometrics/types/events.js +2 -0
  13. package/dist/esm/modules/biometrics/types/events.js.map +1 -0
  14. package/dist/esm/modules/biometrics/types/index.d.ts +3 -0
  15. package/dist/esm/modules/biometrics/types/index.js +4 -0
  16. package/dist/esm/modules/biometrics/types/index.js.map +1 -0
  17. package/dist/esm/modules/biometrics/types/module.d.ts +8 -0
  18. package/dist/esm/modules/biometrics/types/module.js +2 -0
  19. package/dist/esm/modules/biometrics/types/module.js.map +1 -0
  20. package/dist/esm/modules/biometrics/types/wrapper.d.ts +19 -0
  21. package/dist/esm/modules/biometrics/types/wrapper.js +2 -0
  22. package/dist/esm/modules/biometrics/types/wrapper.js.map +1 -0
  23. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.d.ts +2 -0
  24. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js +221 -0
  25. package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js.map +1 -0
  26. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.d.ts +1 -0
  27. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js +2 -0
  28. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/green-tick-svg.js.map +1 -0
  29. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/index.d.ts +2 -0
  30. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/index.js +98 -0
  31. package/dist/esm/modules/biometrics/wrappers/dummy-biometrics/index.js.map +1 -0
  32. package/dist/esm/modules/common/constants.d.ts +5 -2
  33. package/dist/esm/modules/common/constants.js +5 -1
  34. package/dist/esm/modules/common/constants.js.map +1 -1
  35. package/dist/esm/modules/common/index.d.ts +6 -3
  36. package/dist/esm/modules/common/index.js +6 -3
  37. package/dist/esm/modules/common/index.js.map +1 -1
  38. package/dist/esm/modules/common/modules/ReactiveStore.d.ts +29 -0
  39. package/dist/esm/modules/common/modules/ReactiveStore.js +98 -0
  40. package/dist/esm/modules/common/modules/ReactiveStore.js.map +1 -0
  41. package/dist/esm/modules/common/modules/UnpersistedModel.d.ts +17 -0
  42. package/dist/esm/modules/common/modules/UnpersistedModel.js +33 -0
  43. package/dist/esm/modules/common/modules/UnpersistedModel.js.map +1 -0
  44. package/dist/esm/modules/common/modules/base64.d.ts +4 -4
  45. package/dist/esm/modules/common/modules/base64.js +7 -7
  46. package/dist/esm/modules/common/modules/base64.js.map +1 -1
  47. package/dist/esm/modules/common/modules/env2url.d.ts +2 -1
  48. package/dist/esm/modules/common/modules/env2url.js +3 -0
  49. package/dist/esm/modules/common/modules/env2url.js.map +1 -1
  50. package/dist/esm/modules/common/modules/error.d.ts +3 -0
  51. package/dist/esm/modules/common/modules/error.js +8 -0
  52. package/dist/esm/modules/common/modules/error.js.map +1 -0
  53. package/dist/esm/modules/common/modules/eventHub.d.ts +30 -4
  54. package/dist/esm/modules/common/modules/eventHub.js +9 -3
  55. package/dist/esm/modules/common/modules/eventHub.js.map +1 -1
  56. package/dist/esm/modules/common/modules/objectUtils.d.ts +14 -0
  57. package/dist/esm/modules/common/modules/objectUtils.js +64 -0
  58. package/dist/esm/modules/common/modules/objectUtils.js.map +1 -0
  59. package/dist/esm/modules/common/modules/rxjsOperators.d.ts +1 -0
  60. package/dist/esm/modules/common/modules/rxjsOperators.js +5 -0
  61. package/dist/esm/modules/common/modules/rxjsOperators.js.map +1 -0
  62. package/dist/esm/modules/common/shared/KvpList.d.ts +29 -0
  63. package/dist/esm/modules/common/shared/KvpList.js +134 -0
  64. package/dist/esm/modules/common/shared/KvpList.js.map +1 -0
  65. package/dist/esm/modules/common/shared/data/aus_states.json +10 -0
  66. package/dist/esm/modules/common/shared/data/country.json +19592 -0
  67. package/dist/esm/modules/common/shared/models/Address.d.ts +67 -0
  68. package/dist/esm/modules/common/shared/models/Address.js +155 -0
  69. package/dist/esm/modules/common/shared/models/Address.js.map +1 -0
  70. package/dist/esm/modules/common/shared/models/Admin.d.ts +1295 -0
  71. package/dist/esm/modules/common/shared/models/Admin.js +6 -0
  72. package/dist/esm/modules/common/shared/models/Admin.js.map +1 -0
  73. package/dist/esm/modules/common/shared/models/AmlCheckResult.d.ts +77 -0
  74. package/dist/esm/modules/common/shared/models/AmlCheckResult.js +45 -0
  75. package/dist/esm/modules/common/shared/models/AmlCheckResult.js.map +1 -0
  76. package/dist/esm/modules/common/shared/models/AmlMatchDetails.d.ts +37 -0
  77. package/dist/esm/modules/common/shared/models/AmlMatchDetails.js +19 -0
  78. package/dist/esm/modules/common/shared/models/AmlMatchDetails.js.map +1 -0
  79. package/dist/esm/modules/common/shared/models/Applicant.d.ts +119 -0
  80. package/dist/esm/modules/common/shared/models/Applicant.js +167 -0
  81. package/dist/esm/modules/common/shared/models/Applicant.js.map +1 -0
  82. package/dist/esm/modules/common/shared/models/ApplicantSummary.d.ts +90 -0
  83. package/dist/esm/modules/common/shared/models/ApplicantSummary.js +52 -0
  84. package/dist/esm/modules/common/shared/models/ApplicantSummary.js.map +1 -0
  85. package/dist/esm/modules/common/shared/models/AssociatedParty.d.ts +42 -0
  86. package/dist/esm/modules/common/shared/models/AssociatedParty.js +39 -0
  87. package/dist/esm/modules/common/shared/models/AssociatedParty.js.map +1 -0
  88. package/dist/esm/modules/common/shared/models/AuditEntry.d.ts +81 -0
  89. package/dist/esm/modules/common/shared/models/AuditEntry.js +106 -0
  90. package/dist/esm/modules/common/shared/models/AuditEntry.js.map +1 -0
  91. package/dist/esm/modules/common/shared/models/AuditLogV2.d.ts +57 -0
  92. package/dist/esm/modules/common/shared/models/AuditLogV2.js +75 -0
  93. package/dist/esm/modules/common/shared/models/AuditLogV2.js.map +1 -0
  94. package/dist/esm/modules/common/shared/models/BiometryReport.d.ts +35 -0
  95. package/dist/esm/modules/common/shared/models/BiometryReport.js +22 -0
  96. package/dist/esm/modules/common/shared/models/BiometryReport.js.map +1 -0
  97. package/dist/esm/modules/common/shared/models/BlockListSummary.d.ts +46 -0
  98. package/dist/esm/modules/common/shared/models/BlockListSummary.js +56 -0
  99. package/dist/esm/modules/common/shared/models/BlockListSummary.js.map +1 -0
  100. package/dist/esm/modules/common/shared/models/Blueprint.d.ts +26 -0
  101. package/dist/esm/modules/common/shared/models/Blueprint.js +2 -0
  102. package/dist/esm/modules/common/shared/models/Blueprint.js.map +1 -0
  103. package/dist/esm/modules/common/shared/models/BusinessInfo.d.ts +32 -0
  104. package/dist/esm/modules/common/shared/models/BusinessInfo.js +66 -0
  105. package/dist/esm/modules/common/shared/models/BusinessInfo.js.map +1 -0
  106. package/dist/esm/modules/common/shared/models/CheckSummary.d.ts +190 -0
  107. package/dist/esm/modules/common/shared/models/CheckSummary.js +233 -0
  108. package/dist/esm/modules/common/shared/models/CheckSummary.js.map +1 -0
  109. package/dist/esm/modules/common/shared/models/Comment.d.ts +19 -0
  110. package/dist/esm/modules/common/shared/models/Comment.js +19 -0
  111. package/dist/esm/modules/common/shared/models/Comment.js.map +1 -0
  112. package/dist/esm/modules/common/shared/models/ConfigurationWrapper.d.ts +15 -0
  113. package/dist/esm/modules/common/shared/models/ConfigurationWrapper.js +44 -0
  114. package/dist/esm/modules/common/shared/models/ConfigurationWrapper.js.map +1 -0
  115. package/dist/esm/modules/common/shared/models/Core.d.ts +2898 -0
  116. package/dist/esm/modules/common/shared/models/Core.js +6 -0
  117. package/dist/esm/modules/common/shared/models/Core.js.map +1 -0
  118. package/dist/esm/modules/common/shared/models/Document.d.ts +124 -0
  119. package/dist/esm/modules/common/shared/models/Document.js +139 -0
  120. package/dist/esm/modules/common/shared/models/Document.js.map +1 -0
  121. package/dist/esm/modules/common/shared/models/Duplicate.d.ts +38 -0
  122. package/dist/esm/modules/common/shared/models/Duplicate.js +26 -0
  123. package/dist/esm/modules/common/shared/models/Duplicate.js.map +1 -0
  124. package/dist/esm/modules/common/shared/models/DynamicUIComponent.d.ts +52 -0
  125. package/dist/esm/modules/common/shared/models/DynamicUIComponent.js +118 -0
  126. package/dist/esm/modules/common/shared/models/DynamicUIComponent.js.map +1 -0
  127. package/dist/esm/modules/common/shared/models/Event.d.ts +16 -0
  128. package/dist/esm/modules/common/shared/models/Event.js +15 -0
  129. package/dist/esm/modules/common/shared/models/Event.js.map +1 -0
  130. package/dist/esm/modules/common/shared/models/EventFactory.d.ts +16 -0
  131. package/dist/esm/modules/common/shared/models/EventFactory.js +11 -0
  132. package/dist/esm/modules/common/shared/models/EventFactory.js.map +1 -0
  133. package/dist/esm/modules/common/shared/models/File.d.ts +24 -0
  134. package/dist/esm/modules/common/shared/models/File.js +25 -0
  135. package/dist/esm/modules/common/shared/models/File.js.map +1 -0
  136. package/dist/esm/modules/common/shared/models/FraudCheckResult.d.ts +10 -0
  137. package/dist/esm/modules/common/shared/models/FraudCheckResult.js +15 -0
  138. package/dist/esm/modules/common/shared/models/FraudCheckResult.js.map +1 -0
  139. package/dist/esm/modules/common/shared/models/FraudMatchDetail.d.ts +48 -0
  140. package/dist/esm/modules/common/shared/models/FraudMatchDetail.js +41 -0
  141. package/dist/esm/modules/common/shared/models/FraudMatchDetail.js.map +1 -0
  142. package/dist/esm/modules/common/shared/models/IChangeStamp.d.ts +11 -0
  143. package/dist/esm/modules/common/shared/models/IChangeStamp.js +7 -0
  144. package/dist/esm/modules/common/shared/models/IChangeStamp.js.map +1 -0
  145. package/dist/esm/modules/common/shared/models/KYCHostedFlow.d.ts +17 -0
  146. package/dist/esm/modules/common/shared/models/KYCHostedFlow.js +20 -0
  147. package/dist/esm/modules/common/shared/models/KYCHostedFlow.js.map +1 -0
  148. package/dist/esm/modules/common/shared/models/KvpList.d.ts +29 -0
  149. package/dist/esm/modules/common/shared/models/KvpList.js +134 -0
  150. package/dist/esm/modules/common/shared/models/KvpList.js.map +1 -0
  151. package/dist/esm/modules/common/shared/models/OCRDocumentDetail.d.ts +49 -0
  152. package/dist/esm/modules/common/shared/models/OCRDocumentDetail.js +33 -0
  153. package/dist/esm/modules/common/shared/models/OCRDocumentDetail.js.map +1 -0
  154. package/dist/esm/modules/common/shared/models/OCRReport.d.ts +20 -0
  155. package/dist/esm/modules/common/shared/models/OCRReport.js +17 -0
  156. package/dist/esm/modules/common/shared/models/OCRReport.js.map +1 -0
  157. package/dist/esm/modules/common/shared/models/Organisation.d.ts +36 -0
  158. package/dist/esm/modules/common/shared/models/Organisation.js +51 -0
  159. package/dist/esm/modules/common/shared/models/Organisation.js.map +1 -0
  160. package/dist/esm/modules/common/shared/models/OrganizationAnalytics.d.ts +14 -0
  161. package/dist/esm/modules/common/shared/models/OrganizationAnalytics.js +149 -0
  162. package/dist/esm/modules/common/shared/models/OrganizationAnalytics.js.map +1 -0
  163. package/dist/esm/modules/common/shared/models/PortalFeatureConfig.d.ts +79 -0
  164. package/dist/esm/modules/common/shared/models/PortalFeatureConfig.js +83 -0
  165. package/dist/esm/modules/common/shared/models/PortalFeatureConfig.js.map +1 -0
  166. package/dist/esm/modules/common/shared/models/Profile.d.ts +27 -0
  167. package/dist/esm/modules/common/shared/models/Profile.js +96 -0
  168. package/dist/esm/modules/common/shared/models/Profile.js.map +1 -0
  169. package/dist/esm/modules/common/shared/models/ReportAttributes.d.ts +21 -0
  170. package/dist/esm/modules/common/shared/models/ReportAttributes.js +18 -0
  171. package/dist/esm/modules/common/shared/models/ReportAttributes.js.map +1 -0
  172. package/dist/esm/modules/common/shared/models/RiskIndicator.d.ts +48 -0
  173. package/dist/esm/modules/common/shared/models/RiskIndicator.js +30 -0
  174. package/dist/esm/modules/common/shared/models/RiskIndicator.js.map +1 -0
  175. package/dist/esm/modules/common/shared/models/Session.d.ts +5 -0
  176. package/dist/esm/modules/common/shared/models/Session.js +2 -0
  177. package/dist/esm/modules/common/shared/models/Session.js.map +1 -0
  178. package/dist/esm/modules/common/shared/models/SupportingDocument.d.ts +96 -0
  179. package/dist/esm/modules/common/shared/models/SupportingDocument.js +91 -0
  180. package/dist/esm/modules/common/shared/models/SupportingDocument.js.map +1 -0
  181. package/dist/esm/modules/common/shared/models/TApplicantIssue.d.ts +12 -0
  182. package/dist/esm/modules/common/shared/models/TApplicantIssue.js +2 -0
  183. package/dist/esm/modules/common/shared/models/TApplicantIssue.js.map +1 -0
  184. package/dist/esm/modules/common/shared/models/TApplicantStatus.d.ts +7 -0
  185. package/dist/esm/modules/common/shared/models/TApplicantStatus.js +2 -0
  186. package/dist/esm/modules/common/shared/models/TApplicantStatus.js.map +1 -0
  187. package/dist/esm/modules/common/shared/models/TKycMethod.d.ts +1 -0
  188. package/dist/esm/modules/common/shared/models/TKycMethod.js +2 -0
  189. package/dist/esm/modules/common/shared/models/TKycMethod.js.map +1 -0
  190. package/dist/esm/modules/common/shared/models/TValidation.d.ts +6 -0
  191. package/dist/esm/modules/common/shared/models/TValidation.js +2 -0
  192. package/dist/esm/modules/common/shared/models/TValidation.js.map +1 -0
  193. package/dist/esm/modules/common/shared/models/TransactionDetails.d.ts +70 -0
  194. package/dist/esm/modules/common/shared/models/TransactionDetails.js +53 -0
  195. package/dist/esm/modules/common/shared/models/TransactionDetails.js.map +1 -0
  196. package/dist/esm/modules/common/shared/models/UBOData.d.ts +485 -0
  197. package/dist/esm/modules/common/shared/models/UBOData.js +618 -0
  198. package/dist/esm/modules/common/shared/models/UBOData.js.map +1 -0
  199. package/dist/esm/modules/common/shared/models/UIBlueprint.d.ts +33 -0
  200. package/dist/esm/modules/common/shared/models/UIBlueprint.js +164 -0
  201. package/dist/esm/modules/common/shared/models/UIBlueprint.js.map +1 -0
  202. package/dist/esm/modules/common/shared/models/User.d.ts +27 -0
  203. package/dist/esm/modules/common/shared/models/User.js +2 -0
  204. package/dist/esm/modules/common/shared/models/User.js.map +1 -0
  205. package/dist/esm/modules/common/shared/models/api.d.ts +124 -0
  206. package/dist/esm/modules/common/shared/models/api.js +2 -0
  207. package/dist/esm/modules/common/shared/models/api.js.map +1 -0
  208. package/dist/esm/modules/common/shared/models/general.d.ts +31 -0
  209. package/dist/esm/modules/common/shared/models/general.js +2 -0
  210. package/dist/esm/modules/common/shared/models/general.js.map +1 -0
  211. package/dist/esm/modules/common/shared/transformers/apiAlert.d.ts +4 -0
  212. package/dist/esm/modules/common/shared/transformers/apiAlert.js +104 -0
  213. package/dist/esm/modules/common/shared/transformers/apiAlert.js.map +1 -0
  214. package/dist/esm/modules/common/shared/transformers/apiGetRiskLevel.d.ts +2 -0
  215. package/dist/esm/modules/common/shared/transformers/apiGetRiskLevel.js +40 -0
  216. package/dist/esm/modules/common/shared/transformers/apiGetRiskLevel.js.map +1 -0
  217. package/dist/esm/modules/common/shared/transformers/apiState.d.ts +23 -0
  218. package/dist/esm/modules/common/shared/transformers/apiState.js +100 -0
  219. package/dist/esm/modules/common/shared/transformers/apiState.js.map +1 -0
  220. package/dist/esm/modules/common/shared/transformers/index.d.ts +3 -0
  221. package/dist/esm/modules/common/shared/transformers/index.js +4 -0
  222. package/dist/esm/modules/common/shared/transformers/index.js.map +1 -0
  223. package/dist/esm/modules/common/shared/utils/address.d.ts +2 -0
  224. package/dist/esm/modules/common/shared/utils/address.js +21 -0
  225. package/dist/esm/modules/common/shared/utils/address.js.map +1 -0
  226. package/dist/esm/modules/common/shared/utils/base64.d.ts +11 -0
  227. package/dist/esm/modules/common/shared/utils/base64.js +37 -0
  228. package/dist/esm/modules/common/shared/utils/base64.js.map +1 -0
  229. package/dist/esm/modules/common/shared/utils/buildCycleUtils.d.ts +1 -0
  230. package/dist/esm/modules/common/shared/utils/buildCycleUtils.js +28 -0
  231. package/dist/esm/modules/common/shared/utils/buildCycleUtils.js.map +1 -0
  232. package/dist/esm/modules/common/shared/utils/constants.d.ts +75 -0
  233. package/dist/esm/modules/common/shared/utils/constants.js +220 -0
  234. package/dist/esm/modules/common/shared/utils/constants.js.map +1 -0
  235. package/dist/esm/modules/common/shared/utils/date.d.ts +5 -0
  236. package/dist/esm/modules/common/shared/utils/date.js +66 -0
  237. package/dist/esm/modules/common/shared/utils/date.js.map +1 -0
  238. package/dist/esm/modules/common/shared/utils/dotNotation.d.ts +4 -0
  239. package/dist/esm/modules/common/shared/utils/dotNotation.js +12 -0
  240. package/dist/esm/modules/common/shared/utils/dotNotation.js.map +1 -0
  241. package/dist/esm/modules/common/shared/utils/getCountryDetails.d.ts +9 -0
  242. package/dist/esm/modules/common/shared/utils/getCountryDetails.js +15 -0
  243. package/dist/esm/modules/common/shared/utils/getCountryDetails.js.map +1 -0
  244. package/dist/esm/modules/common/shared/utils/getDocumentDetails.d.ts +8 -0
  245. package/dist/esm/modules/common/shared/utils/getDocumentDetails.js +6 -0
  246. package/dist/esm/modules/common/shared/utils/getDocumentDetails.js.map +1 -0
  247. package/dist/esm/modules/common/shared/utils/helper.d.ts +4 -0
  248. package/dist/esm/modules/common/shared/utils/helper.js +31 -0
  249. package/dist/esm/modules/common/shared/utils/helper.js.map +1 -0
  250. package/dist/esm/modules/common/shared/utils/index.d.ts +11 -0
  251. package/dist/esm/modules/common/shared/utils/index.js +12 -0
  252. package/dist/esm/modules/common/shared/utils/index.js.map +1 -0
  253. package/dist/esm/modules/common/shared/utils/isEmpty.d.ts +5 -0
  254. package/dist/esm/modules/common/shared/utils/isEmpty.js +23 -0
  255. package/dist/esm/modules/common/shared/utils/isEmpty.js.map +1 -0
  256. package/dist/esm/modules/common/shared/utils/sanitiser.d.ts +7 -0
  257. package/dist/esm/modules/common/shared/utils/sanitiser.js +23 -0
  258. package/dist/esm/modules/common/shared/utils/sanitiser.js.map +1 -0
  259. package/dist/esm/modules/common/shared/utils/string.d.ts +1 -0
  260. package/dist/esm/modules/common/shared/utils/string.js +3 -0
  261. package/dist/esm/modules/common/shared/utils/string.js.map +1 -0
  262. package/dist/esm/modules/common/types/Accessors.d.ts +19 -0
  263. package/dist/esm/modules/common/types/Accessors.js +2 -0
  264. package/dist/esm/modules/common/types/Accessors.js.map +1 -0
  265. package/dist/esm/modules/common/types/Configuration.d.ts +9 -8
  266. package/dist/esm/modules/common/types/Object.d.ts +3 -0
  267. package/dist/esm/modules/common/types/Object.js +2 -0
  268. package/dist/esm/modules/common/types/Object.js.map +1 -0
  269. package/dist/esm/modules/common/types/Session.d.ts +16 -0
  270. package/dist/esm/modules/common/types/Session.js +2 -0
  271. package/dist/esm/modules/common/types/Session.js.map +1 -0
  272. package/dist/esm/modules/device/index.d.ts +1 -1
  273. package/dist/esm/modules/device/index.js +23 -17
  274. package/dist/esm/modules/device/index.js.map +1 -1
  275. package/dist/esm/modules/device/parseConfiguration.d.ts +2 -2
  276. package/dist/esm/modules/device/parseConfiguration.js +2 -8
  277. package/dist/esm/modules/device/parseConfiguration.js.map +1 -1
  278. package/dist/esm/modules/device/types/events.d.ts +3 -2
  279. package/dist/esm/modules/device/types/index.d.ts +1 -1
  280. package/dist/esm/modules/device/types/index.js +1 -1
  281. package/dist/esm/modules/device/types/index.js.map +1 -1
  282. package/dist/esm/modules/device/types/module.d.ts +5 -6
  283. package/dist/esm/modules/device/types/{vendor.d.ts → wrapper.d.ts} +1 -2
  284. package/dist/esm/modules/device/types/wrapper.js +2 -0
  285. package/dist/esm/modules/device/types/wrapper.js.map +1 -0
  286. package/dist/esm/modules/device/vendors/Sardine.d.ts +3 -3
  287. package/dist/esm/modules/device/vendors/Sardine.js +63 -48
  288. package/dist/esm/modules/device/vendors/Sardine.js.map +1 -1
  289. package/dist/esm/modules/device/vendors/Threatmetrix/index.d.ts +2 -3
  290. package/dist/esm/modules/device/vendors/Threatmetrix/index.js +49 -34
  291. package/dist/esm/modules/device/vendors/Threatmetrix/index.js.map +1 -1
  292. package/dist/esm/modules/device/vendors/Threatmetrix/{fp-clientlib-v4.d.ts → nolint_fp-clientlib-v4.d.ts} +0 -0
  293. package/dist/esm/modules/device/vendors/Threatmetrix/{fp-clientlib-v4.js → nolint_fp-clientlib-v4.js} +1 -1
  294. package/dist/esm/modules/device/vendors/Threatmetrix/nolint_fp-clientlib-v4.js.map +1 -0
  295. package/dist/esm/modules/frankie-client/ClientsDictionary.d.ts +13 -0
  296. package/dist/esm/modules/frankie-client/ClientsDictionary.js +2 -0
  297. package/dist/esm/modules/frankie-client/ClientsDictionary.js.map +1 -0
  298. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.d.ts +40 -5
  299. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js +185 -23
  300. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js.map +1 -1
  301. package/dist/esm/modules/frankie-client/FrankieApiClient.d.ts +15 -7
  302. package/dist/esm/modules/frankie-client/FrankieApiClient.js +77 -42
  303. package/dist/esm/modules/frankie-client/FrankieApiClient.js.map +1 -1
  304. package/dist/esm/modules/frankie-client/clients/ApplicantClient.d.ts +24 -0
  305. package/dist/esm/modules/frankie-client/clients/ApplicantClient.js +102 -0
  306. package/dist/esm/modules/frankie-client/clients/ApplicantClient.js.map +1 -0
  307. package/dist/esm/modules/frankie-client/clients/BaseClient.d.ts +10 -0
  308. package/dist/esm/modules/frankie-client/clients/BaseClient.js +16 -0
  309. package/dist/esm/modules/frankie-client/clients/BaseClient.js.map +1 -0
  310. package/dist/esm/modules/frankie-client/clients/ConfigurationClient.d.ts +10 -0
  311. package/dist/esm/modules/frankie-client/clients/ConfigurationClient.js +30 -0
  312. package/dist/esm/modules/frankie-client/clients/ConfigurationClient.js.map +1 -0
  313. package/dist/esm/modules/frankie-client/clients/IDVClient.d.ts +15 -0
  314. package/dist/esm/modules/frankie-client/clients/IDVClient.js +21 -0
  315. package/dist/esm/modules/frankie-client/clients/IDVClient.js.map +1 -0
  316. package/dist/esm/modules/frankie-client/clients/OCRClient.d.ts +30 -0
  317. package/dist/esm/modules/frankie-client/clients/OCRClient.js +116 -0
  318. package/dist/esm/modules/frankie-client/clients/OCRClient.js.map +1 -0
  319. package/dist/esm/modules/frankie-client/index.d.ts +8 -13
  320. package/dist/esm/modules/frankie-client/index.js +42 -10
  321. package/dist/esm/modules/frankie-client/index.js.map +1 -1
  322. package/dist/esm/modules/frankie-client/mocks/biometrics/idvSubmissoin.d.ts +3 -0
  323. package/dist/esm/modules/frankie-client/mocks/biometrics/idvSubmissoin.js +25 -0
  324. package/dist/esm/modules/frankie-client/mocks/biometrics/idvSubmissoin.js.map +1 -0
  325. package/dist/esm/modules/frankie-client/mocks/index.d.ts +12 -0
  326. package/dist/esm/modules/frankie-client/mocks/index.js +24 -0
  327. package/dist/esm/modules/frankie-client/mocks/index.js.map +1 -0
  328. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.d.ts +8 -0
  329. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js +58 -0
  330. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js.map +1 -0
  331. package/dist/esm/modules/frankie-client/mocks/individual/submitData.d.ts +3 -0
  332. package/dist/esm/modules/frankie-client/mocks/individual/submitData.js +28 -0
  333. package/dist/esm/modules/frankie-client/mocks/individual/submitData.js.map +1 -0
  334. package/dist/esm/modules/frankie-client/mocks/initialisation/loadConfiguration.d.ts +2 -0
  335. package/dist/esm/modules/frankie-client/mocks/initialisation/loadConfiguration.js +22 -0
  336. package/dist/esm/modules/frankie-client/mocks/initialisation/loadConfiguration.js.map +1 -0
  337. package/dist/esm/modules/frankie-client/mocks/initialisation/validateToken.d.ts +2 -0
  338. package/dist/esm/modules/frankie-client/mocks/initialisation/validateToken.js +8 -0
  339. package/dist/esm/modules/frankie-client/mocks/initialisation/validateToken.js.map +1 -0
  340. package/dist/esm/modules/frankie-client/mocks/ocr/driversLicence.d.ts +15 -0
  341. package/dist/esm/modules/frankie-client/mocks/ocr/driversLicence.js +115 -0
  342. package/dist/esm/modules/frankie-client/mocks/ocr/driversLicence.js.map +1 -0
  343. package/dist/esm/modules/index.d.ts +9 -5
  344. package/dist/esm/modules/index.js +4 -2
  345. package/dist/esm/modules/index.js.map +1 -1
  346. package/dist/esm/modules/individual/actions/consents.d.ts +4 -0
  347. package/dist/esm/modules/individual/actions/consents.js +7 -0
  348. package/dist/esm/modules/individual/actions/consents.js.map +1 -0
  349. package/dist/esm/modules/individual/actions/documents.d.ts +9 -0
  350. package/dist/esm/modules/individual/actions/documents.js +21 -0
  351. package/dist/esm/modules/individual/actions/documents.js.map +1 -0
  352. package/dist/esm/modules/individual/actions/emitEvents.d.ts +6 -0
  353. package/dist/esm/modules/individual/actions/emitEvents.js +7 -0
  354. package/dist/esm/modules/individual/actions/emitEvents.js.map +1 -0
  355. package/dist/esm/modules/individual/actions/search.d.ts +17 -0
  356. package/dist/esm/modules/individual/actions/search.js +51 -0
  357. package/dist/esm/modules/individual/actions/search.js.map +1 -0
  358. package/dist/esm/modules/individual/actions/submit.d.ts +15 -0
  359. package/dist/esm/modules/individual/actions/submit.js +37 -0
  360. package/dist/esm/modules/individual/actions/submit.js.map +1 -0
  361. package/dist/esm/modules/individual/index.d.ts +2 -0
  362. package/dist/esm/modules/individual/index.js +74 -0
  363. package/dist/esm/modules/individual/index.js.map +1 -0
  364. package/dist/esm/modules/individual/types/events.d.ts +7 -0
  365. package/dist/esm/modules/individual/types/events.js +2 -0
  366. package/dist/esm/modules/individual/types/events.js.map +1 -0
  367. package/dist/esm/modules/individual/types/index.d.ts +2 -0
  368. package/dist/esm/modules/individual/types/index.js +3 -0
  369. package/dist/esm/modules/individual/types/index.js.map +1 -0
  370. package/dist/esm/modules/individual/types/module.d.ts +31 -0
  371. package/dist/esm/modules/individual/types/module.js +2 -0
  372. package/dist/esm/modules/individual/types/module.js.map +1 -0
  373. package/dist/esm/modules/ocr/actions/start.d.ts +51 -0
  374. package/dist/esm/modules/ocr/actions/start.js +268 -0
  375. package/dist/esm/modules/ocr/actions/start.js.map +1 -0
  376. package/dist/esm/modules/ocr/index.d.ts +12 -0
  377. package/dist/esm/modules/ocr/index.js +61 -0
  378. package/dist/esm/modules/ocr/index.js.map +1 -0
  379. package/dist/esm/modules/ocr/types/events.d.ts +21 -0
  380. package/dist/esm/modules/ocr/types/events.js +2 -0
  381. package/dist/esm/modules/ocr/types/events.js.map +1 -0
  382. package/dist/esm/modules/ocr/types/index.d.ts +2 -0
  383. package/dist/esm/modules/ocr/types/index.js +3 -0
  384. package/dist/esm/modules/ocr/types/index.js.map +1 -0
  385. package/dist/esm/modules/ocr/types/module.d.ts +26 -0
  386. package/dist/esm/modules/ocr/types/module.js +2 -0
  387. package/dist/esm/modules/ocr/types/module.js.map +1 -0
  388. package/dist/esm/modules/sdk/ComponentLoader.d.ts +12 -6
  389. package/dist/esm/modules/sdk/ComponentLoader.js +27 -16
  390. package/dist/esm/modules/sdk/ComponentLoader.js.map +1 -1
  391. package/dist/esm/modules/sdk/index.d.ts +3 -4
  392. package/dist/esm/modules/sdk/index.js +24 -16
  393. package/dist/esm/modules/sdk/index.js.map +1 -1
  394. package/dist/esm/modules/sdk/parseConfiguration.d.ts +3 -0
  395. package/dist/esm/modules/sdk/parseConfiguration.js +91 -0
  396. package/dist/esm/modules/sdk/parseConfiguration.js.map +1 -0
  397. package/dist/esm/modules/sdk/types/components.d.ts +25 -0
  398. package/dist/esm/modules/sdk/types/components.js +2 -0
  399. package/dist/esm/modules/sdk/types/components.js.map +1 -0
  400. package/dist/esm/modules/sdk/types/configuration.d.ts +76 -0
  401. package/dist/esm/modules/sdk/types/configuration.js +38 -0
  402. package/dist/esm/modules/sdk/types/configuration.js.map +1 -0
  403. package/dist/esm/modules/sdk/types/events.d.ts +5 -0
  404. package/dist/esm/modules/sdk/types/events.js +2 -0
  405. package/dist/esm/modules/sdk/types/events.js.map +1 -0
  406. package/dist/esm/modules/sdk/types/index.d.ts +4 -0
  407. package/dist/esm/modules/sdk/types/index.js +5 -0
  408. package/dist/esm/modules/sdk/types/index.js.map +1 -0
  409. package/dist/esm/modules/sdk/types/module.d.ts +16 -0
  410. package/dist/esm/modules/sdk/types/module.js +2 -0
  411. package/dist/esm/modules/sdk/types/module.js.map +1 -0
  412. package/dist/esm/types/Utilities.d.ts +6 -1
  413. package/dist/release.txt +1 -1
  414. package/dist/umd/727.js +3 -0
  415. package/dist/umd/727.js.LICENSE.txt +377 -0
  416. package/dist/umd/727.js.map +1 -0
  417. package/dist/umd/biometrics-dummy.js +2 -0
  418. package/dist/umd/biometrics-dummy.js.map +1 -0
  419. package/dist/umd/biometrics-ocrlabs.js +2 -0
  420. package/dist/umd/biometrics-ocrlabs.js.map +1 -0
  421. package/dist/umd/device-sardine.js +1 -1
  422. package/dist/umd/device-sardine.js.map +1 -1
  423. package/dist/umd/device-threatmetrix.js +1 -1
  424. package/dist/umd/device-threatmetrix.js.map +1 -1
  425. package/dist/umd/oneSdk.umd.js +1 -1
  426. package/dist/umd/oneSdk.umd.js.LICENSE.txt +13 -0
  427. package/dist/umd/oneSdk.umd.js.map +1 -1
  428. package/package.json +31 -11
  429. package/dist/esm/modules/device/types/vendor.js +0 -2
  430. package/dist/esm/modules/device/types/vendor.js.map +0 -1
  431. package/dist/esm/modules/device/vendors/Threatmetrix/fp-clientlib-v4.js.map +0 -1
  432. package/dist/esm/modules/sdk/onInitialisation.d.ts +0 -2
  433. package/dist/esm/modules/sdk/onInitialisation.js +0 -68
  434. package/dist/esm/modules/sdk/onInitialisation.js.map +0 -1
  435. package/dist/esm/modules/sdk/types.d.ts +0 -101
  436. package/dist/esm/modules/sdk/types.js +0 -2
  437. package/dist/esm/modules/sdk/types.js.map +0 -1
@@ -0,0 +1,51 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Applicant } from "../../common/shared/models/Applicant";
11
+ import { hasEntityId } from "../../common/types/Session";
12
+ import { Profile } from "../../common/shared/models/Profile";
13
+ export const mkSearchMethod = (deps) => () => __awaiter(void 0, void 0, void 0, function* () {
14
+ const { client, eventHub, state$, recipeName } = deps;
15
+ let applicant = null;
16
+ let documents = null;
17
+ let hasLoaded = false;
18
+ try {
19
+ const found = yield client.load();
20
+ applicant = found.applicant;
21
+ documents = found.documents;
22
+ hasLoaded = true;
23
+ }
24
+ catch (e) {
25
+ if (hasEntityId(client.entityIdentifier)) {
26
+ eventHub.emit("error", {
27
+ message: `Critical error! There was an issue loading the individual's details. Is the entityId (${client.entityIdentifier.entityId}) used to create this session valid?`,
28
+ payload: e,
29
+ });
30
+ hasLoaded = false;
31
+ }
32
+ else {
33
+ hasLoaded = true;
34
+ applicant = new Applicant();
35
+ documents = [];
36
+ const profile = new Profile(recipeName, "electronic");
37
+ applicant.profile = profile;
38
+ applicant.customerReference = client.entityIdentifier.reference;
39
+ }
40
+ }
41
+ const isPreloaded = Boolean(applicant === null || applicant === void 0 ? void 0 : applicant.entityId);
42
+ state$.next({
43
+ applicant,
44
+ documents,
45
+ hasLoaded,
46
+ isPreloaded,
47
+ });
48
+ if (hasLoaded)
49
+ eventHub.emit("data_loaded", Object.assign(Object.assign({}, client.entityIdentifier), { isPreloaded }));
50
+ });
51
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../modules/individual/actions/search.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,oCAAoC,CAAC;AAG7D,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,IAA+G,EAAE,EAAE,CACpH,GAAS,EAAE;IACT,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACtD,IAAI,SAAS,GAAc,IAAI,CAAC;IAChC,IAAI,SAAS,GAAe,IAAI,CAAC;IACjC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,SAAS,GAAG,IAAI,CAAC;KAClB;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE;YACxC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrB,OAAO,EAAE,yFAAyF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,sCAAsC;gBACxK,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;YACH,SAAS,GAAG,KAAK,CAAC;SACnB;aAAM;YACL,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,SAAS,GAAG,EAAE,CAAC;YAEf,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YACtD,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;YAC5B,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC;SACjE;KACF;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC;QACV,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;KACZ,CAAC,CAAC;IACH,IAAI,SAAS;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,kCAAO,MAAM,CAAC,gBAAgB,KAAE,WAAW,IAAG,CAAC;AAC3F,CAAC,CAAA,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Accessors, EventHub } from "../../common";
2
+ import { Applicant } from "../../common/shared/models/Applicant";
3
+ import { Document } from "../../common/shared/models/Document";
4
+ import { ApplicantClient } from "../../frankie-client/clients/ApplicantClient";
5
+ import { PublicAccessors } from "../types";
6
+ import { Events } from "../types/events";
7
+ export declare const mkSubmitMethod: (deps: {
8
+ consentsGiven$: PublicAccessors["consentsGiven"];
9
+ applicant$: Accessors<Applicant>;
10
+ eventHub: EventHub<Events>;
11
+ client: ApplicantClient;
12
+ documents$: Accessors<Document[]>;
13
+ }) => <T extends boolean>(o?: {
14
+ verify: T;
15
+ }) => Promise<T extends true ? import("../../common/shared/models/CheckSummary").CheckSummary : true>;
@@ -0,0 +1,37 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ export const mkSubmitMethod = (deps) => ((o) => __awaiter(void 0, void 0, void 0, function* () {
11
+ const { applicant$, eventHub, client, documents$ } = deps;
12
+ // skipping requirements for consents initially
13
+ const hasConsentGiven = true; // consentsGiven$.getValue().length > 0;
14
+ const hasEntityId = Boolean(applicant$.getValue().entityId);
15
+ if (!hasConsentGiven) {
16
+ const message = "Consent needs to be provided before submitting any data.";
17
+ eventHub.emit("error", {
18
+ message,
19
+ payload: {
20
+ hint: "Capture user's consent and provide it using the method addConsent({ type }), where 'type' is one of the values defined in our api documentation",
21
+ },
22
+ });
23
+ throw new Error(message);
24
+ }
25
+ const method = hasEntityId ? client.updateApplicant : client.createApplicant;
26
+ const applicant = applicant$.getValue();
27
+ const documents = documents$.getValue();
28
+ const { entityId } = yield method.bind(client)({ applicant, documents });
29
+ if (!hasEntityId) {
30
+ applicant.entityId = entityId;
31
+ applicant$.setValue(applicant);
32
+ }
33
+ if (o === null || o === void 0 ? void 0 : o.verify)
34
+ return yield client.triggerChecks();
35
+ return true;
36
+ }));
37
+ //# sourceMappingURL=submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../../../modules/individual/actions/submit.ts"],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAM9B,EAAE,EAAE,CACH,CAAC,CAAO,CAAC,EAAE,EAAE;IACX,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC1D,+CAA+C;IAC/C,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,wCAAwC;IACtE,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;IAE5D,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,OAAO,GAAG,0DAA0D,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE;YACrB,OAAO;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,iJAAiJ;aACxJ;SACF,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;KAC1B;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IAC7E,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IACxC,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAExC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,WAAW,EAAE;QAChB,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC9B,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KAChC;IAED,IAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM;QAAE,OAAO,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC,CAAA,CAAsC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IndividualModule } from "./types";
2
+ export declare const individualModule: IndividualModule;
@@ -0,0 +1,74 @@
1
+ import { mkEventHub, mkEventListener, ReactiveStore } from "../common";
2
+ import { ApplicantClient } from "../frankie-client/clients/ApplicantClient";
3
+ import { mkAddConsents } from "./actions/consents";
4
+ import { mkAddDocument, mkUpdateDocument } from "./actions/documents";
5
+ import { subscribeAndEmitEvents } from "./actions/emitEvents";
6
+ import { mkSearchMethod } from "./actions/search";
7
+ import { mkSubmitMethod } from "./actions/submit";
8
+ export const individualModule = {
9
+ initialise(o) {
10
+ const { frankieClient } = o;
11
+ const client = new ApplicantClient(frankieClient);
12
+ const state$ = new ReactiveStore({
13
+ applicant: null,
14
+ documents: null,
15
+ hasLoaded: false,
16
+ isPreloaded: null,
17
+ });
18
+ const documents$ = state$.getRootAccessors("documents");
19
+ const applicant$ = state$.getRootAccessors("applicant");
20
+ const hasLoaded$ = state$.getRootAccessors("hasLoaded");
21
+ const isPreloaded$ = state$.getRootAccessors("isPreloaded");
22
+ const entityId$ = ReactiveStore.mkPropertyAccessors(applicant$, { propertyName: "entityId" });
23
+ const name$ = ReactiveStore.mkPropertyAccessors(applicant$, { propertyName: "name" });
24
+ const dob$ = ReactiveStore.mkPropertyAccessors(applicant$, { propertyName: "dateOfBirth" });
25
+ const addresses$ = ReactiveStore.mkPropertyAccessors(applicant$, { propertyName: "addresses" });
26
+ const consentsGiven$ = ReactiveStore.mkPropertyAccessors(applicant$, { propertyName: "consents" });
27
+ // when adding a new public field, make sure to update the PublicFields type in ./types/module
28
+ const publicAccessors = {
29
+ entityId: entityId$,
30
+ name: name$,
31
+ documents: documents$,
32
+ addresses: addresses$,
33
+ dateOfBirth: dob$,
34
+ hasLoaded: hasLoaded$,
35
+ consentsGiven: consentsGiven$,
36
+ };
37
+ // Events mapping
38
+ const eventHub = mkEventHub();
39
+ // For each public field, emit "data_updated" when they change
40
+ subscribeAndEmitEvents({
41
+ eventHub,
42
+ publicAccessors,
43
+ });
44
+ // methods
45
+ const search = mkSearchMethod({
46
+ client,
47
+ eventHub,
48
+ state$,
49
+ recipeName: o.recipe.name,
50
+ });
51
+ const submitData = mkSubmitMethod({
52
+ applicant$,
53
+ client,
54
+ consentsGiven$,
55
+ documents$,
56
+ eventHub,
57
+ });
58
+ const addConsent = mkAddConsents({
59
+ consentsGiven$,
60
+ });
61
+ const addDocument = mkAddDocument({
62
+ documents$,
63
+ });
64
+ const updateDocument = mkUpdateDocument({
65
+ documents$,
66
+ });
67
+ // Refresh state automatically on initialisation
68
+ search();
69
+ return Object.assign(Object.assign({}, mkEventListener(eventHub)), { access: (fieldName) => publicAccessors[fieldName], isPreloaded: () => isPreloaded$.getValue(), hasLoaded: () => hasLoaded$.getValue(), submit: submitData, addDocument,
70
+ updateDocument,
71
+ addConsent });
72
+ },
73
+ };
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/individual/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ApplicantId } from "../../common/types/Session";
2
+ export declare type Events = {
3
+ data_loaded: [ApplicantId & {
4
+ isPreloaded: boolean;
5
+ }];
6
+ data_updated: [string, unknown];
7
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../../modules/individual/types/events.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./events";
2
+ export * from "./module";
@@ -0,0 +1,3 @@
1
+ export * from "./events";
2
+ export * from "./module";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../modules/individual/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { Address } from "../../common/shared/models/Address";
2
+ import { Applicant } from "../../common/shared/models/Applicant";
3
+ import type { CheckSummary } from "../../common/shared/models/CheckSummary";
4
+ import type { Document } from "../../common/shared/models/Document";
5
+ import type { BaseModuleOptions, ModuleContext } from "../../sdk/types";
6
+ import { AccessFunction, AccessorsDictionary } from "../../common/types/Accessors";
7
+ import { Events } from "./events";
8
+ export interface IndividualModule {
9
+ initialise: (o: BaseModuleOptions) => IndividualModuleContext;
10
+ }
11
+ export declare type IndividualModuleContext = ModuleContext<{
12
+ hasLoaded: () => boolean;
13
+ isPreloaded: () => boolean;
14
+ addConsent: (type: string) => void;
15
+ addDocument: (details: Document) => void;
16
+ updateDocument: (id: string, details: Document) => void;
17
+ submit: <T extends boolean>(o?: {
18
+ verify: T;
19
+ }) => Promise<T extends true ? CheckSummary : true>;
20
+ access: AccessFunction<PublicAccessors>;
21
+ }, Events>;
22
+ export declare type PublicFields = {
23
+ entityId: Applicant["entityId"];
24
+ name: Applicant["name"];
25
+ dateOfBirth: Applicant["dateOfBirth"];
26
+ consentsGiven: Applicant["consents"];
27
+ documents: Document[];
28
+ addresses: Address[];
29
+ hasLoaded: boolean;
30
+ };
31
+ export declare type PublicAccessors = AccessorsDictionary<PublicFields>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../modules/individual/types/module.ts"],"names":[],"mappings":""}
@@ -0,0 +1,51 @@
1
+ import { Accessors, EventHub, ReadonlyAccessors } from "../../common";
2
+ import { Document } from "../../common/shared/models/Document";
3
+ import { CompleteStatus, FailedStatus, InputRequiredStatus, OCRClient, OCRResults, Status } from "../../frankie-client/clients/OCRClient";
4
+ import { IndividualModuleContext } from "../../individual/types";
5
+ import { Events } from "../types";
6
+ declare type Dependencies = {
7
+ _expectedSide$: ReadonlyAccessors<"front" | "back">;
8
+ status$: Accessors<InputRequiredStatus | CompleteStatus>;
9
+ document$: Accessors<Document>;
10
+ files$: Accessors<File[]>;
11
+ individual: IndividualModuleContext;
12
+ eventHub: EventHub<Events>;
13
+ client: OCRClient;
14
+ isPreloaded$: Accessors<boolean>;
15
+ failedStatus$: Accessors<FailedStatus>;
16
+ };
17
+ export declare type DependenciesWithInterrupt = Dependencies & {
18
+ interruptOCR: InterruptOCR;
19
+ };
20
+ declare type InterruptOCR = (e: {
21
+ message: string;
22
+ payload?: unknown;
23
+ }) => void;
24
+ /**
25
+ * Returns the start method called by customers to trigger the OCR flow
26
+ * It first generates two observables by branching off the OCR's internal state variables
27
+ * a) status$
28
+ * Which will cycle on every new status and
29
+ * will interrupt the cycle once the value of status is COMPLETE OR there is a forced interruption
30
+ * b) failedStatus$
31
+ * Which will cycle on every new fail status, ignoring null values, issued when failures are resolved
32
+ * Will be interrupted by any forced interruptions
33
+ *
34
+ * Forced interruptions occur when the function interruptOCR is called by either the customer or internally,
35
+ * when we reach an unrecoverable state. So far the unrecoverable states are
36
+ * - Receiving a status PROVIDER_OFFLINE form backend
37
+ * - File submission fails due to server/network issues
38
+ * - Receiving a status WAITING_OCR_RUN, reattempting automatically and failing with another WAITING_OCR_RUN
39
+ *
40
+ * @param deps dependencies passed from the OCR module
41
+ * @returns { interruptOCR }, where interruptOCR forces the end of the OCR cycles
42
+ */
43
+ export declare const mkStartMethod: (deps: Dependencies) => () => Promise<{
44
+ interruptOCR: () => void;
45
+ }>;
46
+ export declare const resetCurrentStatus: (deps: DependenciesWithInterrupt) => Promise<void>;
47
+ export declare const completeOCR: (deps: DependenciesWithInterrupt) => void;
48
+ export declare const inputRequired: (status: Status, deps: DependenciesWithInterrupt) => void;
49
+ export declare const mkProvideFile: (deps: DependenciesWithInterrupt) => (file: File) => void;
50
+ export declare const mkEvaluateResults: (deps: DependenciesWithInterrupt) => (results: OCRResults, recursionFlag?: boolean) => void;
51
+ export {};
@@ -0,0 +1,268 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { Document } from "../../common/shared/models/Document";
11
+ import { isCompleteStatus, isFailedStatus, isInputRequiredStatus, Status, } from "../../frankie-client/clients/OCRClient";
12
+ import { filter, Subject, takeUntil, takeWhile } from "rxjs";
13
+ /**
14
+ * Returns the start method called by customers to trigger the OCR flow
15
+ * It first generates two observables by branching off the OCR's internal state variables
16
+ * a) status$
17
+ * Which will cycle on every new status and
18
+ * will interrupt the cycle once the value of status is COMPLETE OR there is a forced interruption
19
+ * b) failedStatus$
20
+ * Which will cycle on every new fail status, ignoring null values, issued when failures are resolved
21
+ * Will be interrupted by any forced interruptions
22
+ *
23
+ * Forced interruptions occur when the function interruptOCR is called by either the customer or internally,
24
+ * when we reach an unrecoverable state. So far the unrecoverable states are
25
+ * - Receiving a status PROVIDER_OFFLINE form backend
26
+ * - File submission fails due to server/network issues
27
+ * - Receiving a status WAITING_OCR_RUN, reattempting automatically and failing with another WAITING_OCR_RUN
28
+ *
29
+ * @param deps dependencies passed from the OCR module
30
+ * @returns { interruptOCR }, where interruptOCR forces the end of the OCR cycles
31
+ */
32
+ export const mkStartMethod = (deps) => () => __awaiter(void 0, void 0, void 0, function* () {
33
+ const { status$, failedStatus$, eventHub, document$, files$, isPreloaded$ } = deps;
34
+ // If flow was interrupted with an error, interrupt observable as well
35
+ const interruptor = new Subject();
36
+ const interruptOCR = ({ message, payload = null }) => interruptor.error({ message, payload });
37
+ // Loop until Status is COMPLETE, then unsubscribe automatically
38
+ // Repeated statuses do not trigger another cycle, so this assumes IDV always returns either a new status or a status flagging an issue
39
+ const statusUntilComplete$ = status$.observable.pipe(filter(Boolean), takeUntil(interruptor), takeWhile(statusIsNotComplete));
40
+ // Ignore null failures (when error is resolved). Run until interrupted
41
+ const failedStatusExceptNull$ = failedStatus$.observable.pipe(filter(Boolean), takeUntil(interruptor));
42
+ const depsWithManualInterrupt = Object.assign(Object.assign({}, deps), { interruptOCR });
43
+ // callback definitions
44
+ const resetState = () => {
45
+ status$.setValue(null);
46
+ failedStatus$.setValue(null);
47
+ document$.setValue(null);
48
+ files$.setValue([]);
49
+ isPreloaded$.setValue(null);
50
+ };
51
+ const subscriber = {
52
+ next: (newStatus) => {
53
+ // For each new status/failureStatus, trigger inputRequired part of the flow
54
+ inputRequired(newStatus, depsWithManualInterrupt);
55
+ },
56
+ complete: () => {
57
+ // when flow is flagged as completed by the operator takeWhile above
58
+ completeOCR(depsWithManualInterrupt);
59
+ resetState();
60
+ },
61
+ error: (e) => {
62
+ // when flow is interrupted by calling interruptOCR, which will in turn
63
+ // emit an error internally, trigerring this error callback
64
+ eventHub.emit("error", { message: "Error while executing OCR callbacks", payload: e });
65
+ resetState();
66
+ },
67
+ };
68
+ // Before starting the OCR flow, analyse the existing documents to
69
+ // either continue a flow, or start a new one
70
+ yield resetCurrentStatus(depsWithManualInterrupt);
71
+ // register callbacks to each data stream
72
+ // for status
73
+ statusUntilComplete$.subscribe(subscriber);
74
+ // for failed statuses
75
+ failedStatusExceptNull$.subscribe(subscriber.next);
76
+ // expose interruptOCR() to allow interruption of an active flow, which unregister all listeners
77
+ return {
78
+ interruptOCR: () => interruptOCR({
79
+ message: "OCR Flow interrupted externally",
80
+ payload: {
81
+ document: deps.document$.getValue(),
82
+ status: deps.status$.getValue(),
83
+ failedStatus: deps.failedStatus$.getValue(),
84
+ },
85
+ }),
86
+ };
87
+ });
88
+ const statusIsNotComplete = (status) => !isCompleteStatus(status);
89
+ export const resetCurrentStatus = (deps) => __awaiter(void 0, void 0, void 0, function* () {
90
+ /**
91
+ * Resolve the status, the document object and the "isPreloaded" flag before initiating the ocr flow
92
+ * The only statuses that should come out of this function are COMPLETE, WAITING_FRONT and WAITING_BACK
93
+ *
94
+ * 1) Determine if any document already has any valid OCR results
95
+ * 1.a) has ocrResult.status
96
+ * 1.b) has no failed KYC (neither manually or electronically rejected). Here manual verification takes precedence for this decision.
97
+
98
+ */
99
+ const { individual, document$, status$, isPreloaded$, client, failedStatus$, interruptOCR } = deps;
100
+ const allDocuments = individual.access("documents");
101
+ const isOcrPreloaded = (d) => {
102
+ var _a, _b;
103
+ // d.verified.{manual|electronic} can have boolean or null values
104
+ const { manual = null, electronic = null } = (_a = d.verified) !== null && _a !== void 0 ? _a : {};
105
+ if (!((_b = d.ocrResult) === null || _b === void 0 ? void 0 : _b.status))
106
+ return false;
107
+ if (manual === false)
108
+ return false;
109
+ if (electronic === false && manual !== true)
110
+ return false;
111
+ // COMPLETE, WAITING_FRONT, WAITING_BACK, WAITING_OCR_RUN, FAILED
112
+ return true;
113
+ };
114
+ // helpers
115
+ const isOcrInterrupted = (status) => status === Status.WAITING_OCR_RUN;
116
+ const isOcrWaitingOrComplete = (status) => isInputRequiredStatus(status) || isCompleteStatus(status);
117
+ const initialiseWith = (status, document, isPreloaded) => {
118
+ status$.setValue(status);
119
+ failedStatus$.setValue(null);
120
+ document$.setValue(document);
121
+ isPreloaded$.setValue(isPreloaded);
122
+ };
123
+ const startNewFlow = () => initialiseWith(Status.WAITING_FRONT, new Document(), false);
124
+ // Search for existing document with ocr
125
+ const [latestFoundOcrDocument] = allDocuments
126
+ .getValue()
127
+ .filter(isOcrPreloaded)
128
+ .sort((a, b) => +new Date(a.ocrResult.runDate) - +new Date(b.ocrResult.runDate))
129
+ .reverse();
130
+ // if none found, start a new flow
131
+ if (!latestFoundOcrDocument)
132
+ startNewFlow();
133
+ else if (isFailedStatus(latestFoundOcrDocument.ocrResult.status)) {
134
+ // if failed status, use existing docuemnt with status WAITING_FRONT
135
+ initialiseWith(Status.WAITING_FRONT, latestFoundOcrDocument, true);
136
+ }
137
+ else if (isOcrInterrupted(latestFoundOcrDocument.ocrResult.status)) {
138
+ // If latest OCR document was interrupted and has no 'continuable status', attempt to continue it
139
+ const { documentStatus, ocrDocument } = yield client.rerun(latestFoundOcrDocument.documentId);
140
+ // IF results are: WAITING_FRONT, WAITING_BACK, COMPLETE_OCR, use that
141
+ if (isInputRequiredStatus(documentStatus) || isCompleteStatus(documentStatus))
142
+ initialiseWith(documentStatus, ocrDocument, true);
143
+ // IF attempt fails with PROVIDER_OFFLINE, interrupt flow
144
+ else if (documentStatus === Status.PROVIDER_OFFLINE)
145
+ interruptOCR({
146
+ message: `Provider is offline. Either switch providers and restart or skip OCR temporarily. Status ${Status.PROVIDER_OFFLINE}`,
147
+ payload: null,
148
+ });
149
+ // If attempt fails, start new flow with WAITING_FRONT
150
+ else
151
+ startNewFlow();
152
+ }
153
+ else if (isOcrWaitingOrComplete(latestFoundOcrDocument.ocrResult.status)) {
154
+ // WAITING_FRONT, WAITING_BACK, COMPLETE_OCR
155
+ const storedStatus = latestFoundOcrDocument.ocrResult.status;
156
+ // OUTCOME: WAITING_FRONT, WAITING_BACK, COMPLETE_OCR
157
+ initialiseWith(storedStatus, latestFoundOcrDocument, true);
158
+ // anything else starts a new flow with WAITING_FRONT
159
+ }
160
+ else
161
+ startNewFlow();
162
+ });
163
+ export const completeOCR = (deps) => {
164
+ const { document$, eventHub, individual } = deps;
165
+ const document = document$.getValue();
166
+ individual.updateDocument(document.documentId, document);
167
+ eventHub.emit("results", { document });
168
+ };
169
+ export const inputRequired = (status, deps) => {
170
+ const { document$, _expectedSide$, eventHub } = deps;
171
+ const document = document$.getValue();
172
+ const idType = document.idType === "OTHER" ? null : document.idType;
173
+ const info = {
174
+ documentType: idType,
175
+ side: _expectedSide$.getValue(),
176
+ };
177
+ const message = "Callback 'submitFile' on event 'input_required' called twice. Second call was ignored";
178
+ const provideFile = mkProvideFile(deps);
179
+ eventHub.emit("input_required", info, status, runOnce(provideFile, message));
180
+ };
181
+ const runOnce = (func, errorMessage) => {
182
+ let wasCalled = false;
183
+ return ((...args) => {
184
+ if (wasCalled)
185
+ throw new Error(errorMessage);
186
+ const result = func(...args);
187
+ wasCalled = true;
188
+ return result;
189
+ });
190
+ };
191
+ export const mkProvideFile = (deps) => (file) => {
192
+ const { files$, document$, client } = deps;
193
+ if (!file.type)
194
+ throw new Error("File is missing mime type. Provide a 'type' option in the File constructor");
195
+ if (!file.type.match(/^image/))
196
+ throw new Error("Invalid mime type. Provided files must be of type 'image'");
197
+ const files = files$.getValue();
198
+ files.push(file);
199
+ files$.setValue(files);
200
+ const { documentId } = document$.getValue();
201
+ const evaluateResults = mkEvaluateResults(deps);
202
+ const submit = documentId
203
+ ? () => client.updateOCRDocument(file, documentId)
204
+ : () => client.attachNewOCRDocument(file);
205
+ submit()
206
+ .then(evaluateResults)
207
+ .catch((e) => {
208
+ deps.interruptOCR({ message: "Error submitting file", payload: e });
209
+ });
210
+ };
211
+ export const mkEvaluateResults = (deps) => (results, recursionFlag) => {
212
+ const { _expectedSide$, document$, eventHub, status$, client, failedStatus$, interruptOCR } = deps;
213
+ const { documentStatus, ocrDocument } = results;
214
+ // Update local document object first
215
+ const document = ocrDocument.clone();
216
+ document$.setValue(document);
217
+ // if not a failure and not a WAITING_OCR_RUN, emit logs to confirm file upload
218
+ if (!isFailedStatus(documentStatus) && documentStatus !== Status.WAITING_OCR_RUN) {
219
+ const expectedSide = _expectedSide$.getValue();
220
+ const expectedScanSide = expectedSide === "front" ? "F" : "B";
221
+ const foundScan = ocrDocument.scans.find((s) => expectedScanSide === s.side);
222
+ if (foundScan) {
223
+ eventHub.emit("file_uploaded", {
224
+ fileName: foundScan.scanName,
225
+ mimeType: foundScan.mimeType,
226
+ scanId: foundScan.scanId,
227
+ statusAfterUpload: documentStatus,
228
+ statusBeforeUpload: status$.getValue(),
229
+ });
230
+ }
231
+ else {
232
+ eventHub.emit("warning", {
233
+ message: `File was uploaded successfully, but there was an issue identifying it within the document payload: document.scans[].side didn't match expected side ${expectedSide} (${expectedScanSide}) `,
234
+ });
235
+ }
236
+ }
237
+ if (documentStatus === Status.PROVIDER_OFFLINE) {
238
+ interruptOCR({
239
+ message: `Provider is offline. Either switch providers and restart or skip OCR temporarily. Status ${Status.PROVIDER_OFFLINE}`,
240
+ payload: null,
241
+ });
242
+ }
243
+ else if (documentStatus === Status.WAITING_OCR_RUN) {
244
+ // If request previously returned WAITING_OCR_RUN, we tried again and got another WAITING_OCR_RUN,
245
+ // throw error, which will interruptOCR
246
+ if (recursionFlag)
247
+ throw new Error(`Two attempts to get OCR results failed with an unresolved "${Status.WAITING_OCR_RUN}". This is a system failure.`);
248
+ // If waiting_ocr_run is returned, try to rerun and reevaluate results
249
+ const evaluateResults = mkEvaluateResults(deps);
250
+ client
251
+ .rerun(ocrDocument.documentId)
252
+ .then((res) => evaluateResults(res, true))
253
+ .catch((e) => interruptOCR({
254
+ message: `Attempting to resolve the status ${Status.WAITING_OCR_RUN} resulted in an error`,
255
+ payload: e,
256
+ }));
257
+ }
258
+ else if (isFailedStatus(documentStatus)) {
259
+ // if failed, set failedStatus and keep status the same
260
+ failedStatus$.setValue(documentStatus);
261
+ }
262
+ else {
263
+ // otherwise, update status to new received status
264
+ failedStatus$.setValue(null);
265
+ status$.setValue(documentStatus);
266
+ }
267
+ };
268
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../../../modules/ocr/actions/start.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ReactiveStore } from "../common";
2
+ import { Status } from "../frankie-client/clients/OCRClient";
3
+ import { OcrModule, State } from "./types";
4
+ export declare const ocrModule: OcrModule;
5
+ export declare function initialiseLocalState(state$: ReactiveStore<State>): {
6
+ status$: import("../common").Accessors<Status.COMPLETE | import("../frankie-client/clients/OCRClient").InputRequiredStatus, Status.COMPLETE | import("../frankie-client/clients/OCRClient").InputRequiredStatus>;
7
+ failedStatus$: import("../common").Accessors<import("../frankie-client/clients/OCRClient").FailedStatus, import("../frankie-client/clients/OCRClient").FailedStatus>;
8
+ document$: import("../common").Accessors<import("../common/shared/models/Document").Document, import("../common/shared/models/Document").Document>;
9
+ files$: import("../common").Accessors<File[], File[]>;
10
+ isPreloaded$: import("../common").Accessors<boolean, boolean>;
11
+ _expectedSide$: import("../common").ReadonlyAccessors<"front" | "back">;
12
+ };