@atproto/jwk 0.1.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.
Files changed (60) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.txt +7 -0
  3. package/dist/alg.d.ts +3 -0
  4. package/dist/alg.d.ts.map +1 -0
  5. package/dist/alg.js +90 -0
  6. package/dist/alg.js.map +1 -0
  7. package/dist/errors.d.ts +24 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +62 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +27 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/jwk.d.ts +2424 -0
  16. package/dist/jwk.d.ts.map +1 -0
  17. package/dist/jwk.js +112 -0
  18. package/dist/jwk.js.map +1 -0
  19. package/dist/jwks.d.ts +1770 -0
  20. package/dist/jwks.d.ts.map +1 -0
  21. package/dist/jwks.js +12 -0
  22. package/dist/jwks.js.map +1 -0
  23. package/dist/jwt-decode.d.ts +6 -0
  24. package/dist/jwt-decode.d.ts.map +1 -0
  25. package/dist/jwt-decode.js +20 -0
  26. package/dist/jwt-decode.js.map +1 -0
  27. package/dist/jwt-verify.d.ts +20 -0
  28. package/dist/jwt-verify.d.ts.map +1 -0
  29. package/dist/jwt-verify.js +3 -0
  30. package/dist/jwt-verify.js.map +1 -0
  31. package/dist/jwt.d.ts +1785 -0
  32. package/dist/jwt.d.ts.map +1 -0
  33. package/dist/jwt.js +150 -0
  34. package/dist/jwt.js.map +1 -0
  35. package/dist/key.d.ts +38 -0
  36. package/dist/key.d.ts.map +1 -0
  37. package/dist/key.js +131 -0
  38. package/dist/key.js.map +1 -0
  39. package/dist/keyset.d.ts +41 -0
  40. package/dist/keyset.d.ts.map +1 -0
  41. package/dist/keyset.js +234 -0
  42. package/dist/keyset.js.map +1 -0
  43. package/dist/util.d.ts +48 -0
  44. package/dist/util.d.ts.map +1 -0
  45. package/dist/util.js +143 -0
  46. package/dist/util.js.map +1 -0
  47. package/package.json +38 -0
  48. package/src/alg.ts +98 -0
  49. package/src/errors.ts +56 -0
  50. package/src/index.ts +10 -0
  51. package/src/jwk.ts +141 -0
  52. package/src/jwks.ts +15 -0
  53. package/src/jwt-decode.ts +27 -0
  54. package/src/jwt-verify.ts +22 -0
  55. package/src/jwt.ts +173 -0
  56. package/src/key.ts +93 -0
  57. package/src/keyset.ts +240 -0
  58. package/src/util.ts +181 -0
  59. package/tsconfig.build.json +8 -0
  60. package/tsconfig.json +4 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwks.d.ts","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAE7C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
package/dist/jwks.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.jwksPubSchema = exports.jwksSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const jwk_js_1 = require("./jwk.js");
6
+ exports.jwksSchema = zod_1.z.object({
7
+ keys: zod_1.z.array(jwk_js_1.jwkSchema),
8
+ });
9
+ exports.jwksPubSchema = zod_1.z.object({
10
+ keys: zod_1.z.array(jwk_js_1.jwkPubSchema),
11
+ });
12
+ //# sourceMappingURL=jwks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwks.js","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEvB,qCAAkD;AAErC,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,kBAAS,CAAC;CACzB,CAAC,CAAA;AAIW,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAY,CAAC;CAC5B,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { JwtHeader, JwtPayload } from './jwt.js';
2
+ export declare function unsafeDecodeJwt(jwt: string): {
3
+ header: JwtHeader;
4
+ payload: JwtPayload;
5
+ };
6
+ //# sourceMappingURL=jwt-decode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-decode.d.ts","sourceRoot":"","sources":["../src/jwt-decode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,UAAU,EAGX,MAAM,UAAU,CAAA;AAGjB,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,SAAS,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;CACpB,CAcA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unsafeDecodeJwt = void 0;
4
+ const errors_js_1 = require("./errors.js");
5
+ const jwt_js_1 = require("./jwt.js");
6
+ const util_js_1 = require("./util.js");
7
+ function unsafeDecodeJwt(jwt) {
8
+ const { 0: headerEnc, 1: payloadEnc, length } = jwt.split('.');
9
+ if (length > 3 || length < 2) {
10
+ throw new errors_js_1.JwtVerifyError(undefined, errors_js_1.ERR_JWT_INVALID);
11
+ }
12
+ const header = jwt_js_1.jwtHeaderSchema.parse((0, util_js_1.parseB64uJson)(headerEnc));
13
+ if (length === 2 && header?.alg !== 'none') {
14
+ throw new errors_js_1.JwtVerifyError(undefined, errors_js_1.ERR_JWT_INVALID);
15
+ }
16
+ const payload = jwt_js_1.jwtPayloadSchema.parse((0, util_js_1.parseB64uJson)(payloadEnc));
17
+ return { header, payload };
18
+ }
19
+ exports.unsafeDecodeJwt = unsafeDecodeJwt;
20
+ //# sourceMappingURL=jwt-decode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-decode.js","sourceRoot":"","sources":["../src/jwt-decode.ts"],"names":[],"mappings":";;;AAAA,2CAA6D;AAC7D,qCAKiB;AACjB,uCAAyC;AAEzC,SAAgB,eAAe,CAAC,GAAW;IAIzC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,0BAAc,CAAC,SAAS,EAAE,2BAAe,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,wBAAe,CAAC,KAAK,CAAC,IAAA,uBAAa,EAAC,SAAU,CAAC,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,IAAI,0BAAc,CAAC,SAAS,EAAE,2BAAe,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,yBAAgB,CAAC,KAAK,CAAC,IAAA,uBAAa,EAAC,UAAW,CAAC,CAAC,CAAA;IAElE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC;AAjBD,0CAiBC"}
@@ -0,0 +1,20 @@
1
+ import { JwtHeader, JwtPayload } from './jwt.js';
2
+ import { RequiredKey } from './util.js';
3
+ export type VerifyOptions<C extends string = string> = {
4
+ audience?: string | readonly string[];
5
+ /** in seconds */
6
+ clockTolerance?: number;
7
+ issuer?: string | readonly string[];
8
+ /** in seconds */
9
+ maxTokenAge?: number;
10
+ subject?: string;
11
+ typ?: string;
12
+ currentDate?: Date;
13
+ requiredClaims?: readonly C[];
14
+ };
15
+ export type VerifyPayload = Record<string, unknown>;
16
+ export type VerifyResult<P extends VerifyPayload, C extends string> = {
17
+ payload: RequiredKey<P & JwtPayload, C>;
18
+ protectedHeader: JwtHeader;
19
+ };
20
+ //# sourceMappingURL=jwt-verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-verify.d.ts","sourceRoot":"","sources":["../src/jwt-verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IACrC,iBAAiB;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IACnC,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,cAAc,CAAC,EAAE,SAAS,CAAC,EAAE,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEnD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,MAAM,IAAI;IACpE,OAAO,EAAE,WAAW,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC,CAAC,CAAA;IACvC,eAAe,EAAE,SAAS,CAAA;CAC3B,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=jwt-verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt-verify.js","sourceRoot":"","sources":["../src/jwt-verify.ts"],"names":[],"mappings":""}