@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.
- package/dist/lib/verifier-js-no-deps.cjs.js +53 -27
- package/dist/lib/verifier-js-no-deps.cjs.js.map +1 -1
- package/dist/lib/verifier-js.cjs.js +53 -27
- package/dist/lib/verifier-js.cjs.js.map +1 -1
- package/dist/typings/index.d.ts +0 -1
- package/dist/typings/verifier/types/credential-presentation.d.ts +48 -4
- package/dist/typings/verifier/types/verifier-web-sdk.d.ts +71 -15
- package/dist/typings/verifier/utils.d.ts +0 -6
- package/dist/verifier-js.development.js +52 -26
- package/dist/verifier-js.development.js.map +1 -1
- package/dist/verifier-js.production.esm.js +3 -3
- package/dist/verifier-js.production.esm.js.map +1 -1
- package/dist/verifier-js.production.js +3 -3
- package/dist/verifier-js.production.js.map +1 -1
- package/package.json +2 -2
package/dist/typings/index.d.ts
CHANGED
|
@@ -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-
|
|
11
|
-
* Version: 2.0.0-preview-digital-credential-api.
|
|
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
|
|
1775
|
+
let response;
|
|
1769
1776
|
try {
|
|
1770
|
-
|
|
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 &&
|
|
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 &&
|
|
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;
|