@bifold/core 2.10.2 → 2.11.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 (260) hide show
  1. package/lib/commonjs/components/listItems/NotificationListItem.js +19 -11
  2. package/lib/commonjs/components/listItems/NotificationListItem.js.map +1 -1
  3. package/lib/commonjs/components/misc/CredentialCard.js +3 -1
  4. package/lib/commonjs/components/misc/CredentialCard.js.map +1 -1
  5. package/lib/commonjs/components/misc/CredentialCard10.js +13 -5
  6. package/lib/commonjs/components/misc/CredentialCard10.js.map +1 -1
  7. package/lib/commonjs/components/misc/CredentialCard11.js +25 -22
  8. package/lib/commonjs/components/misc/CredentialCard11.js.map +1 -1
  9. package/lib/commonjs/components/views/CredentialDetailPrimaryHeader.js +8 -7
  10. package/lib/commonjs/components/views/CredentialDetailPrimaryHeader.js.map +1 -1
  11. package/lib/commonjs/constants.js +1 -0
  12. package/lib/commonjs/constants.js.map +1 -1
  13. package/lib/commonjs/container-api.js +3 -1
  14. package/lib/commonjs/container-api.js.map +1 -1
  15. package/lib/commonjs/container-impl.js +16 -0
  16. package/lib/commonjs/container-impl.js.map +1 -1
  17. package/lib/commonjs/hooks/notifications.js +4 -2
  18. package/lib/commonjs/hooks/notifications.js.map +1 -1
  19. package/lib/commonjs/hooks/useBifoldAgentSetup.js +5 -3
  20. package/lib/commonjs/hooks/useBifoldAgentSetup.js.map +1 -1
  21. package/lib/commonjs/index.js +16 -0
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/commonjs/localization/en/en.json +8 -1
  24. package/lib/commonjs/localization/fr/fr.json +8 -1
  25. package/lib/commonjs/localization/pt-br/pt-br.json +8 -1
  26. package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js +41 -1
  27. package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js.map +1 -1
  28. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js +34 -111
  29. package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  30. package/lib/commonjs/modules/openid/hooks/openid.js +38 -6
  31. package/lib/commonjs/modules/openid/hooks/openid.js.map +1 -1
  32. package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js +82 -0
  33. package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js.map +1 -0
  34. package/lib/commonjs/modules/openid/hooks/useCredentialErrorsFromRegistry.js +60 -0
  35. package/lib/commonjs/modules/openid/hooks/useCredentialErrorsFromRegistry.js.map +1 -0
  36. package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js +84 -0
  37. package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js.map +1 -0
  38. package/lib/commonjs/modules/openid/hooks/useOpenIdReplacementNavigation.js +55 -0
  39. package/lib/commonjs/modules/openid/hooks/useOpenIdReplacementNavigation.js.map +1 -0
  40. package/lib/commonjs/modules/openid/hooks/useReplacementNotifications.js +82 -0
  41. package/lib/commonjs/modules/openid/hooks/useReplacementNotifications.js.map +1 -0
  42. package/lib/commonjs/modules/openid/metadata.js +60 -1
  43. package/lib/commonjs/modules/openid/metadata.js.map +1 -1
  44. package/lib/commonjs/modules/openid/notification.js +42 -0
  45. package/lib/commonjs/modules/openid/notification.js.map +1 -0
  46. package/lib/commonjs/modules/openid/offerResolve.js +6 -0
  47. package/lib/commonjs/modules/openid/offerResolve.js.map +1 -1
  48. package/lib/commonjs/modules/openid/refresh/reIssuance.js +95 -0
  49. package/lib/commonjs/modules/openid/refresh/reIssuance.js.map +1 -0
  50. package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js +265 -0
  51. package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js.map +1 -0
  52. package/lib/commonjs/modules/openid/refresh/refreshToken.js +78 -0
  53. package/lib/commonjs/modules/openid/refresh/refreshToken.js.map +1 -0
  54. package/lib/commonjs/modules/openid/refresh/registery.js +143 -0
  55. package/lib/commonjs/modules/openid/refresh/registery.js.map +1 -0
  56. package/lib/commonjs/modules/openid/refresh/types.js +17 -0
  57. package/lib/commonjs/modules/openid/refresh/types.js.map +1 -0
  58. package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js +34 -0
  59. package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js.map +1 -0
  60. package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js +39 -2
  61. package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js.map +1 -1
  62. package/lib/commonjs/modules/openid/utils/utils.js +66 -0
  63. package/lib/commonjs/modules/openid/utils/utils.js.map +1 -1
  64. package/lib/commonjs/screens/CredentialDetails.js +28 -6
  65. package/lib/commonjs/screens/CredentialDetails.js.map +1 -1
  66. package/lib/commonjs/screens/CredentialOffer.js +6 -9
  67. package/lib/commonjs/screens/CredentialOffer.js.map +1 -1
  68. package/lib/commonjs/screens/CredentialOfferAccept.js +18 -2
  69. package/lib/commonjs/screens/CredentialOfferAccept.js.map +1 -1
  70. package/lib/commonjs/screens/Developer.js +26 -0
  71. package/lib/commonjs/screens/Developer.js.map +1 -1
  72. package/lib/commonjs/screens/Home.js +39 -1
  73. package/lib/commonjs/screens/Home.js.map +1 -1
  74. package/lib/commonjs/screens/ListCredentials.js +2 -2
  75. package/lib/commonjs/screens/ListCredentials.js.map +1 -1
  76. package/lib/commonjs/screens/ProofChangeCredential.js +3 -3
  77. package/lib/commonjs/screens/ProofChangeCredential.js.map +1 -1
  78. package/lib/commonjs/screens/ProofRequest.js +4 -4
  79. package/lib/commonjs/screens/ProofRequest.js.map +1 -1
  80. package/lib/commonjs/services/AgentBridge.js +90 -0
  81. package/lib/commonjs/services/AgentBridge.js.map +1 -0
  82. package/lib/commonjs/types/credentials.js +9 -0
  83. package/lib/commonjs/types/credentials.js.map +1 -1
  84. package/lib/commonjs/utils/agent.js +1 -1
  85. package/lib/commonjs/utils/agent.js.map +1 -1
  86. package/lib/commonjs/utils/cred-def.js +50 -43
  87. package/lib/commonjs/utils/cred-def.js.map +1 -1
  88. package/lib/commonjs/utils/credential.js +217 -1
  89. package/lib/commonjs/utils/credential.js.map +1 -1
  90. package/lib/commonjs/utils/helpers.js +83 -22
  91. package/lib/commonjs/utils/helpers.js.map +1 -1
  92. package/lib/module/components/listItems/NotificationListItem.js +19 -11
  93. package/lib/module/components/listItems/NotificationListItem.js.map +1 -1
  94. package/lib/module/components/misc/CredentialCard.js +3 -1
  95. package/lib/module/components/misc/CredentialCard.js.map +1 -1
  96. package/lib/module/components/misc/CredentialCard10.js +14 -6
  97. package/lib/module/components/misc/CredentialCard10.js.map +1 -1
  98. package/lib/module/components/misc/CredentialCard11.js +17 -14
  99. package/lib/module/components/misc/CredentialCard11.js.map +1 -1
  100. package/lib/module/components/views/CredentialDetailPrimaryHeader.js +9 -8
  101. package/lib/module/components/views/CredentialDetailPrimaryHeader.js.map +1 -1
  102. package/lib/module/constants.js +1 -0
  103. package/lib/module/constants.js.map +1 -1
  104. package/lib/module/container-api.js +3 -1
  105. package/lib/module/container-api.js.map +1 -1
  106. package/lib/module/container-impl.js +16 -0
  107. package/lib/module/container-impl.js.map +1 -1
  108. package/lib/module/hooks/notifications.js +4 -2
  109. package/lib/module/hooks/notifications.js.map +1 -1
  110. package/lib/module/hooks/useBifoldAgentSetup.js +5 -3
  111. package/lib/module/hooks/useBifoldAgentSetup.js.map +1 -1
  112. package/lib/module/index.js +3 -1
  113. package/lib/module/index.js.map +1 -1
  114. package/lib/module/localization/en/en.json +8 -1
  115. package/lib/module/localization/fr/fr.json +8 -1
  116. package/lib/module/localization/pt-br/pt-br.json +8 -1
  117. package/lib/module/modules/openid/components/OpenIDCredentialCard.js +41 -1
  118. package/lib/module/modules/openid/components/OpenIDCredentialCard.js.map +1 -1
  119. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js +34 -111
  120. package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
  121. package/lib/module/modules/openid/hooks/openid.js +38 -5
  122. package/lib/module/modules/openid/hooks/openid.js.map +1 -1
  123. package/lib/module/modules/openid/hooks/useAcceptReplacement.js +76 -0
  124. package/lib/module/modules/openid/hooks/useAcceptReplacement.js.map +1 -0
  125. package/lib/module/modules/openid/hooks/useCredentialErrorsFromRegistry.js +54 -0
  126. package/lib/module/modules/openid/hooks/useCredentialErrorsFromRegistry.js.map +1 -0
  127. package/lib/module/modules/openid/hooks/useDeclineReplacement.js +77 -0
  128. package/lib/module/modules/openid/hooks/useDeclineReplacement.js.map +1 -0
  129. package/lib/module/modules/openid/hooks/useOpenIdReplacementNavigation.js +47 -0
  130. package/lib/module/modules/openid/hooks/useOpenIdReplacementNavigation.js.map +1 -0
  131. package/lib/module/modules/openid/hooks/useReplacementNotifications.js +75 -0
  132. package/lib/module/modules/openid/hooks/useReplacementNotifications.js.map +1 -0
  133. package/lib/module/modules/openid/metadata.js +52 -1
  134. package/lib/module/modules/openid/metadata.js.map +1 -1
  135. package/lib/module/modules/openid/notification.js +38 -0
  136. package/lib/module/modules/openid/notification.js.map +1 -0
  137. package/lib/module/modules/openid/offerResolve.js +7 -1
  138. package/lib/module/modules/openid/offerResolve.js.map +1 -1
  139. package/lib/module/modules/openid/refresh/reIssuance.js +89 -0
  140. package/lib/module/modules/openid/refresh/reIssuance.js.map +1 -0
  141. package/lib/module/modules/openid/refresh/refreshOrchestrator.js +257 -0
  142. package/lib/module/modules/openid/refresh/refreshOrchestrator.js.map +1 -0
  143. package/lib/module/modules/openid/refresh/refreshToken.js +72 -0
  144. package/lib/module/modules/openid/refresh/refreshToken.js.map +1 -0
  145. package/lib/module/modules/openid/refresh/registery.js +135 -0
  146. package/lib/module/modules/openid/refresh/registery.js.map +1 -0
  147. package/lib/module/modules/openid/refresh/types.js +11 -0
  148. package/lib/module/modules/openid/refresh/types.js.map +1 -0
  149. package/lib/module/modules/openid/refresh/verifyCredentialStatus.js +28 -0
  150. package/lib/module/modules/openid/refresh/verifyCredentialStatus.js.map +1 -0
  151. package/lib/module/modules/openid/screens/OpenIDCredentialOffer.js +39 -2
  152. package/lib/module/modules/openid/screens/OpenIDCredentialOffer.js.map +1 -1
  153. package/lib/module/modules/openid/utils/utils.js +64 -1
  154. package/lib/module/modules/openid/utils/utils.js.map +1 -1
  155. package/lib/module/screens/CredentialDetails.js +29 -7
  156. package/lib/module/screens/CredentialDetails.js.map +1 -1
  157. package/lib/module/screens/CredentialOffer.js +7 -10
  158. package/lib/module/screens/CredentialOffer.js.map +1 -1
  159. package/lib/module/screens/CredentialOfferAccept.js +19 -3
  160. package/lib/module/screens/CredentialOfferAccept.js.map +1 -1
  161. package/lib/module/screens/Developer.js +27 -1
  162. package/lib/module/screens/Developer.js.map +1 -1
  163. package/lib/module/screens/Home.js +41 -3
  164. package/lib/module/screens/Home.js.map +1 -1
  165. package/lib/module/screens/ListCredentials.js +1 -1
  166. package/lib/module/screens/ListCredentials.js.map +1 -1
  167. package/lib/module/screens/ProofChangeCredential.js +1 -1
  168. package/lib/module/screens/ProofChangeCredential.js.map +1 -1
  169. package/lib/module/screens/ProofRequest.js +1 -1
  170. package/lib/module/screens/ProofRequest.js.map +1 -1
  171. package/lib/module/services/AgentBridge.js +83 -0
  172. package/lib/module/services/AgentBridge.js.map +1 -0
  173. package/lib/module/types/credentials.js +8 -1
  174. package/lib/module/types/credentials.js.map +1 -1
  175. package/lib/module/utils/agent.js +2 -2
  176. package/lib/module/utils/agent.js.map +1 -1
  177. package/lib/module/utils/cred-def.js +46 -43
  178. package/lib/module/utils/cred-def.js.map +1 -1
  179. package/lib/module/utils/credential.js +210 -0
  180. package/lib/module/utils/credential.js.map +1 -1
  181. package/lib/module/utils/helpers.js +80 -22
  182. package/lib/module/utils/helpers.js.map +1 -1
  183. package/lib/typescript/src/components/listItems/NotificationListItem.d.ts.map +1 -1
  184. package/lib/typescript/src/components/misc/CredentialCard.d.ts +1 -2
  185. package/lib/typescript/src/components/misc/CredentialCard.d.ts.map +1 -1
  186. package/lib/typescript/src/components/misc/CredentialCard10.d.ts.map +1 -1
  187. package/lib/typescript/src/components/misc/CredentialCard11.d.ts +1 -5
  188. package/lib/typescript/src/components/misc/CredentialCard11.d.ts.map +1 -1
  189. package/lib/typescript/src/components/views/CredentialDetailPrimaryHeader.d.ts.map +1 -1
  190. package/lib/typescript/src/constants.d.ts +2 -1
  191. package/lib/typescript/src/constants.d.ts.map +1 -1
  192. package/lib/typescript/src/container-api.d.ts +8 -0
  193. package/lib/typescript/src/container-api.d.ts.map +1 -1
  194. package/lib/typescript/src/container-impl.d.ts +2 -0
  195. package/lib/typescript/src/container-impl.d.ts.map +1 -1
  196. package/lib/typescript/src/hooks/notifications.d.ts +2 -1
  197. package/lib/typescript/src/hooks/notifications.d.ts.map +1 -1
  198. package/lib/typescript/src/hooks/useBifoldAgentSetup.d.ts.map +1 -1
  199. package/lib/typescript/src/index.d.ts +4 -1
  200. package/lib/typescript/src/index.d.ts.map +1 -1
  201. package/lib/typescript/src/modules/openid/components/OpenIDCredentialCard.d.ts.map +1 -1
  202. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts +1 -2
  203. package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts.map +1 -1
  204. package/lib/typescript/src/modules/openid/hooks/openid.d.ts.map +1 -1
  205. package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts +11 -0
  206. package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts.map +1 -0
  207. package/lib/typescript/src/modules/openid/hooks/useCredentialErrorsFromRegistry.d.ts +9 -0
  208. package/lib/typescript/src/modules/openid/hooks/useCredentialErrorsFromRegistry.d.ts.map +1 -0
  209. package/lib/typescript/src/modules/openid/hooks/useDeclineReplacement.d.ts +16 -0
  210. package/lib/typescript/src/modules/openid/hooks/useDeclineReplacement.d.ts.map +1 -0
  211. package/lib/typescript/src/modules/openid/hooks/useOpenIdReplacementNavigation.d.ts +8 -0
  212. package/lib/typescript/src/modules/openid/hooks/useOpenIdReplacementNavigation.d.ts.map +1 -0
  213. package/lib/typescript/src/modules/openid/hooks/useReplacementNotifications.d.ts +6 -0
  214. package/lib/typescript/src/modules/openid/hooks/useReplacementNotifications.d.ts.map +1 -0
  215. package/lib/typescript/src/modules/openid/metadata.d.ts +27 -2
  216. package/lib/typescript/src/modules/openid/metadata.d.ts.map +1 -1
  217. package/lib/typescript/src/modules/openid/notification.d.ts +16 -0
  218. package/lib/typescript/src/modules/openid/notification.d.ts.map +1 -0
  219. package/lib/typescript/src/modules/openid/offerResolve.d.ts.map +1 -1
  220. package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts +19 -0
  221. package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts.map +1 -0
  222. package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts +25 -0
  223. package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts.map +1 -0
  224. package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts +9 -0
  225. package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts.map +1 -0
  226. package/lib/typescript/src/modules/openid/refresh/registery.d.ts +55 -0
  227. package/lib/typescript/src/modules/openid/refresh/registery.d.ts.map +1 -0
  228. package/lib/typescript/src/modules/openid/refresh/types.d.ts +59 -0
  229. package/lib/typescript/src/modules/openid/refresh/types.d.ts.map +1 -0
  230. package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts +11 -0
  231. package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts.map +1 -0
  232. package/lib/typescript/src/modules/openid/screens/OpenIDCredentialOffer.d.ts.map +1 -1
  233. package/lib/typescript/src/modules/openid/utils/utils.d.ts +4 -0
  234. package/lib/typescript/src/modules/openid/utils/utils.d.ts.map +1 -1
  235. package/lib/typescript/src/screens/CredentialDetails.d.ts.map +1 -1
  236. package/lib/typescript/src/screens/CredentialOffer.d.ts.map +1 -1
  237. package/lib/typescript/src/screens/CredentialOfferAccept.d.ts.map +1 -1
  238. package/lib/typescript/src/screens/Developer.d.ts.map +1 -1
  239. package/lib/typescript/src/screens/Home.d.ts.map +1 -1
  240. package/lib/typescript/src/screens/ListCredentials.d.ts.map +1 -1
  241. package/lib/typescript/src/services/AgentBridge.d.ts +31 -0
  242. package/lib/typescript/src/services/AgentBridge.d.ts.map +1 -0
  243. package/lib/typescript/src/types/credentials.d.ts +5 -0
  244. package/lib/typescript/src/types/credentials.d.ts.map +1 -1
  245. package/lib/typescript/src/types/notification.d.ts +4 -0
  246. package/lib/typescript/src/types/notification.d.ts.map +1 -1
  247. package/lib/typescript/src/utils/agent.d.ts.map +1 -1
  248. package/lib/typescript/src/utils/cred-def.d.ts +8 -3
  249. package/lib/typescript/src/utils/cred-def.d.ts.map +1 -1
  250. package/lib/typescript/src/utils/credential.d.ts +36 -0
  251. package/lib/typescript/src/utils/credential.d.ts.map +1 -1
  252. package/lib/typescript/src/utils/helpers.d.ts +5 -1
  253. package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
  254. package/package.json +10 -4
  255. package/lib/commonjs/modules/openid/refresh/refreshMetadata.js +0 -25
  256. package/lib/commonjs/modules/openid/refresh/refreshMetadata.js.map +0 -1
  257. package/lib/module/modules/openid/refresh/refreshMetadata.js +0 -18
  258. package/lib/module/modules/openid/refresh/refreshMetadata.js.map +0 -1
  259. package/lib/typescript/src/modules/openid/refresh/refreshMetadata.d.ts +0 -20
  260. package/lib/typescript/src/modules/openid/refresh/refreshMetadata.d.ts.map +0 -1
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useAcceptReplacement = useAcceptReplacement;
7
+ var _react = require("react");
8
+ var _containerApi = require("../../../container-api");
9
+ var _OpenIDCredentialRecordProvider = require("../context/OpenIDCredentialRecordProvider");
10
+ var _registery = require("../refresh/registery");
11
+ var _types = require("../types");
12
+ // modules/openid/hooks/useAcceptReplacement.ts
13
+
14
+ const sleep = ms => new Promise(res => setTimeout(res, ms));
15
+ /**
16
+ * A hook that provides functions to accept newly issued credentials, handling replacements if applicable.
17
+ */
18
+
19
+ function useAcceptReplacement() {
20
+ const {
21
+ storeCredential,
22
+ removeCredential,
23
+ getW3CCredentialById,
24
+ getSdJwtCredentialById
25
+ } = (0, _OpenIDCredentialRecordProvider.useOpenIDCredentials)();
26
+ const [logger] = (0, _containerApi.useServices)([_containerApi.TOKENS.UTIL_LOGGER]);
27
+
28
+ /**
29
+ * Accept a newly issued credential:
30
+ * 1) store it
31
+ * 2) if it replaces an old one (per registry), fetch old via provider & delete it
32
+ * 3) update the registry (acceptReplacement)
33
+ */
34
+ const acceptNewCredential = (0, _react.useCallback)(async newCred => {
35
+ logger.info(`🟢 [useAcceptReplacement] accepting new credential → ${newCred.id}`);
36
+
37
+ // 1) persist new
38
+ await storeCredential(newCred);
39
+
40
+ // 2) check if it replaces an old credential
41
+ const oldId = (0, _registery.selectOldIdByReplacementId)(newCred.id);
42
+ if (!oldId) {
43
+ logger.info(`ℹ️ [useAcceptReplacement] no replacement mapping for ${newCred.id} — done`);
44
+ return;
45
+ }
46
+
47
+ // 3) fetch old via provider (always)
48
+ const oldRecord = await getSdJwtCredentialById(oldId);
49
+ if (!oldRecord) {
50
+ logger.warn(`⚠️ [useAcceptReplacement] old record ${oldId} not found — skipping delete`);
51
+ // still accept swap in registry to avoid stuck state
52
+ _registery.credentialRegistry.getState().acceptReplacement(oldId);
53
+ return;
54
+ }
55
+ await sleep(200);
56
+
57
+ // 4) delete old
58
+ await removeCredential(oldRecord, _types.OpenIDCredentialType.SdJwtVc);
59
+
60
+ // 5) finalize the swap in registry
61
+ _registery.credentialRegistry.getState().acceptReplacement(oldId);
62
+ logger.info(`✅ [useAcceptReplacement] replacement complete: old=${oldId} → new=${newCred.id}`);
63
+ }, [storeCredential, removeCredential, getSdJwtCredentialById, logger]);
64
+
65
+ /**
66
+ * Convenience: accept by new credential id (fetch via provider first).
67
+ * Useful if your screen only carries the new id.
68
+ */
69
+ const acceptById = (0, _react.useCallback)(async newId => {
70
+ // try W3C first, then Sd-JWT
71
+ const newW3c = await getW3CCredentialById(newId);
72
+ const newSd = newW3c ? undefined : await getSdJwtCredentialById(newId);
73
+ const rec = newW3c ?? newSd;
74
+ if (!rec) throw new Error(`New credential not found for id=${newId}`);
75
+ await acceptNewCredential(rec);
76
+ }, [getW3CCredentialById, getSdJwtCredentialById, acceptNewCredential]);
77
+ return {
78
+ acceptNewCredential,
79
+ acceptById
80
+ };
81
+ }
82
+ //# sourceMappingURL=useAcceptReplacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_containerApi","_OpenIDCredentialRecordProvider","_registery","_types","sleep","ms","Promise","res","setTimeout","useAcceptReplacement","storeCredential","removeCredential","getW3CCredentialById","getSdJwtCredentialById","useOpenIDCredentials","logger","useServices","TOKENS","UTIL_LOGGER","acceptNewCredential","useCallback","newCred","info","id","oldId","selectOldIdByReplacementId","oldRecord","warn","credentialRegistry","getState","acceptReplacement","OpenIDCredentialType","SdJwtVc","acceptById","newId","newW3c","newSd","undefined","rec","Error"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useAcceptReplacement.ts"],"mappings":";;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,+BAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AANA;;AAUA,MAAMK,KAAK,GAAIC,EAAU,IAAK,IAAIC,OAAO,CAAQC,GAAG,IAAKC,UAAU,CAACD,GAAG,EAAEF,EAAE,CAAC,CAAC;AAC7E;AACA;AACA;;AAEO,SAASI,oBAAoBA,CAAA,EAAG;EACrC,MAAM;IAAEC,eAAe;IAAEC,gBAAgB;IAAEC,oBAAoB;IAAEC;EAAuB,CAAC,GAAG,IAAAC,oDAAoB,EAAC,CAAC;EAClH,MAAM,CAACC,MAAM,CAAC,GAAG,IAAAC,yBAAW,EAAC,CAACC,oBAAM,CAACC,WAAW,CAAC,CAAC;;EAElD;AACF;AACA;AACA;AACA;AACA;EACE,MAAMC,mBAAmB,GAAG,IAAAC,kBAAW,EACrC,MAAOC,OAAgB,IAAK;IAC1BN,MAAM,CAACO,IAAI,CAAC,wDAAwDD,OAAO,CAACE,EAAE,EAAE,CAAC;;IAEjF;IACA,MAAMb,eAAe,CAACW,OAAO,CAAC;;IAE9B;IACA,MAAMG,KAAK,GAAG,IAAAC,qCAA0B,EAACJ,OAAO,CAACE,EAAE,CAAC;IACpD,IAAI,CAACC,KAAK,EAAE;MACVT,MAAM,CAACO,IAAI,CAAC,wDAAwDD,OAAO,CAACE,EAAE,SAAS,CAAC;MACxF;IACF;;IAEA;IACA,MAAMG,SAAS,GAAG,MAAMb,sBAAsB,CAACW,KAAK,CAAC;IAErD,IAAI,CAACE,SAAS,EAAE;MACdX,MAAM,CAACY,IAAI,CAAC,wCAAwCH,KAAK,8BAA8B,CAAC;MACxF;MACAI,6BAAkB,CAACC,QAAQ,CAAC,CAAC,CAACC,iBAAiB,CAACN,KAAK,CAAC;MACtD;IACF;IAEA,MAAMpB,KAAK,CAAC,GAAG,CAAC;;IAEhB;IACA,MAAMO,gBAAgB,CAACe,SAAS,EAAEK,2BAAoB,CAACC,OAAO,CAAC;;IAE/D;IACAJ,6BAAkB,CAACC,QAAQ,CAAC,CAAC,CAACC,iBAAiB,CAACN,KAAK,CAAC;IAEtDT,MAAM,CAACO,IAAI,CAAC,sDAAsDE,KAAK,UAAUH,OAAO,CAACE,EAAE,EAAE,CAAC;EAChG,CAAC,EACD,CAACb,eAAe,EAAEC,gBAAgB,EAAEE,sBAAsB,EAAEE,MAAM,CACpE,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMkB,UAAU,GAAG,IAAAb,kBAAW,EAC5B,MAAOc,KAAa,IAAK;IACvB;IACA,MAAMC,MAAM,GAAG,MAAMvB,oBAAoB,CAACsB,KAAK,CAAC;IAChD,MAAME,KAAK,GAAGD,MAAM,GAAGE,SAAS,GAAG,MAAMxB,sBAAsB,CAACqB,KAAK,CAAC;IACtE,MAAMI,GAAG,GAAIH,MAAM,IAAIC,KAA6B;IACpD,IAAI,CAACE,GAAG,EAAE,MAAM,IAAIC,KAAK,CAAC,mCAAmCL,KAAK,EAAE,CAAC;IACrE,MAAMf,mBAAmB,CAACmB,GAAG,CAAC;EAChC,CAAC,EACD,CAAC1B,oBAAoB,EAAEC,sBAAsB,EAAEM,mBAAmB,CACpE,CAAC;EAED,OAAO;IAAEA,mBAAmB;IAAEc;EAAW,CAAC;AAC5C","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useCredentialErrorsFromRegistry = useCredentialErrorsFromRegistry;
7
+ var _react = require("react");
8
+ var _registery = require("../refresh/registery");
9
+ var _metadata = require("../metadata");
10
+ var _types = require("../refresh/types");
11
+ var _credentials = require("../../../types/credentials");
12
+ var _core = require("@credo-ts/core");
13
+ // hooks/useCredentialErrorsFromRegistry.ts
14
+
15
+ /**
16
+ * Computes the UI error list for a credential by:
17
+ * 1) Checking the in-memory registry (live session truth)
18
+ * 2) Falling back to persisted refresh metadata (after app restart)
19
+ * You can merge with any existing `propErrors` provided by the caller.
20
+ */
21
+ function useCredentialErrorsFromRegistry(credential, propErrors) {
22
+ const id = credential === null || credential === void 0 ? void 0 : credential.id;
23
+ const [isInvalidByRegistry, setIsInvalidByRegistry] = (0, _react.useState)(false);
24
+
25
+ // Subscribe to registry changes and keep a boolean for this credential
26
+ (0, _react.useEffect)(() => {
27
+ if (!id) return;
28
+
29
+ // Immediate read
30
+ const s = _registery.credentialRegistry.getState();
31
+ setIsInvalidByRegistry(s.expired.includes(id));
32
+
33
+ // Subscribe to changes
34
+ const unsub = _registery.credentialRegistry.subscribe(next => {
35
+ const flagged = next.expired.includes(id);
36
+ setIsInvalidByRegistry(flagged);
37
+ });
38
+ return unsub;
39
+ }, [id]);
40
+
41
+ // Fallback: metadata (covers case after restart when registry is empty)
42
+ const isInvalidByMetadata = (0, _react.useMemo)(() => {
43
+ if (!(credential instanceof _core.W3cCredentialRecord || credential instanceof _core.SdJwtVcRecord || credential instanceof _core.MdocRecord)) {
44
+ return;
45
+ }
46
+ if (!credential) return false;
47
+ const meta = (0, _metadata.getRefreshCredentialMetadata)(credential);
48
+ return (meta === null || meta === void 0 ? void 0 : meta.lastCheckResult) === _types.RefreshStatus.Invalid;
49
+ }, [credential]);
50
+
51
+ // Merge: propErrors + derived “invalid” → map to existing enum (Revoked)
52
+ const merged = (0, _react.useMemo)(() => {
53
+ const base = Array.isArray(propErrors) ? [...propErrors] : [];
54
+ const withoutRevoked = base.filter(e => e !== _credentials.CredentialErrors.Revoked);
55
+ const shouldMarkInvalid = isInvalidByRegistry || isInvalidByMetadata;
56
+ return shouldMarkInvalid ? [...withoutRevoked, _credentials.CredentialErrors.Revoked] : withoutRevoked;
57
+ }, [propErrors, isInvalidByRegistry, isInvalidByMetadata]);
58
+ return merged;
59
+ }
60
+ //# sourceMappingURL=useCredentialErrorsFromRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_registery","_metadata","_types","_credentials","_core","useCredentialErrorsFromRegistry","credential","propErrors","id","isInvalidByRegistry","setIsInvalidByRegistry","useState","useEffect","s","credentialRegistry","getState","expired","includes","unsub","subscribe","next","flagged","isInvalidByMetadata","useMemo","W3cCredentialRecord","SdJwtVcRecord","MdocRecord","meta","getRefreshCredentialMetadata","lastCheckResult","RefreshStatus","Invalid","merged","base","Array","isArray","withoutRevoked","filter","e","CredentialErrors","Revoked","shouldMarkInvalid"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useCredentialErrorsFromRegistry.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AANA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,+BAA+BA,CAC7CC,UAAuD,EACvDC,UAA+B,EAC/B;EACA,MAAMC,EAAE,GAAGF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,EAAE;EACzB,MAAM,CAACC,mBAAmB,EAAEC,sBAAsB,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;;EAErE;EACA,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACJ,EAAE,EAAE;;IAET;IACA,MAAMK,CAAC,GAAGC,6BAAkB,CAACC,QAAQ,CAAC,CAAC;IACvCL,sBAAsB,CAACG,CAAC,CAACG,OAAO,CAACC,QAAQ,CAACT,EAAE,CAAC,CAAC;;IAE9C;IACA,MAAMU,KAAK,GAAGJ,6BAAkB,CAACK,SAAS,CAAEC,IAAmB,IAAK;MAClE,MAAMC,OAAO,GAAGD,IAAI,CAACJ,OAAO,CAACC,QAAQ,CAACT,EAAE,CAAC;MACzCE,sBAAsB,CAACW,OAAO,CAAC;IACjC,CAAC,CAAC;IAEF,OAAOH,KAAK;EACd,CAAC,EAAE,CAACV,EAAE,CAAC,CAAC;;EAER;EACA,MAAMc,mBAAmB,GAAG,IAAAC,cAAO,EAAC,MAAM;IACxC,IACE,EACEjB,UAAU,YAAYkB,yBAAmB,IACzClB,UAAU,YAAYmB,mBAAa,IACnCnB,UAAU,YAAYoB,gBAAU,CACjC,EACD;MACA;IACF;IACA,IAAI,CAACpB,UAAU,EAAE,OAAO,KAAK;IAC7B,MAAMqB,IAAI,GAAG,IAAAC,sCAA4B,EAACtB,UAAU,CAAC;IACrD,OAAO,CAAAqB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEE,eAAe,MAAKC,oBAAa,CAACC,OAAO;EACxD,CAAC,EAAE,CAACzB,UAAU,CAAC,CAAC;;EAEhB;EACA,MAAM0B,MAAM,GAAG,IAAAT,cAAO,EAAC,MAAM;IAC3B,MAAMU,IAAI,GAAGC,KAAK,CAACC,OAAO,CAAC5B,UAAU,CAAC,GAAG,CAAC,GAAGA,UAAU,CAAC,GAAG,EAAE;IAC7D,MAAM6B,cAAc,GAAGH,IAAI,CAACI,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKC,6BAAgB,CAACC,OAAO,CAAC;IACzE,MAAMC,iBAAiB,GAAGhC,mBAAmB,IAAIa,mBAAmB;IACpE,OAAOmB,iBAAiB,GAAG,CAAC,GAAGL,cAAc,EAAEG,6BAAgB,CAACC,OAAO,CAAC,GAAGJ,cAAc;EAC3F,CAAC,EAAE,CAAC7B,UAAU,EAAEE,mBAAmB,EAAEa,mBAAmB,CAAC,CAAC;EAE1D,OAAOU,MAAM;AACf","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDeclineReplacement = useDeclineReplacement;
7
+ var _react = require("react");
8
+ var _registery = require("../refresh/registery");
9
+ // modules/openid/hooks/useDeclineReplacement.ts
10
+
11
+ function findOldIdByNewId(newId) {
12
+ const s = _registery.credentialRegistry.getState();
13
+ // replacements: { [oldId]: { id: newId, ... } }
14
+ for (const [oldId, lite] of Object.entries(s.replacements)) {
15
+ if ((lite === null || lite === void 0 ? void 0 : lite.id) === newId) return oldId;
16
+ }
17
+ return undefined;
18
+ }
19
+
20
+ /**
21
+ * Decline a replacement offer: clears the registry entry so the notification disappears.
22
+ * No repo operations (no save/delete) are performed.
23
+ */
24
+ function useDeclineReplacement(opts = {}) {
25
+ const {
26
+ logger
27
+ } = opts;
28
+
29
+ /**
30
+ * Decline by OLD credential id (kept for callers that know oldId)
31
+ */
32
+ const declineByOldId = (0, _react.useCallback)(async oldId => {
33
+ _registery.credentialRegistry.setState(prev => {
34
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
35
+ const {
36
+ [oldId]: _drop,
37
+ ...restRepl
38
+ } = prev.replacements;
39
+ return {
40
+ ...prev,
41
+ expired: prev.expired.filter(x => x !== oldId),
42
+ replacements: restRepl,
43
+ refreshing: Object.fromEntries(Object.entries(prev.refreshing).filter(([k]) => k !== oldId))
44
+ };
45
+ });
46
+ logger === null || logger === void 0 || logger.info(`🧹 [Decline] Cleared replacement notification for oldId=${oldId}`);
47
+ }, [logger]);
48
+
49
+ /**
50
+ * Decline by NEW credential id (use this from the Offer screen where you only know newId)
51
+ */
52
+ const declineByNewId = (0, _react.useCallback)(async newId => {
53
+ const oldId = findOldIdByNewId(newId);
54
+ if (!oldId) {
55
+ logger === null || logger === void 0 || logger.warn(`🧹 [Decline] No matching oldId found for newId=${newId}`);
56
+ return;
57
+ }
58
+ await declineByOldId(oldId);
59
+ }, [declineByOldId, logger]);
60
+
61
+ /**
62
+ * Helper: decline directly from a CustomNotification object
63
+ */
64
+ const declineFromNotification = (0, _react.useCallback)(async notif => {
65
+ var _notif$metadata, _notif$metadata2;
66
+ const oldId = notif === null || notif === void 0 || (_notif$metadata = notif.metadata) === null || _notif$metadata === void 0 ? void 0 : _notif$metadata.oldId;
67
+ if (oldId) {
68
+ await declineByOldId(oldId);
69
+ return;
70
+ }
71
+ const newId = notif === null || notif === void 0 || (_notif$metadata2 = notif.metadata) === null || _notif$metadata2 === void 0 ? void 0 : _notif$metadata2.replacementId;
72
+ if (newId) {
73
+ await declineByNewId(newId);
74
+ return;
75
+ }
76
+ logger === null || logger === void 0 || logger.warn(`🧹 [Decline] Missing oldId/newId in notification.metadata`);
77
+ }, [declineByOldId, declineByNewId, logger]);
78
+ return {
79
+ declineByOldId,
80
+ declineByNewId,
81
+ declineFromNotification
82
+ };
83
+ }
84
+ //# sourceMappingURL=useDeclineReplacement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_registery","findOldIdByNewId","newId","s","credentialRegistry","getState","oldId","lite","Object","entries","replacements","id","undefined","useDeclineReplacement","opts","logger","declineByOldId","useCallback","setState","prev","_drop","restRepl","expired","filter","x","refreshing","fromEntries","k","info","declineByNewId","warn","declineFromNotification","notif","_notif$metadata","_notif$metadata2","metadata","replacementId"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useDeclineReplacement.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAFA;;AAUA,SAASE,gBAAgBA,CAACC,KAAa,EAAsB;EAC3D,MAAMC,CAAC,GAAGC,6BAAkB,CAACC,QAAQ,CAAC,CAAC;EACvC;EACA,KAAK,MAAM,CAACC,KAAK,EAAEC,IAAI,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,CAAC,CAACO,YAAY,CAAC,EAAE;IAC1D,IAAI,CAAAH,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEI,EAAE,MAAKT,KAAK,EAAE,OAAOI,KAAK;EACtC;EACA,OAAOM,SAAS;AAClB;;AAEA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,IAAa,GAAG,CAAC,CAAC,EAAE;EACxD,MAAM;IAAEC;EAAO,CAAC,GAAGD,IAAI;;EAEvB;AACF;AACA;EACE,MAAME,cAAc,GAAG,IAAAC,kBAAW,EAChC,MAAOX,KAAa,IAAK;IACvBF,6BAAkB,CAACc,QAAQ,CAAEC,IAAI,IAAK;MACpC;MACA,MAAM;QAAE,CAACb,KAAK,GAAGc,KAAK;QAAE,GAAGC;MAAS,CAAC,GAAGF,IAAI,CAACT,YAAY;MACzD,OAAO;QACL,GAAGS,IAAI;QACPG,OAAO,EAAEH,IAAI,CAACG,OAAO,CAACC,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAKlB,KAAK,CAAC;QAChDI,YAAY,EAAEW,QAAQ;QACtBI,UAAU,EAAEjB,MAAM,CAACkB,WAAW,CAAClB,MAAM,CAACC,OAAO,CAACU,IAAI,CAACM,UAAU,CAAC,CAACF,MAAM,CAAC,CAAC,CAACI,CAAC,CAAC,KAAKA,CAAC,KAAKrB,KAAK,CAAC;MAC7F,CAAC;IACH,CAAC,CAAC;IACFS,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEa,IAAI,CAAC,2DAA2DtB,KAAK,EAAE,CAAC;EAClF,CAAC,EACD,CAACS,MAAM,CACT,CAAC;;EAED;AACF;AACA;EACE,MAAMc,cAAc,GAAG,IAAAZ,kBAAW,EAChC,MAAOf,KAAa,IAAK;IACvB,MAAMI,KAAK,GAAGL,gBAAgB,CAACC,KAAK,CAAC;IACrC,IAAI,CAACI,KAAK,EAAE;MACVS,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,IAAI,CAAC,kDAAkD5B,KAAK,EAAE,CAAC;MACvE;IACF;IACA,MAAMc,cAAc,CAACV,KAAK,CAAC;EAC7B,CAAC,EACD,CAACU,cAAc,EAAED,MAAM,CACzB,CAAC;;EAED;AACF;AACA;EACE,MAAMgB,uBAAuB,GAAG,IAAAd,kBAAW,EACzC,MAAOe,KAAyB,IAAK;IAAA,IAAAC,eAAA,EAAAC,gBAAA;IACnC,MAAM5B,KAAK,GAAG0B,KAAK,aAALA,KAAK,gBAAAC,eAAA,GAALD,KAAK,CAAEG,QAAQ,cAAAF,eAAA,uBAAfA,eAAA,CAAiB3B,KAA2B;IAC1D,IAAIA,KAAK,EAAE;MACT,MAAMU,cAAc,CAACV,KAAK,CAAC;MAC3B;IACF;IACA,MAAMJ,KAAK,GAAG8B,KAAK,aAALA,KAAK,gBAAAE,gBAAA,GAALF,KAAK,CAAEG,QAAQ,cAAAD,gBAAA,uBAAfA,gBAAA,CAAiBE,aAAmC;IAClE,IAAIlC,KAAK,EAAE;MACT,MAAM2B,cAAc,CAAC3B,KAAK,CAAC;MAC3B;IACF;IACAa,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEe,IAAI,CAAC,2DAA2D,CAAC;EAC3E,CAAC,EACD,CAACd,cAAc,EAAEa,cAAc,EAAEd,MAAM,CACzC,CAAC;EAED,OAAO;IAAEC,cAAc;IAAEa,cAAc;IAAEE;EAAwB,CAAC;AACpE","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useOpenIdReplacementNavigation = useOpenIdReplacementNavigation;
7
+ var _react = require("react");
8
+ var _native = require("@react-navigation/native");
9
+ var _reactNativeToastMessage = _interopRequireDefault(require("react-native-toast-message"));
10
+ var _containerApi = require("../../../container-api");
11
+ var _navigators = require("../../../types/navigators");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ // hooks/useOpenIdReplacementNavigation.ts
14
+
15
+ /**
16
+ * A hook that returns a function to open the OpenID Credential Offer screen for a replacement credential
17
+ */
18
+ function useOpenIdReplacementNavigation() {
19
+ const navigation = (0, _native.useNavigation)();
20
+ const [orchestrator] = (0, _containerApi.useServices)([_containerApi.TOKENS.UTIL_REFRESH_ORCHESTRATOR]);
21
+ const openReplacementOffer = (0, _react.useCallback)(notif => {
22
+ var _notif$metadata;
23
+ const replacementId = notif === null || notif === void 0 || (_notif$metadata = notif.metadata) === null || _notif$metadata === void 0 ? void 0 : _notif$metadata['replacementId'];
24
+ // const oldId = notif?.metadata?.['oldId'] as string | undefined
25
+
26
+ if (!replacementId) {
27
+ _reactNativeToastMessage.default.show({
28
+ type: 'error',
29
+ text1: 'Missing replacement',
30
+ text2: 'No replacementId in notification.'
31
+ });
32
+ return;
33
+ }
34
+
35
+ // Fetch the full record strictly from orchestrator’s in-memory cache
36
+ const full = orchestrator.resolveFull(replacementId);
37
+ if (!full) {
38
+ // Keep it dead simple: no repo lookups here
39
+ _reactNativeToastMessage.default.show({
40
+ type: 'info',
41
+ text1: 'Preparing credential',
42
+ text2: 'Please try again in a moment.'
43
+ });
44
+ return;
45
+ }
46
+ navigation.navigate(_navigators.Stacks.ConnectionStack, {
47
+ screen: _navigators.Screens.OpenIDCredentialOffer,
48
+ params: {
49
+ credential: full
50
+ }
51
+ });
52
+ }, [navigation, orchestrator]);
53
+ return openReplacementOffer;
54
+ }
55
+ //# sourceMappingURL=useOpenIdReplacementNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_native","_reactNativeToastMessage","_interopRequireDefault","_containerApi","_navigators","e","__esModule","default","useOpenIdReplacementNavigation","navigation","useNavigation","orchestrator","useServices","TOKENS","UTIL_REFRESH_ORCHESTRATOR","openReplacementOffer","useCallback","notif","_notif$metadata","replacementId","metadata","Toast","show","type","text1","text2","full","resolveFull","navigate","Stacks","ConnectionStack","screen","Screens","OpenIDCredentialOffer","params","credential"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useOpenIdReplacementNavigation.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,wBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAA4E,SAAAG,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL5E;;AAUA;AACA;AACA;AACO,SAASG,8BAA8BA,CAAA,EAA2B;EACvE,MAAMC,UAAU,GAAG,IAAAC,qBAAa,EAAkC,CAAC;EACnE,MAAM,CAACC,YAAY,CAAC,GAAG,IAAAC,yBAAW,EAAC,CAACC,oBAAM,CAACC,yBAAyB,CAAC,CAAC;EAEtE,MAAMC,oBAAoB,GAAG,IAAAC,kBAAW,EACrCC,KAAK,IAAK;IAAA,IAAAC,eAAA;IACT,MAAMC,aAAa,GAAGF,KAAK,aAALA,KAAK,gBAAAC,eAAA,GAALD,KAAK,CAAEG,QAAQ,cAAAF,eAAA,uBAAfA,eAAA,CAAkB,eAAe,CAAuB;IAC9E;;IAEA,IAAI,CAACC,aAAa,EAAE;MAClBE,gCAAK,CAACC,IAAI,CAAC;QAAEC,IAAI,EAAE,OAAO;QAAEC,KAAK,EAAE,qBAAqB;QAAEC,KAAK,EAAE;MAAoC,CAAC,CAAC;MACvG;IACF;;IAEA;IACA,MAAMC,IAAI,GAAGf,YAAY,CAACgB,WAAW,CAACR,aAAa,CAAC;IACpD,IAAI,CAACO,IAAI,EAAE;MACT;MACAL,gCAAK,CAACC,IAAI,CAAC;QAAEC,IAAI,EAAE,MAAM;QAAEC,KAAK,EAAE,sBAAsB;QAAEC,KAAK,EAAE;MAAgC,CAAC,CAAC;MACnG;IACF;IAEAhB,UAAU,CAACmB,QAAQ,CAACC,kBAAM,CAACC,eAAe,EAAE;MAC1CC,MAAM,EAAEC,mBAAO,CAACC,qBAAqB;MACrCC,MAAM,EAAE;QAAEC,UAAU,EAAET;MAAK;IAC7B,CAAC,CAAC;EACJ,CAAC,EACD,CAACjB,UAAU,EAAEE,YAAY,CAC3B,CAAC;EAED,OAAOI,oBAAoB;AAC7B","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useReplacementNotifications = void 0;
7
+ var _react = require("react");
8
+ var _registery = require("../refresh/registery");
9
+ var _types = require("../refresh/types");
10
+ var _useDeclineReplacement = require("./useDeclineReplacement");
11
+ var _containerApi = require("../../../container-api");
12
+ // modules/openid/ui/useReplacementNotifications.ts
13
+
14
+ /**
15
+ * A hook that returns a list of CustomNotifications for credentials that have replacements available
16
+ */
17
+
18
+ const useReplacementNotifications = () => {
19
+ const [items, setItems] = (0, _react.useState)([]);
20
+ const [logger] = (0, _containerApi.useServices)([_containerApi.TOKENS.UTIL_LOGGER]);
21
+ const {
22
+ declineByOldId
23
+ } = (0, _useDeclineReplacement.useDeclineReplacement)({
24
+ logger
25
+ });
26
+
27
+ // Keep first-seen timestamps stable per (oldId -> replId)
28
+ const firstSeenRef = (0, _react.useRef)({});
29
+ const build = (0, _react.useCallback)(s => {
30
+ const out = [];
31
+ for (const oldId of s.expired) {
32
+ const repl = s.replacements[oldId];
33
+ if (!repl) continue;
34
+ const key = `${oldId}::${repl.id}`;
35
+ if (!firstSeenRef.current[key]) firstSeenRef.current[key] = new Date().toISOString();
36
+ out.push({
37
+ type: _types.OpenIDCustomNotificationType.CredentialReplacementAvailable,
38
+ title: 'Credential update available',
39
+ pageTitle: 'Credential Update',
40
+ buttonTitle: 'Review update',
41
+ description: 'A newer version of this credential is ready to accept.',
42
+ createdAt: new Date(firstSeenRef.current[key]),
43
+ onPressAction: () => {},
44
+ // your list item handles navigation
45
+ onCloseAction: () => declineByOldId(oldId),
46
+ component: () => null,
47
+ // keeps renderer happy
48
+ metadata: {
49
+ oldId,
50
+ replacementId: repl.id
51
+ }
52
+ });
53
+ }
54
+
55
+ // Newest first for consistent UI
56
+ out.sort((a, b) => {
57
+ var _b$createdAt, _a$createdAt;
58
+ return (((_b$createdAt = b.createdAt) === null || _b$createdAt === void 0 ? void 0 : _b$createdAt.getTime()) ?? 0) - (((_a$createdAt = a.createdAt) === null || _a$createdAt === void 0 ? void 0 : _a$createdAt.getTime()) ?? 0);
59
+ });
60
+ return out;
61
+ }, [declineByOldId]);
62
+ (0, _react.useEffect)(() => {
63
+ // Initial build
64
+ const s = _registery.credentialRegistry.getState();
65
+ setItems(build({
66
+ expired: s.expired,
67
+ replacements: s.replacements
68
+ }));
69
+
70
+ // Subscribe to full state updates (since vanilla store lacks selector arg)
71
+ const unsub = _registery.credentialRegistry.subscribe(state => {
72
+ setItems(build({
73
+ expired: state.expired,
74
+ replacements: state.replacements
75
+ }));
76
+ });
77
+ return unsub;
78
+ }, [build]);
79
+ return (0, _react.useMemo)(() => items, [items]);
80
+ };
81
+ exports.useReplacementNotifications = useReplacementNotifications;
82
+ //# sourceMappingURL=useReplacementNotifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_registery","_types","_useDeclineReplacement","_containerApi","useReplacementNotifications","items","setItems","useState","logger","useServices","TOKENS","UTIL_LOGGER","declineByOldId","useDeclineReplacement","firstSeenRef","useRef","build","useCallback","s","out","oldId","expired","repl","replacements","key","id","current","Date","toISOString","push","type","OpenIDCustomNotificationType","CredentialReplacementAvailable","title","pageTitle","buttonTitle","description","createdAt","onPressAction","onCloseAction","component","metadata","replacementId","sort","a","b","_b$createdAt","_a$createdAt","getTime","useEffect","credentialRegistry","getState","unsub","subscribe","state","useMemo","exports"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useReplacementNotifications.ts"],"mappings":"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","ignoreList":[]}
@@ -3,10 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.deleteRefreshCredentialMetadata = deleteRefreshCredentialMetadata;
6
7
  exports.extractOpenId4VcCredentialMetadata = extractOpenId4VcCredentialMetadata;
7
8
  exports.getOpenId4VcCredentialMetadata = getOpenId4VcCredentialMetadata;
9
+ exports.getRefreshCredentialMetadata = getRefreshCredentialMetadata;
10
+ exports.markOpenIDCredentialStatus = markOpenIDCredentialStatus;
11
+ exports.openId4VcCredentialMetadataKey = void 0;
12
+ exports.persistCredentialRecord = persistCredentialRecord;
13
+ exports.refreshCredentialMetadataKey = void 0;
8
14
  exports.setOpenId4VcCredentialMetadata = setOpenId4VcCredentialMetadata;
9
- const openId4VcCredentialMetadataKey = '_bifold/openId4VcCredentialMetadata';
15
+ exports.setRefreshCredentialMetadata = setRefreshCredentialMetadata;
16
+ exports.temporaryMetaVanillaObject = void 0;
17
+ var _core = require("@credo-ts/core");
18
+ const openId4VcCredentialMetadataKey = exports.openId4VcCredentialMetadataKey = '_bifold/openId4VcCredentialMetadata';
19
+ const refreshCredentialMetadataKey = exports.refreshCredentialMetadataKey = '_bifold/refreshCredentialMetadata';
10
20
  function extractOpenId4VcCredentialMetadata(credentialMetadata, serverMetadata) {
11
21
  return {
12
22
  credential: {
@@ -36,4 +46,53 @@ function getOpenId4VcCredentialMetadata(credentialRecord) {
36
46
  function setOpenId4VcCredentialMetadata(credentialRecord, metadata) {
37
47
  credentialRecord.metadata.set(openId4VcCredentialMetadataKey, metadata);
38
48
  }
49
+
50
+ /**
51
+ * Gets the refresh credential metadata from the given credential record.
52
+ */
53
+ function getRefreshCredentialMetadata(credentialRecord) {
54
+ return credentialRecord.metadata.get(refreshCredentialMetadataKey);
55
+ }
56
+
57
+ /**
58
+ * Sets the refresh credential metadata on the given credential record
59
+ *
60
+ * NOTE: this does not save the record.
61
+ */
62
+ function setRefreshCredentialMetadata(credentialRecord, metadata) {
63
+ credentialRecord.metadata.set(refreshCredentialMetadataKey, metadata);
64
+ }
65
+ function deleteRefreshCredentialMetadata(credentialRecord) {
66
+ credentialRecord.metadata.delete(refreshCredentialMetadataKey);
67
+ }
68
+ async function persistCredentialRecord(agentContext, record) {
69
+ if (record instanceof _core.W3cCredentialRecord) {
70
+ await agentContext.dependencyManager.resolve(_core.W3cCredentialRepository).update(agentContext, record);
71
+ } else if (record instanceof _core.SdJwtVcRecord) {
72
+ await agentContext.dependencyManager.resolve(_core.SdJwtVcRepository).update(agentContext, record);
73
+ } else if (record instanceof _core.MdocRecord) {
74
+ await agentContext.dependencyManager.resolve(_core.MdocRepository).update(agentContext, record);
75
+ } else {
76
+ throw new Error('Unsupported credential record type for persistence');
77
+ }
78
+ }
79
+ async function markOpenIDCredentialStatus({
80
+ credential,
81
+ status,
82
+ agentContext
83
+ }) {
84
+ const refreshMetadata = getRefreshCredentialMetadata(credential);
85
+ if (!refreshMetadata) {
86
+ throw new Error('No refresh metadata found on the credential record.');
87
+ }
88
+ refreshMetadata.lastCheckResult = status;
89
+ setRefreshCredentialMetadata(credential, refreshMetadata);
90
+
91
+ // Persist the updated credential record
92
+ await persistCredentialRecord(agentContext, credential);
93
+ }
94
+ const temporaryMetaVanillaObject = exports.temporaryMetaVanillaObject = {
95
+ notificationMetadata: undefined,
96
+ tokenResponse: undefined
97
+ };
39
98
  //# sourceMappingURL=metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["openId4VcCredentialMetadataKey","extractOpenId4VcCredentialMetadata","credentialMetadata","serverMetadata","credential","display","order","credential_subject","issuer","id","getOpenId4VcCredentialMetadata","credentialRecord","metadata","get","setOpenId4VcCredentialMetadata","set"],"sourceRoot":"../../../../src","sources":["modules/openid/metadata.tsx"],"mappings":";;;;;;;;AAoBA,MAAMA,8BAA8B,GAAG,qCAAqC;AAErE,SAASC,kCAAkCA,CAChDC,kBAA4G,EAC5GC,cAA2D,EAC9B;EAC7B,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAEH,kBAAkB,CAACG,OAAO;MACnCC,KAAK,EAAEJ,kBAAkB,CAACI,KAAK;MAC/BC,kBAAkB,EAAEL,kBAAkB,CAACK;IACzC,CAAC;IACDC,MAAM,EAAE;MACNH,OAAO,EAAEF,cAAc,CAACE,OAAO;MAC/BI,EAAE,EAAEN,cAAc,CAACM;IACrB;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACO,SAASC,8BAA8BA,CAC5CC,gBAAkE,EAC9B;EACpC,OAAOA,gBAAgB,CAACC,QAAQ,CAACC,GAAG,CAACb,8BAA8B,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASc,8BAA8BA,CAC5CH,gBAAkE,EAClEC,QAAqC,EACrC;EACAD,gBAAgB,CAACC,QAAQ,CAACG,GAAG,CAACf,8BAA8B,EAAEY,QAAQ,CAAC;AACzE","ignoreList":[]}
1
+ {"version":3,"names":["_core","require","openId4VcCredentialMetadataKey","exports","refreshCredentialMetadataKey","extractOpenId4VcCredentialMetadata","credentialMetadata","serverMetadata","credential","display","order","credential_subject","issuer","id","getOpenId4VcCredentialMetadata","credentialRecord","metadata","get","setOpenId4VcCredentialMetadata","set","getRefreshCredentialMetadata","setRefreshCredentialMetadata","deleteRefreshCredentialMetadata","delete","persistCredentialRecord","agentContext","record","W3cCredentialRecord","dependencyManager","resolve","W3cCredentialRepository","update","SdJwtVcRecord","SdJwtVcRepository","MdocRecord","MdocRepository","Error","markOpenIDCredentialStatus","status","refreshMetadata","lastCheckResult","temporaryMetaVanillaObject","notificationMetadata","undefined","tokenResponse"],"sourceRoot":"../../../../src","sources":["modules/openid/metadata.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useOpenId4VciNotifications = exports.NotificationEventType = void 0;
7
+ var _reactHooks = require("@credo-ts/react-hooks");
8
+ var _containerApi = require("../../container-api");
9
+ let NotificationEventType = exports.NotificationEventType = /*#__PURE__*/function (NotificationEventType) {
10
+ NotificationEventType["CREDENTIAL_ACCEPTED"] = "credential_accepted";
11
+ NotificationEventType["CREDENTIAL_DELETED"] = "credential_deleted";
12
+ NotificationEventType["CREDENTIAL_FAILURE"] = "credential_failure";
13
+ return NotificationEventType;
14
+ }({}); //TODO: ADD TYPE SAFETY
15
+ const useOpenId4VciNotifications = () => {
16
+ const {
17
+ agent
18
+ } = (0, _reactHooks.useAgent)();
19
+ const [logger] = (0, _containerApi.useServices)([_containerApi.TOKENS.UTIL_LOGGER, _containerApi.TOKENS.UTIL_OCA_RESOLVER]);
20
+
21
+ /**
22
+ * Sends notification to issuer with credential status.
23
+ * @param options
24
+ */
25
+ const sendOpenId4VciNotification = async options => {
26
+ if (!agent) {
27
+ const error = 'Agent undefined!';
28
+ logger.error(`[OpenIDCredentialNotification] ${error}`);
29
+ throw new Error(error);
30
+ }
31
+ await agent.modules.openId4VcHolder.sendNotification({
32
+ notificationMetadata: options === null || options === void 0 ? void 0 : options.notificationMetadata,
33
+ accessToken: options === null || options === void 0 ? void 0 : options.accessToken,
34
+ notificationEvent: options === null || options === void 0 ? void 0 : options.notificationEvent
35
+ });
36
+ };
37
+ return {
38
+ sendOpenId4VciNotification
39
+ };
40
+ };
41
+ exports.useOpenId4VciNotifications = useOpenId4VciNotifications;
42
+ //# sourceMappingURL=notification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactHooks","require","_containerApi","NotificationEventType","exports","useOpenId4VciNotifications","agent","useAgent","logger","useServices","TOKENS","UTIL_LOGGER","UTIL_OCA_RESOLVER","sendOpenId4VciNotification","options","error","Error","modules","openId4VcHolder","sendNotification","notificationMetadata","accessToken","notificationEvent"],"sourceRoot":"../../../../src","sources":["modules/openid/notification.tsx"],"mappings":";;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAAyD,IAE7CE,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA,OAMjC;AAOO,MAAME,0BAA0B,GAAGA,CAAA,KAAM;EAC9C,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,oBAAQ,EAAC,CAAC;EAC5B,MAAM,CAACC,MAAM,CAAC,GAAG,IAAAC,yBAAW,EAAC,CAACC,oBAAM,CAACC,WAAW,EAAED,oBAAM,CAACE,iBAAiB,CAAC,CAAC;;EAE5E;AACF;AACA;AACA;EACE,MAAMC,0BAA0B,GAAG,MAAOC,OAA0C,IAAK;IACvF,IAAI,CAACR,KAAK,EAAE;MACV,MAAMS,KAAK,GAAG,kBAAkB;MAChCP,MAAM,CAACO,KAAK,CAAC,kCAAkCA,KAAK,EAAE,CAAC;MACvD,MAAM,IAAIC,KAAK,CAACD,KAAK,CAAC;IACxB;IACA,MAAMT,KAAK,CAACW,OAAO,CAACC,eAAe,CAACC,gBAAgB,CAAC;MACnDC,oBAAoB,EAAEN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,oBAAoB;MACnDC,WAAW,EAAEP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,WAAW;MACjCC,iBAAiB,EAAER,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ;IAC9B,CAAC,CAAC;EACJ,CAAC;EACD,OAAO;IACLT;EACF,CAAC;AACH,CAAC;AAAAT,OAAA,CAAAC,0BAAA,GAAAA,0BAAA","ignoreList":[]}
@@ -178,6 +178,12 @@ const receiveCredentialFromOpenId4VciOffer = async ({
178
178
  tags: {}
179
179
  });
180
180
  }
181
+ const notificationMetadata = {
182
+ ...firstCredential.notificationMetadata
183
+ };
184
+ if (notificationMetadata) {
185
+ _metadata.temporaryMetaVanillaObject.notificationMetadata = notificationMetadata;
186
+ }
181
187
  const openId4VcMetadata = (0, _metadata.extractOpenId4VcCredentialMetadata)(resolvedCredentialOffer.offeredCredentials[0], {
182
188
  id: resolvedCredentialOffer.metadata.issuer,
183
189
  display: resolvedCredentialOffer.metadata.credentialIssuerMetadata.display
@@ -1 +1 @@
1
- {"version":3,"names":["_openid4vc","require","_core","_metadata","resolveOpenId4VciOffer","agent","data","uri","authorization","offerUri","encodeURIComponent","JSON","stringify","Error","config","logger","info","resolvedCredentialOffer","modules","openId4VcHolder","resolveCredentialOffer","exports","acquirePreAuthorizedAccessToken","txCode","requestToken","customCredentialBindingResolver","supportedDidMethods","keyType","supportsAllDidMethods","supportsJwk","credentialFormat","supportedCredentialId","pidSchemes","didMethod","includes","undefined","offeredCredentialConfiguration","offeredCredentialConfigurations","shouldKeyBeHardwareBackedForMsoMdoc","format","OpenId4VciCredentialFormatProfile","MsoMdoc","msoMdocDoctypes","doctype","shouldKeyBeHardwareBackedForSdJwtVc","sdJwtVcVcts","vct","shouldKeyBeHardwareBacked","key","wallet","createKey","keyBackend","KeyBackend","SecureElement","Software","didResult","dids","create","method","options","didState","state","verificationMethodId","didJwk","DidJwk","fromDid","did","didKey","DidKey","fingerprint","didUrl","SdJwtVc","jwk","getJwkFromKey","join","receiveCredentialFromOpenId4VciOffer","tokenResponse","credentialConfigurationIdsToRequest","clientId","offeredCredentialsToRequest","offeredCredentials","filter","offered","id","length","credentials","requestCredentials","credentialsToRequest","verifyCredentialStatus","allowedProofOfPossessionSignatureAlgorithms","JwaSignatureAlgorithm","EdDSA","ES256","credentialBindingResolver","firstCredential","record","credential","SdJwtVcRecord","compactSdJwtVc","compact","Mdoc","MdocRecord","mdoc","W3cCredentialRecord","tags","openId4VcMetadata","extractOpenId4VcCredentialMetadata","metadata","issuer","display","credentialIssuerMetadata","setOpenId4VcCredentialMetadata"],"sourceRoot":"../../../../src","sources":["modules/openid/offerResolve.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_openid4vc","require","_core","_metadata","resolveOpenId4VciOffer","agent","data","uri","authorization","offerUri","encodeURIComponent","JSON","stringify","Error","config","logger","info","resolvedCredentialOffer","modules","openId4VcHolder","resolveCredentialOffer","exports","acquirePreAuthorizedAccessToken","txCode","requestToken","customCredentialBindingResolver","supportedDidMethods","keyType","supportsAllDidMethods","supportsJwk","credentialFormat","supportedCredentialId","pidSchemes","didMethod","includes","undefined","offeredCredentialConfiguration","offeredCredentialConfigurations","shouldKeyBeHardwareBackedForMsoMdoc","format","OpenId4VciCredentialFormatProfile","MsoMdoc","msoMdocDoctypes","doctype","shouldKeyBeHardwareBackedForSdJwtVc","sdJwtVcVcts","vct","shouldKeyBeHardwareBacked","key","wallet","createKey","keyBackend","KeyBackend","SecureElement","Software","didResult","dids","create","method","options","didState","state","verificationMethodId","didJwk","DidJwk","fromDid","did","didKey","DidKey","fingerprint","didUrl","SdJwtVc","jwk","getJwkFromKey","join","receiveCredentialFromOpenId4VciOffer","tokenResponse","credentialConfigurationIdsToRequest","clientId","offeredCredentialsToRequest","offeredCredentials","filter","offered","id","length","credentials","requestCredentials","credentialsToRequest","verifyCredentialStatus","allowedProofOfPossessionSignatureAlgorithms","JwaSignatureAlgorithm","EdDSA","ES256","credentialBindingResolver","firstCredential","record","credential","SdJwtVcRecord","compactSdJwtVc","compact","Mdoc","MdocRecord","mdoc","W3cCredentialRecord","tags","notificationMetadata","temporaryMetaVanillaObject","openId4VcMetadata","extractOpenId4VcCredentialMetadata","metadata","issuer","display","credentialIssuerMetadata","setOpenId4VcCredentialMetadata"],"sourceRoot":"../../../../src","sources":["modules/openid/offerResolve.tsx"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AAgBA,IAAAE,SAAA,GAAAF,OAAA;AAMO,MAAMG,sBAAsB,GAAG,MAAAA,CAAO;EAC3CC,KAAK;EACLC,IAAI;EACJC,GAAG;EACHC;AAQF,CAAC,KAAiD;EAChD,IAAIC,QAAQ,GAAGF,GAAG;EAElB,IAAI,CAACE,QAAQ,IAAIH,IAAI,EAAE;IACrB;IACA;IACAG,QAAQ,GAAG,8CAA8CC,kBAAkB,CAACC,IAAI,CAACC,SAAS,CAACN,IAAI,CAAC,CAAC,EAAE;EACrG,CAAC,MAAM,IAAI,CAACG,QAAQ,EAAE;IACpB,MAAM,IAAII,KAAK,CAAC,qCAAqC,CAAC;EACxD;EAEAR,KAAK,CAACS,MAAM,CAACC,MAAM,CAACC,IAAI,CAAC,wBAAwBP,QAAQ,EAAE,EAAE;IAC3DA,QAAQ;IACRH,IAAI,EAAEA,IAAI;IACVC,GAAG,EAAEE;EACP,CAAC,CAAC;EAEF,MAAMQ,uBAAuB,GAAG,MAAMZ,KAAK,CAACa,OAAO,CAACC,eAAe,CAACC,sBAAsB,CAACX,QAAQ,CAAC;EAEpG,IAAID,aAAa,EAAE;IACjB,MAAM,IAAIK,KAAK,CAAC,4DAA4D,CAAC;EAC/E;EAEA,OAAOI,uBAAuB;AAChC,CAAC;AAAAI,OAAA,CAAAjB,sBAAA,GAAAA,sBAAA;AAEM,eAAekB,+BAA+BA,CAAC;EACpDjB,KAAK;EACLY,uBAAuB;EACvBM;AAKF,CAAC,EAA2C;EAC1C,OAAO,MAAMlB,KAAK,CAACa,OAAO,CAACC,eAAe,CAACK,YAAY,CAAC;IACtDP,uBAAuB;IACvBM;EACF,CAAC,CAAC;AACJ;AAEO,MAAME,+BAA+B,GAAG,MAAAA,CAAO;EACpDpB,KAAK;EACLqB,mBAAmB;EACnBC,OAAO;EACPC,qBAAqB;EACrBC,WAAW;EACXC,gBAAgB;EAChBC,qBAAqB;EACrBd,uBAAuB;EACvBe;AAKF,CAAC,KAAgD;EAC/C;EACA;EACA,IAAIC,SAAoC,GACtCL,qBAAqB,IAAIF,mBAAmB,aAAnBA,mBAAmB,eAAnBA,mBAAmB,CAAEQ,QAAQ,CAAC,SAAS,CAAC,GAC7D,KAAK,GACLR,mBAAmB,aAAnBA,mBAAmB,eAAnBA,mBAAmB,CAAEQ,QAAQ,CAAC,SAAS,CAAC,GACxC,KAAK,GACLC,SAAS;;EAEf;EACA;EACA;EACA,IAAI,CAACT,mBAAmB,IAAI,CAACG,WAAW,EAAE;IACxCI,SAAS,GAAG,KAAK;EACnB;EAEA,MAAMG,8BAA8B,GAAGL,qBAAqB,GACxDd,uBAAuB,CAACoB,+BAA+B,CAACN,qBAAqB,CAAC,GAC9EI,SAAS;EAEb,MAAMG,mCAAmC,GACvC,CAAAF,8BAA8B,aAA9BA,8BAA8B,uBAA9BA,8BAA8B,CAAEG,MAAM,MAAKC,4CAAiC,CAACC,OAAO,KACpFT,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEU,eAAe,CAACR,QAAQ,CAACE,8BAA8B,CAACO,OAAO,CAAC;EAE9E,MAAMC,mCAAmC,GACvC,CAAAR,8BAA8B,aAA9BA,8BAA8B,uBAA9BA,8BAA8B,CAAEG,MAAM,MAAK,WAAW,KACtDP,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEa,WAAW,CAACX,QAAQ,CAACE,8BAA8B,CAACU,GAAG,CAAC;EAEtE,MAAMC,yBAAyB,GAAGH,mCAAmC,IAAIN,mCAAmC;EAE5G,IAAI,CAACX,OAAO,EAAE;IACZ,MAAM,IAAId,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,MAAMmC,GAAG,GAAG,MAAM3C,KAAK,CAAC4C,MAAM,CAACC,SAAS,CAAC;IACvCvB,OAAO;IACPwB,UAAU,EAAEJ,yBAAyB,GAAGK,gBAAU,CAACC,aAAa,GAAGD,gBAAU,CAACE;EAChF,CAAC,CAAC;EAEF,IAAIrB,SAAS,EAAE;IACb,MAAMsB,SAAS,GAAG,MAAMlD,KAAK,CAACmD,IAAI,CAACC,MAAM,CAA4C;MACnFC,MAAM,EAAEzB,SAAS;MACjB0B,OAAO,EAAE;QACPX;MACF;IACF,CAAC,CAAC;IAEF,IAAIO,SAAS,CAACK,QAAQ,CAACC,KAAK,KAAK,UAAU,EAAE;MAC3C,MAAM,IAAIhD,KAAK,CAAC,sBAAsB,CAAC;IACzC;IAEA,IAAIiD,oBAA4B;IAChC,IAAI7B,SAAS,KAAK,KAAK,EAAE;MACvB,MAAM8B,MAAM,GAAGC,YAAM,CAACC,OAAO,CAACV,SAAS,CAACK,QAAQ,CAACM,GAAG,CAAC;MACrDJ,oBAAoB,GAAGC,MAAM,CAACD,oBAAoB;IACpD,CAAC,MAAM;MACL,MAAMK,MAAM,GAAGC,YAAM,CAACH,OAAO,CAACV,SAAS,CAACK,QAAQ,CAACM,GAAG,CAAC;MACrDJ,oBAAoB,GAAG,GAAGK,MAAM,CAACD,GAAG,IAAIC,MAAM,CAACnB,GAAG,CAACqB,WAAW,EAAE;IAClE;IAEA,OAAO;MACLC,MAAM,EAAER,oBAAoB;MAC5BJ,MAAM,EAAE;IACV,CAAC;EACH;;EAEA;EACA,IACE7B,WAAW,KACVC,gBAAgB,KAAKU,4CAAiC,CAAC+B,OAAO,IAC7DzC,gBAAgB,KAAKU,4CAAiC,CAACC,OAAO,CAAC,EACjE;IACA,OAAO;MACLiB,MAAM,EAAE,KAAK;MACbc,GAAG,EAAE,IAAAC,mBAAa,EAACzB,GAAG;IACxB,CAAC;EACH;EAEA,MAAM,IAAInC,KAAK,CACb,wIACEgB,WAAW,GAAG,OAAO,GAAG,EAAE,GACzB,CAAAH,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAEgD,IAAI,CAAC,IAAI,CAAC,KAAI,SAAS,EACjD,CAAC;AACH,CAAC;AAAArD,OAAA,CAAAI,+BAAA,GAAAA,+BAAA;AAEM,MAAMkD,oCAAoC,GAAG,MAAAA,CAAO;EACzDtE,KAAK;EACLY,uBAAuB;EACvB2D,aAAa;EACbC,mCAAmC;EACnCC,QAAQ;EACR9C;AAQF,CAAC,KAAK;EACJ,MAAM+C,2BAA2B,GAAGF,mCAAmC,GACnE5D,uBAAuB,CAAC+D,kBAAkB,CAACC,MAAM,CAAEC,OAAO,IACxDL,mCAAmC,CAAC3C,QAAQ,CAACgD,OAAO,CAACC,EAAE,CACzD,CAAC,GACD,CAAClE,uBAAuB,CAAC+D,kBAAkB,CAAC,CAAC,CAAC,CAAC;EAEnD,IAAID,2BAA2B,CAACK,MAAM,KAAK,CAAC,EAAE;IAC5C,MAAM,IAAIvE,KAAK,CACb,+DAA+DgE,mCAAmC,gEACpG,CAAC;EACH;EAEA,MAAMQ,WAAW,GAAG,MAAMhF,KAAK,CAACa,OAAO,CAACC,eAAe,CAACmE,kBAAkB,CAAC;IACzErE,uBAAuB;IACvB,GAAG2D,aAAa;IAChBE,QAAQ;IACRS,oBAAoB,EAAEV,mCAAmC;IACzDW,sBAAsB,EAAE,KAAK;IAC7BC,2CAA2C,EAAE;IAC3C;IACA;IACA;IACAC,2BAAqB,CAACC,KAAK,EAC3BD,2BAAqB,CAACE,KAAK,CAC5B;IACDC,yBAAyB,EAAE,MAAAA,CAAO;MAChCnE,mBAAmB;MACnBC,OAAO;MACPC,qBAAqB;MACrBC,WAAW;MACXC,gBAAgB;MAChBC;IACkC,CAAC,KAAK;MACxC,OAAON,+BAA+B,CAAC;QACrCpB,KAAK;QACLqB,mBAAmB;QACnBC,OAAO;QACPC,qBAAqB;QACrBC,WAAW;QACXC,gBAAgB;QAChBC,qBAAqB;QACrBd,uBAAuB;QACvBe;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;;EAEF;EACA,MAAM,CAAC8D,eAAe,CAAC,GAAGT,WAAW;EAErC,IAAI,CAACS,eAAe,EAClB,MAAM,IAAIjF,KAAK,CAAC,oFAAoF,CAAC;EAEvG,IAAIkF,MAAwD;EAE5D,IAAI,OAAOD,eAAe,KAAK,QAAQ,EAAE;IACvC,MAAM,IAAIjF,KAAK,CAAC,mFAAmF,CAAC;EACtG;EAEA,IAAI,SAAS,IAAIiF,eAAe,CAACE,UAAU,EAAE;IAC3C;IACAD,MAAM,GAAG,IAAIE,mBAAa,CAAC;MACzBC,cAAc,EAAEJ,eAAe,CAACE,UAAU,CAACG;IAC7C,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIL,eAAe,CAACE,UAAU,YAAYI,UAAI,EAAE;IACrDL,MAAM,GAAG,IAAIM,gBAAU,CAAC;MACtBC,IAAI,EAAER,eAAe,CAACE;IACxB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLD,MAAM,GAAG,IAAIQ,yBAAmB,CAAC;MAC/BP,UAAU,EAAEF,eAAe,CAACE,UAAwE;MACpG;MACAQ,IAAI,EAAE,CAAC;IACT,CAAC,CAAC;EACJ;EAEA,MAAMC,oBAAoB,GAAG;IAAE,GAAGX,eAAe,CAACW;EAAqB,CAAC;EACxE,IAAIA,oBAAoB,EAAE;IACxBC,oCAA0B,CAACD,oBAAoB,GAAGA,oBAAoB;EACxE;EAEA,MAAME,iBAAiB,GAAG,IAAAC,4CAAkC,EAC1D3F,uBAAuB,CAAC+D,kBAAkB,CAAC,CAAC,CAAC,EAC7C;IACEG,EAAE,EAAElE,uBAAuB,CAAC4F,QAAQ,CAACC,MAAM;IAC3CC,OAAO,EAAE9F,uBAAuB,CAAC4F,QAAQ,CAACG,wBAAwB,CAACD;EACrE,CACF,CAAC;EAED,IAAAE,wCAA8B,EAAClB,MAAM,EAAEY,iBAAiB,CAAC;EAEzD,OAAOZ,MAAM;AACf,CAAC;AAAA1E,OAAA,CAAAsD,oCAAA,GAAAA,oCAAA","ignoreList":[]}