@bifold/core 3.0.0 → 3.0.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/buttons/Button.js +2 -6
- package/lib/commonjs/components/buttons/Button.js.map +1 -1
- package/lib/commonjs/components/inputs/BiometryControl.js +29 -5
- package/lib/commonjs/components/inputs/BiometryControl.js.map +1 -1
- package/lib/commonjs/components/listItems/NotificationListItem.js +5 -1
- package/lib/commonjs/components/listItems/NotificationListItem.js.map +1 -1
- package/lib/commonjs/components/modals/ConfirmPINModal.js +0 -1
- package/lib/commonjs/components/modals/ConfirmPINModal.js.map +1 -1
- package/lib/commonjs/components/views/KeyboardView.js +5 -3
- package/lib/commonjs/components/views/KeyboardView.js.map +1 -1
- package/lib/commonjs/components/views/ScreenWrapper.js +9 -5
- package/lib/commonjs/components/views/ScreenWrapper.js.map +1 -1
- package/lib/commonjs/container-impl.js +4 -2
- package/lib/commonjs/container-impl.js.map +1 -1
- package/lib/commonjs/contexts/auth.js +47 -45
- package/lib/commonjs/contexts/auth.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 +4 -13
- package/lib/commonjs/hooks/useBifoldAgentSetup.js.map +1 -1
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/localization/en/en.json +7 -0
- package/lib/commonjs/localization/fr/fr.json +7 -0
- package/lib/commonjs/localization/pt-br/pt-br.json +7 -0
- package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js +27 -27
- package/lib/commonjs/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
- package/lib/commonjs/modules/openid/credentialRecord.js +114 -0
- package/lib/commonjs/modules/openid/credentialRecord.js.map +1 -0
- package/lib/commonjs/modules/openid/display.js +0 -3
- package/lib/commonjs/modules/openid/display.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/openid.js +6 -8
- package/lib/commonjs/modules/openid/hooks/openid.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js +16 -19
- package/lib/commonjs/modules/openid/hooks/useAcceptReplacement.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js +1 -10
- package/lib/commonjs/modules/openid/hooks/useDeclineReplacement.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/useExpiredNotifications.js +1 -1
- package/lib/commonjs/modules/openid/hooks/useExpiredNotifications.js.map +1 -1
- package/lib/commonjs/modules/openid/hooks/useUpgradeExpiredCredential.js +8 -42
- package/lib/commonjs/modules/openid/hooks/useUpgradeExpiredCredential.js.map +1 -1
- package/lib/commonjs/modules/openid/metadata.js +2 -0
- package/lib/commonjs/modules/openid/metadata.js.map +1 -1
- package/lib/commonjs/modules/openid/offerResolve.js +34 -58
- package/lib/commonjs/modules/openid/offerResolve.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/operations.js +37 -0
- package/lib/commonjs/modules/openid/refresh/operations.js.map +1 -0
- package/lib/commonjs/modules/openid/refresh/reIssuance.js +7 -10
- package/lib/commonjs/modules/openid/refresh/reIssuance.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js +46 -62
- package/lib/commonjs/modules/openid/refresh/refreshOrchestrator.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/refreshToken.js +12 -12
- package/lib/commonjs/modules/openid/refresh/refreshToken.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/registry.js +1 -1
- package/lib/commonjs/modules/openid/refresh/registry.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/types.js +11 -1
- package/lib/commonjs/modules/openid/refresh/types.js.map +1 -1
- package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js +6 -6
- package/lib/commonjs/modules/openid/refresh/verifyCredentialStatus.js.map +1 -1
- package/lib/commonjs/modules/openid/resolverProof.js +5 -102
- package/lib/commonjs/modules/openid/resolverProof.js.map +1 -1
- package/lib/commonjs/modules/openid/screens/OpenIDConnection.js +11 -23
- package/lib/commonjs/modules/openid/screens/OpenIDConnection.js.map +1 -1
- package/lib/commonjs/navigators/TabStack.js +5 -3
- package/lib/commonjs/navigators/TabStack.js.map +1 -1
- package/lib/commonjs/screens/Home.js +1 -1
- package/lib/commonjs/screens/Home.js.map +1 -1
- package/lib/commonjs/screens/Settings.js +1 -1
- package/lib/commonjs/screens/Settings.js.map +1 -1
- package/lib/commonjs/utils/agent.js +3 -3
- package/lib/commonjs/utils/agent.js.map +1 -1
- package/lib/commonjs/utils/helpers.js +0 -2
- package/lib/commonjs/utils/helpers.js.map +1 -1
- package/lib/module/components/buttons/Button.js +4 -7
- package/lib/module/components/buttons/Button.js.map +1 -1
- package/lib/module/components/inputs/BiometryControl.js +30 -6
- package/lib/module/components/inputs/BiometryControl.js.map +1 -1
- package/lib/module/components/listItems/NotificationListItem.js +5 -1
- package/lib/module/components/listItems/NotificationListItem.js.map +1 -1
- package/lib/module/components/modals/ConfirmPINModal.js +0 -1
- package/lib/module/components/modals/ConfirmPINModal.js.map +1 -1
- package/lib/module/components/views/KeyboardView.js +6 -4
- package/lib/module/components/views/KeyboardView.js.map +1 -1
- package/lib/module/components/views/ScreenWrapper.js +9 -5
- package/lib/module/components/views/ScreenWrapper.js.map +1 -1
- package/lib/module/container-impl.js +4 -2
- package/lib/module/container-impl.js.map +1 -1
- package/lib/module/contexts/auth.js +47 -44
- package/lib/module/contexts/auth.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 +4 -13
- package/lib/module/hooks/useBifoldAgentSetup.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/localization/en/en.json +7 -0
- package/lib/module/localization/fr/fr.json +7 -0
- package/lib/module/localization/pt-br/pt-br.json +7 -0
- package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js +28 -28
- package/lib/module/modules/openid/context/OpenIDCredentialRecordProvider.js.map +1 -1
- package/lib/module/modules/openid/credentialRecord.js +98 -0
- package/lib/module/modules/openid/credentialRecord.js.map +1 -0
- package/lib/module/modules/openid/display.js +0 -3
- package/lib/module/modules/openid/display.js.map +1 -1
- package/lib/module/modules/openid/hooks/openid.js +6 -8
- package/lib/module/modules/openid/hooks/openid.js.map +1 -1
- package/lib/module/modules/openid/hooks/useAcceptReplacement.js +16 -19
- package/lib/module/modules/openid/hooks/useAcceptReplacement.js.map +1 -1
- package/lib/module/modules/openid/hooks/useDeclineReplacement.js +2 -11
- package/lib/module/modules/openid/hooks/useDeclineReplacement.js.map +1 -1
- package/lib/module/modules/openid/hooks/useExpiredNotifications.js +1 -1
- package/lib/module/modules/openid/hooks/useExpiredNotifications.js.map +1 -1
- package/lib/module/modules/openid/hooks/useUpgradeExpiredCredential.js +8 -42
- package/lib/module/modules/openid/hooks/useUpgradeExpiredCredential.js.map +1 -1
- package/lib/module/modules/openid/metadata.js +3 -1
- package/lib/module/modules/openid/metadata.js.map +1 -1
- package/lib/module/modules/openid/offerResolve.js +34 -58
- package/lib/module/modules/openid/offerResolve.js.map +1 -1
- package/lib/module/modules/openid/refresh/operations.js +31 -0
- package/lib/module/modules/openid/refresh/operations.js.map +1 -0
- package/lib/module/modules/openid/refresh/reIssuance.js +7 -10
- package/lib/module/modules/openid/refresh/reIssuance.js.map +1 -1
- package/lib/module/modules/openid/refresh/refreshOrchestrator.js +48 -63
- package/lib/module/modules/openid/refresh/refreshOrchestrator.js.map +1 -1
- package/lib/module/modules/openid/refresh/refreshToken.js +12 -12
- package/lib/module/modules/openid/refresh/refreshToken.js.map +1 -1
- package/lib/module/modules/openid/refresh/registry.js +1 -1
- package/lib/module/modules/openid/refresh/registry.js.map +1 -1
- package/lib/module/modules/openid/refresh/types.js +11 -0
- package/lib/module/modules/openid/refresh/types.js.map +1 -1
- package/lib/module/modules/openid/refresh/verifyCredentialStatus.js +6 -6
- package/lib/module/modules/openid/refresh/verifyCredentialStatus.js.map +1 -1
- package/lib/module/modules/openid/resolverProof.js +5 -98
- package/lib/module/modules/openid/resolverProof.js.map +1 -1
- package/lib/module/modules/openid/screens/OpenIDConnection.js +11 -23
- package/lib/module/modules/openid/screens/OpenIDConnection.js.map +1 -1
- package/lib/module/navigators/TabStack.js +5 -3
- package/lib/module/navigators/TabStack.js.map +1 -1
- package/lib/module/screens/Home.js +1 -1
- package/lib/module/screens/Home.js.map +1 -1
- package/lib/module/screens/Settings.js +1 -1
- package/lib/module/screens/Settings.js.map +1 -1
- package/lib/module/utils/agent.js +3 -3
- package/lib/module/utils/agent.js.map +1 -1
- package/lib/module/utils/helpers.js +0 -2
- package/lib/module/utils/helpers.js.map +1 -1
- package/lib/typescript/src/components/buttons/Button.d.ts +3 -2
- package/lib/typescript/src/components/buttons/Button.d.ts.map +1 -1
- package/lib/typescript/src/components/inputs/BiometryControl.d.ts.map +1 -1
- package/lib/typescript/src/components/listItems/NotificationListItem.d.ts.map +1 -1
- package/lib/typescript/src/components/modals/ConfirmPINModal.d.ts.map +1 -1
- package/lib/typescript/src/components/views/KeyboardView.d.ts +3 -2
- package/lib/typescript/src/components/views/KeyboardView.d.ts.map +1 -1
- package/lib/typescript/src/components/views/ScreenWrapper.d.ts +5 -1
- package/lib/typescript/src/components/views/ScreenWrapper.d.ts.map +1 -1
- package/lib/typescript/src/container-impl.d.ts.map +1 -1
- package/lib/typescript/src/contexts/auth.d.ts +0 -1
- package/lib/typescript/src/contexts/auth.d.ts.map +1 -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 +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts +7 -6
- package/lib/typescript/src/modules/openid/context/OpenIDCredentialRecordProvider.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/credentialRecord.d.ts +19 -0
- package/lib/typescript/src/modules/openid/credentialRecord.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/display.d.ts +2 -3
- package/lib/typescript/src/modules/openid/display.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/openid.d.ts +2 -2
- package/lib/typescript/src/modules/openid/hooks/openid.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts +2 -4
- package/lib/typescript/src/modules/openid/hooks/useAcceptReplacement.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/useDeclineReplacement.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/hooks/useUpgradeExpiredCredential.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/metadata.d.ts +9 -8
- package/lib/typescript/src/modules/openid/metadata.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/offerResolve.d.ts +9 -15
- package/lib/typescript/src/modules/openid/offerResolve.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/operations.d.ts +13 -0
- package/lib/typescript/src/modules/openid/refresh/operations.d.ts.map +1 -0
- package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts +4 -7
- package/lib/typescript/src/modules/openid/refresh/reIssuance.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts +2 -5
- package/lib/typescript/src/modules/openid/refresh/refreshOrchestrator.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts +3 -2
- package/lib/typescript/src/modules/openid/refresh/refreshToken.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/types.d.ts +14 -4
- package/lib/typescript/src/modules/openid/refresh/types.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts +2 -2
- package/lib/typescript/src/modules/openid/refresh/verifyCredentialStatus.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/resolverProof.d.ts +2 -21
- package/lib/typescript/src/modules/openid/resolverProof.d.ts.map +1 -1
- package/lib/typescript/src/modules/openid/screens/OpenIDConnection.d.ts.map +1 -1
- package/lib/typescript/src/screens/Home.d.ts.map +1 -1
- package/lib/typescript/src/utils/agent.d.ts +3 -1
- package/lib/typescript/src/utils/agent.d.ts.map +1 -1
- package/lib/typescript/src/utils/helpers.d.ts.map +1 -1
- package/package.json +29 -29
|
@@ -8,11 +8,9 @@ var _react = require("react");
|
|
|
8
8
|
var _native = require("@react-navigation/native");
|
|
9
9
|
var _reactHooks = require("@bifold/react-hooks");
|
|
10
10
|
var _navigators = require("../../../types/navigators");
|
|
11
|
-
var _refreshToken = require("../refresh/refreshToken");
|
|
12
|
-
var _reIssuance = require("../refresh/reIssuance");
|
|
13
11
|
var _OpenIDCredentialRecordProvider = require("../context/OpenIDCredentialRecordProvider");
|
|
14
|
-
var _registry = require("../refresh/registry");
|
|
15
12
|
var _containerApi = require("../../../container-api");
|
|
13
|
+
var _operations = require("../refresh/operations");
|
|
16
14
|
// modules/openid/hooks/useUpgradeExpiredCredential.ts
|
|
17
15
|
|
|
18
16
|
const useUpgradeExpiredCredential = () => {
|
|
@@ -21,71 +19,39 @@ const useUpgradeExpiredCredential = () => {
|
|
|
21
19
|
agent
|
|
22
20
|
} = (0, _reactHooks.useAgent)();
|
|
23
21
|
const {
|
|
24
|
-
|
|
22
|
+
getCredentialById
|
|
25
23
|
} = (0, _OpenIDCredentialRecordProvider.useOpenIDCredentials)();
|
|
26
24
|
const [logger] = (0, _containerApi.useServices)([_containerApi.TOKENS.UTIL_LOGGER]);
|
|
27
25
|
const upgrade = (0, _react.useCallback)(async oldId => {
|
|
28
|
-
var _newRecord$createdAt;
|
|
29
26
|
if (!agent) {
|
|
30
27
|
logger === null || logger === void 0 || logger.warn('⚠️ [Upgrade] Agent not ready, cannot upgrade credential');
|
|
31
28
|
return;
|
|
32
29
|
}
|
|
33
30
|
logger === null || logger === void 0 || logger.info(`🔁 [Upgrade] Starting upgrade flow for oldId=${oldId}`);
|
|
34
|
-
|
|
35
|
-
// 1. Load the “old” record
|
|
36
|
-
const byId = _registry.credentialRegistry.getState().byId[oldId];
|
|
37
|
-
if (!byId) {
|
|
38
|
-
logger === null || logger === void 0 || logger.warn(`⚠️ [Upgrade] No lite record for oldId=${oldId}`);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// We try all three repos – you can refine this using byId.format if you want
|
|
43
|
-
const rec = await getSdJwtCredentialById(oldId);
|
|
31
|
+
const rec = await getCredentialById(oldId);
|
|
44
32
|
if (!rec) {
|
|
45
33
|
logger === null || logger === void 0 || logger.warn(`⚠️ [Upgrade] No full record found for oldId=${oldId}`);
|
|
46
34
|
return;
|
|
47
35
|
}
|
|
48
|
-
|
|
49
|
-
// 2. Use refresh token to get new access token
|
|
50
|
-
const token = await (0, _refreshToken.refreshAccessToken)({
|
|
51
|
-
logger,
|
|
52
|
-
cred: rec,
|
|
53
|
-
agentContext: agent.context
|
|
54
|
-
});
|
|
55
|
-
if (!token) {
|
|
56
|
-
logger === null || logger === void 0 || logger.warn(`⚠️ [Upgrade] No refresh token available for oldId=${oldId}`);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// 3. Re-issue credential using access token
|
|
61
|
-
const newRecord = await (0, _reIssuance.reissueCredentialWithAccessToken)({
|
|
36
|
+
const newRecord = await (0, _operations.refreshAndQueueReplacement)({
|
|
62
37
|
agent,
|
|
63
38
|
logger,
|
|
64
|
-
record: rec
|
|
65
|
-
tokenResponse: token
|
|
39
|
+
record: rec
|
|
66
40
|
});
|
|
67
41
|
if (!newRecord) {
|
|
68
|
-
logger === null || logger === void 0 || logger.warn(`⚠️ [Upgrade]
|
|
42
|
+
logger === null || logger === void 0 || logger.warn(`⚠️ [Upgrade] Could not issue replacement for oldId=${oldId}`);
|
|
69
43
|
return;
|
|
70
44
|
}
|
|
71
45
|
logger === null || logger === void 0 || logger.info(`💾 [Upgrade] New credential issued ${newRecord.id} from oldId=${oldId}`);
|
|
72
46
|
|
|
73
|
-
//
|
|
74
|
-
_registry.credentialRegistry.getState().markExpiredWithReplacement(oldId, {
|
|
75
|
-
id: newRecord.id,
|
|
76
|
-
format: byId.format,
|
|
77
|
-
createdAt: (_newRecord$createdAt = newRecord.createdAt) === null || _newRecord$createdAt === void 0 ? void 0 : _newRecord$createdAt.toISOString(),
|
|
78
|
-
issuer: byId.issuer
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// 5. Navigate to the OpenID offer screen, passing the new record directly
|
|
47
|
+
// Navigate to the OpenID offer screen, passing the new record directly
|
|
82
48
|
navigation.navigate(_navigators.Stacks.ConnectionStack, {
|
|
83
49
|
screen: _navigators.Screens.OpenIDCredentialOffer,
|
|
84
50
|
params: {
|
|
85
51
|
credential: newRecord
|
|
86
52
|
}
|
|
87
53
|
});
|
|
88
|
-
}, [agent, logger, navigation,
|
|
54
|
+
}, [agent, logger, navigation, getCredentialById]);
|
|
89
55
|
return {
|
|
90
56
|
upgrade
|
|
91
57
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_native","_reactHooks","_navigators","
|
|
1
|
+
{"version":3,"names":["_react","require","_native","_reactHooks","_navigators","_OpenIDCredentialRecordProvider","_containerApi","_operations","useUpgradeExpiredCredential","navigation","useNavigation","agent","useAgent","getCredentialById","useOpenIDCredentials","logger","useServices","TOKENS","UTIL_LOGGER","upgrade","useCallback","oldId","warn","info","rec","newRecord","refreshAndQueueReplacement","record","id","navigate","Stacks","ConnectionStack","screen","Screens","OpenIDCredentialOffer","params","credential","exports"],"sourceRoot":"../../../../../src","sources":["modules/openid/hooks/useUpgradeExpiredCredential.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,+BAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AARA;;AAUO,MAAMO,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,MAAMC,UAAU,GAAG,IAAAC,qBAAa,EAAkC,CAAC;EACnE,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,oBAAQ,EAAC,CAAC;EAC5B,MAAM;IAAEC;EAAkB,CAAC,GAAG,IAAAC,oDAAoB,EAAC,CAAC;EACpD,MAAM,CAACC,MAAM,CAAC,GAAG,IAAAC,yBAAW,EAAC,CAACC,oBAAM,CAACC,WAAW,CAAC,CAAC;EAElD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EACzB,MAAOC,KAAa,IAAK;IACvB,IAAI,CAACV,KAAK,EAAE;MACVI,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEO,IAAI,CAAC,yDAAyD,CAAC;MACvE;IACF;IAEAP,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,IAAI,CAAC,gDAAgDF,KAAK,EAAE,CAAC;IAErE,MAAMG,GAAG,GAAG,MAAMX,iBAAiB,CAACQ,KAAK,CAAC;IAE1C,IAAI,CAACG,GAAG,EAAE;MACRT,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEO,IAAI,CAAC,+CAA+CD,KAAK,EAAE,CAAC;MACpE;IACF;IAEA,MAAMI,SAAS,GAAG,MAAM,IAAAC,sCAA0B,EAAC;MACjDf,KAAK;MACLI,MAAM;MACNY,MAAM,EAAEH;IACV,CAAC,CAAC;IAEF,IAAI,CAACC,SAAS,EAAE;MACdV,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEO,IAAI,CAAC,sDAAsDD,KAAK,EAAE,CAAC;MAC3E;IACF;IAEAN,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEQ,IAAI,CAAC,sCAAsCE,SAAS,CAACG,EAAE,eAAeP,KAAK,EAAE,CAAC;;IAEtF;IACAZ,UAAU,CAACoB,QAAQ,CAACC,kBAAM,CAACC,eAAe,EAAE;MAC1CC,MAAM,EAAEC,mBAAO,CAACC,qBAAqB;MACrCC,MAAM,EAAE;QACNC,UAAU,EAAEX;MACd;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACd,KAAK,EAAEI,MAAM,EAAEN,UAAU,EAAEI,iBAAiB,CAC/C,CAAC;EAED,OAAO;IAAEM;EAAQ,CAAC;AACpB,CAAC;AAAAkB,OAAA,CAAA7B,2BAAA,GAAAA,2BAAA","ignoreList":[]}
|
|
@@ -68,6 +68,8 @@ function deleteRefreshCredentialMetadata(credentialRecord) {
|
|
|
68
68
|
async function persistCredentialRecord(agentContext, record) {
|
|
69
69
|
if (record instanceof _core.W3cCredentialRecord) {
|
|
70
70
|
await agentContext.dependencyManager.resolve(_core.W3cCredentialRepository).update(agentContext, record);
|
|
71
|
+
} else if (record instanceof _core.W3cV2CredentialRecord) {
|
|
72
|
+
await agentContext.dependencyManager.resolve(_core.W3cV2CredentialRepository).update(agentContext, record);
|
|
71
73
|
} else if (record instanceof _core.SdJwtVcRecord) {
|
|
72
74
|
await agentContext.dependencyManager.resolve(_core.SdJwtVcRepository).update(agentContext, record);
|
|
73
75
|
} else if (record instanceof _core.MdocRecord) {
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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","W3cV2CredentialRecord","W3cV2CredentialRepository","SdJwtVcRecord","SdJwtVcRepository","MdocRecord","MdocRepository","Error","markOpenIDCredentialStatus","status","refreshMetadata","lastCheckResult","temporaryMetaVanillaObject","notificationMetadata","undefined","tokenResponse"],"sourceRoot":"../../../../src","sources":["modules/openid/metadata.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,21 @@ exports.resolveOpenId4VciOffer = exports.receiveCredentialFromOpenId4VciOffer =
|
|
|
8
8
|
var _openid4vc = require("@credo-ts/openid4vc");
|
|
9
9
|
var _core = require("@credo-ts/core");
|
|
10
10
|
var _metadata = require("./metadata");
|
|
11
|
+
const getCredentialConfigurationIdsToRequest = ({
|
|
12
|
+
resolvedCredentialOffer,
|
|
13
|
+
credentialConfigurationIdsToRequest
|
|
14
|
+
}) => {
|
|
15
|
+
const credentialConfigurationIds = credentialConfigurationIdsToRequest ?? [Object.keys(resolvedCredentialOffer.offeredCredentialConfigurations)[0]];
|
|
16
|
+
if (credentialConfigurationIds.length === 0 || !credentialConfigurationIds[0]) {
|
|
17
|
+
throw new Error('No credential configuration ID found in the credential offer.');
|
|
18
|
+
}
|
|
19
|
+
for (const credentialConfigurationId of credentialConfigurationIds) {
|
|
20
|
+
if (!resolvedCredentialOffer.offeredCredentialConfigurations[credentialConfigurationId]) {
|
|
21
|
+
throw new Error(`Parameter 'credentialConfigurationIdsToRequest' with values ${credentialConfigurationIdsToRequest} is not a credential_configuration_id in the credential offer.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return credentialConfigurationIds;
|
|
25
|
+
};
|
|
11
26
|
const resolveOpenId4VciOffer = async ({
|
|
12
27
|
agent,
|
|
13
28
|
data,
|
|
@@ -29,7 +44,7 @@ const resolveOpenId4VciOffer = async ({
|
|
|
29
44
|
});
|
|
30
45
|
const resolvedCredentialOffer = await agent.openid4vc.holder.resolveCredentialOffer(offerUri);
|
|
31
46
|
if (authorization) {
|
|
32
|
-
throw new Error('Authorization flow is not
|
|
47
|
+
throw new Error('Authorization code flow is not implemented in this OpenID credential offer flow.');
|
|
33
48
|
}
|
|
34
49
|
return resolvedCredentialOffer;
|
|
35
50
|
};
|
|
@@ -39,7 +54,7 @@ async function acquirePreAuthorizedAccessToken({
|
|
|
39
54
|
resolvedCredentialOffer,
|
|
40
55
|
txCode
|
|
41
56
|
}) {
|
|
42
|
-
return await agent.
|
|
57
|
+
return await agent.openid4vc.holder.requestToken({
|
|
43
58
|
resolvedCredentialOffer,
|
|
44
59
|
txCode
|
|
45
60
|
});
|
|
@@ -53,13 +68,7 @@ const customCredentialBindingResolver = async ({
|
|
|
53
68
|
proofTypes
|
|
54
69
|
}) => {
|
|
55
70
|
var _proofTypes$jwt;
|
|
56
|
-
// First, we try to pick a did method
|
|
57
|
-
// Prefer did:jwk, otherwise use did:key, otherwise use undefined
|
|
58
71
|
let didMethod = supportsAllDidMethods || supportedDidMethods !== null && supportedDidMethods !== void 0 && supportedDidMethods.includes('did:jwk') ? 'jwk' : supportedDidMethods !== null && supportedDidMethods !== void 0 && supportedDidMethods.includes('did:key') ? 'key' : undefined;
|
|
59
|
-
|
|
60
|
-
// If supportedDidMethods is undefined, and supportsJwk is false, we will default to did:key
|
|
61
|
-
// this is important as part of MATTR launchpad support which MUST use did:key but doesn't
|
|
62
|
-
// define which did methods they support
|
|
63
72
|
if (!supportedDidMethods && !supportsJwk) {
|
|
64
73
|
didMethod = 'key';
|
|
65
74
|
}
|
|
@@ -77,21 +86,20 @@ const customCredentialBindingResolver = async ({
|
|
|
77
86
|
if (didResult.didState.state !== 'finished') {
|
|
78
87
|
throw new Error('DID creation failed.');
|
|
79
88
|
}
|
|
80
|
-
let
|
|
89
|
+
let didUrl;
|
|
81
90
|
if (didMethod === 'jwk') {
|
|
82
|
-
|
|
83
|
-
verificationMethodId = didJwk.verificationMethodId;
|
|
91
|
+
didUrl = _core.DidJwk.fromDid(didResult.didState.did).verificationMethodId;
|
|
84
92
|
} else {
|
|
85
93
|
const didKey = _core.DidKey.fromDid(didResult.didState.did);
|
|
86
|
-
|
|
94
|
+
didUrl = `${didKey.did}#${didKey.publicJwk.fingerprint}`;
|
|
87
95
|
}
|
|
88
96
|
return {
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
method: 'did',
|
|
98
|
+
didUrls: [didUrl]
|
|
91
99
|
};
|
|
92
100
|
}
|
|
93
101
|
|
|
94
|
-
//
|
|
102
|
+
// Fallback: plain jwk for sd-jwt/mdoc only
|
|
95
103
|
if (supportsJwk && (credentialFormat === _openid4vc.OpenId4VciCredentialFormatProfile.SdJwtVc || credentialFormat === _openid4vc.OpenId4VciCredentialFormatProfile.MsoMdoc)) {
|
|
96
104
|
return {
|
|
97
105
|
method: 'jwk',
|
|
@@ -106,31 +114,29 @@ const receiveCredentialFromOpenId4VciOffer = async ({
|
|
|
106
114
|
resolvedCredentialOffer,
|
|
107
115
|
tokenResponse,
|
|
108
116
|
credentialConfigurationIdsToRequest,
|
|
109
|
-
clientId
|
|
110
|
-
pidSchemes
|
|
117
|
+
clientId
|
|
111
118
|
}) => {
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
119
|
+
const credentialConfigurationIds = getCredentialConfigurationIdsToRequest({
|
|
120
|
+
resolvedCredentialOffer,
|
|
121
|
+
credentialConfigurationIdsToRequest
|
|
122
|
+
});
|
|
116
123
|
const credentials = await agent.openid4vc.holder.requestCredentials({
|
|
117
124
|
resolvedCredentialOffer,
|
|
118
125
|
...tokenResponse,
|
|
119
126
|
clientId,
|
|
120
|
-
credentialConfigurationIds
|
|
127
|
+
credentialConfigurationIds,
|
|
121
128
|
verifyCredentialStatus: false,
|
|
122
129
|
allowedProofOfPossessionSignatureAlgorithms: [
|
|
123
130
|
// NOTE: MATTR launchpad for JFF MUST use EdDSA. So it is important that the default (first allowed one)
|
|
124
131
|
// is EdDSA. The list is ordered by preference, so if no suites are defined by the issuer, the first one
|
|
125
132
|
// will be used
|
|
126
|
-
|
|
133
|
+
'EdDSA', 'ES256'],
|
|
127
134
|
credentialBindingResolver: async ({
|
|
128
135
|
supportedDidMethods,
|
|
129
136
|
proofTypes,
|
|
130
137
|
supportsAllDidMethods,
|
|
131
138
|
supportsJwk,
|
|
132
|
-
credentialFormat
|
|
133
|
-
credentialConfigurationId
|
|
139
|
+
credentialFormat
|
|
134
140
|
}) => {
|
|
135
141
|
return customCredentialBindingResolver({
|
|
136
142
|
agent,
|
|
@@ -138,10 +144,7 @@ const receiveCredentialFromOpenId4VciOffer = async ({
|
|
|
138
144
|
proofTypes,
|
|
139
145
|
supportsAllDidMethods,
|
|
140
146
|
supportsJwk,
|
|
141
|
-
credentialFormat
|
|
142
|
-
credentialConfigurationId,
|
|
143
|
-
resolvedCredentialOffer,
|
|
144
|
-
pidSchemes
|
|
147
|
+
credentialFormat
|
|
145
148
|
});
|
|
146
149
|
}
|
|
147
150
|
});
|
|
@@ -153,36 +156,9 @@ const receiveCredentialFromOpenId4VciOffer = async ({
|
|
|
153
156
|
throw new Error('Error retrieving credential using pre authorized flow: firstCredential is string.');
|
|
154
157
|
}
|
|
155
158
|
const record = firstCredential.record;
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// if ('compact' in firstCredential.) {
|
|
160
|
-
// // TODO: add claimFormat to SdJwtVc
|
|
161
|
-
// record = new SdJwtVcRecord({
|
|
162
|
-
// credentialInstances: firstCredential.credential.compact,
|
|
163
|
-
// })
|
|
164
|
-
// } else if (firstCredential.credential instanceof Mdoc) {
|
|
165
|
-
// record = new MdocRecord({
|
|
166
|
-
// mdoc: firstCredential.credential,
|
|
167
|
-
// })
|
|
168
|
-
// } else {
|
|
169
|
-
// record = new W3cCredentialRecord({
|
|
170
|
-
// credential: firstCredential.credential as W3cJwtVerifiableCredential | W3cJsonLdVerifiableCredential,
|
|
171
|
-
// // We don't support expanded types right now, but would become problem when we support JSON-LD
|
|
172
|
-
// tags: {},
|
|
173
|
-
// })
|
|
174
|
-
// }
|
|
175
|
-
|
|
176
|
-
// TODO: Confirm how this should be handled, notificationMetadata for openid4vc may have been removed
|
|
177
|
-
|
|
178
|
-
// const notificationMetadata = { ...firstCredential.notificationMetadata }
|
|
179
|
-
// if (notificationMetadata) {
|
|
180
|
-
// temporaryMetaVanillaObject.notificationMetadata = notificationMetadata
|
|
181
|
-
// }
|
|
182
|
-
|
|
183
|
-
const openId4VcMetadata = (0, _metadata.extractOpenId4VcCredentialMetadata)(Object.values(resolvedCredentialOffer.offeredCredentialConfigurations)[0], {
|
|
159
|
+
const requestedCredentialConfiguration = resolvedCredentialOffer.offeredCredentialConfigurations[credentialConfigurationIds[0]];
|
|
160
|
+
const openId4VcMetadata = (0, _metadata.extractOpenId4VcCredentialMetadata)(requestedCredentialConfiguration, {
|
|
184
161
|
id: resolvedCredentialOffer.metadata.credentialIssuer.credential_issuer,
|
|
185
|
-
// This might not be correct
|
|
186
162
|
display: resolvedCredentialOffer.metadata.credentialIssuer.display
|
|
187
163
|
});
|
|
188
164
|
(0, _metadata.setOpenId4VcCredentialMetadata)(record, openId4VcMetadata);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_openid4vc","require","_core","_metadata","resolveOpenId4VciOffer","agent","data","uri","authorization","offerUri","encodeURIComponent","JSON","stringify","
|
|
1
|
+
{"version":3,"names":["_openid4vc","require","_core","_metadata","getCredentialConfigurationIdsToRequest","resolvedCredentialOffer","credentialConfigurationIdsToRequest","credentialConfigurationIds","Object","keys","offeredCredentialConfigurations","length","Error","credentialConfigurationId","resolveOpenId4VciOffer","agent","data","uri","authorization","offerUri","encodeURIComponent","JSON","stringify","config","logger","info","openid4vc","holder","resolveCredentialOffer","exports","acquirePreAuthorizedAccessToken","txCode","requestToken","customCredentialBindingResolver","supportedDidMethods","supportsAllDidMethods","supportsJwk","credentialFormat","proofTypes","_proofTypes$jwt","didMethod","includes","undefined","key","kms","createKeyForSignatureAlgorithm","algorithm","jwt","supportedSignatureAlgorithms","publicJwk","Kms","PublicJwk","fromPublicJwk","didResult","dids","create","method","options","keyId","didState","state","didUrl","DidJwk","fromDid","did","verificationMethodId","didKey","DidKey","fingerprint","didUrls","OpenId4VciCredentialFormatProfile","SdJwtVc","MsoMdoc","join","receiveCredentialFromOpenId4VciOffer","tokenResponse","clientId","credentials","requestCredentials","verifyCredentialStatus","allowedProofOfPossessionSignatureAlgorithms","credentialBindingResolver","firstCredential","record","requestedCredentialConfiguration","openId4VcMetadata","extractOpenId4VcCredentialMetadata","id","metadata","credentialIssuer","credential_issuer","display","setOpenId4VcCredentialMetadata"],"sourceRoot":"../../../../src","sources":["modules/openid/offerResolve.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.refreshAndQueueReplacement = refreshAndQueueReplacement;
|
|
7
|
+
var _credentialRecord = require("../credentialRecord");
|
|
8
|
+
var _refreshToken = require("./refreshToken");
|
|
9
|
+
var _registry = require("./registry");
|
|
10
|
+
var _reIssuance = require("./reIssuance");
|
|
11
|
+
async function refreshAndQueueReplacement({
|
|
12
|
+
agent,
|
|
13
|
+
logger,
|
|
14
|
+
record,
|
|
15
|
+
toLite = _credentialRecord.toOpenIDCredentialLite
|
|
16
|
+
}) {
|
|
17
|
+
const token = await (0, _refreshToken.refreshAccessToken)({
|
|
18
|
+
logger,
|
|
19
|
+
cred: record,
|
|
20
|
+
agentContext: agent.context
|
|
21
|
+
});
|
|
22
|
+
if (!token) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const newRecord = await (0, _reIssuance.reissueCredentialWithAccessToken)({
|
|
26
|
+
agent,
|
|
27
|
+
logger,
|
|
28
|
+
record,
|
|
29
|
+
tokenResponse: token
|
|
30
|
+
});
|
|
31
|
+
if (!newRecord) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
_registry.credentialRegistry.getState().markExpiredWithReplacement(record.id, toLite(newRecord));
|
|
35
|
+
return newRecord;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_credentialRecord","require","_refreshToken","_registry","_reIssuance","refreshAndQueueReplacement","agent","logger","record","toLite","toOpenIDCredentialLite","token","refreshAccessToken","cred","agentContext","context","undefined","newRecord","reissueCredentialWithAccessToken","tokenResponse","credentialRegistry","getState","markExpiredWithReplacement","id"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/operations.ts"],"mappings":";;;;;;AAEA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAUO,eAAeI,0BAA0BA,CAAC;EAC/CC,KAAK;EACLC,MAAM;EACNC,MAAM;EACNC,MAAM,GAAGC;AACc,CAAC,EAAE;EAC1B,MAAMC,KAAK,GAAG,MAAM,IAAAC,gCAAkB,EAAC;IAAEL,MAAM;IAAEM,IAAI,EAAEL,MAAM;IAAEM,YAAY,EAAER,KAAK,CAACS;EAAQ,CAAC,CAAC;EAC7F,IAAI,CAACJ,KAAK,EAAE;IACV,OAAOK,SAAS;EAClB;EAEA,MAAMC,SAAS,GAAG,MAAM,IAAAC,4CAAgC,EAAC;IACvDZ,KAAK;IACLC,MAAM;IACNC,MAAM;IACNW,aAAa,EAAER;EACjB,CAAC,CAAC;EAEF,IAAI,CAACM,SAAS,EAAE;IACd,OAAOD,SAAS;EAClB;EAEAI,4BAAkB,CAACC,QAAQ,CAAC,CAAC,CAACC,0BAA0B,CAACd,MAAM,CAACe,EAAE,EAAEd,MAAM,CAACQ,SAAS,CAAC,CAAC;EACtF,OAAOA,SAAS;AAClB","ignoreList":[]}
|
|
@@ -12,8 +12,7 @@ async function reissueCredentialWithAccessToken({
|
|
|
12
12
|
logger,
|
|
13
13
|
record,
|
|
14
14
|
tokenResponse,
|
|
15
|
-
clientId
|
|
16
|
-
pidSchemes
|
|
15
|
+
clientId
|
|
17
16
|
}) {
|
|
18
17
|
if (!record) {
|
|
19
18
|
throw new Error('No credential record provided for re-issuance.');
|
|
@@ -35,26 +34,23 @@ async function reissueCredentialWithAccessToken({
|
|
|
35
34
|
logger.info('*** Starting to get new credential via re-issuance flow ***');
|
|
36
35
|
// Request a **new** credential using the *existing* configuration id
|
|
37
36
|
|
|
38
|
-
const creds = await agent.
|
|
37
|
+
const creds = await agent.openid4vc.holder.requestCredentials({
|
|
39
38
|
resolvedCredentialOffer,
|
|
40
39
|
accessToken: tokenResponse.access_token,
|
|
41
40
|
tokenType: tokenResponse.token_type || 'Bearer',
|
|
42
41
|
cNonce: tokenResponse.c_nonce,
|
|
43
42
|
clientId,
|
|
44
|
-
|
|
43
|
+
credentialConfigurationIds: [credentialConfigurationId],
|
|
45
44
|
verifyCredentialStatus: false,
|
|
46
45
|
// you’ll check after storing
|
|
47
46
|
allowedProofOfPossessionSignatureAlgorithms: ['EdDSA', 'ES256'],
|
|
48
47
|
credentialBindingResolver: async opts => (0, _offerResolve.customCredentialBindingResolver)({
|
|
49
48
|
agent,
|
|
50
49
|
supportedDidMethods: opts.supportedDidMethods,
|
|
51
|
-
|
|
50
|
+
proofTypes: opts.proofTypes,
|
|
52
51
|
supportsAllDidMethods: opts.supportsAllDidMethods,
|
|
53
52
|
supportsJwk: opts.supportsJwk,
|
|
54
|
-
credentialFormat: opts.credentialFormat
|
|
55
|
-
// supportedCredentialId: opts.supportedCredentialId,
|
|
56
|
-
resolvedCredentialOffer: resolvedCredentialOffer,
|
|
57
|
-
pidSchemes
|
|
53
|
+
credentialFormat: opts.credentialFormat
|
|
58
54
|
})
|
|
59
55
|
});
|
|
60
56
|
logger.info('*** New credential received via re-issuance flow ***.');
|
|
@@ -76,7 +72,8 @@ async function reissueCredentialWithAccessToken({
|
|
|
76
72
|
// })
|
|
77
73
|
// }
|
|
78
74
|
|
|
79
|
-
const
|
|
75
|
+
const requestedCredentialConfiguration = resolvedCredentialOffer.offeredCredentialConfigurations[credentialConfigurationId];
|
|
76
|
+
const openId4VcMetadata = (0, _metadata.extractOpenId4VcCredentialMetadata)(requestedCredentialConfiguration, {
|
|
80
77
|
id: resolvedCredentialOffer.metadata.credentialIssuer.credential_issuer,
|
|
81
78
|
display: resolvedCredentialOffer.metadata.credentialIssuer.display
|
|
82
79
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_offerResolve","require","_metadata","_types","reissueCredentialWithAccessToken","agent","logger","record","tokenResponse","clientId","
|
|
1
|
+
{"version":3,"names":["_offerResolve","require","_metadata","_types","reissueCredentialWithAccessToken","agent","logger","record","tokenResponse","clientId","Error","refreshMetaData","getRefreshCredentialMetadata","credentialConfigurationId","resolvedCredentialOffer","access_token","info","creds","openid4vc","holder","requestCredentials","accessToken","tokenType","token_type","cNonce","c_nonce","credentialConfigurationIds","verifyCredentialStatus","allowedProofOfPossessionSignatureAlgorithms","credentialBindingResolver","opts","customCredentialBindingResolver","supportedDidMethods","proofTypes","supportsAllDidMethods","supportsJwk","credentialFormat","firstCredential","credentials","newRecord","requestedCredentialConfiguration","offeredCredentialConfigurations","openId4VcMetadata","extractOpenId4VcCredentialMetadata","id","metadata","credentialIssuer","credential_issuer","display","setOpenId4VcCredentialMetadata","setRefreshCredentialMetadata","refreshToken","refresh_token","lastCheckedAt","Date","now","lastCheckResult","RefreshStatus","Valid"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/reIssuance.ts"],"mappings":";;;;;;AASA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAMA,IAAAE,MAAA,GAAAF,OAAA;AAYO,eAAeG,gCAAgCA,CAAC;EACrDC,KAAK;EACLC,MAAM;EACNC,MAAM;EACNC,aAAa;EACbC;AAC2B,CAAC,EAA+C;EAC3E,IAAI,CAACF,MAAM,EAAE;IACX,MAAM,IAAIG,KAAK,CAAC,gDAAgD,CAAC;EACnE;EAEA,MAAMC,eAAe,GAAG,IAAAC,sCAA4B,EAACL,MAAM,CAAC;EAC5D,IAAI,CAACI,eAAe,EAAE;IACpB,MAAM,IAAID,KAAK,CAAC,0DAA0D,CAAC;EAC7E;EACA,MAAM;IAAEG,yBAAyB;IAAEC;EAAwB,CAAC,GAAGH,eAAe;EAE9E,IAAI,CAACG,uBAAuB,EAAE;IAC5B,MAAM,IAAIJ,KAAK,CAAC,6EAA6E,CAAC;EAChG;EAEA,IAAI,CAACF,aAAa,CAACO,YAAY,EAAE;IAC/B,MAAM,IAAIL,KAAK,CAAC,8DAA8D,CAAC;EACjF;EAEAJ,MAAM,CAACU,IAAI,CAAC,6DAA6D,CAAC;EAC1E;;EAQA,MAAMC,KAAe,GAAG,MAAMZ,KAAK,CAACa,SAAS,CAACC,MAAM,CAACC,kBAAkB,CAAC;IACtEN,uBAAuB;IACvBO,WAAW,EAAEb,aAAa,CAACO,YAAY;IACvCO,SAAS,EAAEd,aAAa,CAACe,UAAU,IAAI,QAAQ;IAC/CC,MAAM,EAAEhB,aAAa,CAACiB,OAAO;IAC7BhB,QAAQ;IACRiB,0BAA0B,EAAE,CAACb,yBAAyB,CAAC;IACvDc,sBAAsB,EAAE,KAAK;IAAE;IAC/BC,2CAA2C,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;IAC/DC,yBAAyB,EAAE,MAAOC,IAAwC,IACxE,IAAAC,6CAA+B,EAAC;MAC9B1B,KAAK;MACL2B,mBAAmB,EAAEF,IAAI,CAACE,mBAAmB;MAC7CC,UAAU,EAAEH,IAAI,CAACG,UAAU;MAC3BC,qBAAqB,EAAEJ,IAAI,CAACI,qBAAqB;MACjDC,WAAW,EAAEL,IAAI,CAACK,WAAW;MAC7BC,gBAAgB,EAAEN,IAAI,CAACM;IACzB,CAAC;EACL,CAAC,CAAC;EAEF9B,MAAM,CAACU,IAAI,CAAC,uDAAuD,CAAC;;EAEpE;EACA,MAAM,CAACqB,eAAe,CAAC,GAAGpB,KAAK,CAACqB,WAAW;EAC3C,IAAI,CAACD,eAAe,IAAI,OAAOA,eAAe,KAAK,QAAQ,EAAE;IAC3D,MAAM,IAAI3B,KAAK,CAAC,+DAA+D,CAAC;EAClF;EAEA,MAAM6B,SAAiC,GAAGF,eAAe,CAAC9B,MAAM;EAChE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,MAAMiC,gCAAgC,GACpC1B,uBAAuB,CAAC2B,+BAA+B,CAAC5B,yBAAyB,CAAC;EAEpF,MAAM6B,iBAAiB,GAAG,IAAAC,4CAAkC,EAACH,gCAAgC,EAAS;IACpGI,EAAE,EAAE9B,uBAAuB,CAAC+B,QAAQ,CAACC,gBAAgB,CAACC,iBAAiB;IACvEC,OAAO,EAAElC,uBAAuB,CAAC+B,QAAQ,CAACC,gBAAgB,CAACE;EAC7D,CAAC,CAAC;EAEF,IAAAC,wCAA8B,EAACV,SAAS,EAAEG,iBAAiB,CAAC;EAE5D,IAAAQ,sCAA4B,EAACX,SAAS,EAAE;IACtC,GAAG5B,eAAe;IAClBwC,YAAY,EAAE3C,aAAa,CAAC4C,aAAa,IAAIzC,eAAe,CAACwC,YAAY;IACzEE,aAAa,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;IACzBC,eAAe,EAAEC,oBAAa,CAACC;EACjC,CAAC,CAAC;EAEF,OAAOnB,SAAS;AAClB","ignoreList":[]}
|