@cef-ebsi/cli 1.6.0 → 1.7.0

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.
@@ -4,4 +4,5 @@ export * from "./http.js";
4
4
  export * from "./jsonrpc.js";
5
5
  export * from "./print.js";
6
6
  export * from "./utils.js";
7
+ export * from "./vcdm.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { decodeJWT } from "did-jwt";
2
+ // Helper function to estimate version for a single credential
3
+ export function estimateSingleVcdmVersion(verifiableCredential) {
4
+ const decodedVc = decodeJWT(verifiableCredential);
5
+ if (!decodedVc.payload?.vc?.["@context"]) {
6
+ throw new Error(`Invalid credential ${verifiableCredential} or missing @context`);
7
+ }
8
+ const { "@context": context } = decodedVc.payload.vc;
9
+ if (context.includes("https://www.w3.org/2018/credentials/v1")) {
10
+ return "1.1";
11
+ }
12
+ else if (context.includes("https://www.w3.org/ns/credentials/v2")) {
13
+ return "2.0";
14
+ }
15
+ throw new Error(`Invalid VCDM version ${JSON.stringify(context)} in credential ${verifiableCredential}`);
16
+ }
17
+ // Estimate VCDM version for a list of credentials
18
+ export function estimateVcdmVersion(vc) {
19
+ if (!vc || (Array.isArray(vc) && vc.length === 0)) {
20
+ // default to vcdm 1.1
21
+ return "1.1";
22
+ }
23
+ // If it's an array, check all versions
24
+ if (!Array.isArray(vc)) {
25
+ return estimateSingleVcdmVersion(vc);
26
+ }
27
+ const versions = vc.map((credential) => estimateSingleVcdmVersion(credential));
28
+ const uniqueVersions = [...new Set(versions)];
29
+ if (uniqueVersions.length === 1) {
30
+ return uniqueVersions[0];
31
+ }
32
+ throw new Error(`Mixed VCDM versions detected: ${uniqueVersions.join(", ")}. All credentials must use the same VCDM version.`);
33
+ }
34
+ //# sourceMappingURL=vcdm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcdm.js","sourceRoot":"","sources":["../../src/utils/vcdm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,8DAA8D;AAC9D,MAAM,UAAU,yBAAyB,CACvC,oBAA4B;IAE5B,MAAM,SAAS,GAAG,SAAS,CAAC,oBAAoB,CAI/C,CAAC;IAEF,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,sBAAsB,oBAAoB,sBAAsB,CACjE,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IAErD,IAAI,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,oBAAoB,EAAE,CACxF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,mBAAmB,CAAC,EAAqB;IACvD,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClD,sBAAsB;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,OAAO,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACrC,yBAAyB,CAAC,UAAU,CAAC,CACtC,CAAC;IACF,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,IAAI,KAAK,CACb,iCAAiC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,mDAAmD,CAC9G,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cef-ebsi/cli",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "EBSI Command Line Interface",
5
5
  "license": "EUPL-1.2",
6
6
  "type": "module",