diff --git a/npm/ng-packs/packages/oauth/ng-package.json b/npm/ng-packs/packages/oauth/ng-package.json
index f9cb029dc0..79f6d63531 100644
--- a/npm/ng-packs/packages/oauth/ng-package.json
+++ b/npm/ng-packs/packages/oauth/ng-package.json
@@ -4,6 +4,13 @@
"lib": {
"entryFile": "src/public-api.ts"
},
+ "assets": [
+ {
+ "glob": "token-storage.worker.js",
+ "input": "src/lib/workers",
+ "output": "workers"
+ }
+ ],
"allowedNonPeerDependencies": [
"@abp/utils",
"@abp/ng.core",
diff --git a/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts b/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts
index 0d7bb3786f..45e09b8652 100644
--- a/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/services/memory-token-storage.service.ts
@@ -30,8 +30,11 @@ export class MemoryTokenStorageService implements OAuthStorage {
try {
// @ts-ignore
this.worker = new SharedWorker(
- new URL('../workers/token-storage.worker.ts', import.meta.url),
- { name: 'oauth-token-storage' }
+ new URL(
+ '../workers/token-storage.worker.js',
+ import.meta.url
+ ),
+ { name: 'oauth-token-storage', type: "module" }
);
this.port = this.worker.port;
diff --git a/npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.ts b/npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.js
similarity index 70%
rename from npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.ts
rename to npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.js
index a223f948be..bdf0e3bf17 100644
--- a/npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.ts
+++ b/npm/ng-packs/packages/oauth/src/lib/workers/token-storage.worker.js
@@ -1,23 +1,12 @@
-///
-///
-///
+// ESM SharedWorker
-declare const self: SharedWorkerGlobalScope;
+const tokenStore = new Map();
+const ports = new Set();
-interface TokenMessage {
- action: 'set' | 'remove' | 'clear' | 'get';
- key?: string;
- value?: string;
-}
-
-const tokenStore = new Map();
-const ports = new Set();
-
-self.onconnect = (event: MessageEvent) => {
+self.onconnect = (event) => {
const port = event.ports[0];
ports.add(port);
-
- port.onmessage = (e: MessageEvent) => {
+ port.onmessage = (e) => {
const { action, key, value } = e.data;
switch (action) {
case 'set':