@bifold/core 2.4.5 → 2.5.0

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 (416) hide show
  1. package/lib/commonjs/contexts/reducers/store.js +3 -2
  2. package/lib/commonjs/contexts/reducers/store.js.map +1 -1
  3. package/lib/commonjs/index.js +119 -104
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/commonjs/screens/AttemptLockout.js +27 -35
  6. package/lib/commonjs/screens/AttemptLockout.js.map +1 -1
  7. package/lib/commonjs/screens/ContactDetails.js +1 -1
  8. package/lib/commonjs/screens/ContactDetails.js.map +1 -1
  9. package/lib/commonjs/screens/CredentialDetails.js +1 -1
  10. package/lib/commonjs/screens/CredentialDetails.js.map +1 -1
  11. package/lib/commonjs/screens/JSONDetails.js +6 -3
  12. package/lib/commonjs/screens/JSONDetails.js.map +1 -1
  13. package/lib/commonjs/screens/MobileVerifierLoading.js +4 -3
  14. package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
  15. package/lib/commonjs/screens/PINCreate.js +3 -10
  16. package/lib/commonjs/screens/PINCreate.js.map +1 -1
  17. package/lib/commonjs/screens/WhatAreContacts.js +3 -2
  18. package/lib/commonjs/screens/WhatAreContacts.js.map +1 -1
  19. package/lib/module/contexts/reducers/store.js +3 -2
  20. package/lib/module/contexts/reducers/store.js.map +1 -1
  21. package/lib/module/index.js +42 -45
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/screens/AttemptLockout.js +28 -36
  24. package/lib/module/screens/AttemptLockout.js.map +1 -1
  25. package/lib/module/screens/ContactDetails.js +1 -1
  26. package/lib/module/screens/ContactDetails.js.map +1 -1
  27. package/lib/module/screens/CredentialDetails.js +1 -1
  28. package/lib/module/screens/CredentialDetails.js.map +1 -1
  29. package/lib/module/screens/JSONDetails.js +6 -3
  30. package/lib/module/screens/JSONDetails.js.map +1 -1
  31. package/lib/module/screens/MobileVerifierLoading.js +4 -3
  32. package/lib/module/screens/MobileVerifierLoading.js.map +1 -1
  33. package/lib/module/screens/PINCreate.js +3 -10
  34. package/lib/module/screens/PINCreate.js.map +1 -1
  35. package/lib/module/screens/WhatAreContacts.js +3 -2
  36. package/lib/module/screens/WhatAreContacts.js.map +1 -1
  37. package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
  38. package/lib/typescript/src/index.d.ts +57 -61
  39. package/lib/typescript/src/index.d.ts.map +1 -1
  40. package/lib/typescript/src/screens/AttemptLockout.d.ts.map +1 -1
  41. package/lib/typescript/src/screens/JSONDetails.d.ts.map +1 -1
  42. package/lib/typescript/src/screens/MobileVerifierLoading.d.ts.map +1 -1
  43. package/lib/typescript/src/screens/PINCreate.d.ts.map +1 -1
  44. package/lib/typescript/src/screens/WhatAreContacts.d.ts.map +1 -1
  45. package/lib/typescript/src/types/navigators.d.ts +1 -1
  46. package/lib/typescript/src/types/navigators.d.ts.map +1 -1
  47. package/package.json +3 -4
  48. package/src/App.tsx +0 -79
  49. package/src/animated-components.ts +0 -30
  50. package/src/assets/fonts/MaterialIcons.ttf +0 -0
  51. package/src/assets/icons/code.svg +0 -4
  52. package/src/assets/icons/large-arrow.svg +0 -5
  53. package/src/assets/icons/pencil.svg +0 -15
  54. package/src/assets/icons/trash.svg +0 -31
  55. package/src/assets/img/Artwork_1024x1024.png +0 -0
  56. package/src/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  57. package/src/assets/img/HistoryCardExpiredIcon.svg +0 -4
  58. package/src/assets/img/HistoryCardRevokedIcon.svg +0 -4
  59. package/src/assets/img/HistoryInformationSentIcon.svg +0 -4
  60. package/src/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  61. package/src/assets/img/IconChevronRight.svg +0 -5
  62. package/src/assets/img/activity-indicator-circle.svg +0 -90
  63. package/src/assets/img/app-lockout.svg +0 -1
  64. package/src/assets/img/biometrics.svg +0 -74
  65. package/src/assets/img/chat-loading.svg +0 -1
  66. package/src/assets/img/check-in-circle.svg +0 -18
  67. package/src/assets/img/connection-pending.svg +0 -112
  68. package/src/assets/img/contact-book.svg +0 -21
  69. package/src/assets/img/credential-card.svg +0 -18
  70. package/src/assets/img/credential-declined.svg +0 -28
  71. package/src/assets/img/credential-in-hand.svg +0 -48
  72. package/src/assets/img/credential-list.svg +0 -60
  73. package/src/assets/img/credential-pending.svg +0 -96
  74. package/src/assets/img/credential-success.svg +0 -48
  75. package/src/assets/img/delete-notification.svg +0 -1
  76. package/src/assets/img/empty-wallet.svg +0 -23
  77. package/src/assets/img/error-filled.svg +0 -12
  78. package/src/assets/img/exclamation-mark.svg +0 -17
  79. package/src/assets/img/home-center-img.svg +0 -71
  80. package/src/assets/img/icon-credential-offer-dark.svg +0 -7
  81. package/src/assets/img/icon-credential-offer-light.svg +0 -7
  82. package/src/assets/img/icon-info-recieved-dark.svg +0 -8
  83. package/src/assets/img/icon-info-recieved-light.svg +0 -8
  84. package/src/assets/img/icon-info-sent-dark.svg +0 -8
  85. package/src/assets/img/icon-info-sent-light.svg +0 -8
  86. package/src/assets/img/icon-proof-request-dark.svg +0 -11
  87. package/src/assets/img/icon-proof-request-light.svg +0 -11
  88. package/src/assets/img/information-received.svg +0 -1
  89. package/src/assets/img/logo-large.png +0 -0
  90. package/src/assets/img/logo-large@2x.png +0 -0
  91. package/src/assets/img/logo-large@3x.png +0 -0
  92. package/src/assets/img/logo.svg +0 -15
  93. package/src/assets/img/message-text-icon-outline.svg +0 -1
  94. package/src/assets/img/message-text-icon.svg +0 -1
  95. package/src/assets/img/no_information_shared.svg +0 -36
  96. package/src/assets/img/preface.svg +0 -15
  97. package/src/assets/img/proof-declined.svg +0 -66
  98. package/src/assets/img/proof-pending.svg +0 -61
  99. package/src/assets/img/proof-success.svg +0 -72
  100. package/src/assets/img/push-notifications.svg +0 -1
  101. package/src/assets/img/qrcode-scan-icon.svg +0 -1
  102. package/src/assets/img/scan-share.svg +0 -102
  103. package/src/assets/img/secure-check.svg +0 -4
  104. package/src/assets/img/secure-image.svg +0 -64
  105. package/src/assets/img/update-available.svg +0 -26
  106. package/src/assets/img/verifier-request-declined.svg +0 -34
  107. package/src/assets/img/wallet-back.svg +0 -20
  108. package/src/assets/img/wallet-front.svg +0 -32
  109. package/src/assets/img/wallet-icon-outline.svg +0 -1
  110. package/src/assets/img/wallet-icon.svg +0 -1
  111. package/src/assets/img/wallet.svg +0 -43
  112. package/src/assets/oca-bundles.json +0 -174
  113. package/src/components/animated/ButtonLoading.tsx +0 -32
  114. package/src/components/animated/ConnectionLoading.tsx +0 -53
  115. package/src/components/animated/CredentialAdded.tsx +0 -72
  116. package/src/components/animated/CredentialPending.tsx +0 -63
  117. package/src/components/animated/LoadingIndicator.tsx +0 -49
  118. package/src/components/animated/PresentationLoading.tsx +0 -52
  119. package/src/components/animated/RecordLoading.tsx +0 -75
  120. package/src/components/animated/SendingProof.tsx +0 -53
  121. package/src/components/animated/SentProof.tsx +0 -72
  122. package/src/components/buttons/Button-api.tsx +0 -46
  123. package/src/components/buttons/Button.tsx +0 -125
  124. package/src/components/buttons/HeaderHome.tsx +0 -25
  125. package/src/components/buttons/IconButton.tsx +0 -93
  126. package/src/components/buttons/InfoIcon.tsx +0 -35
  127. package/src/components/buttons/SettingsMenu.tsx +0 -26
  128. package/src/components/buttons/ToggleButton.tsx +0 -93
  129. package/src/components/buttons/index.ts +0 -4
  130. package/src/components/chat/ActionSlider.tsx +0 -104
  131. package/src/components/chat/ChatActions.tsx +0 -33
  132. package/src/components/chat/ChatBubble.tsx +0 -20
  133. package/src/components/chat/ChatEvent.tsx +0 -31
  134. package/src/components/chat/ChatMessage.tsx +0 -142
  135. package/src/components/chat/MessageInput.tsx +0 -46
  136. package/src/components/chat/index.ts +0 -4
  137. package/src/components/forms/WalletNameForm.tsx +0 -148
  138. package/src/components/index.ts +0 -4
  139. package/src/components/inputs/BiometryControl.tsx +0 -190
  140. package/src/components/inputs/BulletPoint.tsx +0 -32
  141. package/src/components/inputs/CheckBoxRow.tsx +0 -67
  142. package/src/components/inputs/InlineErrorText.tsx +0 -60
  143. package/src/components/inputs/LimitedTextInput.tsx +0 -71
  144. package/src/components/inputs/PINInput.tsx +0 -175
  145. package/src/components/inputs/SingleSelectBlock.tsx +0 -53
  146. package/src/components/listItems/ContactCredentialListItem.tsx +0 -79
  147. package/src/components/listItems/ContactListItem.tsx +0 -121
  148. package/src/components/listItems/NotificationListItem.tsx +0 -514
  149. package/src/components/misc/AvatarView.tsx +0 -33
  150. package/src/components/misc/CardWatermark.tsx +0 -52
  151. package/src/components/misc/ConnectionAlert.tsx +0 -123
  152. package/src/components/misc/ConnectionImage.tsx +0 -45
  153. package/src/components/misc/ContentGradient.tsx +0 -40
  154. package/src/components/misc/CredentialCard.tsx +0 -161
  155. package/src/components/misc/CredentialCard10.tsx +0 -329
  156. package/src/components/misc/CredentialCard11.tsx +0 -701
  157. package/src/components/misc/CredentialCard11ActionFooter.tsx +0 -55
  158. package/src/components/misc/CredentialCard11Issuer.tsx +0 -74
  159. package/src/components/misc/CredentialCard11Logo.tsx +0 -61
  160. package/src/components/misc/EmptyList.tsx +0 -27
  161. package/src/components/misc/EmptyListContacts.tsx +0 -55
  162. package/src/components/misc/ErrorBoundary.tsx +0 -200
  163. package/src/components/misc/FauxHeader.tsx +0 -75
  164. package/src/components/misc/InfoBox.tsx +0 -283
  165. package/src/components/misc/NoNewUpdates.tsx +0 -38
  166. package/src/components/misc/PINHeader.tsx +0 -25
  167. package/src/components/misc/PINValidationHelper.tsx +0 -48
  168. package/src/components/misc/Pagination.tsx +0 -114
  169. package/src/components/misc/QRRenderer.tsx +0 -53
  170. package/src/components/misc/QRScanner.tsx +0 -395
  171. package/src/components/misc/QRScannerTorch.tsx +0 -74
  172. package/src/components/misc/ScanCamera.tsx +0 -86
  173. package/src/components/misc/ScanTab.tsx +0 -45
  174. package/src/components/misc/SharedProofData.tsx +0 -98
  175. package/src/components/misc/UnorderedList.tsx +0 -28
  176. package/src/components/misc/VerifierCredentialCard.tsx +0 -378
  177. package/src/components/misc/index.ts +0 -2
  178. package/src/components/modals/AlertModal.tsx +0 -42
  179. package/src/components/modals/AppGuideModal.tsx +0 -142
  180. package/src/components/modals/CameraDisclosureModal.tsx +0 -126
  181. package/src/components/modals/CommonRemoveModal.tsx +0 -337
  182. package/src/components/modals/DeveloperModal.tsx +0 -32
  183. package/src/components/modals/DismissiblePopupModal.tsx +0 -169
  184. package/src/components/modals/ErrorModal.tsx +0 -107
  185. package/src/components/modals/ImageModal.tsx +0 -80
  186. package/src/components/modals/NetInfoModal.tsx +0 -35
  187. package/src/components/modals/PopupModal.tsx +0 -56
  188. package/src/components/modals/ProofCancelModal.tsx +0 -79
  189. package/src/components/modals/SafeAreaModal.tsx +0 -17
  190. package/src/components/record/Record.tsx +0 -100
  191. package/src/components/record/RecordBinaryField.tsx +0 -55
  192. package/src/components/record/RecordDateIntField.tsx +0 -63
  193. package/src/components/record/RecordField.tsx +0 -154
  194. package/src/components/record/RecordFooter.tsx +0 -17
  195. package/src/components/record/RecordHeader.tsx +0 -17
  196. package/src/components/record/RecordRemove.tsx +0 -66
  197. package/src/components/texts/HeaderTitle.tsx +0 -25
  198. package/src/components/texts/HighlightTextBox.tsx +0 -41
  199. package/src/components/texts/InfoTextBox.tsx +0 -129
  200. package/src/components/texts/Link.tsx +0 -41
  201. package/src/components/texts/Text.tsx +0 -21
  202. package/src/components/texts/ThemedText.tsx +0 -24
  203. package/src/components/toast/BaseToast.tsx +0 -128
  204. package/src/components/toast/ToastConfig.tsx +0 -21
  205. package/src/components/tour/AttachTourStep.tsx +0 -73
  206. package/src/components/tour/CredentialOfferTourSteps.tsx +0 -41
  207. package/src/components/tour/CredentialsTourSteps.tsx +0 -41
  208. package/src/components/tour/HomeTourSteps.tsx +0 -104
  209. package/src/components/tour/ProofRequestTourSteps.tsx +0 -41
  210. package/src/components/tour/SpotCutout.tsx +0 -65
  211. package/src/components/tour/TourBox.tsx +0 -255
  212. package/src/components/tour/TourOverlay.tsx +0 -134
  213. package/src/components/views/Banner.tsx +0 -181
  214. package/src/components/views/CredentialCardLogo.tsx +0 -77
  215. package/src/components/views/CredentialDetailPrimaryHeader.tsx +0 -107
  216. package/src/components/views/CredentialDetailSecondaryHeader.tsx +0 -60
  217. package/src/components/views/HeaderWithBanner.tsx +0 -17
  218. package/src/components/views/HomeFooterView.tsx +0 -110
  219. package/src/components/views/HomeHeaderView.tsx +0 -12
  220. package/src/components/views/KeyboardView.tsx +0 -41
  221. package/src/components/views/LoadingPlaceholder.tsx +0 -168
  222. package/src/components/views/LoadingView.tsx +0 -29
  223. package/src/components/views/ProgressBar.tsx +0 -53
  224. package/src/components/views/PushNotificationsContent.tsx +0 -51
  225. package/src/components/views/PushNotificationsDisabledContent.tsx +0 -47
  226. package/src/configs/ledgers/indy/index.ts +0 -8
  227. package/src/configs/ledgers/indy/ledgers.json +0 -51
  228. package/src/constants.ts +0 -107
  229. package/src/container-api.ts +0 -247
  230. package/src/container-impl.ts +0 -243
  231. package/src/contexts/activity.tsx +0 -145
  232. package/src/contexts/animated-components.ts +0 -9
  233. package/src/contexts/auth.tsx +0 -240
  234. package/src/contexts/index.ts +0 -3
  235. package/src/contexts/navigation.tsx +0 -19
  236. package/src/contexts/network.tsx +0 -125
  237. package/src/contexts/reducers/index.ts +0 -3
  238. package/src/contexts/reducers/store.ts +0 -754
  239. package/src/contexts/store.tsx +0 -103
  240. package/src/contexts/theme.tsx +0 -51
  241. package/src/contexts/tour/tour-context.tsx +0 -160
  242. package/src/contexts/tour/tour-provider.tsx +0 -160
  243. package/src/hooks/bundle-resolver.ts +0 -95
  244. package/src/hooks/chat-messages.tsx +0 -263
  245. package/src/hooks/connections.ts +0 -37
  246. package/src/hooks/credential-card-styles.ts +0 -144
  247. package/src/hooks/credentials.ts +0 -11
  248. package/src/hooks/deep-links.ts +0 -49
  249. package/src/hooks/developer-mode.ts +0 -25
  250. package/src/hooks/lockout.ts +0 -77
  251. package/src/hooks/notifications.ts +0 -108
  252. package/src/hooks/oob.ts +0 -17
  253. package/src/hooks/proof-request-templates.ts +0 -40
  254. package/src/hooks/proofs.ts +0 -32
  255. package/src/hooks/screen-capture.ts +0 -52
  256. package/src/hooks/useBifoldAgentSetup.ts +0 -169
  257. package/src/hooks/useOnboardingState.ts +0 -53
  258. package/src/hooks/usePINValidation.ts +0 -98
  259. package/src/index.ts +0 -239
  260. package/src/layout/ScreenLayout.tsx +0 -53
  261. package/src/localization/en/en.json +0 -951
  262. package/src/localization/en/index.ts +0 -3
  263. package/src/localization/fr/fr.json +0 -933
  264. package/src/localization/fr/index.ts +0 -3
  265. package/src/localization/index.ts +0 -66
  266. package/src/localization/pt-br/index.ts +0 -3
  267. package/src/localization/pt-br/pt-br.json +0 -911
  268. package/src/modules/history/context/historyManager.tsx +0 -247
  269. package/src/modules/history/index.ts +0 -2
  270. package/src/modules/history/navigation/HistoryStack.tsx +0 -29
  271. package/src/modules/history/services/queue.service.tsx +0 -31
  272. package/src/modules/history/types/index.ts +0 -92
  273. package/src/modules/history/ui/HistoryPage.tsx +0 -133
  274. package/src/modules/history/ui/HistorySettings.tsx +0 -183
  275. package/src/modules/history/ui/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  276. package/src/modules/history/ui/assets/img/HistoryCardExpiredIcon.svg +0 -4
  277. package/src/modules/history/ui/assets/img/HistoryCardRevokedIcon.svg +0 -4
  278. package/src/modules/history/ui/assets/img/HistoryInformationSentIcon.svg +0 -4
  279. package/src/modules/history/ui/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  280. package/src/modules/history/ui/assets/img/IconChevronRight.svg +0 -3
  281. package/src/modules/history/ui/components/BulletPoint.tsx +0 -49
  282. package/src/modules/history/ui/components/HistoryListItem.tsx +0 -251
  283. package/src/modules/history/ui/components/HistoryMenu.tsx +0 -25
  284. package/src/modules/history/ui/components/SingleSelectBlock.tsx +0 -72
  285. package/src/modules/openid/components/CredentialRowCard.tsx +0 -64
  286. package/src/modules/openid/components/OpenIDCredentialCard.tsx +0 -276
  287. package/src/modules/openid/context/OpenIDCredentialRecordProvider.tsx +0 -296
  288. package/src/modules/openid/display.tsx +0 -467
  289. package/src/modules/openid/displayProof.tsx +0 -86
  290. package/src/modules/openid/hooks/openid.tsx +0 -111
  291. package/src/modules/openid/metadata.tsx +0 -59
  292. package/src/modules/openid/offerResolve.tsx +0 -281
  293. package/src/modules/openid/resolverProof.tsx +0 -286
  294. package/src/modules/openid/screens/OpenIDCredentialDetails.tsx +0 -214
  295. package/src/modules/openid/screens/OpenIDCredentialOffer.tsx +0 -192
  296. package/src/modules/openid/screens/OpenIDProofChangeCredential.tsx +0 -133
  297. package/src/modules/openid/screens/OpenIDProofPresentation.tsx +0 -423
  298. package/src/modules/openid/types.tsx +0 -111
  299. package/src/modules/openid/utils/utils.tsx +0 -119
  300. package/src/navigators/ConnectStack.tsx +0 -68
  301. package/src/navigators/ContactStack.tsx +0 -91
  302. package/src/navigators/CredentialStack.tsx +0 -48
  303. package/src/navigators/DeliveryStack.tsx +0 -76
  304. package/src/navigators/HomeStack.tsx +0 -37
  305. package/src/navigators/MainStack.tsx +0 -146
  306. package/src/navigators/NotificationStack.tsx +0 -56
  307. package/src/navigators/OnboardingScreens.ts +0 -142
  308. package/src/navigators/OnboardingStack.tsx +0 -205
  309. package/src/navigators/ProofRequestStack.tsx +0 -113
  310. package/src/navigators/RootStack.tsx +0 -71
  311. package/src/navigators/SettingStack.tsx +0 -174
  312. package/src/navigators/TabStack.tsx +0 -304
  313. package/src/navigators/defaultLayoutOptions.tsx +0 -17
  314. package/src/navigators/defaultStackOptions.tsx +0 -102
  315. package/src/navigators/index.ts +0 -27
  316. package/src/onboarding.ts +0 -90
  317. package/src/screens/AttemptLockout.tsx +0 -153
  318. package/src/screens/AutoLock.tsx +0 -140
  319. package/src/screens/Biometry.tsx +0 -54
  320. package/src/screens/Chat.tsx +0 -141
  321. package/src/screens/ConfigureMediator.tsx +0 -160
  322. package/src/screens/Connection.tsx +0 -394
  323. package/src/screens/ContactDetails.tsx +0 -350
  324. package/src/screens/CredentialDetails.tsx +0 -473
  325. package/src/screens/CredentialOffer.tsx +0 -334
  326. package/src/screens/CredentialOfferAccept.tsx +0 -189
  327. package/src/screens/DataRetention.tsx +0 -91
  328. package/src/screens/Developer.tsx +0 -289
  329. package/src/screens/Home.tsx +0 -173
  330. package/src/screens/JSONDetails.tsx +0 -102
  331. package/src/screens/Language.tsx +0 -97
  332. package/src/screens/ListContacts.tsx +0 -112
  333. package/src/screens/ListCredentials.tsx +0 -135
  334. package/src/screens/ListProofRequests.tsx +0 -148
  335. package/src/screens/MobileVerifierLoading.tsx +0 -106
  336. package/src/screens/NameWallet.tsx +0 -9
  337. package/src/screens/Onboarding.tsx +0 -162
  338. package/src/screens/OnboardingPages.tsx +0 -160
  339. package/src/screens/PINChange.tsx +0 -249
  340. package/src/screens/PINCreate.tsx +0 -185
  341. package/src/screens/PINEnter.tsx +0 -432
  342. package/src/screens/PINExplainer.tsx +0 -85
  343. package/src/screens/PINVerify.tsx +0 -195
  344. package/src/screens/PasteUrl.tsx +0 -140
  345. package/src/screens/Preface.tsx +0 -78
  346. package/src/screens/ProofChangeCredential.tsx +0 -179
  347. package/src/screens/ProofDetails.tsx +0 -348
  348. package/src/screens/ProofRequest.tsx +0 -999
  349. package/src/screens/ProofRequestAccept.tsx +0 -133
  350. package/src/screens/ProofRequestDetails.tsx +0 -270
  351. package/src/screens/ProofRequestUsageHistory.tsx +0 -152
  352. package/src/screens/ProofRequesting.tsx +0 -245
  353. package/src/screens/PushNotifications.tsx +0 -59
  354. package/src/screens/RenameContact.tsx +0 -155
  355. package/src/screens/RenameWallet.tsx +0 -26
  356. package/src/screens/Scan.tsx +0 -145
  357. package/src/screens/ScanHelp.tsx +0 -48
  358. package/src/screens/Settings.tsx +0 -415
  359. package/src/screens/Splash.tsx +0 -80
  360. package/src/screens/Terms.tsx +0 -127
  361. package/src/screens/ToggleBiometry.tsx +0 -153
  362. package/src/screens/TogglePushNotifications.tsx +0 -118
  363. package/src/screens/Tours.tsx +0 -93
  364. package/src/screens/UpdateAvailable.tsx +0 -119
  365. package/src/screens/WhatAreContacts.tsx +0 -71
  366. package/src/services/bifoldLogger.ts +0 -3
  367. package/src/services/keychain.ts +0 -184
  368. package/src/services/logger.ts +0 -89
  369. package/src/services/storage.ts +0 -136
  370. package/src/theme-builder.ts +0 -157
  371. package/src/theme.interface.ts +0 -580
  372. package/src/theme.ts +0 -1346
  373. package/src/types/attempt-lockout-config.ts +0 -8
  374. package/src/types/attestation.ts +0 -17
  375. package/src/types/chat.ts +0 -4
  376. package/src/types/config.ts +0 -64
  377. package/src/types/contact-details.ts +0 -5
  378. package/src/types/credential-list-footer.ts +0 -3
  379. package/src/types/credential-status.ts +0 -3
  380. package/src/types/credentials.ts +0 -7
  381. package/src/types/decline.ts +0 -5
  382. package/src/types/error.ts +0 -40
  383. package/src/types/fn.ts +0 -2
  384. package/src/types/genesis.ts +0 -35
  385. package/src/types/index.ts +0 -2
  386. package/src/types/metadata.ts +0 -16
  387. package/src/types/navigators.ts +0 -239
  388. package/src/types/notification.ts +0 -24
  389. package/src/types/permissions.ts +0 -2
  390. package/src/types/proof-items.ts +0 -32
  391. package/src/types/react-i18next.d.ts +0 -10
  392. package/src/types/remove.ts +0 -8
  393. package/src/types/security.ts +0 -32
  394. package/src/types/settings.ts +0 -28
  395. package/src/types/state.ts +0 -97
  396. package/src/types/tour.ts +0 -20
  397. package/src/types/version-check.ts +0 -18
  398. package/src/utils/PINValidation.ts +0 -98
  399. package/src/utils/agent.ts +0 -128
  400. package/src/utils/anonCredsProofRequestMapper.ts +0 -205
  401. package/src/utils/contacts.ts +0 -59
  402. package/src/utils/cred-def.ts +0 -33
  403. package/src/utils/credential.ts +0 -37
  404. package/src/utils/crypto.ts +0 -12
  405. package/src/utils/fileCache.ts +0 -152
  406. package/src/utils/helpers.ts +0 -1292
  407. package/src/utils/ledger.ts +0 -212
  408. package/src/utils/luminance.ts +0 -40
  409. package/src/utils/mediatorhelpers.ts +0 -71
  410. package/src/utils/migration.ts +0 -40
  411. package/src/utils/network.tsx +0 -55
  412. package/src/utils/oca.ts +0 -173
  413. package/src/utils/parsers.tsx +0 -111
  414. package/src/utils/proofBundle.ts +0 -220
  415. package/src/utils/schema.ts +0 -28
  416. package/src/utils/testable.ts +0 -17
@@ -1,108 +0,0 @@
1
- import {
2
- BasicMessageRecord,
3
- CredentialExchangeRecord as CredentialRecord,
4
- CredentialState,
5
- MdocRecord,
6
- ProofExchangeRecord,
7
- ProofState,
8
- SdJwtVcRecord,
9
- W3cCredentialRecord,
10
- } from '@credo-ts/core'
11
- import { useBasicMessages, useCredentialByState, useProofByState } from '@credo-ts/react-hooks'
12
- import { ProofCustomMetadata, ProofMetadata } from '@bifold/verifier'
13
- import { useEffect, useState } from 'react'
14
-
15
- import {
16
- BasicMessageMetadata,
17
- CredentialMetadata,
18
- basicMessageCustomMetadata,
19
- credentialCustomMetadata,
20
- } from '../types/metadata'
21
- import { useOpenID } from '../modules/openid/hooks/openid'
22
- import { CustomNotification } from '../types/notification'
23
- import { OpenId4VPRequestRecord } from '../modules/openid/types'
24
-
25
- export type NotificationsInputProps = {
26
- openIDUri?: string
27
- openIDPresentationUri?: string
28
- }
29
-
30
- export type NotificationReturnType = Array<
31
- | BasicMessageRecord
32
- | CredentialRecord
33
- | ProofExchangeRecord
34
- | CustomNotification
35
- | SdJwtVcRecord
36
- | W3cCredentialRecord
37
- | MdocRecord
38
- | OpenId4VPRequestRecord
39
- >
40
-
41
- export const useNotifications = ({
42
- openIDUri,
43
- openIDPresentationUri,
44
- }: NotificationsInputProps): NotificationReturnType => {
45
- const [notifications, setNotifications] = useState<NotificationReturnType>([])
46
- const { records: basicMessages } = useBasicMessages()
47
- const offers = useCredentialByState(CredentialState.OfferReceived)
48
- const proofsRequested = useProofByState(ProofState.RequestReceived)
49
- const credsReceived = useCredentialByState(CredentialState.CredentialReceived)
50
- const credsDone = useCredentialByState(CredentialState.Done)
51
- const proofsDone = useProofByState([ProofState.Done, ProofState.PresentationReceived])
52
- const openIDCredRecieved = useOpenID({ openIDUri: openIDUri, openIDPresentationUri: openIDPresentationUri })
53
-
54
- useEffect(() => {
55
- // get all unseen messages
56
- const unseenMessages: BasicMessageRecord[] = basicMessages.filter((msg) => {
57
- const meta = msg.metadata.get(BasicMessageMetadata.customMetadata) as basicMessageCustomMetadata
58
- return !meta?.seen
59
- })
60
-
61
- // add one unseen message per contact to notifications
62
- const contactsWithUnseenMessages: string[] = []
63
- const messagesToShow: BasicMessageRecord[] = []
64
-
65
- unseenMessages.forEach((msg) => {
66
- if (!contactsWithUnseenMessages.includes(msg.connectionId)) {
67
- contactsWithUnseenMessages.push(msg.connectionId)
68
- messagesToShow.push(msg)
69
- }
70
- })
71
-
72
- const validProofsDone = proofsDone.filter((proof: ProofExchangeRecord) => {
73
- if (proof.isVerified === undefined) {
74
- return false
75
- }
76
-
77
- const metadata = proof.metadata.get(ProofMetadata.customMetadata) as ProofCustomMetadata
78
-
79
- return !metadata?.details_seen
80
- })
81
-
82
- const revoked = credsDone.filter((cred: CredentialRecord) => {
83
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
84
- const metadata = cred!.metadata.get(CredentialMetadata.customMetadata) as credentialCustomMetadata
85
- if (cred?.revocationNotification && metadata?.revoked_seen == undefined) {
86
- return cred
87
- }
88
- })
89
-
90
- const openIDCreds: Array<SdJwtVcRecord | W3cCredentialRecord | MdocRecord | OpenId4VPRequestRecord> = []
91
- if (openIDCredRecieved) {
92
- openIDCreds.push(openIDCredRecieved)
93
- }
94
-
95
- const notif = [
96
- ...messagesToShow,
97
- ...offers,
98
- ...proofsRequested,
99
- ...validProofsDone,
100
- ...revoked,
101
- ...openIDCreds,
102
- ].sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
103
-
104
- setNotifications(notif)
105
- }, [basicMessages, credsReceived, proofsDone, proofsRequested, offers, credsDone, openIDCredRecieved])
106
-
107
- return notifications
108
- }
package/src/hooks/oob.ts DELETED
@@ -1,17 +0,0 @@
1
- import { OutOfBandRecord } from '@credo-ts/core'
2
- import { useAgent } from '@credo-ts/react-hooks'
3
- import { useState } from 'react'
4
-
5
- export const useOutOfBandByReceivedInvitationId = (receivedInvitationId: string): OutOfBandRecord | undefined => {
6
- const { agent } = useAgent()
7
-
8
- const [oob, setOob] = useState<OutOfBandRecord | undefined>(undefined)
9
- if (!oob) {
10
- agent?.oob.findByReceivedInvitationId(receivedInvitationId).then((res) => {
11
- if (res) {
12
- setOob(res)
13
- }
14
- })
15
- }
16
- return oob
17
- }
@@ -1,40 +0,0 @@
1
- import { ProofRequestTemplate } from '@bifold/verifier'
2
- import { useEffect, useState } from 'react'
3
-
4
- import { TOKENS, useServices } from '../container-api'
5
- import { useStore } from '../contexts/store'
6
- import { applyTemplateMarkers, useRemoteProofBundleResolver } from '../utils/proofBundle'
7
-
8
- export const useTemplates = (): Array<ProofRequestTemplate> => {
9
- const [store] = useStore()
10
- const [proofRequestTemplates, setProofRequestTemplates] = useState<ProofRequestTemplate[]>([])
11
- const [{ proofTemplateBaseUrl }, logger] = useServices([TOKENS.CONFIG, TOKENS.UTIL_LOGGER])
12
- const resolver = useRemoteProofBundleResolver(proofTemplateBaseUrl, logger)
13
-
14
- useEffect(() => {
15
- resolver.resolve(store.preferences.acceptDevCredentials).then((templates) => {
16
- if (templates) {
17
- setProofRequestTemplates(applyTemplateMarkers(templates))
18
- }
19
- })
20
- }, [resolver, store.preferences.acceptDevCredentials])
21
-
22
- return proofRequestTemplates
23
- }
24
-
25
- export const useTemplate = (templateId: string): ProofRequestTemplate | undefined => {
26
- const [store] = useStore()
27
- const [proofRequestTemplate, setProofRequestTemplate] = useState<ProofRequestTemplate | undefined>(undefined)
28
- const [{ proofTemplateBaseUrl }] = useServices([TOKENS.CONFIG])
29
- const resolver = useRemoteProofBundleResolver(proofTemplateBaseUrl)
30
-
31
- useEffect(() => {
32
- resolver.resolveById(templateId, store.preferences.acceptDevCredentials).then((template) => {
33
- if (template) {
34
- setProofRequestTemplate(applyTemplateMarkers(template))
35
- }
36
- })
37
- }, [resolver, templateId, store.preferences.acceptDevCredentials])
38
-
39
- return proofRequestTemplate
40
- }
@@ -1,32 +0,0 @@
1
- import { ProofExchangeRecord } from '@credo-ts/core'
2
- import { useAgent, useCredentials, useProofById, useProofs } from '@credo-ts/react-hooks'
3
- import { useMemo } from 'react'
4
- import { useTranslation } from 'react-i18next'
5
-
6
- import { TOKENS, useServices } from '../container-api'
7
- import { retrieveCredentialsForProof } from '../utils/helpers'
8
-
9
- export const useProofsByConnectionId = (connectionId: string): ProofExchangeRecord[] => {
10
- const { records: proofs } = useProofs()
11
-
12
- return useMemo(
13
- () => proofs.filter((proof: ProofExchangeRecord) => proof.connectionId === connectionId),
14
- [proofs, connectionId]
15
- )
16
- }
17
-
18
- export const useAllCredentialsForProof = (proofId: string) => {
19
- const { t } = useTranslation()
20
- const { agent } = useAgent()
21
- const fullCredentials = useCredentials().records
22
- const proof = useProofById(proofId)
23
- const [groupByReferent] = useServices([TOKENS.GROUP_BY_REFERENT])
24
-
25
- return useMemo(() => {
26
- if (!proof || !agent) {
27
- return
28
- }
29
-
30
- return retrieveCredentialsForProof(agent, proof, fullCredentials, t, groupByReferent)
31
- }, [proof, agent, fullCredentials, t, groupByReferent])
32
- }
@@ -1,52 +0,0 @@
1
- import { useEffect } from 'react'
2
- import { Platform } from 'react-native'
3
- import ScreenGuardModule from 'react-native-screenguard'
4
-
5
- export const screenGuardOptions = {
6
- timeAfterResume: 500, // milliseconds
7
- backgroundColor: '#000000', // black
8
- }
9
-
10
- /**
11
- * Prevents screenshots when component is mounted. When unmounted, allows them again
12
- *
13
- * @param {boolean} [active=true] - If `false`, hook does nothing
14
- * @remarks
15
- * - If `active` param is `true`, it prevents screenshots when the
16
- * component is mounted
17
- * - On unmount, or when `active` is changed to false, it restores
18
- * the ability to take screenshots
19
- * - Should be used at the screen level only
20
- *
21
- * @example
22
- * ```tsx
23
- * import usePreventScreenCapture from './hooks/screen-capture';
24
- *
25
- * const MyScreen = () => {
26
- * usePreventScreenCapture();
27
- * return <View><Text>Secure Content</Text></View>;
28
- * };
29
- * ```
30
- *
31
- * @returns {void}
32
- */
33
- const usePreventScreenCapture = (active: boolean = true) => {
34
- useEffect(() => {
35
- if (!active) return
36
-
37
- if (Platform.OS === 'android') {
38
- // on Android, plain `register` will trigger AppState to
39
- // change momentarily, which can have side effects.
40
- // `registerWithoutEffect` prevents that
41
- ScreenGuardModule.registerWithoutEffect()
42
- } else {
43
- ScreenGuardModule.register(screenGuardOptions)
44
- }
45
-
46
- return () => {
47
- ScreenGuardModule.unregister()
48
- }
49
- }, [active])
50
- }
51
-
52
- export default usePreventScreenCapture
@@ -1,169 +0,0 @@
1
- import { Agent, HttpOutboundTransport, WsOutboundTransport } from '@credo-ts/core'
2
- import { IndyVdrPoolService } from '@credo-ts/indy-vdr/build/pool'
3
- import { agentDependencies } from '@credo-ts/react-native'
4
- import { GetCredentialDefinitionRequest, GetSchemaRequest } from '@hyperledger/indy-vdr-shared'
5
- import { useCallback, useRef, useState } from 'react'
6
- import { CachesDirectoryPath } from 'react-native-fs'
7
-
8
- import { TOKENS, useServices } from '../container-api'
9
- import { DispatchAction } from '../contexts/reducers/store'
10
- import { useStore } from '../contexts/store'
11
- import { WalletSecret } from '../types/security'
12
- import { createLinkSecretIfRequired, getAgentModules } from '../utils/agent'
13
- import { migrateToAskar } from '../utils/migration'
14
-
15
- export type AgentSetupReturnType = {
16
- agent: Agent | null
17
- initializeAgent: (walletSecret: WalletSecret) => Promise<void>
18
- shutdownAndClearAgentIfExists: () => Promise<void>
19
- }
20
-
21
- const useBifoldAgentSetup = (): AgentSetupReturnType => {
22
- const [agent, setAgent] = useState<Agent | null>(null)
23
- const agentInstanceRef = useRef<Agent | null>(null)
24
- const [store, dispatch] = useStore()
25
- const [cacheSchemas, cacheCredDefs, logger, indyLedgers] = useServices([
26
- TOKENS.CACHE_SCHEMAS,
27
- TOKENS.CACHE_CRED_DEFS,
28
- TOKENS.UTIL_LOGGER,
29
- TOKENS.UTIL_LEDGERS,
30
- ])
31
-
32
- const restartExistingAgent = useCallback(
33
- async (agent: Agent, walletSecret: WalletSecret): Promise<Agent | undefined> => {
34
- try {
35
- await agent.wallet.open({
36
- id: walletSecret.id,
37
- key: walletSecret.key,
38
- })
39
- await agent.initialize()
40
- } catch (error) {
41
- logger.warn(`Agent restart failed with error ${error}`)
42
- // if the existing agents wallet cannot be opened or initialize() fails it was
43
- // again not a clean shutdown and the agent should be replaced, not restarted
44
- return
45
- }
46
-
47
- return agent
48
- },
49
- [logger]
50
- )
51
-
52
- const createNewAgent = useCallback(
53
- async (walletSecret: WalletSecret, mediatorUrl: string): Promise<Agent> => {
54
- const newAgent = new Agent({
55
- config: {
56
- label: store.preferences.walletName || 'Aries Bifold',
57
- walletConfig: {
58
- id: walletSecret.id,
59
- key: walletSecret.key,
60
- },
61
- logger,
62
- autoUpdateStorageOnStartup: true,
63
- },
64
- dependencies: agentDependencies,
65
- modules: getAgentModules({
66
- indyNetworks: indyLedgers,
67
- mediatorInvitationUrl: mediatorUrl,
68
- txnCache: {
69
- capacity: 1000,
70
- expiryOffsetMs: 1000 * 60 * 60 * 24 * 7,
71
- path: CachesDirectoryPath + '/txn-cache',
72
- },
73
- }),
74
- })
75
- const wsTransport = new WsOutboundTransport()
76
- const httpTransport = new HttpOutboundTransport()
77
-
78
- newAgent.registerOutboundTransport(wsTransport)
79
- newAgent.registerOutboundTransport(httpTransport)
80
-
81
- return newAgent
82
- },
83
- [store.preferences.walletName, logger, indyLedgers]
84
- )
85
-
86
- const migrateIfRequired = useCallback(
87
- async (newAgent: Agent, walletSecret: WalletSecret) => {
88
- // If we haven't migrated to Aries Askar yet, we need to do this before we initialize the agent.
89
- if (!store.migration.didMigrateToAskar) {
90
- await migrateToAskar(walletSecret.id, walletSecret.key, newAgent)
91
- // Store that we migrated to askar.
92
- dispatch({
93
- type: DispatchAction.DID_MIGRATE_TO_ASKAR,
94
- })
95
- }
96
- },
97
- [store.migration.didMigrateToAskar, dispatch]
98
- )
99
-
100
- const warmUpCache = useCallback(
101
- async (newAgent: Agent) => {
102
- const poolService = newAgent.dependencyManager.resolve(IndyVdrPoolService)
103
- cacheCredDefs.forEach(async ({ did, id }) => {
104
- const pool = await poolService.getPoolForDid(newAgent.context, did)
105
- const credDefRequest = new GetCredentialDefinitionRequest({ credentialDefinitionId: id })
106
- await pool.pool.submitRequest(credDefRequest)
107
- })
108
-
109
- cacheSchemas.forEach(async ({ did, id }) => {
110
- const pool = await poolService.getPoolForDid(newAgent.context, did)
111
- const schemaRequest = new GetSchemaRequest({ schemaId: id })
112
- await pool.pool.submitRequest(schemaRequest)
113
- })
114
- },
115
- [cacheCredDefs, cacheSchemas]
116
- )
117
-
118
- const initializeAgent = useCallback(
119
- async (walletSecret: WalletSecret): Promise<void> => {
120
- const mediatorUrl = store.preferences.selectedMediator
121
- logger.info('Checking for existing agent...')
122
- if (agentInstanceRef.current) {
123
- const restartedAgent = await restartExistingAgent(agentInstanceRef.current, walletSecret)
124
- if (restartedAgent) {
125
- logger.info('Successfully restarted existing agent...')
126
- agentInstanceRef.current = restartedAgent
127
- setAgent(restartedAgent)
128
- return
129
- }
130
- }
131
-
132
- logger.info('Creating new agent...')
133
- const newAgent = await createNewAgent(walletSecret, mediatorUrl)
134
-
135
- logger.info('Migrating if required...')
136
- await migrateIfRequired(newAgent, walletSecret)
137
-
138
- logger.info('Initializing agent...')
139
- await newAgent.initialize()
140
-
141
- logger.info('Creating link secret if required...')
142
- await createLinkSecretIfRequired(newAgent)
143
-
144
- logger.info('Warming up cache...')
145
- await warmUpCache(newAgent)
146
-
147
- logger.info('Agent initialized successfully')
148
- agentInstanceRef.current = newAgent
149
- setAgent(newAgent)
150
- },
151
- [logger, restartExistingAgent, createNewAgent, migrateIfRequired, warmUpCache, store.preferences.selectedMediator]
152
- )
153
-
154
- const shutdownAndClearAgentIfExists = useCallback(async () => {
155
- if (agent) {
156
- try {
157
- await agent.shutdown()
158
- } catch (error) {
159
- logger.error(`Error shutting down agent with shutdownAndClearAgentIfExists: ${error}`)
160
- } finally {
161
- setAgent(null)
162
- }
163
- }
164
- }, [agent, logger])
165
-
166
- return { agent, initializeAgent, shutdownAndClearAgentIfExists }
167
- }
168
-
169
- export default useBifoldAgentSetup
@@ -1,53 +0,0 @@
1
- import { Agent } from '@credo-ts/core'
2
- import { useState, useEffect, useMemo } from 'react'
3
- import { useNavigationState } from '@react-navigation/native'
4
- import { State } from '../types/state'
5
- import { OnboardingTask } from '../types/navigators'
6
- import { Config } from '../types/config'
7
-
8
- /**
9
- * Hook to manage onboarding workflow state
10
- * Tracks the onboarding tasks, their completion status.
11
- */
12
- export const useOnboardingState = (
13
- store: State,
14
- config: Config,
15
- termsVersion: number,
16
- agent: Agent | null,
17
- generateOnboardingWorkflowSteps: (
18
- store: State,
19
- config: Config,
20
- termsVersion: number,
21
- agent: Agent | null
22
- ) => OnboardingTask[]
23
- ): {
24
- onboardingState: OnboardingTask[]
25
- setOnboardingState: React.Dispatch<React.SetStateAction<OnboardingTask[]>>
26
- activeScreen: string | undefined
27
- currentRoute: any
28
- isComplete: boolean
29
- } => {
30
- const [onboardingState, setOnboardingState] = useState<OnboardingTask[]>([])
31
- const currentRoute = useNavigationState((state) => state?.routes[state?.index])
32
-
33
- const activeScreen = useMemo(() => {
34
- return onboardingState.find((task) => !task.completed)?.name
35
- }, [onboardingState])
36
-
37
- useEffect(() => {
38
- if (!store.stateLoaded) {
39
- return
40
- }
41
-
42
- const onboardingTasks = generateOnboardingWorkflowSteps(store, config, termsVersion, agent)
43
- setOnboardingState(onboardingTasks)
44
- }, [store, config, termsVersion, agent, generateOnboardingWorkflowSteps])
45
-
46
- return {
47
- onboardingState,
48
- setOnboardingState,
49
- activeScreen,
50
- currentRoute,
51
- isComplete: !activeScreen,
52
- }
53
- }
@@ -1,98 +0,0 @@
1
- import { useCallback, useEffect, useState } from 'react'
2
- import { useTranslation } from 'react-i18next'
3
-
4
- import { InlineErrorType, InlineMessageProps } from '../components/inputs/InlineErrorText'
5
- import { TOKENS, useServices } from '../container-api'
6
- import { createPINValidations, PINValidationsType } from '../utils/PINValidation'
7
-
8
- interface ModalState {
9
- visible: boolean
10
- title: string
11
- message: string
12
- onModalDismiss?: () => void
13
- }
14
-
15
- const initialModalState: ModalState = {
16
- visible: false,
17
- title: '',
18
- message: '',
19
- }
20
-
21
- export const usePINValidation = (PIN: string, PINTwo: string) => {
22
- const { t } = useTranslation()
23
- const [{ PINSecurity }, inlineMessages] = useServices([TOKENS.CONFIG, TOKENS.INLINE_ERRORS])
24
- const [inlineMessageField1, setInlineMessageField1] = useState<InlineMessageProps>()
25
- const [inlineMessageField2, setInlineMessageField2] = useState<InlineMessageProps>()
26
- const [modalState, setModalState] = useState<ModalState>(initialModalState)
27
-
28
- const clearModal = useCallback(() => {
29
- setModalState(initialModalState)
30
- }, [])
31
-
32
- const [PINValidations, setPINValidations] = useState<PINValidationsType[]>(
33
- createPINValidations(PIN, PINSecurity.rules)
34
- )
35
-
36
- useEffect(() => {
37
- setInlineMessageField1(undefined)
38
- setInlineMessageField2(undefined)
39
- setPINValidations(createPINValidations(PIN, PINSecurity.rules))
40
- }, [PIN, PINTwo, PINSecurity.rules])
41
-
42
- const attentionMessage = useCallback(
43
- (title: string, message: string, pinOne: boolean) => {
44
- if (inlineMessages.enabled) {
45
- const config = {
46
- message: message,
47
- inlineType: InlineErrorType.error,
48
- config: inlineMessages,
49
- }
50
- if (pinOne) {
51
- setInlineMessageField1(config)
52
- } else {
53
- setInlineMessageField2(config)
54
- }
55
- } else {
56
- setModalState({
57
- visible: true,
58
- title: title,
59
- message: message,
60
- onModalDismiss: clearModal,
61
- })
62
- }
63
- },
64
- [inlineMessages, clearModal]
65
- )
66
-
67
- const validatePINEntry = useCallback(
68
- (PINOne: string, PINTwo: string): boolean => {
69
- for (const validation of PINValidations) {
70
- if (validation.isInvalid) {
71
- attentionMessage(
72
- t('PINCreate.InvalidPIN'),
73
- t(`PINCreate.Message.${validation.errorName}`, validation?.errorTextAddition),
74
- true
75
- )
76
- return false
77
- }
78
- }
79
- if (PINOne !== PINTwo) {
80
- attentionMessage(t('PINCreate.InvalidPIN'), t('PINCreate.PINsDoNotMatch'), false)
81
- return false
82
- }
83
- return true
84
- },
85
- [PINValidations, t, attentionMessage]
86
- )
87
-
88
- return {
89
- PINValidations,
90
- validatePINEntry,
91
- inlineMessageField1,
92
- inlineMessageField2,
93
- modalState,
94
- setModalState,
95
- clearModal,
96
- PINSecurity,
97
- }
98
- }