@mattrglobal/verifier-sdk-web 2.0.0-preview-digital-credential-api.4 → 2.0.0-preview-digital-credential-api.6

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.
@@ -7,6 +7,5 @@ export type { InitialiseOptions, RequestCredentialsOptions, RequestCredentialsSa
7
7
  declare const utils: {
8
8
  generateChallenge: () => string;
9
9
  unwrap: <T = unknown>(result: import("neverthrow").Result<T, unknown>, errMessage?: string) => T;
10
- isDigitalCredentialsApiSupported: () => boolean;
11
10
  };
12
11
  export { initialise, requestCredentials, handleRedirectCallback, utils };
@@ -95,6 +95,36 @@ export declare const CredentialQueryValidator: v.ObjectSchema<{
95
95
  readonly intentToRetain: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
96
96
  }, undefined>, undefined>, undefined>;
97
97
  }, undefined>;
98
+ export type DcqlCredentialQuery = {
99
+ credentials: {
100
+ id: string;
101
+ format: string;
102
+ meta?: unknown;
103
+ claims: {
104
+ path: string[];
105
+ }[];
106
+ }[];
107
+ credential_sets?: {
108
+ options: string[][];
109
+ required?: boolean;
110
+ purpose?: unknown;
111
+ }[];
112
+ };
113
+ export declare const DcqlCredentialQueryValidator: v.ObjectSchema<{
114
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
115
+ readonly id: v.StringSchema<undefined>;
116
+ readonly format: v.StringSchema<undefined>;
117
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
118
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
119
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
120
+ }, undefined>, undefined>;
121
+ }, undefined>, undefined>;
122
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
123
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
124
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
125
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
126
+ }, undefined>, undefined>, never>;
127
+ }, undefined>;
98
128
  /**
99
129
  * List of error types for presentation failure result
100
130
  */
@@ -199,7 +229,7 @@ export type MobileCredentialPresentationCredential = {
199
229
  export type PresentationSuccessResult = {
200
230
  sessionId: string;
201
231
  challenge: string;
202
- credentialQuery: CredentialQuery[];
232
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
203
233
  credentials?: MobileCredentialPresentationCredential[];
204
234
  credentialErrors?: MobileCredentialError[];
205
235
  };
@@ -223,7 +253,7 @@ export declare const PresentationResultRelaxValidator: v.ObjectSchema<{
223
253
  export type PresentationFailureResult = {
224
254
  sessionId: string;
225
255
  challenge: string;
226
- credentialQuery: CredentialQuery[];
256
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
227
257
  error: {
228
258
  type: PresentationErrorType;
229
259
  message: string;
@@ -246,13 +276,27 @@ export type ExchangeSessionResultRequest = {
246
276
  export type ExchangeSessionResultResponse = PresentationSessionResult | PresentationHiddenResult;
247
277
  export type CreateSessionRequest = v.InferOutput<typeof CreateSessionRequestValidator>;
248
278
  export declare const CreateSessionRequestValidator: v.ObjectSchema<{
249
- readonly credentialQuery: v.ArraySchema<v.ObjectSchema<{
279
+ readonly credentialQuery: v.UnionSchema<[v.ArraySchema<v.ObjectSchema<{
250
280
  readonly profile: v.PicklistSchema<[OpenidPresentationCredentialProfileSupported], undefined>;
251
281
  readonly docType: v.StringSchema<undefined>;
252
282
  readonly nameSpaces: v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
253
283
  readonly intentToRetain: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
254
284
  }, undefined>, undefined>, undefined>;
255
- }, undefined>, undefined>;
285
+ }, undefined>, undefined>, v.ObjectSchema<{
286
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
287
+ readonly id: v.StringSchema<undefined>;
288
+ readonly format: v.StringSchema<undefined>;
289
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
290
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
291
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
292
+ }, undefined>, undefined>;
293
+ }, undefined>, undefined>;
294
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
295
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
296
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
297
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
298
+ }, undefined>, undefined>, never>;
299
+ }, undefined>], undefined>;
256
300
  readonly challenge: v.StringSchema<undefined>;
257
301
  readonly redirectUri: v.OptionalSchema<v.StringSchema<undefined>, never>;
258
302
  readonly walletProviderId: v.OptionalSchema<v.StringSchema<undefined>, never>;
@@ -1,7 +1,7 @@
1
1
  import * as v from "valibot";
2
2
  import { BaseError } from "../../common";
3
3
  import { CrossDeviceCallbackError } from "../requestCredentialsCrossDevice";
4
- import { CredentialQuery, PresentationSessionResult } from "./credential-presentation";
4
+ import { CredentialQuery, DcqlCredentialQuery, PresentationSessionResult } from "./credential-presentation";
5
5
  export declare enum LocalStorageKey {
6
6
  challenge = "mattr_chg",
7
7
  sessionId = "mattr_sid"
@@ -25,7 +25,7 @@ export declare enum MessageEventDataType {
25
25
  PresentationAbort = "PresentationAbort"
26
26
  }
27
27
  export type SameDeviceRequestCredentialsOptions = {
28
- credentialQuery: CredentialQuery[];
28
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
29
29
  redirectUri: string;
30
30
  challenge: string;
31
31
  mode: Mode.sameDevice;
@@ -54,7 +54,7 @@ export type CrossDeviceCallback = {
54
54
  onFailure: (error: CrossDeviceCallbackError) => void;
55
55
  };
56
56
  export type CrossDeviceRequestCredentialsOptions = {
57
- credentialQuery: CredentialQuery[];
57
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
58
58
  crossDeviceCallback: CrossDeviceCallback;
59
59
  challenge: string;
60
60
  walletProviderId?: string;
@@ -62,7 +62,7 @@ export type CrossDeviceRequestCredentialsOptions = {
62
62
  initialiseOptions: InitialiseOptions;
63
63
  };
64
64
  export type DigitalCredentialsApiRequestOptions = {
65
- credentialQuery: CredentialQuery[];
65
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
66
66
  challenge: string;
67
67
  initialiseOptions: InitialiseOptions;
68
68
  };
@@ -73,7 +73,7 @@ export type RequestCredentialsSameDeviceOptions = {
73
73
  /**
74
74
  * An array of CredentialQuery objects that specify the credentials to be requested.
75
75
  */
76
- credentialQuery: CredentialQuery[];
76
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
77
77
  /**
78
78
  * The URI to which the user will be redirected after the credential request is completed.
79
79
  */
@@ -93,7 +93,7 @@ export type RequestCredentialsSameDeviceOptions = {
93
93
  mode: Mode.sameDevice;
94
94
  };
95
95
  export declare const RequestCredentialsSameDeviceOptionsValidator: v.ObjectSchema<{
96
- readonly credentialQuery: v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
96
+ readonly credentialQuery: v.UnionSchema<[v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
97
97
  readonly profile: v.PicklistSchema<[import("./credential-presentation").OpenidPresentationCredentialProfileSupported], undefined>;
98
98
  readonly docType: v.StringSchema<undefined>;
99
99
  readonly nameSpaces: v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
@@ -109,7 +109,21 @@ export declare const RequestCredentialsSameDeviceOptionsValidator: v.ObjectSchem
109
109
  };
110
110
  };
111
111
  docType: string;
112
- }[], undefined>]>;
112
+ }[], undefined>]>, v.ObjectSchema<{
113
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
114
+ readonly id: v.StringSchema<undefined>;
115
+ readonly format: v.StringSchema<undefined>;
116
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
117
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
118
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
119
+ }, undefined>, undefined>;
120
+ }, undefined>, undefined>;
121
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
122
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
123
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
124
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
125
+ }, undefined>, undefined>, never>;
126
+ }, undefined>], undefined>;
113
127
  readonly redirectUri: v.StringSchema<undefined>;
114
128
  readonly challenge: v.OptionalSchema<v.StringSchema<undefined>, never>;
115
129
  readonly walletProviderId: v.OptionalSchema<v.StringSchema<undefined>, never>;
@@ -122,7 +136,7 @@ export type RequestCredentialsCrossDeviceDeviceOptions = {
122
136
  /**
123
137
  * An array of CredentialQuery objects that specify the credentials to be requested.
124
138
  */
125
- credentialQuery: CredentialQuery[];
139
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
126
140
  /**
127
141
  * The callback functions to be executed on success or failure of the credential request in cross device mode.
128
142
  */
@@ -142,7 +156,7 @@ export type RequestCredentialsCrossDeviceDeviceOptions = {
142
156
  mode: Mode.crossDevice;
143
157
  };
144
158
  export declare const RequestCredentialsCrossDeviceOptionsValidator: v.ObjectSchema<{
145
- readonly credentialQuery: v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
159
+ readonly credentialQuery: v.UnionSchema<[v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
146
160
  readonly profile: v.PicklistSchema<[import("./credential-presentation").OpenidPresentationCredentialProfileSupported], undefined>;
147
161
  readonly docType: v.StringSchema<undefined>;
148
162
  readonly nameSpaces: v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
@@ -158,7 +172,21 @@ export declare const RequestCredentialsCrossDeviceOptionsValidator: v.ObjectSche
158
172
  };
159
173
  };
160
174
  docType: string;
161
- }[], undefined>]>;
175
+ }[], undefined>]>, v.ObjectSchema<{
176
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
177
+ readonly id: v.StringSchema<undefined>;
178
+ readonly format: v.StringSchema<undefined>;
179
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
180
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
181
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
182
+ }, undefined>, undefined>;
183
+ }, undefined>, undefined>;
184
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
185
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
186
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
187
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
188
+ }, undefined>, undefined>, never>;
189
+ }, undefined>], undefined>;
162
190
  readonly crossDeviceCallback: v.ObjectSchema<{
163
191
  readonly onComplete: v.FunctionSchema<undefined>;
164
192
  readonly onFailure: v.FunctionSchema<undefined>;
@@ -174,7 +202,7 @@ export type RequestCredentialsAutoDetectOptions = {
174
202
  /**
175
203
  * An array of CredentialQuery objects that specify the credentials to be requested.
176
204
  */
177
- credentialQuery: CredentialQuery[];
205
+ credentialQuery: CredentialQuery[] | DcqlCredentialQuery;
178
206
  /**
179
207
  * The callback functions to be executed on success or failure of the credential request in cross device mode.
180
208
  */
@@ -203,7 +231,7 @@ export declare const RequestCredentialsAutoDetectDeviceOptionsValidator: v.Gener
203
231
  */
204
232
  export type RequestCredentialsOptions = RequestCredentialsSameDeviceOptions | RequestCredentialsCrossDeviceDeviceOptions | RequestCredentialsAutoDetectOptions;
205
233
  export declare const RequestCredentialsOptionsValidator: v.UnionSchema<[v.ObjectSchema<{
206
- readonly credentialQuery: v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
234
+ readonly credentialQuery: v.UnionSchema<[v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
207
235
  readonly profile: v.PicklistSchema<[import("./credential-presentation").OpenidPresentationCredentialProfileSupported], undefined>;
208
236
  readonly docType: v.StringSchema<undefined>;
209
237
  readonly nameSpaces: v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
@@ -219,13 +247,27 @@ export declare const RequestCredentialsOptionsValidator: v.UnionSchema<[v.Object
219
247
  };
220
248
  };
221
249
  docType: string;
222
- }[], undefined>]>;
250
+ }[], undefined>]>, v.ObjectSchema<{
251
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
252
+ readonly id: v.StringSchema<undefined>;
253
+ readonly format: v.StringSchema<undefined>;
254
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
255
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
256
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
257
+ }, undefined>, undefined>;
258
+ }, undefined>, undefined>;
259
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
260
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
261
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
262
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
263
+ }, undefined>, undefined>, never>;
264
+ }, undefined>], undefined>;
223
265
  readonly redirectUri: v.StringSchema<undefined>;
224
266
  readonly challenge: v.OptionalSchema<v.StringSchema<undefined>, never>;
225
267
  readonly walletProviderId: v.OptionalSchema<v.StringSchema<undefined>, never>;
226
268
  readonly mode: v.PicklistSchema<[Mode.sameDevice], undefined>;
227
269
  }, undefined>, v.ObjectSchema<{
228
- readonly credentialQuery: v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
270
+ readonly credentialQuery: v.UnionSchema<[v.SchemaWithPipe<[v.ArraySchema<v.ObjectSchema<{
229
271
  readonly profile: v.PicklistSchema<[import("./credential-presentation").OpenidPresentationCredentialProfileSupported], undefined>;
230
272
  readonly docType: v.StringSchema<undefined>;
231
273
  readonly nameSpaces: v.RecordSchema<v.StringSchema<undefined>, v.RecordSchema<v.StringSchema<undefined>, v.StrictObjectSchema<{
@@ -241,7 +283,21 @@ export declare const RequestCredentialsOptionsValidator: v.UnionSchema<[v.Object
241
283
  };
242
284
  };
243
285
  docType: string;
244
- }[], undefined>]>;
286
+ }[], undefined>]>, v.ObjectSchema<{
287
+ readonly credentials: v.ArraySchema<v.ObjectSchema<{
288
+ readonly id: v.StringSchema<undefined>;
289
+ readonly format: v.StringSchema<undefined>;
290
+ readonly meta: v.OptionalSchema<v.UnknownSchema, never>;
291
+ readonly claims: v.ArraySchema<v.ObjectSchema<{
292
+ readonly path: v.ArraySchema<v.StringSchema<undefined>, undefined>;
293
+ }, undefined>, undefined>;
294
+ }, undefined>, undefined>;
295
+ readonly credential_sets: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
296
+ readonly options: v.ArraySchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
297
+ readonly required: v.OptionalSchema<v.BooleanSchema<undefined>, never>;
298
+ readonly purpose: v.OptionalSchema<v.UnknownSchema, never>;
299
+ }, undefined>, undefined>, never>;
300
+ }, undefined>], undefined>;
245
301
  readonly crossDeviceCallback: v.ObjectSchema<{
246
302
  readonly onComplete: v.FunctionSchema<undefined>;
247
303
  readonly onFailure: v.FunctionSchema<undefined>;
@@ -49,12 +49,6 @@ export declare const exchangeSessionResult: ({ challenge, responseCode, sessionI
49
49
  * @returns A boolean indicating whether the user agent is a mobile device.
50
50
  */
51
51
  export declare const isMobileDetect: (userAgent: string) => boolean;
52
- /**
53
- * Detects if digital credentials api is available.
54
- *
55
- * @returns A boolean indicating whether the user agent supports the digital credential api.
56
- */
57
- export declare const isDigitalCredentialsApiSupported: () => boolean;
58
52
  /**
59
53
  * Creates a new digital credentials api session with the provided parameters.
60
54
  *
@@ -7,8 +7,8 @@
7
7
  * Do Not Translate or Localize
8
8
  *
9
9
  * Bundle of @mattrglobal/verifier-sdk-web
10
- * Generated: 2025-03-25
11
- * Version: 2.0.0-preview-digital-credential-api.4
10
+ * Generated: 2025-06-13
11
+ * Version: 2.0.0-preview-digital-credential-api.6
12
12
  * Dependencies:
13
13
  *
14
14
  * neverthrow -- 4.3.0
@@ -1298,6 +1298,21 @@
1298
1298
  intentToRetain: optional(_boolean())
1299
1299
  })))
1300
1300
  });
1301
+ const DcqlCredentialQueryValidator = object({
1302
+ credentials: array(object({
1303
+ id: string(),
1304
+ format: string(),
1305
+ meta: optional(unknown()),
1306
+ claims: array(object({
1307
+ path: array(string())
1308
+ }))
1309
+ })),
1310
+ credential_sets: optional(array(object({
1311
+ options: array(array(string())),
1312
+ required: optional(_boolean()),
1313
+ purpose: optional(unknown())
1314
+ })))
1315
+ });
1301
1316
  var PresentationErrorType;
1302
1317
  (function(PresentationErrorType) {
1303
1318
  PresentationErrorType["SessionAborted"] = "SessionAborted";
@@ -1315,7 +1330,7 @@
1315
1330
  error: optional(unknown())
1316
1331
  });
1317
1332
  object({
1318
- credentialQuery: array(CredentialQueryValidator),
1333
+ credentialQuery: union([ array(CredentialQueryValidator), DcqlCredentialQueryValidator ]),
1319
1334
  challenge: string(),
1320
1335
  redirectUri: optional(string()),
1321
1336
  walletProviderId: optional(string())
@@ -1345,14 +1360,14 @@
1345
1360
  MessageEventDataType["PresentationAbort"] = "PresentationAbort";
1346
1361
  })(MessageEventDataType || (MessageEventDataType = {}));
1347
1362
  const RequestCredentialsSameDeviceOptionsValidator = object({
1348
- credentialQuery: pipe(array(CredentialQueryValidator), nonEmpty()),
1363
+ credentialQuery: union([ pipe(array(CredentialQueryValidator), nonEmpty()), DcqlCredentialQueryValidator ]),
1349
1364
  redirectUri: string(),
1350
1365
  challenge: optional(string()),
1351
1366
  walletProviderId: optional(string()),
1352
1367
  mode: picklist([ exports.Mode.sameDevice ])
1353
1368
  });
1354
1369
  const RequestCredentialsCrossDeviceOptionsValidator = object({
1355
- credentialQuery: pipe(array(CredentialQueryValidator), nonEmpty()),
1370
+ credentialQuery: union([ pipe(array(CredentialQueryValidator), nonEmpty()), DcqlCredentialQueryValidator ]),
1356
1371
  crossDeviceCallback: object({
1357
1372
  onComplete: function_(),
1358
1373
  onFailure: function_()
@@ -1362,7 +1377,7 @@
1362
1377
  mode: picklist([ exports.Mode.crossDevice ])
1363
1378
  });
1364
1379
  const RequestCredentialsAutoDetectDeviceOptionsValidator = object({
1365
- credentialQuery: pipe(array(CredentialQueryValidator), nonEmpty()),
1380
+ credentialQuery: union([ pipe(array(CredentialQueryValidator), nonEmpty()), DcqlCredentialQueryValidator ]),
1366
1381
  crossDeviceCallback: object({
1367
1382
  onComplete: function_(),
1368
1383
  onFailure: function_()
@@ -1507,14 +1522,6 @@
1507
1522
  ua: userAgent,
1508
1523
  tablet: false
1509
1524
  });
1510
- const isDigitalCredentialsApiSupported = () => {
1511
- var _a;
1512
- try {
1513
- return typeof ((_a = navigator === null || navigator === void 0 ? void 0 : navigator.identity) === null || _a === void 0 ? void 0 : _a.get) === "function";
1514
- } catch (error) {
1515
- return false;
1516
- }
1517
- };
1518
1525
  const createDigitalCredentialsApiSession = async ({credentialQuery: credentialQuery, challenge: challenge, apiBaseUrl: apiBaseUrl, protocol: protocol}) => {
1519
1526
  const postData = Object.assign({
1520
1527
  credentialQuery: credentialQuery,
@@ -1765,21 +1772,41 @@
1765
1772
  }
1766
1773
  const {request: request, sessionId: sessionId} = createSessionResult.value;
1767
1774
  window.localStorage.setItem(LocalStorageKey.sessionId, sessionId);
1768
- let rawResponse;
1775
+ let response;
1769
1776
  try {
1770
- rawResponse = await navigator.identity.get(request);
1777
+ if ("providers" in request.digital) {
1778
+ let requestData;
1779
+ const providerRequest = request.digital.providers[0];
1780
+ if (providerRequest.protocol === "preview") {
1781
+ console.log(`DC API Preview Request: ${JSON.stringify(request)}`);
1782
+ const rawResponse = await navigator.identity.get(request);
1783
+ response = rawResponse.data;
1784
+ } else {
1785
+ requestData = {
1786
+ protocol: providerRequest.protocol,
1787
+ data: JSON.parse(providerRequest.request)
1788
+ };
1789
+ const modernRequest = Object.assign(Object.assign({}, requestData.protocol === "org-iso-mdoc" && {
1790
+ mediation: "required"
1791
+ }), {
1792
+ digital: {
1793
+ requests: [ requestData ]
1794
+ }
1795
+ });
1796
+ console.log(`DC API Request: ${JSON.stringify(modernRequest)}`);
1797
+ const rawResponse = await navigator.credentials.get(modernRequest);
1798
+ response = rawResponse.data;
1799
+ }
1800
+ } else {
1801
+ const rawResponse = await navigator.credentials.get(request);
1802
+ response = rawResponse.data;
1803
+ }
1771
1804
  } catch (_a) {
1772
1805
  return err({
1773
1806
  type: exports.RequestCredentialsErrorType.RequestCredentialsFailed,
1774
1807
  message: "Failed call to digital credentials api"
1775
1808
  });
1776
1809
  }
1777
- let response;
1778
- try {
1779
- response = JSON.parse(rawResponse.data);
1780
- } catch (_b) {
1781
- response = rawResponse.data;
1782
- }
1783
1810
  const result = await getDigitalCredentialsApiSessionResult({
1784
1811
  challenge: challenge,
1785
1812
  sessionId: sessionId,
@@ -1807,7 +1834,7 @@
1807
1834
  assertType(RequestCredentialsOptionsValidator, "Invalid request credential options")(options);
1808
1835
  const {challenge: challenge = generateChallenge()} = options;
1809
1836
  const mode = (_a = options.mode) !== null && _a !== void 0 ? _a : isMobileDetect(navigator.userAgent) ? exports.Mode.sameDevice : exports.Mode.crossDevice;
1810
- if (initialiseOptions.enableDigitalCredentialsApiCrossDeviceFlow && isDigitalCredentialsApiSupported() && mode === exports.Mode.crossDevice) {
1837
+ if (initialiseOptions.enableDigitalCredentialsApiCrossDeviceFlow && mode === exports.Mode.crossDevice) {
1811
1838
  console.log("Digital Credentials API support found, proceeding with request using API in cross device flow");
1812
1839
  return await requestCredentialsDigitalCredentialsApi(Object.assign(Object.assign({}, options), {
1813
1840
  initialiseOptions: initialiseOptions,
@@ -1816,7 +1843,7 @@
1816
1843
  } else if (initialiseOptions.enableDigitalCredentialsApiCrossDeviceFlow) {
1817
1844
  console.log("Digital Credentials API support not found, falling back to OpenID4VP");
1818
1845
  }
1819
- if (initialiseOptions.enableDigitalCredentialsApiSameDeviceFlow && isDigitalCredentialsApiSupported() && mode === exports.Mode.sameDevice) {
1846
+ if (initialiseOptions.enableDigitalCredentialsApiSameDeviceFlow && mode === exports.Mode.sameDevice) {
1820
1847
  console.log("Digital Credentials API support found, proceeding with request using API in same device flow");
1821
1848
  return await requestCredentialsDigitalCredentialsApi(Object.assign(Object.assign({}, options), {
1822
1849
  initialiseOptions: initialiseOptions,
@@ -1901,8 +1928,7 @@
1901
1928
  };
1902
1929
  const utils = {
1903
1930
  generateChallenge: generateChallenge,
1904
- unwrap: unwrap,
1905
- isDigitalCredentialsApiSupported: isDigitalCredentialsApiSupported
1931
+ unwrap: unwrap
1906
1932
  };
1907
1933
  exports.handleRedirectCallback = handleRedirectCallback;
1908
1934
  exports.initialise = initialise;