@sphereon/oid4vci-common 0.10.3 → 0.10.4-next.14
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/events/index.d.ts +17 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +21 -0
- package/dist/events/index.js.map +1 -0
- package/dist/experimental/holder-vci.d.ts +10 -0
- package/dist/experimental/holder-vci.d.ts.map +1 -0
- package/dist/experimental/holder-vci.js +33 -0
- package/dist/experimental/holder-vci.js.map +1 -0
- package/dist/functions/CredentialRequestUtil.d.ts.map +1 -1
- package/dist/functions/CredentialRequestUtil.js +3 -0
- package/dist/functions/CredentialRequestUtil.js.map +1 -1
- package/dist/functions/Encoding.d.ts +7 -6
- package/dist/functions/Encoding.d.ts.map +1 -1
- package/dist/functions/Encoding.js +9 -8
- package/dist/functions/Encoding.js.map +1 -1
- package/dist/functions/ProofUtil.d.ts +36 -0
- package/dist/functions/ProofUtil.d.ts.map +1 -0
- package/dist/functions/ProofUtil.js +138 -0
- package/dist/functions/ProofUtil.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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/CredentialIssuance.types.d.ts +4 -2
- package/dist/types/CredentialIssuance.types.d.ts.map +1 -1
- package/dist/types/CredentialIssuance.types.js.map +1 -1
- package/dist/types/Generic.types.d.ts +20 -3
- package/dist/types/Generic.types.d.ts.map +1 -1
- package/dist/types/Generic.types.js.map +1 -1
- package/dist/types/StateManager.types.d.ts +1 -0
- package/dist/types/StateManager.types.d.ts.map +1 -1
- package/dist/types/StateManager.types.js.map +1 -1
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -1
- package/lib/events/index.ts +20 -0
- package/lib/experimental/holder-vci.ts +20 -0
- package/lib/functions/CredentialRequestUtil.ts +3 -0
- package/lib/functions/Encoding.ts +17 -9
- package/lib/functions/ProofUtil.ts +169 -0
- package/lib/functions/index.ts +1 -0
- package/lib/index.ts +2 -0
- package/lib/types/CredentialIssuance.types.ts +5 -2
- package/lib/types/Generic.types.ts +34 -10
- package/lib/types/StateManager.types.ts +1 -0
- package/lib/types/index.ts +7 -0
- package/package.json +3 -11
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EventManager } from '@sphereon/ssi-types';
|
|
2
|
+
export type EventNames = CredentialOfferEventNames | NotificationStatusEventNames | LogEvents | CredentialEventNames;
|
|
3
|
+
export declare enum CredentialOfferEventNames {
|
|
4
|
+
OID4VCI_OFFER_CREATED = "OID4VCI_OFFER_CREATED",
|
|
5
|
+
OID4VCI_OFFER_EXPIRED = "OID4VCI_OFFER_EXPIRED",
|
|
6
|
+
OID4VCI_OFFER_DELETED = "OID4VCI_OFFER_DELETED"
|
|
7
|
+
}
|
|
8
|
+
export declare enum CredentialEventNames {
|
|
9
|
+
OID4VCI_CREDENTIAL_ISSUED = "OID4VCI_CREDENTIAL_ISSUED"
|
|
10
|
+
}
|
|
11
|
+
export declare enum NotificationStatusEventNames {
|
|
12
|
+
OID4VCI_NOTIFICATION_RECEIVED = "OID4VCI_NOTIFICATION_RECEIVED",
|
|
13
|
+
OID4VCI_NOTIFICATION_PROCESSED = "OID4VCI_NOTIFICATION_PROCESSED"
|
|
14
|
+
}
|
|
15
|
+
export type LogEvents = 'oid4vciLog';
|
|
16
|
+
export declare const EVENTS: EventManager;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,MAAM,UAAU,GAAG,yBAAyB,GAAG,4BAA4B,GAAG,SAAS,GAAG,oBAAoB,CAAC;AAErH,oBAAY,yBAAyB;IACnC,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;IAC/C,qBAAqB,0BAA0B;CAChD;AAED,oBAAY,oBAAoB;IAC9B,yBAAyB,8BAA8B;CACxD;AAED,oBAAY,4BAA4B;IACtC,6BAA6B,kCAAkC;IAC/D,8BAA8B,mCAAmC;CAClE;AACD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AACrC,eAAO,MAAM,MAAM,cAA0B,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVENTS = exports.NotificationStatusEventNames = exports.CredentialEventNames = exports.CredentialOfferEventNames = void 0;
|
|
4
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
5
|
+
var CredentialOfferEventNames;
|
|
6
|
+
(function (CredentialOfferEventNames) {
|
|
7
|
+
CredentialOfferEventNames["OID4VCI_OFFER_CREATED"] = "OID4VCI_OFFER_CREATED";
|
|
8
|
+
CredentialOfferEventNames["OID4VCI_OFFER_EXPIRED"] = "OID4VCI_OFFER_EXPIRED";
|
|
9
|
+
CredentialOfferEventNames["OID4VCI_OFFER_DELETED"] = "OID4VCI_OFFER_DELETED";
|
|
10
|
+
})(CredentialOfferEventNames || (exports.CredentialOfferEventNames = CredentialOfferEventNames = {}));
|
|
11
|
+
var CredentialEventNames;
|
|
12
|
+
(function (CredentialEventNames) {
|
|
13
|
+
CredentialEventNames["OID4VCI_CREDENTIAL_ISSUED"] = "OID4VCI_CREDENTIAL_ISSUED";
|
|
14
|
+
})(CredentialEventNames || (exports.CredentialEventNames = CredentialEventNames = {}));
|
|
15
|
+
var NotificationStatusEventNames;
|
|
16
|
+
(function (NotificationStatusEventNames) {
|
|
17
|
+
NotificationStatusEventNames["OID4VCI_NOTIFICATION_RECEIVED"] = "OID4VCI_NOTIFICATION_RECEIVED";
|
|
18
|
+
NotificationStatusEventNames["OID4VCI_NOTIFICATION_PROCESSED"] = "OID4VCI_NOTIFICATION_PROCESSED";
|
|
19
|
+
})(NotificationStatusEventNames || (exports.NotificationStatusEventNames = NotificationStatusEventNames = {}));
|
|
20
|
+
exports.EVENTS = ssi_types_1.EventManager.instance();
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/events/index.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AAInD,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,4EAA+C,CAAA;IAC/C,4EAA+C,CAAA;IAC/C,4EAA+C,CAAA;AACjD,CAAC,EAJW,yBAAyB,yCAAzB,yBAAyB,QAIpC;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC9B,+EAAuD,CAAA;AACzD,CAAC,EAFW,oBAAoB,oCAApB,oBAAoB,QAE/B;AAED,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACtC,+FAA+D,CAAA;IAC/D,iGAAiE,CAAA;AACnE,CAAC,EAHW,4BAA4B,4CAA5B,4BAA4B,QAGvC;AAEY,QAAA,MAAM,GAAG,wBAAY,CAAC,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const EXPERIMENTAL_SUBJECT_PROOF_MODE_ENABLED: boolean;
|
|
2
|
+
export type SubjectProofMode = 'proof_chain' | 'proof_set' | 'proof_replace';
|
|
3
|
+
export type SubjectProofNotificationEventsSupported = 'credential_accepted_holder_signed' | 'credential_deleted_holder_signed' | 'credential_accepted';
|
|
4
|
+
export interface ExperimentalSubjectIssuance {
|
|
5
|
+
credential_subject_issuance?: {
|
|
6
|
+
subject_proof_mode: SubjectProofMode;
|
|
7
|
+
notifications_events_supported: Array<SubjectProofNotificationEventsSupported>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=holder-vci.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holder-vci.d.ts","sourceRoot":"","sources":["../../lib/experimental/holder-vci.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uCAAuC,SAA+E,CAAC;AAEpI,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,CAAC;AAE7E,MAAM,MAAM,uCAAuC,GAC/C,mCAAmC,GACnC,kCAAkC,GAClC,qBAAqB,CAAC;AAE1B,MAAM,WAAW,2BAA2B;IAC1C,2BAA2B,CAAC,EAAE;QAC5B,kBAAkB,EAAE,gBAAgB,CAAC;QACrC,8BAA8B,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;KAChF,CAAC;CACH"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var _a;
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.EXPERIMENTAL_SUBJECT_PROOF_MODE_ENABLED = void 0;
|
|
28
|
+
/**
|
|
29
|
+
* Experimental support not following the VCI spec to have the holder actually (re)sign the issued credential and return it to the issuer
|
|
30
|
+
*/
|
|
31
|
+
const process = __importStar(require("node:process"));
|
|
32
|
+
exports.EXPERIMENTAL_SUBJECT_PROOF_MODE_ENABLED = ((_a = process.env.EXPERIMENTAL_SUBJECT_PROOF_MODE) === null || _a === void 0 ? void 0 : _a.trim().toLowerCase()) === 'true';
|
|
33
|
+
//# sourceMappingURL=holder-vci.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"holder-vci.js","sourceRoot":"","sources":["../../lib/experimental/holder-vci.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,sDAAwC;AAE3B,QAAA,uCAAuC,GAAG,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,0CAAE,IAAI,GAAG,WAAW,EAAE,MAAK,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/CredentialRequestUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAI3H,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE;IAAE,0BAA0B,EAAE,OAAO,CAAA;CAAE,YAsB9H;AAED,wBAAgB,8BAA8B,CAC5C,iBAAiB,EAAE,wBAAwB,EAC3C,OAAO,EAAE,iBAAiB,GACzB,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"CredentialRequestUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/CredentialRequestUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAI3H,wBAAgB,mBAAmB,CAAC,iBAAiB,EAAE,wBAAwB,EAAE,IAAI,CAAC,EAAE;IAAE,0BAA0B,EAAE,OAAO,CAAA;CAAE,YAsB9H;AAED,wBAAgB,8BAA8B,CAC5C,iBAAiB,EAAE,wBAAwB,EAC3C,OAAO,EAAE,iBAAiB,GACzB,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,CAwBhF"}
|
|
@@ -32,6 +32,9 @@ function getCredentialRequestForVersion(credentialRequest, version) {
|
|
|
32
32
|
if (version === types_1.OpenId4VCIVersion.VER_1_0_08) {
|
|
33
33
|
const draft8Format = (0, FormatUtils_1.getFormatForVersion)(credentialRequest.format, version);
|
|
34
34
|
const types = getTypesFromRequest(credentialRequest, { filterVerifiableCredential: true });
|
|
35
|
+
if (credentialRequest.credential_subject_issuance) {
|
|
36
|
+
throw Error('Experimental subject issuance is not supported for older versions of the spec');
|
|
37
|
+
}
|
|
35
38
|
return {
|
|
36
39
|
format: draft8Format,
|
|
37
40
|
proof: credentialRequest.proof,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialRequestUtil.js","sourceRoot":"","sources":["../../lib/functions/CredentialRequestUtil.ts"],"names":[],"mappings":";;;AAAA,oCAA2H;AAE3H,+CAAoD;AAEpD,SAAgB,mBAAmB,CAAC,iBAA2C,EAAE,IAA8C;IAC7H,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,iBAAiB,CAAC,MAAM,KAAK,aAAa,IAAI,iBAAiB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxF,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAClC,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClG,KAAK;YACH,uBAAuB,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,qBAAqB;gBACrF,CAAC,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK;gBAC/C,CAAC,CAAC,6DAA6D;oBAC7D,aAAa;oBACb,iBAAiB,CAAC,KAAK,CAAC;IAChC,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpD,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,0BAA0B,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAtBD,kDAsBC;AAED,SAAgB,8BAA8B,CAC5C,iBAA2C,EAC3C,OAA0B;IAE1B,IAAI,OAAO,KAAK,yBAAiB,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAA,iCAAmB,EAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3F,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACoB,CAAC;QACrC;;;;;;;wCAOgC;IAClC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;
|
|
1
|
+
{"version":3,"file":"CredentialRequestUtil.js","sourceRoot":"","sources":["../../lib/functions/CredentialRequestUtil.ts"],"names":[],"mappings":";;;AAAA,oCAA2H;AAE3H,+CAAoD;AAEpD,SAAgB,mBAAmB,CAAC,iBAA2C,EAAE,IAA8C;IAC7H,IAAI,KAAK,GAAa,EAAE,CAAC;IACzB,IAAI,iBAAiB,CAAC,MAAM,KAAK,aAAa,IAAI,iBAAiB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxF,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAClC,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,gBAAgB,IAAI,iBAAiB,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClG,KAAK;YACH,uBAAuB,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,qBAAqB;gBACrF,CAAC,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK;gBAC/C,CAAC,CAAC,6DAA6D;oBAC7D,aAAa;oBACb,iBAAiB,CAAC,KAAK,CAAC;IAChC,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACpD,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,0BAA0B,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAtBD,kDAsBC;AAED,SAAgB,8BAA8B,CAC5C,iBAA2C,EAC3C,OAA0B;IAE1B,IAAI,OAAO,KAAK,yBAAiB,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAA,iCAAmB,EAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3F,IAAI,iBAAiB,CAAC,2BAA2B,EAAE,CAAC;YAClD,MAAM,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC/F,CAAC;QACD,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,iBAAiB,CAAC,KAAK;YAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SACoB,CAAC;QACrC;;;;;;;wCAOgC;IAClC,CAAC;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AA3BD,wEA2BC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { DecodeURIAsJsonOpts, EncodeJsonAsURIOpts } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
4
|
-
* @param
|
|
5
|
-
* @param opts
|
|
3
|
+
* @type {(json: {[s:string]: never} | ArrayLike<never> | string | object, opts?: EncodeJsonAsURIOpts)} encodes a Json object into a URI
|
|
4
|
+
* @param { {[s:string]: never} | ArrayLike<never> | string | object } json
|
|
5
|
+
* @param {EncodeJsonAsURIOpts} [opts] Option to encode json as uri
|
|
6
6
|
* - urlTypeProperties: a list of properties of which the value is a URL
|
|
7
7
|
* - arrayTypeProperties: a list of properties which are an array
|
|
8
8
|
*/
|
|
@@ -10,11 +10,12 @@ export declare function convertJsonToURI(json: {
|
|
|
10
10
|
[s: string]: never;
|
|
11
11
|
} | ArrayLike<never> | string | object, opts?: EncodeJsonAsURIOpts): string;
|
|
12
12
|
/**
|
|
13
|
-
* @
|
|
14
|
-
* @param uri
|
|
15
|
-
* @param opts
|
|
13
|
+
* @type {(uri: string, opts?: DecodeURIAsJsonOpts): unknown} convertURIToJsonObject converts an URI into a Json object decoding its properties
|
|
14
|
+
* @param {string} uri
|
|
15
|
+
* @param {DecodeURIAsJsonOpts} [opts]
|
|
16
16
|
* - requiredProperties: the required properties
|
|
17
17
|
* - arrayTypeProperties: properties that can show up more that once
|
|
18
|
+
* @returns JSON object
|
|
18
19
|
*/
|
|
19
20
|
export declare function convertURIToJsonObject(uri: string, opts?: DecodeURIAsJsonOpts): unknown;
|
|
20
21
|
//# sourceMappingURL=Encoding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Encoding.d.ts","sourceRoot":"","sources":["../../lib/functions/Encoding.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Encoding.d.ts","sourceRoot":"","sources":["../../lib/functions/Encoding.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EAIpB,MAAM,UAAU,CAAA;AAEjB;;;;;;GAMG;AAGH,wBAAgB,gBAAgB,CAC9B,IAAI,EACA;IACE,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACpB,GACD,SAAS,CAAC,KAAK,CAAC,GAChB,MAAM,GACN,MAAM,EACV,IAAI,CAAC,EAAE,mBAAmB,GACzB,MAAM,CA4DR;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAMvF"}
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.convertURIToJsonObject = exports.convertJsonToURI = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
7
|
-
* @param
|
|
8
|
-
* @param opts
|
|
6
|
+
* @type {(json: {[s:string]: never} | ArrayLike<never> | string | object, opts?: EncodeJsonAsURIOpts)} encodes a Json object into a URI
|
|
7
|
+
* @param { {[s:string]: never} | ArrayLike<never> | string | object } json
|
|
8
|
+
* @param {EncodeJsonAsURIOpts} [opts] Option to encode json as uri
|
|
9
9
|
* - urlTypeProperties: a list of properties of which the value is a URL
|
|
10
10
|
* - arrayTypeProperties: a list of properties which are an array
|
|
11
11
|
*/
|
|
@@ -77,11 +77,12 @@ function convertJsonToURI(json, opts) {
|
|
|
77
77
|
}
|
|
78
78
|
exports.convertJsonToURI = convertJsonToURI;
|
|
79
79
|
/**
|
|
80
|
-
* @
|
|
81
|
-
* @param uri
|
|
82
|
-
* @param opts
|
|
80
|
+
* @type {(uri: string, opts?: DecodeURIAsJsonOpts): unknown} convertURIToJsonObject converts an URI into a Json object decoding its properties
|
|
81
|
+
* @param {string} uri
|
|
82
|
+
* @param {DecodeURIAsJsonOpts} [opts]
|
|
83
83
|
* - requiredProperties: the required properties
|
|
84
84
|
* - arrayTypeProperties: properties that can show up more that once
|
|
85
|
+
* @returns JSON object
|
|
85
86
|
*/
|
|
86
87
|
function convertURIToJsonObject(uri, opts) {
|
|
87
88
|
var _a;
|
|
@@ -126,8 +127,8 @@ function decodeJsonProperties(parts) {
|
|
|
126
127
|
}
|
|
127
128
|
/**
|
|
128
129
|
* @function get URI Components as Array
|
|
129
|
-
* @param uri
|
|
130
|
-
* @param arrayTypes array of string containing array like keys
|
|
130
|
+
* @param {string} uri uri
|
|
131
|
+
* @param {string[]} [arrayTypes] array of string containing array like keys
|
|
131
132
|
*/
|
|
132
133
|
function getURIComponentsAsArray(uri, arrayTypes) {
|
|
133
134
|
const parts = uri.includes('?') ? uri.split('?')[1] : uri.includes('://') ? uri.split('://')[1] : uri;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Encoding.js","sourceRoot":"","sources":["../../lib/functions/Encoding.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"Encoding.js","sourceRoot":"","sources":["../../lib/functions/Encoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { JWK, Jwt, JWTVerifyCallback, JwtVerifyResult, ProofOfPossession, ProofOfPossessionCallbacks, Typ } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
5
|
+
* Mandatory if you want to create (sign) ProofOfPossession
|
|
6
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
7
|
+
* If exists, verifies the ProofOfPossession
|
|
8
|
+
* - proofOfPossessionCallbackArgs: ProofOfPossessionCallbackArgs
|
|
9
|
+
* arguments needed for signing ProofOfPossession
|
|
10
|
+
* @param callbacks:
|
|
11
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
12
|
+
* Mandatory to create (sign) ProofOfPossession
|
|
13
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
14
|
+
* If exists, verifies the ProofOfPossession
|
|
15
|
+
* @param jwtProps
|
|
16
|
+
* @param existingJwt
|
|
17
|
+
* - Optional, clientId of the party requesting the credential
|
|
18
|
+
*/
|
|
19
|
+
export declare const createProofOfPossession: <DIDDoc>(callbacks: ProofOfPossessionCallbacks<DIDDoc>, jwtProps?: JwtProps, existingJwt?: Jwt) => Promise<ProofOfPossession>;
|
|
20
|
+
export declare const isJWS: (token: string) => boolean;
|
|
21
|
+
export declare const extractBearerToken: (authorizationHeader?: string) => string | undefined;
|
|
22
|
+
export declare const validateJWT: (jwt?: string, opts?: {
|
|
23
|
+
kid?: string;
|
|
24
|
+
accessTokenVerificationCallback?: JWTVerifyCallback<never>;
|
|
25
|
+
}) => Promise<JwtVerifyResult<any>>;
|
|
26
|
+
export interface JwtProps {
|
|
27
|
+
typ?: Typ;
|
|
28
|
+
kid?: string;
|
|
29
|
+
jwk?: JWK;
|
|
30
|
+
issuer?: string;
|
|
31
|
+
clientId?: string;
|
|
32
|
+
alg?: string;
|
|
33
|
+
jti?: string;
|
|
34
|
+
nonce?: string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ProofUtil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProofUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,GAAG,EAEH,GAAG,EAGH,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,GAAG,EAEJ,MAAM,UAAU,CAAC;AAIlB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,sBACvB,2BAA2B,MAAM,CAAC,aAClC,QAAQ,gBACL,GAAG,KAChB,QAAQ,iBAAiB,CA0B3B,CAAC;AAQF,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,OAOrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAA0B,MAAM,KAAG,MAAM,GAAG,SAE1E,CAAC;AAEF,eAAO,MAAM,WAAW,SAChB,MAAM,SACL;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,+BAA+B,CAAC,EAAE,kBAAkB,KAAK,CAAC,CAAA;CAAE,KAClF,QAAQ,gBAAgB,GAAG,CAAC,CAkB9B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.validateJWT = exports.extractBearerToken = exports.isJWS = exports.createProofOfPossession = void 0;
|
|
16
|
+
const debug_1 = __importDefault(require("debug"));
|
|
17
|
+
const jwt_decode_1 = __importDefault(require("jwt-decode"));
|
|
18
|
+
const types_1 = require("../types");
|
|
19
|
+
const debug = (0, debug_1.default)('sphereon:openid4vci:common');
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
23
|
+
* Mandatory if you want to create (sign) ProofOfPossession
|
|
24
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
25
|
+
* If exists, verifies the ProofOfPossession
|
|
26
|
+
* - proofOfPossessionCallbackArgs: ProofOfPossessionCallbackArgs
|
|
27
|
+
* arguments needed for signing ProofOfPossession
|
|
28
|
+
* @param callbacks:
|
|
29
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
30
|
+
* Mandatory to create (sign) ProofOfPossession
|
|
31
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
32
|
+
* If exists, verifies the ProofOfPossession
|
|
33
|
+
* @param jwtProps
|
|
34
|
+
* @param existingJwt
|
|
35
|
+
* - Optional, clientId of the party requesting the credential
|
|
36
|
+
*/
|
|
37
|
+
const createProofOfPossession = (callbacks, jwtProps, existingJwt) => __awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
+
if (!callbacks.signCallback) {
|
|
39
|
+
debug(`no jwt signer callback or arguments supplied!`);
|
|
40
|
+
throw new Error(types_1.BAD_PARAMS);
|
|
41
|
+
}
|
|
42
|
+
const signerArgs = createJWT(jwtProps, existingJwt);
|
|
43
|
+
const jwt = yield callbacks.signCallback(signerArgs, signerArgs.header.kid);
|
|
44
|
+
const proof = {
|
|
45
|
+
proof_type: 'jwt',
|
|
46
|
+
jwt,
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
partiallyValidateJWS(jwt);
|
|
50
|
+
if (callbacks.verifyCallback) {
|
|
51
|
+
debug(`Calling supplied verify callback....`);
|
|
52
|
+
yield callbacks.verifyCallback({ jwt, kid: signerArgs.header.kid });
|
|
53
|
+
debug(`Supplied verify callback return success result`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (_a) {
|
|
57
|
+
debug(`JWS was not valid`);
|
|
58
|
+
throw new Error(types_1.JWS_NOT_VALID);
|
|
59
|
+
}
|
|
60
|
+
debug(`Proof of Possession JWT:\r\n${jwt}`);
|
|
61
|
+
return proof;
|
|
62
|
+
});
|
|
63
|
+
exports.createProofOfPossession = createProofOfPossession;
|
|
64
|
+
const partiallyValidateJWS = (jws) => {
|
|
65
|
+
if (jws.split('.').length !== 3 || !jws.startsWith('ey')) {
|
|
66
|
+
throw new Error(types_1.JWS_NOT_VALID);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
const isJWS = (token) => {
|
|
70
|
+
try {
|
|
71
|
+
partiallyValidateJWS(token);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
exports.isJWS = isJWS;
|
|
79
|
+
const extractBearerToken = (authorizationHeader) => {
|
|
80
|
+
var _a;
|
|
81
|
+
return authorizationHeader ? (_a = /Bearer (.*)/i.exec(authorizationHeader)) === null || _a === void 0 ? void 0 : _a[1] : undefined;
|
|
82
|
+
};
|
|
83
|
+
exports.extractBearerToken = extractBearerToken;
|
|
84
|
+
const validateJWT = (jwt, opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
85
|
+
if (!jwt) {
|
|
86
|
+
throw Error('No JWT was supplied');
|
|
87
|
+
}
|
|
88
|
+
if (!(opts === null || opts === void 0 ? void 0 : opts.accessTokenVerificationCallback)) {
|
|
89
|
+
types_1.VCI_LOG_COMMON.warning(`No access token verification callback supplied. Access tokens will not be verified, except for a very basic check`);
|
|
90
|
+
partiallyValidateJWS(jwt);
|
|
91
|
+
const header = (0, jwt_decode_1.default)(jwt, { header: true });
|
|
92
|
+
const payload = (0, jwt_decode_1.default)(jwt, { header: false });
|
|
93
|
+
return Object.assign(Object.assign({ jwt: { header, payload } }, header), payload);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return yield opts.accessTokenVerificationCallback({ jwt, kid: opts.kid });
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
exports.validateJWT = validateJWT;
|
|
100
|
+
const createJWT = (jwtProps, existingJwt) => {
|
|
101
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
102
|
+
const aud = getJwtProperty('aud', true, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.issuer, (_a = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _a === void 0 ? void 0 : _a.aud);
|
|
103
|
+
const iss = getJwtProperty('iss', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.clientId, (_b = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _b === void 0 ? void 0 : _b.iss);
|
|
104
|
+
const jti = getJwtProperty('jti', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.jti, (_c = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _c === void 0 ? void 0 : _c.jti);
|
|
105
|
+
const typ = getJwtProperty('typ', true, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.typ, (_d = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _d === void 0 ? void 0 : _d.typ, 'jwt');
|
|
106
|
+
const nonce = getJwtProperty('nonce', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.nonce, (_e = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _e === void 0 ? void 0 : _e.nonce); // Officially this is required, but some implementations don't have it
|
|
107
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
108
|
+
const alg = getJwtProperty('alg', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.alg, (_f = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _f === void 0 ? void 0 : _f.alg, 'ES256');
|
|
109
|
+
const kid = getJwtProperty('kid', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.kid, (_g = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _g === void 0 ? void 0 : _g.kid);
|
|
110
|
+
const jwk = getJwtProperty('jwk', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.jwk, (_h = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _h === void 0 ? void 0 : _h.jwk);
|
|
111
|
+
const jwt = existingJwt ? existingJwt : {};
|
|
112
|
+
const now = +new Date();
|
|
113
|
+
const jwtPayload = Object.assign(Object.assign({ aud, iat: (_k = (_j = jwt.payload) === null || _j === void 0 ? void 0 : _j.iat) !== null && _k !== void 0 ? _k : Math.round(now / 1000 - 60), exp: (_m = (_l = jwt.payload) === null || _l === void 0 ? void 0 : _l.exp) !== null && _m !== void 0 ? _m : Math.round(now / 1000 + 10 * 60), nonce }, (iss ? { iss } : {})), (jti ? { jti } : {}));
|
|
114
|
+
const jwtHeader = {
|
|
115
|
+
typ,
|
|
116
|
+
alg,
|
|
117
|
+
kid,
|
|
118
|
+
jwk,
|
|
119
|
+
};
|
|
120
|
+
return {
|
|
121
|
+
payload: Object.assign(Object.assign({}, jwt.payload), jwtPayload),
|
|
122
|
+
header: Object.assign(Object.assign({}, jwt.header), jwtHeader),
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
const getJwtProperty = (propertyName, required, option, jwtProperty, defaultValue) => {
|
|
126
|
+
if (typeof option === 'string' && option && jwtProperty && option !== jwtProperty) {
|
|
127
|
+
throw Error(`Cannot have a property '${propertyName}' with value '${option}' and different JWT value '${jwtProperty}' at the same time`);
|
|
128
|
+
}
|
|
129
|
+
let result = (jwtProperty ? jwtProperty : option);
|
|
130
|
+
if (!result) {
|
|
131
|
+
if (required) {
|
|
132
|
+
throw Error(`No ${propertyName} property provided either in a JWT or as option`);
|
|
133
|
+
}
|
|
134
|
+
result = defaultValue;
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=ProofUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProofUtil.js","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export * from './TypeConversionUtils';
|
|
|
7
7
|
export * from './IssuerMetadataUtils';
|
|
8
8
|
export * from './FormatUtils';
|
|
9
9
|
export * from './HttpUtils';
|
|
10
|
+
export * from './ProofUtil';
|
|
10
11
|
export * from './AuthorizationResponseUtil';
|
|
11
12
|
export { randomBytes };
|
|
12
13
|
export * from './RandomUtils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,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;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,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;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,cAAc,eAAe,CAAC"}
|
package/dist/functions/index.js
CHANGED
|
@@ -25,6 +25,7 @@ __exportStar(require("./TypeConversionUtils"), exports);
|
|
|
25
25
|
__exportStar(require("./IssuerMetadataUtils"), exports);
|
|
26
26
|
__exportStar(require("./FormatUtils"), exports);
|
|
27
27
|
__exportStar(require("./HttpUtils"), exports);
|
|
28
|
+
__exportStar(require("./ProofUtil"), exports);
|
|
28
29
|
__exportStar(require("./AuthorizationResponseUtil"), exports);
|
|
29
30
|
__exportStar(require("./RandomUtils"), exports);
|
|
30
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA+C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/functions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAA+C;AAWtC,4FAXA,4BAAW,OAWA;AAVpB,0DAAwC;AACxC,2DAAyC;AACzC,wDAAsC;AACtC,6CAA2B;AAC3B,wDAAsC;AACtC,wDAAsC;AACtC,gDAA8B;AAC9B,8CAA4B;AAC5B,8CAA4B;AAC5B,8DAA4C;AAE5C,gDAA8B"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./functions"), exports);
|
|
18
18
|
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./experimental/holder-vci"), exports);
|
|
20
|
+
__exportStar(require("./events"), exports);
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,0CAAwB;AACxB,4DAA0C;AAC1C,2CAAyB"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { W3CVerifiableCredential } from '@sphereon/ssi-types';
|
|
2
|
+
import { ExperimentalSubjectIssuance } from '../experimental/holder-vci';
|
|
2
3
|
import { AuthzFlowType } from './Authorization.types';
|
|
3
4
|
import { OID4VCICredentialFormat } from './Generic.types';
|
|
4
5
|
import { OpenId4VCIVersion } from './OpenID4VCIVersions.types';
|
|
5
6
|
import { CredentialOfferPayloadV1_0_08 } from './v1_0_08.types';
|
|
6
7
|
import { CredentialOfferPayloadV1_0_09, CredentialOfferV1_0_09 } from './v1_0_09.types';
|
|
7
8
|
import { CredentialOfferPayloadV1_0_11, CredentialOfferV1_0_11 } from './v1_0_11.types';
|
|
8
|
-
export interface CredentialResponse {
|
|
9
|
+
export interface CredentialResponse extends ExperimentalSubjectIssuance {
|
|
9
10
|
credential?: W3CVerifiableCredential;
|
|
10
11
|
format: OID4VCICredentialFormat;
|
|
11
12
|
transaction_id?: string;
|
|
12
13
|
acceptance_token?: string;
|
|
13
14
|
c_nonce?: string;
|
|
14
15
|
c_nonce_expires_in?: number;
|
|
16
|
+
notification_id?: string;
|
|
15
17
|
}
|
|
16
18
|
export interface CredentialOfferRequestWithBaseUrl extends UniformCredentialOfferRequest {
|
|
17
19
|
scheme: string;
|
|
@@ -163,7 +165,7 @@ export interface JwtVerifyResult<DIDDoc> {
|
|
|
163
165
|
alg: string;
|
|
164
166
|
did?: string;
|
|
165
167
|
didDocument?: DIDDoc;
|
|
166
|
-
x5c?: string;
|
|
168
|
+
x5c?: string[];
|
|
167
169
|
jwk?: BaseJWK;
|
|
168
170
|
}
|
|
169
171
|
//# sourceMappingURL=CredentialIssuance.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CredentialIssuance.types.d.ts","sourceRoot":"","sources":["../../lib/types/CredentialIssuance.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAExF,MAAM,WAAW,
|
|
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":";;;AAiEA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,iEAAc,CAAA;IACd,+EAAqB,CAAA;AACvB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AA6DD;;;;;GAKG;AACH,IAAY,GAUX;AAVD,WAAY,GAAG;IACb,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,wBAAiB,CAAA;IACjB,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;IACf,sBAAe,CAAA;AACjB,CAAC,EAVW,GAAG,mBAAH,GAAG,QAUd"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ICredentialContextType, IVerifiableCredential, W3CVerifiableCredential } from '@sphereon/ssi-types';
|
|
2
|
+
import { ExperimentalSubjectIssuance } from '../experimental/holder-vci';
|
|
2
3
|
import { ProofOfPossession } from './CredentialIssuance.types';
|
|
3
4
|
import { AuthorizationServerMetadata } from './ServerMetadata';
|
|
4
5
|
import { CredentialOfferSession } from './StateManager.types';
|
|
@@ -40,6 +41,7 @@ export interface CredentialIssuerMetadataOpts {
|
|
|
40
41
|
credential_issuer: string;
|
|
41
42
|
authorization_server?: string;
|
|
42
43
|
token_endpoint?: string;
|
|
44
|
+
notification_endpoint?: string;
|
|
43
45
|
display?: MetadataDisplay[];
|
|
44
46
|
credential_supplier_config?: CredentialSupplierConfig;
|
|
45
47
|
}
|
|
@@ -55,7 +57,7 @@ export interface CredentialSupportedBrief {
|
|
|
55
57
|
cryptographic_binding_methods_supported?: string[];
|
|
56
58
|
cryptographic_suites_supported?: string[];
|
|
57
59
|
}
|
|
58
|
-
export type CommonCredentialSupported = CredentialSupportedBrief & {
|
|
60
|
+
export type CommonCredentialSupported = CredentialSupportedBrief & ExperimentalSubjectIssuance & {
|
|
59
61
|
format: OID4VCICredentialFormat | string;
|
|
60
62
|
id?: string;
|
|
61
63
|
display?: CredentialsSupportedDisplay[];
|
|
@@ -121,7 +123,7 @@ export interface ErrorResponse extends Response {
|
|
|
121
123
|
state?: string;
|
|
122
124
|
}
|
|
123
125
|
export type UniformCredentialRequest = CredentialRequestV1_0_11;
|
|
124
|
-
export interface CommonCredentialRequest {
|
|
126
|
+
export interface CommonCredentialRequest extends ExperimentalSubjectIssuance {
|
|
125
127
|
format: OID4VCICredentialFormat;
|
|
126
128
|
proof?: ProofOfPossession;
|
|
127
129
|
}
|
|
@@ -139,7 +141,7 @@ export interface CredentialRequestSdJwtVc extends CommonCredentialRequest {
|
|
|
139
141
|
vct: string;
|
|
140
142
|
claims?: IssuerCredentialSubject;
|
|
141
143
|
}
|
|
142
|
-
export interface CommonCredentialResponse {
|
|
144
|
+
export interface CommonCredentialResponse extends ExperimentalSubjectIssuance {
|
|
143
145
|
format: string;
|
|
144
146
|
credential?: W3CVerifiableCredential;
|
|
145
147
|
acceptance_token?: string;
|
|
@@ -204,4 +206,19 @@ export interface GrantUrnIetf {
|
|
|
204
206
|
authorization_server?: string;
|
|
205
207
|
}
|
|
206
208
|
export declare const PRE_AUTH_CODE_LITERAL = "pre-authorized_code";
|
|
209
|
+
export type NotificationEventType = 'credential_accepted' | 'credential_failure' | 'credential_deleted';
|
|
210
|
+
export interface NotificationRequest {
|
|
211
|
+
notification_id: string;
|
|
212
|
+
event: NotificationEventType | string;
|
|
213
|
+
event_description?: string;
|
|
214
|
+
credential?: any;
|
|
215
|
+
}
|
|
216
|
+
export type NotificationError = 'invalid_notification_id' | 'invalid_notification_request';
|
|
217
|
+
export type NotificationResult = {
|
|
218
|
+
error: boolean;
|
|
219
|
+
response?: NotificationErrorResponse;
|
|
220
|
+
};
|
|
221
|
+
export interface NotificationErrorResponse {
|
|
222
|
+
error: NotificationError | string;
|
|
223
|
+
}
|
|
207
224
|
//# sourceMappingURL=Generic.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Generic.types.d.ts","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3G,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,GACrD,YAAY,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,aAAa,GACzC,YAAY,GAAG;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEJ,MAAM,WAAW,wBAAwB;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,0BAA0B,CAAC,EAAE,wBAAwB,CAAC;CACvD;AAGD,MAAM,WAAW,wBAAyB,SAAQ,4BAA4B,EAAE,OAAO,CAAC,2BAA2B,CAAC;IAClH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mDAAmD,CAAC,EAAE,MAAM,CAAC;IAC7D,mDAAmD,CAAC,EAAE,MAAM,CAAC;IAC7D,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,gCAAgC,CAAC,EAAE,OAAO,CAAC;CAC5C;AAID,MAAM,WAAW,wBAAwB;IACvC,uCAAuC,CAAC,EAAE,MAAM,EAAE,CAAC;IACnD,8BAA8B,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,GAAG;
|
|
1
|
+
{"version":3,"file":"Generic.types.d.ts","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Generic.types.js","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Generic.types.js","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":";;;AAmRa,QAAA,qBAAqB,GAAG,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.types.d.ts","sourceRoot":"","sources":["../../lib/types/StateManager.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,8BAA8B,CAAC;IAChD,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oBAAY,WAAW;IACrB,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB,CAAE,sDAAsD;IACnG,sBAAsB,2BAA2B,CAAE,0EAA0E;IAC7H,oBAAoB,yBAAyB,CAAE,0EAA0E;IACzH,2BAA2B,gCAAgC,CAAE,0EAA0E;IACvI,iBAAiB,sBAAsB;IACvC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS;IAChD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAExC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
1
|
+
{"version":3,"file":"StateManager.types.d.ts","sourceRoot":"","sources":["../../lib/types/StateManager.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAuB,SAAQ,SAAS;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,8BAA8B,CAAC;IAChD,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oBAAY,WAAW;IACrB,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB,CAAE,sDAAsD;IACnG,sBAAsB,2BAA2B,CAAE,0EAA0E;IAC7H,oBAAoB,yBAAyB,CAAE,0EAA0E;IACzH,2BAA2B,gCAAgC,CAAE,0EAA0E;IACvI,iBAAiB,sBAAsB;IACvC,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAS,SAAQ,SAAS;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS;IAChD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAExC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpC,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.types.js","sourceRoot":"","sources":["../../lib/types/StateManager.types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"StateManager.types.js","sourceRoot":"","sources":["../../lib/types/StateManager.types.ts"],"names":[],"mappings":";;;AAoBA,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,8CAA+B,CAAA;IAC/B,0DAA2C,CAAA;IAC3C,gEAAiD,CAAA;IACjD,4DAA6C,CAAA;IAC7C,0EAA2D,CAAA;IAC3D,sDAAuC,CAAA;IACvC,8BAAe,CAAA;AACjB,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Loggers } from '@sphereon/ssi-types';
|
|
1
2
|
export * from './Authorization.types';
|
|
2
3
|
export * from './CredentialIssuance.types';
|
|
3
4
|
export * from './Generic.types';
|
|
@@ -10,4 +11,6 @@ export * from './OpenID4VCIVersions.types';
|
|
|
10
11
|
export * from './StateManager.types';
|
|
11
12
|
export * from './Token.types';
|
|
12
13
|
export * from './QRCode.types';
|
|
14
|
+
export declare const VCI_LOGGERS: Loggers;
|
|
15
|
+
export declare const VCI_LOG_COMMON: import("@sphereon/ssi-types").ISimpleLogger<unknown>;
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAa,MAAM,qBAAqB,CAAC;AAEzD,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAE/B,eAAO,MAAM,WAAW,SAAoB,CAAC;AAC7C,eAAO,MAAM,cAAc,sDAE1B,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.VCI_LOG_COMMON = exports.VCI_LOGGERS = void 0;
|
|
18
|
+
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
17
19
|
__exportStar(require("./Authorization.types"), exports);
|
|
18
20
|
__exportStar(require("./CredentialIssuance.types"), exports);
|
|
19
21
|
__exportStar(require("./Generic.types"), exports);
|
|
@@ -26,4 +28,6 @@ __exportStar(require("./OpenID4VCIVersions.types"), exports);
|
|
|
26
28
|
__exportStar(require("./StateManager.types"), exports);
|
|
27
29
|
__exportStar(require("./Token.types"), exports);
|
|
28
30
|
__exportStar(require("./QRCode.types"), exports);
|
|
31
|
+
exports.VCI_LOGGERS = ssi_types_1.Loggers.default();
|
|
32
|
+
exports.VCI_LOG_COMMON = exports.VCI_LOGGERS.options('sphereon:oid4vci:common', { methods: [ssi_types_1.LogMethod.EVENT, ssi_types_1.LogMethod.DEBUG_PKG] }).get('sphereon:oid4vci:common');
|
|
29
33
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAyD;AAEzD,wDAAsC;AACtC,6DAA2C;AAC3C,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,mDAAiC;AACjC,qDAAmC;AACnC,6DAA2C;AAC3C,uDAAqC;AACrC,gDAA8B;AAC9B,iDAA+B;AAElB,QAAA,WAAW,GAAG,mBAAO,CAAC,OAAO,EAAE,CAAC;AAChC,QAAA,cAAc,GAAG,mBAAW,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,CAAC,qBAAS,CAAC,KAAK,EAAE,qBAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CACnI,yBAAyB,CAC1B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { EventManager } from '@sphereon/ssi-types';
|
|
2
|
+
|
|
3
|
+
export type EventNames = CredentialOfferEventNames | NotificationStatusEventNames | LogEvents | CredentialEventNames;
|
|
4
|
+
|
|
5
|
+
export enum CredentialOfferEventNames {
|
|
6
|
+
OID4VCI_OFFER_CREATED = 'OID4VCI_OFFER_CREATED',
|
|
7
|
+
OID4VCI_OFFER_EXPIRED = 'OID4VCI_OFFER_EXPIRED',
|
|
8
|
+
OID4VCI_OFFER_DELETED = 'OID4VCI_OFFER_DELETED',
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export enum CredentialEventNames {
|
|
12
|
+
OID4VCI_CREDENTIAL_ISSUED = 'OID4VCI_CREDENTIAL_ISSUED',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export enum NotificationStatusEventNames {
|
|
16
|
+
OID4VCI_NOTIFICATION_RECEIVED = 'OID4VCI_NOTIFICATION_RECEIVED',
|
|
17
|
+
OID4VCI_NOTIFICATION_PROCESSED = 'OID4VCI_NOTIFICATION_PROCESSED',
|
|
18
|
+
}
|
|
19
|
+
export type LogEvents = 'oid4vciLog';
|
|
20
|
+
export const EVENTS = EventManager.instance();
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Experimental support not following the VCI spec to have the holder actually (re)sign the issued credential and return it to the issuer
|
|
3
|
+
*/
|
|
4
|
+
import * as process from 'node:process';
|
|
5
|
+
|
|
6
|
+
export const EXPERIMENTAL_SUBJECT_PROOF_MODE_ENABLED = process.env.EXPERIMENTAL_SUBJECT_PROOF_MODE?.trim().toLowerCase() === 'true';
|
|
7
|
+
|
|
8
|
+
export type SubjectProofMode = 'proof_chain' | 'proof_set' | 'proof_replace';
|
|
9
|
+
|
|
10
|
+
export type SubjectProofNotificationEventsSupported =
|
|
11
|
+
| 'credential_accepted_holder_signed'
|
|
12
|
+
| 'credential_deleted_holder_signed'
|
|
13
|
+
| 'credential_accepted';
|
|
14
|
+
|
|
15
|
+
export interface ExperimentalSubjectIssuance {
|
|
16
|
+
credential_subject_issuance?: {
|
|
17
|
+
subject_proof_mode: SubjectProofMode;
|
|
18
|
+
notifications_events_supported: Array<SubjectProofNotificationEventsSupported>;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -34,6 +34,9 @@ export function getCredentialRequestForVersion(
|
|
|
34
34
|
const draft8Format = getFormatForVersion(credentialRequest.format, version);
|
|
35
35
|
const types = getTypesFromRequest(credentialRequest, { filterVerifiableCredential: true });
|
|
36
36
|
|
|
37
|
+
if (credentialRequest.credential_subject_issuance) {
|
|
38
|
+
throw Error('Experimental subject issuance is not supported for older versions of the spec');
|
|
39
|
+
}
|
|
37
40
|
return {
|
|
38
41
|
format: draft8Format,
|
|
39
42
|
proof: credentialRequest.proof,
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
BAD_PARAMS,
|
|
3
|
+
DecodeURIAsJsonOpts,
|
|
4
|
+
EncodeJsonAsURIOpts,
|
|
5
|
+
JsonURIMode,
|
|
6
|
+
OpenId4VCIVersion,
|
|
7
|
+
SearchValue
|
|
8
|
+
} from '../types'
|
|
2
9
|
|
|
3
10
|
/**
|
|
4
|
-
* @
|
|
5
|
-
* @param
|
|
6
|
-
* @param opts
|
|
11
|
+
* @type {(json: {[s:string]: never} | ArrayLike<never> | string | object, opts?: EncodeJsonAsURIOpts)} encodes a Json object into a URI
|
|
12
|
+
* @param { {[s:string]: never} | ArrayLike<never> | string | object } json
|
|
13
|
+
* @param {EncodeJsonAsURIOpts} [opts] Option to encode json as uri
|
|
7
14
|
* - urlTypeProperties: a list of properties of which the value is a URL
|
|
8
15
|
* - arrayTypeProperties: a list of properties which are an array
|
|
9
16
|
*/
|
|
@@ -81,11 +88,12 @@ export function convertJsonToURI(
|
|
|
81
88
|
}
|
|
82
89
|
|
|
83
90
|
/**
|
|
84
|
-
* @
|
|
85
|
-
* @param uri
|
|
86
|
-
* @param opts
|
|
91
|
+
* @type {(uri: string, opts?: DecodeURIAsJsonOpts): unknown} convertURIToJsonObject converts an URI into a Json object decoding its properties
|
|
92
|
+
* @param {string} uri
|
|
93
|
+
* @param {DecodeURIAsJsonOpts} [opts]
|
|
87
94
|
* - requiredProperties: the required properties
|
|
88
95
|
* - arrayTypeProperties: properties that can show up more that once
|
|
96
|
+
* @returns JSON object
|
|
89
97
|
*/
|
|
90
98
|
export function convertURIToJsonObject(uri: string, opts?: DecodeURIAsJsonOpts): unknown {
|
|
91
99
|
if (!uri || (opts?.requiredProperties && !opts.requiredProperties?.every((p) => uri.includes(p)))) {
|
|
@@ -128,8 +136,8 @@ function decodeJsonProperties(parts: string[] | string[][]): unknown {
|
|
|
128
136
|
|
|
129
137
|
/**
|
|
130
138
|
* @function get URI Components as Array
|
|
131
|
-
* @param uri
|
|
132
|
-
* @param arrayTypes array of string containing array like keys
|
|
139
|
+
* @param {string} uri uri
|
|
140
|
+
* @param {string[]} [arrayTypes] array of string containing array like keys
|
|
133
141
|
*/
|
|
134
142
|
function getURIComponentsAsArray(uri: string, arrayTypes?: string[]): string[] | string[][] {
|
|
135
143
|
const parts = uri.includes('?') ? uri.split('?')[1] : uri.includes('://') ? uri.split('://')[1] : uri;
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import Debug from 'debug';
|
|
2
|
+
import jwtDecode from 'jwt-decode';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
BAD_PARAMS,
|
|
6
|
+
BaseJWK,
|
|
7
|
+
JWK,
|
|
8
|
+
JWS_NOT_VALID,
|
|
9
|
+
Jwt,
|
|
10
|
+
JWTHeader,
|
|
11
|
+
JWTPayload,
|
|
12
|
+
JWTVerifyCallback,
|
|
13
|
+
JwtVerifyResult,
|
|
14
|
+
ProofOfPossession,
|
|
15
|
+
ProofOfPossessionCallbacks,
|
|
16
|
+
Typ,
|
|
17
|
+
VCI_LOG_COMMON,
|
|
18
|
+
} from '../types';
|
|
19
|
+
|
|
20
|
+
const debug = Debug('sphereon:openid4vci:common');
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
25
|
+
* Mandatory if you want to create (sign) ProofOfPossession
|
|
26
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
27
|
+
* If exists, verifies the ProofOfPossession
|
|
28
|
+
* - proofOfPossessionCallbackArgs: ProofOfPossessionCallbackArgs
|
|
29
|
+
* arguments needed for signing ProofOfPossession
|
|
30
|
+
* @param callbacks:
|
|
31
|
+
* - proofOfPossessionCallback: JWTSignerCallback
|
|
32
|
+
* Mandatory to create (sign) ProofOfPossession
|
|
33
|
+
* - proofOfPossessionVerifierCallback?: JWTVerifyCallback
|
|
34
|
+
* If exists, verifies the ProofOfPossession
|
|
35
|
+
* @param jwtProps
|
|
36
|
+
* @param existingJwt
|
|
37
|
+
* - Optional, clientId of the party requesting the credential
|
|
38
|
+
*/
|
|
39
|
+
export const createProofOfPossession = async <DIDDoc>(
|
|
40
|
+
callbacks: ProofOfPossessionCallbacks<DIDDoc>,
|
|
41
|
+
jwtProps?: JwtProps,
|
|
42
|
+
existingJwt?: Jwt,
|
|
43
|
+
): Promise<ProofOfPossession> => {
|
|
44
|
+
if (!callbacks.signCallback) {
|
|
45
|
+
debug(`no jwt signer callback or arguments supplied!`);
|
|
46
|
+
throw new Error(BAD_PARAMS);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const signerArgs = createJWT(jwtProps, existingJwt);
|
|
50
|
+
const jwt = await callbacks.signCallback(signerArgs, signerArgs.header.kid);
|
|
51
|
+
const proof = {
|
|
52
|
+
proof_type: 'jwt',
|
|
53
|
+
jwt,
|
|
54
|
+
} as ProofOfPossession;
|
|
55
|
+
|
|
56
|
+
try {
|
|
57
|
+
partiallyValidateJWS(jwt);
|
|
58
|
+
if (callbacks.verifyCallback) {
|
|
59
|
+
debug(`Calling supplied verify callback....`);
|
|
60
|
+
await callbacks.verifyCallback({ jwt, kid: signerArgs.header.kid });
|
|
61
|
+
debug(`Supplied verify callback return success result`);
|
|
62
|
+
}
|
|
63
|
+
} catch {
|
|
64
|
+
debug(`JWS was not valid`);
|
|
65
|
+
throw new Error(JWS_NOT_VALID);
|
|
66
|
+
}
|
|
67
|
+
debug(`Proof of Possession JWT:\r\n${jwt}`);
|
|
68
|
+
return proof;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const partiallyValidateJWS = (jws: string): void => {
|
|
72
|
+
if (jws.split('.').length !== 3 || !jws.startsWith('ey')) {
|
|
73
|
+
throw new Error(JWS_NOT_VALID);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const isJWS = (token: string): boolean => {
|
|
78
|
+
try {
|
|
79
|
+
partiallyValidateJWS(token);
|
|
80
|
+
return true;
|
|
81
|
+
} catch (e) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export const extractBearerToken = (authorizationHeader?: string): string | undefined => {
|
|
87
|
+
return authorizationHeader ? /Bearer (.*)/i.exec(authorizationHeader)?.[1] : undefined;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
export const validateJWT = async (
|
|
91
|
+
jwt?: string,
|
|
92
|
+
opts?: { kid?: string; accessTokenVerificationCallback?: JWTVerifyCallback<never> },
|
|
93
|
+
): Promise<JwtVerifyResult<any>> => {
|
|
94
|
+
if (!jwt) {
|
|
95
|
+
throw Error('No JWT was supplied');
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (!opts?.accessTokenVerificationCallback) {
|
|
99
|
+
VCI_LOG_COMMON.warning(`No access token verification callback supplied. Access tokens will not be verified, except for a very basic check`);
|
|
100
|
+
partiallyValidateJWS(jwt);
|
|
101
|
+
const header = jwtDecode<JWTHeader>(jwt, { header: true });
|
|
102
|
+
const payload = jwtDecode<JWTPayload>(jwt, { header: false });
|
|
103
|
+
return {
|
|
104
|
+
jwt: { header, payload } satisfies Jwt,
|
|
105
|
+
...header,
|
|
106
|
+
...payload,
|
|
107
|
+
};
|
|
108
|
+
} else {
|
|
109
|
+
return await opts.accessTokenVerificationCallback({ jwt, kid: opts.kid });
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export interface JwtProps {
|
|
114
|
+
typ?: Typ;
|
|
115
|
+
kid?: string;
|
|
116
|
+
jwk?: JWK;
|
|
117
|
+
issuer?: string;
|
|
118
|
+
clientId?: string;
|
|
119
|
+
alg?: string;
|
|
120
|
+
jti?: string;
|
|
121
|
+
nonce?: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
const createJWT = (jwtProps?: JwtProps, existingJwt?: Jwt): Jwt => {
|
|
125
|
+
const aud = getJwtProperty<string | string[]>('aud', true, jwtProps?.issuer, existingJwt?.payload?.aud);
|
|
126
|
+
const iss = getJwtProperty<string>('iss', false, jwtProps?.clientId, existingJwt?.payload?.iss);
|
|
127
|
+
const jti = getJwtProperty<string>('jti', false, jwtProps?.jti, existingJwt?.payload?.jti);
|
|
128
|
+
const typ = getJwtProperty<string>('typ', true, jwtProps?.typ, existingJwt?.header?.typ, 'jwt');
|
|
129
|
+
const nonce = getJwtProperty<string>('nonce', false, jwtProps?.nonce, existingJwt?.payload?.nonce); // Officially this is required, but some implementations don't have it
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
131
|
+
const alg = getJwtProperty<string>('alg', false, jwtProps?.alg, existingJwt?.header?.alg, 'ES256')!;
|
|
132
|
+
const kid = getJwtProperty<string>('kid', false, jwtProps?.kid, existingJwt?.header?.kid);
|
|
133
|
+
const jwk = getJwtProperty<BaseJWK>('jwk', false, jwtProps?.jwk, existingJwt?.header?.jwk);
|
|
134
|
+
const jwt: Partial<Jwt> = existingJwt ? existingJwt : {};
|
|
135
|
+
const now = +new Date();
|
|
136
|
+
const jwtPayload: Partial<JWTPayload> = {
|
|
137
|
+
aud,
|
|
138
|
+
iat: jwt.payload?.iat ?? Math.round(now / 1000 - 60), // Let's ensure we subtract 60 seconds for potential time offsets
|
|
139
|
+
exp: jwt.payload?.exp ?? Math.round(now / 1000 + 10 * 60),
|
|
140
|
+
nonce,
|
|
141
|
+
...(iss ? { iss } : {}),
|
|
142
|
+
...(jti ? { jti } : {}),
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
const jwtHeader: JWTHeader = {
|
|
146
|
+
typ,
|
|
147
|
+
alg,
|
|
148
|
+
kid,
|
|
149
|
+
jwk,
|
|
150
|
+
};
|
|
151
|
+
return {
|
|
152
|
+
payload: { ...jwt.payload, ...jwtPayload },
|
|
153
|
+
header: { ...jwt.header, ...jwtHeader },
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const getJwtProperty = <T>(propertyName: string, required: boolean, option?: string | JWK, jwtProperty?: T, defaultValue?: T): T | undefined => {
|
|
158
|
+
if (typeof option === 'string' && option && jwtProperty && option !== jwtProperty) {
|
|
159
|
+
throw Error(`Cannot have a property '${propertyName}' with value '${option}' and different JWT value '${jwtProperty}' at the same time`);
|
|
160
|
+
}
|
|
161
|
+
let result = (jwtProperty ? jwtProperty : option) as T | undefined;
|
|
162
|
+
if (!result) {
|
|
163
|
+
if (required) {
|
|
164
|
+
throw Error(`No ${propertyName} property provided either in a JWT or as option`);
|
|
165
|
+
}
|
|
166
|
+
result = defaultValue;
|
|
167
|
+
}
|
|
168
|
+
return result;
|
|
169
|
+
};
|
package/lib/functions/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './TypeConversionUtils';
|
|
|
7
7
|
export * from './IssuerMetadataUtils';
|
|
8
8
|
export * from './FormatUtils';
|
|
9
9
|
export * from './HttpUtils';
|
|
10
|
+
export * from './ProofUtil';
|
|
10
11
|
export * from './AuthorizationResponseUtil';
|
|
11
12
|
export { randomBytes };
|
|
12
13
|
export * from './RandomUtils';
|
package/lib/index.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { W3CVerifiableCredential } from '@sphereon/ssi-types';
|
|
2
2
|
|
|
3
|
+
import { ExperimentalSubjectIssuance } from '../experimental/holder-vci';
|
|
4
|
+
|
|
3
5
|
import { AuthzFlowType } from './Authorization.types';
|
|
4
6
|
import { OID4VCICredentialFormat } from './Generic.types';
|
|
5
7
|
import { OpenId4VCIVersion } from './OpenID4VCIVersions.types';
|
|
@@ -7,13 +9,14 @@ import { CredentialOfferPayloadV1_0_08 } from './v1_0_08.types';
|
|
|
7
9
|
import { CredentialOfferPayloadV1_0_09, CredentialOfferV1_0_09 } from './v1_0_09.types';
|
|
8
10
|
import { CredentialOfferPayloadV1_0_11, CredentialOfferV1_0_11 } from './v1_0_11.types';
|
|
9
11
|
|
|
10
|
-
export interface CredentialResponse {
|
|
12
|
+
export interface CredentialResponse extends ExperimentalSubjectIssuance {
|
|
11
13
|
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
14
|
format: OID4VCICredentialFormat /* | OID4VCICredentialFormat[]*/; // REQUIRED. JSON string denoting the format of the issued Credential
|
|
13
15
|
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
16
|
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
|
|
15
17
|
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
|
|
16
18
|
c_nonce_expires_in?: number; // OPTIONAL. JSON integer denoting the lifetime in seconds of the c_nonce
|
|
19
|
+
notification_id?: string;
|
|
17
20
|
}
|
|
18
21
|
|
|
19
22
|
export interface CredentialOfferRequestWithBaseUrl extends UniformCredentialOfferRequest {
|
|
@@ -196,6 +199,6 @@ export interface JwtVerifyResult<DIDDoc> {
|
|
|
196
199
|
alg: string;
|
|
197
200
|
did?: string;
|
|
198
201
|
didDocument?: DIDDoc;
|
|
199
|
-
x5c?: string;
|
|
202
|
+
x5c?: string[];
|
|
200
203
|
jwk?: BaseJWK;
|
|
201
204
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ICredentialContextType, IVerifiableCredential, W3CVerifiableCredential } from '@sphereon/ssi-types';
|
|
2
2
|
|
|
3
|
+
import { ExperimentalSubjectIssuance } from '../experimental/holder-vci';
|
|
4
|
+
|
|
3
5
|
import { ProofOfPossession } from './CredentialIssuance.types';
|
|
4
6
|
import { AuthorizationServerMetadata } from './ServerMetadata';
|
|
5
7
|
import { CredentialOfferSession } from './StateManager.types';
|
|
@@ -53,6 +55,7 @@ export interface CredentialIssuerMetadataOpts {
|
|
|
53
55
|
authorization_server?: string; // OPTIONAL. Identifier of the OAuth 2.0 Authorization Server (as defined in [RFC8414]) the Credential Issuer relies on for authorization. If this element is omitted, the entity providing the Credential Issuer is also acting as the AS, i.e. the Credential Issuer's identifier is used as the OAuth 2.0 Issuer value to obtain the Authorization Server metadata as per [RFC8414].
|
|
54
56
|
// authorization_servers?: string[]; // OPTIONAL. Array of strings that identify the OAuth 2.0 Authorization Servers (as defined in [RFC8414]) the Credential Issuer relies on for authorization. If this element is omitted, the entity providing the Credential Issuer is also acting as the AS, i.e. the Credential Issuer's identifier is used as the OAuth 2.0 Issuer value to obtain the Authorization Server metadata as per [RFC8414].
|
|
55
57
|
token_endpoint?: string;
|
|
58
|
+
notification_endpoint?: string;
|
|
56
59
|
display?: MetadataDisplay[]; // An array of objects, where each object contains display properties of a Credential Issuer for a certain language. Below is a non-exhaustive list of valid parameters that MAY be included:
|
|
57
60
|
credential_supplier_config?: CredentialSupplierConfig;
|
|
58
61
|
}
|
|
@@ -74,14 +77,15 @@ export interface CredentialSupportedBrief {
|
|
|
74
77
|
cryptographic_suites_supported?: string[]; // OPTIONAL. Array of case sensitive strings that identify the cryptographic suites that are supported for the cryptographic_binding_methods_supported
|
|
75
78
|
}
|
|
76
79
|
|
|
77
|
-
export type CommonCredentialSupported = CredentialSupportedBrief &
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
export type CommonCredentialSupported = CredentialSupportedBrief &
|
|
81
|
+
ExperimentalSubjectIssuance & {
|
|
82
|
+
format: OID4VCICredentialFormat | string; //REQUIRED. A JSON string identifying the format of this credential, e.g. jwt_vc_json or ldp_vc.
|
|
83
|
+
id?: string; // OPTIONAL. A JSON string identifying the respective object. The value MUST be unique across all credentials_supported entries in the Credential Issuer Metadata
|
|
84
|
+
display?: CredentialsSupportedDisplay[]; // OPTIONAL. An array of objects, where each object contains the display properties of the supported credential for a certain language
|
|
85
|
+
/**
|
|
86
|
+
* following properties are non-mso_mdoc specific and we might wanna rethink them when we're going to support mso_mdoc
|
|
87
|
+
*/
|
|
88
|
+
};
|
|
85
89
|
|
|
86
90
|
export interface CredentialSupportedJwtVcJsonLdAndLdpVc extends CommonCredentialSupported {
|
|
87
91
|
types: string[]; // REQUIRED. JSON array designating the types a certain credential type supports
|
|
@@ -167,7 +171,7 @@ export interface ErrorResponse extends Response {
|
|
|
167
171
|
|
|
168
172
|
export type UniformCredentialRequest = CredentialRequestV1_0_11;
|
|
169
173
|
|
|
170
|
-
export interface CommonCredentialRequest {
|
|
174
|
+
export interface CommonCredentialRequest extends ExperimentalSubjectIssuance {
|
|
171
175
|
format: OID4VCICredentialFormat /* | OID4VCICredentialFormat[];*/; // for now it seems only one is supported in the spec
|
|
172
176
|
proof?: ProofOfPossession;
|
|
173
177
|
}
|
|
@@ -189,7 +193,7 @@ export interface CredentialRequestSdJwtVc extends CommonCredentialRequest {
|
|
|
189
193
|
claims?: IssuerCredentialSubject;
|
|
190
194
|
}
|
|
191
195
|
|
|
192
|
-
export interface CommonCredentialResponse {
|
|
196
|
+
export interface CommonCredentialResponse extends ExperimentalSubjectIssuance {
|
|
193
197
|
format: string;
|
|
194
198
|
credential?: W3CVerifiableCredential;
|
|
195
199
|
acceptance_token?: string;
|
|
@@ -270,3 +274,23 @@ export interface GrantUrnIetf {
|
|
|
270
274
|
}
|
|
271
275
|
|
|
272
276
|
export const PRE_AUTH_CODE_LITERAL = 'pre-authorized_code';
|
|
277
|
+
|
|
278
|
+
export type NotificationEventType = 'credential_accepted' | 'credential_failure' | 'credential_deleted';
|
|
279
|
+
|
|
280
|
+
export interface NotificationRequest {
|
|
281
|
+
notification_id: string;
|
|
282
|
+
event: NotificationEventType | string;
|
|
283
|
+
event_description?: string;
|
|
284
|
+
credential?: any; // Experimental support to have a wallet sign a credential. Not part of the spec
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export type NotificationError = 'invalid_notification_id' | 'invalid_notification_request';
|
|
288
|
+
|
|
289
|
+
export type NotificationResult = {
|
|
290
|
+
error: boolean;
|
|
291
|
+
response?: NotificationErrorResponse;
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
export interface NotificationErrorResponse {
|
|
295
|
+
error: NotificationError | string;
|
|
296
|
+
}
|
|
@@ -13,6 +13,7 @@ export interface CredentialOfferSession extends StateType {
|
|
|
13
13
|
status: IssueStatus;
|
|
14
14
|
error?: string;
|
|
15
15
|
lastUpdatedAt: number;
|
|
16
|
+
notification_id: string;
|
|
16
17
|
issuerState?: string; //todo: Probably good to hash it here, since it would come in from the client and we could match the hash and thus use the client value
|
|
17
18
|
preAuthorizedCode?: string; //todo: Probably good to hash it here, since it would come in from the client and we could match the hash and thus use the client value
|
|
18
19
|
}
|
package/lib/types/index.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Loggers, LogMethod } from '@sphereon/ssi-types';
|
|
2
|
+
|
|
1
3
|
export * from './Authorization.types';
|
|
2
4
|
export * from './CredentialIssuance.types';
|
|
3
5
|
export * from './Generic.types';
|
|
@@ -10,3 +12,8 @@ export * from './OpenID4VCIVersions.types';
|
|
|
10
12
|
export * from './StateManager.types';
|
|
11
13
|
export * from './Token.types';
|
|
12
14
|
export * from './QRCode.types';
|
|
15
|
+
|
|
16
|
+
export const VCI_LOGGERS = Loggers.default();
|
|
17
|
+
export const VCI_LOG_COMMON = VCI_LOGGERS.options('sphereon:oid4vci:common', { methods: [LogMethod.EVENT, LogMethod.DEBUG_PKG] }).get(
|
|
18
|
+
'sphereon:oid4vci:common',
|
|
19
|
+
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.4-next.14+68c89f4",
|
|
4
4
|
"description": "OpenID 4 Verifiable Credential Issuance Common Types",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"build:clean": "tsc --build --clean && tsc --build"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@sphereon/ssi-types": "
|
|
13
|
+
"@sphereon/ssi-types": "0.24.1-unstable.112",
|
|
14
14
|
"cross-fetch": "^3.1.8",
|
|
15
15
|
"jwt-decode": "^3.1.2",
|
|
16
16
|
"sha.js": "^2.4.11",
|
|
@@ -21,14 +21,6 @@
|
|
|
21
21
|
"@types/sha.js": "^2.4.4",
|
|
22
22
|
"typescript": "5.4.5"
|
|
23
23
|
},
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"msrcrypto": "^1.5.8"
|
|
26
|
-
},
|
|
27
|
-
"peerDependenciesMeta": {
|
|
28
|
-
"msrcrypto": {
|
|
29
|
-
"optional": true
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
24
|
"engines": {
|
|
33
25
|
"node": ">=18"
|
|
34
26
|
},
|
|
@@ -57,5 +49,5 @@
|
|
|
57
49
|
"publishConfig": {
|
|
58
50
|
"access": "public"
|
|
59
51
|
},
|
|
60
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "68c89f45e627577608d1b10ab260f6810a46fe88"
|
|
61
53
|
}
|