@sphereon/oid4vc-common 0.16.1-next.50 → 0.16.1-next.66

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.
@@ -13,4 +13,14 @@ export declare function getNowSkewed(now?: number, skewTime?: number): {
13
13
  * Returns the current unix timestamp in seconds.
14
14
  */
15
15
  export declare function epochTime(): number;
16
+ export declare const BASE64_URL_REGEX: RegExp;
17
+ export declare const isJws: (jws: string) => boolean;
18
+ export declare const isJwe: (jwe: string) => boolean;
19
+ export declare const decodeProtectedHeader: (jwt: string) => import("jwt-decode").JwtHeader;
20
+ export declare const decodeJwt: (jwt: string) => JwtPayload;
21
+ export declare const checkExp: (input: {
22
+ exp: number;
23
+ now?: number;
24
+ clockSkew?: number;
25
+ }) => boolean;
16
26
  //# sourceMappingURL=jwtUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwtUtils.d.ts","sourceRoot":"","sources":["../../lib/jwt/jwtUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,MAAM,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAEzF,wBAAgB,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,EAAE,MAAM;;;EAQ7E;AAWD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;;;EAQ3D;AAED;;GAEG;AACH,wBAAgB,SAAS,WAExB"}
1
+ {"version":3,"file":"jwtUtils.d.ts","sourceRoot":"","sources":["../../lib/jwt/jwtUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,MAAM,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,mBAAmB,GAAG,QAAQ,CAAC;AAEzF,wBAAgB,QAAQ,CAAC,MAAM,GAAG,SAAS,EAAE,OAAO,GAAG,UAAU,EAAE,GAAG,EAAE,MAAM;;;EAQ7E;AAWD,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;;;EAQ3D;AAED;;GAEG;AACH,wBAAgB,SAAS,WAExB;AAED,eAAO,MAAM,gBAAgB,QAA2E,CAAC;AAEzG,eAAO,MAAM,KAAK,QAAS,MAAM,YAGhC,CAAC;AACF,eAAO,MAAM,KAAK,QAAS,MAAM,YAGhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAS,MAAM,mCAEhD,CAAC;AAEF,eAAO,MAAM,SAAS,QAAS,MAAM,KAAG,UAEvC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,YAGA,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.epochTime = exports.getNowSkewed = exports.parseJWT = void 0;
3
+ exports.checkExp = exports.decodeJwt = exports.decodeProtectedHeader = exports.isJwe = exports.isJws = exports.BASE64_URL_REGEX = exports.epochTime = exports.getNowSkewed = exports.parseJWT = void 0;
4
4
  const jwt_decode_1 = require("jwt-decode");
5
5
  function parseJWT(jwt) {
6
6
  const header = (0, jwt_decode_1.jwtDecode)(jwt, { header: true });
@@ -35,4 +35,28 @@ function epochTime() {
35
35
  return Math.floor(Date.now() / 1000);
36
36
  }
37
37
  exports.epochTime = epochTime;
38
+ exports.BASE64_URL_REGEX = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
39
+ const isJws = (jws) => {
40
+ const jwsParts = jws.split('.');
41
+ return jwsParts.length === 3 && jwsParts.every((part) => exports.BASE64_URL_REGEX.test(part));
42
+ };
43
+ exports.isJws = isJws;
44
+ const isJwe = (jwe) => {
45
+ const jweParts = jwe.split('.');
46
+ return jweParts.length === 5 && jweParts.every((part) => exports.BASE64_URL_REGEX.test(part));
47
+ };
48
+ exports.isJwe = isJwe;
49
+ const decodeProtectedHeader = (jwt) => {
50
+ return (0, jwt_decode_1.jwtDecode)(jwt, { header: true });
51
+ };
52
+ exports.decodeProtectedHeader = decodeProtectedHeader;
53
+ const decodeJwt = (jwt) => {
54
+ return (0, jwt_decode_1.jwtDecode)(jwt, { header: false });
55
+ };
56
+ exports.decodeJwt = decodeJwt;
57
+ const checkExp = (input) => {
58
+ const { exp, now, clockSkew } = input;
59
+ return exp < (now !== null && now !== void 0 ? now : Date.now() / 1000) - (clockSkew !== null && clockSkew !== void 0 ? clockSkew : 120);
60
+ };
61
+ exports.checkExp = checkExp;
38
62
  //# sourceMappingURL=jwtUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwtUtils.js","sourceRoot":"","sources":["../../lib/jwt/jwtUtils.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAQvC,SAAgB,QAAQ,CAA2C,GAAW;IAC5E,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAA,sBAAS,EAAU,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AARD,4BAQC;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAgB,YAAY,CAAC,GAAY,EAAE,QAAiB;IAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAE1D,OAAO;QACL,aAAa,EAAE,IAAI,GAAG,SAAS;QAC/B,eAAe,EAAE,IAAI,GAAG,SAAS;KAClC,CAAC;AACJ,CAAC;AARD,oCAQC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"jwtUtils.js","sourceRoot":"","sources":["../../lib/jwt/jwtUtils.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAQvC,SAAgB,QAAQ,CAA2C,GAAW;IAC5E,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAA,sBAAS,EAAU,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AARD,4BAQC;AAED;;;;;;GAMG;AACH,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,SAAgB,YAAY,CAAC,GAAY,EAAE,QAAiB;IAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAE1D,OAAO;QACL,aAAa,EAAE,IAAI,GAAG,SAAS;QAC/B,eAAe,EAAE,IAAI,GAAG,SAAS;KAClC,CAAC;AACJ,CAAC;AARD,oCAQC;AAED;;GAEG;AACH,SAAgB,SAAS;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAFD,8BAEC;AAEY,QAAA,gBAAgB,GAAG,wEAAwE,CAAC;AAElG,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AACK,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,EAAE;IACnC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACxF,CAAC,CAAC;AAHW,QAAA,KAAK,SAGhB;AAEK,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,EAAE;IACnD,OAAO,IAAA,sBAAS,EAAC,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,qBAAqB,yBAEhC;AAEK,MAAM,SAAS,GAAG,CAAC,GAAW,EAAc,EAAE;IACnD,OAAO,IAAA,sBAAS,EAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,QAAQ,GAAG,CAAC,KAIxB,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACtC,OAAO,GAAG,GAAG,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,GAAG,CAAC,CAAC;AAC/D,CAAC,CAAC;AAPW,QAAA,QAAQ,YAOnB"}
@@ -41,3 +41,31 @@ export function getNowSkewed(now?: number, skewTime?: number) {
41
41
  export function epochTime() {
42
42
  return Math.floor(Date.now() / 1000);
43
43
  }
44
+
45
+ export const BASE64_URL_REGEX = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;
46
+
47
+ export const isJws = (jws: string) => {
48
+ const jwsParts = jws.split('.');
49
+ return jwsParts.length === 3 && jwsParts.every((part) => BASE64_URL_REGEX.test(part));
50
+ };
51
+ export const isJwe = (jwe: string) => {
52
+ const jweParts = jwe.split('.');
53
+ return jweParts.length === 5 && jweParts.every((part) => BASE64_URL_REGEX.test(part));
54
+ };
55
+
56
+ export const decodeProtectedHeader = (jwt: string) => {
57
+ return jwtDecode(jwt, { header: true });
58
+ };
59
+
60
+ export const decodeJwt = (jwt: string): JwtPayload => {
61
+ return jwtDecode(jwt, { header: false });
62
+ };
63
+
64
+ export const checkExp = (input: {
65
+ exp: number;
66
+ now?: number; // The number of milliseconds elapsed since midnight, January 1, 1970 Universal Coordinated Time (UTC).
67
+ clockSkew?: number;
68
+ }) => {
69
+ const { exp, now, clockSkew } = input;
70
+ return exp < (now ?? Date.now() / 1000) - (clockSkew ?? 120);
71
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/oid4vc-common",
3
- "version": "0.16.1-next.50+5ea7ad2",
3
+ "version": "0.16.1-next.66+f4f0362",
4
4
  "description": "OpenID 4 Verifiable Credentials Common",
5
5
  "source": "lib/index.ts",
6
6
  "main": "dist/index.js",
@@ -52,5 +52,5 @@
52
52
  "publishConfig": {
53
53
  "access": "public"
54
54
  },
55
- "gitHead": "5ea7ad2b66385f5de13f79e0fee138f2c68e0cab"
55
+ "gitHead": "f4f0362304526923e3f530bb9cb57782e30da377"
56
56
  }