@auth0/auth0-spa-js 2.19.1 → 2.19.2

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,2 +1,2 @@
1
- declare const _default: "2.19.1";
1
+ declare const _default: "2.19.2";
2
2
  export default _default;
@@ -23,5 +23,8 @@ export type WorkerRevokeTokenMessage = Omit<WorkerTokenMessage, 'auth'> & {
23
23
  audience: string;
24
24
  };
25
25
  };
26
- export type WorkerMessage = WorkerInitMessage | WorkerRefreshTokenMessage | WorkerRevokeTokenMessage;
26
+ export type WorkerClearMessage = {
27
+ type: 'clear';
28
+ };
29
+ export type WorkerMessage = WorkerInitMessage | WorkerRefreshTokenMessage | WorkerRevokeTokenMessage | WorkerClearMessage;
27
30
  export {};
@@ -1,4 +1,4 @@
1
- import { WorkerRefreshTokenMessage, WorkerRevokeTokenMessage } from './worker.types';
1
+ import { WorkerClearMessage, WorkerRefreshTokenMessage, WorkerRevokeTokenMessage } from './worker.types';
2
2
  /**
3
3
  * Sends a message to a Web Worker and returns a Promise that resolves with
4
4
  * the worker's response, or rejects if the worker replies with an error.
@@ -10,4 +10,4 @@ import { WorkerRefreshTokenMessage, WorkerRevokeTokenMessage } from './worker.ty
10
10
  * @param to - The target {@link Worker} instance.
11
11
  * @returns A Promise that resolves with the worker's response payload.
12
12
  */
13
- export declare const sendMessage: <T = any>(message: WorkerRefreshTokenMessage | WorkerRevokeTokenMessage, to: Worker) => Promise<T>;
13
+ export declare const sendMessage: <T = any>(message: WorkerRefreshTokenMessage | WorkerRevokeTokenMessage | WorkerClearMessage, to: Worker) => Promise<T>;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "name": "@auth0/auth0-spa-js",
4
4
  "description": "Auth0 SDK for Single Page Applications using Authorization Code Grant Flow with PKCE",
5
5
  "license": "MIT",
6
- "version": "2.19.1",
6
+ "version": "2.19.2",
7
7
  "main": "dist/lib/auth0-spa-js.cjs.js",
8
8
  "types": "dist/typings/index.d.ts",
9
9
  "module": "dist/auth0-spa-js.production.esm.js",
@@ -96,6 +96,7 @@ import {
96
96
 
97
97
  // @ts-ignore
98
98
  import TokenWorker from './worker/token.worker.ts';
99
+ import { sendMessage } from './worker/worker.utils';
99
100
  import { singlePromise, retryPromise } from './promise-utils';
100
101
  import { CacheKeyManifest } from './cache/key-manifest';
101
102
  import {
@@ -1247,6 +1248,15 @@ export class Auth0Client {
1247
1248
 
1248
1249
  await this.dpop?.clear();
1249
1250
 
1251
+ if (this.worker) {
1252
+ try {
1253
+ await sendMessage({ type: 'clear' }, this.worker);
1254
+ } catch {
1255
+ // Worker is an internal, best-effort cleanup channel. If the ACK round-trip
1256
+ // fails we still proceed with logout so the user is not left in a half-state.
1257
+ }
1258
+ }
1259
+
1250
1260
  const url = this._buildLogoutUrl(logoutOptions);
1251
1261
 
1252
1262
  if (openUrl) {
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export default '2.19.1';
1
+ export default '2.19.2';
@@ -316,6 +316,12 @@ const messageRouter = (event: MessageEvent<WorkerMessage>) => {
316
316
  return;
317
317
  }
318
318
 
319
+ if ('type' in data && data.type === 'clear') {
320
+ refreshTokens = {};
321
+ port?.postMessage({ ok: true });
322
+ return;
323
+ }
324
+
319
325
  if ('type' in data && data.type === 'revoke') {
320
326
  if (!isAuthorizedWorkerRequest(data as WorkerRevokeTokenMessage, '/oauth/revoke')) {
321
327
  port?.postMessage({
@@ -28,7 +28,12 @@ export type WorkerRevokeTokenMessage = Omit<WorkerTokenMessage, 'auth'> & {
28
28
  };
29
29
  };
30
30
 
31
+ export type WorkerClearMessage = {
32
+ type: 'clear';
33
+ };
34
+
31
35
  export type WorkerMessage =
32
36
  | WorkerInitMessage
33
37
  | WorkerRefreshTokenMessage
34
- | WorkerRevokeTokenMessage;
38
+ | WorkerRevokeTokenMessage
39
+ | WorkerClearMessage;
@@ -1,4 +1,5 @@
1
1
  import {
2
+ WorkerClearMessage,
2
3
  WorkerRefreshTokenMessage,
3
4
  WorkerRevokeTokenMessage
4
5
  } from './worker.types';
@@ -15,7 +16,10 @@ import {
15
16
  * @returns A Promise that resolves with the worker's response payload.
16
17
  */
17
18
  export const sendMessage = <T = any>(
18
- message: WorkerRefreshTokenMessage | WorkerRevokeTokenMessage,
19
+ message:
20
+ | WorkerRefreshTokenMessage
21
+ | WorkerRevokeTokenMessage
22
+ | WorkerClearMessage,
19
23
  to: Worker
20
24
  ): Promise<T> =>
21
25
  new Promise<T>(function (resolve, reject) {