jose 5.2.4 → 5.3.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.
@@ -99,13 +99,11 @@ export class FlattenedEncrypt {
99
99
  this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };
100
100
  }
101
101
  }
102
+ else if (!this._protectedHeader) {
103
+ this.setProtectedHeader(parameters);
104
+ }
102
105
  else {
103
- if (!this._protectedHeader) {
104
- this.setProtectedHeader(parameters);
105
- }
106
- else {
107
- this._protectedHeader = { ...this._protectedHeader, ...parameters };
108
- }
106
+ this._protectedHeader = { ...this._protectedHeader, ...parameters };
109
107
  }
110
108
  }
111
109
  }
@@ -108,5 +108,14 @@ async function importWithAlgCache(cache, jwk, alg) {
108
108
  }
109
109
  export function createLocalJWKSet(jwks) {
110
110
  const set = new LocalJWKSet(jwks);
111
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
111
+ const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
112
+ Object.defineProperties(localJWKSet, {
113
+ jwks: {
114
+ value: () => clone(set._jwks),
115
+ enumerable: true,
116
+ configurable: false,
117
+ writable: false,
118
+ },
119
+ });
120
+ return localJWKSet;
112
121
  }
@@ -9,7 +9,7 @@ function isCloudflareWorkers() {
9
9
  let USER_AGENT;
10
10
  if (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {
11
11
  const NAME = 'jose';
12
- const VERSION = 'v5.2.4';
12
+ const VERSION = 'v5.3.0';
13
13
  USER_AGENT = `${NAME}/${VERSION}`;
14
14
  }
15
15
  class RemoteJWKSet {
@@ -76,5 +76,35 @@ class RemoteJWKSet {
76
76
  }
77
77
  export function createRemoteJWKSet(url, options) {
78
78
  const set = new RemoteJWKSet(url, options);
79
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
79
+ const remoteJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
80
+ Object.defineProperties(remoteJWKSet, {
81
+ coolingDown: {
82
+ get: () => set.coolingDown(),
83
+ enumerable: true,
84
+ configurable: false,
85
+ },
86
+ fresh: {
87
+ get: () => set.fresh(),
88
+ enumerable: true,
89
+ configurable: false,
90
+ },
91
+ reload: {
92
+ value: () => set.reload(),
93
+ enumerable: true,
94
+ configurable: false,
95
+ writable: false,
96
+ },
97
+ reloading: {
98
+ get: () => !!set._pendingFetch,
99
+ enumerable: true,
100
+ configurable: false,
101
+ },
102
+ jwks: {
103
+ value: () => set._local?.jwks(),
104
+ enumerable: true,
105
+ configurable: false,
106
+ writable: false,
107
+ },
108
+ });
109
+ return remoteJWKSet;
80
110
  }
@@ -110,13 +110,11 @@ class FlattenedEncrypt {
110
110
  this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };
111
111
  }
112
112
  }
113
+ else if (!this._protectedHeader) {
114
+ this.setProtectedHeader(parameters);
115
+ }
113
116
  else {
114
- if (!this._protectedHeader) {
115
- this.setProtectedHeader(parameters);
116
- }
117
- else {
118
- this._protectedHeader = { ...this._protectedHeader, ...parameters };
119
- }
117
+ this._protectedHeader = { ...this._protectedHeader, ...parameters };
120
118
  }
121
119
  }
122
120
  }
@@ -113,6 +113,15 @@ async function importWithAlgCache(cache, jwk, alg) {
113
113
  }
114
114
  function createLocalJWKSet(jwks) {
115
115
  const set = new LocalJWKSet(jwks);
116
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
116
+ const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
117
+ Object.defineProperties(localJWKSet, {
118
+ jwks: {
119
+ value: () => clone(set._jwks),
120
+ enumerable: true,
121
+ configurable: false,
122
+ writable: false,
123
+ },
124
+ });
125
+ return localJWKSet;
117
126
  }
118
127
  exports.createLocalJWKSet = createLocalJWKSet;
@@ -12,7 +12,7 @@ function isCloudflareWorkers() {
12
12
  let USER_AGENT;
13
13
  if (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {
14
14
  const NAME = 'jose';
15
- const VERSION = 'v5.2.4';
15
+ const VERSION = 'v5.3.0';
16
16
  USER_AGENT = `${NAME}/${VERSION}`;
17
17
  }
18
18
  class RemoteJWKSet {
@@ -87,6 +87,36 @@ class RemoteJWKSet {
87
87
  }
88
88
  function createRemoteJWKSet(url, options) {
89
89
  const set = new RemoteJWKSet(url, options);
90
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
90
+ const remoteJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
91
+ Object.defineProperties(remoteJWKSet, {
92
+ coolingDown: {
93
+ get: () => set.coolingDown(),
94
+ enumerable: true,
95
+ configurable: false,
96
+ },
97
+ fresh: {
98
+ get: () => set.fresh(),
99
+ enumerable: true,
100
+ configurable: false,
101
+ },
102
+ reload: {
103
+ value: () => set.reload(),
104
+ enumerable: true,
105
+ configurable: false,
106
+ writable: false,
107
+ },
108
+ reloading: {
109
+ get: () => !!set._pendingFetch,
110
+ enumerable: true,
111
+ configurable: false,
112
+ },
113
+ jwks: {
114
+ value: () => set._local?.jwks(),
115
+ enumerable: true,
116
+ configurable: false,
117
+ writable: false,
118
+ },
119
+ });
120
+ return remoteJWKSet;
91
121
  }
92
122
  exports.createRemoteJWKSet = createRemoteJWKSet;
@@ -107,13 +107,11 @@ export class FlattenedEncrypt {
107
107
  this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };
108
108
  }
109
109
  }
110
+ else if (!this._protectedHeader) {
111
+ this.setProtectedHeader(parameters);
112
+ }
110
113
  else {
111
- if (!this._protectedHeader) {
112
- this.setProtectedHeader(parameters);
113
- }
114
- else {
115
- this._protectedHeader = { ...this._protectedHeader, ...parameters };
116
- }
114
+ this._protectedHeader = { ...this._protectedHeader, ...parameters };
117
115
  }
118
116
  }
119
117
  }
@@ -109,5 +109,14 @@ async function importWithAlgCache(cache, jwk, alg) {
109
109
  }
110
110
  export function createLocalJWKSet(jwks) {
111
111
  const set = new LocalJWKSet(jwks);
112
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
112
+ const localJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
113
+ Object.defineProperties(localJWKSet, {
114
+ jwks: {
115
+ value: () => clone(set._jwks),
116
+ enumerable: true,
117
+ configurable: false,
118
+ writable: false,
119
+ },
120
+ });
121
+ return localJWKSet;
113
122
  }
@@ -9,7 +9,7 @@ function isCloudflareWorkers() {
9
9
  let USER_AGENT;
10
10
  if (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {
11
11
  const NAME = 'jose';
12
- const VERSION = 'v5.2.4';
12
+ const VERSION = 'v5.3.0';
13
13
  USER_AGENT = `${NAME}/${VERSION}`;
14
14
  }
15
15
  class RemoteJWKSet {
@@ -84,5 +84,35 @@ class RemoteJWKSet {
84
84
  }
85
85
  export function createRemoteJWKSet(url, options) {
86
86
  const set = new RemoteJWKSet(url, options);
87
- return async (protectedHeader, token) => set.getKey(protectedHeader, token);
87
+ const remoteJWKSet = async (protectedHeader, token) => set.getKey(protectedHeader, token);
88
+ Object.defineProperties(remoteJWKSet, {
89
+ coolingDown: {
90
+ get: () => set.coolingDown(),
91
+ enumerable: true,
92
+ configurable: false,
93
+ },
94
+ fresh: {
95
+ get: () => set.fresh(),
96
+ enumerable: true,
97
+ configurable: false,
98
+ },
99
+ reload: {
100
+ value: () => set.reload(),
101
+ enumerable: true,
102
+ configurable: false,
103
+ writable: false,
104
+ },
105
+ reloading: {
106
+ get: () => !!set._pendingFetch,
107
+ enumerable: true,
108
+ configurable: false,
109
+ },
110
+ jwks: {
111
+ value: () => set._local?.jwks(),
112
+ enumerable: true,
113
+ configurable: false,
114
+ writable: false,
115
+ },
116
+ });
117
+ return remoteJWKSet;
88
118
  }
@@ -1,7 +1,7 @@
1
1
  import type { KeyLike, JWSHeaderParameters, JSONWebKeySet, FlattenedJWSInput } from '../types';
2
2
  /** @private */
3
3
  export declare class LocalJWKSet<KeyLikeType extends KeyLike = KeyLike> {
4
- protected _jwks?: JSONWebKeySet;
4
+ private _jwks?;
5
5
  private _cached;
6
6
  constructor(jwks: unknown);
7
7
  getKey(protectedHeader?: JWSHeaderParameters, token?: FlattenedJWSInput): Promise<KeyLikeType>;
@@ -1,4 +1,4 @@
1
- import type { KeyLike, JWSHeaderParameters, FlattenedJWSInput } from '../types';
1
+ import type { KeyLike, JWSHeaderParameters, FlattenedJWSInput, JSONWebKeySet } from '../types';
2
2
  /** Options for the remote JSON Web Key Set. */
3
3
  export interface RemoteJWKSetOptions {
4
4
  /**
@@ -53,4 +53,16 @@ export interface RemoteJWKSetOptions {
53
53
  * @param url URL to fetch the JSON Web Key Set from.
54
54
  * @param options Options for the remote JSON Web Key Set.
55
55
  */
56
- export declare function createRemoteJWKSet<KeyLikeType extends KeyLike = KeyLike>(url: URL, options?: RemoteJWKSetOptions): (protectedHeader?: JWSHeaderParameters, token?: FlattenedJWSInput) => Promise<KeyLikeType>;
56
+ export declare function createRemoteJWKSet<KeyLikeType extends KeyLike = KeyLike>(url: URL, options?: RemoteJWKSetOptions): {
57
+ (protectedHeader?: JWSHeaderParameters, token?: FlattenedJWSInput): Promise<KeyLikeType>;
58
+ /** @ignore */
59
+ coolingDown: boolean;
60
+ /** @ignore */
61
+ fresh: boolean;
62
+ /** @ignore */
63
+ reloading: boolean;
64
+ /** @ignore */
65
+ reload: () => Promise<void>;
66
+ /** @ignore */
67
+ jwks: () => JSONWebKeySet | undefined;
68
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jose",
3
- "version": "5.2.4",
3
+ "version": "5.3.0",
4
4
  "description": "JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes",
5
5
  "keywords": [
6
6
  "browser",