@lit-protocol/vincent-app-sdk 0.0.7-mma → 0.0.8-mma

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.
Files changed (84) hide show
  1. package/README.md +1 -1
  2. package/dist/README.md +1 -1
  3. package/dist/package.json +1 -2
  4. package/dist/src/expressMiddleware/express.js +10 -1
  5. package/dist/src/expressMiddleware/express.js.map +1 -1
  6. package/dist/src/expressMiddleware/types.d.ts +2 -2
  7. package/dist/src/expressMiddleware/types.d.ts.map +1 -1
  8. package/dist/src/jwt/accessors.d.ts +36 -3
  9. package/dist/src/jwt/accessors.d.ts.map +1 -1
  10. package/dist/src/jwt/accessors.js +60 -2
  11. package/dist/src/jwt/accessors.js.map +1 -1
  12. package/dist/src/jwt/constants.d.ts +33 -0
  13. package/dist/src/jwt/constants.d.ts.map +1 -0
  14. package/dist/src/jwt/constants.js +36 -0
  15. package/dist/src/jwt/constants.js.map +1 -0
  16. package/dist/src/jwt/core/create.d.ts +14 -19
  17. package/dist/src/jwt/core/create.d.ts.map +1 -1
  18. package/dist/src/jwt/core/create.js +78 -78
  19. package/dist/src/jwt/core/create.js.map +1 -1
  20. package/dist/src/jwt/core/decode.d.ts +3 -0
  21. package/dist/src/jwt/core/decode.d.ts.map +1 -0
  22. package/dist/src/jwt/core/decode.js +27 -0
  23. package/dist/src/jwt/core/decode.js.map +1 -0
  24. package/dist/src/jwt/core/isExpired.d.ts +3 -3
  25. package/dist/src/jwt/core/isExpired.d.ts.map +1 -1
  26. package/dist/src/jwt/core/isExpired.js +1 -1
  27. package/dist/src/jwt/core/isExpired.js.map +1 -1
  28. package/dist/src/jwt/core/utils/base64.d.ts +1 -0
  29. package/dist/src/jwt/core/utils/base64.d.ts.map +1 -1
  30. package/dist/src/jwt/core/utils/base64.js +1 -0
  31. package/dist/src/jwt/core/utils/base64.js.map +1 -1
  32. package/dist/src/jwt/core/utils/decodeJWTStr.d.ts +3 -0
  33. package/dist/src/jwt/core/utils/decodeJWTStr.d.ts.map +1 -0
  34. package/dist/src/jwt/core/utils/decodeJWTStr.js +21 -0
  35. package/dist/src/jwt/core/utils/decodeJWTStr.js.map +1 -0
  36. package/dist/src/jwt/core/utils/index.d.ts +2 -2
  37. package/dist/src/jwt/core/utils/index.d.ts.map +1 -1
  38. package/dist/src/jwt/core/utils/index.js +6 -5
  39. package/dist/src/jwt/core/utils/index.js.map +1 -1
  40. package/dist/src/jwt/core/utils/validateJWTTime.js +3 -3
  41. package/dist/src/jwt/core/utils/validateJWTTime.js.map +1 -1
  42. package/dist/src/jwt/core/utils/verifyES256KSignature.d.ts +5 -0
  43. package/dist/src/jwt/core/utils/verifyES256KSignature.d.ts.map +1 -0
  44. package/dist/src/jwt/core/utils/verifyES256KSignature.js +33 -0
  45. package/dist/src/jwt/core/utils/verifyES256KSignature.js.map +1 -0
  46. package/dist/src/jwt/core/verify.d.ts +27 -0
  47. package/dist/src/jwt/core/verify.d.ts.map +1 -0
  48. package/dist/src/jwt/core/verify.js +84 -0
  49. package/dist/src/jwt/core/verify.js.map +1 -0
  50. package/dist/src/jwt/index.d.ts +7 -7
  51. package/dist/src/jwt/index.d.ts.map +1 -1
  52. package/dist/src/jwt/index.js +20 -10
  53. package/dist/src/jwt/index.js.map +1 -1
  54. package/dist/src/jwt/typeGuards.d.ts +28 -11
  55. package/dist/src/jwt/typeGuards.d.ts.map +1 -1
  56. package/dist/src/jwt/typeGuards.js +51 -20
  57. package/dist/src/jwt/typeGuards.js.map +1 -1
  58. package/dist/src/jwt/types.d.ts +123 -49
  59. package/dist/src/jwt/types.d.ts.map +1 -1
  60. package/dist/src/utils/delegation.js +2 -2
  61. package/dist/src/utils/delegation.js.map +1 -1
  62. package/dist/src/utils/types.d.ts +1 -4
  63. package/dist/src/utils/types.d.ts.map +1 -1
  64. package/dist/src/webAuthClient/app.js +1 -1
  65. package/dist/src/webAuthClient/app.js.map +1 -1
  66. package/dist/src/webAuthClient/internal/uriHelpers.d.ts +3 -3
  67. package/dist/src/webAuthClient/internal/uriHelpers.d.ts.map +1 -1
  68. package/dist/src/webAuthClient/internal/uriHelpers.js +6 -4
  69. package/dist/src/webAuthClient/internal/uriHelpers.js.map +1 -1
  70. package/dist/src/webAuthClient/types.d.ts +8 -8
  71. package/dist/src/webAuthClient/types.d.ts.map +1 -1
  72. package/package.json +3 -4
  73. package/dist/src/jwt/core/utils/processJWTSignature.d.ts +0 -8
  74. package/dist/src/jwt/core/utils/processJWTSignature.d.ts.map +0 -1
  75. package/dist/src/jwt/core/utils/processJWTSignature.js +0 -14
  76. package/dist/src/jwt/core/utils/processJWTSignature.js.map +0 -1
  77. package/dist/src/jwt/core/utils/splitJWT.d.ts +0 -11
  78. package/dist/src/jwt/core/utils/splitJWT.d.ts.map +0 -1
  79. package/dist/src/jwt/core/utils/splitJWT.js +0 -21
  80. package/dist/src/jwt/core/utils/splitJWT.js.map +0 -1
  81. package/dist/src/jwt/core/validate.d.ts +0 -29
  82. package/dist/src/jwt/core/validate.d.ts.map +0 -1
  83. package/dist/src/jwt/core/validate.js +0 -143
  84. package/dist/src/jwt/core/validate.js.map +0 -1
package/README.md CHANGED
@@ -51,7 +51,7 @@ const vincentAppClient = getWebAuthClient({ appId: MY_APP_ID });
51
51
  // ... In your app logic:
52
52
  if (vincentAppClient.uriContainsVincentJWT()) {
53
53
  // Handle app logic for the user has just logged in
54
- const { decoded, jwt } = vincentAppClient.decodeVincentJWT(window.location.origin);
54
+ const { decoded, jwt } = vincentAppClient.decodeVincentJWTFromUri(window.location.origin);
55
55
  // Store `jwt` for later usage; the user is now logged in.
56
56
  } else {
57
57
  // Handle app logic for the user is _already logged in_ (check for stored & unexpired JWT)
package/dist/README.md CHANGED
@@ -51,7 +51,7 @@ const vincentAppClient = getWebAuthClient({ appId: MY_APP_ID });
51
51
  // ... In your app logic:
52
52
  if (vincentAppClient.uriContainsVincentJWT()) {
53
53
  // Handle app logic for the user has just logged in
54
- const { decoded, jwt } = vincentAppClient.decodeVincentJWT(window.location.origin);
54
+ const { decoded, jwt } = vincentAppClient.decodeVincentJWTFromUri(window.location.origin);
55
55
  // Store `jwt` for later usage; the user is now logged in.
56
56
  } else {
57
57
  // Handle app logic for the user is _already logged in_ (check for stored & unexpired JWT)
package/dist/package.json CHANGED
@@ -55,10 +55,9 @@
55
55
  "@lit-protocol/auth-helpers": "^7.0.9",
56
56
  "@lit-protocol/constants": "^7.0.8",
57
57
  "@lit-protocol/lit-node-client": "^7.0.8",
58
- "@lit-protocol/vincent-contracts-sdk": "workspace:*",
59
58
  "@lit-protocol/vincent-ability-sdk": "workspace:*",
59
+ "@lit-protocol/vincent-contracts-sdk": "workspace:*",
60
60
  "@noble/secp256k1": "^2.2.3",
61
- "did-jwt": "^8.0.8",
62
61
  "ethers": "5.8.0",
63
62
  "tslib": "^2.8.1",
64
63
  "zod": "3.25.64"
@@ -105,7 +105,16 @@ function getAuthenticateUserExpressHandler({ allowedAudience, requiredAppId, use
105
105
  return;
106
106
  }
107
107
  try {
108
- const decodedJWT = (0, jwt_1.verify)({ jwt: rawJWT, expectedAudience: allowedAudience, requiredAppId });
108
+ const decodedJWT = requiredAppId != null
109
+ ? await (0, jwt_1.verifyVincentAppUserJWT)({
110
+ jwt: rawJWT,
111
+ expectedAudience: allowedAudience,
112
+ requiredAppId,
113
+ })
114
+ : await (0, jwt_1.verifyVincentPlatformJWT)({
115
+ jwt: rawJWT,
116
+ expectedAudience: allowedAudience,
117
+ });
109
118
  if (!decodedJWT) {
110
119
  res.status(401).json({ error: 'Invalid token' });
111
120
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/expressMiddleware/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../../src/expressMiddleware/express.ts"],"names":[],"mappings":";;AA8EA,kEASC;AAnFD,gCAA2E;AAC3E,6CAAoD;AAEpD,SAAS,0BAA0B,CACjC,GAAY,EACZ,OAAgB;IAEhB,qCAAqC;IACrC,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAChG,CAAC;IAED,6BAA6B;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAA4B,CAAC;IAErD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,SAAgB,2BAA2B,CAA+B,MAIzE;IACC,OAAO;QACL,UAAU,EAAE,iCAAiC,CAAC,MAAM,CAAC;QACrD,OAAO,EAAE,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAA+B,OAAgB;IACjF,OAAO,UAAU,OAA6C;QAC5D,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;YACzD,IAAI,CAAC;gBACH,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACzC,OAAO,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YAAC,WAAM,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,qCAAqC;AACrC,SAAS,iCAAiC,CAA+B,EACvE,eAAe,EACf,aAAa,EACb,OAAO,GAKR;IACC,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAC/D,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0DAA0D,EAAE,CAAC,CAAC;YAC5F,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC7E,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GACd,aAAa,IAAI,IAAI;gBACnB,CAAC,CAAC,MAAM,IAAA,6BAAuB,EAAC;oBAC5B,GAAG,EAAE,MAAM;oBACX,gBAAgB,EAAE,eAAe;oBACjC,aAAa;iBACd,CAAC;gBACJ,CAAC,CAAC,MAAM,IAAA,8BAAwB,EAAC;oBAC7B,GAAG,EAAE,MAAM;oBACX,gBAAgB,EAAE,eAAe;iBAClC,CAAC,CAAC;YAET,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;gBACjD,OAAO;YACT,CAAC;YAEA,GAAiD,CAAC,OAAO,CAAC,GAAG;gBAC5D,UAAU;gBACV,MAAM;aACW,CAAC;YAEpB,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAmB,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AACD,wCAAwC"}
@@ -1,5 +1,5 @@
1
1
  import type { NextFunction, Request, RequestHandler, Response } from 'express';
2
- import type { VincentJWT } from '../jwt/types';
2
+ import type { VincentJWTAppUser, VincentJWTPlatformUser } from '../jwt/types';
3
3
  /** Extract the params type from the original Express.js RequestHandler
4
4
  *
5
5
  * You probably don't need this type; see { @link createVincentUserMiddleware } for details
@@ -16,7 +16,7 @@ export type ExtractRequestHandlerParams<T> = T extends RequestHandler<infer P, i
16
16
  * */
17
17
  export type AuthenticatedRequestHandler<UserKey extends string, P = ExtractRequestHandlerParams<RequestHandler>[0], ResBody = ExtractRequestHandlerParams<RequestHandler>[1], ReqBody = ExtractRequestHandlerParams<RequestHandler>[2], ReqQuery = ExtractRequestHandlerParams<RequestHandler>[3], Locals extends Record<string, any> = ExtractRequestHandlerParams<RequestHandler>[4]> = (req: AuthenticatedRequest<UserKey, P, ResBody, ReqBody, ReqQuery>, res: Response<ResBody, Locals>, next: NextFunction) => void | Promise<void>;
18
18
  export interface VincentJWTData {
19
- decodedJWT: VincentJWT;
19
+ decodedJWT: VincentJWTPlatformUser | VincentJWTAppUser;
20
20
  rawJWT: string;
21
21
  }
22
22
  /** An interface that extends the Express.js Request interface to include authenticated user data
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/expressMiddleware/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;KAKK;AACL,MAAM,MAAM,2BAA2B,CAAC,CAAC,IACvC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,EAAE,MAAM,MAAM,CAAC,GACzF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GACvC,KAAK,CAAC;AAEZ;;;;;;KAMK;AACL,MAAM,MAAM,2BAA2B,CACrC,OAAO,SAAS,MAAM,EACtB,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAClD,OAAO,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACxD,OAAO,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACxD,QAAQ,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACzD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IACjF,CACF,GAAG,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EACjE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,YAAY,KACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;KAKK;AACL,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,MAAM,EACtB,CAAC,GAAG,GAAG,EACP,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,GAAG,IACZ,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG;KAC1C,CAAC,IAAI,OAAO,GAAG,cAAc;CAC/B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/expressMiddleware/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE9E;;;;;KAKK;AACL,MAAM,MAAM,2BAA2B,CAAC,CAAC,IACvC,CAAC,SAAS,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,OAAO,EAAE,MAAM,OAAO,EAAE,MAAM,QAAQ,EAAE,MAAM,MAAM,CAAC,GACzF,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GACvC,KAAK,CAAC;AAEZ;;;;;;KAMK;AACL,MAAM,MAAM,2BAA2B,CACrC,OAAO,SAAS,MAAM,EACtB,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAClD,OAAO,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACxD,OAAO,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACxD,QAAQ,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EACzD,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IACjF,CACF,GAAG,EAAE,oBAAoB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EACjE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,YAAY,KACf,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,sBAAsB,GAAG,iBAAiB,CAAC;IACvD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;KAKK;AACL,MAAM,MAAM,oBAAoB,CAC9B,OAAO,SAAS,MAAM,EACtB,CAAC,GAAG,GAAG,EACP,OAAO,GAAG,GAAG,EACb,OAAO,GAAG,GAAG,EACb,QAAQ,GAAG,GAAG,IACZ,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG;KAC1C,CAAC,IAAI,OAAO,GAAG,cAAc;CAC/B,CAAC"}
@@ -1,8 +1,41 @@
1
1
  import type { IRelayPKP } from '@lit-protocol/types';
2
- import type { VincentJWT, VincentJWTAppSpecific } from './types';
3
- export declare function getAppInfo(decodedJWT: VincentJWTAppSpecific): {
2
+ import type { VincentJWTPlatformUser, VincentJWTAppUser, AnyVincentJWT, VincentJWTDelegatee } from './types';
3
+ /**
4
+ * @category API > Accessors
5
+ */
6
+ export declare function getAppInfo(decodedJWT: VincentJWTAppUser): {
4
7
  appId: number;
5
8
  version: number;
6
9
  };
7
- export declare function getPKPInfo(decodedJWT: VincentJWT): IRelayPKP;
10
+ /**
11
+ * @category API > Accessors
12
+ */
13
+ export declare function getPKPInfo(decodedJWT: VincentJWTPlatformUser | VincentJWTAppUser): IRelayPKP;
14
+ /**
15
+ * @category API > Accessors
16
+ */
17
+ export declare function getRole(decodedJWT: AnyVincentJWT): string;
18
+ /**
19
+ * @category API > Accessors
20
+ */
21
+ export declare function getAuthentication(decodedJWT: VincentJWTPlatformUser | VincentJWTAppUser): {
22
+ type: string;
23
+ value?: string;
24
+ };
25
+ /**
26
+ * @category API > Accessors
27
+ */
28
+ export declare function getPublicKey(decodedJWT: AnyVincentJWT): string;
29
+ /**
30
+ * @category API > Accessors
31
+ */
32
+ export declare function getIssuerAddress(decodedJWT: AnyVincentJWT): string | undefined;
33
+ /**
34
+ * @category API > Accessors
35
+ */
36
+ export declare function getSubjectAddress(decodedJWT: VincentJWTDelegatee): string;
37
+ /**
38
+ * @category API > Accessors
39
+ */
40
+ export declare function getAudience(decodedJWT: AnyVincentJWT): string[];
8
41
  //# sourceMappingURL=accessors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/jwt/accessors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAIjE,wBAAgB,UAAU,CAAC,UAAU,EAAE,qBAAqB,GAAG;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAED,wBAAgB,UAAU,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAE5D"}
1
+ {"version":3,"file":"accessors.d.ts","sourceRoot":"","sources":["../../../src/jwt/accessors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,EACV,sBAAsB,EACtB,iBAAiB,EACjB,aAAa,EACb,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAKjB;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAMA;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,SAAS,CAG5F;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,sBAAsB,GAAG,iBAAiB,GAAG;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAGA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAKzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,aAAa,GAAG,MAAM,EAAE,CAQ/D"}
@@ -2,14 +2,72 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAppInfo = getAppInfo;
4
4
  exports.getPKPInfo = getPKPInfo;
5
+ exports.getRole = getRole;
6
+ exports.getAuthentication = getAuthentication;
7
+ exports.getPublicKey = getPublicKey;
8
+ exports.getIssuerAddress = getIssuerAddress;
9
+ exports.getSubjectAddress = getSubjectAddress;
10
+ exports.getAudience = getAudience;
11
+ const constants_1 = require("./constants");
5
12
  const typeGuards_1 = require("./typeGuards");
13
+ /**
14
+ * @category API > Accessors
15
+ */
6
16
  function getAppInfo(decodedJWT) {
7
- if (!(0, typeGuards_1.isAppSpecificJWT)(decodedJWT)) {
17
+ if (!(0, typeGuards_1.isAppUser)(decodedJWT)) {
8
18
  throw new Error('JWT is not app specific');
9
19
  }
10
20
  return { appId: decodedJWT.payload.app.id, version: decodedJWT.payload.app.version };
11
21
  }
22
+ /**
23
+ * @category API > Accessors
24
+ */
12
25
  function getPKPInfo(decodedJWT) {
13
- return decodedJWT.payload.pkp;
26
+ (0, typeGuards_1.assertIsPKPSignedVincentJWT)(decodedJWT);
27
+ return decodedJWT.payload.pkpInfo;
28
+ }
29
+ /**
30
+ * @category API > Accessors
31
+ */
32
+ function getRole(decodedJWT) {
33
+ return decodedJWT.payload.role;
34
+ }
35
+ /**
36
+ * @category API > Accessors
37
+ */
38
+ function getAuthentication(decodedJWT) {
39
+ (0, typeGuards_1.assertIsPKPSignedVincentJWT)(decodedJWT);
40
+ return decodedJWT.payload.authentication;
41
+ }
42
+ /**
43
+ * @category API > Accessors
44
+ */
45
+ function getPublicKey(decodedJWT) {
46
+ return decodedJWT.payload.publicKey;
47
+ }
48
+ /**
49
+ * @category API > Accessors
50
+ */
51
+ function getIssuerAddress(decodedJWT) {
52
+ return decodedJWT.payload.iss;
53
+ }
54
+ /**
55
+ * @category API > Accessors
56
+ */
57
+ function getSubjectAddress(decodedJWT) {
58
+ if (!decodedJWT.payload.sub) {
59
+ throw new Error(constants_1.JWT_ERROR.INVALID_JWT + ' - Missing subject address');
60
+ }
61
+ return decodedJWT.payload.sub;
62
+ }
63
+ /**
64
+ * @category API > Accessors
65
+ */
66
+ function getAudience(decodedJWT) {
67
+ const aud = decodedJWT.payload.aud;
68
+ if (!aud) {
69
+ throw new Error(constants_1.JWT_ERROR.INVALID_AUDIENCE + ' - Missing audience');
70
+ }
71
+ return Array.isArray(aud) ? aud : [aud];
14
72
  }
15
73
  //# sourceMappingURL=accessors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../../src/jwt/accessors.ts"],"names":[],"mappings":";;AAMA,gCASC;AAED,gCAEC;AAfD,6CAAgD;AAEhD,SAAgB,UAAU,CAAC,UAAiC;IAI1D,IAAI,CAAC,IAAA,6BAAgB,EAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACvF,CAAC;AAED,SAAgB,UAAU,CAAC,UAAsB;IAC/C,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"accessors.js","sourceRoot":"","sources":["../../../src/jwt/accessors.ts"],"names":[],"mappings":";;AAeA,gCASC;AAKD,gCAGC;AAKD,0BAEC;AAKD,8CAMC;AAKD,oCAEC;AAKD,4CAEC;AAKD,8CAKC;AAKD,kCAQC;AA9ED,2CAAwC;AACxC,6CAAsE;AAEtE;;GAEG;AACH,SAAgB,UAAU,CAAC,UAA6B;IAItD,IAAI,CAAC,IAAA,sBAAS,EAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACvF,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,UAAsD;IAC/E,IAAA,wCAA2B,EAAC,UAAU,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,UAAyB;IAC/C,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,UAAsD;IAItF,IAAA,wCAA2B,EAAC,UAAU,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,UAAyB;IACpD,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,UAAyB;IACxD,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,UAA+B;IAC/D,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,qBAAS,CAAC,WAAW,GAAG,4BAA4B,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,UAAyB;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;IAEnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,qBAAS,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,33 @@
1
+ export declare const JWT_ERROR: {
2
+ /**
3
+ * Thrown when a JWT payload schema is unexpected or when validity period does not match
4
+ */
5
+ INVALID_JWT: string;
6
+ /**
7
+ * Thrown when the verifier audience does not match the one set in the JWT payload
8
+ */
9
+ INVALID_AUDIENCE: string;
10
+ /**
11
+ * Thrown when none of the public keys of the issuer match the signature of the JWT.
12
+ *
13
+ * This is equivalent to `NO_SUITABLE_KEYS` when the `proofPurpose` is NOT specified.
14
+ */
15
+ INVALID_SIGNATURE: string;
16
+ /**
17
+ * Thrown when the DID document of the issuer does not have any keys that match the signature for the given
18
+ * `proofPurpose`.
19
+ *
20
+ * This is equivalent to `invalid_signature`, when a `proofPurpose` is specified.
21
+ */
22
+ NO_SUITABLE_KEYS: string;
23
+ /**
24
+ * Thrown when the `alg` of the JWT or the encoding of the key is not supported
25
+ */
26
+ NOT_SUPPORTED: string;
27
+ /**
28
+ * Thrown when the DID resolver is unable to resolve the issuer DID.
29
+ */
30
+ RESOLVER_ERROR: string;
31
+ };
32
+ export declare const VINCENT_JWT_API_VERSION = 1;
33
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/jwt/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;IACpB;;OAEG;;IAEH;;OAEG;;IAEH;;;;OAIG;;IAEH;;;;;OAKG;;IAEH;;OAEG;;IAEH;;OAEG;;CAEJ,CAAC;AAEF,eAAO,MAAM,uBAAuB,IAAI,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VINCENT_JWT_API_VERSION = exports.JWT_ERROR = void 0;
4
+ exports.JWT_ERROR = {
5
+ /**
6
+ * Thrown when a JWT payload schema is unexpected or when validity period does not match
7
+ */
8
+ INVALID_JWT: 'invalid_jwt',
9
+ /**
10
+ * Thrown when the verifier audience does not match the one set in the JWT payload
11
+ */
12
+ INVALID_AUDIENCE: 'invalid_config',
13
+ /**
14
+ * Thrown when none of the public keys of the issuer match the signature of the JWT.
15
+ *
16
+ * This is equivalent to `NO_SUITABLE_KEYS` when the `proofPurpose` is NOT specified.
17
+ */
18
+ INVALID_SIGNATURE: 'invalid_signature',
19
+ /**
20
+ * Thrown when the DID document of the issuer does not have any keys that match the signature for the given
21
+ * `proofPurpose`.
22
+ *
23
+ * This is equivalent to `invalid_signature`, when a `proofPurpose` is specified.
24
+ */
25
+ NO_SUITABLE_KEYS: 'no_suitable_keys',
26
+ /**
27
+ * Thrown when the `alg` of the JWT or the encoding of the key is not supported
28
+ */
29
+ NOT_SUPPORTED: 'not_supported',
30
+ /**
31
+ * Thrown when the DID resolver is unable to resolve the issuer DID.
32
+ */
33
+ RESOLVER_ERROR: 'resolver_error',
34
+ };
35
+ exports.VINCENT_JWT_API_VERSION = 1;
36
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/jwt/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB;;OAEG;IACH,WAAW,EAAE,aAAa;IAC1B;;OAEG;IACH,gBAAgB,EAAE,gBAAgB;IAClC;;;;OAIG;IACH,iBAAiB,EAAE,mBAAmB;IACtC;;;;;OAKG;IACH,gBAAgB,EAAE,kBAAkB;IACpC;;OAEG;IACH,aAAa,EAAE,eAAe;IAC9B;;OAEG;IACH,cAAc,EAAE,gBAAgB;CACjC,CAAC;AAEW,QAAA,uBAAuB,GAAG,CAAC,CAAC"}
@@ -1,24 +1,19 @@
1
- import type { JWTConfig } from '../types';
1
+ import type { CreateAppUserJWTParams, CreateDelegateeJWTParams, CreatePlatformUserJWTParams } from '../types';
2
2
  /**
3
- * Creates a JWT signed by a PKP wallet using the ES256K algorithm
3
+ * Create JWT for a platform user
4
+ * @category API > Create
5
+ * */
6
+ export declare function createPlatformUserJWT(config: CreatePlatformUserJWTParams): Promise<string>;
7
+ /** Create JWT for an app-scoped user
8
+ * @category API > Create
9
+ * */
10
+ export declare function createAppUserJWT(config: CreateAppUserJWTParams): Promise<string>;
11
+ /**
12
+ * Creates a JWT for an app delegatee (Ethereum account that may act on behalf of a user).
4
13
  *
5
- * This function creates a JWT with the provided payload, adding standard claims
6
- * like iat (issued at), exp (expiration), and iss (issuer). It also includes the
7
- * PKP public key in the payload, which is used for verification.
14
+ * You must provide a valid `subjectAddress`, which must be a valid delegator for your Delegatee address.
8
15
  *
9
- * @param config - Configuration object containing all parameters for JWT creation
10
- * @returns A promise that resolves to the signed JWT string
11
- * @hidden
12
- * @example
13
- * ```typescript
14
- * const jwt = await createPKPSignedJWT({
15
- * pkpWallet: pkpWallet,
16
- * pkp: pkpInfo,
17
- * payload: { name: "Lit Protocol User", customField: "value" },
18
- * expiresInMinutes: 30, // expires in 30 minutes
19
- * audience: "example.com" // audience domain
20
- * });
21
- * ```
16
+ * @category API > Create
22
17
  */
23
- export declare function create(config: JWTConfig): Promise<string>;
18
+ export declare function createDelegateeJWT(config: CreateDelegateeJWTParams): Promise<string>;
24
19
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/jwt/core/create.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AA8CjE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAoC/D"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/jwt/core/create.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAI5B,MAAM,UAAU,CAAC;AAuDlB;;;KAGK;AACL,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAYhG;AAED;;KAEK;AACL,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBtF;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1F"}
@@ -1,95 +1,95 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.create = create;
4
- const tslib_1 = require("tslib");
5
- const didJWT = tslib_1.__importStar(require("did-jwt"));
6
- const ethers_1 = require("ethers");
3
+ exports.createPlatformUserJWT = createPlatformUserJWT;
4
+ exports.createAppUserJWT = createAppUserJWT;
5
+ exports.createDelegateeJWT = createDelegateeJWT;
7
6
  const utils_1 = require("ethers/lib/utils");
7
+ const constants_1 = require("../constants");
8
8
  const base64_1 = require("./utils/base64");
9
- /**
10
- * Creates a signer function compatible with did-jwt that uses a PKP wallet for signing
11
- *
12
- * This function returns a signing function that conforms to the did-jwt library's
13
- * signer interface. When called, it signs data using the PKP wallet, formatting
14
- * the signature according to ES256K requirements (without recovery parameter).
15
- *
16
- * @param pkpWallet - The PKP Ethers wallet instance that will be used for signing
17
- * @returns A signing function that takes data and returns a base64url-encoded signature
18
- * @private
19
- * @example
20
- * ```typescript
21
- * const pkpWallet = new PKPEthersWallet({ ... });
22
- * const signer = createPKPSigner(pkpWallet);
23
- * const signature = await signer('data to sign');
24
- * ```
25
- */
26
- function createPKPSigner(pkpWallet) {
27
- /**
28
- * The actual signer function conforming to the did-jwt signer interface
29
- *
30
- * @param data - The data to sign, either as a string or Uint8Array
31
- * @returns A promise that resolves to the base64url-encoded signature
32
- */
9
+ const ensureHex = (s) => (0, utils_1.hexlify)(s, { allowMissingPrefix: true });
10
+ function createES256KSigner(wallet) {
33
11
  return async (data) => {
34
- const dataBytes = typeof data === 'string' ? Uint8Array.from(Buffer.from(data, 'utf8')) : data;
35
- const sig = await pkpWallet.signMessage(dataBytes);
36
- const { r, s } = ethers_1.ethers.utils.splitSignature(sig);
37
- const rBytes = (0, utils_1.arrayify)(r);
38
- const sBytes = (0, utils_1.arrayify)(s);
39
- // ES256K signature is r and s concatenated (64 bytes total)
12
+ const messageBytes = typeof data === 'string' ? (0, utils_1.toUtf8Bytes)(data) : data;
13
+ const sig = await wallet.signMessage(messageBytes);
14
+ const { r, s } = (0, utils_1.splitSignature)(sig);
40
15
  const sigBytes = new Uint8Array(64);
41
- sigBytes.set(rBytes, 0);
42
- sigBytes.set(sBytes, 32);
16
+ sigBytes.set((0, utils_1.arrayify)(r), 0);
17
+ sigBytes.set((0, utils_1.arrayify)(s), 32);
43
18
  return (0, base64_1.toBase64Url)(sigBytes);
44
19
  };
45
20
  }
46
- /**
47
- * Creates a JWT signed by a PKP wallet using the ES256K algorithm
48
- *
49
- * This function creates a JWT with the provided payload, adding standard claims
50
- * like iat (issued at), exp (expiration), and iss (issuer). It also includes the
51
- * PKP public key in the payload, which is used for verification.
52
- *
53
- * @param config - Configuration object containing all parameters for JWT creation
54
- * @returns A promise that resolves to the signed JWT string
55
- * @hidden
56
- * @example
57
- * ```typescript
58
- * const jwt = await createPKPSignedJWT({
59
- * pkpWallet: pkpWallet,
60
- * pkp: pkpInfo,
61
- * payload: { name: "Lit Protocol User", customField: "value" },
62
- * expiresInMinutes: 30, // expires in 30 minutes
63
- * audience: "example.com" // audience domain
64
- * });
65
- * ```
66
- */
67
- async function create(config) {
68
- const { app, pkpWallet, pkp, payload, expiresInMinutes, audience, authentication } = config;
69
- const signer = createPKPSigner(pkpWallet);
70
- // iat and exp are expressed in seconds https://datatracker.ietf.org/doc/html/rfc7519
21
+ async function createJWS({ payload, wallet, config }) {
22
+ const { expiresInMinutes, audience, subjectAddress, role } = config;
71
23
  const iat = Math.floor(Date.now() / 1000);
72
- const exp = iat + expiresInMinutes * 60;
73
- const walletAddress = await pkpWallet.getAddress();
74
- const fullPayload = {
24
+ const exp = (payload.nbf || Math.floor(Date.now() / 1000) + expiresInMinutes * 60);
25
+ const header = { alg: 'ES256K', typ: 'JWT' };
26
+ const iss = ensureHex(await wallet.getAddress());
27
+ const publicKey = ensureHex(wallet.publicKey);
28
+ const _payload = {
75
29
  ...payload,
76
- aud: audience,
77
30
  iat,
78
31
  exp,
79
- iss: `did:ethr:${walletAddress}`,
80
- pkp,
81
- app,
82
- authentication: {
83
- type: authentication.type,
84
- ...(authentication.value ? { value: authentication.value } : {}),
85
- },
32
+ iss,
33
+ publicKey,
34
+ aud: audience,
35
+ role,
36
+ ...(subjectAddress ? { sub: subjectAddress } : {}),
37
+ __vincentJWTApiVersion: constants_1.VINCENT_JWT_API_VERSION,
86
38
  };
87
- const jwt = await didJWT.createJWT(fullPayload, {
88
- issuer: `did:ethr:${walletAddress}`,
89
- signer,
90
- }, {
91
- alg: 'ES256K',
39
+ const signingInput = [
40
+ (0, base64_1.toBase64Url)((0, utils_1.toUtf8Bytes)(JSON.stringify(header))),
41
+ (0, base64_1.toBase64Url)((0, utils_1.toUtf8Bytes)(JSON.stringify(_payload))),
42
+ ].join('.');
43
+ const signature = await createES256KSigner(wallet)(signingInput);
44
+ // JWS Compact Serialization
45
+ // https://www.rfc-editor.org/rfc/rfc7515#section-7.1
46
+ return [signingInput, signature].join('.');
47
+ }
48
+ /**
49
+ * Create JWT for a platform user
50
+ * @category API > Create
51
+ * */
52
+ async function createPlatformUserJWT(config) {
53
+ const { pkpWallet, pkpInfo, authentication, audience, expiresInMinutes, payload = {} } = config;
54
+ return createJWS({
55
+ payload: {
56
+ ...payload,
57
+ pkpInfo,
58
+ authentication,
59
+ },
60
+ wallet: pkpWallet,
61
+ config: { audience, expiresInMinutes, role: 'platform-user' },
62
+ });
63
+ }
64
+ /** Create JWT for an app-scoped user
65
+ * @category API > Create
66
+ * */
67
+ async function createAppUserJWT(config) {
68
+ const { app, pkpWallet, pkpInfo, authentication, audience, expiresInMinutes, payload = {}, } = config;
69
+ return createJWS({
70
+ payload: {
71
+ ...payload,
72
+ pkpInfo,
73
+ app,
74
+ authentication,
75
+ },
76
+ wallet: pkpWallet,
77
+ config: { audience, expiresInMinutes, role: 'app-user' },
78
+ });
79
+ }
80
+ /**
81
+ * Creates a JWT for an app delegatee (Ethereum account that may act on behalf of a user).
82
+ *
83
+ * You must provide a valid `subjectAddress`, which must be a valid delegator for your Delegatee address.
84
+ *
85
+ * @category API > Create
86
+ */
87
+ async function createDelegateeJWT(config) {
88
+ const { ethersWallet, subjectAddress, audience, expiresInMinutes, payload = {} } = config;
89
+ return createJWS({
90
+ payload,
91
+ wallet: ethersWallet,
92
+ config: { audience, expiresInMinutes, subjectAddress, role: 'app-delegatee' },
92
93
  });
93
- return jwt;
94
94
  }
95
95
  //# sourceMappingURL=create.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/jwt/core/create.ts"],"names":[],"mappings":";;AAyEA,wBAoCC;;AA7GD,wDAAkC;AAClC,mCAAgC;AAChC,4CAA4C;AAM5C,2CAA6C;AAE7C;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,eAAe,CAAC,SAA0B;IACjD;;;;;OAKG;IACH,OAAO,KAAK,EAAE,IAAyB,EAAmB,EAAE;QAC1D,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE/F,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;QAE3B,4DAA4D;QAC5D,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACpC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACxB,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzB,OAAO,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,KAAK,UAAU,MAAM,CAAC,MAAiB;IAC5C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAC5F,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAE1C,qFAAqF;IACrF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,GAAG,GAAG,gBAAgB,GAAG,EAAE,CAAC;IAExC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;IAEnD,MAAM,WAAW,GAA0B;QACzC,GAAG,OAAO;QACV,GAAG,EAAE,QAAQ;QACb,GAAG;QACH,GAAG;QACH,GAAG,EAAE,YAAY,aAAa,EAAE;QAChC,GAAG;QACH,GAAG;QACH,cAAc,EAAE;YACd,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE;KACF,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAChC,WAAW,EACX;QACE,MAAM,EAAE,YAAY,aAAa,EAAE;QACnC,MAAM;KACP,EACD;QACE,GAAG,EAAE,QAAQ;KACd,CACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/jwt/core/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AnyVincentJWT } from '../types';
2
+ export declare function decodeVincentJWT(jwt: string): AnyVincentJWT;
3
+ //# sourceMappingURL=decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.d.ts","sourceRoot":"","sources":["../../../../src/jwt/core/decode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,aAAa,EACd,MAAM,UAAU,CAAC;AAMlB,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAsB3D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeVincentJWT = decodeVincentJWT;
4
+ const constants_1 = require("../constants");
5
+ const typeGuards_1 = require("../typeGuards");
6
+ const decodeJWTStr_1 = require("./utils/decodeJWTStr");
7
+ function decodeVincentJWT(jwt) {
8
+ var _a;
9
+ const decoded = (0, decodeJWTStr_1.decodeJWT)(jwt);
10
+ if (!decoded || typeof decoded !== 'object') {
11
+ throw new Error(`${constants_1.JWT_ERROR.INVALID_JWT}: Could not decode JWT`);
12
+ }
13
+ const role = (_a = decoded.payload) === null || _a === void 0 ? void 0 : _a.role;
14
+ switch (role) {
15
+ case 'platform-user':
16
+ (0, typeGuards_1.assertIsPKPSignedVincentJWT)(decoded);
17
+ return decoded;
18
+ case 'app-user':
19
+ (0, typeGuards_1.assertIsPKPSignedVincentJWT)(decoded);
20
+ return decoded;
21
+ case 'app-delegatee':
22
+ return decoded;
23
+ default:
24
+ throw new Error(`${constants_1.JWT_ERROR.INVALID_JWT}: Unrecognized role: ${role}`);
25
+ }
26
+ }
27
+ //# sourceMappingURL=decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../../src/jwt/core/decode.ts"],"names":[],"mappings":";;AAWA,4CAsBC;AA1BD,4CAAyC;AACzC,8CAA4D;AAC5D,uDAAiD;AAEjD,SAAgB,gBAAgB,CAAC,GAAW;;IAC1C,MAAM,OAAO,GAAG,IAAA,wBAAS,EAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,GAAG,qBAAS,CAAC,WAAW,wBAAwB,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,OAAO,0CAAE,IAAI,CAAC;IAEnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,IAAA,wCAA2B,EAAC,OAAO,CAAC,CAAC;YACrC,OAAO,OAAiC,CAAC;QAC3C,KAAK,UAAU;YACb,IAAA,wCAA2B,EAAC,OAAO,CAAC,CAAC;YACrC,OAAO,OAA4B,CAAC;QACtC,KAAK,eAAe;YAClB,OAAO,OAA8B,CAAC;QAExC;YACE,MAAM,IAAI,KAAK,CAAC,GAAG,qBAAS,CAAC,WAAW,wBAAwB,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
@@ -1,9 +1,9 @@
1
- import type { VincentJWT } from '../types';
1
+ import type { AnyVincentJWT } from '../types';
2
2
  /** Checks if a JWT is expired based on its 'exp' claim
3
3
  *
4
4
  * @returns true if expired, false otherwise
5
5
  * @param decodedJWT
6
- * @category API
6
+ * @category API > Verify
7
7
  */
8
- export declare function isExpired(decodedJWT: VincentJWT): boolean;
8
+ export declare function isExpired(decodedJWT: AnyVincentJWT): boolean;
9
9
  //# sourceMappingURL=isExpired.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isExpired.d.ts","sourceRoot":"","sources":["../../../../src/jwt/core/isExpired.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAWzD"}
1
+ {"version":3,"file":"isExpired.d.ts","sourceRoot":"","sources":["../../../../src/jwt/core/isExpired.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAW5D"}
@@ -5,7 +5,7 @@ exports.isExpired = isExpired;
5
5
  *
6
6
  * @returns true if expired, false otherwise
7
7
  * @param decodedJWT
8
- * @category API
8
+ * @category API > Verify
9
9
  */
10
10
  function isExpired(decodedJWT) {
11
11
  const { payload } = decodedJWT;
@@ -1 +1 @@
1
- {"version":3,"file":"isExpired.js","sourceRoot":"","sources":["../../../../src/jwt/core/isExpired.ts"],"names":[],"mappings":";;AAQA,8BAWC;AAjBD;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,UAAsB;IAC9C,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAE/B,gEAAgE;IAChE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,OAAO,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"isExpired.js","sourceRoot":"","sources":["../../../../src/jwt/core/isExpired.ts"],"names":[],"mappings":";;AAQA,8BAWC;AAjBD;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,UAAyB;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;IAE/B,gEAAgE;IAChE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,OAAO,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;AACpC,CAAC"}
@@ -8,6 +8,7 @@ export declare function fromBase64(base64: string): Uint8Array;
8
8
  /**
9
9
  * Converts a Uint8Array to a base64url-encoded string.
10
10
  * Works in all JS environments (Node.js, Deno, browser, Web Workers).
11
+ *
11
12
  * No Buffer polyfill requirement.
12
13
  */
13
14
  export declare function toBase64Url(bytes: Uint8Array): string;