@sphereon/ssi-sdk.oid4vci-holder 0.34.1-feature.SSISDK.45.74 → 0.34.1-feature.SSISDK.45.91
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/dist/index.cjs +379 -392
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +379 -392
- package/dist/index.js.map +1 -1
- package/package.json +24 -24
- package/src/agent/OID4VCIHolder.ts +3 -16
- package/src/services/OID4VCIHolderService.ts +34 -39
package/dist/index.cjs
CHANGED
|
@@ -100,6 +100,7 @@ __export(index_exports, {
|
|
|
100
100
|
RequestType: () => RequestType,
|
|
101
101
|
SupportedLanguage: () => SupportedLanguage,
|
|
102
102
|
createConfig: () => createConfig,
|
|
103
|
+
extractCredentialFromResponse: () => extractCredentialFromResponse,
|
|
103
104
|
getBasicIssuerLocaleBranding: () => getBasicIssuerLocaleBranding,
|
|
104
105
|
getCredentialBranding: () => getCredentialBranding,
|
|
105
106
|
getCredentialConfigsBasedOnFormatPref: () => getCredentialConfigsBasedOnFormatPref,
|
|
@@ -155,18 +156,18 @@ var import_i18n_js = __toESM(require("i18n-js"), 1);
|
|
|
155
156
|
var import_lodash = __toESM(require("lodash.memoize"), 1);
|
|
156
157
|
|
|
157
158
|
// src/types/IOID4VCIHolder.ts
|
|
158
|
-
var OID4VCIHolderEvent = /* @__PURE__ */
|
|
159
|
+
var OID4VCIHolderEvent = /* @__PURE__ */ function(OID4VCIHolderEvent2) {
|
|
159
160
|
OID4VCIHolderEvent2["CONTACT_IDENTITY_CREATED"] = "contact_identity_created";
|
|
160
161
|
OID4VCIHolderEvent2["CREDENTIAL_STORED"] = "credential_stored";
|
|
161
162
|
OID4VCIHolderEvent2["IDENTIFIER_CREATED"] = "identifier_created";
|
|
162
163
|
return OID4VCIHolderEvent2;
|
|
163
|
-
}
|
|
164
|
-
var SupportedLanguage = /* @__PURE__ */
|
|
164
|
+
}({});
|
|
165
|
+
var SupportedLanguage = /* @__PURE__ */ function(SupportedLanguage2) {
|
|
165
166
|
SupportedLanguage2["ENGLISH"] = "en";
|
|
166
167
|
SupportedLanguage2["DUTCH"] = "nl";
|
|
167
168
|
return SupportedLanguage2;
|
|
168
|
-
}
|
|
169
|
-
var OID4VCIMachineStates = /* @__PURE__ */
|
|
169
|
+
}({});
|
|
170
|
+
var OID4VCIMachineStates = /* @__PURE__ */ function(OID4VCIMachineStates2) {
|
|
170
171
|
OID4VCIMachineStates2["start"] = "start";
|
|
171
172
|
OID4VCIMachineStates2["createCredentialsToSelectFrom"] = "createCredentialsToSelectFrom";
|
|
172
173
|
OID4VCIMachineStates2["getContact"] = "getContact";
|
|
@@ -197,18 +198,18 @@ var OID4VCIMachineStates = /* @__PURE__ */ (function(OID4VCIMachineStates2) {
|
|
|
197
198
|
OID4VCIMachineStates2["error"] = "error";
|
|
198
199
|
OID4VCIMachineStates2["done"] = "done";
|
|
199
200
|
return OID4VCIMachineStates2;
|
|
200
|
-
}
|
|
201
|
-
var OID4VCIMachineAddContactStates = /* @__PURE__ */
|
|
201
|
+
}({});
|
|
202
|
+
var OID4VCIMachineAddContactStates = /* @__PURE__ */ function(OID4VCIMachineAddContactStates2) {
|
|
202
203
|
OID4VCIMachineAddContactStates2["idle"] = "idle";
|
|
203
204
|
OID4VCIMachineAddContactStates2["next"] = "next";
|
|
204
205
|
return OID4VCIMachineAddContactStates2;
|
|
205
|
-
}
|
|
206
|
-
var OID4VCIMachineVerifyPinStates = /* @__PURE__ */
|
|
206
|
+
}({});
|
|
207
|
+
var OID4VCIMachineVerifyPinStates = /* @__PURE__ */ function(OID4VCIMachineVerifyPinStates2) {
|
|
207
208
|
OID4VCIMachineVerifyPinStates2["idle"] = "idle";
|
|
208
209
|
OID4VCIMachineVerifyPinStates2["next"] = "next";
|
|
209
210
|
return OID4VCIMachineVerifyPinStates2;
|
|
210
|
-
}
|
|
211
|
-
var OID4VCIMachineEvents = /* @__PURE__ */
|
|
211
|
+
}({});
|
|
212
|
+
var OID4VCIMachineEvents = /* @__PURE__ */ function(OID4VCIMachineEvents2) {
|
|
212
213
|
OID4VCIMachineEvents2["NEXT"] = "NEXT";
|
|
213
214
|
OID4VCIMachineEvents2["PREVIOUS"] = "PREVIOUS";
|
|
214
215
|
OID4VCIMachineEvents2["DECLINE"] = "DECLINE";
|
|
@@ -221,8 +222,8 @@ var OID4VCIMachineEvents = /* @__PURE__ */ (function(OID4VCIMachineEvents2) {
|
|
|
221
222
|
OID4VCIMachineEvents2["INVOKED_AUTHORIZATION_CODE_REQUEST"] = "INVOKED_AUTHORIZATION_CODE_REQUEST";
|
|
222
223
|
OID4VCIMachineEvents2["PROVIDE_AUTHORIZATION_CODE_RESPONSE"] = "PROVIDE_AUTHORIZATION_CODE_RESPONSE";
|
|
223
224
|
return OID4VCIMachineEvents2;
|
|
224
|
-
}
|
|
225
|
-
var OID4VCIMachineGuards = /* @__PURE__ */
|
|
225
|
+
}({});
|
|
226
|
+
var OID4VCIMachineGuards = /* @__PURE__ */ function(OID4VCIMachineGuards2) {
|
|
226
227
|
OID4VCIMachineGuards2["hasContactGuard"] = "oid4vciHasContactGuard";
|
|
227
228
|
OID4VCIMachineGuards2["hasNoContactGuard"] = "oid4vciHasNoContactGuard";
|
|
228
229
|
OID4VCIMachineGuards2["credentialsToSelectRequiredGuard"] = "oid4vciCredentialsToSelectRequiredGuard";
|
|
@@ -239,8 +240,8 @@ var OID4VCIMachineGuards = /* @__PURE__ */ (function(OID4VCIMachineGuards2) {
|
|
|
239
240
|
OID4VCIMachineGuards2["contactHasLowTrustGuard"] = "oid4vciContactHasLowTrustGuard";
|
|
240
241
|
OID4VCIMachineGuards2["isFirstPartyApplication"] = "oid4vciIsFirstPartyApplication";
|
|
241
242
|
return OID4VCIMachineGuards2;
|
|
242
|
-
}
|
|
243
|
-
var OID4VCIMachineServices = /* @__PURE__ */
|
|
243
|
+
}({});
|
|
244
|
+
var OID4VCIMachineServices = /* @__PURE__ */ function(OID4VCIMachineServices2) {
|
|
244
245
|
OID4VCIMachineServices2["start"] = "start";
|
|
245
246
|
OID4VCIMachineServices2["getContact"] = "getContact";
|
|
246
247
|
OID4VCIMachineServices2["getFederationTrust"] = "getFederationTrust";
|
|
@@ -255,17 +256,17 @@ var OID4VCIMachineServices = /* @__PURE__ */ (function(OID4VCIMachineServices2)
|
|
|
255
256
|
OID4VCIMachineServices2["storeCredentials"] = "storeCredentials";
|
|
256
257
|
OID4VCIMachineServices2["startFirstPartApplicationFlow"] = "startFirstPartApplicationFlow";
|
|
257
258
|
return OID4VCIMachineServices2;
|
|
258
|
-
}
|
|
259
|
-
var RequestType = /* @__PURE__ */
|
|
259
|
+
}({});
|
|
260
|
+
var RequestType = /* @__PURE__ */ function(RequestType2) {
|
|
260
261
|
RequestType2["OPENID_INITIATE_ISSUANCE"] = "openid-initiate-issuance";
|
|
261
262
|
RequestType2["OPENID_CREDENTIAL_OFFER"] = "openid-credential-offer";
|
|
262
263
|
RequestType2["URL"] = "URL";
|
|
263
264
|
return RequestType2;
|
|
264
|
-
}
|
|
265
|
-
var IdentifierAliasEnum = /* @__PURE__ */
|
|
265
|
+
}({});
|
|
266
|
+
var IdentifierAliasEnum = /* @__PURE__ */ function(IdentifierAliasEnum2) {
|
|
266
267
|
IdentifierAliasEnum2["PRIMARY"] = "primary";
|
|
267
268
|
return IdentifierAliasEnum2;
|
|
268
|
-
}
|
|
269
|
+
}({});
|
|
269
270
|
|
|
270
271
|
// src/localization/Localization.ts
|
|
271
272
|
var Localization = class Localization2 {
|
|
@@ -307,7 +308,7 @@ var Localization = class Localization2 {
|
|
|
307
308
|
var translate = Localization.translate;
|
|
308
309
|
|
|
309
310
|
// src/types/FirstPartyMachine.ts
|
|
310
|
-
var FirstPartyMachineStateTypes = /* @__PURE__ */
|
|
311
|
+
var FirstPartyMachineStateTypes = /* @__PURE__ */ function(FirstPartyMachineStateTypes2) {
|
|
311
312
|
FirstPartyMachineStateTypes2["sendAuthorizationChallengeRequest"] = "sendAuthorizationChallengeRequest";
|
|
312
313
|
FirstPartyMachineStateTypes2["sendAuthorizationResponse"] = "sendAuthorizationResponse";
|
|
313
314
|
FirstPartyMachineStateTypes2["selectCredentials"] = "selectCredentials";
|
|
@@ -318,21 +319,21 @@ var FirstPartyMachineStateTypes = /* @__PURE__ */ (function(FirstPartyMachineSta
|
|
|
318
319
|
FirstPartyMachineStateTypes2["aborted"] = "aborted";
|
|
319
320
|
FirstPartyMachineStateTypes2["declined"] = "declined";
|
|
320
321
|
return FirstPartyMachineStateTypes2;
|
|
321
|
-
}
|
|
322
|
-
var FirstPartyMachineServices = /* @__PURE__ */
|
|
322
|
+
}({});
|
|
323
|
+
var FirstPartyMachineServices = /* @__PURE__ */ function(FirstPartyMachineServices2) {
|
|
323
324
|
FirstPartyMachineServices2["sendAuthorizationChallengeRequest"] = "sendAuthorizationChallengeRequest";
|
|
324
325
|
FirstPartyMachineServices2["sendAuthorizationResponse"] = "sendAuthorizationResponse";
|
|
325
326
|
FirstPartyMachineServices2["createConfig"] = "createConfig";
|
|
326
327
|
FirstPartyMachineServices2["getSiopRequest"] = "getSiopRequest";
|
|
327
328
|
return FirstPartyMachineServices2;
|
|
328
|
-
}
|
|
329
|
-
var FirstPartyMachineEvents = /* @__PURE__ */
|
|
329
|
+
}({});
|
|
330
|
+
var FirstPartyMachineEvents = /* @__PURE__ */ function(FirstPartyMachineEvents2) {
|
|
330
331
|
FirstPartyMachineEvents2["NEXT"] = "NEXT";
|
|
331
332
|
FirstPartyMachineEvents2["PREVIOUS"] = "PREVIOUS";
|
|
332
333
|
FirstPartyMachineEvents2["DECLINE"] = "DECLINE";
|
|
333
334
|
FirstPartyMachineEvents2["SET_SELECTED_CREDENTIALS"] = "SET_SELECTED_CREDENTIALS";
|
|
334
335
|
return FirstPartyMachineEvents2;
|
|
335
|
-
}
|
|
336
|
+
}({});
|
|
336
337
|
|
|
337
338
|
// src/machines/oid4vciMachine.ts
|
|
338
339
|
var oid4vciHasNoContactGuard = /* @__PURE__ */ __name((_ctx, _event) => {
|
|
@@ -1062,271 +1063,10 @@ var import_ssi_sdk_ext = require("@sphereon/ssi-sdk-ext.did-resolver-jwk");
|
|
|
1062
1063
|
var import_ssi_sdk_ext2 = require("@sphereon/ssi-sdk-ext.did-utils");
|
|
1063
1064
|
var import_ssi_sdk_ext3 = require("@sphereon/ssi-sdk-ext.identifier-resolution");
|
|
1064
1065
|
var import_ssi_sdk_ext4 = require("@sphereon/ssi-sdk-ext.key-utils");
|
|
1066
|
+
var import_ssi_sdk = require("@sphereon/ssi-sdk.core");
|
|
1065
1067
|
var import_ssi_types = require("@sphereon/ssi-types");
|
|
1066
1068
|
var import_utils = require("@veramo/utils");
|
|
1067
1069
|
|
|
1068
|
-
// src/mappers/OIDC4VCIBrandingMapper.ts
|
|
1069
|
-
var oid4vciGetCredentialBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1070
|
-
const { credentialDisplay, issuerCredentialSubject } = args;
|
|
1071
|
-
return oid4vciCombineDisplayLocalesFrom({
|
|
1072
|
-
...issuerCredentialSubject && {
|
|
1073
|
-
issuerCredentialSubjectLocales: await oid4vciIssuerCredentialSubjectLocalesFrom({
|
|
1074
|
-
issuerCredentialSubject
|
|
1075
|
-
})
|
|
1076
|
-
},
|
|
1077
|
-
...credentialDisplay && {
|
|
1078
|
-
credentialDisplayLocales: await oid4vciCredentialDisplayLocalesFrom({
|
|
1079
|
-
credentialDisplay
|
|
1080
|
-
})
|
|
1081
|
-
}
|
|
1082
|
-
});
|
|
1083
|
-
}, "oid4vciGetCredentialBrandingFrom");
|
|
1084
|
-
var oid4vciCredentialDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1085
|
-
const { credentialDisplay } = args;
|
|
1086
|
-
return credentialDisplay.reduce((localeDisplays, display) => {
|
|
1087
|
-
const localeKey = display.locale || "";
|
|
1088
|
-
localeDisplays.set(localeKey, display);
|
|
1089
|
-
return localeDisplays;
|
|
1090
|
-
}, /* @__PURE__ */ new Map());
|
|
1091
|
-
}, "oid4vciCredentialDisplayLocalesFrom");
|
|
1092
|
-
var oid4vciIssuerCredentialSubjectLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1093
|
-
const { issuerCredentialSubject } = args;
|
|
1094
|
-
const localeClaims = /* @__PURE__ */ new Map();
|
|
1095
|
-
const processClaimObject = /* @__PURE__ */ __name((claim, parentKey = "") => {
|
|
1096
|
-
Object.entries(claim).forEach(([key, value]) => {
|
|
1097
|
-
if (key === "mandatory" || key === "value_type") {
|
|
1098
|
-
return;
|
|
1099
|
-
}
|
|
1100
|
-
if (key === "display" && Array.isArray(value)) {
|
|
1101
|
-
value.forEach(({ name, locale = "" }) => {
|
|
1102
|
-
if (!name) {
|
|
1103
|
-
return;
|
|
1104
|
-
}
|
|
1105
|
-
if (!localeClaims.has(locale)) {
|
|
1106
|
-
localeClaims.set(locale, []);
|
|
1107
|
-
}
|
|
1108
|
-
localeClaims.get(locale).push({
|
|
1109
|
-
key: parentKey,
|
|
1110
|
-
name
|
|
1111
|
-
});
|
|
1112
|
-
});
|
|
1113
|
-
} else if (typeof value === "object" && value !== null) {
|
|
1114
|
-
processClaimObject(value, parentKey ? `${parentKey}.${key}` : key);
|
|
1115
|
-
}
|
|
1116
|
-
});
|
|
1117
|
-
}, "processClaimObject");
|
|
1118
|
-
processClaimObject(issuerCredentialSubject);
|
|
1119
|
-
return localeClaims;
|
|
1120
|
-
}, "oid4vciIssuerCredentialSubjectLocalesFrom");
|
|
1121
|
-
var oid4vciCredentialLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1122
|
-
const { credentialDisplay } = args;
|
|
1123
|
-
return {
|
|
1124
|
-
...credentialDisplay.name && {
|
|
1125
|
-
alias: credentialDisplay.name
|
|
1126
|
-
},
|
|
1127
|
-
...credentialDisplay.locale && {
|
|
1128
|
-
locale: credentialDisplay.locale
|
|
1129
|
-
},
|
|
1130
|
-
...credentialDisplay.logo && {
|
|
1131
|
-
logo: {
|
|
1132
|
-
...(credentialDisplay.logo.url || credentialDisplay.logo.uri) && {
|
|
1133
|
-
uri: credentialDisplay.logo?.url ?? credentialDisplay.logo.uri
|
|
1134
|
-
},
|
|
1135
|
-
...credentialDisplay.logo.alt_text && {
|
|
1136
|
-
alt: credentialDisplay.logo?.alt_text
|
|
1137
|
-
}
|
|
1138
|
-
}
|
|
1139
|
-
},
|
|
1140
|
-
...credentialDisplay.description && {
|
|
1141
|
-
description: credentialDisplay.description
|
|
1142
|
-
},
|
|
1143
|
-
...credentialDisplay.text_color && {
|
|
1144
|
-
text: {
|
|
1145
|
-
color: credentialDisplay.text_color
|
|
1146
|
-
}
|
|
1147
|
-
},
|
|
1148
|
-
...(credentialDisplay.background_image || credentialDisplay.background_color) && {
|
|
1149
|
-
background: {
|
|
1150
|
-
...credentialDisplay.background_image && {
|
|
1151
|
-
image: {
|
|
1152
|
-
...(credentialDisplay.background_image.url || credentialDisplay.background_image.uri) && {
|
|
1153
|
-
uri: credentialDisplay.background_image?.url ?? credentialDisplay.background_image.uri
|
|
1154
|
-
},
|
|
1155
|
-
...credentialDisplay.background_image.alt_text && {
|
|
1156
|
-
alt: credentialDisplay.background_image?.alt_text
|
|
1157
|
-
}
|
|
1158
|
-
}
|
|
1159
|
-
},
|
|
1160
|
-
...credentialDisplay.background_color && {
|
|
1161
|
-
color: credentialDisplay.background_color
|
|
1162
|
-
}
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
|
-
};
|
|
1166
|
-
}, "oid4vciCredentialLocaleBrandingFrom");
|
|
1167
|
-
var oid4vciCombineDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1168
|
-
const { credentialDisplayLocales = /* @__PURE__ */ new Map(), issuerCredentialSubjectLocales = /* @__PURE__ */ new Map() } = args;
|
|
1169
|
-
const locales = Array.from(/* @__PURE__ */ new Set([
|
|
1170
|
-
...issuerCredentialSubjectLocales.keys(),
|
|
1171
|
-
...credentialDisplayLocales.keys()
|
|
1172
|
-
]));
|
|
1173
|
-
return Promise.all(locales.map(async (locale) => {
|
|
1174
|
-
const display = credentialDisplayLocales.get(locale);
|
|
1175
|
-
const claims = issuerCredentialSubjectLocales.get(locale);
|
|
1176
|
-
return {
|
|
1177
|
-
...display && await oid4vciCredentialLocaleBrandingFrom({
|
|
1178
|
-
credentialDisplay: display
|
|
1179
|
-
}),
|
|
1180
|
-
...locale.length > 0 && {
|
|
1181
|
-
locale
|
|
1182
|
-
},
|
|
1183
|
-
claims
|
|
1184
|
-
};
|
|
1185
|
-
}));
|
|
1186
|
-
}, "oid4vciCombineDisplayLocalesFrom");
|
|
1187
|
-
var sdJwtGetCredentialBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1188
|
-
const { credentialDisplay, claimsMetadata } = args;
|
|
1189
|
-
return sdJwtCombineDisplayLocalesFrom({
|
|
1190
|
-
...claimsMetadata && {
|
|
1191
|
-
claimsMetadata: await sdJwtCredentialClaimLocalesFrom({
|
|
1192
|
-
claimsMetadata
|
|
1193
|
-
})
|
|
1194
|
-
},
|
|
1195
|
-
...credentialDisplay && {
|
|
1196
|
-
credentialDisplayLocales: await sdJwtCredentialDisplayLocalesFrom({
|
|
1197
|
-
credentialDisplay
|
|
1198
|
-
})
|
|
1199
|
-
}
|
|
1200
|
-
});
|
|
1201
|
-
}, "sdJwtGetCredentialBrandingFrom");
|
|
1202
|
-
var sdJwtCredentialDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1203
|
-
const { credentialDisplay } = args;
|
|
1204
|
-
return credentialDisplay.reduce((localeDisplays, display) => {
|
|
1205
|
-
const localeKey = display.lang || "";
|
|
1206
|
-
localeDisplays.set(localeKey, display);
|
|
1207
|
-
return localeDisplays;
|
|
1208
|
-
}, /* @__PURE__ */ new Map());
|
|
1209
|
-
}, "sdJwtCredentialDisplayLocalesFrom");
|
|
1210
|
-
var sdJwtCredentialClaimLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1211
|
-
const { claimsMetadata } = args;
|
|
1212
|
-
const localeClaims = /* @__PURE__ */ new Map();
|
|
1213
|
-
claimsMetadata.forEach((claim) => {
|
|
1214
|
-
claim.display?.forEach((display) => {
|
|
1215
|
-
const { lang = "", label } = display;
|
|
1216
|
-
const key = claim.path.map((value) => String(value)).join(".");
|
|
1217
|
-
if (!localeClaims.has(lang)) {
|
|
1218
|
-
localeClaims.set(lang, []);
|
|
1219
|
-
}
|
|
1220
|
-
localeClaims.get(lang).push({
|
|
1221
|
-
key,
|
|
1222
|
-
name: label
|
|
1223
|
-
});
|
|
1224
|
-
});
|
|
1225
|
-
});
|
|
1226
|
-
return localeClaims;
|
|
1227
|
-
}, "sdJwtCredentialClaimLocalesFrom");
|
|
1228
|
-
var sdJwtCredentialLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1229
|
-
const { credentialDisplay } = args;
|
|
1230
|
-
return {
|
|
1231
|
-
...credentialDisplay.name && {
|
|
1232
|
-
alias: credentialDisplay.name
|
|
1233
|
-
},
|
|
1234
|
-
...credentialDisplay.lang && {
|
|
1235
|
-
locale: credentialDisplay.lang
|
|
1236
|
-
},
|
|
1237
|
-
...credentialDisplay.rendering?.simple?.logo && {
|
|
1238
|
-
logo: {
|
|
1239
|
-
...credentialDisplay.rendering.simple.logo.uri && {
|
|
1240
|
-
uri: credentialDisplay.rendering.simple.logo.uri
|
|
1241
|
-
},
|
|
1242
|
-
...credentialDisplay.rendering.simple.logo.alt_text && {
|
|
1243
|
-
alt: credentialDisplay.rendering.simple.logo.alt_text
|
|
1244
|
-
}
|
|
1245
|
-
}
|
|
1246
|
-
},
|
|
1247
|
-
...credentialDisplay.description && {
|
|
1248
|
-
description: credentialDisplay.description
|
|
1249
|
-
},
|
|
1250
|
-
...credentialDisplay.rendering?.simple?.text_color && {
|
|
1251
|
-
text: {
|
|
1252
|
-
color: credentialDisplay.rendering.simple.text_color
|
|
1253
|
-
}
|
|
1254
|
-
},
|
|
1255
|
-
...credentialDisplay.rendering?.simple?.background_color && {
|
|
1256
|
-
background: {
|
|
1257
|
-
color: credentialDisplay.rendering.simple.background_color
|
|
1258
|
-
}
|
|
1259
|
-
}
|
|
1260
|
-
};
|
|
1261
|
-
}, "sdJwtCredentialLocaleBrandingFrom");
|
|
1262
|
-
var sdJwtCombineDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1263
|
-
const { credentialDisplayLocales = /* @__PURE__ */ new Map(), claimsMetadata = /* @__PURE__ */ new Map() } = args;
|
|
1264
|
-
const locales = Array.from(/* @__PURE__ */ new Set([
|
|
1265
|
-
...claimsMetadata.keys(),
|
|
1266
|
-
...credentialDisplayLocales.keys()
|
|
1267
|
-
]));
|
|
1268
|
-
return Promise.all(locales.map(async (locale) => {
|
|
1269
|
-
const display = credentialDisplayLocales.get(locale);
|
|
1270
|
-
const claims = claimsMetadata.get(locale);
|
|
1271
|
-
return {
|
|
1272
|
-
...display && await sdJwtCredentialLocaleBrandingFrom({
|
|
1273
|
-
credentialDisplay: display
|
|
1274
|
-
}),
|
|
1275
|
-
...locale.length > 0 && {
|
|
1276
|
-
locale
|
|
1277
|
-
},
|
|
1278
|
-
claims
|
|
1279
|
-
};
|
|
1280
|
-
}));
|
|
1281
|
-
}, "sdJwtCombineDisplayLocalesFrom");
|
|
1282
|
-
var issuerLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1283
|
-
const { issuerDisplay, dynamicRegistrationClientMetadata } = args;
|
|
1284
|
-
return {
|
|
1285
|
-
...dynamicRegistrationClientMetadata?.client_name && {
|
|
1286
|
-
alias: dynamicRegistrationClientMetadata.client_name
|
|
1287
|
-
},
|
|
1288
|
-
...issuerDisplay.name && {
|
|
1289
|
-
alias: issuerDisplay.name
|
|
1290
|
-
},
|
|
1291
|
-
...issuerDisplay.locale && {
|
|
1292
|
-
locale: issuerDisplay.locale
|
|
1293
|
-
},
|
|
1294
|
-
...(issuerDisplay.logo || dynamicRegistrationClientMetadata?.logo_uri) && {
|
|
1295
|
-
logo: {
|
|
1296
|
-
...dynamicRegistrationClientMetadata?.logo_uri && {
|
|
1297
|
-
uri: dynamicRegistrationClientMetadata?.logo_uri
|
|
1298
|
-
},
|
|
1299
|
-
...(issuerDisplay.logo?.url || issuerDisplay.logo?.uri) && {
|
|
1300
|
-
uri: issuerDisplay.logo?.url ?? issuerDisplay.logo?.uri
|
|
1301
|
-
},
|
|
1302
|
-
...issuerDisplay.logo?.alt_text && {
|
|
1303
|
-
alt: issuerDisplay.logo?.alt_text
|
|
1304
|
-
}
|
|
1305
|
-
}
|
|
1306
|
-
},
|
|
1307
|
-
...issuerDisplay.description && {
|
|
1308
|
-
description: issuerDisplay.description
|
|
1309
|
-
},
|
|
1310
|
-
...issuerDisplay.text_color && {
|
|
1311
|
-
text: {
|
|
1312
|
-
color: issuerDisplay.text_color
|
|
1313
|
-
}
|
|
1314
|
-
},
|
|
1315
|
-
...dynamicRegistrationClientMetadata?.client_uri && {
|
|
1316
|
-
clientUri: dynamicRegistrationClientMetadata.client_uri
|
|
1317
|
-
},
|
|
1318
|
-
...dynamicRegistrationClientMetadata?.tos_uri && {
|
|
1319
|
-
tosUri: dynamicRegistrationClientMetadata.tos_uri
|
|
1320
|
-
},
|
|
1321
|
-
...dynamicRegistrationClientMetadata?.policy_uri && {
|
|
1322
|
-
policyUri: dynamicRegistrationClientMetadata.policy_uri
|
|
1323
|
-
},
|
|
1324
|
-
...dynamicRegistrationClientMetadata?.contacts && {
|
|
1325
|
-
contacts: dynamicRegistrationClientMetadata.contacts
|
|
1326
|
-
}
|
|
1327
|
-
};
|
|
1328
|
-
}, "issuerLocaleBrandingFrom");
|
|
1329
|
-
|
|
1330
1070
|
// src/machines/firstPartyMachine.ts
|
|
1331
1071
|
var import_xstate2 = require("xstate");
|
|
1332
1072
|
var import_oid4vci_common2 = require("@sphereon/oid4vci-common");
|
|
@@ -1530,90 +1270,351 @@ var createFirstPartyActivationMachine = /* @__PURE__ */ __name((opts) => {
|
|
|
1530
1270
|
contact: opts.contact,
|
|
1531
1271
|
selectedCredentials: []
|
|
1532
1272
|
};
|
|
1533
|
-
return (0, import_xstate2.createMachine)({
|
|
1534
|
-
id: opts?.machineId ?? "FirstParty",
|
|
1535
|
-
predictableActionArguments: true,
|
|
1536
|
-
initial: FirstPartyMachineStateTypes.sendAuthorizationChallengeRequest,
|
|
1537
|
-
context: initialContext,
|
|
1538
|
-
states: firstPartyMachineStates,
|
|
1539
|
-
schema: {
|
|
1540
|
-
events: {},
|
|
1541
|
-
services: {}
|
|
1273
|
+
return (0, import_xstate2.createMachine)({
|
|
1274
|
+
id: opts?.machineId ?? "FirstParty",
|
|
1275
|
+
predictableActionArguments: true,
|
|
1276
|
+
initial: FirstPartyMachineStateTypes.sendAuthorizationChallengeRequest,
|
|
1277
|
+
context: initialContext,
|
|
1278
|
+
states: firstPartyMachineStates,
|
|
1279
|
+
schema: {
|
|
1280
|
+
events: {},
|
|
1281
|
+
services: {}
|
|
1282
|
+
}
|
|
1283
|
+
});
|
|
1284
|
+
}, "createFirstPartyActivationMachine");
|
|
1285
|
+
var FirstPartyMachine = class _FirstPartyMachine {
|
|
1286
|
+
static {
|
|
1287
|
+
__name(this, "FirstPartyMachine");
|
|
1288
|
+
}
|
|
1289
|
+
static _instance;
|
|
1290
|
+
static hasInstance() {
|
|
1291
|
+
return _FirstPartyMachine._instance !== void 0;
|
|
1292
|
+
}
|
|
1293
|
+
static get instance() {
|
|
1294
|
+
if (!_FirstPartyMachine._instance) {
|
|
1295
|
+
throw Error("Please initialize ESIMActivation machine first");
|
|
1296
|
+
}
|
|
1297
|
+
return _FirstPartyMachine._instance;
|
|
1298
|
+
}
|
|
1299
|
+
static clearInstance(opts) {
|
|
1300
|
+
const { stop } = opts;
|
|
1301
|
+
if (_FirstPartyMachine.hasInstance()) {
|
|
1302
|
+
if (stop) {
|
|
1303
|
+
_FirstPartyMachine.stopInstance();
|
|
1304
|
+
}
|
|
1305
|
+
}
|
|
1306
|
+
_FirstPartyMachine._instance = void 0;
|
|
1307
|
+
}
|
|
1308
|
+
static stopInstance() {
|
|
1309
|
+
if (!_FirstPartyMachine.hasInstance()) {
|
|
1310
|
+
return;
|
|
1311
|
+
}
|
|
1312
|
+
_FirstPartyMachine.instance.stop();
|
|
1313
|
+
_FirstPartyMachine._instance = void 0;
|
|
1314
|
+
}
|
|
1315
|
+
static newInstance(opts) {
|
|
1316
|
+
const { agentContext } = opts;
|
|
1317
|
+
const services = {
|
|
1318
|
+
[FirstPartyMachineServices.sendAuthorizationChallengeRequest]: sendAuthorizationChallengeRequest,
|
|
1319
|
+
[FirstPartyMachineServices.createConfig]: (args) => createConfig(args, agentContext),
|
|
1320
|
+
[FirstPartyMachineServices.getSiopRequest]: (args) => getSiopRequest(args, agentContext),
|
|
1321
|
+
[FirstPartyMachineServices.sendAuthorizationResponse]: (args) => sendAuthorizationResponse(args, agentContext)
|
|
1322
|
+
};
|
|
1323
|
+
const newInst = (0, import_xstate2.interpret)(createFirstPartyActivationMachine(opts).withConfig({
|
|
1324
|
+
services: {
|
|
1325
|
+
...services,
|
|
1326
|
+
...opts?.services
|
|
1327
|
+
},
|
|
1328
|
+
guards: {
|
|
1329
|
+
...opts?.guards
|
|
1330
|
+
}
|
|
1331
|
+
}));
|
|
1332
|
+
if (typeof opts?.subscription === "function") {
|
|
1333
|
+
newInst.onTransition(opts.subscription);
|
|
1334
|
+
}
|
|
1335
|
+
if (opts?.requireCustomNavigationHook !== true) {
|
|
1336
|
+
newInst.onTransition((snapshot) => {
|
|
1337
|
+
if (opts?.stateNavigationListener) {
|
|
1338
|
+
void opts.stateNavigationListener(newInst, snapshot);
|
|
1339
|
+
}
|
|
1340
|
+
});
|
|
1341
|
+
}
|
|
1342
|
+
return newInst;
|
|
1343
|
+
}
|
|
1344
|
+
static getInstance(opts) {
|
|
1345
|
+
if (!_FirstPartyMachine._instance) {
|
|
1346
|
+
if (opts?.requireExisting === true) {
|
|
1347
|
+
throw Error(`Existing FirstPartyMachine instance requested, but none was created at this point!`);
|
|
1348
|
+
}
|
|
1349
|
+
_FirstPartyMachine._instance = _FirstPartyMachine.newInstance(opts);
|
|
1350
|
+
}
|
|
1351
|
+
return _FirstPartyMachine._instance;
|
|
1352
|
+
}
|
|
1353
|
+
};
|
|
1354
|
+
|
|
1355
|
+
// src/mappers/OIDC4VCIBrandingMapper.ts
|
|
1356
|
+
var oid4vciGetCredentialBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1357
|
+
const { credentialDisplay, issuerCredentialSubject } = args;
|
|
1358
|
+
return oid4vciCombineDisplayLocalesFrom({
|
|
1359
|
+
...issuerCredentialSubject && {
|
|
1360
|
+
issuerCredentialSubjectLocales: await oid4vciIssuerCredentialSubjectLocalesFrom({
|
|
1361
|
+
issuerCredentialSubject
|
|
1362
|
+
})
|
|
1363
|
+
},
|
|
1364
|
+
...credentialDisplay && {
|
|
1365
|
+
credentialDisplayLocales: await oid4vciCredentialDisplayLocalesFrom({
|
|
1366
|
+
credentialDisplay
|
|
1367
|
+
})
|
|
1368
|
+
}
|
|
1369
|
+
});
|
|
1370
|
+
}, "oid4vciGetCredentialBrandingFrom");
|
|
1371
|
+
var oid4vciCredentialDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1372
|
+
const { credentialDisplay } = args;
|
|
1373
|
+
return credentialDisplay.reduce((localeDisplays, display) => {
|
|
1374
|
+
const localeKey = display.locale || "";
|
|
1375
|
+
localeDisplays.set(localeKey, display);
|
|
1376
|
+
return localeDisplays;
|
|
1377
|
+
}, /* @__PURE__ */ new Map());
|
|
1378
|
+
}, "oid4vciCredentialDisplayLocalesFrom");
|
|
1379
|
+
var oid4vciIssuerCredentialSubjectLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1380
|
+
const { issuerCredentialSubject } = args;
|
|
1381
|
+
const localeClaims = /* @__PURE__ */ new Map();
|
|
1382
|
+
const processClaimObject = /* @__PURE__ */ __name((claim, parentKey = "") => {
|
|
1383
|
+
Object.entries(claim).forEach(([key, value]) => {
|
|
1384
|
+
if (key === "mandatory" || key === "value_type") {
|
|
1385
|
+
return;
|
|
1386
|
+
}
|
|
1387
|
+
if (key === "display" && Array.isArray(value)) {
|
|
1388
|
+
value.forEach(({ name, locale = "" }) => {
|
|
1389
|
+
if (!name) {
|
|
1390
|
+
return;
|
|
1391
|
+
}
|
|
1392
|
+
if (!localeClaims.has(locale)) {
|
|
1393
|
+
localeClaims.set(locale, []);
|
|
1394
|
+
}
|
|
1395
|
+
localeClaims.get(locale).push({
|
|
1396
|
+
key: parentKey,
|
|
1397
|
+
name
|
|
1398
|
+
});
|
|
1399
|
+
});
|
|
1400
|
+
} else if (typeof value === "object" && value !== null) {
|
|
1401
|
+
processClaimObject(value, parentKey ? `${parentKey}.${key}` : key);
|
|
1402
|
+
}
|
|
1403
|
+
});
|
|
1404
|
+
}, "processClaimObject");
|
|
1405
|
+
processClaimObject(issuerCredentialSubject);
|
|
1406
|
+
return localeClaims;
|
|
1407
|
+
}, "oid4vciIssuerCredentialSubjectLocalesFrom");
|
|
1408
|
+
var oid4vciCredentialLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1409
|
+
const { credentialDisplay } = args;
|
|
1410
|
+
return {
|
|
1411
|
+
...credentialDisplay.name && {
|
|
1412
|
+
alias: credentialDisplay.name
|
|
1413
|
+
},
|
|
1414
|
+
...credentialDisplay.locale && {
|
|
1415
|
+
locale: credentialDisplay.locale
|
|
1416
|
+
},
|
|
1417
|
+
...credentialDisplay.logo && {
|
|
1418
|
+
logo: {
|
|
1419
|
+
...(credentialDisplay.logo.url || credentialDisplay.logo.uri) && {
|
|
1420
|
+
uri: credentialDisplay.logo?.url ?? credentialDisplay.logo.uri
|
|
1421
|
+
},
|
|
1422
|
+
...credentialDisplay.logo.alt_text && {
|
|
1423
|
+
alt: credentialDisplay.logo?.alt_text
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
},
|
|
1427
|
+
...credentialDisplay.description && {
|
|
1428
|
+
description: credentialDisplay.description
|
|
1429
|
+
},
|
|
1430
|
+
...credentialDisplay.text_color && {
|
|
1431
|
+
text: {
|
|
1432
|
+
color: credentialDisplay.text_color
|
|
1433
|
+
}
|
|
1434
|
+
},
|
|
1435
|
+
...(credentialDisplay.background_image || credentialDisplay.background_color) && {
|
|
1436
|
+
background: {
|
|
1437
|
+
...credentialDisplay.background_image && {
|
|
1438
|
+
image: {
|
|
1439
|
+
...(credentialDisplay.background_image.url || credentialDisplay.background_image.uri) && {
|
|
1440
|
+
uri: credentialDisplay.background_image?.url ?? credentialDisplay.background_image.uri
|
|
1441
|
+
},
|
|
1442
|
+
...credentialDisplay.background_image.alt_text && {
|
|
1443
|
+
alt: credentialDisplay.background_image?.alt_text
|
|
1444
|
+
}
|
|
1445
|
+
}
|
|
1446
|
+
},
|
|
1447
|
+
...credentialDisplay.background_color && {
|
|
1448
|
+
color: credentialDisplay.background_color
|
|
1449
|
+
}
|
|
1450
|
+
}
|
|
1451
|
+
}
|
|
1452
|
+
};
|
|
1453
|
+
}, "oid4vciCredentialLocaleBrandingFrom");
|
|
1454
|
+
var oid4vciCombineDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1455
|
+
const { credentialDisplayLocales = /* @__PURE__ */ new Map(), issuerCredentialSubjectLocales = /* @__PURE__ */ new Map() } = args;
|
|
1456
|
+
const locales = Array.from(/* @__PURE__ */ new Set([
|
|
1457
|
+
...issuerCredentialSubjectLocales.keys(),
|
|
1458
|
+
...credentialDisplayLocales.keys()
|
|
1459
|
+
]));
|
|
1460
|
+
return Promise.all(locales.map(async (locale) => {
|
|
1461
|
+
const display = credentialDisplayLocales.get(locale);
|
|
1462
|
+
const claims = issuerCredentialSubjectLocales.get(locale);
|
|
1463
|
+
return {
|
|
1464
|
+
...display && await oid4vciCredentialLocaleBrandingFrom({
|
|
1465
|
+
credentialDisplay: display
|
|
1466
|
+
}),
|
|
1467
|
+
...locale.length > 0 && {
|
|
1468
|
+
locale
|
|
1469
|
+
},
|
|
1470
|
+
claims
|
|
1471
|
+
};
|
|
1472
|
+
}));
|
|
1473
|
+
}, "oid4vciCombineDisplayLocalesFrom");
|
|
1474
|
+
var sdJwtGetCredentialBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1475
|
+
const { credentialDisplay, claimsMetadata } = args;
|
|
1476
|
+
return sdJwtCombineDisplayLocalesFrom({
|
|
1477
|
+
...claimsMetadata && {
|
|
1478
|
+
claimsMetadata: await sdJwtCredentialClaimLocalesFrom({
|
|
1479
|
+
claimsMetadata
|
|
1480
|
+
})
|
|
1481
|
+
},
|
|
1482
|
+
...credentialDisplay && {
|
|
1483
|
+
credentialDisplayLocales: await sdJwtCredentialDisplayLocalesFrom({
|
|
1484
|
+
credentialDisplay
|
|
1485
|
+
})
|
|
1542
1486
|
}
|
|
1543
1487
|
});
|
|
1544
|
-
}, "
|
|
1545
|
-
var
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
if (stop) {
|
|
1563
|
-
_FirstPartyMachine.stopInstance();
|
|
1488
|
+
}, "sdJwtGetCredentialBrandingFrom");
|
|
1489
|
+
var sdJwtCredentialDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1490
|
+
const { credentialDisplay } = args;
|
|
1491
|
+
return credentialDisplay.reduce((localeDisplays, display) => {
|
|
1492
|
+
const localeKey = display.lang || "";
|
|
1493
|
+
localeDisplays.set(localeKey, display);
|
|
1494
|
+
return localeDisplays;
|
|
1495
|
+
}, /* @__PURE__ */ new Map());
|
|
1496
|
+
}, "sdJwtCredentialDisplayLocalesFrom");
|
|
1497
|
+
var sdJwtCredentialClaimLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1498
|
+
const { claimsMetadata } = args;
|
|
1499
|
+
const localeClaims = /* @__PURE__ */ new Map();
|
|
1500
|
+
claimsMetadata.forEach((claim) => {
|
|
1501
|
+
claim.display?.forEach((display) => {
|
|
1502
|
+
const { lang = "", label } = display;
|
|
1503
|
+
const key = claim.path.map((value) => String(value)).join(".");
|
|
1504
|
+
if (!localeClaims.has(lang)) {
|
|
1505
|
+
localeClaims.set(lang, []);
|
|
1564
1506
|
}
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
}
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1507
|
+
localeClaims.get(lang).push({
|
|
1508
|
+
key,
|
|
1509
|
+
name: label
|
|
1510
|
+
});
|
|
1511
|
+
});
|
|
1512
|
+
});
|
|
1513
|
+
return localeClaims;
|
|
1514
|
+
}, "sdJwtCredentialClaimLocalesFrom");
|
|
1515
|
+
var sdJwtCredentialLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1516
|
+
const { credentialDisplay } = args;
|
|
1517
|
+
return {
|
|
1518
|
+
...credentialDisplay.name && {
|
|
1519
|
+
alias: credentialDisplay.name
|
|
1520
|
+
},
|
|
1521
|
+
...credentialDisplay.lang && {
|
|
1522
|
+
locale: credentialDisplay.lang
|
|
1523
|
+
},
|
|
1524
|
+
...credentialDisplay.rendering?.simple?.logo && {
|
|
1525
|
+
logo: {
|
|
1526
|
+
...credentialDisplay.rendering.simple.logo.uri && {
|
|
1527
|
+
uri: credentialDisplay.rendering.simple.logo.uri
|
|
1528
|
+
},
|
|
1529
|
+
...credentialDisplay.rendering.simple.logo.alt_text && {
|
|
1530
|
+
alt: credentialDisplay.rendering.simple.logo.alt_text
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
},
|
|
1534
|
+
...credentialDisplay.description && {
|
|
1535
|
+
description: credentialDisplay.description
|
|
1536
|
+
},
|
|
1537
|
+
...credentialDisplay.rendering?.simple?.text_color && {
|
|
1538
|
+
text: {
|
|
1539
|
+
color: credentialDisplay.rendering.simple.text_color
|
|
1540
|
+
}
|
|
1541
|
+
},
|
|
1542
|
+
...credentialDisplay.rendering?.simple?.background_color && {
|
|
1543
|
+
background: {
|
|
1544
|
+
color: credentialDisplay.rendering.simple.background_color
|
|
1590
1545
|
}
|
|
1591
|
-
}));
|
|
1592
|
-
if (typeof opts?.subscription === "function") {
|
|
1593
|
-
newInst.onTransition(opts.subscription);
|
|
1594
1546
|
}
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1547
|
+
};
|
|
1548
|
+
}, "sdJwtCredentialLocaleBrandingFrom");
|
|
1549
|
+
var sdJwtCombineDisplayLocalesFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1550
|
+
const { credentialDisplayLocales = /* @__PURE__ */ new Map(), claimsMetadata = /* @__PURE__ */ new Map() } = args;
|
|
1551
|
+
const locales = Array.from(/* @__PURE__ */ new Set([
|
|
1552
|
+
...claimsMetadata.keys(),
|
|
1553
|
+
...credentialDisplayLocales.keys()
|
|
1554
|
+
]));
|
|
1555
|
+
return Promise.all(locales.map(async (locale) => {
|
|
1556
|
+
const display = credentialDisplayLocales.get(locale);
|
|
1557
|
+
const claims = claimsMetadata.get(locale);
|
|
1558
|
+
return {
|
|
1559
|
+
...display && await sdJwtCredentialLocaleBrandingFrom({
|
|
1560
|
+
credentialDisplay: display
|
|
1561
|
+
}),
|
|
1562
|
+
...locale.length > 0 && {
|
|
1563
|
+
locale
|
|
1564
|
+
},
|
|
1565
|
+
claims
|
|
1566
|
+
};
|
|
1567
|
+
}));
|
|
1568
|
+
}, "sdJwtCombineDisplayLocalesFrom");
|
|
1569
|
+
var issuerLocaleBrandingFrom = /* @__PURE__ */ __name(async (args) => {
|
|
1570
|
+
const { issuerDisplay, dynamicRegistrationClientMetadata } = args;
|
|
1571
|
+
return {
|
|
1572
|
+
...dynamicRegistrationClientMetadata?.client_name && {
|
|
1573
|
+
alias: dynamicRegistrationClientMetadata.client_name
|
|
1574
|
+
},
|
|
1575
|
+
...issuerDisplay.name && {
|
|
1576
|
+
alias: issuerDisplay.name
|
|
1577
|
+
},
|
|
1578
|
+
...issuerDisplay.locale && {
|
|
1579
|
+
locale: issuerDisplay.locale
|
|
1580
|
+
},
|
|
1581
|
+
...(issuerDisplay.logo || dynamicRegistrationClientMetadata?.logo_uri) && {
|
|
1582
|
+
logo: {
|
|
1583
|
+
...dynamicRegistrationClientMetadata?.logo_uri && {
|
|
1584
|
+
uri: dynamicRegistrationClientMetadata?.logo_uri
|
|
1585
|
+
},
|
|
1586
|
+
...(issuerDisplay.logo?.url || issuerDisplay.logo?.uri) && {
|
|
1587
|
+
uri: issuerDisplay.logo?.url ?? issuerDisplay.logo?.uri
|
|
1588
|
+
},
|
|
1589
|
+
...issuerDisplay.logo?.alt_text && {
|
|
1590
|
+
alt: issuerDisplay.logo?.alt_text
|
|
1599
1591
|
}
|
|
1600
|
-
});
|
|
1601
|
-
}
|
|
1602
|
-
return newInst;
|
|
1603
|
-
}
|
|
1604
|
-
static getInstance(opts) {
|
|
1605
|
-
if (!_FirstPartyMachine._instance) {
|
|
1606
|
-
if (opts?.requireExisting === true) {
|
|
1607
|
-
throw Error(`Existing FirstPartyMachine instance requested, but none was created at this point!`);
|
|
1608
1592
|
}
|
|
1609
|
-
|
|
1593
|
+
},
|
|
1594
|
+
...issuerDisplay.description && {
|
|
1595
|
+
description: issuerDisplay.description
|
|
1596
|
+
},
|
|
1597
|
+
...issuerDisplay.text_color && {
|
|
1598
|
+
text: {
|
|
1599
|
+
color: issuerDisplay.text_color
|
|
1600
|
+
}
|
|
1601
|
+
},
|
|
1602
|
+
...dynamicRegistrationClientMetadata?.client_uri && {
|
|
1603
|
+
clientUri: dynamicRegistrationClientMetadata.client_uri
|
|
1604
|
+
},
|
|
1605
|
+
...dynamicRegistrationClientMetadata?.tos_uri && {
|
|
1606
|
+
tosUri: dynamicRegistrationClientMetadata.tos_uri
|
|
1607
|
+
},
|
|
1608
|
+
...dynamicRegistrationClientMetadata?.policy_uri && {
|
|
1609
|
+
policyUri: dynamicRegistrationClientMetadata.policy_uri
|
|
1610
|
+
},
|
|
1611
|
+
...dynamicRegistrationClientMetadata?.contacts && {
|
|
1612
|
+
contacts: dynamicRegistrationClientMetadata.contacts
|
|
1610
1613
|
}
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
};
|
|
1614
|
+
};
|
|
1615
|
+
}, "issuerLocaleBrandingFrom");
|
|
1614
1616
|
|
|
1615
1617
|
// src/services/OID4VCIHolderService.ts
|
|
1616
|
-
var import_ssi_sdk = require("@sphereon/ssi-sdk.core");
|
|
1617
1618
|
var getCredentialBranding = /* @__PURE__ */ __name(async (args) => {
|
|
1618
1619
|
const { credentialsSupported, context } = args;
|
|
1619
1620
|
const credentialBranding = {};
|
|
@@ -1685,16 +1686,7 @@ var selectCredentialLocaleBranding = /* @__PURE__ */ __name(async (args) => {
|
|
|
1685
1686
|
}, "selectCredentialLocaleBranding");
|
|
1686
1687
|
var verifyCredentialToAccept = /* @__PURE__ */ __name(async (args) => {
|
|
1687
1688
|
const { mappedCredential, hasher, onVerifyEBSICredentialIssuer, schemaValidation, context } = args;
|
|
1688
|
-
const
|
|
1689
|
-
let credential;
|
|
1690
|
-
if ("credential" in credentialResponse) {
|
|
1691
|
-
credential = credentialResponse.credential;
|
|
1692
|
-
} else if ("credentials" in credentialResponse && credentialResponse.credentials && Array.isArray(credentialResponse.credentials) && credentialResponse.credentials.length > 0) {
|
|
1693
|
-
credential = credentialResponse.credentials[0].credential;
|
|
1694
|
-
}
|
|
1695
|
-
if (!credential) {
|
|
1696
|
-
return Promise.reject(Error("No credential found in credential response"));
|
|
1697
|
-
}
|
|
1689
|
+
const credential = extractCredentialFromResponse(mappedCredential.credentialToAccept.credentialResponse);
|
|
1698
1690
|
const wrappedVC = import_ssi_types.CredentialMapper.toWrappedVerifiableCredential(credential, {
|
|
1699
1691
|
hasher: hasher ?? import_ssi_sdk.defaultHasher
|
|
1700
1692
|
});
|
|
@@ -1746,16 +1738,7 @@ var verifyCredentialToAccept = /* @__PURE__ */ __name(async (args) => {
|
|
|
1746
1738
|
}, "verifyCredentialToAccept");
|
|
1747
1739
|
var mapCredentialToAccept = /* @__PURE__ */ __name(async (args) => {
|
|
1748
1740
|
const { credentialToAccept, hasher } = args;
|
|
1749
|
-
const
|
|
1750
|
-
let verifiableCredential;
|
|
1751
|
-
if ("credential" in credentialResponse) {
|
|
1752
|
-
verifiableCredential = credentialResponse.credential;
|
|
1753
|
-
} else if ("credentials" in credentialResponse && credentialResponse.credentials && Array.isArray(credentialResponse.credentials) && credentialResponse.credentials.length > 0) {
|
|
1754
|
-
verifiableCredential = credentialResponse.credentials[0].credential;
|
|
1755
|
-
}
|
|
1756
|
-
if (!verifiableCredential) {
|
|
1757
|
-
return Promise.reject(Error("No credential found in credential response"));
|
|
1758
|
-
}
|
|
1741
|
+
const verifiableCredential = extractCredentialFromResponse(credentialToAccept.credentialResponse);
|
|
1759
1742
|
const wrappedVerifiableCredential = import_ssi_types.CredentialMapper.toWrappedVerifiableCredential(verifiableCredential, {
|
|
1760
1743
|
hasher
|
|
1761
1744
|
});
|
|
@@ -1775,6 +1758,7 @@ var mapCredentialToAccept = /* @__PURE__ */ __name(async (args) => {
|
|
|
1775
1758
|
uniformVerifiableCredential = wrappedVerifiableCredential.credential;
|
|
1776
1759
|
}
|
|
1777
1760
|
const correlationId = typeof uniformVerifiableCredential.issuer === "string" ? uniformVerifiableCredential.issuer : import_ssi_types.CredentialMapper.isSdJwtDecodedCredential(uniformVerifiableCredential) ? uniformVerifiableCredential.decodedPayload.iss : uniformVerifiableCredential.issuer.id;
|
|
1761
|
+
const credentialResponse = credentialToAccept.credentialResponse;
|
|
1778
1762
|
return {
|
|
1779
1763
|
correlationId,
|
|
1780
1764
|
credentialToAccept,
|
|
@@ -1786,6 +1770,18 @@ var mapCredentialToAccept = /* @__PURE__ */ __name(async (args) => {
|
|
|
1786
1770
|
}
|
|
1787
1771
|
};
|
|
1788
1772
|
}, "mapCredentialToAccept");
|
|
1773
|
+
var extractCredentialFromResponse = /* @__PURE__ */ __name((credentialResponse) => {
|
|
1774
|
+
let credential;
|
|
1775
|
+
if ("credential" in credentialResponse) {
|
|
1776
|
+
credential = credentialResponse.credential;
|
|
1777
|
+
} else if ("credentials" in credentialResponse && credentialResponse.credentials && Array.isArray(credentialResponse.credentials) && credentialResponse.credentials.length > 0) {
|
|
1778
|
+
credential = credentialResponse.credentials[0].credential;
|
|
1779
|
+
}
|
|
1780
|
+
if (!credential) {
|
|
1781
|
+
throw new Error("No credential found in credential response");
|
|
1782
|
+
}
|
|
1783
|
+
return credential;
|
|
1784
|
+
}, "extractCredentialFromResponse");
|
|
1789
1785
|
var getIdentifierOpts = /* @__PURE__ */ __name(async (args) => {
|
|
1790
1786
|
const { issuanceOpt, context } = args;
|
|
1791
1787
|
const { identifier: identifierArg } = issuanceOpt;
|
|
@@ -2811,16 +2807,7 @@ var OID4VCIHolder = class _OID4VCIHolder {
|
|
|
2811
2807
|
if (Array.isArray(subjectIssuance?.notification_events_supported)) {
|
|
2812
2808
|
event = subjectIssuance.notification_events_supported.includes("credential_accepted_holder_signed") ? "credential_accepted_holder_signed" : "credential_deleted_holder_signed";
|
|
2813
2809
|
logger.log(`Subject issuance/signing will be used, with event`, event);
|
|
2814
|
-
const
|
|
2815
|
-
let issuerVC;
|
|
2816
|
-
if ("credential" in credentialResponse) {
|
|
2817
|
-
issuerVC = credentialResponse.credential;
|
|
2818
|
-
} else if ("credentials" in credentialResponse && credentialResponse.credentials && Array.isArray(credentialResponse.credentials) && credentialResponse.credentials.length > 0) {
|
|
2819
|
-
issuerVC = credentialResponse.credentials[0].credential;
|
|
2820
|
-
}
|
|
2821
|
-
if (!issuerVC) {
|
|
2822
|
-
return Promise.reject(Error("No credential found in credential response"));
|
|
2823
|
-
}
|
|
2810
|
+
const issuerVC = extractCredentialFromResponse(mappedCredentialToAccept.credentialToAccept.credentialResponse);
|
|
2824
2811
|
const wrappedIssuerVC = import_ssi_types2.CredentialMapper.toWrappedVerifiableCredential(issuerVC, {
|
|
2825
2812
|
hasher: this.hasher ?? import_ssi_sdk2.defaultHasher
|
|
2826
2813
|
});
|