@bifold/core 2.4.6 → 2.6.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 (461) hide show
  1. package/lib/commonjs/components/listItems/ContactCredentialListItem.js +9 -8
  2. package/lib/commonjs/components/listItems/ContactCredentialListItem.js.map +1 -1
  3. package/lib/commonjs/components/misc/CredentialCard11Logo.js +8 -7
  4. package/lib/commonjs/components/misc/CredentialCard11Logo.js.map +1 -1
  5. package/lib/commonjs/components/misc/PINHeader.js +5 -3
  6. package/lib/commonjs/components/misc/PINHeader.js.map +1 -1
  7. package/lib/commonjs/contexts/network.js +10 -9
  8. package/lib/commonjs/contexts/network.js.map +1 -1
  9. package/lib/commonjs/contexts/reducers/store.js +3 -2
  10. package/lib/commonjs/contexts/reducers/store.js.map +1 -1
  11. package/lib/commonjs/contexts/theme.js +7 -6
  12. package/lib/commonjs/contexts/theme.js.map +1 -1
  13. package/lib/commonjs/index.js +127 -104
  14. package/lib/commonjs/index.js.map +1 -1
  15. package/lib/commonjs/modules/openid/components/CredentialRowCard.js +9 -7
  16. package/lib/commonjs/modules/openid/components/CredentialRowCard.js.map +1 -1
  17. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js +9 -8
  18. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  19. package/lib/commonjs/screens/AttemptLockout.js +27 -35
  20. package/lib/commonjs/screens/AttemptLockout.js.map +1 -1
  21. package/lib/commonjs/screens/ConfigureMediator.js +22 -21
  22. package/lib/commonjs/screens/ConfigureMediator.js.map +1 -1
  23. package/lib/commonjs/screens/JSONDetails.js +16 -15
  24. package/lib/commonjs/screens/JSONDetails.js.map +1 -1
  25. package/lib/commonjs/screens/MobileVerifierLoading.js +4 -3
  26. package/lib/commonjs/screens/MobileVerifierLoading.js.map +1 -1
  27. package/lib/commonjs/screens/PINCreate.js +3 -10
  28. package/lib/commonjs/screens/PINCreate.js.map +1 -1
  29. package/lib/commonjs/screens/WhatAreContacts.js +3 -2
  30. package/lib/commonjs/screens/WhatAreContacts.js.map +1 -1
  31. package/lib/commonjs/services/logger.js +35 -27
  32. package/lib/commonjs/services/logger.js.map +1 -1
  33. package/lib/module/components/listItems/ContactCredentialListItem.js +3 -3
  34. package/lib/module/components/listItems/ContactCredentialListItem.js.map +1 -1
  35. package/lib/module/components/misc/CredentialCard11Logo.js +5 -4
  36. package/lib/module/components/misc/CredentialCard11Logo.js.map +1 -1
  37. package/lib/module/components/misc/PINHeader.js +2 -1
  38. package/lib/module/components/misc/PINHeader.js.map +1 -1
  39. package/lib/module/contexts/network.js +3 -3
  40. package/lib/module/contexts/network.js.map +1 -1
  41. package/lib/module/contexts/reducers/store.js +3 -2
  42. package/lib/module/contexts/reducers/store.js.map +1 -1
  43. package/lib/module/contexts/theme.js +2 -2
  44. package/lib/module/contexts/theme.js.map +1 -1
  45. package/lib/module/index.js +43 -45
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/modules/openid/components/CredentialRowCard.js +2 -1
  48. package/lib/module/modules/openid/components/CredentialRowCard.js.map +1 -1
  49. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js +5 -5
  50. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  51. package/lib/module/screens/AttemptLockout.js +28 -36
  52. package/lib/module/screens/AttemptLockout.js.map +1 -1
  53. package/lib/module/screens/ConfigureMediator.js +10 -10
  54. package/lib/module/screens/ConfigureMediator.js.map +1 -1
  55. package/lib/module/screens/JSONDetails.js +9 -8
  56. package/lib/module/screens/JSONDetails.js.map +1 -1
  57. package/lib/module/screens/MobileVerifierLoading.js +4 -3
  58. package/lib/module/screens/MobileVerifierLoading.js.map +1 -1
  59. package/lib/module/screens/PINCreate.js +3 -10
  60. package/lib/module/screens/PINCreate.js.map +1 -1
  61. package/lib/module/screens/WhatAreContacts.js +3 -2
  62. package/lib/module/screens/WhatAreContacts.js.map +1 -1
  63. package/lib/module/services/logger.js +37 -28
  64. package/lib/module/services/logger.js.map +1 -1
  65. package/lib/typescript/src/components/listItems/ContactCredentialListItem.d.ts +2 -1
  66. package/lib/typescript/src/components/listItems/ContactCredentialListItem.d.ts.map +1 -1
  67. package/lib/typescript/src/components/misc/CredentialCard11Logo.d.ts +1 -0
  68. package/lib/typescript/src/components/misc/CredentialCard11Logo.d.ts.map +1 -1
  69. package/lib/typescript/src/components/misc/PINHeader.d.ts +2 -1
  70. package/lib/typescript/src/components/misc/PINHeader.d.ts.map +1 -1
  71. package/lib/typescript/src/contexts/network.d.ts +3 -3
  72. package/lib/typescript/src/contexts/network.d.ts.map +1 -1
  73. package/lib/typescript/src/contexts/reducers/store.d.ts.map +1 -1
  74. package/lib/typescript/src/contexts/theme.d.ts +2 -1
  75. package/lib/typescript/src/contexts/theme.d.ts.map +1 -1
  76. package/lib/typescript/src/index.d.ts +58 -61
  77. package/lib/typescript/src/index.d.ts.map +1 -1
  78. package/lib/typescript/src/modules/openid/components/CredentialRowCard.d.ts +2 -1
  79. package/lib/typescript/src/modules/openid/components/CredentialRowCard.d.ts.map +1 -1
  80. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts +3 -3
  81. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts.map +1 -1
  82. package/lib/typescript/src/screens/AttemptLockout.d.ts.map +1 -1
  83. package/lib/typescript/src/screens/ConfigureMediator.d.ts +2 -1
  84. package/lib/typescript/src/screens/ConfigureMediator.d.ts.map +1 -1
  85. package/lib/typescript/src/screens/JSONDetails.d.ts +2 -1
  86. package/lib/typescript/src/screens/JSONDetails.d.ts.map +1 -1
  87. package/lib/typescript/src/screens/MobileVerifierLoading.d.ts.map +1 -1
  88. package/lib/typescript/src/screens/PINCreate.d.ts.map +1 -1
  89. package/lib/typescript/src/screens/WhatAreContacts.d.ts.map +1 -1
  90. package/lib/typescript/src/services/logger.d.ts +7 -8
  91. package/lib/typescript/src/services/logger.d.ts.map +1 -1
  92. package/package.json +5 -6
  93. package/src/App.tsx +0 -79
  94. package/src/animated-components.ts +0 -30
  95. package/src/assets/fonts/MaterialIcons.ttf +0 -0
  96. package/src/assets/icons/code.svg +0 -4
  97. package/src/assets/icons/large-arrow.svg +0 -5
  98. package/src/assets/icons/pencil.svg +0 -15
  99. package/src/assets/icons/trash.svg +0 -31
  100. package/src/assets/img/Artwork_1024x1024.png +0 -0
  101. package/src/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  102. package/src/assets/img/HistoryCardExpiredIcon.svg +0 -4
  103. package/src/assets/img/HistoryCardRevokedIcon.svg +0 -4
  104. package/src/assets/img/HistoryInformationSentIcon.svg +0 -4
  105. package/src/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  106. package/src/assets/img/IconChevronRight.svg +0 -5
  107. package/src/assets/img/activity-indicator-circle.svg +0 -90
  108. package/src/assets/img/app-lockout.svg +0 -1
  109. package/src/assets/img/biometrics.svg +0 -74
  110. package/src/assets/img/chat-loading.svg +0 -1
  111. package/src/assets/img/check-in-circle.svg +0 -18
  112. package/src/assets/img/connection-pending.svg +0 -112
  113. package/src/assets/img/contact-book.svg +0 -21
  114. package/src/assets/img/credential-card.svg +0 -18
  115. package/src/assets/img/credential-declined.svg +0 -28
  116. package/src/assets/img/credential-in-hand.svg +0 -48
  117. package/src/assets/img/credential-list.svg +0 -60
  118. package/src/assets/img/credential-pending.svg +0 -96
  119. package/src/assets/img/credential-success.svg +0 -48
  120. package/src/assets/img/delete-notification.svg +0 -1
  121. package/src/assets/img/empty-wallet.svg +0 -23
  122. package/src/assets/img/error-filled.svg +0 -12
  123. package/src/assets/img/exclamation-mark.svg +0 -17
  124. package/src/assets/img/home-center-img.svg +0 -71
  125. package/src/assets/img/icon-credential-offer-dark.svg +0 -7
  126. package/src/assets/img/icon-credential-offer-light.svg +0 -7
  127. package/src/assets/img/icon-info-recieved-dark.svg +0 -8
  128. package/src/assets/img/icon-info-recieved-light.svg +0 -8
  129. package/src/assets/img/icon-info-sent-dark.svg +0 -8
  130. package/src/assets/img/icon-info-sent-light.svg +0 -8
  131. package/src/assets/img/icon-proof-request-dark.svg +0 -11
  132. package/src/assets/img/icon-proof-request-light.svg +0 -11
  133. package/src/assets/img/information-received.svg +0 -1
  134. package/src/assets/img/logo-large.png +0 -0
  135. package/src/assets/img/logo-large@2x.png +0 -0
  136. package/src/assets/img/logo-large@3x.png +0 -0
  137. package/src/assets/img/logo.svg +0 -15
  138. package/src/assets/img/message-text-icon-outline.svg +0 -1
  139. package/src/assets/img/message-text-icon.svg +0 -1
  140. package/src/assets/img/no_information_shared.svg +0 -36
  141. package/src/assets/img/preface.svg +0 -15
  142. package/src/assets/img/proof-declined.svg +0 -66
  143. package/src/assets/img/proof-pending.svg +0 -61
  144. package/src/assets/img/proof-success.svg +0 -72
  145. package/src/assets/img/push-notifications.svg +0 -1
  146. package/src/assets/img/qrcode-scan-icon.svg +0 -1
  147. package/src/assets/img/scan-share.svg +0 -102
  148. package/src/assets/img/secure-check.svg +0 -4
  149. package/src/assets/img/secure-image.svg +0 -64
  150. package/src/assets/img/update-available.svg +0 -26
  151. package/src/assets/img/verifier-request-declined.svg +0 -34
  152. package/src/assets/img/wallet-back.svg +0 -20
  153. package/src/assets/img/wallet-front.svg +0 -32
  154. package/src/assets/img/wallet-icon-outline.svg +0 -1
  155. package/src/assets/img/wallet-icon.svg +0 -1
  156. package/src/assets/img/wallet.svg +0 -43
  157. package/src/assets/oca-bundles.json +0 -174
  158. package/src/components/animated/ButtonLoading.tsx +0 -32
  159. package/src/components/animated/ConnectionLoading.tsx +0 -53
  160. package/src/components/animated/CredentialAdded.tsx +0 -72
  161. package/src/components/animated/CredentialPending.tsx +0 -63
  162. package/src/components/animated/LoadingIndicator.tsx +0 -49
  163. package/src/components/animated/PresentationLoading.tsx +0 -52
  164. package/src/components/animated/RecordLoading.tsx +0 -75
  165. package/src/components/animated/SendingProof.tsx +0 -53
  166. package/src/components/animated/SentProof.tsx +0 -72
  167. package/src/components/buttons/Button-api.tsx +0 -46
  168. package/src/components/buttons/Button.tsx +0 -125
  169. package/src/components/buttons/HeaderHome.tsx +0 -25
  170. package/src/components/buttons/IconButton.tsx +0 -93
  171. package/src/components/buttons/InfoIcon.tsx +0 -35
  172. package/src/components/buttons/SettingsMenu.tsx +0 -26
  173. package/src/components/buttons/ToggleButton.tsx +0 -93
  174. package/src/components/buttons/index.ts +0 -4
  175. package/src/components/chat/ActionSlider.tsx +0 -104
  176. package/src/components/chat/ChatActions.tsx +0 -33
  177. package/src/components/chat/ChatBubble.tsx +0 -20
  178. package/src/components/chat/ChatEvent.tsx +0 -31
  179. package/src/components/chat/ChatMessage.tsx +0 -142
  180. package/src/components/chat/MessageInput.tsx +0 -46
  181. package/src/components/chat/index.ts +0 -4
  182. package/src/components/forms/WalletNameForm.tsx +0 -148
  183. package/src/components/index.ts +0 -4
  184. package/src/components/inputs/BiometryControl.tsx +0 -190
  185. package/src/components/inputs/BulletPoint.tsx +0 -32
  186. package/src/components/inputs/CheckBoxRow.tsx +0 -67
  187. package/src/components/inputs/InlineErrorText.tsx +0 -60
  188. package/src/components/inputs/LimitedTextInput.tsx +0 -71
  189. package/src/components/inputs/PINInput.tsx +0 -175
  190. package/src/components/inputs/SingleSelectBlock.tsx +0 -53
  191. package/src/components/listItems/ContactCredentialListItem.tsx +0 -79
  192. package/src/components/listItems/ContactListItem.tsx +0 -121
  193. package/src/components/listItems/NotificationListItem.tsx +0 -514
  194. package/src/components/misc/AvatarView.tsx +0 -33
  195. package/src/components/misc/CardWatermark.tsx +0 -52
  196. package/src/components/misc/ConnectionAlert.tsx +0 -123
  197. package/src/components/misc/ConnectionImage.tsx +0 -45
  198. package/src/components/misc/ContentGradient.tsx +0 -40
  199. package/src/components/misc/CredentialCard.tsx +0 -161
  200. package/src/components/misc/CredentialCard10.tsx +0 -329
  201. package/src/components/misc/CredentialCard11.tsx +0 -701
  202. package/src/components/misc/CredentialCard11ActionFooter.tsx +0 -55
  203. package/src/components/misc/CredentialCard11Issuer.tsx +0 -74
  204. package/src/components/misc/CredentialCard11Logo.tsx +0 -61
  205. package/src/components/misc/EmptyList.tsx +0 -27
  206. package/src/components/misc/EmptyListContacts.tsx +0 -55
  207. package/src/components/misc/ErrorBoundary.tsx +0 -200
  208. package/src/components/misc/FauxHeader.tsx +0 -75
  209. package/src/components/misc/InfoBox.tsx +0 -283
  210. package/src/components/misc/NoNewUpdates.tsx +0 -38
  211. package/src/components/misc/PINHeader.tsx +0 -25
  212. package/src/components/misc/PINValidationHelper.tsx +0 -48
  213. package/src/components/misc/Pagination.tsx +0 -114
  214. package/src/components/misc/QRRenderer.tsx +0 -53
  215. package/src/components/misc/QRScanner.tsx +0 -395
  216. package/src/components/misc/QRScannerTorch.tsx +0 -74
  217. package/src/components/misc/ScanCamera.tsx +0 -86
  218. package/src/components/misc/ScanTab.tsx +0 -45
  219. package/src/components/misc/SharedProofData.tsx +0 -98
  220. package/src/components/misc/UnorderedList.tsx +0 -28
  221. package/src/components/misc/VerifierCredentialCard.tsx +0 -378
  222. package/src/components/misc/index.ts +0 -2
  223. package/src/components/modals/AlertModal.tsx +0 -42
  224. package/src/components/modals/AppGuideModal.tsx +0 -142
  225. package/src/components/modals/CameraDisclosureModal.tsx +0 -126
  226. package/src/components/modals/CommonRemoveModal.tsx +0 -337
  227. package/src/components/modals/DeveloperModal.tsx +0 -32
  228. package/src/components/modals/DismissiblePopupModal.tsx +0 -169
  229. package/src/components/modals/ErrorModal.tsx +0 -107
  230. package/src/components/modals/ImageModal.tsx +0 -80
  231. package/src/components/modals/NetInfoModal.tsx +0 -35
  232. package/src/components/modals/PopupModal.tsx +0 -56
  233. package/src/components/modals/ProofCancelModal.tsx +0 -79
  234. package/src/components/modals/SafeAreaModal.tsx +0 -17
  235. package/src/components/record/Record.tsx +0 -100
  236. package/src/components/record/RecordBinaryField.tsx +0 -55
  237. package/src/components/record/RecordDateIntField.tsx +0 -63
  238. package/src/components/record/RecordField.tsx +0 -154
  239. package/src/components/record/RecordFooter.tsx +0 -17
  240. package/src/components/record/RecordHeader.tsx +0 -17
  241. package/src/components/record/RecordRemove.tsx +0 -66
  242. package/src/components/texts/HeaderTitle.tsx +0 -25
  243. package/src/components/texts/HighlightTextBox.tsx +0 -41
  244. package/src/components/texts/InfoTextBox.tsx +0 -129
  245. package/src/components/texts/Link.tsx +0 -41
  246. package/src/components/texts/Text.tsx +0 -21
  247. package/src/components/texts/ThemedText.tsx +0 -24
  248. package/src/components/toast/BaseToast.tsx +0 -128
  249. package/src/components/toast/ToastConfig.tsx +0 -21
  250. package/src/components/tour/AttachTourStep.tsx +0 -73
  251. package/src/components/tour/CredentialOfferTourSteps.tsx +0 -41
  252. package/src/components/tour/CredentialsTourSteps.tsx +0 -41
  253. package/src/components/tour/HomeTourSteps.tsx +0 -104
  254. package/src/components/tour/ProofRequestTourSteps.tsx +0 -41
  255. package/src/components/tour/SpotCutout.tsx +0 -65
  256. package/src/components/tour/TourBox.tsx +0 -255
  257. package/src/components/tour/TourOverlay.tsx +0 -134
  258. package/src/components/views/Banner.tsx +0 -181
  259. package/src/components/views/CredentialCardLogo.tsx +0 -77
  260. package/src/components/views/CredentialDetailPrimaryHeader.tsx +0 -107
  261. package/src/components/views/CredentialDetailSecondaryHeader.tsx +0 -60
  262. package/src/components/views/HeaderWithBanner.tsx +0 -17
  263. package/src/components/views/HomeFooterView.tsx +0 -110
  264. package/src/components/views/HomeHeaderView.tsx +0 -12
  265. package/src/components/views/KeyboardView.tsx +0 -41
  266. package/src/components/views/LoadingPlaceholder.tsx +0 -168
  267. package/src/components/views/LoadingView.tsx +0 -29
  268. package/src/components/views/ProgressBar.tsx +0 -53
  269. package/src/components/views/PushNotificationsContent.tsx +0 -51
  270. package/src/components/views/PushNotificationsDisabledContent.tsx +0 -47
  271. package/src/configs/ledgers/indy/index.ts +0 -8
  272. package/src/configs/ledgers/indy/ledgers.json +0 -51
  273. package/src/constants.ts +0 -107
  274. package/src/container-api.ts +0 -247
  275. package/src/container-impl.ts +0 -243
  276. package/src/contexts/activity.tsx +0 -145
  277. package/src/contexts/animated-components.ts +0 -9
  278. package/src/contexts/auth.tsx +0 -240
  279. package/src/contexts/index.ts +0 -3
  280. package/src/contexts/navigation.tsx +0 -19
  281. package/src/contexts/network.tsx +0 -125
  282. package/src/contexts/reducers/index.ts +0 -3
  283. package/src/contexts/reducers/store.ts +0 -754
  284. package/src/contexts/store.tsx +0 -103
  285. package/src/contexts/theme.tsx +0 -51
  286. package/src/contexts/tour/tour-context.tsx +0 -160
  287. package/src/contexts/tour/tour-provider.tsx +0 -160
  288. package/src/hooks/bundle-resolver.ts +0 -95
  289. package/src/hooks/chat-messages.tsx +0 -263
  290. package/src/hooks/connections.ts +0 -37
  291. package/src/hooks/credential-card-styles.ts +0 -144
  292. package/src/hooks/credentials.ts +0 -11
  293. package/src/hooks/deep-links.ts +0 -49
  294. package/src/hooks/developer-mode.ts +0 -25
  295. package/src/hooks/lockout.ts +0 -77
  296. package/src/hooks/notifications.ts +0 -108
  297. package/src/hooks/oob.ts +0 -17
  298. package/src/hooks/proof-request-templates.ts +0 -40
  299. package/src/hooks/proofs.ts +0 -32
  300. package/src/hooks/screen-capture.ts +0 -52
  301. package/src/hooks/useBifoldAgentSetup.ts +0 -169
  302. package/src/hooks/useOnboardingState.ts +0 -53
  303. package/src/hooks/usePINValidation.ts +0 -98
  304. package/src/index.ts +0 -239
  305. package/src/layout/ScreenLayout.tsx +0 -53
  306. package/src/localization/en/en.json +0 -951
  307. package/src/localization/en/index.ts +0 -3
  308. package/src/localization/fr/fr.json +0 -933
  309. package/src/localization/fr/index.ts +0 -3
  310. package/src/localization/index.ts +0 -66
  311. package/src/localization/pt-br/index.ts +0 -3
  312. package/src/localization/pt-br/pt-br.json +0 -911
  313. package/src/modules/history/context/historyManager.tsx +0 -247
  314. package/src/modules/history/index.ts +0 -2
  315. package/src/modules/history/navigation/HistoryStack.tsx +0 -29
  316. package/src/modules/history/services/queue.service.tsx +0 -31
  317. package/src/modules/history/types/index.ts +0 -92
  318. package/src/modules/history/ui/HistoryPage.tsx +0 -133
  319. package/src/modules/history/ui/HistorySettings.tsx +0 -183
  320. package/src/modules/history/ui/assets/img/HistoryCardAcceptedIcon.svg +0 -4
  321. package/src/modules/history/ui/assets/img/HistoryCardExpiredIcon.svg +0 -4
  322. package/src/modules/history/ui/assets/img/HistoryCardRevokedIcon.svg +0 -4
  323. package/src/modules/history/ui/assets/img/HistoryInformationSentIcon.svg +0 -4
  324. package/src/modules/history/ui/assets/img/HistoryPinUpdatedIcon.svg +0 -4
  325. package/src/modules/history/ui/assets/img/IconChevronRight.svg +0 -3
  326. package/src/modules/history/ui/components/BulletPoint.tsx +0 -49
  327. package/src/modules/history/ui/components/HistoryListItem.tsx +0 -251
  328. package/src/modules/history/ui/components/HistoryMenu.tsx +0 -25
  329. package/src/modules/history/ui/components/SingleSelectBlock.tsx +0 -72
  330. package/src/modules/openid/components/CredentialRowCard.tsx +0 -64
  331. package/src/modules/openid/components/OpenIDCredentialCard.tsx +0 -276
  332. package/src/modules/openid/context/OpenIDCredentialRecordProvider.tsx +0 -296
  333. package/src/modules/openid/display.tsx +0 -467
  334. package/src/modules/openid/displayProof.tsx +0 -86
  335. package/src/modules/openid/hooks/openid.tsx +0 -111
  336. package/src/modules/openid/metadata.tsx +0 -59
  337. package/src/modules/openid/offerResolve.tsx +0 -281
  338. package/src/modules/openid/resolverProof.tsx +0 -286
  339. package/src/modules/openid/screens/OpenIDCredentialDetails.tsx +0 -214
  340. package/src/modules/openid/screens/OpenIDCredentialOffer.tsx +0 -192
  341. package/src/modules/openid/screens/OpenIDProofChangeCredential.tsx +0 -133
  342. package/src/modules/openid/screens/OpenIDProofPresentation.tsx +0 -423
  343. package/src/modules/openid/types.tsx +0 -111
  344. package/src/modules/openid/utils/utils.tsx +0 -119
  345. package/src/navigators/ConnectStack.tsx +0 -68
  346. package/src/navigators/ContactStack.tsx +0 -91
  347. package/src/navigators/CredentialStack.tsx +0 -48
  348. package/src/navigators/DeliveryStack.tsx +0 -76
  349. package/src/navigators/HomeStack.tsx +0 -37
  350. package/src/navigators/MainStack.tsx +0 -146
  351. package/src/navigators/NotificationStack.tsx +0 -56
  352. package/src/navigators/OnboardingScreens.ts +0 -142
  353. package/src/navigators/OnboardingStack.tsx +0 -205
  354. package/src/navigators/ProofRequestStack.tsx +0 -113
  355. package/src/navigators/RootStack.tsx +0 -71
  356. package/src/navigators/SettingStack.tsx +0 -174
  357. package/src/navigators/TabStack.tsx +0 -304
  358. package/src/navigators/defaultLayoutOptions.tsx +0 -17
  359. package/src/navigators/defaultStackOptions.tsx +0 -102
  360. package/src/navigators/index.ts +0 -27
  361. package/src/onboarding.ts +0 -90
  362. package/src/screens/AttemptLockout.tsx +0 -153
  363. package/src/screens/AutoLock.tsx +0 -140
  364. package/src/screens/Biometry.tsx +0 -54
  365. package/src/screens/Chat.tsx +0 -141
  366. package/src/screens/ConfigureMediator.tsx +0 -160
  367. package/src/screens/Connection.tsx +0 -394
  368. package/src/screens/ContactDetails.tsx +0 -350
  369. package/src/screens/CredentialDetails.tsx +0 -473
  370. package/src/screens/CredentialOffer.tsx +0 -334
  371. package/src/screens/CredentialOfferAccept.tsx +0 -189
  372. package/src/screens/DataRetention.tsx +0 -91
  373. package/src/screens/Developer.tsx +0 -289
  374. package/src/screens/Home.tsx +0 -173
  375. package/src/screens/JSONDetails.tsx +0 -104
  376. package/src/screens/Language.tsx +0 -97
  377. package/src/screens/ListContacts.tsx +0 -112
  378. package/src/screens/ListCredentials.tsx +0 -135
  379. package/src/screens/ListProofRequests.tsx +0 -148
  380. package/src/screens/MobileVerifierLoading.tsx +0 -106
  381. package/src/screens/NameWallet.tsx +0 -9
  382. package/src/screens/Onboarding.tsx +0 -162
  383. package/src/screens/OnboardingPages.tsx +0 -160
  384. package/src/screens/PINChange.tsx +0 -249
  385. package/src/screens/PINCreate.tsx +0 -185
  386. package/src/screens/PINEnter.tsx +0 -432
  387. package/src/screens/PINExplainer.tsx +0 -85
  388. package/src/screens/PINVerify.tsx +0 -195
  389. package/src/screens/PasteUrl.tsx +0 -140
  390. package/src/screens/Preface.tsx +0 -78
  391. package/src/screens/ProofChangeCredential.tsx +0 -179
  392. package/src/screens/ProofDetails.tsx +0 -348
  393. package/src/screens/ProofRequest.tsx +0 -999
  394. package/src/screens/ProofRequestAccept.tsx +0 -133
  395. package/src/screens/ProofRequestDetails.tsx +0 -270
  396. package/src/screens/ProofRequestUsageHistory.tsx +0 -152
  397. package/src/screens/ProofRequesting.tsx +0 -245
  398. package/src/screens/PushNotifications.tsx +0 -59
  399. package/src/screens/RenameContact.tsx +0 -155
  400. package/src/screens/RenameWallet.tsx +0 -26
  401. package/src/screens/Scan.tsx +0 -145
  402. package/src/screens/ScanHelp.tsx +0 -48
  403. package/src/screens/Settings.tsx +0 -415
  404. package/src/screens/Splash.tsx +0 -80
  405. package/src/screens/Terms.tsx +0 -127
  406. package/src/screens/ToggleBiometry.tsx +0 -153
  407. package/src/screens/TogglePushNotifications.tsx +0 -118
  408. package/src/screens/Tours.tsx +0 -93
  409. package/src/screens/UpdateAvailable.tsx +0 -119
  410. package/src/screens/WhatAreContacts.tsx +0 -71
  411. package/src/services/bifoldLogger.ts +0 -3
  412. package/src/services/keychain.ts +0 -184
  413. package/src/services/logger.ts +0 -89
  414. package/src/services/storage.ts +0 -136
  415. package/src/theme-builder.ts +0 -157
  416. package/src/theme.interface.ts +0 -580
  417. package/src/theme.ts +0 -1346
  418. package/src/types/attempt-lockout-config.ts +0 -8
  419. package/src/types/attestation.ts +0 -17
  420. package/src/types/chat.ts +0 -4
  421. package/src/types/config.ts +0 -64
  422. package/src/types/contact-details.ts +0 -5
  423. package/src/types/credential-list-footer.ts +0 -3
  424. package/src/types/credential-status.ts +0 -3
  425. package/src/types/credentials.ts +0 -7
  426. package/src/types/decline.ts +0 -5
  427. package/src/types/error.ts +0 -40
  428. package/src/types/fn.ts +0 -2
  429. package/src/types/genesis.ts +0 -35
  430. package/src/types/index.ts +0 -2
  431. package/src/types/metadata.ts +0 -16
  432. package/src/types/navigators.ts +0 -239
  433. package/src/types/notification.ts +0 -24
  434. package/src/types/permissions.ts +0 -2
  435. package/src/types/proof-items.ts +0 -32
  436. package/src/types/react-i18next.d.ts +0 -10
  437. package/src/types/remove.ts +0 -8
  438. package/src/types/security.ts +0 -32
  439. package/src/types/settings.ts +0 -28
  440. package/src/types/state.ts +0 -97
  441. package/src/types/tour.ts +0 -20
  442. package/src/types/version-check.ts +0 -18
  443. package/src/utils/PINValidation.ts +0 -98
  444. package/src/utils/agent.ts +0 -128
  445. package/src/utils/anonCredsProofRequestMapper.ts +0 -205
  446. package/src/utils/contacts.ts +0 -59
  447. package/src/utils/cred-def.ts +0 -33
  448. package/src/utils/credential.ts +0 -37
  449. package/src/utils/crypto.ts +0 -12
  450. package/src/utils/fileCache.ts +0 -152
  451. package/src/utils/helpers.ts +0 -1292
  452. package/src/utils/ledger.ts +0 -212
  453. package/src/utils/luminance.ts +0 -40
  454. package/src/utils/mediatorhelpers.ts +0 -71
  455. package/src/utils/migration.ts +0 -40
  456. package/src/utils/network.tsx +0 -55
  457. package/src/utils/oca.ts +0 -173
  458. package/src/utils/parsers.tsx +0 -111
  459. package/src/utils/proofBundle.ts +0 -220
  460. package/src/utils/schema.ts +0 -28
  461. package/src/utils/testable.ts +0 -17
@@ -1,423 +0,0 @@
1
- import { useCallback, useEffect, useMemo, useState } from 'react'
2
- import { DeviceEventEmitter } from 'react-native'
3
- import { useAgent } from '@credo-ts/react-hooks'
4
- import { useTranslation } from 'react-i18next'
5
- import { StackScreenProps } from '@react-navigation/stack'
6
-
7
- import { DeliveryStackParams, Screens, TabStacks } from '../../../types/navigators'
8
- import { ScrollView, StyleSheet, Text, View } from 'react-native'
9
- import {
10
- formatDifPexCredentialsForRequest,
11
- FormattedSelectedCredentialEntry,
12
- FormattedSubmissionEntry,
13
- } from '../displayProof'
14
- import { testIdWithKey } from '../../../utils/testable'
15
- import CommonRemoveModal from '../../../components/modals/CommonRemoveModal'
16
- import { ModalUsage } from '../../../types/remove'
17
- import Button, { ButtonType } from '../../../components/buttons/Button'
18
- import { useTheme } from '../../../contexts/theme'
19
- import { BifoldError } from '../../../types/error'
20
- import { EventTypes } from '../../../constants'
21
- import { shareProof } from '../resolverProof'
22
- import ProofRequestAccept from '../../../screens/ProofRequestAccept'
23
- import { useOpenIDCredentials } from '../context/OpenIDCredentialRecordProvider'
24
- import { MdocRecord, SdJwtVcRecord, W3cCredentialRecord } from '@credo-ts/core'
25
- import { CredentialCard } from '../../../components/misc'
26
- import { getCredentialForDisplay } from '../display'
27
- import { buildFieldsFromW3cCredsCredential } from '../../../utils/oca'
28
- import { Attribute } from '@bifold/oca/build/legacy'
29
- import ScreenLayout from '../../../layout/ScreenLayout'
30
- import { isSdJwtProofRequest, isW3CProofRequest } from '../utils/utils'
31
-
32
- type OpenIDProofPresentationProps = StackScreenProps<DeliveryStackParams, Screens.OpenIDProofPresentation>
33
-
34
- type SatisfiedCredentialsFormat = {
35
- [inputDescriptorId: string]: {
36
- id: string
37
- claimFormat: string
38
- }[]
39
- }
40
-
41
- type SelectedCredentialsFormat = {
42
- [inputDescriptorId: string]: {
43
- id: string
44
- claimFormat: string
45
- }
46
- }
47
-
48
- const OpenIDProofPresentation: React.FC<OpenIDProofPresentationProps> = ({
49
- navigation,
50
- route: {
51
- params: { credential },
52
- },
53
- }: OpenIDProofPresentationProps) => {
54
- const [declineModalVisible, setDeclineModalVisible] = useState(false)
55
- const [buttonsVisible, setButtonsVisible] = useState(true)
56
- const [acceptModalVisible, setAcceptModalVisible] = useState(false)
57
- const [credentialsRequested, setCredentialsRequested] = useState<
58
- Array<W3cCredentialRecord | SdJwtVcRecord | MdocRecord>
59
- >([])
60
- const [satistfiedCredentialsSubmission, setSatistfiedCredentialsSubmission] = useState<SatisfiedCredentialsFormat>()
61
- const [selectedCredentialsSubmission, setSelectedCredentialsSubmission] = useState<SelectedCredentialsFormat>()
62
-
63
- const { getW3CCredentialById, getSdJwtCredentialById } = useOpenIDCredentials()
64
-
65
- const { ColorPalette, ListItems, TextTheme } = useTheme()
66
- const { t } = useTranslation()
67
- const { agent } = useAgent()
68
-
69
- const toggleDeclineModalVisible = () => setDeclineModalVisible(!declineModalVisible)
70
-
71
- const styles = StyleSheet.create({
72
- pageContent: {
73
- flexGrow: 1,
74
- justifyContent: 'space-between',
75
- padding: 10,
76
- },
77
- credentialsList: {
78
- marginTop: 20,
79
- justifyContent: 'space-between',
80
- },
81
- headerTextContainer: {
82
- paddingVertical: 16,
83
- },
84
- headerText: {
85
- ...ListItems.recordAttributeText,
86
- flexShrink: 1,
87
- },
88
- footerButton: {
89
- paddingTop: 10,
90
- },
91
- cardContainer: {
92
- paddingHorizontal: 25,
93
- paddingVertical: 16,
94
- backgroundColor: ColorPalette.brand.secondaryBackground,
95
- marginBottom: 20,
96
- },
97
- cardAttributes: {
98
- flexDirection: 'row',
99
- flexWrap: 'wrap',
100
- borderColor: ColorPalette.grayscale.lightGrey,
101
- borderWidth: 1,
102
- borderRadius: 8,
103
- padding: 8,
104
- },
105
- cardGroupContainer: {
106
- borderRadius: 8,
107
- borderWidth: 2,
108
- borderColor: 'rgba(255, 255, 255, 0.2)',
109
- },
110
- cardGroupHeader: {
111
- padding: 8,
112
- marginVertical: 8,
113
- },
114
- })
115
-
116
- const submission = useMemo(
117
- () =>
118
- credential && credential.credentialsForRequest
119
- ? formatDifPexCredentialsForRequest(credential.credentialsForRequest)
120
- : undefined,
121
- [credential]
122
- )
123
-
124
- //This should run only once when the screen is mounted
125
- useEffect(() => {
126
- if (!submission) return
127
- const creds = submission.entries.reduce((acc: SatisfiedCredentialsFormat, entry) => {
128
- acc[entry.inputDescriptorId] = entry.credentials.map((cred) => ({
129
- id: cred.id,
130
- claimFormat: cred.claimFormat,
131
- }))
132
- return acc
133
- }, {})
134
- setSatistfiedCredentialsSubmission(creds)
135
- }, [submission])
136
-
137
- //Fetch all credentials satisfying the proof
138
- useEffect(() => {
139
- async function fetchCreds() {
140
- if (!satistfiedCredentialsSubmission || satistfiedCredentialsSubmission.entries) return
141
-
142
- const creds: Array<W3cCredentialRecord | SdJwtVcRecord | MdocRecord> = []
143
-
144
- for (const [inputDescriptorID, credIDs] of Object.entries(satistfiedCredentialsSubmission)) {
145
- for (const { id, claimFormat } of credIDs) {
146
- let credential: W3cCredentialRecord | SdJwtVcRecord | MdocRecord | undefined
147
- if (isW3CProofRequest(claimFormat)) {
148
- credential = await getW3CCredentialById(id)
149
- } else if (isSdJwtProofRequest(claimFormat)) {
150
- credential = await getSdJwtCredentialById(id)
151
- }
152
-
153
- if (credential && inputDescriptorID) {
154
- creds.push(credential)
155
- }
156
- }
157
- }
158
- setCredentialsRequested(creds)
159
- }
160
- fetchCreds()
161
- }, [satistfiedCredentialsSubmission, getW3CCredentialById, getSdJwtCredentialById])
162
-
163
- //Once satisfied credentials are set and all credentials fetched, we select the first one of each submission to display on screen
164
- useEffect(() => {
165
- if (!satistfiedCredentialsSubmission || credentialsRequested?.length <= 0) return
166
-
167
- const creds = Object.entries(satistfiedCredentialsSubmission).reduce(
168
- (acc: SelectedCredentialsFormat, [inputDescriptorId, credentials]) => {
169
- acc[inputDescriptorId] = {
170
- id: credentials[0].id,
171
- claimFormat: credentials[0].claimFormat,
172
- }
173
- return acc
174
- },
175
- {}
176
- )
177
- setSelectedCredentialsSubmission(creds)
178
- }, [satistfiedCredentialsSubmission, credentialsRequested])
179
-
180
- const { verifierName } = useMemo(() => {
181
- return { verifierName: credential?.verifierHostName }
182
- }, [credential])
183
-
184
- const handleAcceptTouched = async () => {
185
- try {
186
- if (!agent || !credential.credentialsForRequest || !selectedCredentialsSubmission) {
187
- return
188
- }
189
- await shareProof({
190
- agent,
191
- authorizationRequest: credential.authorizationRequest,
192
- credentialsForRequest: credential.credentialsForRequest,
193
- selectedCredentials: selectedCredentialsSubmission,
194
- })
195
- setAcceptModalVisible(true)
196
- } catch (err: unknown) {
197
- setButtonsVisible(true)
198
- const error = new BifoldError(t('Error.Title1027'), t('Error.Message1027'), (err as Error)?.message ?? err, 1027)
199
- DeviceEventEmitter.emit(EventTypes.ERROR_ADDED, error)
200
- }
201
- }
202
-
203
- const handleDeclineTouched = async () => {
204
- toggleDeclineModalVisible()
205
- navigation.getParent()?.navigate(TabStacks.HomeStack, { screen: Screens.Home })
206
- }
207
-
208
- const handleDismiss = async () => {
209
- navigation.getParent()?.navigate(TabStacks.HomeStack, { screen: Screens.Home })
210
- }
211
-
212
- // Re-construct the selected credentials object based on user alt credential
213
- const onCredChange = ({
214
- inputDescriptorID,
215
- id,
216
- claimFormat,
217
- }: {
218
- inputDescriptorID: string
219
- id: string
220
- claimFormat: string
221
- }) => {
222
- setSelectedCredentialsSubmission((prev) => ({
223
- ...prev,
224
- [inputDescriptorID]: {
225
- id,
226
- claimFormat,
227
- },
228
- }))
229
- }
230
-
231
- const handleAltCredChange = useCallback(
232
- (inputDescriptorID: string, selectedCredID: string, inputDescriptor: string) => {
233
- const submittionEntries = submission?.entries.find((entry) => entry.inputDescriptorId === inputDescriptor)
234
- const credsForEntry = submittionEntries?.credentials
235
-
236
- if (!credsForEntry) return
237
-
238
- navigation.navigate(Screens.OpenIDProofCredentialSelect, {
239
- inputDescriptorID: inputDescriptorID,
240
- selectedCredID: selectedCredID,
241
- altCredIDs: credsForEntry.map((cred) => {
242
- return {
243
- id: cred.id,
244
- claimFormat: cred.claimFormat,
245
- }
246
- }),
247
- onCredChange: onCredChange,
248
- })
249
- },
250
- [submission, navigation]
251
- )
252
-
253
- const renderHeader = () => {
254
- return (
255
- <View style={styles.headerTextContainer}>
256
- <Text style={styles.headerText} testID={testIdWithKey('HeaderText')}>
257
- <Text style={TextTheme.normal}>{t('ProofRequest.ReceiveProofTitle')}</Text>
258
- {'\n'}
259
- <Text style={TextTheme.title}>{verifierName ? verifierName : ''}</Text>
260
- </Text>
261
- </View>
262
- )
263
- }
264
-
265
- const renderCard = (
266
- sub: FormattedSubmissionEntry,
267
- selectedCredential: FormattedSelectedCredentialEntry,
268
- hasMultipleCreds: boolean
269
- ) => {
270
- const credential = credentialsRequested.find((c) => c.id === selectedCredential.id)
271
- if (!credential) {
272
- return null
273
- }
274
- const credentialDisplay = getCredentialForDisplay(credential)
275
- const requestedAttributes = selectedCredential.requestedAttributes
276
- const fields = buildFieldsFromW3cCredsCredential(credentialDisplay, requestedAttributes)
277
- return (
278
- <CredentialCard
279
- credential={credential}
280
- displayItems={fields as Attribute[]}
281
- hasAltCredentials={hasMultipleCreds}
282
- handleAltCredChange={() => {
283
- handleAltCredChange(sub.inputDescriptorId, selectedCredential.id, sub.inputDescriptorId)
284
- }}
285
- />
286
- )
287
- }
288
-
289
- const renderBody = () => {
290
- if (!selectedCredentialsSubmission || !submission) return null
291
-
292
- return (
293
- <View style={styles.credentialsList}>
294
- {Object.entries(selectedCredentialsSubmission).map(([inputDescriptorId, credentialSimplified], i) => {
295
- //TODO: Support multiplae credentials
296
-
297
- const globalSubmissionName = submission.name
298
- const globalSubmissionPurpose = submission.purpose
299
- const correspondingSubmission = submission.entries?.find((s) => s.inputDescriptorId === inputDescriptorId)
300
- const submissionName = correspondingSubmission?.name
301
- const submissionPurpose = correspondingSubmission?.purpose
302
- const isSatisfied = correspondingSubmission?.isSatisfied
303
- const credentialSubmittion = correspondingSubmission?.credentials.find(
304
- (s) => s.id === credentialSimplified.id
305
- )
306
- const requestedAttributes = credentialSubmittion?.requestedAttributes
307
-
308
- const name = submissionName || globalSubmissionName || undefined
309
- const purpose = submissionPurpose || globalSubmissionPurpose || undefined
310
-
311
- return (
312
- <View key={i}>
313
- <View style={styles.cardContainer}>
314
- <View style={styles.cardGroupContainer}>
315
- {name && purpose && (
316
- <View style={styles.cardGroupHeader}>
317
- <Text style={TextTheme.bold}>{name}</Text>
318
- <Text style={TextTheme.labelTitle}>{purpose}</Text>
319
- </View>
320
- )}
321
- {isSatisfied && requestedAttributes ? (
322
- renderCard(
323
- correspondingSubmission,
324
- credentialSubmittion,
325
- correspondingSubmission.credentials.length > 1
326
- )
327
- ) : (
328
- <Text style={TextTheme.normal}>{t('ProofRequest.CredentialNotInWallet')}</Text>
329
- )}
330
- </View>
331
- </View>
332
- </View>
333
- )
334
- })}
335
- </View>
336
- )
337
- }
338
-
339
- const footerButton = (
340
- title: string,
341
- buttonPress: () => void,
342
- buttonType: ButtonType,
343
- testID: string,
344
- accessibilityLabel: string
345
- ) => {
346
- return (
347
- <View style={styles.footerButton}>
348
- <Button
349
- title={title}
350
- accessibilityLabel={accessibilityLabel}
351
- testID={testID}
352
- buttonType={buttonType}
353
- onPress={buttonPress}
354
- disabled={!buttonsVisible}
355
- />
356
- </View>
357
- )
358
- }
359
-
360
- const footer = () => {
361
- return (
362
- <View
363
- style={{
364
- paddingHorizontal: 25,
365
- paddingVertical: 16,
366
- paddingBottom: 26,
367
- backgroundColor: ColorPalette.brand.secondaryBackground,
368
- }}
369
- >
370
- {selectedCredentialsSubmission && Object.keys(selectedCredentialsSubmission).length > 0 ? (
371
- <>
372
- {footerButton(
373
- t('Global.Send'),
374
- handleAcceptTouched,
375
- ButtonType.Primary,
376
- testIdWithKey('AcceptCredentialOffer'),
377
- t('Global.Send')
378
- )}
379
- {footerButton(
380
- t('Global.Decline'),
381
- toggleDeclineModalVisible,
382
- ButtonType.Secondary,
383
- testIdWithKey('DeclineCredentialOffer'),
384
- t('Global.Decline')
385
- )}
386
- </>
387
- ) : (
388
- <>
389
- {footerButton(
390
- t('Global.Dismiss'),
391
- handleDismiss,
392
- ButtonType.Primary,
393
- testIdWithKey('DismissCredentialOffer'),
394
- t('Global.Dismiss')
395
- )}
396
- </>
397
- )}
398
- </View>
399
- )
400
- }
401
-
402
- return (
403
- <ScreenLayout screen={Screens.OpenIDCredentialDetails}>
404
- <ScrollView>
405
- <View style={styles.pageContent}>
406
- {renderHeader()}
407
- {renderBody()}
408
- </View>
409
- </ScrollView>
410
- {footer()}
411
-
412
- <ProofRequestAccept visible={acceptModalVisible} proofId={''} confirmationOnly={true} />
413
- <CommonRemoveModal
414
- usage={ModalUsage.ProofRequestDecline}
415
- visible={declineModalVisible}
416
- onSubmit={handleDeclineTouched}
417
- onCancel={toggleDeclineModalVisible}
418
- />
419
- </ScreenLayout>
420
- )
421
- }
422
-
423
- export default OpenIDProofPresentation
@@ -1,111 +0,0 @@
1
- import {
2
- OpenId4VciCredentialSupported,
3
- OpenId4VciIssuerMetadataDisplay,
4
- OpenId4VcSiopResolvedAuthorizationRequest,
5
- } from '@credo-ts/openid4vc'
6
- import { CredentialMetadata } from './display'
7
- import { ClaimFormat, DifPexCredentialsForRequest, DifPresentationExchangeDefinition } from '@credo-ts/core'
8
-
9
- export type CredentialForDisplayId = `w3c-credential-${string}` | `sd-jwt-vc-${string}` | `mdoc-${string}`
10
- export interface OpenId4VcCredentialMetadata {
11
- credential: {
12
- display?: OpenId4VciCredentialSupported['display']
13
- order?: OpenId4VciCredentialSupported['order']
14
- }
15
- issuer: {
16
- display?: OpenId4VciIssuerMetadataDisplay[]
17
- id: string
18
- }
19
- }
20
-
21
- export type W3cIssuerJson = {
22
- id: string
23
- }
24
-
25
- export type W3cCredentialSubjectJson = {
26
- id?: string
27
- [key: string]: unknown
28
- }
29
-
30
- export type W3cCredentialJson = {
31
- type: Array<string>
32
- issuer: W3cIssuerJson
33
- issuanceDate: string
34
- expiryDate?: string
35
- credentialSubject: W3cCredentialSubjectJson | W3cCredentialSubjectJson[]
36
- }
37
-
38
- export type JffW3cCredentialJson = W3cCredentialJson & {
39
- name?: string
40
- description?: string
41
- credentialBranding?: {
42
- backgroundColor?: string
43
- }
44
-
45
- issuer:
46
- | string
47
- | (W3cIssuerJson & {
48
- name?: string
49
- iconUrl?: string
50
- logoUrl?: string
51
- image?: string | { id?: string; type?: 'Image' }
52
- })
53
- }
54
-
55
- export interface DisplayImage {
56
- url?: string
57
- altText?: string
58
- }
59
-
60
- export interface CredentialDisplay {
61
- name: string
62
- issuer: CredentialIssuerDisplay
63
- locale?: string
64
- description?: string
65
- textColor?: string
66
- backgroundColor?: string
67
- backgroundImage?: DisplayImage
68
- logo?: DisplayImage
69
- primary_overlay_attribute?: string
70
- }
71
-
72
- export interface CredentialIssuerDisplay {
73
- name: string
74
- locale?: string
75
- logo?: DisplayImage
76
- domain?: string
77
- }
78
-
79
- export interface W3cCredentialDisplay {
80
- id: string
81
- createdAt: Date
82
- display: CredentialDisplay
83
- credential?: W3cCredentialJson
84
- attributes: W3cCredentialSubjectJson
85
- metadata: CredentialMetadata
86
- claimFormat: ClaimFormat
87
- validUntil: Date | undefined
88
- validFrom: Date | undefined
89
- credentialSubject: CredentialSubjectRecord | undefined
90
- }
91
-
92
- export interface OpenId4VPRequestRecord extends OpenId4VcSiopResolvedAuthorizationRequest {
93
- definition: DifPresentationExchangeDefinition
94
- verifierHostName: string | undefined
95
- createdAt: string | Date
96
- credentialsForRequest: DifPexCredentialsForRequest | undefined
97
- type: string
98
- }
99
-
100
- interface DisplayInfo {
101
- name: string
102
- locale?: string
103
- }
104
-
105
- export type CredentialSubjectRecord = Record<string, { display: DisplayInfo[] }>
106
-
107
- export enum OpenIDCredentialType {
108
- W3cCredential,
109
- SdJwtVc,
110
- Mdoc,
111
- }
@@ -1,119 +0,0 @@
1
- import { getDomainFromUrl } from '@credo-ts/core'
2
- import { Attribute, Field } from '@bifold/oca/build/legacy'
3
-
4
- /**
5
- * Converts a camelCase string to a sentence format (first letter capitalized, rest in lower case).
6
- * i.e. sanitizeString("helloWorld") // returns: 'Hello world'
7
- */
8
- export function sanitizeString(str: string) {
9
- const result = str.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replaceAll('_', ' ')
10
- let words = result.split(' ')
11
- words = words.map((word, index) => {
12
- if (index === 0 || word.toUpperCase() === word) {
13
- return word.charAt(0).toUpperCase() + word.slice(1)
14
- }
15
- return word.charAt(0).toLowerCase() + word.slice(1)
16
- })
17
- return words.join(' ')
18
- }
19
-
20
- export function getHostNameFromUrl(url: string) {
21
- try {
22
- return getDomainFromUrl(url)
23
- } catch (error) {
24
- throw new Error(`Error getting hostname from url: ${error}`)
25
- }
26
- }
27
-
28
- export const buildFieldsFromOpenIDTemplate = (data: { [key: string]: unknown }): Array<Field> => {
29
- const fields = []
30
- for (const key of Object.keys(data)) {
31
- // omit id and type
32
- if (key === 'id' || key === 'type') continue
33
-
34
- let pushedVal: string | number | null = null
35
- if (typeof data[key] === 'string' || typeof data[key] === 'number') {
36
- pushedVal = data[key] as string | number | null
37
- }
38
- fields.push(new Attribute({ name: key, value: pushedVal }))
39
- }
40
- return fields
41
- }
42
-
43
- export function formatDate(input: string | Date): string {
44
- const date = input instanceof Date ? input : new Date(input)
45
- return date.toLocaleString('en-US', {
46
- year: 'numeric',
47
- month: 'long',
48
- day: 'numeric',
49
- hour: '2-digit',
50
- minute: '2-digit',
51
- hour12: true,
52
- })
53
- }
54
-
55
- /**
56
- * Mostly used for mdoc crednetials
57
- */
58
- export function detectImageMimeType(data: Uint8Array): 'image/jpeg' | 'image/jp2' | null {
59
- // Check if array is too short to contain magic numbers
60
- if (data.length < 12) {
61
- return null
62
- }
63
-
64
- // JPEG starts with FF D8 FF
65
- if (data[0] === 0xff && data[1] === 0xd8 && data[2] === 0xff) {
66
- return 'image/jpeg'
67
- }
68
-
69
- // JPEG2000 has two possible signatures:
70
- // 1) 00 00 00 0C 6A 50 20 20 0D 0A 87 0A
71
- // 2) FF 4F FF 51
72
-
73
- // Check first signature
74
- if (
75
- data[0] === 0x00 &&
76
- data[1] === 0x00 &&
77
- data[2] === 0x00 &&
78
- data[3] === 0x0c &&
79
- data[4] === 0x6a && // 'j'
80
- data[5] === 0x50 && // 'P'
81
- data[6] === 0x20 &&
82
- data[7] === 0x20 &&
83
- data[8] === 0x0d &&
84
- data[9] === 0x0a &&
85
- data[10] === 0x87 &&
86
- data[11] === 0x0a
87
- ) {
88
- return 'image/jp2'
89
- }
90
-
91
- // Check second signature
92
- if (data[0] === 0xff && data[1] === 0x4f && data[2] === 0xff && data[3] === 0x51) {
93
- return 'image/jp2'
94
- }
95
-
96
- return null
97
- }
98
-
99
- /**
100
- * very simple matcher for `yyyy-mm-dd`
101
- */
102
- export function isDateString(value: string) {
103
- // We do the length check first to avoid unnecesary regex
104
- return value.length === 'yyyy-mm-dd'.length && value.match(/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/)
105
- }
106
-
107
- export function isW3CProofRequest(type: string): boolean {
108
- if (type === 'jwt_vc') {
109
- return true
110
- }
111
- return false
112
- }
113
-
114
- export function isSdJwtProofRequest(type: string): boolean {
115
- if (type === 'vc+sd-jwt') {
116
- return true
117
- }
118
- return false
119
- }