@atproto/jwk 0.5.0 → 0.7.0-next.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.
@@ -1 +1 @@
1
- {"version":3,"file":"jwks.d.ts","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAErB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAA"}
1
+ {"version":3,"file":"jwks.d.ts","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWrB,CAAA;AAEF,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAA;AAEF,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAA"}
package/dist/jwks.js CHANGED
@@ -1,20 +1,34 @@
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");
1
+ import { z } from 'zod';
2
+ import { jwkPubSchema, jwkSchema } from './jwk.js';
6
3
  /**
7
4
  * JSON Web Key Set schema. The keys set, in this context, represents a
8
5
  * collection of JSON Web Keys (JWKs), that can be both public and private.
9
6
  */
10
- exports.jwksSchema = zod_1.z.object({
11
- keys: zod_1.z.array(jwk_js_1.jwkSchema),
7
+ export const jwksSchema = z.object({
8
+ keys: z.array(z.unknown()).transform((input) => {
9
+ // > Implementations SHOULD ignore JWKs within a JWK Set that use "kty"
10
+ // > (key type) values that are not understood by them, that are missing
11
+ // > required members, or for which values are out of the supported
12
+ // > ranges.
13
+ return input
14
+ .map((item) => jwkSchema.safeParse(item))
15
+ .filter((res) => res.success)
16
+ .map((res) => res.data);
17
+ }),
12
18
  });
13
19
  /**
14
- * Public JSON Web Key Set schema. All keys must be public keys, have a `kid`,
15
- * and `use` or `key_ops` defined.
20
+ * Public JSON Web Key Set schema.
16
21
  */
17
- exports.jwksPubSchema = zod_1.z.object({
18
- keys: zod_1.z.array(jwk_js_1.jwkPubSchema),
22
+ export const jwksPubSchema = z.object({
23
+ keys: z.array(z.unknown()).transform((input) => {
24
+ // > Implementations SHOULD ignore JWKs within a JWK Set that use "kty"
25
+ // > (key type) values that are not understood by them, that are missing
26
+ // > required members, or for which values are out of the supported
27
+ // > ranges.
28
+ return input
29
+ .map((item) => jwkPubSchema.safeParse(item))
30
+ .filter((res) => res.success)
31
+ .map((res) => res.data);
32
+ }),
19
33
  });
20
34
  //# sourceMappingURL=jwks.js.map
package/dist/jwks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jwks.js","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,qCAAkD;AAElD;;;GAGG;AACU,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,kBAAS,CAAC;CACzB,CAAC,CAAA;AAIF;;;GAGG;AACU,QAAA,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,OAAC,CAAC,KAAK,CAAC,qBAAY,CAAC;CAC5B,CAAC,CAAA"}
1
+ {"version":3,"file":"jwks.js","sourceRoot":"","sources":["../src/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,uEAAuE;QACvE,wEAAwE;QACxE,mEAAmE;QACnE,YAAY;QACZ,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC;CACH,CAAC,CAAA;AAIF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,uEAAuE;QACvE,wEAAwE;QACxE,mEAAmE;QACnE,YAAY;QACZ,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aAC3C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC;CACH,CAAC,CAAA","sourcesContent":["import { z } from 'zod'\nimport { jwkPubSchema, jwkSchema } from './jwk.js'\n\n/**\n * JSON Web Key Set schema. The keys set, in this context, represents a\n * collection of JSON Web Keys (JWKs), that can be both public and private.\n */\nexport const jwksSchema = z.object({\n keys: z.array(z.unknown()).transform((input) => {\n // > Implementations SHOULD ignore JWKs within a JWK Set that use \"kty\"\n // > (key type) values that are not understood by them, that are missing\n // > required members, or for which values are out of the supported\n // > ranges.\n return input\n .map((item) => jwkSchema.safeParse(item))\n .filter((res) => res.success)\n .map((res) => res.data)\n }),\n})\n\nexport type Jwks = z.output<typeof jwksSchema>\n\n/**\n * Public JSON Web Key Set schema.\n */\nexport const jwksPubSchema = z.object({\n keys: z.array(z.unknown()).transform((input) => {\n // > Implementations SHOULD ignore JWKs within a JWK Set that use \"kty\"\n // > (key type) values that are not understood by them, that are missing\n // > required members, or for which values are out of the supported\n // > ranges.\n return input\n .map((item) => jwkPubSchema.safeParse(item))\n .filter((res) => res.success)\n .map((res) => res.data)\n }),\n})\n\nexport type JwksPub = z.output<typeof jwksPubSchema>\n"]}
@@ -1,19 +1,16 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsafeDecodeJwt = unsafeDecodeJwt;
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) {
1
+ import { ERR_JWT_INVALID, JwtVerifyError } from './errors.js';
2
+ import { jwtHeaderSchema, jwtPayloadSchema, } from './jwt.js';
3
+ import { parseB64uJson } from './util.js';
4
+ export function unsafeDecodeJwt(jwt) {
8
5
  const { 0: headerEnc, 1: payloadEnc, length } = jwt.split('.');
9
6
  if (length > 3 || length < 2) {
10
- throw new errors_js_1.JwtVerifyError(undefined, errors_js_1.ERR_JWT_INVALID);
7
+ throw new JwtVerifyError(undefined, ERR_JWT_INVALID);
11
8
  }
12
- const header = jwt_js_1.jwtHeaderSchema.parse((0, util_js_1.parseB64uJson)(headerEnc));
9
+ const header = jwtHeaderSchema.parse(parseB64uJson(headerEnc));
13
10
  if (length === 2 && header?.alg !== 'none') {
14
- throw new errors_js_1.JwtVerifyError(undefined, errors_js_1.ERR_JWT_INVALID);
11
+ throw new JwtVerifyError(undefined, ERR_JWT_INVALID);
15
12
  }
16
- const payload = jwt_js_1.jwtPayloadSchema.parse((0, util_js_1.parseB64uJson)(payloadEnc));
13
+ const payload = jwtPayloadSchema.parse(parseB64uJson(payloadEnc));
17
14
  return { header, payload };
18
15
  }
19
16
  //# sourceMappingURL=jwt-decode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-decode.js","sourceRoot":"","sources":["../src/jwt-decode.ts"],"names":[],"mappings":";;AASA,0CAiBC;AA1BD,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"}
1
+ {"version":3,"file":"jwt-decode.js","sourceRoot":"","sources":["../src/jwt-decode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAGL,eAAe,EACf,gBAAgB,GACjB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,UAAU,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,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,SAAU,CAAC,CAAC,CAAA;IAC/D,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAAC;QAC3C,MAAM,IAAI,cAAc,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,UAAW,CAAC,CAAC,CAAA;IAElE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC","sourcesContent":["import { ERR_JWT_INVALID, JwtVerifyError } from './errors.js'\nimport {\n JwtHeader,\n JwtPayload,\n jwtHeaderSchema,\n jwtPayloadSchema,\n} from './jwt.js'\nimport { parseB64uJson } from './util.js'\n\nexport function unsafeDecodeJwt(jwt: string): {\n header: JwtHeader\n payload: JwtPayload\n} {\n const { 0: headerEnc, 1: payloadEnc, length } = jwt.split('.')\n if (length > 3 || length < 2) {\n throw new JwtVerifyError(undefined, ERR_JWT_INVALID)\n }\n\n const header = jwtHeaderSchema.parse(parseB64uJson(headerEnc!))\n if (length === 2 && header?.alg !== 'none') {\n throw new JwtVerifyError(undefined, ERR_JWT_INVALID)\n }\n\n const payload = jwtPayloadSchema.parse(parseB64uJson(payloadEnc!))\n\n return { header, payload }\n}\n"]}
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=jwt-verify.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt-verify.js","sourceRoot":"","sources":["../src/jwt-verify.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"jwt-verify.js","sourceRoot":"","sources":["../src/jwt-verify.ts"],"names":[],"mappings":"","sourcesContent":["import { JwtHeader, JwtPayload } from './jwt.js'\nimport { RequiredKey } from './util.js'\n\nexport type VerifyOptions<C extends string = never> = {\n audience?: string | readonly string[]\n /** in seconds */\n clockTolerance?: number\n issuer?: string | readonly string[]\n /** in seconds */\n maxTokenAge?: number\n subject?: string\n typ?: string\n currentDate?: Date\n requiredClaims?: readonly C[]\n}\n\nexport type VerifyResult<C extends string = never> = {\n payload: RequiredKey<JwtPayload, C>\n protectedHeader: JwtHeader\n}\n"]}