@lvce-editor/auth-worker 3.3.0 → 3.4.1

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.
@@ -1060,6 +1060,100 @@ const initializeOpenerWorker = async () => {
1060
1060
  set(rpc);
1061
1061
  };
1062
1062
 
1063
+ const databaseName = 'auth-worker';
1064
+ const objectStoreName = 'auth';
1065
+ const memoryStorage = new Map();
1066
+ const state$1 = {
1067
+ databasePromise: undefined
1068
+ };
1069
+
1070
+ // IndexedDB request objects are mutable browser primitives and cannot satisfy the readonly rule structurally.
1071
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1072
+ const requestToPromise = request => {
1073
+ return new Promise((resolve, reject) => {
1074
+ request.addEventListener('success', () => {
1075
+ resolve(request.result);
1076
+ });
1077
+ request.addEventListener('error', () => {
1078
+ reject(request.error ?? new Error('Persistent storage request failed.'));
1079
+ });
1080
+ });
1081
+ };
1082
+
1083
+ // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1084
+ const transactionToPromise = transaction => {
1085
+ return new Promise((resolve, reject) => {
1086
+ transaction.addEventListener('complete', () => {
1087
+ resolve();
1088
+ });
1089
+ transaction.addEventListener('abort', () => {
1090
+ reject(transaction.error ?? new Error('Persistent storage transaction failed.'));
1091
+ });
1092
+ transaction.addEventListener('error', () => {
1093
+ reject(transaction.error ?? new Error('Persistent storage transaction failed.'));
1094
+ });
1095
+ });
1096
+ };
1097
+ const getDatabase = async () => {
1098
+ if (typeof indexedDB === 'undefined') {
1099
+ return undefined;
1100
+ }
1101
+ if (!state$1.databasePromise) {
1102
+ state$1.databasePromise = new Promise((resolve, reject) => {
1103
+ const request = indexedDB.open(databaseName, 1);
1104
+ request.addEventListener('upgradeneeded', () => {
1105
+ const database = request.result;
1106
+ if (!database.objectStoreNames.contains(objectStoreName)) {
1107
+ database.createObjectStore(objectStoreName);
1108
+ }
1109
+ });
1110
+ request.addEventListener('success', () => {
1111
+ resolve(request.result);
1112
+ });
1113
+ request.addEventListener('error', () => {
1114
+ reject(request.error ?? new Error('Failed to open persistent auth storage.'));
1115
+ });
1116
+ });
1117
+ }
1118
+ return state$1.databasePromise;
1119
+ };
1120
+ const getPersistentAuthValue = async key => {
1121
+ const database = await getDatabase();
1122
+ if (!database) {
1123
+ return memoryStorage.get(key) ?? '';
1124
+ }
1125
+ const transaction = database.transaction(objectStoreName, 'readonly');
1126
+ const objectStore = transaction.objectStore(objectStoreName);
1127
+ const value = await requestToPromise(objectStore.get(key));
1128
+ return typeof value === 'string' ? value : '';
1129
+ };
1130
+ const setPersistentAuthValue = async (key, value) => {
1131
+ memoryStorage.set(key, value);
1132
+ const database = await getDatabase();
1133
+ if (!database) {
1134
+ return;
1135
+ }
1136
+ const transaction = database.transaction(objectStoreName, 'readwrite');
1137
+ const objectStore = transaction.objectStore(objectStoreName);
1138
+ objectStore.put(value, key);
1139
+ await transactionToPromise(transaction);
1140
+ };
1141
+ const clearPersistentAuthValue = async key => {
1142
+ memoryStorage.delete(key);
1143
+ const database = await getDatabase();
1144
+ if (!database) {
1145
+ return;
1146
+ }
1147
+ const transaction = database.transaction(objectStoreName, 'readwrite');
1148
+ const objectStore = transaction.objectStore(objectStoreName);
1149
+ objectStore.delete(key);
1150
+ await transactionToPromise(transaction);
1151
+ };
1152
+
1153
+ const getAccessToken = () => {
1154
+ return getPersistentAuthValue('accessToken');
1155
+ };
1156
+
1063
1157
  const handleMessagePort = async (port, rpcId) => {
1064
1158
  const rpc = await create$4({
1065
1159
  commandMap: commandMap,
@@ -1957,96 +2051,6 @@ const getOidcUserName = async (backendUrl, accessToken, fetchFn = fetch) => {
1957
2051
  return typeof displayName === 'string' ? displayName : '';
1958
2052
  };
1959
2053
 
1960
- const databaseName = 'auth-worker';
1961
- const objectStoreName = 'auth';
1962
- const memoryStorage = new Map();
1963
- const state$1 = {
1964
- databasePromise: undefined
1965
- };
1966
-
1967
- // IndexedDB request objects are mutable browser primitives and cannot satisfy the readonly rule structurally.
1968
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1969
- const requestToPromise = request => {
1970
- return new Promise((resolve, reject) => {
1971
- request.addEventListener('success', () => {
1972
- resolve(request.result);
1973
- });
1974
- request.addEventListener('error', () => {
1975
- reject(request.error ?? new Error('Persistent storage request failed.'));
1976
- });
1977
- });
1978
- };
1979
-
1980
- // eslint-disable-next-line @typescript-eslint/prefer-readonly-parameter-types
1981
- const transactionToPromise = transaction => {
1982
- return new Promise((resolve, reject) => {
1983
- transaction.addEventListener('complete', () => {
1984
- resolve();
1985
- });
1986
- transaction.addEventListener('abort', () => {
1987
- reject(transaction.error ?? new Error('Persistent storage transaction failed.'));
1988
- });
1989
- transaction.addEventListener('error', () => {
1990
- reject(transaction.error ?? new Error('Persistent storage transaction failed.'));
1991
- });
1992
- });
1993
- };
1994
- const getDatabase = async () => {
1995
- if (typeof indexedDB === 'undefined') {
1996
- return undefined;
1997
- }
1998
- if (!state$1.databasePromise) {
1999
- state$1.databasePromise = new Promise((resolve, reject) => {
2000
- const request = indexedDB.open(databaseName, 1);
2001
- request.addEventListener('upgradeneeded', () => {
2002
- const database = request.result;
2003
- if (!database.objectStoreNames.contains(objectStoreName)) {
2004
- database.createObjectStore(objectStoreName);
2005
- }
2006
- });
2007
- request.addEventListener('success', () => {
2008
- resolve(request.result);
2009
- });
2010
- request.addEventListener('error', () => {
2011
- reject(request.error ?? new Error('Failed to open persistent auth storage.'));
2012
- });
2013
- });
2014
- }
2015
- return state$1.databasePromise;
2016
- };
2017
- const getPersistentAuthValue = async key => {
2018
- const database = await getDatabase();
2019
- if (!database) {
2020
- return memoryStorage.get(key) ?? '';
2021
- }
2022
- const transaction = database.transaction(objectStoreName, 'readonly');
2023
- const objectStore = transaction.objectStore(objectStoreName);
2024
- const value = await requestToPromise(objectStore.get(key));
2025
- return typeof value === 'string' ? value : '';
2026
- };
2027
- const setPersistentAuthValue = async (key, value) => {
2028
- memoryStorage.set(key, value);
2029
- const database = await getDatabase();
2030
- if (!database) {
2031
- return;
2032
- }
2033
- const transaction = database.transaction(objectStoreName, 'readwrite');
2034
- const objectStore = transaction.objectStore(objectStoreName);
2035
- objectStore.put(value, key);
2036
- await transactionToPromise(transaction);
2037
- };
2038
- const clearPersistentAuthValue = async key => {
2039
- memoryStorage.delete(key);
2040
- const database = await getDatabase();
2041
- if (!database) {
2042
- return;
2043
- }
2044
- const transaction = database.transaction(objectStoreName, 'readwrite');
2045
- const objectStore = transaction.objectStore(objectStoreName);
2046
- objectStore.delete(key);
2047
- await transactionToPromise(transaction);
2048
- };
2049
-
2050
2054
  const callbackUrlKey = 'oidcCallbackUrl';
2051
2055
  const clientIdKey = 'oidcClientId';
2052
2056
  const pendingClientIdKey = 'pendingOidcClientId';
@@ -2494,6 +2498,10 @@ const waitForBackendLogin = async (backendUrl, timeoutMs = 30_000, pollIntervalM
2494
2498
  return getLoggedOutBackendAuthState(lastErrorMessage);
2495
2499
  };
2496
2500
 
2501
+ const getAuthUseRedirect = platform => {
2502
+ return platform !== Electron;
2503
+ };
2504
+
2497
2505
  // cspell:ignore pkce
2498
2506
 
2499
2507
  const createPkceValues = async () => {
@@ -2894,7 +2902,8 @@ const getMockLoginResult = async signingInState => {
2894
2902
  }
2895
2903
  return persistLoginResult(getLoggedInState(signingInState, response));
2896
2904
  };
2897
- const getInteractiveLoginResult = async (backendUrl, platform, authUseRedirect, signingInState) => {
2905
+ const getInteractiveLoginResult = async (backendUrl, platform, signingInState) => {
2906
+ const authUseRedirect = getAuthUseRedirect(platform);
2898
2907
  const uid = 0;
2899
2908
  const {
2900
2909
  clientId,
@@ -2926,7 +2935,6 @@ const getInteractiveLoginResult = async (backendUrl, platform, authUseRedirect,
2926
2935
  };
2927
2936
  const handleClickLogin = async options => {
2928
2937
  const {
2929
- authUseRedirect,
2930
2938
  backendUrl,
2931
2939
  platform
2932
2940
  } = options;
@@ -2945,7 +2953,7 @@ const handleClickLogin = async options => {
2945
2953
  if (mockLoginResult) {
2946
2954
  return mockLoginResult;
2947
2955
  }
2948
- return getInteractiveLoginResult(backendUrl, platform, authUseRedirect, signingInState);
2956
+ return getInteractiveLoginResult(backendUrl, platform, signingInState);
2949
2957
  } catch (error) {
2950
2958
  await clearPendingOidcAuthState();
2951
2959
  const errorMessage = error instanceof Error && error.message ? error.message : 'Backend authentication failed.';
@@ -2973,6 +2981,7 @@ const commandMap = {
2973
2981
  'Auth.clearMocks': clear,
2974
2982
  'Auth.consumeNextLoginResponse': consumeNextLoginResponse,
2975
2983
  'Auth.consumeNextRefreshResponse': consumeNextRefreshResponse,
2984
+ 'Auth.getAccessToken': getAccessToken,
2976
2985
  'Auth.hasPendingMockLoginResponse': hasPendingMockLoginResponse,
2977
2986
  'Auth.hasPendingMockRefreshResponse': hasPendingMockRefreshResponse,
2978
2987
  'Auth.initialize': initialize,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/auth-worker",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Auth Worker",
5
5
  "repository": {
6
6
  "type": "git",