@bifold/core 2.4.6 → 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 (401) 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/MobileVerifierLoading.js +4 -3
  8. package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
  9. package/lib/commonjs/screens/PINCreate.js +3 -10
  10. package/lib/commonjs/screens/PINCreate.js.map +1 -1
  11. package/lib/commonjs/screens/WhatAreContacts.js +3 -2
  12. package/lib/commonjs/screens/WhatAreContacts.js.map +1 -1
  13. package/lib/module/contexts/reducers/store.js +3 -2
  14. package/lib/module/contexts/reducers/store.js.map +1 -1
  15. package/lib/module/index.js +42 -45
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/module/screens/AttemptLockout.js +28 -36
  18. package/lib/module/screens/AttemptLockout.js.map +1 -1
  19. package/lib/module/screens/MobileVerifierLoading.js +4 -3
  20. package/lib/module/screens/MobileVerifierLoading.js.map +1 -1
  21. package/lib/module/screens/PINCreate.js +3 -10
  22. package/lib/module/screens/PINCreate.js.map +1 -1
  23. package/lib/module/screens/WhatAreContacts.js +3 -2
  24. package/lib/module/screens/WhatAreContacts.js.map +1 -1
  25. package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
  26. package/lib/typescript/src/index.d.ts +57 -61
  27. package/lib/typescript/src/index.d.ts.map +1 -1
  28. package/lib/typescript/src/screens/AttemptLockout.d.ts.map +1 -1
  29. package/lib/typescript/src/screens/MobileVerifierLoading.d.ts.map +1 -1
  30. package/lib/typescript/src/screens/PINCreate.d.ts.map +1 -1
  31. package/lib/typescript/src/screens/WhatAreContacts.d.ts.map +1 -1
  32. package/package.json +3 -4
  33. package/src/App.tsx +0 -79
  34. package/src/animated-components.ts +0 -30
  35. package/src/assets/fonts/MaterialIcons.ttf +0 -0
  36. package/src/assets/icons/code.svg +0 -4
  37. package/src/assets/icons/large-arrow.svg +0 -5
  38. package/src/assets/icons/pencil.svg +0 -15
  39. package/src/assets/icons/trash.svg +0 -31
  40. package/src/assets/img/Artwork_1024x1024.png +0 -0
  41. package/src/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  42. package/src/assets/img/HistoryCardExpiredIcon.svg +0 -4
  43. package/src/assets/img/HistoryCardRevokedIcon.svg +0 -4
  44. package/src/assets/img/HistoryInformationSentIcon.svg +0 -4
  45. package/src/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  46. package/src/assets/img/IconChevronRight.svg +0 -5
  47. package/src/assets/img/activity-indicator-circle.svg +0 -90
  48. package/src/assets/img/app-lockout.svg +0 -1
  49. package/src/assets/img/biometrics.svg +0 -74
  50. package/src/assets/img/chat-loading.svg +0 -1
  51. package/src/assets/img/check-in-circle.svg +0 -18
  52. package/src/assets/img/connection-pending.svg +0 -112
  53. package/src/assets/img/contact-book.svg +0 -21
  54. package/src/assets/img/credential-card.svg +0 -18
  55. package/src/assets/img/credential-declined.svg +0 -28
  56. package/src/assets/img/credential-in-hand.svg +0 -48
  57. package/src/assets/img/credential-list.svg +0 -60
  58. package/src/assets/img/credential-pending.svg +0 -96
  59. package/src/assets/img/credential-success.svg +0 -48
  60. package/src/assets/img/delete-notification.svg +0 -1
  61. package/src/assets/img/empty-wallet.svg +0 -23
  62. package/src/assets/img/error-filled.svg +0 -12
  63. package/src/assets/img/exclamation-mark.svg +0 -17
  64. package/src/assets/img/home-center-img.svg +0 -71
  65. package/src/assets/img/icon-credential-offer-dark.svg +0 -7
  66. package/src/assets/img/icon-credential-offer-light.svg +0 -7
  67. package/src/assets/img/icon-info-recieved-dark.svg +0 -8
  68. package/src/assets/img/icon-info-recieved-light.svg +0 -8
  69. package/src/assets/img/icon-info-sent-dark.svg +0 -8
  70. package/src/assets/img/icon-info-sent-light.svg +0 -8
  71. package/src/assets/img/icon-proof-request-dark.svg +0 -11
  72. package/src/assets/img/icon-proof-request-light.svg +0 -11
  73. package/src/assets/img/information-received.svg +0 -1
  74. package/src/assets/img/logo-large.png +0 -0
  75. package/src/assets/img/logo-large@2x.png +0 -0
  76. package/src/assets/img/logo-large@3x.png +0 -0
  77. package/src/assets/img/logo.svg +0 -15
  78. package/src/assets/img/message-text-icon-outline.svg +0 -1
  79. package/src/assets/img/message-text-icon.svg +0 -1
  80. package/src/assets/img/no_information_shared.svg +0 -36
  81. package/src/assets/img/preface.svg +0 -15
  82. package/src/assets/img/proof-declined.svg +0 -66
  83. package/src/assets/img/proof-pending.svg +0 -61
  84. package/src/assets/img/proof-success.svg +0 -72
  85. package/src/assets/img/push-notifications.svg +0 -1
  86. package/src/assets/img/qrcode-scan-icon.svg +0 -1
  87. package/src/assets/img/scan-share.svg +0 -102
  88. package/src/assets/img/secure-check.svg +0 -4
  89. package/src/assets/img/secure-image.svg +0 -64
  90. package/src/assets/img/update-available.svg +0 -26
  91. package/src/assets/img/verifier-request-declined.svg +0 -34
  92. package/src/assets/img/wallet-back.svg +0 -20
  93. package/src/assets/img/wallet-front.svg +0 -32
  94. package/src/assets/img/wallet-icon-outline.svg +0 -1
  95. package/src/assets/img/wallet-icon.svg +0 -1
  96. package/src/assets/img/wallet.svg +0 -43
  97. package/src/assets/oca-bundles.json +0 -174
  98. package/src/components/animated/ButtonLoading.tsx +0 -32
  99. package/src/components/animated/ConnectionLoading.tsx +0 -53
  100. package/src/components/animated/CredentialAdded.tsx +0 -72
  101. package/src/components/animated/CredentialPending.tsx +0 -63
  102. package/src/components/animated/LoadingIndicator.tsx +0 -49
  103. package/src/components/animated/PresentationLoading.tsx +0 -52
  104. package/src/components/animated/RecordLoading.tsx +0 -75
  105. package/src/components/animated/SendingProof.tsx +0 -53
  106. package/src/components/animated/SentProof.tsx +0 -72
  107. package/src/components/buttons/Button-api.tsx +0 -46
  108. package/src/components/buttons/Button.tsx +0 -125
  109. package/src/components/buttons/HeaderHome.tsx +0 -25
  110. package/src/components/buttons/IconButton.tsx +0 -93
  111. package/src/components/buttons/InfoIcon.tsx +0 -35
  112. package/src/components/buttons/SettingsMenu.tsx +0 -26
  113. package/src/components/buttons/ToggleButton.tsx +0 -93
  114. package/src/components/buttons/index.ts +0 -4
  115. package/src/components/chat/ActionSlider.tsx +0 -104
  116. package/src/components/chat/ChatActions.tsx +0 -33
  117. package/src/components/chat/ChatBubble.tsx +0 -20
  118. package/src/components/chat/ChatEvent.tsx +0 -31
  119. package/src/components/chat/ChatMessage.tsx +0 -142
  120. package/src/components/chat/MessageInput.tsx +0 -46
  121. package/src/components/chat/index.ts +0 -4
  122. package/src/components/forms/WalletNameForm.tsx +0 -148
  123. package/src/components/index.ts +0 -4
  124. package/src/components/inputs/BiometryControl.tsx +0 -190
  125. package/src/components/inputs/BulletPoint.tsx +0 -32
  126. package/src/components/inputs/CheckBoxRow.tsx +0 -67
  127. package/src/components/inputs/InlineErrorText.tsx +0 -60
  128. package/src/components/inputs/LimitedTextInput.tsx +0 -71
  129. package/src/components/inputs/PINInput.tsx +0 -175
  130. package/src/components/inputs/SingleSelectBlock.tsx +0 -53
  131. package/src/components/listItems/ContactCredentialListItem.tsx +0 -79
  132. package/src/components/listItems/ContactListItem.tsx +0 -121
  133. package/src/components/listItems/NotificationListItem.tsx +0 -514
  134. package/src/components/misc/AvatarView.tsx +0 -33
  135. package/src/components/misc/CardWatermark.tsx +0 -52
  136. package/src/components/misc/ConnectionAlert.tsx +0 -123
  137. package/src/components/misc/ConnectionImage.tsx +0 -45
  138. package/src/components/misc/ContentGradient.tsx +0 -40
  139. package/src/components/misc/CredentialCard.tsx +0 -161
  140. package/src/components/misc/CredentialCard10.tsx +0 -329
  141. package/src/components/misc/CredentialCard11.tsx +0 -701
  142. package/src/components/misc/CredentialCard11ActionFooter.tsx +0 -55
  143. package/src/components/misc/CredentialCard11Issuer.tsx +0 -74
  144. package/src/components/misc/CredentialCard11Logo.tsx +0 -61
  145. package/src/components/misc/EmptyList.tsx +0 -27
  146. package/src/components/misc/EmptyListContacts.tsx +0 -55
  147. package/src/components/misc/ErrorBoundary.tsx +0 -200
  148. package/src/components/misc/FauxHeader.tsx +0 -75
  149. package/src/components/misc/InfoBox.tsx +0 -283
  150. package/src/components/misc/NoNewUpdates.tsx +0 -38
  151. package/src/components/misc/PINHeader.tsx +0 -25
  152. package/src/components/misc/PINValidationHelper.tsx +0 -48
  153. package/src/components/misc/Pagination.tsx +0 -114
  154. package/src/components/misc/QRRenderer.tsx +0 -53
  155. package/src/components/misc/QRScanner.tsx +0 -395
  156. package/src/components/misc/QRScannerTorch.tsx +0 -74
  157. package/src/components/misc/ScanCamera.tsx +0 -86
  158. package/src/components/misc/ScanTab.tsx +0 -45
  159. package/src/components/misc/SharedProofData.tsx +0 -98
  160. package/src/components/misc/UnorderedList.tsx +0 -28
  161. package/src/components/misc/VerifierCredentialCard.tsx +0 -378
  162. package/src/components/misc/index.ts +0 -2
  163. package/src/components/modals/AlertModal.tsx +0 -42
  164. package/src/components/modals/AppGuideModal.tsx +0 -142
  165. package/src/components/modals/CameraDisclosureModal.tsx +0 -126
  166. package/src/components/modals/CommonRemoveModal.tsx +0 -337
  167. package/src/components/modals/DeveloperModal.tsx +0 -32
  168. package/src/components/modals/DismissiblePopupModal.tsx +0 -169
  169. package/src/components/modals/ErrorModal.tsx +0 -107
  170. package/src/components/modals/ImageModal.tsx +0 -80
  171. package/src/components/modals/NetInfoModal.tsx +0 -35
  172. package/src/components/modals/PopupModal.tsx +0 -56
  173. package/src/components/modals/ProofCancelModal.tsx +0 -79
  174. package/src/components/modals/SafeAreaModal.tsx +0 -17
  175. package/src/components/record/Record.tsx +0 -100
  176. package/src/components/record/RecordBinaryField.tsx +0 -55
  177. package/src/components/record/RecordDateIntField.tsx +0 -63
  178. package/src/components/record/RecordField.tsx +0 -154
  179. package/src/components/record/RecordFooter.tsx +0 -17
  180. package/src/components/record/RecordHeader.tsx +0 -17
  181. package/src/components/record/RecordRemove.tsx +0 -66
  182. package/src/components/texts/HeaderTitle.tsx +0 -25
  183. package/src/components/texts/HighlightTextBox.tsx +0 -41
  184. package/src/components/texts/InfoTextBox.tsx +0 -129
  185. package/src/components/texts/Link.tsx +0 -41
  186. package/src/components/texts/Text.tsx +0 -21
  187. package/src/components/texts/ThemedText.tsx +0 -24
  188. package/src/components/toast/BaseToast.tsx +0 -128
  189. package/src/components/toast/ToastConfig.tsx +0 -21
  190. package/src/components/tour/AttachTourStep.tsx +0 -73
  191. package/src/components/tour/CredentialOfferTourSteps.tsx +0 -41
  192. package/src/components/tour/CredentialsTourSteps.tsx +0 -41
  193. package/src/components/tour/HomeTourSteps.tsx +0 -104
  194. package/src/components/tour/ProofRequestTourSteps.tsx +0 -41
  195. package/src/components/tour/SpotCutout.tsx +0 -65
  196. package/src/components/tour/TourBox.tsx +0 -255
  197. package/src/components/tour/TourOverlay.tsx +0 -134
  198. package/src/components/views/Banner.tsx +0 -181
  199. package/src/components/views/CredentialCardLogo.tsx +0 -77
  200. package/src/components/views/CredentialDetailPrimaryHeader.tsx +0 -107
  201. package/src/components/views/CredentialDetailSecondaryHeader.tsx +0 -60
  202. package/src/components/views/HeaderWithBanner.tsx +0 -17
  203. package/src/components/views/HomeFooterView.tsx +0 -110
  204. package/src/components/views/HomeHeaderView.tsx +0 -12
  205. package/src/components/views/KeyboardView.tsx +0 -41
  206. package/src/components/views/LoadingPlaceholder.tsx +0 -168
  207. package/src/components/views/LoadingView.tsx +0 -29
  208. package/src/components/views/ProgressBar.tsx +0 -53
  209. package/src/components/views/PushNotificationsContent.tsx +0 -51
  210. package/src/components/views/PushNotificationsDisabledContent.tsx +0 -47
  211. package/src/configs/ledgers/indy/index.ts +0 -8
  212. package/src/configs/ledgers/indy/ledgers.json +0 -51
  213. package/src/constants.ts +0 -107
  214. package/src/container-api.ts +0 -247
  215. package/src/container-impl.ts +0 -243
  216. package/src/contexts/activity.tsx +0 -145
  217. package/src/contexts/animated-components.ts +0 -9
  218. package/src/contexts/auth.tsx +0 -240
  219. package/src/contexts/index.ts +0 -3
  220. package/src/contexts/navigation.tsx +0 -19
  221. package/src/contexts/network.tsx +0 -125
  222. package/src/contexts/reducers/index.ts +0 -3
  223. package/src/contexts/reducers/store.ts +0 -754
  224. package/src/contexts/store.tsx +0 -103
  225. package/src/contexts/theme.tsx +0 -51
  226. package/src/contexts/tour/tour-context.tsx +0 -160
  227. package/src/contexts/tour/tour-provider.tsx +0 -160
  228. package/src/hooks/bundle-resolver.ts +0 -95
  229. package/src/hooks/chat-messages.tsx +0 -263
  230. package/src/hooks/connections.ts +0 -37
  231. package/src/hooks/credential-card-styles.ts +0 -144
  232. package/src/hooks/credentials.ts +0 -11
  233. package/src/hooks/deep-links.ts +0 -49
  234. package/src/hooks/developer-mode.ts +0 -25
  235. package/src/hooks/lockout.ts +0 -77
  236. package/src/hooks/notifications.ts +0 -108
  237. package/src/hooks/oob.ts +0 -17
  238. package/src/hooks/proof-request-templates.ts +0 -40
  239. package/src/hooks/proofs.ts +0 -32
  240. package/src/hooks/screen-capture.ts +0 -52
  241. package/src/hooks/useBifoldAgentSetup.ts +0 -169
  242. package/src/hooks/useOnboardingState.ts +0 -53
  243. package/src/hooks/usePINValidation.ts +0 -98
  244. package/src/index.ts +0 -239
  245. package/src/layout/ScreenLayout.tsx +0 -53
  246. package/src/localization/en/en.json +0 -951
  247. package/src/localization/en/index.ts +0 -3
  248. package/src/localization/fr/fr.json +0 -933
  249. package/src/localization/fr/index.ts +0 -3
  250. package/src/localization/index.ts +0 -66
  251. package/src/localization/pt-br/index.ts +0 -3
  252. package/src/localization/pt-br/pt-br.json +0 -911
  253. package/src/modules/history/context/historyManager.tsx +0 -247
  254. package/src/modules/history/index.ts +0 -2
  255. package/src/modules/history/navigation/HistoryStack.tsx +0 -29
  256. package/src/modules/history/services/queue.service.tsx +0 -31
  257. package/src/modules/history/types/index.ts +0 -92
  258. package/src/modules/history/ui/HistoryPage.tsx +0 -133
  259. package/src/modules/history/ui/HistorySettings.tsx +0 -183
  260. package/src/modules/history/ui/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  261. package/src/modules/history/ui/assets/img/HistoryCardExpiredIcon.svg +0 -4
  262. package/src/modules/history/ui/assets/img/HistoryCardRevokedIcon.svg +0 -4
  263. package/src/modules/history/ui/assets/img/HistoryInformationSentIcon.svg +0 -4
  264. package/src/modules/history/ui/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  265. package/src/modules/history/ui/assets/img/IconChevronRight.svg +0 -3
  266. package/src/modules/history/ui/components/BulletPoint.tsx +0 -49
  267. package/src/modules/history/ui/components/HistoryListItem.tsx +0 -251
  268. package/src/modules/history/ui/components/HistoryMenu.tsx +0 -25
  269. package/src/modules/history/ui/components/SingleSelectBlock.tsx +0 -72
  270. package/src/modules/openid/components/CredentialRowCard.tsx +0 -64
  271. package/src/modules/openid/components/OpenIDCredentialCard.tsx +0 -276
  272. package/src/modules/openid/context/OpenIDCredentialRecordProvider.tsx +0 -296
  273. package/src/modules/openid/display.tsx +0 -467
  274. package/src/modules/openid/displayProof.tsx +0 -86
  275. package/src/modules/openid/hooks/openid.tsx +0 -111
  276. package/src/modules/openid/metadata.tsx +0 -59
  277. package/src/modules/openid/offerResolve.tsx +0 -281
  278. package/src/modules/openid/resolverProof.tsx +0 -286
  279. package/src/modules/openid/screens/OpenIDCredentialDetails.tsx +0 -214
  280. package/src/modules/openid/screens/OpenIDCredentialOffer.tsx +0 -192
  281. package/src/modules/openid/screens/OpenIDProofChangeCredential.tsx +0 -133
  282. package/src/modules/openid/screens/OpenIDProofPresentation.tsx +0 -423
  283. package/src/modules/openid/types.tsx +0 -111
  284. package/src/modules/openid/utils/utils.tsx +0 -119
  285. package/src/navigators/ConnectStack.tsx +0 -68
  286. package/src/navigators/ContactStack.tsx +0 -91
  287. package/src/navigators/CredentialStack.tsx +0 -48
  288. package/src/navigators/DeliveryStack.tsx +0 -76
  289. package/src/navigators/HomeStack.tsx +0 -37
  290. package/src/navigators/MainStack.tsx +0 -146
  291. package/src/navigators/NotificationStack.tsx +0 -56
  292. package/src/navigators/OnboardingScreens.ts +0 -142
  293. package/src/navigators/OnboardingStack.tsx +0 -205
  294. package/src/navigators/ProofRequestStack.tsx +0 -113
  295. package/src/navigators/RootStack.tsx +0 -71
  296. package/src/navigators/SettingStack.tsx +0 -174
  297. package/src/navigators/TabStack.tsx +0 -304
  298. package/src/navigators/defaultLayoutOptions.tsx +0 -17
  299. package/src/navigators/defaultStackOptions.tsx +0 -102
  300. package/src/navigators/index.ts +0 -27
  301. package/src/onboarding.ts +0 -90
  302. package/src/screens/AttemptLockout.tsx +0 -153
  303. package/src/screens/AutoLock.tsx +0 -140
  304. package/src/screens/Biometry.tsx +0 -54
  305. package/src/screens/Chat.tsx +0 -141
  306. package/src/screens/ConfigureMediator.tsx +0 -160
  307. package/src/screens/Connection.tsx +0 -394
  308. package/src/screens/ContactDetails.tsx +0 -350
  309. package/src/screens/CredentialDetails.tsx +0 -473
  310. package/src/screens/CredentialOffer.tsx +0 -334
  311. package/src/screens/CredentialOfferAccept.tsx +0 -189
  312. package/src/screens/DataRetention.tsx +0 -91
  313. package/src/screens/Developer.tsx +0 -289
  314. package/src/screens/Home.tsx +0 -173
  315. package/src/screens/JSONDetails.tsx +0 -104
  316. package/src/screens/Language.tsx +0 -97
  317. package/src/screens/ListContacts.tsx +0 -112
  318. package/src/screens/ListCredentials.tsx +0 -135
  319. package/src/screens/ListProofRequests.tsx +0 -148
  320. package/src/screens/MobileVerifierLoading.tsx +0 -106
  321. package/src/screens/NameWallet.tsx +0 -9
  322. package/src/screens/Onboarding.tsx +0 -162
  323. package/src/screens/OnboardingPages.tsx +0 -160
  324. package/src/screens/PINChange.tsx +0 -249
  325. package/src/screens/PINCreate.tsx +0 -185
  326. package/src/screens/PINEnter.tsx +0 -432
  327. package/src/screens/PINExplainer.tsx +0 -85
  328. package/src/screens/PINVerify.tsx +0 -195
  329. package/src/screens/PasteUrl.tsx +0 -140
  330. package/src/screens/Preface.tsx +0 -78
  331. package/src/screens/ProofChangeCredential.tsx +0 -179
  332. package/src/screens/ProofDetails.tsx +0 -348
  333. package/src/screens/ProofRequest.tsx +0 -999
  334. package/src/screens/ProofRequestAccept.tsx +0 -133
  335. package/src/screens/ProofRequestDetails.tsx +0 -270
  336. package/src/screens/ProofRequestUsageHistory.tsx +0 -152
  337. package/src/screens/ProofRequesting.tsx +0 -245
  338. package/src/screens/PushNotifications.tsx +0 -59
  339. package/src/screens/RenameContact.tsx +0 -155
  340. package/src/screens/RenameWallet.tsx +0 -26
  341. package/src/screens/Scan.tsx +0 -145
  342. package/src/screens/ScanHelp.tsx +0 -48
  343. package/src/screens/Settings.tsx +0 -415
  344. package/src/screens/Splash.tsx +0 -80
  345. package/src/screens/Terms.tsx +0 -127
  346. package/src/screens/ToggleBiometry.tsx +0 -153
  347. package/src/screens/TogglePushNotifications.tsx +0 -118
  348. package/src/screens/Tours.tsx +0 -93
  349. package/src/screens/UpdateAvailable.tsx +0 -119
  350. package/src/screens/WhatAreContacts.tsx +0 -71
  351. package/src/services/bifoldLogger.ts +0 -3
  352. package/src/services/keychain.ts +0 -184
  353. package/src/services/logger.ts +0 -89
  354. package/src/services/storage.ts +0 -136
  355. package/src/theme-builder.ts +0 -157
  356. package/src/theme.interface.ts +0 -580
  357. package/src/theme.ts +0 -1346
  358. package/src/types/attempt-lockout-config.ts +0 -8
  359. package/src/types/attestation.ts +0 -17
  360. package/src/types/chat.ts +0 -4
  361. package/src/types/config.ts +0 -64
  362. package/src/types/contact-details.ts +0 -5
  363. package/src/types/credential-list-footer.ts +0 -3
  364. package/src/types/credential-status.ts +0 -3
  365. package/src/types/credentials.ts +0 -7
  366. package/src/types/decline.ts +0 -5
  367. package/src/types/error.ts +0 -40
  368. package/src/types/fn.ts +0 -2
  369. package/src/types/genesis.ts +0 -35
  370. package/src/types/index.ts +0 -2
  371. package/src/types/metadata.ts +0 -16
  372. package/src/types/navigators.ts +0 -239
  373. package/src/types/notification.ts +0 -24
  374. package/src/types/permissions.ts +0 -2
  375. package/src/types/proof-items.ts +0 -32
  376. package/src/types/react-i18next.d.ts +0 -10
  377. package/src/types/remove.ts +0 -8
  378. package/src/types/security.ts +0 -32
  379. package/src/types/settings.ts +0 -28
  380. package/src/types/state.ts +0 -97
  381. package/src/types/tour.ts +0 -20
  382. package/src/types/version-check.ts +0 -18
  383. package/src/utils/PINValidation.ts +0 -98
  384. package/src/utils/agent.ts +0 -128
  385. package/src/utils/anonCredsProofRequestMapper.ts +0 -205
  386. package/src/utils/contacts.ts +0 -59
  387. package/src/utils/cred-def.ts +0 -33
  388. package/src/utils/credential.ts +0 -37
  389. package/src/utils/crypto.ts +0 -12
  390. package/src/utils/fileCache.ts +0 -152
  391. package/src/utils/helpers.ts +0 -1292
  392. package/src/utils/ledger.ts +0 -212
  393. package/src/utils/luminance.ts +0 -40
  394. package/src/utils/mediatorhelpers.ts +0 -71
  395. package/src/utils/migration.ts +0 -40
  396. package/src/utils/network.tsx +0 -55
  397. package/src/utils/oca.ts +0 -173
  398. package/src/utils/parsers.tsx +0 -111
  399. package/src/utils/proofBundle.ts +0 -220
  400. package/src/utils/schema.ts +0 -28
  401. package/src/utils/testable.ts +0 -17
@@ -1,473 +0,0 @@
1
- import type { StackScreenProps } from '@react-navigation/stack'
2
-
3
- import { CredentialExchangeRecord } from '@credo-ts/core'
4
- import { useAgent } from '@credo-ts/react-hooks'
5
- import { BrandingOverlay } from '@bifold/oca'
6
- import { Attribute, BrandingOverlayType, CredentialOverlay } from '@bifold/oca/build/legacy'
7
- import React, { useCallback, useEffect, useState } from 'react'
8
- import { useTranslation } from 'react-i18next'
9
- import { DeviceEventEmitter, StyleSheet, TouchableOpacity, useWindowDimensions, View } from 'react-native'
10
- import { SafeAreaView } from 'react-native-safe-area-context'
11
- import Toast from 'react-native-toast-message'
12
- import { useStore } from '../contexts/store'
13
-
14
- import CredentialCard from '../components/misc/CredentialCard'
15
- import InfoBox, { InfoBoxType } from '../components/misc/InfoBox'
16
- import CommonRemoveModal from '../components/modals/CommonRemoveModal'
17
- import Record from '../components/record/Record'
18
- import RecordRemove from '../components/record/RecordRemove'
19
- import { ToastType } from '../components/toast/BaseToast'
20
- import { EventTypes } from '../constants'
21
- import { TOKENS, useServices } from '../container-api'
22
- import { useTheme } from '../contexts/theme'
23
- import { BifoldError } from '../types/error'
24
- import { CredentialMetadata, credentialCustomMetadata } from '../types/metadata'
25
- import { ContactStackParams, NotificationStackParams, RootStackParams, Screens, Stacks } from '../types/navigators'
26
- import { ModalUsage } from '../types/remove'
27
- import { credentialTextColor, getCredentialIdentifiers, isValidAnonCredsCredential } from '../utils/credential'
28
- import { formatTime, useCredentialConnectionLabel } from '../utils/helpers'
29
- import { buildFieldsFromAnonCredsCredential } from '../utils/oca'
30
- import { testIdWithKey } from '../utils/testable'
31
- import { HistoryCardType, HistoryRecord } from '../modules/history/types'
32
- import { parseCredDefFromId } from '../utils/cred-def'
33
- import CredentialCardLogo from '../components/views/CredentialCardLogo'
34
- import CredentialDetailPrimaryHeader from '../components/views/CredentialDetailPrimaryHeader'
35
- import CredentialDetailSecondaryHeader from '../components/views/CredentialDetailSecondaryHeader'
36
- import { ThemedText } from '../components/texts/ThemedText'
37
- import CardWatermark from '../components/misc/CardWatermark'
38
-
39
- type CredentialDetailsProps = StackScreenProps<
40
- RootStackParams & ContactStackParams & NotificationStackParams,
41
- Screens.CredentialDetails
42
- >
43
-
44
- const paddingHorizontal = 24
45
- const paddingVertical = 16
46
-
47
- const CredentialDetails: React.FC<CredentialDetailsProps> = ({ navigation, route }) => {
48
- if (!route?.params) {
49
- throw new Error('CredentialDetails route params were not set properly')
50
- }
51
-
52
- const { credentialId } = route.params
53
- const { width, height } = useWindowDimensions()
54
- const [credential, setCredential] = useState<CredentialExchangeRecord | undefined>(undefined)
55
- const { agent } = useAgent()
56
- const { t, i18n } = useTranslation()
57
- const { ColorPalette, Assets } = useTheme()
58
- const [bundleResolver, logger, historyManagerCurried, historyEnabled, historyEventsLogger] = useServices([
59
- TOKENS.UTIL_OCA_RESOLVER,
60
- TOKENS.UTIL_LOGGER,
61
- TOKENS.FN_LOAD_HISTORY,
62
- TOKENS.HISTORY_ENABLED,
63
- TOKENS.HISTORY_EVENTS_LOGGER,
64
- ])
65
- const [isRevoked, setIsRevoked] = useState<boolean>(false)
66
- const [revocationDate, setRevocationDate] = useState<string>('')
67
- const [preciseRevocationDate, setPreciseRevocationDate] = useState<string>('')
68
- const [isRemoveModalDisplayed, setIsRemoveModalDisplayed] = useState<boolean>(false)
69
- const [isRevokedMessageHidden, setIsRevokedMessageHidden] = useState<boolean>(
70
- (credential?.metadata.get(CredentialMetadata.customMetadata) as credentialCustomMetadata)
71
- ?.revoked_detail_dismissed ?? false
72
- )
73
- const [store] = useStore()
74
-
75
- useEffect(() => {
76
- setIsRevokedMessageHidden(
77
- (credential?.metadata.get(CredentialMetadata.customMetadata) as credentialCustomMetadata)
78
- ?.revoked_detail_dismissed ?? false
79
- )
80
- }, [credential?.metadata])
81
-
82
- useEffect(() => {
83
- // fetch credential for ID
84
- const fetchCredential = async () => {
85
- try {
86
- const credentialExchangeRecord = await agent?.credentials.getById(credentialId)
87
- setCredential(credentialExchangeRecord)
88
- } catch (error) {
89
- // credential not found for id, display an error
90
- DeviceEventEmitter.emit(
91
- EventTypes.ERROR_ADDED,
92
- new BifoldError(t('Error.Title1033'), t('Error.Message1033'), t('CredentialDetails.CredentialNotFound'), 1033)
93
- )
94
- }
95
- }
96
- fetchCredential()
97
- }, [credentialId, agent, t])
98
-
99
- const [overlay, setOverlay] = useState<CredentialOverlay<BrandingOverlay>>({
100
- bundle: undefined,
101
- presentationFields: [],
102
- metaOverlay: undefined,
103
- brandingOverlay: undefined,
104
- })
105
- const credentialConnectionLabel = useCredentialConnectionLabel(credential)
106
- const isBranding10 = bundleResolver.getBrandingOverlayType() === BrandingOverlayType.Branding10
107
- const isBranding11 = bundleResolver.getBrandingOverlayType() === BrandingOverlayType.Branding11
108
-
109
- const containerBackgroundColor =
110
- overlay.brandingOverlay?.secondaryBackgroundColor && overlay.brandingOverlay.secondaryBackgroundColor !== ''
111
- ? overlay.brandingOverlay.secondaryBackgroundColor
112
- : overlay.brandingOverlay?.primaryBackgroundColor
113
-
114
- const styles = StyleSheet.create({
115
- container: {
116
- backgroundColor: isBranding10 ? overlay.brandingOverlay?.primaryBackgroundColor : containerBackgroundColor,
117
- display: 'flex',
118
- },
119
- })
120
-
121
- const icon = {
122
- color: credentialTextColor(ColorPalette, containerBackgroundColor),
123
- width: 48,
124
- height: 48,
125
- }
126
-
127
- const navigateToContactDetails = () => {
128
- if (credential?.connectionId) {
129
- navigation.navigate(Stacks.ContactStack, {
130
- screen: Screens.ContactDetails,
131
- params: { connectionId: credential.connectionId },
132
- })
133
- }
134
- }
135
-
136
- const callViewJSONDetails = useCallback(() => {
137
- navigation.navigate(Stacks.ContactStack, {
138
- screen: Screens.JSONDetails,
139
- params: { jsonBlob: credential },
140
- })
141
- }, [navigation, credential])
142
-
143
- useEffect(() => {
144
- if (!agent) {
145
- DeviceEventEmitter.emit(
146
- EventTypes.ERROR_ADDED,
147
- new BifoldError(t('Error.Title1033'), t('Error.Message1033'), t('CredentialDetails.CredentialNotFound'), 1033)
148
- )
149
- }
150
- }, [agent, t])
151
-
152
- useEffect(() => {
153
- if (!(credential && isValidAnonCredsCredential(credential))) {
154
- return
155
- }
156
-
157
- credential.revocationNotification == undefined ? setIsRevoked(false) : setIsRevoked(true)
158
- if (credential?.revocationNotification?.revocationDate) {
159
- const date = new Date(credential.revocationNotification.revocationDate)
160
- setRevocationDate(formatTime(date, { shortMonth: true }))
161
- setPreciseRevocationDate(formatTime(date, { includeHour: true }))
162
- }
163
-
164
- const params = {
165
- identifiers: getCredentialIdentifiers(credential),
166
- meta: {
167
- alias: credentialConnectionLabel,
168
- credConnectionId: credential.connectionId,
169
- },
170
- attributes: buildFieldsFromAnonCredsCredential(credential),
171
- language: i18n.language,
172
- }
173
-
174
- bundleResolver.resolveAllBundles(params).then((bundle) => {
175
- setOverlay((o) => ({
176
- ...o,
177
- ...(bundle as CredentialOverlay<BrandingOverlay>),
178
- presentationFields: bundle.presentationFields?.filter((field) => (field as Attribute).value),
179
- }))
180
- })
181
- }, [credential, credentialConnectionLabel, bundleResolver, i18n.language])
182
-
183
- useEffect(() => {
184
- if (credential?.revocationNotification) {
185
- const meta = credential.metadata.get(CredentialMetadata.customMetadata)
186
- credential.metadata.set(CredentialMetadata.customMetadata, { ...meta, revoked_seen: true })
187
- agent?.credentials.update(credential)
188
- }
189
- }, [credential, agent])
190
-
191
- const callOnRemove = useCallback(() => {
192
- setIsRemoveModalDisplayed(true)
193
- }, [])
194
-
195
- const logHistoryRecord = useCallback(() => {
196
- try {
197
- if (!(agent && historyEnabled)) {
198
- logger.trace(
199
- `[${CredentialDetails.name}]:[logHistoryRecord] Skipping history log, either history function disabled or agent undefined!`
200
- )
201
- return
202
- }
203
-
204
- if (!credential) {
205
- logger.error(`[${CredentialDetails.name}]:[logHistoryRecord] Cannot save history, credential undefined!`)
206
- return
207
- }
208
- const historyManager = historyManagerCurried(agent)
209
-
210
- const ids = getCredentialIdentifiers(credential)
211
- const name = overlay.metaOverlay?.name ?? parseCredDefFromId(ids.credentialDefinitionId, ids.schemaId)
212
-
213
- /** Save history record for credential removed */
214
- const recordData: HistoryRecord = {
215
- type: HistoryCardType.CardRemoved,
216
- message: name,
217
- createdAt: new Date(),
218
- correspondenceId: credentialId,
219
- correspondenceName: credentialConnectionLabel,
220
- }
221
-
222
- historyManager.saveHistory(recordData)
223
- } catch (err: unknown) {
224
- logger.error(`[${CredentialDetails.name}]:[logHistoryRecord] Error saving history: ${err}`)
225
- }
226
- }, [
227
- agent,
228
- historyEnabled,
229
- logger,
230
- historyManagerCurried,
231
- credential,
232
- credentialConnectionLabel,
233
- credentialId,
234
- overlay,
235
- ])
236
-
237
- const callSubmitRemove = useCallback(async () => {
238
- try {
239
- if (!(agent && credential)) {
240
- return
241
- }
242
-
243
- if (historyEventsLogger.logAttestationRemoved) {
244
- logHistoryRecord()
245
- }
246
-
247
- await agent.credentials.deleteById(credential.id)
248
-
249
- navigation.pop()
250
-
251
- // FIXME: This delay is a hack so that the toast doesn't appear until the modal is dismissed
252
- await new Promise((resolve) => setTimeout(resolve, 1000))
253
-
254
- Toast.show({
255
- type: ToastType.Success,
256
- text1: t('CredentialDetails.CredentialRemoved'),
257
- })
258
- } catch (err: unknown) {
259
- const error = new BifoldError(t('Error.Title1032'), t('Error.Message1032'), (err as Error)?.message ?? err, 1032)
260
- DeviceEventEmitter.emit(EventTypes.ERROR_ADDED, error)
261
- }
262
- }, [agent, credential, navigation, t, historyEventsLogger.logAttestationRemoved, logHistoryRecord])
263
-
264
- const callCancelRemove = useCallback(() => {
265
- setIsRemoveModalDisplayed(false)
266
- }, [])
267
-
268
- const callDismissRevokedMessage = useCallback(() => {
269
- setIsRevokedMessageHidden(true)
270
- if (credential) {
271
- const meta = credential.metadata.get(CredentialMetadata.customMetadata)
272
- credential.metadata.set(CredentialMetadata.customMetadata, { ...meta, revoked_detail_dismissed: true })
273
- agent?.credentials.update(credential)
274
- }
275
- }, [credential, agent])
276
-
277
- const CredentialRevocationMessage: React.FC<{ credential: CredentialExchangeRecord }> = ({ credential }) => {
278
- return (
279
- <InfoBox
280
- notificationType={InfoBoxType.Error}
281
- title={t('CredentialDetails.CredentialRevokedMessageTitle') + ' ' + revocationDate}
282
- description={
283
- credential?.revocationNotification?.comment
284
- ? credential.revocationNotification.comment
285
- : t('CredentialDetails.CredentialRevokedMessageBody')
286
- }
287
- onCallToActionLabel={t('Global.Dismiss')}
288
- onCallToActionPressed={callDismissRevokedMessage}
289
- />
290
- )
291
- }
292
-
293
- const getCredentialTop = () => {
294
- if (isBranding10) {
295
- return (
296
- <>
297
- <CredentialDetailSecondaryHeader overlay={overlay} />
298
- <CredentialCardLogo overlay={overlay} />
299
- <CredentialDetailPrimaryHeader overlay={overlay} />
300
- </>
301
- )
302
- }
303
- return (
304
- <View>
305
- <CredentialDetailSecondaryHeader
306
- overlay={overlay}
307
- brandingOverlayType={bundleResolver.getBrandingOverlayType()}
308
- />
309
- <TouchableOpacity
310
- accessibilityLabel={`${overlay.metaOverlay?.watermark ? overlay.metaOverlay.watermark + '. ' : ''}${t(
311
- 'Credentials.IssuedBy'
312
- )} ${overlay.metaOverlay?.issuer}`}
313
- accessibilityRole="button"
314
- accessibilityHint={t('CredentialDetails.NavigateToIssuerDetailsHint')}
315
- onPress={navigateToContactDetails}
316
- style={{ padding: 16, overflow: 'hidden' }}
317
- >
318
- {overlay.metaOverlay?.watermark && (
319
- <CardWatermark width={width} height={height} watermark={overlay.metaOverlay?.watermark} />
320
- )}
321
- <View style={{ flexDirection: 'row', alignItems: 'center', gap: 8 }}>
322
- <View style={{ flexDirection: 'row', alignItems: 'center', gap: 8, flex: 2 }}>
323
- <CredentialCardLogo overlay={overlay} brandingOverlayType={bundleResolver.getBrandingOverlayType()} />
324
- <ThemedText
325
- style={{
326
- color: credentialTextColor(ColorPalette, containerBackgroundColor),
327
- flexWrap: 'wrap',
328
- maxWidth: '90%',
329
- }}
330
- >
331
- {overlay.metaOverlay?.issuer}
332
- </ThemedText>
333
- </View>
334
- <Assets.svg.iconChevronRight {...icon} />
335
- </View>
336
- </TouchableOpacity>
337
- <View style={{ backgroundColor: ColorPalette.brand.secondaryBackground }}>
338
- <CredentialDetailPrimaryHeader
339
- overlay={overlay}
340
- brandingOverlayType={bundleResolver.getBrandingOverlayType()}
341
- credential={credential}
342
- />
343
- </View>
344
- </View>
345
- )
346
- }
347
-
348
- const header = () => {
349
- return bundleResolver.getBrandingOverlayType() === BrandingOverlayType.Branding01 ? (
350
- <View>
351
- {isRevoked && !isRevokedMessageHidden ? (
352
- <View style={{ padding: paddingVertical, paddingBottom: 0 }}>
353
- {credential && <CredentialRevocationMessage credential={credential} />}
354
- </View>
355
- ) : null}
356
- {credential && <CredentialCard credential={credential} style={{ margin: 16 }} />}
357
- </View>
358
- ) : (
359
- <View style={styles.container}>
360
- {getCredentialTop()}
361
- {isRevoked && !isRevokedMessageHidden ? (
362
- <View
363
- style={{
364
- padding: paddingVertical,
365
- backgroundColor: ColorPalette.brand.secondaryBackground,
366
- ...(isBranding11 && { paddingTop: 0 }),
367
- }}
368
- >
369
- {credential && <CredentialRevocationMessage credential={credential} />}
370
- </View>
371
- ) : null}
372
- </View>
373
- )
374
- }
375
-
376
- const footer = () => {
377
- return (
378
- <View style={{ marginBottom: 50 }}>
379
- {credentialConnectionLabel && isBranding10 ? (
380
- <View
381
- style={{
382
- backgroundColor: ColorPalette.brand.secondaryBackground,
383
- marginTop: paddingVertical,
384
- paddingHorizontal,
385
- paddingVertical,
386
- }}
387
- >
388
- <ThemedText testID={testIdWithKey('IssuerName')}>
389
- <ThemedText variant="title" style={isRevoked && { color: ColorPalette.grayscale.mediumGrey }}>
390
- {t('CredentialDetails.IssuedBy') + ' '}
391
- </ThemedText>
392
- <ThemedText style={isRevoked && { color: ColorPalette.grayscale.mediumGrey }}>
393
- {credentialConnectionLabel}
394
- </ThemedText>
395
- </ThemedText>
396
- {/* issued date if dev mode */}
397
- {store?.preferences.developerModeEnabled && credential?.createdAt ? (
398
- <ThemedText testID={testIdWithKey('IssuedDate')}>
399
- <ThemedText variant="title" style={isRevoked && { color: ColorPalette.grayscale.mediumGrey }}>
400
- {t('CredentialDetails.Issued') + ': '}
401
- </ThemedText>
402
- <ThemedText style={isRevoked && { color: ColorPalette.grayscale.mediumGrey }}>
403
- {formatTime(credential.createdAt, { format: 'YYYY-MM-DD HH:mm:ss [UTC]' })}
404
- </ThemedText>
405
- </ThemedText>
406
- ) : null}
407
- </View>
408
- ) : null}
409
- {store?.preferences.developerModeEnabled && (
410
- <View
411
- style={{
412
- backgroundColor: ColorPalette.brand.secondaryBackground,
413
- marginTop: paddingVertical,
414
- paddingHorizontal,
415
- paddingVertical,
416
- }}
417
- >
418
- <TouchableOpacity
419
- onPress={callViewJSONDetails}
420
- accessibilityLabel={t('Global.ViewJSON')}
421
- accessibilityRole={'button'}
422
- testID={testIdWithKey('JSONDetails')}
423
- style={{ flexDirection: 'row', gap: 8 }}
424
- >
425
- <Assets.svg.iconCode width={20} height={20} color={ColorPalette.brand.secondary} />
426
- <ThemedText>{t('Global.ViewJSON')}</ThemedText>
427
- </TouchableOpacity>
428
- </View>
429
- )}
430
- {isRevoked ? (
431
- <View
432
- style={{
433
- backgroundColor: ColorPalette.notification.error,
434
- marginTop: paddingVertical,
435
- paddingHorizontal,
436
- paddingVertical,
437
- }}
438
- >
439
- <ThemedText testID={testIdWithKey('RevokedDate')}>
440
- <ThemedText variant="title" style={{ color: ColorPalette.notification.errorText }}>
441
- {t('CredentialDetails.Revoked') + ': '}
442
- </ThemedText>
443
- <ThemedText style={{ color: ColorPalette.notification.errorText }}>{preciseRevocationDate}</ThemedText>
444
- </ThemedText>
445
- <ThemedText
446
- style={{ color: ColorPalette.notification.errorText, marginTop: paddingVertical }}
447
- testID={testIdWithKey('RevocationMessage')}
448
- >
449
- {credential?.revocationNotification?.comment
450
- ? credential.revocationNotification.comment
451
- : t('CredentialDetails.CredentialRevokedMessageBody')}
452
- </ThemedText>
453
- </View>
454
- ) : null}
455
- <RecordRemove onRemove={callOnRemove} />
456
- </View>
457
- )
458
- }
459
-
460
- return (
461
- <SafeAreaView style={{ flexGrow: 1 }} edges={['left', 'right']}>
462
- <Record fields={overlay.presentationFields || []} hideFieldValues header={header} footer={footer} />
463
- <CommonRemoveModal
464
- usage={ModalUsage.CredentialRemove}
465
- visible={isRemoveModalDisplayed}
466
- onSubmit={callSubmitRemove}
467
- onCancel={callCancelRemove}
468
- />
469
- </SafeAreaView>
470
- )
471
- }
472
-
473
- export default CredentialDetails