@sphereon/oid4vci-common 0.8.2-next.37 → 0.8.2-next.46
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/functions/CredentialResponseUtil.d.ts +11 -0
- package/dist/functions/CredentialResponseUtil.d.ts.map +1 -0
- package/dist/functions/CredentialResponseUtil.js +80 -0
- package/dist/functions/CredentialResponseUtil.js.map +1 -0
- package/dist/functions/index.d.ts +1 -0
- package/dist/functions/index.d.ts.map +1 -1
- package/dist/functions/index.js +1 -0
- package/dist/functions/index.js.map +1 -1
- package/dist/types/CredentialIssuance.types.d.ts +1 -0
- package/dist/types/CredentialIssuance.types.d.ts.map +1 -1
- package/dist/types/CredentialIssuance.types.js.map +1 -1
- package/dist/types/ServerMetadata.d.ts +2 -0
- package/dist/types/ServerMetadata.d.ts.map +1 -1
- package/dist/types/ServerMetadata.js.map +1 -1
- package/lib/functions/CredentialResponseUtil.ts +90 -0
- package/lib/functions/index.ts +1 -0
- package/lib/types/CredentialIssuance.types.ts +2 -1
- package/lib/types/ServerMetadata.ts +2 -0
- package/package.json +2 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CredentialResponse, OpenIDResponse } from '../types';
|
|
2
|
+
export declare function isDeferredCredentialResponse(credentialResponse: OpenIDResponse<CredentialResponse>): boolean;
|
|
3
|
+
export declare function isDeferredCredentialIssuancePending(credentialResponse: OpenIDResponse<CredentialResponse>): boolean;
|
|
4
|
+
export declare function acquireDeferredCredential({ bearerToken, transactionId, deferredCredentialEndpoint, deferredCredentialIntervalInMS, deferredCredentialAwait, }: {
|
|
5
|
+
bearerToken: string;
|
|
6
|
+
transactionId?: string;
|
|
7
|
+
deferredCredentialIntervalInMS?: number;
|
|
8
|
+
deferredCredentialAwait?: boolean;
|
|
9
|
+
deferredCredentialEndpoint: string;
|
|
10
|
+
}): Promise<OpenIDResponse<CredentialResponse>>;
|
|
11
|
+
//# sourceMappingURL=CredentialResponseUtil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialResponseUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/CredentialResponseUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI9D,wBAAgB,4BAA4B,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC,WAIlG;AASD,wBAAgB,mCAAmC,CAAC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB,CAAC,WAYzG;AAQD,wBAAsB,yBAAyB,CAAC,EAC9C,WAAW,EACX,aAAa,EACb,0BAA0B,EAC1B,8BAA8B,EAC9B,uBAAuB,GACxB,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,0BAA0B,EAAE,MAAM,CAAC;CACpC,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAoB9C"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.acquireDeferredCredential = exports.isDeferredCredentialIssuancePending = exports.isDeferredCredentialResponse = void 0;
|
|
13
|
+
const HttpUtils_1 = require("./HttpUtils");
|
|
14
|
+
function isDeferredCredentialResponse(credentialResponse) {
|
|
15
|
+
const orig = credentialResponse.successBody;
|
|
16
|
+
// Specs mention 202, but some implementations like EBSI return 200
|
|
17
|
+
return credentialResponse.origResponse.status % 200 <= 2 && !!orig && !orig.credential && (!!orig.acceptance_token || !!orig.transaction_id);
|
|
18
|
+
}
|
|
19
|
+
exports.isDeferredCredentialResponse = isDeferredCredentialResponse;
|
|
20
|
+
function assertNonFatalError(credentialResponse) {
|
|
21
|
+
var _a;
|
|
22
|
+
if (credentialResponse.origResponse.status === 400 && ((_a = credentialResponse.errorBody) === null || _a === void 0 ? void 0 : _a.error)) {
|
|
23
|
+
if (credentialResponse.errorBody.error === 'invalid_transaction_id' || credentialResponse.errorBody.error.includes('acceptance_token')) {
|
|
24
|
+
throw Error('Invalid transaction id. Probably the deferred credential request expired');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function isDeferredCredentialIssuancePending(credentialResponse) {
|
|
29
|
+
var _a, _b, _c, _d, _e;
|
|
30
|
+
if (isDeferredCredentialResponse(credentialResponse)) {
|
|
31
|
+
return (_b = !!((_a = credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.successBody) === null || _a === void 0 ? void 0 : _a.transaction_id)) !== null && _b !== void 0 ? _b : !!((_c = credentialResponse === null || credentialResponse === void 0 ? void 0 : credentialResponse.successBody) === null || _c === void 0 ? void 0 : _c.acceptance_token);
|
|
32
|
+
}
|
|
33
|
+
if (credentialResponse.origResponse.status === 400 && ((_d = credentialResponse.errorBody) === null || _d === void 0 ? void 0 : _d.error)) {
|
|
34
|
+
if (credentialResponse.errorBody.error === 'issuance_pending') {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
else if ((_e = credentialResponse.errorBody.error_description) === null || _e === void 0 ? void 0 : _e.toLowerCase().includes('not available yet')) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
exports.isDeferredCredentialIssuancePending = isDeferredCredentialIssuancePending;
|
|
44
|
+
function sleep(ms) {
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
setTimeout(resolve, ms);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function acquireDeferredCredential({ bearerToken, transactionId, deferredCredentialEndpoint, deferredCredentialIntervalInMS, deferredCredentialAwait, }) {
|
|
50
|
+
var _a;
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
let credentialResponse = yield acquireDeferredCredentialImpl({
|
|
53
|
+
bearerToken,
|
|
54
|
+
transactionId,
|
|
55
|
+
deferredCredentialEndpoint,
|
|
56
|
+
});
|
|
57
|
+
const DEFAULT_SLEEP_IN_MS = 5000;
|
|
58
|
+
while (!((_a = credentialResponse.successBody) === null || _a === void 0 ? void 0 : _a.credential) && deferredCredentialAwait) {
|
|
59
|
+
assertNonFatalError(credentialResponse);
|
|
60
|
+
const pending = isDeferredCredentialIssuancePending(credentialResponse);
|
|
61
|
+
console.log(`Issuance still pending?: ${pending}`);
|
|
62
|
+
if (!pending) {
|
|
63
|
+
throw Error(`Issuance isn't pending anymore: ${credentialResponse}`);
|
|
64
|
+
}
|
|
65
|
+
yield sleep(deferredCredentialIntervalInMS !== null && deferredCredentialIntervalInMS !== void 0 ? deferredCredentialIntervalInMS : DEFAULT_SLEEP_IN_MS);
|
|
66
|
+
credentialResponse = yield acquireDeferredCredentialImpl({ bearerToken, transactionId, deferredCredentialEndpoint });
|
|
67
|
+
}
|
|
68
|
+
return credentialResponse;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
exports.acquireDeferredCredential = acquireDeferredCredential;
|
|
72
|
+
function acquireDeferredCredentialImpl({ bearerToken, transactionId, deferredCredentialEndpoint, }) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const response = yield (0, HttpUtils_1.post)(deferredCredentialEndpoint, JSON.stringify(transactionId ? { transaction_id: transactionId } : ''), { bearerToken });
|
|
75
|
+
console.log(JSON.stringify(response, null, 2));
|
|
76
|
+
assertNonFatalError(response);
|
|
77
|
+
return response;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=CredentialResponseUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CredentialResponseUtil.js","sourceRoot":"","sources":["../../lib/functions/CredentialResponseUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC"}
|
package/dist/functions/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./CredentialRequestUtil"), exports);
|
|
18
|
+
__exportStar(require("./CredentialResponseUtil"), exports);
|
|
18
19
|
__exportStar(require("./CredentialOfferUtil"), exports);
|
|
19
20
|
__exportStar(require("./Encoding"), exports);
|
|
20
21
|
__exportStar(require("./TypeConversionUtils"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wDAAsC;AACtC,6CAA2B;AAC3B,wDAAsC;AACtC,wDAAsC;AACtC,gDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,2DAAyC;AACzC,wDAAsC;AACtC,6CAA2B;AAC3B,wDAAsC;AACtC,wDAAsC;AACtC,gDAA8B"}
|
|
@@ -8,6 +8,7 @@ import { CredentialOfferPayloadV1_0_11, CredentialOfferV1_0_11 } from './v1_0_11
|
|
|
8
8
|
export interface CredentialResponse {
|
|
9
9
|
credential?: W3CVerifiableCredential;
|
|
10
10
|
format: OID4VCICredentialFormat;
|
|
11
|
+
transaction_id?: string;
|
|
11
12
|
acceptance_token?: string;
|
|
12
13
|
c_nonce?: string;
|
|
13
14
|
c_nonce_expires_in?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialIssuance.types.d.ts","sourceRoot":"","sources":["../../lib/types/CredentialIssuance.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CredentialIssuance.types.d.ts","sourceRoot":"","sources":["../../lib/types/CredentialIssuance.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialIssuance.types.js","sourceRoot":"","sources":["../../lib/types/CredentialIssuance.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"CredentialIssuance.types.js","sourceRoot":"","sources":["../../lib/types/CredentialIssuance.types.ts"],"names":[],"mappings":";;;AA2DA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,iEAAc,CAAA;IACd,+EAAqB,CAAA;AACvB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AA4DD,IAAY,GAIX;AAJD,WAAY,GAAG;IACb,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,wBAAiB,CAAA;AACnB,CAAC,EAJW,GAAG,mBAAH,GAAG,QAId"}
|
|
@@ -39,6 +39,7 @@ export interface AuthorizationServerMetadata {
|
|
|
39
39
|
claims_supported?: string[];
|
|
40
40
|
claims_parameter_supported?: boolean;
|
|
41
41
|
credential_endpoint?: string;
|
|
42
|
+
deferred_credential_endpoint?: string;
|
|
42
43
|
[x: string]: any;
|
|
43
44
|
}
|
|
44
45
|
export declare enum WellKnownEndpoints {
|
|
@@ -51,6 +52,7 @@ export interface EndpointMetadata {
|
|
|
51
52
|
issuer: string;
|
|
52
53
|
token_endpoint: string;
|
|
53
54
|
credential_endpoint: string;
|
|
55
|
+
deferred_credential_endpoint?: string;
|
|
54
56
|
authorization_server?: string;
|
|
55
57
|
authorization_endpoint?: string;
|
|
56
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerMetadata.d.ts","sourceRoot":"","sources":["../../lib/types/ServerMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC,CAAC,EAAE,MAAM,EAAE,CAAC;IACjD,gDAAgD,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0CAA0C,CAAC,EAAE,MAAM,EAAE,CAAC;IACtD,qDAAqD,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gCAAgC,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5C,qCAAqC,CAAC,EAAE,MAAM,CAAC;IAE/C,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,iDAAiD,EAAE,OAAO,CAAC;IAG3D,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,qCAAqC,CAAC,EAAE,OAAO,CAAC;IAChD,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,oCAAoC,CAAC,EAAE,OAAO,CAAC;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,2CAA2C,CAAC,EAAE,MAAM,EAAE,CAAC;IACvD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAGrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ServerMetadata.d.ts","sourceRoot":"","sources":["../../lib/types/ServerMetadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerMetadata.js","sourceRoot":"","sources":["../../lib/types/ServerMetadata.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ServerMetadata.js","sourceRoot":"","sources":["../../lib/types/ServerMetadata.ts"],"names":[],"mappings":";;;AAyDA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,gFAA0D,CAAA;IAC1D,0EAAoD,CAAA;IACpD,iFAA2D,CAAA;AAC7D,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { CredentialResponse, OpenIDResponse } from '../types';
|
|
2
|
+
|
|
3
|
+
import { post } from './HttpUtils';
|
|
4
|
+
|
|
5
|
+
export function isDeferredCredentialResponse(credentialResponse: OpenIDResponse<CredentialResponse>) {
|
|
6
|
+
const orig = credentialResponse.successBody;
|
|
7
|
+
// Specs mention 202, but some implementations like EBSI return 200
|
|
8
|
+
return credentialResponse.origResponse.status % 200 <= 2 && !!orig && !orig.credential && (!!orig.acceptance_token || !!orig.transaction_id);
|
|
9
|
+
}
|
|
10
|
+
function assertNonFatalError(credentialResponse: OpenIDResponse<CredentialResponse>) {
|
|
11
|
+
if (credentialResponse.origResponse.status === 400 && credentialResponse.errorBody?.error) {
|
|
12
|
+
if (credentialResponse.errorBody.error === 'invalid_transaction_id' || credentialResponse.errorBody.error.includes('acceptance_token')) {
|
|
13
|
+
throw Error('Invalid transaction id. Probably the deferred credential request expired');
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function isDeferredCredentialIssuancePending(credentialResponse: OpenIDResponse<CredentialResponse>) {
|
|
19
|
+
if (isDeferredCredentialResponse(credentialResponse)) {
|
|
20
|
+
return !!credentialResponse?.successBody?.transaction_id ?? !!credentialResponse?.successBody?.acceptance_token;
|
|
21
|
+
}
|
|
22
|
+
if (credentialResponse.origResponse.status === 400 && credentialResponse.errorBody?.error) {
|
|
23
|
+
if (credentialResponse.errorBody.error === 'issuance_pending') {
|
|
24
|
+
return true;
|
|
25
|
+
} else if (credentialResponse.errorBody.error_description?.toLowerCase().includes('not available yet')) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function sleep(ms: number) {
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
setTimeout(resolve, ms);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function acquireDeferredCredential({
|
|
39
|
+
bearerToken,
|
|
40
|
+
transactionId,
|
|
41
|
+
deferredCredentialEndpoint,
|
|
42
|
+
deferredCredentialIntervalInMS,
|
|
43
|
+
deferredCredentialAwait,
|
|
44
|
+
}: {
|
|
45
|
+
bearerToken: string;
|
|
46
|
+
transactionId?: string;
|
|
47
|
+
deferredCredentialIntervalInMS?: number;
|
|
48
|
+
deferredCredentialAwait?: boolean;
|
|
49
|
+
deferredCredentialEndpoint: string;
|
|
50
|
+
}): Promise<OpenIDResponse<CredentialResponse>> {
|
|
51
|
+
let credentialResponse: OpenIDResponse<CredentialResponse> = await acquireDeferredCredentialImpl({
|
|
52
|
+
bearerToken,
|
|
53
|
+
transactionId,
|
|
54
|
+
deferredCredentialEndpoint,
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const DEFAULT_SLEEP_IN_MS = 5000;
|
|
58
|
+
while (!credentialResponse.successBody?.credential && deferredCredentialAwait) {
|
|
59
|
+
assertNonFatalError(credentialResponse);
|
|
60
|
+
const pending = isDeferredCredentialIssuancePending(credentialResponse);
|
|
61
|
+
console.log(`Issuance still pending?: ${pending}`);
|
|
62
|
+
if (!pending) {
|
|
63
|
+
throw Error(`Issuance isn't pending anymore: ${credentialResponse}`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
await sleep(deferredCredentialIntervalInMS ?? DEFAULT_SLEEP_IN_MS);
|
|
67
|
+
credentialResponse = await acquireDeferredCredentialImpl({ bearerToken, transactionId, deferredCredentialEndpoint });
|
|
68
|
+
}
|
|
69
|
+
return credentialResponse;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async function acquireDeferredCredentialImpl({
|
|
73
|
+
bearerToken,
|
|
74
|
+
transactionId,
|
|
75
|
+
deferredCredentialEndpoint,
|
|
76
|
+
}: {
|
|
77
|
+
bearerToken: string;
|
|
78
|
+
transactionId?: string;
|
|
79
|
+
deferredCredentialEndpoint: string;
|
|
80
|
+
}): Promise<OpenIDResponse<CredentialResponse>> {
|
|
81
|
+
const response: OpenIDResponse<CredentialResponse> = await post(
|
|
82
|
+
deferredCredentialEndpoint,
|
|
83
|
+
JSON.stringify(transactionId ? { transaction_id: transactionId } : ''),
|
|
84
|
+
{ bearerToken },
|
|
85
|
+
);
|
|
86
|
+
console.log(JSON.stringify(response, null, 2));
|
|
87
|
+
assertNonFatalError(response);
|
|
88
|
+
|
|
89
|
+
return response;
|
|
90
|
+
}
|
package/lib/functions/index.ts
CHANGED
|
@@ -10,7 +10,8 @@ import { CredentialOfferPayloadV1_0_11, CredentialOfferV1_0_11 } from './v1_0_11
|
|
|
10
10
|
export interface CredentialResponse {
|
|
11
11
|
credential?: W3CVerifiableCredential; // OPTIONAL. Contains issued Credential. MUST be present when acceptance_token is not returned. MAY be a JSON string or a JSON object, depending on the Credential format. See Appendix E for the Credential format specific encoding requirements
|
|
12
12
|
format: OID4VCICredentialFormat /* | OID4VCICredentialFormat[]*/; // REQUIRED. JSON string denoting the format of the issued Credential
|
|
13
|
-
|
|
13
|
+
transaction_id?: string; //OPTIONAL. A string identifying a Deferred Issuance transaction. This claim is contained in the response if the Credential Issuer was unable to immediately issue the credential. The value is subsequently used to obtain the respective Credential with the Deferred Credential Endpoint (see Section 9). It MUST be present when the credential parameter is not returned. It MUST be invalidated after the credential for which it was meant has been obtained by the Wallet.
|
|
14
|
+
acceptance_token?: string; //deprecated // OPTIONAL. A JSON string containing a security token subsequently used to obtain a Credential. MUST be present when credential is not returned
|
|
14
15
|
c_nonce?: string; // OPTIONAL. JSON string containing a nonce to be used to create a proof of possession of key material when requesting a Credential (see Section 7.2). When received, the Wallet MUST use this nonce value for its subsequent credential requests until the Credential Issuer provides a fresh nonce
|
|
15
16
|
c_nonce_expires_in?: number; // OPTIONAL. JSON integer denoting the lifetime in seconds of the c_nonce
|
|
16
17
|
}
|
|
@@ -49,6 +49,7 @@ export interface AuthorizationServerMetadata {
|
|
|
49
49
|
|
|
50
50
|
// VCI values. In case an AS provides a credential_endpoint itself
|
|
51
51
|
credential_endpoint?: string;
|
|
52
|
+
deferred_credential_endpoint?: string;
|
|
52
53
|
|
|
53
54
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
55
|
[x: string]: any; //We use any, so you can access properties if you know the structure
|
|
@@ -66,6 +67,7 @@ export interface EndpointMetadata {
|
|
|
66
67
|
issuer: string;
|
|
67
68
|
token_endpoint: string;
|
|
68
69
|
credential_endpoint: string;
|
|
70
|
+
deferred_credential_endpoint?: string;
|
|
69
71
|
authorization_server?: string;
|
|
70
72
|
authorization_endpoint?: string; // Can be undefined in pre-auth flow
|
|
71
73
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.8.2-next.
|
|
3
|
+
"version": "0.8.2-next.46+e3c1601",
|
|
4
4
|
"description": "OpenID 4 Verifiable Credential Issuance Common Types",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "e3c1601898a61b6dabdb0ec313e7a58ed18a2d23"
|
|
50
50
|
}
|