@frontegg/ionic-capacitor 2.0.9 → 2.0.10-alpha.11028082347
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.
- package/README.md +2 -3
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/frontegg/ionic/FronteggNativePlugin.java +14 -2
- package/dist/esm/frontegg.service.d.ts +7 -0
- package/dist/esm/frontegg.service.js +53 -9
- package/dist/esm/frontegg.service.js.map +1 -1
- package/dist/plugin.cjs.js +53 -9
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +53 -9
- package/dist/plugin.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# @frontegg/ionic-capacitor
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
features for the product-led era.
|
|
3
|
+
The @frontegg/ionic-capacitor SDK integrates Frontegg's authentication and user management capabilities into Ionic Capacitor apps. It simplifies adding features like login, signup, and user profile management, enhancing security and user experience for mobile applications. Follow the integration steps below to use the SDK:
|
|
5
4
|
|
|
6
5
|
## Table of Contents
|
|
7
6
|
|
|
@@ -901,4 +900,4 @@ const config: CapacitorConfig = {
|
|
|
901
900
|
};
|
|
902
901
|
|
|
903
902
|
export default config;
|
|
904
|
-
```
|
|
903
|
+
```
|
package/android/build.gradle
CHANGED
|
@@ -55,7 +55,7 @@ dependencies {
|
|
|
55
55
|
implementation "androidx.browser:browser:1.5.0"
|
|
56
56
|
implementation 'io.reactivex.rxjava3:rxkotlin:3.0.1'
|
|
57
57
|
implementation 'com.google.code.gson:gson:2.10'
|
|
58
|
-
implementation 'com.frontegg.sdk:android:1.2.24'
|
|
58
|
+
implementation 'com.frontegg.sdk:android:1.2.24-alpha.1727219461009'
|
|
59
59
|
|
|
60
60
|
testImplementation "junit:junit:$junitVersion"
|
|
61
61
|
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
|
|
@@ -3,6 +3,7 @@ package com.frontegg.ionic;
|
|
|
3
3
|
|
|
4
4
|
import android.os.Handler;
|
|
5
5
|
import android.os.Looper;
|
|
6
|
+
import android.util.Log;
|
|
6
7
|
|
|
7
8
|
import com.frontegg.android.FronteggApp;
|
|
8
9
|
import com.frontegg.android.FronteggAuth;
|
|
@@ -35,9 +36,11 @@ public class FronteggNativePlugin extends Plugin {
|
|
|
35
36
|
private Disposable disposable = null;
|
|
36
37
|
private final Debouncer debouncer = new Debouncer(50); // 200ms delay
|
|
37
38
|
|
|
39
|
+
|
|
38
40
|
@Override
|
|
39
41
|
public void load() {
|
|
40
42
|
|
|
43
|
+
Log.d("FronteggNative", "Loading FronteggNativePlugin");
|
|
41
44
|
// for regions initialization
|
|
42
45
|
List<RegionConfig> regions = new ArrayList<>();
|
|
43
46
|
boolean useAssetLinks = this.getConfig().getBoolean("useAssetLinks", true);
|
|
@@ -211,16 +214,25 @@ public class FronteggNativePlugin extends Plugin {
|
|
|
211
214
|
});
|
|
212
215
|
}
|
|
213
216
|
|
|
217
|
+
|
|
214
218
|
@PluginMethod
|
|
215
219
|
public void refreshToken(PluginCall call) {
|
|
216
220
|
ExecutorService executor = Executors.newSingleThreadExecutor();
|
|
217
221
|
executor.submit(() -> {
|
|
218
|
-
FronteggApp.Companion.getInstance().getAuth().refreshTokenIfNeeded();
|
|
219
222
|
Handler handler = new Handler(Looper.getMainLooper());
|
|
220
|
-
|
|
223
|
+
FronteggAuth fronteggAuth = FronteggAuth.Companion.getInstance();
|
|
224
|
+
if (!fronteggAuth.refreshTokenIfNeeded()) {
|
|
225
|
+
fronteggAuth.logout(() -> {
|
|
226
|
+
handler.post(call::resolve);
|
|
227
|
+
return null;
|
|
228
|
+
});
|
|
229
|
+
} else {
|
|
230
|
+
handler.post(call::resolve);
|
|
231
|
+
}
|
|
221
232
|
});
|
|
222
233
|
}
|
|
223
234
|
|
|
235
|
+
|
|
224
236
|
@PluginMethod
|
|
225
237
|
public void getAuthState(PluginCall call) {
|
|
226
238
|
call.resolve(getData());
|
|
@@ -10,14 +10,21 @@ export declare class FronteggService {
|
|
|
10
10
|
getState(): FronteggState;
|
|
11
11
|
getNativeState(): Promise<FronteggState>;
|
|
12
12
|
get $isLoading(): FronteggObservable<'isLoading'>;
|
|
13
|
+
get $showLoader(): FronteggObservable<'showLoader'>;
|
|
13
14
|
get $isAuthenticated(): FronteggObservable<'isAuthenticated'>;
|
|
14
15
|
get $user(): FronteggObservable<'user'>;
|
|
15
16
|
get $accessToken(): FronteggObservable<'accessToken'>;
|
|
17
|
+
get $refreshingToken(): FronteggObservable<'refreshingToken'>;
|
|
16
18
|
get $selectedRegion(): FronteggObservable<'selectedRegion'>;
|
|
17
19
|
/**
|
|
18
20
|
* Call frontegg native login method
|
|
19
21
|
*/
|
|
20
22
|
login(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Wait for loader to finish
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
waitForLoader(): Promise<boolean>;
|
|
21
28
|
/**
|
|
22
29
|
* Used to log in with social login provider directly without visiting the login page
|
|
23
30
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
@@ -15,6 +15,7 @@ export class FronteggService {
|
|
|
15
15
|
'showLoader',
|
|
16
16
|
'refreshingToken',
|
|
17
17
|
'initializing',
|
|
18
|
+
'isLoading',
|
|
18
19
|
];
|
|
19
20
|
this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);
|
|
20
21
|
this.logger.info('FronteggService created');
|
|
@@ -41,16 +42,17 @@ export class FronteggService {
|
|
|
41
42
|
initializing: new Set(),
|
|
42
43
|
};
|
|
43
44
|
FronteggNative.addListener('onFronteggAuthEvent', (state) => {
|
|
44
|
-
this.logger.info('onFronteggAuthEvent', {
|
|
45
|
+
this.logger.info('onFronteggAuthEvent', JSON.stringify({
|
|
45
46
|
isAuthenticated: state.isAuthenticated,
|
|
46
47
|
showLoader: state.isLoading,
|
|
48
|
+
isLoading: state.isLoading,
|
|
47
49
|
user: `${state.user}`,
|
|
48
50
|
accessToken: state.accessToken ? '****' : null,
|
|
49
51
|
refreshToken: state.refreshToken,
|
|
50
52
|
selectedRegion: state.selectedRegion,
|
|
51
53
|
refreshingToken: state.refreshingToken,
|
|
52
54
|
initializing: state.initializing,
|
|
53
|
-
});
|
|
55
|
+
}));
|
|
54
56
|
const keys = this.orderedListenerKeys;
|
|
55
57
|
keys.forEach(key => {
|
|
56
58
|
if (this.isChanged(this.state[key], state[key])) {
|
|
@@ -62,15 +64,15 @@ export class FronteggService {
|
|
|
62
64
|
this.state = state;
|
|
63
65
|
});
|
|
64
66
|
FronteggNative.getAuthState().then((state) => {
|
|
65
|
-
this.logger.info(
|
|
67
|
+
this.logger.info(`getAuthState(): \n ${JSON.stringify(state)} DONE`);
|
|
66
68
|
const keys = Object.keys(this.mapListeners);
|
|
67
|
-
for (const item of keys) {
|
|
69
|
+
for (const item of keys.filter(key => key !== 'initializing')) {
|
|
68
70
|
const key = item;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
72
|
-
}
|
|
71
|
+
this.state[key] = state[key];
|
|
72
|
+
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
73
73
|
}
|
|
74
|
+
this.state.initializing = false;
|
|
75
|
+
this.mapListeners.initializing.forEach((listener) => listener(false));
|
|
74
76
|
});
|
|
75
77
|
}
|
|
76
78
|
isChanged(obj1, obj2) {
|
|
@@ -127,6 +129,10 @@ export class FronteggService {
|
|
|
127
129
|
get $isLoading() {
|
|
128
130
|
return createObservable(this.mapListeners, this.state, 'isLoading');
|
|
129
131
|
}
|
|
132
|
+
// @deprecated use $isLoading instead
|
|
133
|
+
get $showLoader() {
|
|
134
|
+
return createObservable(this.mapListeners, this.state, 'showLoader');
|
|
135
|
+
}
|
|
130
136
|
get $isAuthenticated() {
|
|
131
137
|
return createObservable(this.mapListeners, this.state, 'isAuthenticated');
|
|
132
138
|
}
|
|
@@ -136,6 +142,9 @@ export class FronteggService {
|
|
|
136
142
|
get $accessToken() {
|
|
137
143
|
return createObservable(this.mapListeners, this.state, 'accessToken');
|
|
138
144
|
}
|
|
145
|
+
get $refreshingToken() {
|
|
146
|
+
return createObservable(this.mapListeners, this.state, 'refreshingToken');
|
|
147
|
+
}
|
|
139
148
|
get $selectedRegion() {
|
|
140
149
|
return createObservable(this.mapListeners, this.state, 'selectedRegion');
|
|
141
150
|
}
|
|
@@ -145,13 +154,48 @@ export class FronteggService {
|
|
|
145
154
|
login() {
|
|
146
155
|
return FronteggNative.login();
|
|
147
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Wait for loader to finish
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
async waitForLoader() {
|
|
162
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
163
|
+
return new Promise(async (resolve) => {
|
|
164
|
+
console.log('checking is loading');
|
|
165
|
+
const state = await this.getNativeState();
|
|
166
|
+
let isLoading = state.isLoading;
|
|
167
|
+
console.log('checking is loading', JSON.stringify({ isLoading }));
|
|
168
|
+
if (!isLoading) {
|
|
169
|
+
resolve(true);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
console.log('isLoading is true, waiting for it to be false');
|
|
173
|
+
while (isLoading) {
|
|
174
|
+
const { isLoading: newIsLoading } = await this.getNativeState();
|
|
175
|
+
if (!newIsLoading) {
|
|
176
|
+
resolve(true);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
isLoading = newIsLoading;
|
|
180
|
+
await new Promise(r => setTimeout(r, 100));
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
148
184
|
/**
|
|
149
185
|
* Used to log in with social login provider directly without visiting the login page
|
|
150
186
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
151
187
|
* @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)
|
|
152
188
|
* @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser
|
|
153
189
|
*/
|
|
154
|
-
directLoginAction(type, data, ephemeralSession = true) {
|
|
190
|
+
async directLoginAction(type, data, ephemeralSession = true) {
|
|
191
|
+
const state = await this.getNativeState();
|
|
192
|
+
console.log('direct login action', state);
|
|
193
|
+
await this.waitForLoader();
|
|
194
|
+
if (state.isAuthenticated) {
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
this.state.isLoading = true;
|
|
198
|
+
this.mapListeners.isLoading.forEach((listener) => listener(true));
|
|
155
199
|
return FronteggNative.directLoginAction({ type, data, ephemeralSession });
|
|
156
200
|
}
|
|
157
201
|
logout() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontegg.service.js","sourceRoot":"","sources":["../../src/frontegg.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type {\n FronteggConstants,\n FronteggNativePlugin,\n FronteggServiceOptions,\n FronteggState,\n SubscribeMap,\n} from './definitions';\nimport { Logger } from './logger';\nimport type { FronteggObservable } from './observables';\nimport { createObservable } from './observables';\n\nconst FronteggNative = registerPlugin<FronteggNativePlugin>('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\n\nexport class FronteggService {\n private state: FronteggState;\n private logger: Logger;\n private mapListeners: SubscribeMap<FronteggState>;\n private readonly orderedListenerKeys: (keyof FronteggState)[] = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n ];\n\n constructor(options?: FronteggServiceOptions) {\n this.logger = new Logger(options?.logLevel);\n\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n\n FronteggNative.addListener(\n 'onFronteggAuthEvent',\n (state: FronteggState) => {\n this.logger.info('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n user: `${state.user}`, // prevent log full user object // null | undefined | [object Object]\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n });\n\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n (this.state as any)[key] = state[key];\n this.mapListeners[key].forEach((listener: any) =>\n listener(state[key]),\n );\n }\n });\n this.state = state;\n },\n );\n\n FronteggNative.getAuthState().then((state: FronteggState) => {\n this.logger.info('getAuthState()', state);\n\n const keys = Object.keys(this.mapListeners);\n for (const item of keys) {\n const key = item as keyof FronteggState;\n if (this.isChanged(this.state[key], state[key])) {\n (this.state as any)[key] = state[key];\n this.mapListeners[key].forEach((listener: any) =>\n listener(state[key]),\n );\n }\n }\n });\n }\n\n private isChanged(obj1: any, obj2: any): boolean {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n\n // Check for null and undefined\n if (\n obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined\n ) {\n return obj1 !== obj2;\n }\n\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return true;\n }\n\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n\n // If none of the above conditions match, the values have changed\n return true;\n }\n\n public getState(): FronteggState {\n return this.state;\n }\n\n public getNativeState(): Promise<FronteggState> {\n return FronteggNative.getAuthState();\n }\n\n public get $isLoading(): FronteggObservable<'isLoading'> {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n\n public get $isAuthenticated(): FronteggObservable<'isAuthenticated'> {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n\n public get $user(): FronteggObservable<'user'> {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n\n public get $accessToken(): FronteggObservable<'accessToken'> {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n\n public get $selectedRegion(): FronteggObservable<'selectedRegion'> {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n\n /**\n * Call frontegg native login method\n */\n public login(): Promise<void> {\n return FronteggNative.login();\n }\n\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n public directLoginAction(\n type: string,\n data: string,\n ephemeralSession = true,\n ): Promise<boolean> {\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n\n public logout(): void {\n FronteggNative.logout();\n }\n\n public getConstants(): Promise<FronteggConstants> {\n return FronteggNative.getConstants();\n }\n\n public switchTenant(tenantId: string): Promise<void> {\n return FronteggNative.switchTenant({ tenantId });\n }\n\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n public initWithRegion(regionKey: string): Promise<void> {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n\n public refreshToken(): Promise<void> {\n return FronteggNative.refreshToken();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"frontegg.service.js","sourceRoot":"","sources":["../../src/frontegg.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { registerPlugin } from '@capacitor/core';\n\nimport type {\n FronteggConstants,\n FronteggNativePlugin,\n FronteggServiceOptions,\n FronteggState,\n SubscribeMap,\n} from './definitions';\nimport { Logger } from './logger';\nimport type { FronteggObservable } from './observables';\nimport { createObservable } from './observables';\n\nconst FronteggNative = registerPlugin<FronteggNativePlugin>('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\n\nexport class FronteggService {\n private state: FronteggState;\n private logger: Logger;\n private mapListeners: SubscribeMap<FronteggState>;\n private readonly orderedListenerKeys: (keyof FronteggState)[] = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n 'isLoading',\n ];\n\n constructor(options?: FronteggServiceOptions) {\n this.logger = new Logger(options?.logLevel);\n\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n\n FronteggNative.addListener(\n 'onFronteggAuthEvent',\n (state: FronteggState) => {\n this.logger.info(\n 'onFronteggAuthEvent',\n JSON.stringify({\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n isLoading: state.isLoading,\n user: `${state.user}`, // prevent log full user object // null | undefined | [object Object]\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n }),\n );\n\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n (this.state as any)[key] = state[key];\n this.mapListeners[key].forEach((listener: any) =>\n listener(state[key]),\n );\n }\n });\n this.state = state;\n },\n );\n\n FronteggNative.getAuthState().then((state: FronteggState) => {\n this.logger.info(`getAuthState(): \\n ${JSON.stringify(state)} DONE`);\n\n const keys = Object.keys(this.mapListeners);\n for (const item of keys.filter(key => key !== 'initializing')) {\n const key = item as keyof FronteggState;\n\n (this.state as any)[key] = state[key];\n this.mapListeners[key].forEach((listener: any) => listener(state[key]));\n }\n\n this.state.initializing = false;\n this.mapListeners.initializing.forEach((listener: any) =>\n listener(false),\n );\n });\n }\n\n private isChanged(obj1: any, obj2: any): boolean {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n\n // Check for null and undefined\n if (\n obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined\n ) {\n return obj1 !== obj2;\n }\n\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n\n if (keys1.length !== keys2.length) {\n return true;\n }\n\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n\n // If none of the above conditions match, the values have changed\n return true;\n }\n\n public getState(): FronteggState {\n return this.state;\n }\n\n public getNativeState(): Promise<FronteggState> {\n return FronteggNative.getAuthState();\n }\n\n public get $isLoading(): FronteggObservable<'isLoading'> {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n\n // @deprecated use $isLoading instead\n public get $showLoader(): FronteggObservable<'showLoader'> {\n return createObservable(this.mapListeners, this.state, 'showLoader');\n }\n\n public get $isAuthenticated(): FronteggObservable<'isAuthenticated'> {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n\n public get $user(): FronteggObservable<'user'> {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n\n public get $accessToken(): FronteggObservable<'accessToken'> {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n\n public get $refreshingToken(): FronteggObservable<'refreshingToken'> {\n return createObservable(this.mapListeners, this.state, 'refreshingToken');\n }\n\n public get $selectedRegion(): FronteggObservable<'selectedRegion'> {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n\n /**\n * Call frontegg native login method\n */\n public login(): Promise<void> {\n return FronteggNative.login();\n }\n\n /**\n * Wait for loader to finish\n * @private\n */\n public async waitForLoader(): Promise<boolean> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<boolean>(async resolve => {\n console.log('checking is loading');\n const state = await this.getNativeState();\n let isLoading = state.isLoading;\n\n console.log('checking is loading', JSON.stringify({ isLoading }));\n if (!isLoading) {\n resolve(true);\n return;\n }\n console.log('isLoading is true, waiting for it to be false');\n while (isLoading) {\n const { isLoading: newIsLoading } = await this.getNativeState();\n if (!newIsLoading) {\n resolve(true);\n return;\n }\n isLoading = newIsLoading;\n await new Promise(r => setTimeout(r, 100));\n }\n });\n }\n\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n public async directLoginAction(\n type: string,\n data: string,\n ephemeralSession = true,\n ): Promise<boolean> {\n const state = await this.getNativeState();\n console.log('direct login action', state);\n await this.waitForLoader();\n if (state.isAuthenticated) {\n return true;\n }\n\n this.state.isLoading = true;\n this.mapListeners.isLoading.forEach((listener: any) => listener(true));\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n\n public logout(): void {\n FronteggNative.logout();\n }\n\n public getConstants(): Promise<FronteggConstants> {\n return FronteggNative.getConstants();\n }\n\n public switchTenant(tenantId: string): Promise<void> {\n return FronteggNative.switchTenant({ tenantId });\n }\n\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n public initWithRegion(regionKey: string): Promise<void> {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n\n public refreshToken(): Promise<void> {\n return FronteggNative.refreshToken();\n }\n}\n"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -70,6 +70,7 @@ class FronteggService {
|
|
|
70
70
|
'showLoader',
|
|
71
71
|
'refreshingToken',
|
|
72
72
|
'initializing',
|
|
73
|
+
'isLoading',
|
|
73
74
|
];
|
|
74
75
|
this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);
|
|
75
76
|
this.logger.info('FronteggService created');
|
|
@@ -96,16 +97,17 @@ class FronteggService {
|
|
|
96
97
|
initializing: new Set(),
|
|
97
98
|
};
|
|
98
99
|
FronteggNative.addListener('onFronteggAuthEvent', (state) => {
|
|
99
|
-
this.logger.info('onFronteggAuthEvent', {
|
|
100
|
+
this.logger.info('onFronteggAuthEvent', JSON.stringify({
|
|
100
101
|
isAuthenticated: state.isAuthenticated,
|
|
101
102
|
showLoader: state.isLoading,
|
|
103
|
+
isLoading: state.isLoading,
|
|
102
104
|
user: `${state.user}`,
|
|
103
105
|
accessToken: state.accessToken ? '****' : null,
|
|
104
106
|
refreshToken: state.refreshToken,
|
|
105
107
|
selectedRegion: state.selectedRegion,
|
|
106
108
|
refreshingToken: state.refreshingToken,
|
|
107
109
|
initializing: state.initializing,
|
|
108
|
-
});
|
|
110
|
+
}));
|
|
109
111
|
const keys = this.orderedListenerKeys;
|
|
110
112
|
keys.forEach(key => {
|
|
111
113
|
if (this.isChanged(this.state[key], state[key])) {
|
|
@@ -117,15 +119,15 @@ class FronteggService {
|
|
|
117
119
|
this.state = state;
|
|
118
120
|
});
|
|
119
121
|
FronteggNative.getAuthState().then((state) => {
|
|
120
|
-
this.logger.info(
|
|
122
|
+
this.logger.info(`getAuthState(): \n ${JSON.stringify(state)} DONE`);
|
|
121
123
|
const keys = Object.keys(this.mapListeners);
|
|
122
|
-
for (const item of keys) {
|
|
124
|
+
for (const item of keys.filter(key => key !== 'initializing')) {
|
|
123
125
|
const key = item;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
127
|
-
}
|
|
126
|
+
this.state[key] = state[key];
|
|
127
|
+
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
128
128
|
}
|
|
129
|
+
this.state.initializing = false;
|
|
130
|
+
this.mapListeners.initializing.forEach((listener) => listener(false));
|
|
129
131
|
});
|
|
130
132
|
}
|
|
131
133
|
isChanged(obj1, obj2) {
|
|
@@ -182,6 +184,10 @@ class FronteggService {
|
|
|
182
184
|
get $isLoading() {
|
|
183
185
|
return createObservable(this.mapListeners, this.state, 'isLoading');
|
|
184
186
|
}
|
|
187
|
+
// @deprecated use $isLoading instead
|
|
188
|
+
get $showLoader() {
|
|
189
|
+
return createObservable(this.mapListeners, this.state, 'showLoader');
|
|
190
|
+
}
|
|
185
191
|
get $isAuthenticated() {
|
|
186
192
|
return createObservable(this.mapListeners, this.state, 'isAuthenticated');
|
|
187
193
|
}
|
|
@@ -191,6 +197,9 @@ class FronteggService {
|
|
|
191
197
|
get $accessToken() {
|
|
192
198
|
return createObservable(this.mapListeners, this.state, 'accessToken');
|
|
193
199
|
}
|
|
200
|
+
get $refreshingToken() {
|
|
201
|
+
return createObservable(this.mapListeners, this.state, 'refreshingToken');
|
|
202
|
+
}
|
|
194
203
|
get $selectedRegion() {
|
|
195
204
|
return createObservable(this.mapListeners, this.state, 'selectedRegion');
|
|
196
205
|
}
|
|
@@ -200,13 +209,48 @@ class FronteggService {
|
|
|
200
209
|
login() {
|
|
201
210
|
return FronteggNative.login();
|
|
202
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Wait for loader to finish
|
|
214
|
+
* @private
|
|
215
|
+
*/
|
|
216
|
+
async waitForLoader() {
|
|
217
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
218
|
+
return new Promise(async (resolve) => {
|
|
219
|
+
console.log('checking is loading');
|
|
220
|
+
const state = await this.getNativeState();
|
|
221
|
+
let isLoading = state.isLoading;
|
|
222
|
+
console.log('checking is loading', JSON.stringify({ isLoading }));
|
|
223
|
+
if (!isLoading) {
|
|
224
|
+
resolve(true);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
console.log('isLoading is true, waiting for it to be false');
|
|
228
|
+
while (isLoading) {
|
|
229
|
+
const { isLoading: newIsLoading } = await this.getNativeState();
|
|
230
|
+
if (!newIsLoading) {
|
|
231
|
+
resolve(true);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
isLoading = newIsLoading;
|
|
235
|
+
await new Promise(r => setTimeout(r, 100));
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
203
239
|
/**
|
|
204
240
|
* Used to log in with social login provider directly without visiting the login page
|
|
205
241
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
206
242
|
* @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)
|
|
207
243
|
* @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser
|
|
208
244
|
*/
|
|
209
|
-
directLoginAction(type, data, ephemeralSession = true) {
|
|
245
|
+
async directLoginAction(type, data, ephemeralSession = true) {
|
|
246
|
+
const state = await this.getNativeState();
|
|
247
|
+
console.log('direct login action', state);
|
|
248
|
+
await this.waitForLoader();
|
|
249
|
+
if (state.isAuthenticated) {
|
|
250
|
+
return true;
|
|
251
|
+
}
|
|
252
|
+
this.state.isLoading = true;
|
|
253
|
+
this.mapListeners.isLoading.forEach((listener) => listener(true));
|
|
210
254
|
return FronteggNative.directLoginAction({ type, data, ephemeralSession });
|
|
211
255
|
}
|
|
212
256
|
logout() {
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info('getAuthState()', state);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys) {\n const key = item;\n if (this.isChanged(this.state[key], state[key])) {\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n }\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n directLoginAction(type, data, ephemeralSession = true) {\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n 'isLoading',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', JSON.stringify({\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n isLoading: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n }));\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info(`getAuthState(): \\n ${JSON.stringify(state)} DONE`);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys.filter(key => key !== 'initializing')) {\n const key = item;\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n this.state.initializing = false;\n this.mapListeners.initializing.forEach((listener) => listener(false));\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n // @deprecated use $isLoading instead\n get $showLoader() {\n return createObservable(this.mapListeners, this.state, 'showLoader');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $refreshingToken() {\n return createObservable(this.mapListeners, this.state, 'refreshingToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Wait for loader to finish\n * @private\n */\n async waitForLoader() {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n console.log('checking is loading');\n const state = await this.getNativeState();\n let isLoading = state.isLoading;\n console.log('checking is loading', JSON.stringify({ isLoading }));\n if (!isLoading) {\n resolve(true);\n return;\n }\n console.log('isLoading is true, waiting for it to be false');\n while (isLoading) {\n const { isLoading: newIsLoading } = await this.getNativeState();\n if (!newIsLoading) {\n resolve(true);\n return;\n }\n isLoading = newIsLoading;\n await new Promise(r => setTimeout(r, 100));\n }\n });\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n async directLoginAction(type, data, ephemeralSession = true) {\n const state = await this.getNativeState();\n console.log('direct login action', state);\n await this.waitForLoader();\n if (state.isAuthenticated) {\n return true;\n }\n this.state.isLoading = true;\n this.mapListeners.isLoading.forEach((listener) => listener(true));\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -67,6 +67,7 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
67
67
|
'showLoader',
|
|
68
68
|
'refreshingToken',
|
|
69
69
|
'initializing',
|
|
70
|
+
'isLoading',
|
|
70
71
|
];
|
|
71
72
|
this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);
|
|
72
73
|
this.logger.info('FronteggService created');
|
|
@@ -93,16 +94,17 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
93
94
|
initializing: new Set(),
|
|
94
95
|
};
|
|
95
96
|
FronteggNative.addListener('onFronteggAuthEvent', (state) => {
|
|
96
|
-
this.logger.info('onFronteggAuthEvent', {
|
|
97
|
+
this.logger.info('onFronteggAuthEvent', JSON.stringify({
|
|
97
98
|
isAuthenticated: state.isAuthenticated,
|
|
98
99
|
showLoader: state.isLoading,
|
|
100
|
+
isLoading: state.isLoading,
|
|
99
101
|
user: `${state.user}`,
|
|
100
102
|
accessToken: state.accessToken ? '****' : null,
|
|
101
103
|
refreshToken: state.refreshToken,
|
|
102
104
|
selectedRegion: state.selectedRegion,
|
|
103
105
|
refreshingToken: state.refreshingToken,
|
|
104
106
|
initializing: state.initializing,
|
|
105
|
-
});
|
|
107
|
+
}));
|
|
106
108
|
const keys = this.orderedListenerKeys;
|
|
107
109
|
keys.forEach(key => {
|
|
108
110
|
if (this.isChanged(this.state[key], state[key])) {
|
|
@@ -114,15 +116,15 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
114
116
|
this.state = state;
|
|
115
117
|
});
|
|
116
118
|
FronteggNative.getAuthState().then((state) => {
|
|
117
|
-
this.logger.info(
|
|
119
|
+
this.logger.info(`getAuthState(): \n ${JSON.stringify(state)} DONE`);
|
|
118
120
|
const keys = Object.keys(this.mapListeners);
|
|
119
|
-
for (const item of keys) {
|
|
121
|
+
for (const item of keys.filter(key => key !== 'initializing')) {
|
|
120
122
|
const key = item;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
124
|
-
}
|
|
123
|
+
this.state[key] = state[key];
|
|
124
|
+
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
125
125
|
}
|
|
126
|
+
this.state.initializing = false;
|
|
127
|
+
this.mapListeners.initializing.forEach((listener) => listener(false));
|
|
126
128
|
});
|
|
127
129
|
}
|
|
128
130
|
isChanged(obj1, obj2) {
|
|
@@ -179,6 +181,10 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
179
181
|
get $isLoading() {
|
|
180
182
|
return createObservable(this.mapListeners, this.state, 'isLoading');
|
|
181
183
|
}
|
|
184
|
+
// @deprecated use $isLoading instead
|
|
185
|
+
get $showLoader() {
|
|
186
|
+
return createObservable(this.mapListeners, this.state, 'showLoader');
|
|
187
|
+
}
|
|
182
188
|
get $isAuthenticated() {
|
|
183
189
|
return createObservable(this.mapListeners, this.state, 'isAuthenticated');
|
|
184
190
|
}
|
|
@@ -188,6 +194,9 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
188
194
|
get $accessToken() {
|
|
189
195
|
return createObservable(this.mapListeners, this.state, 'accessToken');
|
|
190
196
|
}
|
|
197
|
+
get $refreshingToken() {
|
|
198
|
+
return createObservable(this.mapListeners, this.state, 'refreshingToken');
|
|
199
|
+
}
|
|
191
200
|
get $selectedRegion() {
|
|
192
201
|
return createObservable(this.mapListeners, this.state, 'selectedRegion');
|
|
193
202
|
}
|
|
@@ -197,13 +206,48 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
197
206
|
login() {
|
|
198
207
|
return FronteggNative.login();
|
|
199
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Wait for loader to finish
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
async waitForLoader() {
|
|
214
|
+
// eslint-disable-next-line no-async-promise-executor
|
|
215
|
+
return new Promise(async (resolve) => {
|
|
216
|
+
console.log('checking is loading');
|
|
217
|
+
const state = await this.getNativeState();
|
|
218
|
+
let isLoading = state.isLoading;
|
|
219
|
+
console.log('checking is loading', JSON.stringify({ isLoading }));
|
|
220
|
+
if (!isLoading) {
|
|
221
|
+
resolve(true);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
console.log('isLoading is true, waiting for it to be false');
|
|
225
|
+
while (isLoading) {
|
|
226
|
+
const { isLoading: newIsLoading } = await this.getNativeState();
|
|
227
|
+
if (!newIsLoading) {
|
|
228
|
+
resolve(true);
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
isLoading = newIsLoading;
|
|
232
|
+
await new Promise(r => setTimeout(r, 100));
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
200
236
|
/**
|
|
201
237
|
* Used to log in with social login provider directly without visiting the login page
|
|
202
238
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
203
239
|
* @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)
|
|
204
240
|
* @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser
|
|
205
241
|
*/
|
|
206
|
-
directLoginAction(type, data, ephemeralSession = true) {
|
|
242
|
+
async directLoginAction(type, data, ephemeralSession = true) {
|
|
243
|
+
const state = await this.getNativeState();
|
|
244
|
+
console.log('direct login action', state);
|
|
245
|
+
await this.waitForLoader();
|
|
246
|
+
if (state.isAuthenticated) {
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
this.state.isLoading = true;
|
|
250
|
+
this.mapListeners.isLoading.forEach((listener) => listener(true));
|
|
207
251
|
return FronteggNative.directLoginAction({ type, data, ephemeralSession });
|
|
208
252
|
}
|
|
209
253
|
logout() {
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info('getAuthState()', state);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys) {\n const key = item;\n if (this.isChanged(this.state[key], state[key])) {\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n }\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n directLoginAction(type, data, ephemeralSession = true) {\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":";;;IAAA;IACA;IACA;AACWA,8BAAS;IACpB,CAAC,UAAU,QAAQ,EAAE;IACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC9B,CAAC,EAAEA,gBAAQ,KAAKA,gBAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;IAChC;IACA;IACA;IACO,MAAM,MAAM,CAAC;IACpB,IAAI,WAAW,CAAC,QAAQ,GAAGA,gBAAQ,CAAC,IAAI,EAAE;IAC1C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;IAC3B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,IAAI,CAAC,EAAE;IAC3C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;IAC3B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,IAAI,CAAC,EAAE;IAC3C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,KAAK,CAAC,EAAE;IAC5C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,KAAK,EAAE;IACrB,QAAQ,MAAM,MAAM,GAAG,CAACA,gBAAQ,CAAC,IAAI,EAAEA,gBAAQ,CAAC,IAAI,EAAEA,gBAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,KAAK;IACL;;ICpCA;IACO,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK;IACrD,IAAI,OAAO;IACX,QAAQ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IACzB,QAAQ,SAAS,CAAC,QAAQ,EAAE;IAC5B,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,YAAY,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,YAAY,OAAO,MAAM;IACzB,gBAAgB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,aAAa,CAAC;IACd,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;ICTD,MAAM,cAAc,GAAGC,mBAAc,CAAC,gBAAgB,EAAE;IACxD,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACnE,CAAC,CAAC,CAAC;IACI,MAAM,eAAe,CAAC;IAC7B,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,IAAI,CAAC,mBAAmB,GAAG;IACnC,YAAY,cAAc;IAC1B,YAAY,aAAa;IACzB,YAAY,MAAM;IAClB,YAAY,iBAAiB;IAC7B,YAAY,gBAAgB;IAC5B,YAAY,YAAY;IACxB,YAAY,iBAAiB;IAC7B,YAAY,cAAc;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrG,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACpD,QAAQ,IAAI,CAAC,KAAK,GAAG;IACrB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,UAAU,EAAE,IAAI;IAC5B,YAAY,SAAS,EAAE,IAAI;IAC3B,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,WAAW,EAAE,IAAI;IAC7B,YAAY,YAAY,EAAE,IAAI;IAC9B,YAAY,cAAc,EAAE,IAAI;IAChC,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,YAAY,EAAE,IAAI;IAC9B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,GAAG;IAC5B,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;IACtC,YAAY,UAAU,EAAE,IAAI,GAAG,EAAE;IACjC,YAAY,SAAS,EAAE,IAAI,GAAG,EAAE;IAChC,YAAY,IAAI,EAAE,IAAI,GAAG,EAAE;IAC3B,YAAY,WAAW,EAAE,IAAI,GAAG,EAAE;IAClC,YAAY,YAAY,EAAE,IAAI,GAAG,EAAE;IACnC,YAAY,cAAc,EAAE,IAAI,GAAG,EAAE;IACrC,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;IACtC,YAAY,YAAY,EAAE,IAAI,GAAG,EAAE;IACnC,SAAS,CAAC;IACV,QAAQ,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK,KAAK;IACrE,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACpD,gBAAgB,eAAe,EAAE,KAAK,CAAC,eAAe;IACtD,gBAAgB,UAAU,EAAE,KAAK,CAAC,SAAS;IAC3C,gBAAgB,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,gBAAgB,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;IAC9D,gBAAgB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChD,gBAAgB,cAAc,EAAE,KAAK,CAAC,cAAc;IACpD,gBAAgB,eAAe,EAAE,KAAK,CAAC,eAAe;IACtD,gBAAgB,YAAY,EAAE,KAAK,CAAC,YAAY;IAChD,aAAa,CAAC,CAAC;IACf,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAClD,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;IAChC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;IACjE,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7E,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,oBAAoB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvF,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;IACtD,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACtD,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxD,YAAY,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;IACrC,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC;IACjC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;IACjE,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,oBAAoB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvF,iBAAiB;IACjB,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE;IAC1B;IACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,KAAK,IAAI;IACzB,YAAY,IAAI,KAAK,SAAS;IAC9B,YAAY,IAAI,KAAK,IAAI;IACzB,YAAY,IAAI,KAAK,SAAS,EAAE;IAChC,YAAY,OAAO,IAAI,KAAK,IAAI,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAClE,YAAY,OAAO,IAAI,KAAK,IAAI,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IACxD,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IAC7C,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAClD,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;IACtD,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT;IACA,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IAClE,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;IAC/C,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,YAAY,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;IACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;IAClF,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT;IACA,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,QAAQ,GAAG;IACf,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;IAC1B,KAAK;IACL,IAAI,cAAc,GAAG;IACrB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;IAC7C,KAAK;IACL,IAAI,IAAI,UAAU,GAAG;IACrB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5E,KAAK;IACL,IAAI,IAAI,gBAAgB,GAAG;IAC3B,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAClF,KAAK;IACL,IAAI,IAAI,KAAK,GAAG;IAChB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC9E,KAAK;IACL,IAAI,IAAI,eAAe,GAAG;IAC1B,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACjF,KAAK;IACL;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC;IACtC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAAE;IAC3D,QAAQ,OAAO,cAAc,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAClF,KAAK;IACL,IAAI,MAAM,GAAG;IACb,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;IAChC,KAAK;IACL,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;IAC7C,KAAK;IACL,IAAI,YAAY,CAAC,QAAQ,EAAE;IAC3B,QAAQ,OAAO,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,SAAS,EAAE;IAC9B;IACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,KAAK,SAAS,EAAE;IAC1D,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACrC,SAAS;IACT,QAAQ,OAAO,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC5D,KAAK;IACL,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;IAC7C,KAAK;IACL;;ICpLO,MAAM,iBAAiB,SAASC,cAAS,CAAC;IACjD,IAAI,MAAM,YAAY,GAAG;IACzB,QAAQ,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,KAAK;IACL,IAAI,MAAM,YAAY,GAAG;IACzB,QAAQ,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAC1E,KAAK;IACL,IAAI,MAAM,KAAK,GAAG;IAClB,QAAQ,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACnE,KAAK;IACL,IAAI,MAAM,iBAAiB,CAAC,OAAO,EAAE;IACrC,QAAQ,MAAM,KAAK,CAAC,CAAC,iCAAiC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC1F,KAAK;IACL,IAAI,MAAM,MAAM,GAAG;IACnB,QAAQ,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACpE,KAAK;IACL,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE;IAChC,QAAQ,MAAM,KAAK,CAAC,CAAC,4BAA4B,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACrF,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;IAClC,QAAQ,MAAM,KAAK,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvF,KAAK;IACL,IAAI,MAAM,YAAY,GAAG;IACzB,QAAQ,MAAM,KAAK,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC1E,KAAK;IACL;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n 'isLoading',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', JSON.stringify({\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n isLoading: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n }));\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info(`getAuthState(): \\n ${JSON.stringify(state)} DONE`);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys.filter(key => key !== 'initializing')) {\n const key = item;\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n this.state.initializing = false;\n this.mapListeners.initializing.forEach((listener) => listener(false));\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n // @deprecated use $isLoading instead\n get $showLoader() {\n return createObservable(this.mapListeners, this.state, 'showLoader');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $refreshingToken() {\n return createObservable(this.mapListeners, this.state, 'refreshingToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Wait for loader to finish\n * @private\n */\n async waitForLoader() {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve) => {\n console.log('checking is loading');\n const state = await this.getNativeState();\n let isLoading = state.isLoading;\n console.log('checking is loading', JSON.stringify({ isLoading }));\n if (!isLoading) {\n resolve(true);\n return;\n }\n console.log('isLoading is true, waiting for it to be false');\n while (isLoading) {\n const { isLoading: newIsLoading } = await this.getNativeState();\n if (!newIsLoading) {\n resolve(true);\n return;\n }\n isLoading = newIsLoading;\n await new Promise(r => setTimeout(r, 100));\n }\n });\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n async directLoginAction(type, data, ephemeralSession = true) {\n const state = await this.getNativeState();\n console.log('direct login action', state);\n await this.waitForLoader();\n if (state.isAuthenticated) {\n return true;\n }\n this.state.isLoading = true;\n this.mapListeners.isLoading.forEach((listener) => listener(true));\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/ionic-capacitor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.10-alpha.11028082347",
|
|
4
4
|
"description": "Frontegg Ionic Capacitor SDK",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -51,6 +51,11 @@
|
|
|
51
51
|
"@frontegg/rest-api": "^3.1.56"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@angular-eslint/builder": "^16.0.0",
|
|
55
|
+
"@angular-eslint/eslint-plugin": "^16.0.0",
|
|
56
|
+
"@angular-eslint/eslint-plugin-template": "^16.0.0",
|
|
57
|
+
"@angular-eslint/schematics": "^16.0.0",
|
|
58
|
+
"@angular-eslint/template-parser": "^16.0.0",
|
|
54
59
|
"@angular/core": ">=14.0.0",
|
|
55
60
|
"@capacitor/android": "^5.0.0",
|
|
56
61
|
"@capacitor/core": "^5.0.0",
|
|
@@ -65,12 +70,7 @@
|
|
|
65
70
|
"rimraf": "^3.0.2",
|
|
66
71
|
"rollup": "^2.32.0",
|
|
67
72
|
"swiftlint": "^1.0.1",
|
|
68
|
-
"typescript": "~4.1.5"
|
|
69
|
-
"@angular-eslint/builder": "^16.0.0",
|
|
70
|
-
"@angular-eslint/eslint-plugin": "^16.0.0",
|
|
71
|
-
"@angular-eslint/eslint-plugin-template": "^16.0.0",
|
|
72
|
-
"@angular-eslint/schematics": "^16.0.0",
|
|
73
|
-
"@angular-eslint/template-parser": "^16.0.0"
|
|
73
|
+
"typescript": "~4.1.5"
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"@capacitor/core": "^5.0.0"
|