@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
|
@@ -1,42 +1,31 @@
|
|
|
1
1
|
// modules/openid/refresh/RefreshOrchestrator.ts
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import { reissueCredentialWithAccessToken } from './reIssuance';
|
|
5
|
-
import { RefreshStatus } from './types';
|
|
2
|
+
|
|
3
|
+
import { OpenIDCredentialRefreshFlowType, RefreshStatus } from './types';
|
|
6
4
|
import { credentialRegistry } from './registry';
|
|
7
5
|
import { verifyCredentialStatus } from './verifyCredentialStatus';
|
|
8
6
|
import { getRefreshCredentialMetadata, markOpenIDCredentialStatus, persistCredentialRecord, setRefreshCredentialMetadata } from '../metadata';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return {
|
|
12
|
-
id: rec.id,
|
|
13
|
-
// best-effort: SdJwt/W3C both expose claimFormat via tags in many setups.
|
|
14
|
-
// Fallback to JwtVc if unknown so UI has *some* value.
|
|
15
|
-
format: rec instanceof W3cCredentialRecord && ClaimFormat.JwtVc || rec instanceof SdJwtVcRecord && ClaimFormat.SdJwtW3cVc || ClaimFormat.JwtVc,
|
|
16
|
-
// TODO: Won't these checks against ClaimFormat always be true?
|
|
17
|
-
createdAt: (_rec$createdAt = rec.createdAt) === null || _rec$createdAt === void 0 ? void 0 : _rec$createdAt.toISOString(),
|
|
18
|
-
issuer: undefined
|
|
19
|
-
};
|
|
20
|
-
};
|
|
7
|
+
import { toOpenIDCredentialLite } from '../credentialRecord';
|
|
8
|
+
import { refreshAndQueueReplacement } from './operations';
|
|
21
9
|
export class RefreshOrchestrator {
|
|
22
10
|
intervalOn = false; // interval enabled?
|
|
23
11
|
runningOnce = false; // a run is in progress?
|
|
24
12
|
|
|
25
13
|
recentlyIssued = new Map();
|
|
26
|
-
checkStatusOnly = true;
|
|
27
14
|
constructor(logger, bridge, opts) {
|
|
28
15
|
this.logger = logger;
|
|
29
16
|
this.opts = {
|
|
30
17
|
intervalMs: 15 * 60 * 1000,
|
|
31
18
|
autoStart: true,
|
|
19
|
+
flowType: OpenIDCredentialRefreshFlowType.FullReplacement,
|
|
32
20
|
onError: e => this.logger.error(String(e)),
|
|
33
21
|
listRecords: async () => [],
|
|
34
|
-
toLite:
|
|
22
|
+
toLite: toOpenIDCredentialLite,
|
|
35
23
|
...(opts ?? {})
|
|
36
24
|
};
|
|
37
25
|
logger.info(`🔧 [RefreshOrchestrator] initialized -> ${JSON.stringify({
|
|
38
26
|
intervalMs: this.opts.intervalMs,
|
|
39
|
-
autoStart: this.opts.autoStart
|
|
27
|
+
autoStart: this.opts.autoStart,
|
|
28
|
+
flowType: this.opts.flowType
|
|
40
29
|
})}`);
|
|
41
30
|
bridge.onReady(agent => {
|
|
42
31
|
this.agent = agent;
|
|
@@ -59,7 +48,8 @@ export class RefreshOrchestrator {
|
|
|
59
48
|
};
|
|
60
49
|
this.logger.info(`🔧 [RefreshOrchestrator] configure -> ${JSON.stringify({
|
|
61
50
|
intervalMs: this.opts.intervalMs,
|
|
62
|
-
autoStart: this.opts.autoStart
|
|
51
|
+
autoStart: this.opts.autoStart,
|
|
52
|
+
flowType: this.opts.flowType
|
|
63
53
|
})}`);
|
|
64
54
|
const nowIntervalMs = this.opts.intervalMs ?? null;
|
|
65
55
|
const nowAutoStart = this.opts.autoStart ?? true;
|
|
@@ -133,8 +123,11 @@ export class RefreshOrchestrator {
|
|
|
133
123
|
for (const rec of records) {
|
|
134
124
|
// don’t block whole batch if one fails
|
|
135
125
|
try {
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
if (this.opts.flowType === OpenIDCredentialRefreshFlowType.FullReplacement) {
|
|
127
|
+
await this.refreshRecord(rec);
|
|
128
|
+
} else {
|
|
129
|
+
await this.checkRecordStatus(rec);
|
|
130
|
+
}
|
|
138
131
|
} catch (e) {
|
|
139
132
|
var _this$opts$onError, _this$opts;
|
|
140
133
|
this.logger.error(`💥 [Refresh] record ${rec.id} failed: ${String(e)}`);
|
|
@@ -165,6 +158,7 @@ export class RefreshOrchestrator {
|
|
|
165
158
|
shouldSkip,
|
|
166
159
|
markRefreshing,
|
|
167
160
|
clearRefreshing,
|
|
161
|
+
clearExpired,
|
|
168
162
|
upsert,
|
|
169
163
|
markInvalid,
|
|
170
164
|
setLastSweep
|
|
@@ -189,19 +183,22 @@ export class RefreshOrchestrator {
|
|
|
189
183
|
this.logger.info(`🧭 [Refresh] check credential ${id}`);
|
|
190
184
|
try {
|
|
191
185
|
// 3) verification
|
|
192
|
-
const
|
|
186
|
+
const status = await verifyCredentialStatus(rec, this.logger);
|
|
193
187
|
const now = Date.now();
|
|
194
188
|
const meta = getRefreshCredentialMetadata(rec) ?? {};
|
|
195
|
-
meta.lastCheckResult =
|
|
189
|
+
meta.lastCheckResult = status;
|
|
196
190
|
meta.lastCheckedAt = now;
|
|
197
191
|
meta.attemptCount = (meta.attemptCount ?? 0) + 1;
|
|
198
192
|
setRefreshCredentialMetadata(rec, meta);
|
|
199
193
|
await persistCredentialRecord(this.agent.context, rec);
|
|
200
|
-
if (
|
|
194
|
+
if (status === RefreshStatus.Valid) {
|
|
201
195
|
this.logger.info(`✅ [Refresh] valid → ${id}`);
|
|
202
|
-
|
|
196
|
+
clearExpired(id);
|
|
197
|
+
} else if (status === RefreshStatus.Invalid) {
|
|
203
198
|
this.logger.info(`❌ [Refresh] invalid → ${id}`);
|
|
204
|
-
markInvalid(id);
|
|
199
|
+
markInvalid(id);
|
|
200
|
+
} else {
|
|
201
|
+
this.logger.warn(`⚠️ [Refresh] status check error → ${id}`);
|
|
205
202
|
}
|
|
206
203
|
setLastSweep(new Date(now).toISOString());
|
|
207
204
|
} catch (error) {
|
|
@@ -218,9 +215,8 @@ export class RefreshOrchestrator {
|
|
|
218
215
|
markRefreshing,
|
|
219
216
|
clearRefreshing,
|
|
220
217
|
clearExpired,
|
|
221
|
-
markExpiredWithReplacement,
|
|
222
|
-
blockAsFailed,
|
|
223
218
|
blockAsSucceeded,
|
|
219
|
+
markInvalid,
|
|
224
220
|
upsert
|
|
225
221
|
} = credentialRegistry.getState();
|
|
226
222
|
const id = rec.id;
|
|
@@ -243,8 +239,8 @@ export class RefreshOrchestrator {
|
|
|
243
239
|
this.logger.info(`🧭 [Refresh] check credential ${id}`);
|
|
244
240
|
try {
|
|
245
241
|
// 3) verification
|
|
246
|
-
const
|
|
247
|
-
if (
|
|
242
|
+
const status = await verifyCredentialStatus(rec, this.logger);
|
|
243
|
+
if (status === RefreshStatus.Valid) {
|
|
248
244
|
this.logger.info(`✅ [Refresh] valid → ${id}`);
|
|
249
245
|
// If it was previously expired for any reason, clear that and block as succeeded
|
|
250
246
|
clearExpired(id);
|
|
@@ -252,6 +248,15 @@ export class RefreshOrchestrator {
|
|
|
252
248
|
// blockAsSucceeded(id)
|
|
253
249
|
return;
|
|
254
250
|
}
|
|
251
|
+
if (status === RefreshStatus.Error) {
|
|
252
|
+
this.logger.warn(`⚠️ [Refresh] status check failed; deferring re-issue → ${id}`);
|
|
253
|
+
await markOpenIDCredentialStatus({
|
|
254
|
+
credential: rec,
|
|
255
|
+
status: RefreshStatus.Error,
|
|
256
|
+
agentContext: this.agent.context
|
|
257
|
+
});
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
255
260
|
|
|
256
261
|
// Invalid case:
|
|
257
262
|
|
|
@@ -260,48 +265,28 @@ export class RefreshOrchestrator {
|
|
|
260
265
|
status: RefreshStatus.Invalid,
|
|
261
266
|
agentContext: this.agent.context
|
|
262
267
|
});
|
|
263
|
-
|
|
264
|
-
// 4) needs refresh → get access token
|
|
265
268
|
this.logger.info(`♻️ [Refresh] invalid, attempting re-issue → ${id}`);
|
|
266
|
-
const
|
|
267
|
-
logger: this.logger,
|
|
268
|
-
cred: rec,
|
|
269
|
-
agentContext: this.agent.context
|
|
270
|
-
});
|
|
271
|
-
if (!token) {
|
|
272
|
-
const msg = `no refresh token available`;
|
|
273
|
-
this.logger.warn(`⚠️ [Refresh] ${msg} for ${id}`);
|
|
274
|
-
blockAsFailed(id, msg);
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
// 5) re-issue
|
|
279
|
-
const newRecord = await reissueCredentialWithAccessToken({
|
|
269
|
+
const newRecord = await refreshAndQueueReplacement({
|
|
280
270
|
agent: this.agent,
|
|
281
271
|
logger: this.logger,
|
|
282
272
|
record: rec,
|
|
283
|
-
|
|
273
|
+
toLite: this.opts.toLite
|
|
284
274
|
});
|
|
285
|
-
if (newRecord) {
|
|
286
|
-
|
|
287
|
-
// Queue a replacement for UI/notifications and block the old one as succeeded
|
|
288
|
-
markExpiredWithReplacement(id, this.opts.toLite(newRecord));
|
|
289
|
-
blockAsSucceeded(id);
|
|
290
|
-
this.recentlyIssued.set(newRecord.id, newRecord);
|
|
291
|
-
} else {
|
|
292
|
-
const msg = `re-issue returned no record`;
|
|
275
|
+
if (!newRecord) {
|
|
276
|
+
const msg = 'credential refresh did not yield a replacement';
|
|
293
277
|
this.logger.warn(`⚠️ [Refresh] ${msg} for ${id}`);
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
credential: rec,
|
|
297
|
-
status: RefreshStatus.Invalid,
|
|
298
|
-
agentContext: this.agent.context
|
|
299
|
-
});
|
|
278
|
+
markInvalid(id);
|
|
279
|
+
return;
|
|
300
280
|
}
|
|
281
|
+
this.logger.info(`💾 [Refresh] new credential → ${newRecord.id}`);
|
|
282
|
+
blockAsSucceeded(id);
|
|
283
|
+
this.recentlyIssued.set(newRecord.id, newRecord);
|
|
301
284
|
} catch (e) {
|
|
285
|
+
var _this$opts$onError4, _this$opts4;
|
|
302
286
|
const err = String(e);
|
|
303
287
|
this.logger.error(`💥 [Refresh] error on ${id}: ${err}`);
|
|
304
|
-
|
|
288
|
+
(_this$opts$onError4 = (_this$opts4 = this.opts).onError) === null || _this$opts$onError4 === void 0 || _this$opts$onError4.call(_this$opts4, e);
|
|
289
|
+
markInvalid(id);
|
|
305
290
|
} finally {
|
|
306
291
|
// 6) clear in-flight marker
|
|
307
292
|
clearRefreshing(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ClaimFormat","SdJwtVcRecord","W3cCredentialRecord","refreshAccessToken","reissueCredentialWithAccessToken","RefreshStatus","credentialRegistry","verifyCredentialStatus","getRefreshCredentialMetadata","markOpenIDCredentialStatus","persistCredentialRecord","setRefreshCredentialMetadata","defaultToLite","rec","_rec$createdAt","id","format","JwtVc","SdJwtW3cVc","createdAt","toISOString","issuer","undefined","RefreshOrchestrator","intervalOn","runningOnce","recentlyIssued","Map","checkStatusOnly","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","checkRecordStatus","_this$opts$onError","_this$opts","call","_this$opts$onError2","_this$opts2","setIntervalMs","resolveFull","get","shouldSkip","markRefreshing","clearRefreshing","upsert","markInvalid","setLastSweep","getState","isValid","now","Date","meta","lastCheckResult","Valid","Invalid","lastCheckedAt","attemptCount","context","_this$opts$onError3","_this$opts3","refreshRecord","clearExpired","markExpiredWithReplacement","blockAsFailed","blockAsSucceeded","credential","status","agentContext","token","cred","msg","newRecord","record","tokenResponse","set","err"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/refreshOrchestrator.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["OpenIDCredentialRefreshFlowType","RefreshStatus","credentialRegistry","verifyCredentialStatus","getRefreshCredentialMetadata","markOpenIDCredentialStatus","persistCredentialRecord","setRefreshCredentialMetadata","toOpenIDCredentialLite","refreshAndQueueReplacement","RefreshOrchestrator","intervalOn","runningOnce","recentlyIssued","Map","constructor","logger","bridge","opts","intervalMs","autoStart","flowType","FullReplacement","onError","e","error","String","listRecords","toLite","info","JSON","stringify","onReady","agent","start","configure","next","prev","agentReady","nowIntervalMs","nowAutoStart","stop","isRunning","timer","setInterval","runOnce","clearInterval","undefined","reason","_this$agent","warn","isInitialized","records","length","rec","refreshRecord","checkRecordStatus","_this$opts$onError","_this$opts","id","call","_this$opts$onError2","_this$opts2","setIntervalMs","resolveFull","get","shouldSkip","markRefreshing","clearRefreshing","clearExpired","upsert","markInvalid","setLastSweep","getState","status","now","Date","meta","lastCheckResult","lastCheckedAt","attemptCount","context","Valid","Invalid","toISOString","_this$opts$onError3","_this$opts3","blockAsSucceeded","Error","credential","agentContext","newRecord","record","msg","set","_this$opts$onError4","_this$opts4","err"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/refreshOrchestrator.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,20 +14,16 @@ export async function refreshAccessToken({
|
|
|
14
14
|
logger.info(`[refreshAccessToken] Found refresh metadata for credential: ${cred.id}`);
|
|
15
15
|
const {
|
|
16
16
|
refreshToken,
|
|
17
|
-
|
|
17
|
+
tokenEndpoint
|
|
18
18
|
} = refreshMetaData;
|
|
19
19
|
try {
|
|
20
|
-
if (!
|
|
21
|
-
throw new Error('No
|
|
20
|
+
if (!tokenEndpoint) {
|
|
21
|
+
throw new Error('No token endpoint found in the credential offer metadata');
|
|
22
22
|
}
|
|
23
|
-
logger.info(`[refreshAccessToken] Found
|
|
23
|
+
logger.info(`[refreshAccessToken] Found token endpoint for credential: ${cred.id}: ${tokenEndpoint}`);
|
|
24
24
|
|
|
25
25
|
// Build token endpoint:
|
|
26
|
-
|
|
27
|
-
const tokenUrl = authServer.endsWith('/') ? authServer.slice(0, -1) : authServer;
|
|
28
|
-
// const tokenUrl = new URL('token', authServer)
|
|
29
|
-
// tokenUrl.searchParams.set('force', 'false')
|
|
30
|
-
|
|
26
|
+
const tokenUrl = tokenEndpoint.endsWith('/') ? tokenEndpoint.slice(0, -1) : tokenEndpoint;
|
|
31
27
|
logger.info(`[refreshAccessToken] Refreshing access token at URL: ${tokenUrl} for credential: ${cred.id}`);
|
|
32
28
|
const body = new URLSearchParams({
|
|
33
29
|
grant_type: 'refresh_token',
|
|
@@ -45,20 +41,24 @@ export async function refreshAccessToken({
|
|
|
45
41
|
},
|
|
46
42
|
body: body.toString()
|
|
47
43
|
});
|
|
48
|
-
logger.info(`[refreshAccessToken]
|
|
44
|
+
logger.info(`[refreshAccessToken] Token endpoint response status: ${res.status}`);
|
|
49
45
|
if (!res.ok) {
|
|
50
46
|
const errText = await res.text();
|
|
51
47
|
throw new Error(`Refresh failed ${res.status}: ${errText}`);
|
|
52
48
|
}
|
|
53
49
|
const data = await res.json();
|
|
54
|
-
logger.info(`[refreshAccessToken]
|
|
50
|
+
logger.info(`[refreshAccessToken] Token refresh succeeded: ${JSON.stringify({
|
|
51
|
+
token_type: data.token_type,
|
|
52
|
+
expires_in: data.expires_in,
|
|
53
|
+
has_access_token: Boolean(data.access_token),
|
|
54
|
+
has_refresh_token: Boolean(data.refresh_token)
|
|
55
|
+
})}`);
|
|
55
56
|
|
|
56
57
|
// If refresh token rotated, persist it
|
|
57
58
|
if (data.refresh_token && data.refresh_token !== refreshToken) {
|
|
58
59
|
logger.info(`[refreshAccessToken] Refresh token rotated; saving new one`);
|
|
59
60
|
setRefreshCredentialMetadata(cred, {
|
|
60
61
|
...refreshMetaData,
|
|
61
|
-
authServer: authServer,
|
|
62
62
|
refreshToken: data.refresh_token
|
|
63
63
|
});
|
|
64
64
|
await persistCredentialRecord(agentContext, cred);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getRefreshCredentialMetadata","persistCredentialRecord","setRefreshCredentialMetadata","refreshAccessToken","logger","cred","agentContext","info","id","refreshMetaData","error","refreshToken","
|
|
1
|
+
{"version":3,"names":["getRefreshCredentialMetadata","persistCredentialRecord","setRefreshCredentialMetadata","refreshAccessToken","logger","cred","agentContext","info","id","refreshMetaData","error","refreshToken","tokenEndpoint","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","status","ok","errText","text","data","json","JSON","stringify","token_type","expires_in","has_access_token","Boolean","access_token","has_refresh_token"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/refreshToken.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -106,7 +106,7 @@ export const credentialRegistry = createStore((set, get) => ({
|
|
|
106
106
|
shouldSkip: id => {
|
|
107
107
|
const s = get();
|
|
108
108
|
if (s.refreshing[id]) return true; // in-progress
|
|
109
|
-
if (s.expired.includes(id)) return true; // replacement already queued
|
|
109
|
+
if (s.expired.includes(id) && Boolean(s.replacements[id])) return true; // replacement already queued
|
|
110
110
|
if (s.blocked[id]) return true; // previously succeeded/failed
|
|
111
111
|
return false;
|
|
112
112
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createStore","credentialRegistry","set","get","byId","expired","checked","replacements","refreshing","blocked","lastSweepAt","undefined","upsert","cred","s","id","markRefreshing","clearRefreshing","_drop","rest","markExpiredWithReplacement","oldId","replacement","includes","markInvalid","acceptReplacement","repl","restRepl","filter","x","reason","at","Date","toISOString","clearExpired","blockAsSucceeded","blockAsFailed","error","unblock","shouldSkip","setLastSweep","iso","reset","readRegistry","getState","mutateRegistry","updater","setState","selectOldIdByReplacementId","replacementId","Object","entries"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/registry.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"names":["createStore","credentialRegistry","set","get","byId","expired","checked","replacements","refreshing","blocked","lastSweepAt","undefined","upsert","cred","s","id","markRefreshing","clearRefreshing","_drop","rest","markExpiredWithReplacement","oldId","replacement","includes","markInvalid","acceptReplacement","repl","restRepl","filter","x","reason","at","Date","toISOString","clearExpired","blockAsSucceeded","blockAsFailed","error","unblock","shouldSkip","Boolean","setLastSweep","iso","reset","readRegistry","getState","mutateRegistry","updater","setState","selectOldIdByReplacementId","replacementId","Object","entries"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/registry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,6 +4,17 @@ export let RefreshStatus = /*#__PURE__*/function (RefreshStatus) {
|
|
|
4
4
|
RefreshStatus["Error"] = "error";
|
|
5
5
|
return RefreshStatus;
|
|
6
6
|
}({});
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Controls how invalid OpenID credentials are handled after status checks.
|
|
10
|
+
* - InvalidThenOnDemand: show invalid notification; replacement is attempted on user action.
|
|
11
|
+
* - FullReplacement: orchestrator attempts replacement immediately and surfaces replacement notification when available.
|
|
12
|
+
*/
|
|
13
|
+
export let OpenIDCredentialRefreshFlowType = /*#__PURE__*/function (OpenIDCredentialRefreshFlowType) {
|
|
14
|
+
OpenIDCredentialRefreshFlowType["InvalidThenOnDemand"] = "invalid-then-on-demand";
|
|
15
|
+
OpenIDCredentialRefreshFlowType["FullReplacement"] = "full-replacement";
|
|
16
|
+
return OpenIDCredentialRefreshFlowType;
|
|
17
|
+
}({});
|
|
7
18
|
export let OpenIDCustomNotificationType = /*#__PURE__*/function (OpenIDCustomNotificationType) {
|
|
8
19
|
OpenIDCustomNotificationType["CredentialReplacementAvailable"] = "CustomNotificationOpenIDCredential";
|
|
9
20
|
OpenIDCustomNotificationType["CredentialExpired"] = "CredentialExpired";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RefreshStatus","OpenIDCustomNotificationType"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/types.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["RefreshStatus","OpenIDCredentialRefreshFlowType","OpenIDCustomNotificationType"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/types.ts"],"mappings":"AAeA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAMzB;AACA;AACA;AACA;AACA;AACA,WAAYC,+BAA+B,0BAA/BA,+BAA+B;EAA/BA,+BAA+B;EAA/BA,+BAA+B;EAAA,OAA/BA,+BAA+B;AAAA;AAkD3C,WAAYC,4BAA4B,0BAA5BA,4BAA4B;EAA5BA,4BAA4B;EAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA","ignoreList":[]}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
// modules/openid/refresh/verifyCredentialStatus.ts
|
|
2
2
|
|
|
3
3
|
import { getListFromStatusListJWT, getStatusListFromJWT } from '@sd-jwt/jwt-status-list';
|
|
4
|
+
import { RefreshStatus } from './types';
|
|
4
5
|
/**
|
|
5
6
|
* Verifies credential status for Sd-JWT credentials using status lists.
|
|
6
7
|
* Non–Sd-JWT credentials (W3C jwt_vc_json without status list, or mdoc) are treated as valid here.
|
|
7
|
-
* Returns true if valid; false if revoked/invalid or on error.
|
|
8
8
|
*/
|
|
9
9
|
export async function verifyCredentialStatus(rec, logger) {
|
|
10
10
|
try {
|
|
11
11
|
// Only Sd-JWT creds have compactSdJwtVc in this codebase
|
|
12
|
-
if (!('compactSdJwtVc' in rec)) return
|
|
12
|
+
if (!('compactSdJwtVc' in rec)) return RefreshStatus.Valid;
|
|
13
13
|
logger === null || logger === void 0 || logger.info(`[Verifier] Verifying credential status for Sd-JWT credential: ${rec.id}`);
|
|
14
14
|
const ref = getStatusListFromJWT(rec.firstCredential.compact);
|
|
15
15
|
const res = await fetch(ref.uri);
|
|
16
16
|
if (!res.ok) throw new Error(`HTTP ${res.status}`);
|
|
17
17
|
const jwt = await res.text();
|
|
18
18
|
const list = getListFromStatusListJWT(jwt);
|
|
19
|
-
const
|
|
20
|
-
logger === null || logger === void 0 || logger.info(`${
|
|
21
|
-
return
|
|
19
|
+
const status = list.getStatus(ref.idx) === 0 ? RefreshStatus.Valid : RefreshStatus.Invalid;
|
|
20
|
+
logger === null || logger === void 0 || logger.info(`${status === RefreshStatus.Valid ? '✅' : '❌'} [Verifier] ${rec.id} → ${status}`);
|
|
21
|
+
return status;
|
|
22
22
|
} catch (e) {
|
|
23
23
|
var _logger$error;
|
|
24
24
|
logger === null || logger === void 0 || (_logger$error = logger.error) === null || _logger$error === void 0 || _logger$error.call(logger, `💥 [Verifier] ${'id' in rec ? rec.id : 'unknown'} verify failed: ${String(e)}`);
|
|
25
|
-
return
|
|
25
|
+
return RefreshStatus.Error;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=verifyCredentialStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getListFromStatusListJWT","getStatusListFromJWT","verifyCredentialStatus","rec","logger","info","id","ref","firstCredential","compact","res","fetch","uri","ok","Error","status","jwt","text","list","getStatus","idx","e","_logger$error","error","call","String"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/verifyCredentialStatus.ts"],"mappings":"AAAA;;AAEA,SAASA,wBAAwB,EAAEC,oBAAoB,QAAQ,yBAAyB;
|
|
1
|
+
{"version":3,"names":["getListFromStatusListJWT","getStatusListFromJWT","RefreshStatus","verifyCredentialStatus","rec","logger","Valid","info","id","ref","firstCredential","compact","res","fetch","uri","ok","Error","status","jwt","text","list","getStatus","idx","Invalid","e","_logger$error","error","call","String"],"sourceRoot":"../../../../../src","sources":["modules/openid/refresh/verifyCredentialStatus.ts"],"mappings":"AAAA;;AAEA,SAASA,wBAAwB,EAAEC,oBAAoB,QAAQ,yBAAyB;AAExF,SAASC,aAAa,QAAQ,SAAS;AAIvC;AACA;AACA;AACA;AACA,OAAO,eAAeC,sBAAsBA,CAACC,GAAY,EAAEC,MAAqB,EAA0B;EACxG,IAAI;IACF;IACA,IAAI,EAAE,gBAAgB,IAAID,GAAG,CAAC,EAAE,OAAOF,aAAa,CAACI,KAAK;IAE1DD,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,IAAI,CAAC,iEAAiEH,GAAG,CAACI,EAAE,EAAE,CAAC;IAEvF,MAAMC,GAAG,GAAGR,oBAAoB,CAACG,GAAG,CAACM,eAAe,CAACC,OAAO,CAAC;IAC7D,MAAMC,GAAG,GAAG,MAAMC,KAAK,CAACJ,GAAG,CAACK,GAAG,CAAC;IAChC,IAAI,CAACF,GAAG,CAACG,EAAE,EAAE,MAAM,IAAIC,KAAK,CAAC,QAAQJ,GAAG,CAACK,MAAM,EAAE,CAAC;IAClD,MAAMC,GAAG,GAAG,MAAMN,GAAG,CAACO,IAAI,CAAC,CAAC;IAE5B,MAAMC,IAAI,GAAGpB,wBAAwB,CAACkB,GAAG,CAAC;IAC1C,MAAMD,MAAM,GAAGG,IAAI,CAACC,SAAS,CAACZ,GAAG,CAACa,GAAG,CAAC,KAAK,CAAC,GAAGpB,aAAa,CAACI,KAAK,GAAGJ,aAAa,CAACqB,OAAO;IAE1FlB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEE,IAAI,CAAC,GAAGU,MAAM,KAAKf,aAAa,CAACI,KAAK,GAAG,GAAG,GAAG,GAAG,eAAeF,GAAG,CAACI,EAAE,MAAMS,MAAM,EAAE,CAAC;IAC9F,OAAOA,MAAM;EACf,CAAC,CAAC,OAAOO,CAAC,EAAE;IAAA,IAAAC,aAAA;IACVpB,MAAM,aAANA,MAAM,gBAAAoB,aAAA,GAANpB,MAAM,CAAEqB,KAAK,cAAAD,aAAA,eAAbA,aAAA,CAAAE,IAAA,CAAAtB,MAAM,EAAU,iBAAiB,IAAI,IAAID,GAAG,GAAGA,GAAG,CAACI,EAAE,GAAG,SAAS,mBAAmBoB,MAAM,CAACJ,CAAC,CAAC,EAAE,CAAC;IAChG,OAAOtB,aAAa,CAACc,KAAK;EAC5B;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { Jwt, X509ModuleConfig } from '@credo-ts/core';
|
|
2
|
-
import q from 'query-string';
|
|
3
1
|
import { getHostNameFromUrl } from './utils/utils';
|
|
4
2
|
import { Linking } from 'react-native';
|
|
5
3
|
function handleTextResponse(text) {
|
|
@@ -82,98 +80,13 @@ export async function fetchInvitationDataUrl(dataUrl) {
|
|
|
82
80
|
throw new Error(`[retrieve_invitation_error] Unable to retrieve invitation: ${error}`);
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
|
-
const extractCertificateFromJwt = jwt => {
|
|
86
|
-
const jwtHeader = Jwt.fromSerializedJwt(jwt).header;
|
|
87
|
-
return Array.isArray(jwtHeader.x5c) && typeof jwtHeader.x5c[0] === 'string' ? jwtHeader.x5c[0] : null;
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* This is a temp method to allow for untrusted certificates to still work with the wallet.
|
|
92
|
-
*/
|
|
93
|
-
export const extractCertificateFromAuthorizationRequest = async ({
|
|
94
|
-
data,
|
|
95
|
-
uri
|
|
96
|
-
}) => {
|
|
97
|
-
try {
|
|
98
|
-
if (data) {
|
|
99
|
-
return {
|
|
100
|
-
data,
|
|
101
|
-
certificate: extractCertificateFromJwt(data)
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
if (uri) {
|
|
105
|
-
const query = q.parseUrl(uri).query;
|
|
106
|
-
if (query.request_uri && typeof query.request_uri === 'string') {
|
|
107
|
-
const result = await fetchInvitationDataUrl(query.request_uri);
|
|
108
|
-
if (result.success && result.result.type === 'openid-authorization-request' && typeof result.result.data === 'string') {
|
|
109
|
-
return {
|
|
110
|
-
data: result.result.data,
|
|
111
|
-
certificate: extractCertificateFromJwt(result.result.data)
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
} else if (query.request && typeof query.request === 'string') {
|
|
115
|
-
const _res = {
|
|
116
|
-
data: query.request,
|
|
117
|
-
certificate: extractCertificateFromJwt(query.request)
|
|
118
|
-
};
|
|
119
|
-
return _res;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
data: null,
|
|
124
|
-
certificate: null
|
|
125
|
-
};
|
|
126
|
-
} catch {
|
|
127
|
-
return {
|
|
128
|
-
data: null,
|
|
129
|
-
certificate: null
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
export async function withTrustedCertificate(agent,
|
|
134
|
-
//This should maybe be AgentContext instead
|
|
135
|
-
certificate, method) {
|
|
136
|
-
const x509ModuleConfig = agent.dependencyManager.resolve(X509ModuleConfig);
|
|
137
|
-
const currentTrustedCertificates = x509ModuleConfig.trustedCertificates ? [...x509ModuleConfig.trustedCertificates] : [];
|
|
138
|
-
try {
|
|
139
|
-
if (certificate) agent.modules.x509.addTrustedCertificate(certificate);
|
|
140
|
-
return await method();
|
|
141
|
-
} finally {
|
|
142
|
-
if (certificate) x509ModuleConfig.setTrustedCertificates(currentTrustedCertificates);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
//This settings should be moved to an injectable config
|
|
147
|
-
const allowUntrustedCertificates = false;
|
|
148
83
|
export const getCredentialsForProofRequest = async ({
|
|
149
84
|
agent,
|
|
150
|
-
|
|
151
|
-
uri
|
|
85
|
+
request
|
|
152
86
|
}) => {
|
|
153
|
-
let requestUri = uri;
|
|
154
87
|
try {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
data: newData = null
|
|
158
|
-
} = allowUntrustedCertificates ? await extractCertificateFromAuthorizationRequest({
|
|
159
|
-
data,
|
|
160
|
-
uri
|
|
161
|
-
}) : {};
|
|
162
|
-
if (newData) {
|
|
163
|
-
// FIXME: Credo only support request string, but we already parsed it before. So we construct an request here
|
|
164
|
-
// but in the future we need to support the parsed request in Credo directly
|
|
165
|
-
requestUri = `openid://?request=${encodeURIComponent(newData)}`;
|
|
166
|
-
} else if (uri) {
|
|
167
|
-
requestUri = uri;
|
|
168
|
-
} else {
|
|
169
|
-
throw new Error('Either data or uri must be provided');
|
|
170
|
-
}
|
|
171
|
-
agent.config.logger.info(`$$Receiving openid uri ${requestUri}`);
|
|
172
|
-
|
|
173
|
-
// Temp solution to add and remove the trusted certificate
|
|
174
|
-
const resolved = await withTrustedCertificate(agent, certificate, () => {
|
|
175
|
-
return agent.modules.openid4vc.holder.resolveOpenId4VpAuthorizationRequest(String(requestUri)); // Could throw instead of using constructor here
|
|
176
|
-
});
|
|
88
|
+
agent.config.logger.info(`$$Receiving openid authorization request ${request}`);
|
|
89
|
+
const resolved = await agent.modules.openid4vc.holder.resolveOpenId4VpAuthorizationRequest(request);
|
|
177
90
|
if (!resolved.presentationExchange) {
|
|
178
91
|
throw new Error('No presentation exchange found in authorization request.');
|
|
179
92
|
}
|
|
@@ -213,18 +126,12 @@ export const shareProof = async ({
|
|
|
213
126
|
return [entry.inputDescriptorId, [credential.credentialRecord]];
|
|
214
127
|
})));
|
|
215
128
|
try {
|
|
216
|
-
|
|
217
|
-
// const certificate =
|
|
218
|
-
// authorizationRequest.jwt && allowUntrustedCertificate ? extractCertificateFromJwt(authorizationRequest) : null
|
|
219
|
-
|
|
220
|
-
// Need to figure out how to include this certificate, does not seem like the JWT is included in the authorizationRequest any more.
|
|
221
|
-
|
|
222
|
-
const result = await withTrustedCertificate(agent, null, () => agent.openid4vc.holder.acceptOpenId4VpAuthorizationRequest({
|
|
129
|
+
const result = await agent.openid4vc.holder.acceptOpenId4VpAuthorizationRequest({
|
|
223
130
|
authorizationRequest: authorizationRequest,
|
|
224
131
|
presentationExchange: {
|
|
225
132
|
credentials
|
|
226
133
|
}
|
|
227
|
-
})
|
|
134
|
+
});
|
|
228
135
|
|
|
229
136
|
// if redirect_uri is provided, open it in the browser
|
|
230
137
|
// Even if the response returned an error, we must open this uri
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["getHostNameFromUrl","Linking","handleTextResponse","text","startsWith","success","result","format","type","data","json","JSON","parse","handleJsonResponse","error","Error","Array","isArray","fetchInvitationDataUrl","dataUrl","abortController","AbortController","timeout","setTimeout","abort","response","fetch","headers","Accept","clearTimeout","ok","contentType","get","includes","getCredentialsForProofRequest","agent","request","config","logger","info","resolved","modules","openid4vc","holder","resolveOpenId4VpAuthorizationRequest","presentationExchange","requestRecord","authorizationRequestPayload","verifierHostName","response_uri","String","undefined","createdAt","Date","verifier","clientIdPrefix","effectiveClientId","err","message","shareProof","authorizationRequest","credentialsForRequest","selectedCredentials","areRequirementsSatisfied","credentials","Object","fromEntries","requirements","flatMap","requirement","submissionEntry","map","entry","credentialId","inputDescriptorId","id","credential","verifiableCredentials","find","vc","credentialRecord","acceptOpenId4VpAuthorizationRequest","serverResponse","body","redirect_uri","openURL","status"],"sourceRoot":"../../../../src","sources":["modules/openid/resolverProof.tsx"],"mappings":"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","ignoreList":[]}
|