@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,184 +0,0 @@
1
- import { Platform } from 'react-native'
2
- import Keychain, { getSupportedBiometryType } from 'react-native-keychain'
3
- import uuid from 'react-native-uuid'
4
-
5
- import { walletId, KeychainServices } from '../constants'
6
- import { WalletSecret } from '../types/security'
7
- import { LoginAttempt } from '../types/state'
8
- import { hashPIN } from '../utils/crypto'
9
-
10
- const keyFauxUserName = 'WalletFauxPINUserName'
11
- const saltFauxUserName = 'WalletFauxSaltUserName'
12
- const loginAttemptFauxUserName = 'WalletFauxLoginAttemptUserName'
13
- // TODO: consider combing WalletSalt, WalletKey all into Wallet Secret, then using partials when required
14
- export interface WalletSalt {
15
- id: string
16
- salt: string
17
- }
18
-
19
- export interface WalletKey {
20
- key: string
21
- }
22
-
23
- export const optionsForKeychainAccess = (service: KeychainServices, useBiometrics = false): Keychain.Options => {
24
- const opts: Keychain.Options = {
25
- accessible: useBiometrics ? Keychain.ACCESSIBLE.WHEN_UNLOCKED_THIS_DEVICE_ONLY : Keychain.ACCESSIBLE.ALWAYS,
26
- service,
27
- }
28
-
29
- if (useBiometrics) {
30
- opts.accessControl = Keychain.ACCESS_CONTROL.BIOMETRY_ANY
31
- }
32
-
33
- if (Platform.OS === 'android') {
34
- opts.securityLevel = Keychain.SECURITY_LEVEL.ANY
35
- if (!useBiometrics) {
36
- opts.storage = Keychain.STORAGE_TYPE.AES
37
- } else {
38
- opts.storage = Keychain.STORAGE_TYPE.RSA
39
- }
40
- }
41
-
42
- return opts
43
- }
44
-
45
- export const secretForPIN = async (PIN: string, salt?: string): Promise<WalletSecret> => {
46
- const mySalt = salt ?? uuid.v4().toString()
47
- const myKey = await hashPIN(PIN, mySalt)
48
- const secret: WalletSecret = {
49
- id: walletId,
50
- key: myKey,
51
- salt: mySalt,
52
- }
53
-
54
- return secret
55
- }
56
-
57
- export const wipeWalletKey = async (useBiometrics: boolean) => {
58
- const opts = optionsForKeychainAccess(KeychainServices.Key, useBiometrics)
59
- await Keychain.resetGenericPassword(opts)
60
- }
61
-
62
- export const storeWalletKey = async (secret: WalletKey, useBiometrics = false): Promise<boolean> => {
63
- const opts = optionsForKeychainAccess(KeychainServices.Key, useBiometrics)
64
- const secretAsString = JSON.stringify(secret)
65
- await wipeWalletKey(useBiometrics)
66
- const result = await Keychain.setGenericPassword(keyFauxUserName, secretAsString, opts)
67
- return Boolean(result)
68
- }
69
-
70
- export const storeWalletSalt = async (secret: WalletSalt): Promise<boolean> => {
71
- const opts = optionsForKeychainAccess(KeychainServices.Salt, false)
72
- const secretAsString = JSON.stringify(secret)
73
- const result = await Keychain.setGenericPassword(saltFauxUserName, secretAsString, opts)
74
- return Boolean(result)
75
- }
76
-
77
- export const storeLoginAttempt = async (loginAttempt: LoginAttempt): Promise<boolean> => {
78
- const opts = optionsForKeychainAccess(KeychainServices.LoginAttempt, false)
79
- const loginAttemptAsString = JSON.stringify(loginAttempt)
80
- const result = await Keychain.setGenericPassword(loginAttemptFauxUserName, loginAttemptAsString, opts)
81
- return Boolean(result)
82
- }
83
-
84
- export const storeWalletSecret = async (secret: WalletSecret, useBiometrics = false): Promise<boolean> => {
85
- let keyResult = false
86
- if (secret.key) {
87
- keyResult = await storeWalletKey({ key: secret.key }, useBiometrics)
88
- }
89
-
90
- const saltResult = await storeWalletSalt({ id: secret.id, salt: secret.salt })
91
-
92
- return keyResult && saltResult
93
- }
94
-
95
- export const loadWalletSalt = async (): Promise<WalletSalt | undefined> => {
96
- let salt: WalletSalt | undefined = undefined
97
- const opts: Keychain.Options = {
98
- service: KeychainServices.Salt,
99
- }
100
- const result = await Keychain.getGenericPassword(opts)
101
- if (!result) {
102
- return
103
- }
104
-
105
- // salt data is stored and returned as a string and needs to be parsed
106
- const parsedSalt = JSON.parse(result.password)
107
- if (!parsedSalt.id || !parsedSalt.salt) {
108
- throw new Error('Wallet salt failed to load')
109
- }
110
-
111
- salt = {
112
- id: parsedSalt.id,
113
- salt: parsedSalt.salt,
114
- }
115
-
116
- return salt
117
- }
118
-
119
- export const loadLoginAttempt = async (): Promise<LoginAttempt | undefined> => {
120
- const opts: Keychain.Options = {
121
- service: KeychainServices.LoginAttempt,
122
- }
123
-
124
- const result = await Keychain.getGenericPassword(opts)
125
- if (!result) {
126
- return
127
- }
128
-
129
- return JSON.parse(result.password) as LoginAttempt
130
- }
131
-
132
- export const loadWalletKey = async (title?: string, description?: string): Promise<WalletKey | undefined> => {
133
- let opts: Keychain.Options = {
134
- service: KeychainServices.Key,
135
- }
136
-
137
- if (title && description) {
138
- opts = {
139
- ...opts,
140
- authenticationPrompt: {
141
- title,
142
- description,
143
- },
144
- }
145
- }
146
- const result = await Keychain.getGenericPassword(opts)
147
-
148
- if (!result) {
149
- return
150
- }
151
-
152
- return JSON.parse(result.password) as WalletKey
153
- }
154
-
155
- export const loadWalletSecret = async (title?: string, description?: string): Promise<WalletSecret | undefined> => {
156
- let salt: WalletSalt | undefined
157
- let key: WalletKey | undefined
158
- let secret: WalletSecret | undefined = undefined
159
- try {
160
- salt = await loadWalletSalt()
161
- key = await loadWalletKey(title, description)
162
- } catch (e: any) {
163
- throw new Error(e?.message ?? e)
164
- }
165
-
166
- if (!salt?.id || !salt?.salt || !key) {
167
- throw new Error('Wallet secret is missing key property')
168
- }
169
-
170
- secret = {
171
- id: salt.id,
172
- key: key.key,
173
- salt: salt.salt,
174
- }
175
- return secret
176
- }
177
-
178
- // This function checks if the biometrics on a device have been configured
179
- // If fingerprints or a face scan is setup, this will return true
180
- // If the device supports biometrics but they have not been configured, it will return false
181
- export const isBiometricsActive = async (): Promise<boolean> => {
182
- const result = await getSupportedBiometryType()
183
- return Boolean(result)
184
- }
@@ -1,89 +0,0 @@
1
- import { BaseLogger } from '@credo-ts/core'
2
- import { consoleTransport, logger } from 'react-native-logs'
3
-
4
- import { BifoldError } from '../types/error'
5
-
6
- export class BifoldLogger extends BaseLogger {
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- protected _log: any
9
- protected _config = {
10
- levels: {
11
- test: 0,
12
- trace: 0,
13
- debug: 0,
14
- info: 1,
15
- warn: 2,
16
- error: 3,
17
- fatal: 4,
18
- },
19
- severity: 'debug',
20
- async: true,
21
- dateFormat: 'time',
22
- printDate: false,
23
- }
24
-
25
- public constructor() {
26
- super()
27
-
28
- const transport = [consoleTransport]
29
- const config = {
30
- ...this._config,
31
- transport,
32
- }
33
-
34
- this._log = logger.createLogger<'test' | 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'>(config)
35
- }
36
-
37
- protected messageFormatter(...msgs: unknown[]): unknown[] {
38
- return msgs.map((msg) => {
39
- if (msg instanceof Error) {
40
- return JSON.stringify(
41
- {
42
- name: msg.name,
43
- message: msg.message,
44
- stack:
45
- msg.stack
46
- ?.split('\n')
47
- .slice(1)
48
- .map((line) => line.trim()) ?? [],
49
- },
50
- null,
51
- 2
52
- )
53
- }
54
- return typeof msg === 'object' ? JSON.stringify(msg, null, 2) : msg
55
- })
56
- }
57
-
58
- public test(...msgs: unknown[]): void {
59
- this._log?.test(...this.messageFormatter(...msgs))
60
- }
61
-
62
- public trace(...msgs: unknown[]): void {
63
- this._log?.trace(...this.messageFormatter(...msgs))
64
- }
65
-
66
- public debug(...msgs: unknown[]): void {
67
- this._log?.debug(...this.messageFormatter(...msgs))
68
- }
69
-
70
- public info(...msgs: unknown[]): void {
71
- this._log?.info(...this.messageFormatter(...msgs))
72
- }
73
-
74
- public warn(...msgs: unknown[]): void {
75
- this._log?.warn(...this.messageFormatter(...msgs))
76
- }
77
-
78
- public error(...msgs: unknown[]): void {
79
- this._log?.error(...this.messageFormatter(...msgs))
80
- }
81
-
82
- public fatal(...msgs: unknown[]): void {
83
- this._log?.fatal(...this.messageFormatter(...msgs))
84
- }
85
-
86
- public report(bifoldError: BifoldError): void {
87
- this._log?.info({ message: 'No remote logging configured, report not sent for error:', data: bifoldError.message })
88
- }
89
- }
@@ -1,136 +0,0 @@
1
- import AsyncStorage from '@react-native-async-storage/async-storage'
2
- import { BifoldLogger } from './logger'
3
-
4
- export class PersistentStorage<T> {
5
- private _state?: T
6
- private log?: BifoldLogger
7
-
8
- constructor(logger: any) {
9
- // this._state = state
10
- this.log = logger
11
- }
12
-
13
- public static fetchValueForKey = async <T>(key: string, log?: BifoldLogger): Promise<T | undefined> => {
14
- try {
15
- const value = await AsyncStorage.getItem(key)
16
- if (!value) {
17
- return
18
- }
19
-
20
- return JSON.parse(value)
21
- } catch (error) {
22
- log?.error(`Error loading state for key ${key}, ${error as Error}`)
23
- }
24
- }
25
-
26
- public static storeValueForKey = async <T>(key: string, value: T, log?: BifoldLogger): Promise<void> => {
27
- try {
28
- const serializedState = JSON.stringify(value)
29
- return AsyncStorage.setItem(key, serializedState)
30
- } catch (error) {
31
- log?.error(`Error loading state for key ${key}, ${error as Error}`)
32
-
33
- throw error
34
- }
35
- }
36
-
37
- public static removeValueForKey = async (key: string, log?: BifoldLogger): Promise<void> => {
38
- try {
39
- return AsyncStorage.removeItem(key)
40
- } catch (error) {
41
- log?.error(`Error removing state for key ${key}, ${error as Error}`)
42
-
43
- throw error
44
- }
45
- }
46
-
47
- public async setValueForKey(key: string, value: Partial<T>) {
48
- if (!this._state) {
49
- throw new Error("State hasn't been initialized")
50
- }
51
-
52
- // @ts-expect-error Fix complicated type error
53
- this._state[key] = value
54
-
55
- try {
56
- const serializedState = JSON.stringify(value)
57
- await AsyncStorage.setItem(key, serializedState)
58
- } catch (error) {
59
- this.log?.error(`Error saving state for key ${key}, ${error as Error}`)
60
- }
61
- }
62
-
63
- public async getValueForKey(key: string): Promise<Partial<T> | undefined> {
64
- try {
65
- if (!this._state) {
66
- await this.load()
67
- }
68
-
69
- // @ts-expect-error Fix complicated type error.
70
- return this._state[key] as Partial<T>
71
- } catch (error) {
72
- this.log?.error(`Error loading state for key ${key}, ${error as Error}`)
73
- }
74
- }
75
-
76
- public async migrateStorageKey(oldKey: string, newKey: string): Promise<boolean> {
77
- try {
78
- const value = await AsyncStorage.getItem(oldKey)
79
- if (!value) {
80
- return false
81
- }
82
-
83
- await AsyncStorage.setItem(newKey, value)
84
- await AsyncStorage.removeItem(oldKey)
85
-
86
- // @ts-expect-error Fix complicated type error
87
- delete this._state[oldKey]
88
- // @ts-expect-error Fix complicated type error
89
- this._state[newKey] = JSON.parse(value)
90
-
91
- return true
92
- } catch (error) {
93
- this.log?.error(`Error migrating state for key ${oldKey}, ${error as Error}`)
94
- }
95
-
96
- return false
97
- }
98
-
99
- public async flush() {
100
- if (!this._state) {
101
- return
102
- }
103
-
104
- try {
105
- const keys = Object.keys(this._state)
106
- for (const key of keys) {
107
- // @ts-expect-error Fix complicated type error
108
- const value = this._state[key]
109
- const serializedState = JSON.stringify(value)
110
- await AsyncStorage.setItem(key, serializedState)
111
- }
112
- } catch (error) {
113
- this.log?.error('Error saving state', error as Error)
114
- }
115
- }
116
-
117
- public async load() {
118
- try {
119
- const keys = await AsyncStorage.getAllKeys()
120
- const items = await AsyncStorage.multiGet(keys)
121
-
122
- items.forEach(([key, value]) => {
123
- if (value === null || value === undefined) {
124
- return
125
- }
126
-
127
- const parsedValue = JSON.parse(value)
128
-
129
- // @ts-expect-error Fix complicated type error
130
- this._state = { ...this._state, [key]: parsedValue }
131
- })
132
- } catch (error) {
133
- this.log?.error('Error loading state', error as Error)
134
- }
135
- }
136
- }
@@ -1,157 +0,0 @@
1
- import {
2
- IColorPalette,
3
- ITheme,
4
- createButtonsTheme,
5
- createChatTheme,
6
- createHomeTheme,
7
- createInputInlineMessageTheme,
8
- createInputsTheme,
9
- createListItemsTheme,
10
- createNavigationTheme,
11
- createSettingsTheme,
12
- createTabTheme,
13
- createTextTheme,
14
- createOnboardingTheme,
15
- createDialogTheme,
16
- createLoadingTheme,
17
- createPINInputTheme,
18
- } from './theme'
19
- import lodash from 'lodash'
20
-
21
- /**
22
- * DeepPartial is a utility type that recursively makes all properties of a type optional.
23
- */
24
- export type DeepPartial<T> = T extends object ? { [K in keyof T]?: DeepPartial<T[K]> } : T
25
-
26
- /**
27
- * ThemeBuilder is a utility class to extend an existing theme with additional properties.
28
- *
29
- * @class ThemeBuilder
30
- */
31
- export class ThemeBuilder {
32
- private _theme: ITheme
33
- private _themeOverrides: DeepPartial<ITheme>
34
-
35
- /**
36
- * Creates an instance of ThemeBuilder.
37
- *
38
- * @param {ITheme} baseTheme - The initial theme object to extend.
39
- */
40
- constructor(baseTheme: ITheme) {
41
- this._theme = baseTheme
42
- this._themeOverrides = {}
43
- }
44
-
45
- /**
46
- * Extension of the lodash.merge function that merges two objects deeply,
47
- * while preserving explicit undefined values in the source object.
48
- *
49
- * @param {T} target - The target object to merge into.
50
- * @param {DeepPartial<T>} source - The source object to merge from.
51
- * @returns {*} {T} Returns the merged object.
52
- */
53
- private _merge<T extends object>(target: T, source: DeepPartial<T>): T {
54
- // note: without the empty object, lodash.merge will mutate the original theme overrides,
55
- // and not properly update the nested properties
56
- return lodash.mergeWith({}, target, source, (objValue, srcValue, key, obj) => {
57
- // If source explicitly sets the value to undefined, keep it as undefined
58
- if (objValue !== srcValue && typeof srcValue === 'undefined') {
59
- obj[key] = undefined
60
- }
61
- })
62
- }
63
-
64
- /**
65
- * Sets the color pallet for the theme.
66
- *
67
- * Note: This method is mostly a convenience method to set the color pallet for the theme.
68
- * The same can be achieved by directly modifying the theme object using the `withOverrides` method.
69
- *
70
- * @param {IColorPalette} colorPalette - The color pallet to set for the theme.
71
- * @returns {*} {ThemeBuilder} Returns the instance of ThemeBuilder for method chaining.
72
- */
73
- setColorPalette(colorPalette: IColorPalette): this {
74
- this.withOverrides({
75
- ColorPalette: colorPalette,
76
- })
77
-
78
- return this
79
- }
80
-
81
- /**
82
- * Overrides properties in the current theme with the provided themeOverrides.
83
- *
84
- * Note: This will overwrite existing properties in the current theme with those from the provided themeOverrides.
85
- *
86
- * @example
87
- * new ThemeBuilder({ Buttons: { color: 'purple', size: 'large' }})
88
- * .withOverrides({ Buttons: { color: 'red' }})
89
- * .withOverrides({ Buttons: { spacing: 10 }}) // => { Buttons: { color: 'red', size: 'large', spacing: 10 }}
90
- *
91
- * @example
92
- * new ThemeBuilder({ Buttons: { critical: { padding: 10, margin: 0 }}})
93
- * .withOverrides((theme) => ({
94
- * Buttons: { critical: { padding: 0, margin: -1 } },
95
- * })) // => { Buttons: { critical: { padding: 0, margin: -1 } }}
96
- *
97
- * @param {DeepPartial<ITheme> | ((theme: ITheme) => DeepPartial<ITheme>) } themeOverrides A partial theme object to merge with the current theme or a callback function that receives the current theme and returns a partial theme object.
98
- * @returns {*} {ThemeBuilder} Returns the instance of ThemeBuilder for method chaining.
99
- */
100
- withOverrides(themeOverrides: DeepPartial<ITheme> | ((theme: ITheme) => DeepPartial<ITheme>)): this {
101
- const resolvedOverrides = typeof themeOverrides === 'function' ? themeOverrides(this._theme) : themeOverrides
102
-
103
- this._themeOverrides = this._merge(this._themeOverrides, resolvedOverrides)
104
-
105
- // Rebuild the theme with the new overrides so following chained calls will use the updated theme.
106
- this._theme = this.build()
107
-
108
- // Return the instance for method chaining
109
- return this
110
- }
111
-
112
- /**
113
- * Builds and returns the final theme object.
114
- *
115
- * @returns {*} {ITheme} Returns the final theme object.
116
- */
117
- build(): ITheme {
118
- // Step 1. Merge the theme overrides onto the original theme, producing the new base theme.
119
- const baseTheme = this._merge(this._theme, this._themeOverrides)
120
-
121
- if (lodash.isEqual(baseTheme, this._theme)) {
122
- // If the base theme is equal to the current theme, return the current theme
123
- // This avoids unnecessary recomputation of dependent themes
124
- return this._theme
125
- }
126
-
127
- // Step 2. Generate computed properties that depend on the base theme
128
- const dependentThemes: Partial<ITheme> = {
129
- TextTheme: createTextTheme(baseTheme),
130
- InputInlineMessage: createInputInlineMessageTheme(baseTheme),
131
- Inputs: createInputsTheme(baseTheme),
132
- Buttons: createButtonsTheme(baseTheme),
133
- ListItems: createListItemsTheme(baseTheme),
134
- TabTheme: createTabTheme(baseTheme),
135
- NavigationTheme: createNavigationTheme(baseTheme),
136
- HomeTheme: createHomeTheme(baseTheme),
137
- SettingsTheme: createSettingsTheme(baseTheme),
138
- ChatTheme: createChatTheme(baseTheme),
139
- OnboardingTheme: createOnboardingTheme(baseTheme),
140
- DialogTheme: createDialogTheme(baseTheme),
141
- LoadingTheme: createLoadingTheme(baseTheme),
142
- PINInputTheme: createPINInputTheme(baseTheme),
143
- }
144
-
145
- /**
146
- * Step 3. Merge all together - base + generated + overrides
147
- *
148
- * Why do we apply the overrides after the dependent themes?
149
- * Because the `dependentThemes` contain additional properties that may have
150
- * been modified by the overrides previously.
151
- */
152
- const newBaseTheme = this._merge(baseTheme, dependentThemes)
153
- this._theme = this._merge(newBaseTheme, this._themeOverrides)
154
-
155
- return this._theme
156
- }
157
- }