@bifold/core 2.10.2 → 2.11.1
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.
- package/lib/commonjs/components/listItems/NotificationListItem.js +19 -11
- package/lib/commonjs/components/listItems/NotificationListItem.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard.js +3 -1
- package/lib/commonjs/components/misc/CredentialCard.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard10.js +13 -5
- package/lib/commonjs/components/misc/CredentialCard10.js.map +1 -1
- package/lib/commonjs/components/misc/CredentialCard11.js +25 -22
- package/lib/commonjs/components/misc/CredentialCard11.js.map +1 -1
- package/lib/commonjs/components/views/CredentialDetailPrimaryHeader.js +8 -7
- package/lib/commonjs/components/views/CredentialDetailPrimaryHeader.js.map +1 -1
- package/lib/commonjs/components/views/KeyboardView.js +19 -4
- package/lib/commonjs/components/views/KeyboardView.js.map +1 -1
- package/lib/commonjs/constants.js +1 -0
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/container-api.js +3 -1
- package/lib/commonjs/container-api.js.map +1 -1
- package/lib/commonjs/container-impl.js +16 -0
- package/lib/commonjs/container-impl.js.map +1 -1
- package/lib/commonjs/hooks/notifications.js +4 -2
- package/lib/commonjs/hooks/notifications.js.map +1 -1
- package/lib/commonjs/hooks/useBifoldAgentSetup.js +5 -3
- package/lib/commonjs/hooks/useBifoldAgentSetup.js.map +1 -1
- package/lib/commonjs/index.js +16 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/en/en.json +8 -1
- package/lib/commonjs/localization/fr/fr.json +8 -1
- package/lib/commonjs/localization/pt-br/pt-br.json +8 -1
- package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js +41 -1
- package/lib/commonjs/modules/openid/components/OpenIDCredentialCard.js.map +1 -1
- package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js +34 -111
- package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/openid.js +38 -6
- package/lib/commonjs/modules/openid/hooks/openid.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js +82 -0
- package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js.map +1 -0
- package/lib/commonjs/modules/openid/hooks/useCredentialErrorsFromRegistry.js +60 -0
- package/lib/commonjs/modules/openid/hooks/useCredentialErrorsFromRegistry.js.map +1 -0
- package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js +84 -0
- package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js.map +1 -0
- package/lib/commonjs/modules/openid/hooks/useOpenIdReplacementNavigation.js +55 -0
- package/lib/commonjs/modules/openid/hooks/useOpenIdReplacementNavigation.js.map +1 -0
- package/lib/commonjs/modules/openid/hooks/useReplacementNotifications.js +82 -0
- package/lib/commonjs/modules/openid/hooks/useReplacementNotifications.js.map +1 -0
- package/lib/commonjs/modules/openid/metadata.js +60 -1
- package/lib/commonjs/modules/openid/metadata.js.map +1 -1
- package/lib/commonjs/modules/openid/notification.js +42 -0
- package/lib/commonjs/modules/openid/notification.js.map +1 -0
- package/lib/commonjs/modules/openid/offerResolve.js +6 -0
- package/lib/commonjs/modules/openid/offerResolve.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/reIssuance.js +95 -0
- package/lib/commonjs/modules/openid/refresh/reIssuance.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js +265 -0
- package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/refreshToken.js +78 -0
- package/lib/commonjs/modules/openid/refresh/refreshToken.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/registery.js +143 -0
- package/lib/commonjs/modules/openid/refresh/registery.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/types.js +17 -0
- package/lib/commonjs/modules/openid/refresh/types.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js +34 -0
- package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js.map +1 -0
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js +39 -2
- package/lib/commonjs/modules/openid/screens/OpenIDCredentialOffer.js.map +1 -1
- package/lib/commonjs/modules/openid/utils/utils.js +66 -0
- package/lib/commonjs/modules/openid/utils/utils.js.map +1 -1
- package/lib/commonjs/screens/CredentialDetails.js +28 -6
- package/lib/commonjs/screens/CredentialDetails.js.map +1 -1
- package/lib/commonjs/screens/CredentialOffer.js +6 -9
- package/lib/commonjs/screens/CredentialOffer.js.map +1 -1
- package/lib/commonjs/screens/CredentialOfferAccept.js +18 -2
- package/lib/commonjs/screens/CredentialOfferAccept.js.map +1 -1
- package/lib/commonjs/screens/Developer.js +26 -0
- package/lib/commonjs/screens/Developer.js.map +1 -1
- package/lib/commonjs/screens/Home.js +39 -1
- package/lib/commonjs/screens/Home.js.map +1 -1
- package/lib/commonjs/screens/ListCredentials.js +2 -2
- package/lib/commonjs/screens/ListCredentials.js.map +1 -1
- package/lib/commonjs/screens/ProofChangeCredential.js +3 -3
- package/lib/commonjs/screens/ProofChangeCredential.js.map +1 -1
- package/lib/commonjs/screens/ProofRequest.js +4 -4
- package/lib/commonjs/screens/ProofRequest.js.map +1 -1
- package/lib/commonjs/services/AgentBridge.js +90 -0
- package/lib/commonjs/services/AgentBridge.js.map +1 -0
- package/lib/commonjs/types/credentials.js +9 -0
- package/lib/commonjs/types/credentials.js.map +1 -1
- package/lib/commonjs/utils/agent.js +1 -1
- package/lib/commonjs/utils/agent.js.map +1 -1
- package/lib/commonjs/utils/cred-def.js +50 -43
- package/lib/commonjs/utils/cred-def.js.map +1 -1
- package/lib/commonjs/utils/credential.js +217 -1
- package/lib/commonjs/utils/credential.js.map +1 -1
- package/lib/commonjs/utils/helpers.js +83 -22
- package/lib/commonjs/utils/helpers.js.map +1 -1
- package/lib/module/components/listItems/NotificationListItem.js +19 -11
- package/lib/module/components/listItems/NotificationListItem.js.map +1 -1
- package/lib/module/components/misc/CredentialCard.js +3 -1
- package/lib/module/components/misc/CredentialCard.js.map +1 -1
- package/lib/module/components/misc/CredentialCard10.js +14 -6
- package/lib/module/components/misc/CredentialCard10.js.map +1 -1
- package/lib/module/components/misc/CredentialCard11.js +17 -14
- package/lib/module/components/misc/CredentialCard11.js.map +1 -1
- package/lib/module/components/views/CredentialDetailPrimaryHeader.js +9 -8
- package/lib/module/components/views/CredentialDetailPrimaryHeader.js.map +1 -1
- package/lib/module/components/views/KeyboardView.js +19 -4
- package/lib/module/components/views/KeyboardView.js.map +1 -1
- package/lib/module/constants.js +1 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/container-api.js +3 -1
- package/lib/module/container-api.js.map +1 -1
- package/lib/module/container-impl.js +16 -0
- package/lib/module/container-impl.js.map +1 -1
- package/lib/module/hooks/notifications.js +4 -2
- package/lib/module/hooks/notifications.js.map +1 -1
- package/lib/module/hooks/useBifoldAgentSetup.js +5 -3
- package/lib/module/hooks/useBifoldAgentSetup.js.map +1 -1
- package/lib/module/index.js +3 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/en/en.json +8 -1
- package/lib/module/localization/fr/fr.json +8 -1
- package/lib/module/localization/pt-br/pt-br.json +8 -1
- package/lib/module/modules/openid/components/OpenIDCredentialCard.js +41 -1
- package/lib/module/modules/openid/components/OpenIDCredentialCard.js.map +1 -1
- package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js +34 -111
- package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
- package/lib/module/modules/openid/hooks/openid.js +38 -5
- package/lib/module/modules/openid/hooks/openid.js.map +1 -1
- package/lib/module/modules/openid/hooks/useAcceptReplacement.js +76 -0
- package/lib/module/modules/openid/hooks/useAcceptReplacement.js.map +1 -0
- package/lib/module/modules/openid/hooks/useCredentialErrorsFromRegistry.js +54 -0
- package/lib/module/modules/openid/hooks/useCredentialErrorsFromRegistry.js.map +1 -0
- package/lib/module/modules/openid/hooks/useDeclineReplacement.js +77 -0
- package/lib/module/modules/openid/hooks/useDeclineReplacement.js.map +1 -0
- package/lib/module/modules/openid/hooks/useOpenIdReplacementNavigation.js +47 -0
- package/lib/module/modules/openid/hooks/useOpenIdReplacementNavigation.js.map +1 -0
- package/lib/module/modules/openid/hooks/useReplacementNotifications.js +75 -0
- package/lib/module/modules/openid/hooks/useReplacementNotifications.js.map +1 -0
- package/lib/module/modules/openid/metadata.js +52 -1
- package/lib/module/modules/openid/metadata.js.map +1 -1
- package/lib/module/modules/openid/notification.js +38 -0
- package/lib/module/modules/openid/notification.js.map +1 -0
- package/lib/module/modules/openid/offerResolve.js +7 -1
- package/lib/module/modules/openid/offerResolve.js.map +1 -1
- package/lib/module/modules/openid/refresh/reIssuance.js +89 -0
- package/lib/module/modules/openid/refresh/reIssuance.js.map +1 -0
- package/lib/module/modules/openid/refresh/refreshOrchestrator.js +257 -0
- package/lib/module/modules/openid/refresh/refreshOrchestrator.js.map +1 -0
- package/lib/module/modules/openid/refresh/refreshToken.js +72 -0
- package/lib/module/modules/openid/refresh/refreshToken.js.map +1 -0
- package/lib/module/modules/openid/refresh/registery.js +135 -0
- package/lib/module/modules/openid/refresh/registery.js.map +1 -0
- package/lib/module/modules/openid/refresh/types.js +11 -0
- package/lib/module/modules/openid/refresh/types.js.map +1 -0
- package/lib/module/modules/openid/refresh/verifyCredentialStatus.js +28 -0
- package/lib/module/modules/openid/refresh/verifyCredentialStatus.js.map +1 -0
- package/lib/module/modules/openid/screens/OpenIDCredentialOffer.js +39 -2
- package/lib/module/modules/openid/screens/OpenIDCredentialOffer.js.map +1 -1
- package/lib/module/modules/openid/utils/utils.js +64 -1
- package/lib/module/modules/openid/utils/utils.js.map +1 -1
- package/lib/module/screens/CredentialDetails.js +29 -7
- package/lib/module/screens/CredentialDetails.js.map +1 -1
- package/lib/module/screens/CredentialOffer.js +7 -10
- package/lib/module/screens/CredentialOffer.js.map +1 -1
- package/lib/module/screens/CredentialOfferAccept.js +19 -3
- package/lib/module/screens/CredentialOfferAccept.js.map +1 -1
- package/lib/module/screens/Developer.js +27 -1
- package/lib/module/screens/Developer.js.map +1 -1
- package/lib/module/screens/Home.js +41 -3
- package/lib/module/screens/Home.js.map +1 -1
- package/lib/module/screens/ListCredentials.js +1 -1
- package/lib/module/screens/ListCredentials.js.map +1 -1
- package/lib/module/screens/ProofChangeCredential.js +1 -1
- package/lib/module/screens/ProofChangeCredential.js.map +1 -1
- package/lib/module/screens/ProofRequest.js +1 -1
- package/lib/module/screens/ProofRequest.js.map +1 -1
- package/lib/module/services/AgentBridge.js +83 -0
- package/lib/module/services/AgentBridge.js.map +1 -0
- package/lib/module/types/credentials.js +8 -1
- package/lib/module/types/credentials.js.map +1 -1
- package/lib/module/utils/agent.js +2 -2
- package/lib/module/utils/agent.js.map +1 -1
- package/lib/module/utils/cred-def.js +46 -43
- package/lib/module/utils/cred-def.js.map +1 -1
- package/lib/module/utils/credential.js +210 -0
- package/lib/module/utils/credential.js.map +1 -1
- package/lib/module/utils/helpers.js +80 -22
- package/lib/module/utils/helpers.js.map +1 -1
- package/lib/typescript/src/components/listItems/NotificationListItem.d.ts.map +1 -1
- package/lib/typescript/src/components/misc/CredentialCard.d.ts +1 -2
- package/lib/typescript/src/components/misc/CredentialCard.d.ts.map +1 -1
- package/lib/typescript/src/components/misc/CredentialCard10.d.ts.map +1 -1
- package/lib/typescript/src/components/misc/CredentialCard11.d.ts +1 -5
- package/lib/typescript/src/components/misc/CredentialCard11.d.ts.map +1 -1
- package/lib/typescript/src/components/views/CredentialDetailPrimaryHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/views/KeyboardView.d.ts +14 -0
- package/lib/typescript/src/components/views/KeyboardView.d.ts.map +1 -1
- package/lib/typescript/src/constants.d.ts +2 -1
- package/lib/typescript/src/constants.d.ts.map +1 -1
- package/lib/typescript/src/container-api.d.ts +8 -0
- package/lib/typescript/src/container-api.d.ts.map +1 -1
- package/lib/typescript/src/container-impl.d.ts +2 -0
- package/lib/typescript/src/container-impl.d.ts.map +1 -1
- package/lib/typescript/src/hooks/notifications.d.ts +2 -1
- package/lib/typescript/src/hooks/notifications.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useBifoldAgentSetup.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/components/OpenIDCredentialCard.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts +1 -2
- package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/openid.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts +11 -0
- package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/hooks/useCredentialErrorsFromRegistry.d.ts +9 -0
- package/lib/typescript/src/modules/openid/hooks/useCredentialErrorsFromRegistry.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/hooks/useDeclineReplacement.d.ts +16 -0
- package/lib/typescript/src/modules/openid/hooks/useDeclineReplacement.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/hooks/useOpenIdReplacementNavigation.d.ts +8 -0
- package/lib/typescript/src/modules/openid/hooks/useOpenIdReplacementNavigation.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/hooks/useReplacementNotifications.d.ts +6 -0
- package/lib/typescript/src/modules/openid/hooks/useReplacementNotifications.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/metadata.d.ts +27 -2
- package/lib/typescript/src/modules/openid/metadata.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/notification.d.ts +16 -0
- package/lib/typescript/src/modules/openid/notification.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/offerResolve.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts +19 -0
- package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts +25 -0
- package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts +9 -0
- package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/registery.d.ts +55 -0
- package/lib/typescript/src/modules/openid/refresh/registery.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/types.d.ts +59 -0
- package/lib/typescript/src/modules/openid/refresh/types.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts +11 -0
- package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/screens/OpenIDCredentialOffer.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/utils/utils.d.ts +4 -0
- package/lib/typescript/src/modules/openid/utils/utils.d.ts.map +1 -1
- package/lib/typescript/src/screens/CredentialDetails.d.ts.map +1 -1
- package/lib/typescript/src/screens/CredentialOffer.d.ts.map +1 -1
- package/lib/typescript/src/screens/CredentialOfferAccept.d.ts.map +1 -1
- package/lib/typescript/src/screens/Developer.d.ts.map +1 -1
- package/lib/typescript/src/screens/Home.d.ts.map +1 -1
- package/lib/typescript/src/screens/ListCredentials.d.ts.map +1 -1
- package/lib/typescript/src/services/AgentBridge.d.ts +31 -0
- package/lib/typescript/src/services/AgentBridge.d.ts.map +1 -0
- package/lib/typescript/src/types/credentials.d.ts +5 -0
- package/lib/typescript/src/types/credentials.d.ts.map +1 -1
- package/lib/typescript/src/types/notification.d.ts +4 -0
- package/lib/typescript/src/types/notification.d.ts.map +1 -1
- package/lib/typescript/src/utils/agent.d.ts.map +1 -1
- package/lib/typescript/src/utils/cred-def.d.ts +8 -3
- package/lib/typescript/src/utils/cred-def.d.ts.map +1 -1
- package/lib/typescript/src/utils/credential.d.ts +36 -0
- package/lib/typescript/src/utils/credential.d.ts.map +1 -1
- package/lib/typescript/src/utils/helpers.d.ts +5 -1
- package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
- package/package.json +10 -4
- package/lib/commonjs/modules/openid/refresh/refreshMetadata.js +0 -25
- package/lib/commonjs/modules/openid/refresh/refreshMetadata.js.map +0 -1
- package/lib/module/modules/openid/refresh/refreshMetadata.js +0 -18
- package/lib/module/modules/openid/refresh/refreshMetadata.js.map +0 -1
- package/lib/typescript/src/modules/openid/refresh/refreshMetadata.d.ts +0 -20
- package/lib/typescript/src/modules/openid/refresh/refreshMetadata.d.ts.map +0 -1
|
@@ -12,7 +12,9 @@ var _constants = require("../../../constants");
|
|
|
12
12
|
var _error = require("../../../types/error");
|
|
13
13
|
var _offerResolve = require("../offerResolve");
|
|
14
14
|
var _resolverProof = require("../resolverProof");
|
|
15
|
-
var
|
|
15
|
+
var _utils = require("../utils/utils");
|
|
16
|
+
var _metadata = require("../metadata");
|
|
17
|
+
var _types = require("../refresh/types");
|
|
16
18
|
const useOpenID = ({
|
|
17
19
|
openIDUri,
|
|
18
20
|
openIDPresentationUri
|
|
@@ -29,31 +31,61 @@ const useOpenID = ({
|
|
|
29
31
|
return;
|
|
30
32
|
}
|
|
31
33
|
try {
|
|
32
|
-
var
|
|
34
|
+
var _getCredentialConfigu;
|
|
33
35
|
const resolvedCredentialOffer = await (0, _offerResolve.resolveOpenId4VciOffer)({
|
|
34
36
|
agent: agent,
|
|
35
37
|
uri: uri
|
|
36
38
|
});
|
|
37
|
-
const
|
|
39
|
+
const authServers = resolvedCredentialOffer.metadata.credentialIssuerMetadata.authorization_servers;
|
|
40
|
+
// const authServer = authServers?.[0]
|
|
41
|
+
const credentialIssuer = resolvedCredentialOffer.metadata.issuer;
|
|
42
|
+
const authServer = credentialIssuer;
|
|
43
|
+
const configID = (_getCredentialConfigu = (0, _utils.getCredentialConfigurationIds)(resolvedCredentialOffer)) === null || _getCredentialConfigu === void 0 ? void 0 : _getCredentialConfigu[0];
|
|
44
|
+
const tokenEndpoint = resolvedCredentialOffer.metadata.token_endpoint;
|
|
45
|
+
const issuerMetadata = resolvedCredentialOffer.metadata.credentialIssuerMetadata;
|
|
46
|
+
const credentialEndpoint = resolvedCredentialOffer.metadata.credential_endpoint;
|
|
47
|
+
if (!configID) {
|
|
48
|
+
throw new Error('No credential configuration ID found in the credential offer metadata');
|
|
49
|
+
}
|
|
50
|
+
if (!authServer) {
|
|
51
|
+
throw new Error('No authorization server found in the credential offer metadata');
|
|
52
|
+
}
|
|
53
|
+
if (!credentialIssuer) {
|
|
54
|
+
throw new Error('No credential issuer found in the credential offer metadata');
|
|
55
|
+
}
|
|
38
56
|
const tokenResponse = await (0, _offerResolve.acquirePreAuthorizedAccessToken)({
|
|
39
57
|
agent,
|
|
40
58
|
resolvedCredentialOffer
|
|
41
59
|
});
|
|
42
60
|
const refreshToken = tokenResponse.refreshToken;
|
|
61
|
+
_metadata.temporaryMetaVanillaObject.tokenResponse = tokenResponse;
|
|
43
62
|
const credential = await (0, _offerResolve.receiveCredentialFromOpenId4VciOffer)({
|
|
44
63
|
agent,
|
|
45
64
|
resolvedCredentialOffer,
|
|
46
65
|
tokenResponse: tokenResponse
|
|
47
66
|
});
|
|
48
67
|
if (refreshToken && authServer) {
|
|
49
|
-
(0,
|
|
68
|
+
(0, _metadata.setRefreshCredentialMetadata)(credential, {
|
|
50
69
|
authServer: authServer,
|
|
51
|
-
|
|
70
|
+
tokenEndpoint: tokenEndpoint,
|
|
71
|
+
refreshToken: refreshToken,
|
|
72
|
+
issuerMetadataCache: {
|
|
73
|
+
credential_issuer: credentialIssuer,
|
|
74
|
+
credential_endpoint: credentialEndpoint,
|
|
75
|
+
token_endpoint: tokenEndpoint,
|
|
76
|
+
authorization_servers: authServers,
|
|
77
|
+
credential_configurations_supported: issuerMetadata === null || issuerMetadata === void 0 ? void 0 : issuerMetadata.credential_configurations_supported
|
|
78
|
+
},
|
|
79
|
+
credentialIssuer: credentialIssuer,
|
|
80
|
+
credentialConfigurationId: configID,
|
|
81
|
+
lastCheckedAt: Date.now(),
|
|
82
|
+
lastCheckResult: _types.RefreshStatus.Valid,
|
|
83
|
+
attemptCount: 0,
|
|
84
|
+
resolvedCredentialOffer: resolvedCredentialOffer
|
|
52
85
|
});
|
|
53
86
|
}
|
|
54
87
|
return credential;
|
|
55
88
|
} catch (err) {
|
|
56
|
-
//TODO: Sppecify different error
|
|
57
89
|
const error = new _error.BifoldError(t('Error.Title1024'), t('Error.Message1024'), (err === null || err === void 0 ? void 0 : err.message) ?? err, 1043);
|
|
58
90
|
_reactNative.DeviceEventEmitter.emit(_constants.EventTypes.ERROR_ADDED, error);
|
|
59
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactHooks","require","_react","_reactI18next","_reactNative","_constants","_error","_offerResolve","_resolverProof","
|
|
1
|
+
{"version":3,"names":["_reactHooks","require","_react","_reactI18next","_reactNative","_constants","_error","_offerResolve","_resolverProof","_utils","_metadata","_types","useOpenID","openIDUri","openIDPresentationUri","openIdRecord","setOpenIdRecord","useState","agent","useAgent","t","useTranslation","resolveOpenIDCredential","useCallback","uri","_getCredentialConfigu","resolvedCredentialOffer","resolveOpenId4VciOffer","authServers","metadata","credentialIssuerMetadata","authorization_servers","credentialIssuer","issuer","authServer","configID","getCredentialConfigurationIds","tokenEndpoint","token_endpoint","issuerMetadata","credentialEndpoint","credential_endpoint","Error","tokenResponse","acquirePreAuthorizedAccessToken","refreshToken","temporaryMetaVanillaObject","credential","receiveCredentialFromOpenId4VciOffer","setRefreshCredentialMetadata","issuerMetadataCache","credential_issuer","credential_configurations_supported","credentialConfigurationId","lastCheckedAt","Date","now","lastCheckResult","RefreshStatus","Valid","attemptCount","err","error","BifoldError","message","DeviceEventEmitter","emit","EventTypes","ERROR_ADDED","resolveOpenIDPresentationRequest","record","getCredentialsForProofRequest","useEffect","then","value","exports"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/openid.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -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":"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","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
|
-
|
|
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":"
|
|
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":";;;;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAmBO,MAAMC,8BAA8B,GAAAC,OAAA,CAAAD,8BAAA,GAAG,qCAAqC;AAC5E,MAAME,4BAA4B,GAAAD,OAAA,CAAAC,4BAAA,GAAG,mCAAmC;AAsBxE,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,CAACf,8BAA8B,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASgB,8BAA8BA,CAC5CH,gBAAkE,EAClEC,QAAqC,EACrC;EACAD,gBAAgB,CAACC,QAAQ,CAACG,GAAG,CAACjB,8BAA8B,EAAEc,QAAQ,CAAC;AACzE;;AAEA;AACA;AACA;AACO,SAASI,4BAA4BA,CAC1CL,gBAAkE,EAChC;EAClC,OAAOA,gBAAgB,CAACC,QAAQ,CAACC,GAAG,CAACb,4BAA4B,CAAC;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASiB,4BAA4BA,CAC1CN,gBAAkE,EAClEC,QAAmC,EACnC;EACAD,gBAAgB,CAACC,QAAQ,CAACG,GAAG,CAACf,4BAA4B,EAAEY,QAAQ,CAAC;AACvE;AAEO,SAASM,+BAA+BA,CAACP,gBAAkE,EAAE;EAClHA,gBAAgB,CAACC,QAAQ,CAACO,MAAM,CAACnB,4BAA4B,CAAC;AAChE;AAEO,eAAeoB,uBAAuBA,CAC3CC,YAA0B,EAC1BC,MAAwD,EACxD;EACA,IAAIA,MAAM,YAAYC,yBAAmB,EAAE;IACzC,MAAMF,YAAY,CAACG,iBAAiB,CAACC,OAAO,CAACC,6BAAuB,CAAC,CAACC,MAAM,CAACN,YAAY,EAAEC,MAAM,CAAC;EACpG,CAAC,MAAM,IAAIA,MAAM,YAAYM,mBAAa,EAAE;IAC1C,MAAMP,YAAY,CAACG,iBAAiB,CAACC,OAAO,CAACI,uBAAiB,CAAC,CAACF,MAAM,CAACN,YAAY,EAAEC,MAAM,CAAC;EAC9F,CAAC,MAAM,IAAIA,MAAM,YAAYQ,gBAAU,EAAE;IACvC,MAAMT,YAAY,CAACG,iBAAiB,CAACC,OAAO,CAACM,oBAAc,CAAC,CAACJ,MAAM,CAACN,YAAY,EAAEC,MAAM,CAAC;EAC3F,CAAC,MAAM;IACL,MAAM,IAAIU,KAAK,CAAC,oDAAoD,CAAC;EACvE;AACF;AAEO,eAAeC,0BAA0BA,CAAC;EAC/C7B,UAAU;EACV8B,MAAM;EACNb;AAKF,CAAC,EAAE;EACD,MAAMc,eAAe,GAAGnB,4BAA4B,CAACZ,UAAU,CAAC;EAChE,IAAI,CAAC+B,eAAe,EAAE;IACpB,MAAM,IAAIH,KAAK,CAAC,qDAAqD,CAAC;EACxE;EAEAG,eAAe,CAACC,eAAe,GAAGF,MAAM;EAExCjB,4BAA4B,CAACb,UAAU,EAAE+B,eAAe,CAAC;;EAEzD;EACA,MAAMf,uBAAuB,CAACC,YAAY,EAAEjB,UAAU,CAAC;AACzD;AAEO,MAAMiC,0BAAgE,GAAAtC,OAAA,CAAAsC,0BAAA,GAAG;EAC9EC,oBAAoB,EAAEC,SAAS;EAC/BC,aAAa,EAAED;AACjB,CAAC","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
|