@sphereon/ssi-sdk.data-store 0.29.1-unstable.171 → 0.29.1-unstable.172
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/types/digitalCredential/digitalCredential.d.ts +1 -1
- package/dist/types/digitalCredential/digitalCredential.d.ts.map +1 -1
- package/dist/types/digitalCredential/digitalCredential.js +3 -3
- package/dist/types/digitalCredential/digitalCredential.js.map +1 -1
- package/dist/utils/digitalCredential/MappingUtils.d.ts +3 -0
- package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -1
- package/dist/utils/digitalCredential/MappingUtils.js +14 -3
- package/dist/utils/digitalCredential/MappingUtils.js.map +1 -1
- package/package.json +6 -5
- package/src/types/digitalCredential/digitalCredential.ts +3 -3
- package/src/utils/digitalCredential/MappingUtils.ts +21 -5
|
@@ -31,7 +31,7 @@ export declare enum CredentialDocumentFormat {
|
|
|
31
31
|
JSON_LD = "JSON_LD",
|
|
32
32
|
JWT = "JWT",
|
|
33
33
|
SD_JWT = "SD_JWT",
|
|
34
|
-
|
|
34
|
+
MSO_MDOC = "MSO_MDOC"
|
|
35
35
|
}
|
|
36
36
|
export declare namespace CredentialDocumentFormat {
|
|
37
37
|
function fromSpecValue(credentialFormat: string): CredentialDocumentFormat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digitalCredential.d.ts","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,wBAAwB,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,qBAAqB,EAAE,yBAAyB,CAAA;IAChD,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,IAAI,CAAA;IACnB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,
|
|
1
|
+
{"version":3,"file":"digitalCredential.d.ts","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAA;AAEzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,wBAAwB,CAAA;IACxC,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,qBAAqB,EAAE,yBAAyB,CAAA;IAChD,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,aAAa,EAAE,IAAI,CAAA;IACnB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;CACjB,CAAA;AAED,oBAAY,YAAY;IACtB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,CAAC,MAAM;IACP,CAAC,MAAM;CACR;AAED,oBAAY,wBAAwB;IAClC,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,yBAAiB,wBAAwB,CAAC;IACxC,SAAgB,aAAa,CAAC,gBAAgB,EAAE,MAAM,4BAarD;IAED,SAAgB,WAAW,CAAC,cAAc,EAAE,wBAAwB,EAAE,YAAY,EAAE,YAAY,kFAW/F;CACF;AAED,oBAAY,yBAAyB;IACnC,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB;IAC7B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACpB"}
|
|
@@ -13,7 +13,7 @@ var CredentialDocumentFormat;
|
|
|
13
13
|
CredentialDocumentFormat["JSON_LD"] = "JSON_LD";
|
|
14
14
|
CredentialDocumentFormat["JWT"] = "JWT";
|
|
15
15
|
CredentialDocumentFormat["SD_JWT"] = "SD_JWT";
|
|
16
|
-
CredentialDocumentFormat["
|
|
16
|
+
CredentialDocumentFormat["MSO_MDOC"] = "MSO_MDOC";
|
|
17
17
|
})(CredentialDocumentFormat || (exports.CredentialDocumentFormat = CredentialDocumentFormat = {}));
|
|
18
18
|
(function (CredentialDocumentFormat) {
|
|
19
19
|
function fromSpecValue(credentialFormat) {
|
|
@@ -25,7 +25,7 @@ var CredentialDocumentFormat;
|
|
|
25
25
|
return CredentialDocumentFormat.JSON_LD;
|
|
26
26
|
}
|
|
27
27
|
else if (format.includes('mso') || credentialFormat.includes('mdoc')) {
|
|
28
|
-
return CredentialDocumentFormat.
|
|
28
|
+
return CredentialDocumentFormat.MSO_MDOC;
|
|
29
29
|
}
|
|
30
30
|
else if (format.includes('jwt_')) {
|
|
31
31
|
return CredentialDocumentFormat.JWT;
|
|
@@ -39,7 +39,7 @@ var CredentialDocumentFormat;
|
|
|
39
39
|
switch (documentFormat) {
|
|
40
40
|
case CredentialDocumentFormat.SD_JWT:
|
|
41
41
|
return 'vc+sd-jwt';
|
|
42
|
-
case CredentialDocumentFormat.
|
|
42
|
+
case CredentialDocumentFormat.MSO_MDOC:
|
|
43
43
|
return 'mso_mdoc';
|
|
44
44
|
case CredentialDocumentFormat.JSON_LD:
|
|
45
45
|
return documentType === DocumentType.C || documentType === DocumentType.VC ? 'ldp_vc' : 'ldp_vp';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digitalCredential.js","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":";;;AAyBA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yBAAS,CAAA;IACT,yBAAS,CAAA;IACT,uBAAO,CAAA;IACP,uBAAO,CAAA;AACT,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,uCAAW,CAAA;IACX,6CAAiB,CAAA;IACjB,
|
|
1
|
+
{"version":3,"file":"digitalCredential.js","sourceRoot":"","sources":["../../../src/types/digitalCredential/digitalCredential.ts"],"names":[],"mappings":";;;AAyBA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,yBAAS,CAAA;IACT,yBAAS,CAAA;IACT,uBAAO,CAAA;IACP,uBAAO,CAAA;AACT,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,wBAKX;AALD,WAAY,wBAAwB;IAClC,+CAAmB,CAAA;IACnB,uCAAW,CAAA;IACX,6CAAiB,CAAA;IACjB,iDAAqB,CAAA;AACvB,CAAC,EALW,wBAAwB,wCAAxB,wBAAwB,QAKnC;AAED,WAAiB,wBAAwB;IACvC,SAAgB,aAAa,CAAC,gBAAwB;QACpD,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,wBAAwB,CAAC,MAAM,CAAA;QACxC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,OAAO,wBAAwB,CAAC,OAAO,CAAA;QACzC,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvE,OAAO,wBAAwB,CAAC,QAAQ,CAAA;QAC1C,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,OAAO,wBAAwB,CAAC,GAAG,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,wBAAwB,MAAM,kBAAkB,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IAbe,sCAAa,gBAa5B,CAAA;IAED,SAAgB,WAAW,CAAC,cAAwC,EAAE,YAA0B;QAC9F,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,wBAAwB,CAAC,MAAM;gBAClC,OAAO,WAAW,CAAA;YACpB,KAAK,wBAAwB,CAAC,QAAQ;gBACpC,OAAO,UAAU,CAAA;YACnB,KAAK,wBAAwB,CAAC,OAAO;gBACnC,OAAO,YAAY,KAAK,YAAY,CAAC,CAAC,IAAI,YAAY,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAA;YAClG,KAAK,wBAAwB,CAAC,GAAG;gBAC/B,OAAO,YAAY,KAAK,YAAY,CAAC,CAAC,IAAI,YAAY,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAA;QAC9G,CAAC;IACH,CAAC;IAXe,oCAAW,cAW1B,CAAA;AACH,CAAC,EA5BgB,wBAAwB,wCAAxB,wBAAwB,QA4BxC;AAED,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,wCAAW,CAAA;IACX,gDAAmB,CAAA;IACnB,wCAAW,CAAA;AACb,CAAC,EAJW,yBAAyB,yCAAzB,yBAAyB,QAIpC;AAED,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mCAAiB,CAAA;IACjB,uCAAqB,CAAA;IACrB,mCAAiB,CAAA;AACnB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,0CAAmB,CAAA;IACnB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;AACrB,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { OriginalVerifiableCredential, OriginalVerifiablePresentation } from '@sphereon/ssi-types';
|
|
1
2
|
import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity';
|
|
2
3
|
import { AddCredentialArgs, DigitalCredential, NonPersistedDigitalCredential } from '../../types';
|
|
4
|
+
export declare function isHex(input: string): boolean;
|
|
5
|
+
export declare function parseRawDocument(raw: string): OriginalVerifiableCredential | OriginalVerifiablePresentation;
|
|
3
6
|
export declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddCredentialArgs) => NonPersistedDigitalCredential;
|
|
4
7
|
export declare const digitalCredentialFrom: (credentialEntity: DigitalCredentialEntity) => DigitalCredential;
|
|
5
8
|
export declare const digitalCredentialsFrom: (credentialEntities: Array<DigitalCredentialEntity>) => DigitalCredential[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,4BAA4B,EAC5B,8BAA8B,EAE/B,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAA;AAClG,OAAO,EACL,iBAAiB,EAEjB,iBAAiB,EAEjB,6BAA6B,EAC9B,MAAM,aAAa,CAAA;AAoBpB,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,WAElC;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,4BAA4B,GAAG,8BAA8B,CAa3G;AAyCD,eAAO,MAAM,8CAA8C,sBAAuB,iBAAiB,KAAG,6BA0BrG,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAAsB,uBAAuB,KAAG,iBAIjF,CAAA;AAED,eAAO,MAAM,sBAAsB,uBAAwB,MAAM,uBAAuB,CAAC,KAAG,iBAAiB,EAE5G,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.digitalCredentialsFrom = exports.digitalCredentialFrom = exports.nonPersistedDigitalCredentialEntityFromAddArgs = void 0;
|
|
3
|
+
exports.digitalCredentialsFrom = exports.digitalCredentialFrom = exports.nonPersistedDigitalCredentialEntityFromAddArgs = exports.parseRawDocument = exports.isHex = void 0;
|
|
4
4
|
const ssi_types_1 = require("@sphereon/ssi-types");
|
|
5
5
|
const utils_1 = require("@veramo/utils");
|
|
6
6
|
const types_1 = require("../../types");
|
|
@@ -10,17 +10,25 @@ function determineDocumentType(raw) {
|
|
|
10
10
|
throw new Error(`Couldn't parse the credential: ${raw}`);
|
|
11
11
|
}
|
|
12
12
|
const hasProof = ssi_types_1.CredentialMapper.hasProof(rawDocument);
|
|
13
|
-
const isCredential = ssi_types_1.CredentialMapper.isCredential(rawDocument);
|
|
13
|
+
const isCredential = isHex(raw) || ssi_types_1.CredentialMapper.isCredential(rawDocument);
|
|
14
14
|
const isPresentation = ssi_types_1.CredentialMapper.isPresentation(rawDocument);
|
|
15
15
|
if (isCredential) {
|
|
16
|
-
return hasProof ? types_1.DocumentType.VC : types_1.DocumentType.C;
|
|
16
|
+
return hasProof || isHex(raw) ? types_1.DocumentType.VC : types_1.DocumentType.C;
|
|
17
17
|
}
|
|
18
18
|
else if (isPresentation) {
|
|
19
19
|
return hasProof ? types_1.DocumentType.VP : types_1.DocumentType.P;
|
|
20
20
|
}
|
|
21
21
|
throw new Error(`Couldn't determine the type of the credential: ${raw}`);
|
|
22
22
|
}
|
|
23
|
+
function isHex(input) {
|
|
24
|
+
return input.match(/^([0-9A-Fa-f])+$/g) !== null;
|
|
25
|
+
}
|
|
26
|
+
exports.isHex = isHex;
|
|
23
27
|
function parseRawDocument(raw) {
|
|
28
|
+
if (isHex(raw)) {
|
|
29
|
+
// mso_mdoc
|
|
30
|
+
return raw;
|
|
31
|
+
}
|
|
24
32
|
if (ssi_types_1.CredentialMapper.isJwtEncoded(raw) || ssi_types_1.CredentialMapper.isSdJwtEncoded(raw)) {
|
|
25
33
|
return raw;
|
|
26
34
|
}
|
|
@@ -31,6 +39,7 @@ function parseRawDocument(raw) {
|
|
|
31
39
|
throw new Error(`Can't parse the raw credential: ${raw}`);
|
|
32
40
|
}
|
|
33
41
|
}
|
|
42
|
+
exports.parseRawDocument = parseRawDocument;
|
|
34
43
|
function determineCredentialDocumentFormat(documentFormat) {
|
|
35
44
|
switch (documentFormat) {
|
|
36
45
|
case 1 /* DocumentFormat.JSONLD */:
|
|
@@ -39,6 +48,8 @@ function determineCredentialDocumentFormat(documentFormat) {
|
|
|
39
48
|
return types_1.CredentialDocumentFormat.JWT;
|
|
40
49
|
case 2 /* DocumentFormat.SD_JWT_VC */:
|
|
41
50
|
return types_1.CredentialDocumentFormat.SD_JWT;
|
|
51
|
+
case 4 /* DocumentFormat.MSO_MDOC */:
|
|
52
|
+
return types_1.CredentialDocumentFormat.MSO_MDOC;
|
|
42
53
|
default:
|
|
43
54
|
throw new Error(`Not supported document format: ${documentFormat}`);
|
|
44
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":";;;AAAA,mDAQ4B;AAC5B,yCAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.data-store",
|
|
3
|
-
"version": "0.29.1-unstable.
|
|
3
|
+
"version": "0.29.1-unstable.172+4bb08194",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -14,12 +14,13 @@
|
|
|
14
14
|
"typeorm-postgres:migration:run": "pnpm run typeorm -- migration:run -c migration-postgres"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
+
"@sphereon/kmp-mdl-mdoc": "^0.2.0-SNAPSHOT.3",
|
|
17
18
|
"@sphereon/pex": "^4.0.1",
|
|
18
19
|
"@sphereon/ssi-sdk-ext.did-utils": "0.24.1-next.105",
|
|
19
20
|
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.24.1-next.105",
|
|
20
|
-
"@sphereon/ssi-sdk.agent-config": "0.29.1-unstable.
|
|
21
|
-
"@sphereon/ssi-sdk.core": "0.29.1-unstable.
|
|
22
|
-
"@sphereon/ssi-types": "0.29.1-unstable.
|
|
21
|
+
"@sphereon/ssi-sdk.agent-config": "0.29.1-unstable.172+4bb08194",
|
|
22
|
+
"@sphereon/ssi-sdk.core": "0.29.1-unstable.172+4bb08194",
|
|
23
|
+
"@sphereon/ssi-types": "0.29.1-unstable.172+4bb08194",
|
|
23
24
|
"@veramo/core": "4.2.0",
|
|
24
25
|
"@veramo/utils": "4.2.0",
|
|
25
26
|
"blakejs": "^1.2.1",
|
|
@@ -50,5 +51,5 @@
|
|
|
50
51
|
"PostgreSQL",
|
|
51
52
|
"Contact Store"
|
|
52
53
|
],
|
|
53
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "4bb0819403fbbaa2b71360d46c88354b4718d825"
|
|
54
55
|
}
|
|
@@ -34,7 +34,7 @@ export enum CredentialDocumentFormat {
|
|
|
34
34
|
JSON_LD = 'JSON_LD',
|
|
35
35
|
JWT = 'JWT',
|
|
36
36
|
SD_JWT = 'SD_JWT',
|
|
37
|
-
|
|
37
|
+
MSO_MDOC = 'MSO_MDOC',
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
export namespace CredentialDocumentFormat {
|
|
@@ -45,7 +45,7 @@ export namespace CredentialDocumentFormat {
|
|
|
45
45
|
} else if (format.includes('ldp')) {
|
|
46
46
|
return CredentialDocumentFormat.JSON_LD
|
|
47
47
|
} else if (format.includes('mso') || credentialFormat.includes('mdoc')) {
|
|
48
|
-
return CredentialDocumentFormat.
|
|
48
|
+
return CredentialDocumentFormat.MSO_MDOC
|
|
49
49
|
} else if (format.includes('jwt_')) {
|
|
50
50
|
return CredentialDocumentFormat.JWT
|
|
51
51
|
} else {
|
|
@@ -57,7 +57,7 @@ export namespace CredentialDocumentFormat {
|
|
|
57
57
|
switch (documentFormat) {
|
|
58
58
|
case CredentialDocumentFormat.SD_JWT:
|
|
59
59
|
return 'vc+sd-jwt'
|
|
60
|
-
case CredentialDocumentFormat.
|
|
60
|
+
case CredentialDocumentFormat.MSO_MDOC:
|
|
61
61
|
return 'mso_mdoc'
|
|
62
62
|
case CredentialDocumentFormat.JSON_LD:
|
|
63
63
|
return documentType === DocumentType.C || documentType === DocumentType.VC ? 'ldp_vc' : 'ldp_vp'
|
|
@@ -5,11 +5,17 @@ import {
|
|
|
5
5
|
IVerifiablePresentation,
|
|
6
6
|
OriginalVerifiableCredential,
|
|
7
7
|
OriginalVerifiablePresentation,
|
|
8
|
-
SdJwtDecodedVerifiableCredentialPayload
|
|
8
|
+
SdJwtDecodedVerifiableCredentialPayload
|
|
9
9
|
} from '@sphereon/ssi-types'
|
|
10
10
|
import { computeEntryHash } from '@veramo/utils'
|
|
11
11
|
import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity'
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
AddCredentialArgs,
|
|
14
|
+
CredentialDocumentFormat,
|
|
15
|
+
DigitalCredential,
|
|
16
|
+
DocumentType,
|
|
17
|
+
NonPersistedDigitalCredential
|
|
18
|
+
} from '../../types'
|
|
13
19
|
|
|
14
20
|
function determineDocumentType(raw: string): DocumentType {
|
|
15
21
|
const rawDocument = parseRawDocument(raw)
|
|
@@ -18,18 +24,26 @@ function determineDocumentType(raw: string): DocumentType {
|
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
const hasProof = CredentialMapper.hasProof(rawDocument)
|
|
21
|
-
const isCredential = CredentialMapper.isCredential(rawDocument)
|
|
27
|
+
const isCredential = isHex(raw) || CredentialMapper.isCredential(rawDocument)
|
|
22
28
|
const isPresentation = CredentialMapper.isPresentation(rawDocument)
|
|
23
29
|
|
|
24
30
|
if (isCredential) {
|
|
25
|
-
return hasProof ? DocumentType.VC : DocumentType.C
|
|
31
|
+
return hasProof || isHex(raw) ? DocumentType.VC : DocumentType.C
|
|
26
32
|
} else if (isPresentation) {
|
|
27
33
|
return hasProof ? DocumentType.VP : DocumentType.P
|
|
28
34
|
}
|
|
29
35
|
throw new Error(`Couldn't determine the type of the credential: ${raw}`)
|
|
30
36
|
}
|
|
31
37
|
|
|
32
|
-
function
|
|
38
|
+
export function isHex(input: string) {
|
|
39
|
+
return input.match(/^([0-9A-Fa-f])+$/g) !== null
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function parseRawDocument(raw: string): OriginalVerifiableCredential | OriginalVerifiablePresentation {
|
|
43
|
+
if (isHex(raw)) {
|
|
44
|
+
// mso_mdoc
|
|
45
|
+
return raw
|
|
46
|
+
}
|
|
33
47
|
if (CredentialMapper.isJwtEncoded(raw) || CredentialMapper.isSdJwtEncoded(raw)) {
|
|
34
48
|
return raw
|
|
35
49
|
}
|
|
@@ -48,6 +62,8 @@ function determineCredentialDocumentFormat(documentFormat: DocumentFormat): Cred
|
|
|
48
62
|
return CredentialDocumentFormat.JWT
|
|
49
63
|
case DocumentFormat.SD_JWT_VC:
|
|
50
64
|
return CredentialDocumentFormat.SD_JWT
|
|
65
|
+
case DocumentFormat.MSO_MDOC:
|
|
66
|
+
return CredentialDocumentFormat.MSO_MDOC
|
|
51
67
|
default:
|
|
52
68
|
throw new Error(`Not supported document format: ${documentFormat}`)
|
|
53
69
|
}
|