@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
|
@@ -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":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQA,IAAAC,KAAA,GAAAD,OAAA;AAgBA,IAAAE,SAAA,GAAAF,OAAA;
|
|
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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.reissueCredentialWithAccessToken = reissueCredentialWithAccessToken;
|
|
7
|
+
var _core = require("@credo-ts/core");
|
|
8
|
+
var _offerResolve = require("../offerResolve");
|
|
9
|
+
var _metadata = require("../metadata");
|
|
10
|
+
var _types = require("./types");
|
|
11
|
+
async function reissueCredentialWithAccessToken({
|
|
12
|
+
agent,
|
|
13
|
+
logger,
|
|
14
|
+
record,
|
|
15
|
+
tokenResponse,
|
|
16
|
+
clientId,
|
|
17
|
+
pidSchemes
|
|
18
|
+
}) {
|
|
19
|
+
if (!record) {
|
|
20
|
+
throw new Error('No credential record provided for re-issuance.');
|
|
21
|
+
}
|
|
22
|
+
const refreshMetaData = (0, _metadata.getRefreshCredentialMetadata)(record);
|
|
23
|
+
if (!refreshMetaData) {
|
|
24
|
+
throw new Error('No refresh metadata found on the record for re-issuance.');
|
|
25
|
+
}
|
|
26
|
+
const {
|
|
27
|
+
credentialConfigurationId,
|
|
28
|
+
resolvedCredentialOffer
|
|
29
|
+
} = refreshMetaData;
|
|
30
|
+
if (!resolvedCredentialOffer) {
|
|
31
|
+
throw new Error('No resolved credential offer found in the refresh metadata for re-issuance.');
|
|
32
|
+
}
|
|
33
|
+
if (!tokenResponse.access_token) {
|
|
34
|
+
throw new Error('No access token found in the token response for re-issuance.');
|
|
35
|
+
}
|
|
36
|
+
logger.info('*** Starting to get new credential via re-issuance flow ***');
|
|
37
|
+
// Request a **new** credential using the *existing* configuration id
|
|
38
|
+
const creds = await agent.modules.openId4VcHolder.requestCredentials({
|
|
39
|
+
resolvedCredentialOffer,
|
|
40
|
+
accessToken: tokenResponse.access_token,
|
|
41
|
+
tokenType: tokenResponse.token_type || 'Bearer',
|
|
42
|
+
cNonce: tokenResponse.c_nonce,
|
|
43
|
+
clientId,
|
|
44
|
+
credentialsToRequest: [credentialConfigurationId],
|
|
45
|
+
verifyCredentialStatus: false,
|
|
46
|
+
// you’ll check after storing
|
|
47
|
+
allowedProofOfPossessionSignatureAlgorithms: [_core.JwaSignatureAlgorithm.EdDSA, _core.JwaSignatureAlgorithm.ES256],
|
|
48
|
+
credentialBindingResolver: async opts => (0, _offerResolve.customCredentialBindingResolver)({
|
|
49
|
+
agent,
|
|
50
|
+
supportedDidMethods: opts.supportedDidMethods,
|
|
51
|
+
keyType: opts.keyType,
|
|
52
|
+
supportsAllDidMethods: opts.supportsAllDidMethods,
|
|
53
|
+
supportsJwk: opts.supportsJwk,
|
|
54
|
+
credentialFormat: opts.credentialFormat,
|
|
55
|
+
supportedCredentialId: opts.supportedCredentialId,
|
|
56
|
+
resolvedCredentialOffer: resolvedCredentialOffer,
|
|
57
|
+
pidSchemes
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
logger.info('*** New credential received via re-issuance flow ***.');
|
|
61
|
+
|
|
62
|
+
// Normalize to your local record types
|
|
63
|
+
const [firstCredential] = creds;
|
|
64
|
+
if (!firstCredential || typeof firstCredential === 'string') {
|
|
65
|
+
throw new Error('Issuer returned empty or malformed credential on re-issuance.');
|
|
66
|
+
}
|
|
67
|
+
let newRecord;
|
|
68
|
+
if ('compact' in firstCredential.credential) {
|
|
69
|
+
newRecord = new _core.SdJwtVcRecord({
|
|
70
|
+
compactSdJwtVc: firstCredential.credential.compact
|
|
71
|
+
});
|
|
72
|
+
} else if ((firstCredential === null || firstCredential === void 0 ? void 0 : firstCredential.credential) instanceof _core.Mdoc) {
|
|
73
|
+
newRecord = new _core.MdocRecord({
|
|
74
|
+
mdoc: firstCredential.credential
|
|
75
|
+
});
|
|
76
|
+
} else {
|
|
77
|
+
newRecord = new _core.W3cCredentialRecord({
|
|
78
|
+
credential: firstCredential.credential,
|
|
79
|
+
tags: {}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
const openId4VcMetadata = (0, _metadata.extractOpenId4VcCredentialMetadata)(resolvedCredentialOffer.offeredCredentials[0], {
|
|
83
|
+
id: resolvedCredentialOffer.metadata.issuer,
|
|
84
|
+
display: resolvedCredentialOffer.metadata.credentialIssuerMetadata.display
|
|
85
|
+
});
|
|
86
|
+
(0, _metadata.setOpenId4VcCredentialMetadata)(newRecord, openId4VcMetadata);
|
|
87
|
+
(0, _metadata.setRefreshCredentialMetadata)(newRecord, {
|
|
88
|
+
...refreshMetaData,
|
|
89
|
+
refreshToken: tokenResponse.refresh_token || refreshMetaData.refreshToken,
|
|
90
|
+
lastCheckedAt: Date.now(),
|
|
91
|
+
lastCheckResult: _types.RefreshStatus.Valid
|
|
92
|
+
});
|
|
93
|
+
return newRecord;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=reIssuance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_offerResolve","_metadata","_types","reissueCredentialWithAccessToken","agent","logger","record","tokenResponse","clientId","pidSchemes","Error","refreshMetaData","getRefreshCredentialMetadata","credentialConfigurationId","resolvedCredentialOffer","access_token","info","creds","modules","openId4VcHolder","requestCredentials","accessToken","tokenType","token_type","cNonce","c_nonce","credentialsToRequest","verifyCredentialStatus","allowedProofOfPossessionSignatureAlgorithms","JwaSignatureAlgorithm","EdDSA","ES256","credentialBindingResolver","opts","customCredentialBindingResolver","supportedDidMethods","keyType","supportsAllDidMethods","supportsJwk","credentialFormat","supportedCredentialId","firstCredential","newRecord","credential","SdJwtVcRecord","compactSdJwtVc","compact","Mdoc","MdocRecord","mdoc","W3cCredentialRecord","tags","openId4VcMetadata","extractOpenId4VcCredentialMetadata","offeredCredentials","id","metadata","issuer","display","credentialIssuerMetadata","setOpenId4VcCredentialMetadata","setRefreshCredentialMetadata","refreshToken","refresh_token","lastCheckedAt","Date","now","lastCheckResult","RefreshStatus","Valid"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/reIssuance.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RefreshOrchestrator = void 0;
|
|
7
|
+
var _core = require("@credo-ts/core");
|
|
8
|
+
var _refreshToken = require("./refreshToken");
|
|
9
|
+
var _reIssuance = require("./reIssuance");
|
|
10
|
+
var _types = require("./types");
|
|
11
|
+
var _registery = require("./registery");
|
|
12
|
+
var _verifyCredentialStatus = require("./verifyCredentialStatus");
|
|
13
|
+
var _metadata = require("../metadata");
|
|
14
|
+
// modules/openid/refresh/RefreshOrchestrator.ts
|
|
15
|
+
|
|
16
|
+
const defaultToLite = rec => {
|
|
17
|
+
var _rec$createdAt;
|
|
18
|
+
return {
|
|
19
|
+
id: rec.id,
|
|
20
|
+
// best-effort: SdJwt/W3C both expose claimFormat via tags in many setups.
|
|
21
|
+
// Fallback to JwtVc if unknown so UI has *some* value.
|
|
22
|
+
format: rec instanceof _core.W3cCredentialRecord && _core.ClaimFormat.JwtVc || rec instanceof _core.SdJwtVcRecord && _core.ClaimFormat.SdJwtVc || _core.ClaimFormat.JwtVc,
|
|
23
|
+
createdAt: (_rec$createdAt = rec.createdAt) === null || _rec$createdAt === void 0 ? void 0 : _rec$createdAt.toISOString(),
|
|
24
|
+
issuer: undefined
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
class RefreshOrchestrator {
|
|
28
|
+
intervalOn = false; // interval enabled?
|
|
29
|
+
runningOnce = false; // a run is in progress?
|
|
30
|
+
|
|
31
|
+
recentlyIssued = new Map();
|
|
32
|
+
constructor(logger, bridge, opts) {
|
|
33
|
+
this.logger = logger;
|
|
34
|
+
this.opts = {
|
|
35
|
+
intervalMs: 15 * 60 * 1000,
|
|
36
|
+
autoStart: true,
|
|
37
|
+
onError: e => this.logger.error(String(e)),
|
|
38
|
+
listRecords: async () => [],
|
|
39
|
+
toLite: defaultToLite,
|
|
40
|
+
...(opts ?? {})
|
|
41
|
+
};
|
|
42
|
+
logger.info(`🔧 [RefreshOrchestrator] initialized -> ${JSON.stringify({
|
|
43
|
+
intervalMs: this.opts.intervalMs,
|
|
44
|
+
autoStart: this.opts.autoStart
|
|
45
|
+
})}`);
|
|
46
|
+
bridge.onReady(agent => {
|
|
47
|
+
this.agent = agent;
|
|
48
|
+
this.logger.info('🪝 [RefreshOrchestrator] Agent ready');
|
|
49
|
+
if (this.opts.autoStart && this.opts.intervalMs) this.start();
|
|
50
|
+
}, true);
|
|
51
|
+
}
|
|
52
|
+
configure(next) {
|
|
53
|
+
const prev = {
|
|
54
|
+
intervalOn: this.intervalOn,
|
|
55
|
+
intervalMs: this.opts.intervalMs ?? null,
|
|
56
|
+
autoStart: this.opts.autoStart ?? true,
|
|
57
|
+
agentReady: !!this.agent
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// merge
|
|
61
|
+
this.opts = {
|
|
62
|
+
...this.opts,
|
|
63
|
+
...next
|
|
64
|
+
};
|
|
65
|
+
this.logger.info(`🔧 [RefreshOrchestrator] configure -> ${JSON.stringify({
|
|
66
|
+
intervalMs: this.opts.intervalMs,
|
|
67
|
+
autoStart: this.opts.autoStart
|
|
68
|
+
})}`);
|
|
69
|
+
const nowIntervalMs = this.opts.intervalMs ?? null;
|
|
70
|
+
const nowAutoStart = this.opts.autoStart ?? true;
|
|
71
|
+
|
|
72
|
+
// Case A: timer is running and intervalMs changed → restart
|
|
73
|
+
if (prev.intervalOn && prev.intervalMs !== nowIntervalMs) {
|
|
74
|
+
this.stop();
|
|
75
|
+
if (nowIntervalMs) this.start();
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Case B: timer is running but user disabled intervals
|
|
80
|
+
if (prev.intervalOn && nowIntervalMs === null) {
|
|
81
|
+
this.stop();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Case C: timer is NOT running, but user enabled intervals
|
|
86
|
+
// Start iff: we have a positive interval, and either autoStart is true
|
|
87
|
+
// or the caller intends to enable interval operation via configure.
|
|
88
|
+
if (!prev.intervalOn && nowIntervalMs && nowAutoStart) {
|
|
89
|
+
// If agent isn't ready yet, defer; onReady() will auto-start.
|
|
90
|
+
if (this.agent) this.start();
|
|
91
|
+
// else do nothing — the constructor's bridge.onReady() will call start()
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Case D: autoStart toggled from false→true with an interval set, and timer isn't running
|
|
96
|
+
if (!prev.intervalOn && !prev.autoStart && nowAutoStart && nowIntervalMs) {
|
|
97
|
+
if (this.agent) this.start();
|
|
98
|
+
// else defer to onReady()
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Otherwise: no timer state change needed.
|
|
103
|
+
}
|
|
104
|
+
isRunning() {
|
|
105
|
+
return this.runningOnce;
|
|
106
|
+
}
|
|
107
|
+
start() {
|
|
108
|
+
if (this.intervalOn || !this.opts.intervalMs) return;
|
|
109
|
+
this.logger.info('⏱️ [RefreshOrchestrator] start interval');
|
|
110
|
+
this.intervalOn = true;
|
|
111
|
+
this.timer = setInterval(() => {
|
|
112
|
+
// fire-and-forget; guard against overlap
|
|
113
|
+
void this.runOnce('interval');
|
|
114
|
+
}, this.opts.intervalMs);
|
|
115
|
+
}
|
|
116
|
+
stop() {
|
|
117
|
+
if (!this.intervalOn) return;
|
|
118
|
+
this.logger.info('⏹️ [RefreshOrchestrator] stop interval');
|
|
119
|
+
clearInterval(this.timer);
|
|
120
|
+
this.timer = undefined;
|
|
121
|
+
this.intervalOn = false;
|
|
122
|
+
}
|
|
123
|
+
async runOnce(reason = 'manual') {
|
|
124
|
+
var _this$agent;
|
|
125
|
+
if (this.runningOnce) {
|
|
126
|
+
this.logger.warn('⚠️ [RefreshOrchestrator] runOnce skipped: already running');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (!this.agent || !((_this$agent = this.agent) !== null && _this$agent !== void 0 && _this$agent.isInitialized)) {
|
|
130
|
+
this.logger.warn('⚠️ [RefreshOrchestrator] runOnce skipped: agent not ready');
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
this.runningOnce = true;
|
|
134
|
+
this.logger.info(`🔁 [RefreshOrchestrator] runOnce (${reason})`);
|
|
135
|
+
try {
|
|
136
|
+
const records = await this.opts.listRecords();
|
|
137
|
+
this.logger.info(`📦 [Refresh] found ${records.length} credential records`);
|
|
138
|
+
for (const rec of records) {
|
|
139
|
+
// don’t block whole batch if one fails
|
|
140
|
+
try {
|
|
141
|
+
await this.refreshRecord(rec);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
var _this$opts$onError, _this$opts;
|
|
144
|
+
this.logger.error(`💥 [Refresh] record ${rec.id} failed: ${String(e)}`);
|
|
145
|
+
(_this$opts$onError = (_this$opts = this.opts).onError) === null || _this$opts$onError === void 0 || _this$opts$onError.call(_this$opts, e);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.logger.info('✅ [Refresh] run completed');
|
|
149
|
+
} catch (e) {
|
|
150
|
+
var _this$opts$onError2, _this$opts2;
|
|
151
|
+
this.logger.error(`💥 [Refresh] global error: ${String(e)}`);
|
|
152
|
+
(_this$opts$onError2 = (_this$opts2 = this.opts).onError) === null || _this$opts$onError2 === void 0 || _this$opts$onError2.call(_this$opts2, e);
|
|
153
|
+
} finally {
|
|
154
|
+
this.runningOnce = false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
setIntervalMs(intervalMs) {
|
|
158
|
+
this.configure({
|
|
159
|
+
intervalMs
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
resolveFull(id) {
|
|
163
|
+
return this.recentlyIssued.get(id);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// ---- internals ----
|
|
167
|
+
|
|
168
|
+
async refreshRecord(rec) {
|
|
169
|
+
const {
|
|
170
|
+
shouldSkip,
|
|
171
|
+
markRefreshing,
|
|
172
|
+
clearRefreshing,
|
|
173
|
+
clearExpired,
|
|
174
|
+
markExpiredWithReplacement,
|
|
175
|
+
blockAsFailed,
|
|
176
|
+
blockAsSucceeded,
|
|
177
|
+
upsert
|
|
178
|
+
} = _registery.credentialRegistry.getState();
|
|
179
|
+
const id = rec.id;
|
|
180
|
+
if (!this.agent) {
|
|
181
|
+
this.logger.error(`💥 [Refresh] Agent not initialized, cannot refresh credential ${id}`);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// 0) fast exit if this cred is already handled or in-flight
|
|
186
|
+
if (shouldSkip(id)) {
|
|
187
|
+
this.logger.info(`⏭️ [Refresh] skip credential ${id} (blocked/expired/in-flight)`);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
// 1) ensure a lite copy exists in registry (handy for UI/debug)
|
|
192
|
+
upsert(this.opts.toLite(rec));
|
|
193
|
+
|
|
194
|
+
// 2) mark in-flight
|
|
195
|
+
markRefreshing(id);
|
|
196
|
+
this.logger.info(`🧭 [Refresh] check credential ${id}`);
|
|
197
|
+
try {
|
|
198
|
+
// 3) verification
|
|
199
|
+
const isValid = await (0, _verifyCredentialStatus.verifyCredentialStatus)(rec, this.logger);
|
|
200
|
+
if (isValid) {
|
|
201
|
+
this.logger.info(`✅ [Refresh] valid → ${id}`);
|
|
202
|
+
// If it was previously expired for any reason, clear that and block as succeeded
|
|
203
|
+
clearExpired(id);
|
|
204
|
+
//We can block if isValid but for now we will keep checking it again every time
|
|
205
|
+
// blockAsSucceeded(id)
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Invalid case:
|
|
210
|
+
|
|
211
|
+
await (0, _metadata.markOpenIDCredentialStatus)({
|
|
212
|
+
credential: rec,
|
|
213
|
+
status: _types.RefreshStatus.Invalid,
|
|
214
|
+
agentContext: this.agent.context
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
// 4) needs refresh → get access token
|
|
218
|
+
this.logger.info(`♻️ [Refresh] invalid, attempting re-issue → ${id}`);
|
|
219
|
+
const token = await (0, _refreshToken.refreshAccessToken)({
|
|
220
|
+
logger: this.logger,
|
|
221
|
+
cred: rec,
|
|
222
|
+
agentContext: this.agent.context
|
|
223
|
+
});
|
|
224
|
+
if (!token) {
|
|
225
|
+
const msg = `no refresh token available`;
|
|
226
|
+
this.logger.warn(`⚠️ [Refresh] ${msg} for ${id}`);
|
|
227
|
+
blockAsFailed(id, msg);
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// 5) re-issue
|
|
232
|
+
const newRecord = await (0, _reIssuance.reissueCredentialWithAccessToken)({
|
|
233
|
+
agent: this.agent,
|
|
234
|
+
logger: this.logger,
|
|
235
|
+
record: rec,
|
|
236
|
+
tokenResponse: token
|
|
237
|
+
});
|
|
238
|
+
if (newRecord) {
|
|
239
|
+
this.logger.info(`💾 [Refresh] new credential → ${newRecord.id}`);
|
|
240
|
+
// Queue a replacement for UI/notifications and block the old one as succeeded
|
|
241
|
+
markExpiredWithReplacement(id, this.opts.toLite(newRecord));
|
|
242
|
+
blockAsSucceeded(id);
|
|
243
|
+
this.recentlyIssued.set(newRecord.id, newRecord);
|
|
244
|
+
} else {
|
|
245
|
+
const msg = `re-issue returned no record`;
|
|
246
|
+
this.logger.warn(`⚠️ [Refresh] ${msg} for ${id}`);
|
|
247
|
+
blockAsFailed(id, msg);
|
|
248
|
+
await (0, _metadata.markOpenIDCredentialStatus)({
|
|
249
|
+
credential: rec,
|
|
250
|
+
status: _types.RefreshStatus.Invalid,
|
|
251
|
+
agentContext: this.agent.context
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
} catch (e) {
|
|
255
|
+
const err = String(e);
|
|
256
|
+
this.logger.error(`💥 [Refresh] error on ${id}: ${err}`);
|
|
257
|
+
blockAsFailed(id, err);
|
|
258
|
+
} finally {
|
|
259
|
+
// 6) clear in-flight marker
|
|
260
|
+
clearRefreshing(id);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
exports.RefreshOrchestrator = RefreshOrchestrator;
|
|
265
|
+
//# sourceMappingURL=refreshOrchestrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_refreshToken","_reIssuance","_types","_registery","_verifyCredentialStatus","_metadata","defaultToLite","rec","_rec$createdAt","id","format","W3cCredentialRecord","ClaimFormat","JwtVc","SdJwtVcRecord","SdJwtVc","createdAt","toISOString","issuer","undefined","RefreshOrchestrator","intervalOn","runningOnce","recentlyIssued","Map","constructor","logger","bridge","opts","intervalMs","autoStart","onError","e","error","String","listRecords","toLite","info","JSON","stringify","onReady","agent","start","configure","next","prev","agentReady","nowIntervalMs","nowAutoStart","stop","isRunning","timer","setInterval","runOnce","clearInterval","reason","_this$agent","warn","isInitialized","records","length","refreshRecord","_this$opts$onError","_this$opts","call","_this$opts$onError2","_this$opts2","setIntervalMs","resolveFull","get","shouldSkip","markRefreshing","clearRefreshing","clearExpired","markExpiredWithReplacement","blockAsFailed","blockAsSucceeded","upsert","credentialRegistry","getState","isValid","verifyCredentialStatus","markOpenIDCredentialStatus","credential","status","RefreshStatus","Invalid","agentContext","context","token","refreshAccessToken","cred","msg","newRecord","reissueCredentialWithAccessToken","record","tokenResponse","set","err","exports"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/refreshOrchestrator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.refreshAccessToken = refreshAccessToken;
|
|
7
|
+
var _metadata = require("../metadata");
|
|
8
|
+
async function refreshAccessToken({
|
|
9
|
+
logger,
|
|
10
|
+
cred,
|
|
11
|
+
agentContext
|
|
12
|
+
}) {
|
|
13
|
+
logger.info(`[refreshAccessToken] Checking new credential for record: ${cred.id}`);
|
|
14
|
+
// return _mockTokenRefreshResponse
|
|
15
|
+
const refreshMetaData = (0, _metadata.getRefreshCredentialMetadata)(cred);
|
|
16
|
+
if (!refreshMetaData) {
|
|
17
|
+
logger.error(`[refreshAccessToken] No refresh metadata found for credential: ${cred.id}`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
logger.info(`[refreshAccessToken] Found refresh metadata for credential: ${cred.id}`);
|
|
21
|
+
const {
|
|
22
|
+
refreshToken,
|
|
23
|
+
authServer
|
|
24
|
+
} = refreshMetaData;
|
|
25
|
+
try {
|
|
26
|
+
if (!authServer) {
|
|
27
|
+
throw new Error('No authorization server found in the credential offer metadata');
|
|
28
|
+
}
|
|
29
|
+
logger.info(`[refreshAccessToken] Found auth server for credential: ${cred.id}: ${authServer}`);
|
|
30
|
+
|
|
31
|
+
// Build token endpoint: <AS>/token?force=false
|
|
32
|
+
// React-Native-safe URL build
|
|
33
|
+
const tokenUrl = (authServer.endsWith('/') ? authServer.slice(0, -1) : authServer) + '/token?force=false';
|
|
34
|
+
// const tokenUrl = new URL('token', authServer)
|
|
35
|
+
// tokenUrl.searchParams.set('force', 'false')
|
|
36
|
+
|
|
37
|
+
logger.info(`[refreshAccessToken] Refreshing access token at URL: ${tokenUrl} for credential: ${cred.id}`);
|
|
38
|
+
const body = new URLSearchParams({
|
|
39
|
+
grant_type: 'refresh_token',
|
|
40
|
+
refresh_token: refreshToken,
|
|
41
|
+
// these are accepted by some ASs that share the same endpoint with pre-auth:
|
|
42
|
+
pre_authorized_code: '',
|
|
43
|
+
pre_authorized_code_alt: '',
|
|
44
|
+
user_pin: ''
|
|
45
|
+
});
|
|
46
|
+
const res = await fetch(tokenUrl.toString(), {
|
|
47
|
+
method: 'POST',
|
|
48
|
+
headers: {
|
|
49
|
+
accept: 'application/json',
|
|
50
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
51
|
+
},
|
|
52
|
+
body: body.toString()
|
|
53
|
+
});
|
|
54
|
+
logger.info(`[refreshAccessToken] Response status: ${JSON.stringify(res)}`);
|
|
55
|
+
if (!res.ok) {
|
|
56
|
+
const errText = await res.text();
|
|
57
|
+
throw new Error(`Refresh failed ${res.status}: ${errText}`);
|
|
58
|
+
}
|
|
59
|
+
const data = await res.json();
|
|
60
|
+
logger.info(`[refreshAccessToken] New access token acquired: ${JSON.stringify(data)}`);
|
|
61
|
+
|
|
62
|
+
// If refresh token rotated, persist it
|
|
63
|
+
if (data.refresh_token && data.refresh_token !== refreshToken) {
|
|
64
|
+
logger.info(`[refreshAccessToken] Refresh token rotated; saving new one`);
|
|
65
|
+
(0, _metadata.setRefreshCredentialMetadata)(cred, {
|
|
66
|
+
...refreshMetaData,
|
|
67
|
+
authServer: authServer,
|
|
68
|
+
refreshToken: data.refresh_token
|
|
69
|
+
});
|
|
70
|
+
await (0, _metadata.persistCredentialRecord)(agentContext, cred);
|
|
71
|
+
}
|
|
72
|
+
return data;
|
|
73
|
+
} catch (error) {
|
|
74
|
+
logger.error(`[refreshAccessToken] Error getting new token: ${error}`);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=refreshToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_metadata","require","refreshAccessToken","logger","cred","agentContext","info","id","refreshMetaData","getRefreshCredentialMetadata","error","refreshToken","authServer","Error","tokenUrl","endsWith","slice","body","URLSearchParams","grant_type","refresh_token","pre_authorized_code","pre_authorized_code_alt","user_pin","res","fetch","toString","method","headers","accept","JSON","stringify","ok","errText","text","status","data","json","setRefreshCredentialMetadata","persistCredentialRecord"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/refreshToken.ts"],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAEO,eAAeC,kBAAkBA,CAAC;EACvCC,MAAM;EACNC,IAAI;EACJC;AAKF,CAAC,EAAwC;EACvCF,MAAM,CAACG,IAAI,CAAC,4DAA4DF,IAAI,CAACG,EAAE,EAAE,CAAC;EAClF;EACA,MAAMC,eAAe,GAAG,IAAAC,sCAA4B,EAACL,IAAI,CAAC;EAC1D,IAAI,CAACI,eAAe,EAAE;IACpBL,MAAM,CAACO,KAAK,CAAC,kEAAkEN,IAAI,CAACG,EAAE,EAAE,CAAC;IACzF;EACF;EAEAJ,MAAM,CAACG,IAAI,CAAC,+DAA+DF,IAAI,CAACG,EAAE,EAAE,CAAC;EACrF,MAAM;IAAEI,YAAY;IAAEC;EAAW,CAAC,GAAGJ,eAAe;EAEpD,IAAI;IACF,IAAI,CAACI,UAAU,EAAE;MACf,MAAM,IAAIC,KAAK,CAAC,gEAAgE,CAAC;IACnF;IAEAV,MAAM,CAACG,IAAI,CAAC,0DAA0DF,IAAI,CAACG,EAAE,KAAKK,UAAU,EAAE,CAAC;;IAE/F;IACA;IACA,MAAME,QAAQ,GAAG,CAACF,UAAU,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAGH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGJ,UAAU,IAAI,oBAAoB;IACzG;IACA;;IAEAT,MAAM,CAACG,IAAI,CAAC,wDAAwDQ,QAAQ,oBAAoBV,IAAI,CAACG,EAAE,EAAE,CAAC;IAE1G,MAAMU,IAAI,GAAG,IAAIC,eAAe,CAAC;MAC/BC,UAAU,EAAE,eAAe;MAC3BC,aAAa,EAAET,YAAY;MAC3B;MACAU,mBAAmB,EAAE,EAAE;MACvBC,uBAAuB,EAAE,EAAE;MAC3BC,QAAQ,EAAE;IACZ,CAAC,CAAC;IAEF,MAAMC,GAAG,GAAG,MAAMC,KAAK,CAACX,QAAQ,CAACY,QAAQ,CAAC,CAAC,EAAE;MAC3CC,MAAM,EAAE,MAAM;MACdC,OAAO,EAAE;QACPC,MAAM,EAAE,kBAAkB;QAC1B,cAAc,EAAE;MAClB,CAAC;MACDZ,IAAI,EAAEA,IAAI,CAACS,QAAQ,CAAC;IACtB,CAAC,CAAC;IAEFvB,MAAM,CAACG,IAAI,CAAC,yCAAyCwB,IAAI,CAACC,SAAS,CAACP,GAAG,CAAC,EAAE,CAAC;IAE3E,IAAI,CAACA,GAAG,CAACQ,EAAE,EAAE;MACX,MAAMC,OAAO,GAAG,MAAMT,GAAG,CAACU,IAAI,CAAC,CAAC;MAChC,MAAM,IAAIrB,KAAK,CAAC,kBAAkBW,GAAG,CAACW,MAAM,KAAKF,OAAO,EAAE,CAAC;IAC7D;IAEA,MAAMG,IAAqB,GAAG,MAAMZ,GAAG,CAACa,IAAI,CAAC,CAAC;IAC9ClC,MAAM,CAACG,IAAI,CAAC,mDAAmDwB,IAAI,CAACC,SAAS,CAACK,IAAI,CAAC,EAAE,CAAC;;IAEtF;IACA,IAAIA,IAAI,CAAChB,aAAa,IAAIgB,IAAI,CAAChB,aAAa,KAAKT,YAAY,EAAE;MAC7DR,MAAM,CAACG,IAAI,CAAC,4DAA4D,CAAC;MACzE,IAAAgC,sCAA4B,EAAClC,IAAI,EAAE;QACjC,GAAGI,eAAe;QAClBI,UAAU,EAAEA,UAAU;QACtBD,YAAY,EAAEyB,IAAI,CAAChB;MACrB,CAAC,CAAC;MAEF,MAAM,IAAAmB,iCAAuB,EAAClC,YAAY,EAAED,IAAI,CAAC;IACnD;IAEA,OAAOgC,IAAI;EACb,CAAC,CAAC,OAAO1B,KAAK,EAAE;IACdP,MAAM,CAACO,KAAK,CAAC,iDAAiDA,KAAK,EAAE,CAAC;IACtE,MAAMA,KAAK;EACb;AACF","ignoreList":[]}
|