@frontegg/ionic-capacitor 2.0.0 → 2.0.2-alpha.7453434883

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.
@@ -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.8.9'
58
- implementation 'com.frontegg.sdk:android:1.2.2'
58
+ implementation 'com.frontegg.sdk:android:1.2.3'
59
59
 
60
60
  testImplementation "junit:junit:$junitVersion"
61
61
  androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
@@ -40,10 +40,14 @@ public class FronteggNativePlugin extends Plugin {
40
40
 
41
41
  // for regions initialization
42
42
  List<RegionConfig> regions = new ArrayList<>();
43
+ boolean useAssetLinks = this.getConfig().getBoolean("useAssetsLinks", true);
43
44
  JSONArray array;
44
45
  try {
45
- array = this.getConfig().getConfigJSON().getJSONArray("regions");
46
+ array = this.getConfig().getConfigJSON().optJSONArray("regions");
46
47
 
48
+ if (array == null) {
49
+ array = new JSONArray();
50
+ }
47
51
  for (int i = 0; i < array.length(); i++) {
48
52
  JSONObject regionJson = (JSONObject) array.get(i);
49
53
  regions.add(new RegionConfig(
@@ -61,17 +65,21 @@ public class FronteggNativePlugin extends Plugin {
61
65
  PluginConfig config = this.getConfig();
62
66
  String baseUrl = config.getString("baseUrl");
63
67
  String clientId = config.getString("clientId");
64
- String regionKey = config.getString("regionKey");
65
- if (baseUrl == null || clientId == null || regionKey == null) {
66
- throw new RuntimeException("Missing required config parameters: baseUrl, clientId, regionKey");
68
+
69
+ if (baseUrl == null || clientId == null) {
70
+ throw new RuntimeException("Missing required config parameters: baseUrl, clientId");
71
+ }
72
+ if(baseUrl.startsWith("https://")) {
73
+ baseUrl = baseUrl.substring(baseUrl.indexOf("://") + 3);
67
74
  }
68
75
  FronteggApp.Companion.init(
69
76
  baseUrl,
70
77
  clientId,
71
- this.getContext()
78
+ this.getContext(),
79
+ useAssetLinks
72
80
  );
73
81
  }else {
74
- FronteggApp.Companion.initWithRegions(regions, this.getContext());
82
+ FronteggApp.Companion.initWithRegions(regions, this.getContext(), useAssetLinks);
75
83
  }
76
84
 
77
85
  FronteggAuth auth = FronteggAuth.Companion.getInstance();
@@ -63,13 +63,35 @@ declare type FronteggNativeRegionOptions = {
63
63
  * @since 1.0.0
64
64
  * @example [{key: "us", baseUrl: "https://us-api.frontegg.com", clientId: "us-client-id"}]
65
65
  */
66
- regions?: RegionConfig[];
66
+ regions: RegionConfig[];
67
67
  };
68
68
  declare type FronteggNativeOptions = (FronteggNativeStandardOptions | FronteggNativeRegionOptions) & {
69
+ /**
70
+ * Weather to handle login with social login in external browser.
71
+ * If set to false, the plugin will navigate to the social login page with application webview.
72
+ *
73
+ * NOTE: some of the social login providers prevent login from embedded webview.
74
+ *
75
+ * @default true
76
+ */
69
77
  handleLoginWithSocialLogin?: boolean;
78
+ /**
79
+ * Weather to handle login with SSO in external browser.
80
+ * If set to false, the plugin will navigate to the sso page with application webview.
81
+ *
82
+ * @default false
83
+ */
70
84
  handleLoginWithSSO?: boolean;
85
+ /**
86
+ * Weather to use the assetlinks to for oauth/callback, this is the default behavior.
87
+ * disabling this will cause the plugin to use custom url scheme for oauth/callback.
88
+ *
89
+ * NOTE: custom url scheme require user interaction to return to the app.
90
+ * @default true
91
+ */
92
+ useAssetLinks?: boolean;
71
93
  };
72
- declare module "@capacitor/cli" {
94
+ declare module '@capacitor/cli' {
73
95
  interface PluginsConfig {
74
96
  /**
75
97
  * You can configure the way the push notifications are displayed when the app is in foreground.
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["\nimport type { ListenerCallback, PluginListenerHandle } from '@capacitor/core';\nimport type { ITenantsResponse, IUserProfile } from '@frontegg/rest-api';\n\nexport type User = IUserProfile & {\n tenants: ITenantsResponse[];\n activeTenant: ITenantsResponse\n}\n\nexport interface FronteggState {\n accessToken: string | null;\n refreshToken: string | null;\n isAuthenticated: boolean;\n user: User | null;\n showLoader: boolean;\n selectedRegion: string | null;\n}\n\n\nexport type SubscribeFunc<T, K extends keyof T> = (value: T[K]) => void\nexport type SubscribeMap<T> = {\n [K in keyof T]: Set<SubscribeFunc<T, K>>\n}\n\n\nexport interface FronteggConstants {\n baseUrl: string;\n clientId: string;\n bundleId: string;\n isRegional: boolean;\n regionData?: { key: string, baseUrl: string, clientId: string }[]\n}\n\nexport interface FronteggNativePlugin {\n addListener(eventName: string, listenerFunc: ListenerCallback): Promise<PluginListenerHandle> & PluginListenerHandle\n\n getConstants(): Promise<FronteggConstants>;\n\n getAuthState(): Promise<FronteggState>;\n\n login(): Promise<void>;\n\n logout(): void;\n\n switchTenant(payload: { tenantId: string }): Promise<void>;\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(payload: { regionKey: string }): Promise<void>;\n\n refreshToken(): Promise<void>;\n\n}\n\n\n\nexport type RegionConfig = {\n key: string;\n baseUrl: string;\n clientId: string;\n};\n\n\n\ntype FronteggNativeStandardOptions = {\n baseUrl: string;\n clientId: string;\n\n}\ntype FronteggNativeRegionOptions = {\n /**\n * This is an array of regions to be used as frontegg app.\n *\n * @since 1.0.0\n * @example [{key: \"us\", baseUrl: \"https://us-api.frontegg.com\", clientId: \"us-client-id\"}]\n */\n regions?: RegionConfig[];\n}\ntype FronteggNativeOptions = (FronteggNativeStandardOptions | FronteggNativeRegionOptions) & {\n handleLoginWithSocialLogin?: boolean;\n handleLoginWithSSO?: boolean;\n}\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ndeclare module \"@capacitor/cli\" {\n export interface PluginsConfig {\n /**\n * You can configure the way the push notifications are displayed when the app is in foreground.\n */\n FronteggNative?: FronteggNativeOptions;\n }\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { ListenerCallback, PluginListenerHandle } from '@capacitor/core';\nimport type { ITenantsResponse, IUserProfile } from '@frontegg/rest-api';\n\nexport type User = IUserProfile & {\n tenants: ITenantsResponse[];\n activeTenant: ITenantsResponse;\n};\n\nexport interface FronteggState {\n accessToken: string | null;\n refreshToken: string | null;\n isAuthenticated: boolean;\n user: User | null;\n showLoader: boolean;\n selectedRegion: string | null;\n}\n\nexport type SubscribeFunc<T, K extends keyof T> = (value: T[K]) => void;\nexport type SubscribeMap<T> = {\n [K in keyof T]: Set<SubscribeFunc<T, K>>;\n};\n\nexport interface FronteggConstants {\n baseUrl: string;\n clientId: string;\n bundleId: string;\n isRegional: boolean;\n regionData?: { key: string; baseUrl: string; clientId: string }[];\n}\n\nexport interface FronteggNativePlugin {\n addListener(\n eventName: string,\n listenerFunc: ListenerCallback,\n ): Promise<PluginListenerHandle> & PluginListenerHandle;\n\n getConstants(): Promise<FronteggConstants>;\n\n getAuthState(): Promise<FronteggState>;\n\n login(): Promise<void>;\n\n logout(): void;\n\n switchTenant(payload: { tenantId: string }): Promise<void>;\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(payload: { regionKey: string }): Promise<void>;\n\n refreshToken(): Promise<void>;\n}\n\nexport type RegionConfig = {\n key: string;\n baseUrl: string;\n clientId: string;\n};\n\ntype FronteggNativeStandardOptions = {\n baseUrl: string;\n clientId: string;\n};\ntype FronteggNativeRegionOptions = {\n /**\n * This is an array of regions to be used as frontegg app.\n *\n * @since 1.0.0\n * @example [{key: \"us\", baseUrl: \"https://us-api.frontegg.com\", clientId: \"us-client-id\"}]\n */\n regions: RegionConfig[];\n};\ntype FronteggNativeOptions = (\n | FronteggNativeStandardOptions\n | FronteggNativeRegionOptions\n) & {\n /**\n * Weather to handle login with social login in external browser.\n * If set to false, the plugin will navigate to the social login page with application webview.\n *\n * NOTE: some of the social login providers prevent login from embedded webview.\n *\n * @default true\n */\n handleLoginWithSocialLogin?: boolean;\n /**\n * Weather to handle login with SSO in external browser.\n * If set to false, the plugin will navigate to the sso page with application webview.\n *\n * @default false\n */\n handleLoginWithSSO?: boolean;\n /**\n * Weather to use the assetlinks to for oauth/callback, this is the default behavior.\n * disabling this will cause the plugin to use custom url scheme for oauth/callback.\n *\n * NOTE: custom url scheme require user interaction to return to the app.\n * @default true\n */\n useAssetLinks?: boolean;\n};\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\ndeclare module '@capacitor/cli' {\n export interface PluginsConfig {\n /**\n * You can configure the way the push notifications are displayed when the app is in foreground.\n */\n FronteggNative?: FronteggNativeOptions;\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { FronteggConstants, FronteggState } from './definitions';
2
+ import type { FronteggObservable } from './observables';
2
3
  export declare class FronteggService {
3
4
  private state;
4
5
  private mapListeners;
@@ -7,26 +8,11 @@ export declare class FronteggService {
7
8
  private isChanged;
8
9
  getState(): FronteggState;
9
10
  getNativeState(): Promise<FronteggState>;
10
- get $isLoading(): {
11
- value: boolean;
12
- subscribe(listener: import("./definitions").SubscribeFunc<FronteggState, "showLoader">): () => void;
13
- };
14
- get $isAuthenticated(): {
15
- value: boolean;
16
- subscribe(listener: import("./definitions").SubscribeFunc<FronteggState, "isAuthenticated">): () => void;
17
- };
18
- get $user(): {
19
- value: import("./definitions").User | null;
20
- subscribe(listener: import("./definitions").SubscribeFunc<FronteggState, "user">): () => void;
21
- };
22
- get $accessToken(): {
23
- value: string | null;
24
- subscribe(listener: import("./definitions").SubscribeFunc<FronteggState, "accessToken">): () => void;
25
- };
26
- get $selectedRegion(): {
27
- value: string | null;
28
- subscribe(listener: import("./definitions").SubscribeFunc<FronteggState, "selectedRegion">): () => void;
29
- };
11
+ get $isLoading(): FronteggObservable<'showLoader'>;
12
+ get $isAuthenticated(): FronteggObservable<'isAuthenticated'>;
13
+ get $user(): FronteggObservable<'user'>;
14
+ get $accessToken(): FronteggObservable<'accessToken'>;
15
+ get $selectedRegion(): FronteggObservable<'selectedRegion'>;
30
16
  /**
31
17
  * Call frontegg native login method
32
18
  */
@@ -22,19 +22,21 @@ export class FronteggService {
22
22
  selectedRegion: null,
23
23
  };
24
24
  this.mapListeners = {
25
- 'isAuthenticated': new Set(),
26
- 'showLoader': new Set(),
27
- 'user': new Set(),
28
- 'accessToken': new Set(),
29
- 'refreshToken': new Set(),
30
- 'selectedRegion': new Set(),
25
+ isAuthenticated: new Set(),
26
+ showLoader: new Set(),
27
+ user: new Set(),
28
+ accessToken: new Set(),
29
+ refreshToken: new Set(),
30
+ selectedRegion: new Set(),
31
31
  };
32
32
  FronteggNative.addListener('onFronteggAuthEvent', (state) => {
33
33
  console.log('onFronteggAuthEvent', {
34
34
  isAuthenticated: state.isAuthenticated,
35
35
  showLoader: state.showLoader,
36
36
  user: `${state.user}`,
37
- accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,
37
+ accessToken: state.accessToken && state.accessToken.length > 50
38
+ ? `${state.accessToken.slice(0, 50)}...`
39
+ : state.accessToken,
38
40
  refreshToken: state.refreshToken,
39
41
  selectedRegion: state.selectedRegion,
40
42
  });
@@ -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 { FronteggConstants, FronteggNativePlugin, FronteggState, SubscribeMap } from './definitions';\nimport { createObservable } from './observables';\n\n\nconst FronteggNative = registerPlugin<FronteggNativePlugin>('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\n\n\nexport class FronteggService {\n private state: FronteggState;\n private mapListeners: SubscribeMap<FronteggState>;\n private readonly orderedListenerKeys: (keyof FronteggState)[] = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ]\n\n constructor() {\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n }\n\n this.mapListeners = {\n 'isAuthenticated': new Set(),\n 'showLoader': new Set(),\n 'user': new Set(),\n 'accessToken': new Set(),\n 'refreshToken': new Set(),\n 'selectedRegion': new Set(),\n }\n FronteggNative.addListener('onFronteggAuthEvent', (state: FronteggState) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`, // prevent log full user object // null | undefined | [object Object]\n accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n })\n\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', key);\n (this.state as any)[key] = state[key];\n this.mapListeners[key].forEach((listener: any) => listener(state[key]))\n }\n });\n this.state = state;\n })\n\n FronteggNative.getAuthState().then((state: FronteggState) => {\n console.log('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) => listener(state[key]))\n }\n }\n })\n }\n\n private isChanged(value1: any, value2: any): boolean {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\n\n }\n\n public getState() {\n return this.state;\n }\n\n public getNativeState(): Promise<FronteggState> {\n return FronteggNative.getAuthState();\n }\n\n public get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'showLoader')\n }\n\n public get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated')\n }\n\n public get $user() {\n return createObservable(this.mapListeners, this.state, 'user')\n }\n\n public get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken')\n }\n\n public get $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 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 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 FronteggState,\n SubscribeMap,\n} from './definitions';\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 mapListeners: SubscribeMap<FronteggState>;\n private readonly orderedListenerKeys: (keyof FronteggState)[] = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ];\n\n constructor() {\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n };\n\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n };\n FronteggNative.addListener(\n 'onFronteggAuthEvent',\n (state: FronteggState) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`, // prevent log full user object // null | undefined | [object Object]\n accessToken:\n state.accessToken && state.accessToken.length > 50\n ? `${state.accessToken.slice(0, 50)}...`\n : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n });\n\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', 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 console.log('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(value1: any, value2: any): boolean {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\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<'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 $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 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 return FronteggNative.initWithRegion({ regionKey });\n }\n\n public refreshToken(): Promise<void> {\n return FronteggNative.refreshToken();\n }\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { FronteggState, SubscribeFunc, SubscribeMap } from './definitions';
2
- export declare const createObservable: <T extends "user" | "accessToken" | "refreshToken" | "isAuthenticated" | "showLoader" | "selectedRegion">(map: SubscribeMap<FronteggState>, state: FronteggState, key: T) => {
2
+ export interface FronteggObservable<T extends keyof FronteggState> {
3
3
  value: FronteggState[T];
4
- subscribe(listener: SubscribeFunc<FronteggState, T>): () => void;
5
- };
4
+ subscribe: (listener: SubscribeFunc<FronteggState, T>) => () => void;
5
+ }
6
+ export declare const createObservable: <T extends "user" | "accessToken" | "refreshToken" | "isAuthenticated" | "showLoader" | "selectedRegion">(map: SubscribeMap<FronteggState>, state: FronteggState, key: T) => FronteggObservable<T>;
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
1
2
  export const createObservable = (map, state, key) => {
2
3
  return {
3
4
  value: state[key],
@@ -7,7 +8,7 @@ export const createObservable = (map, state, key) => {
7
8
  return () => {
8
9
  mapKey.delete(listener);
9
10
  };
10
- }
11
+ },
11
12
  };
12
13
  };
13
14
  //# sourceMappingURL=observables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observables.js","sourceRoot":"","sources":["../../src/observables.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAgC,GAAgC,EAAE,KAAoB,EAAE,GAAM,EAAE,EAAE;IAChI,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QACjB,SAAS,CAAC,QAAyC;YACjD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAyC,CAAA;YAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACpB,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzB,CAAC,CAAA;QACH,CAAC;KACF,CAAA;AACH,CAAC,CAAA","sourcesContent":["import type { FronteggState, SubscribeFunc, SubscribeMap } from './definitions';\n\n\nexport const createObservable = <T extends keyof FronteggState>(map: SubscribeMap<FronteggState>, state: FronteggState, key: T) => {\n return {\n value: state[key],\n subscribe(listener: SubscribeFunc<FronteggState, T>) {\n const mapKey = map[key] as Set<SubscribeFunc<FronteggState, T>>\n mapKey.add(listener)\n return () => {\n mapKey.delete(listener)\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"observables.js","sourceRoot":"","sources":["../../src/observables.ts"],"names":[],"mappings":"AAOA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAgC,EAChC,KAAoB,EACpB,GAAM,EACiB,EAAE;IACzB,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;QACjB,SAAS,CAAC,QAAyC;YACjD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAyC,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrB,OAAO,GAAG,EAAE;gBACV,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { FronteggState, SubscribeFunc, SubscribeMap } from './definitions';\n\nexport interface FronteggObservable<T extends keyof FronteggState> {\n value: FronteggState[T];\n subscribe: (listener: SubscribeFunc<FronteggState, T>) => () => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = <T extends keyof FronteggState>(\n map: SubscribeMap<FronteggState>,\n state: FronteggState,\n key: T,\n): FronteggObservable<T> => {\n return {\n value: state[key],\n subscribe(listener: SubscribeFunc<FronteggState, T>) {\n const mapKey = map[key] as Set<SubscribeFunc<FronteggState, T>>;\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,MAAM,OAAO,iBACX,SAAQ,SAAS;IAGjB,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA6B;QAC9C,MAAM,KAAK,CAAC,+BAA+B,OAAO,yBAAyB,CAAC,CAAA;IAC9E,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,KAAK,CAAC,iCAAiC,OAAO,yBAAyB,CAAC,CAAA;IAChF,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACnE,CAAC;CAEF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type { FronteggConstants, FronteggNativePlugin, FronteggState } from './definitions';\n\nexport class FronteggNativeWeb\n extends WebPlugin\n implements FronteggNativePlugin {\n\n async getConstants(): Promise<FronteggConstants> {\n throw Error('FronteggNative.getConstants not implemented in web')\n }\n\n async getAuthState(): Promise<FronteggState> {\n throw Error('FronteggNative.getAuthState not implemented in web')\n }\n\n async login(): Promise<void> {\n throw Error('FronteggNative.login not implemented in web')\n }\n\n async logout(): Promise<void> {\n throw Error('FronteggNative.logout not implemented in web')\n }\n\n async switchTenant(payload: { tenantId: string }): Promise<void> {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`)\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 async initWithRegion(payload: { regionKey: string }): Promise<void> {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`)\n }\n\n async refreshToken(): Promise<void> {\n throw Error(`FronteggNative.refreshToken not implemented in web`)\n }\n\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C,MAAM,OAAO,iBACX,SAAQ,SAAS;IAGjB,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA6B;QAC9C,MAAM,KAAK,CACT,+BAA+B,OAAO,yBAAyB,CAChE,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,KAAK,CACT,iCAAiC,OAAO,yBAAyB,CAClE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,CAAC;CACF","sourcesContent":["import { WebPlugin } from '@capacitor/core';\n\nimport type {\n FronteggConstants,\n FronteggNativePlugin,\n FronteggState,\n} from './definitions';\n\nexport class FronteggNativeWeb\n extends WebPlugin\n implements FronteggNativePlugin\n{\n async getConstants(): Promise<FronteggConstants> {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n\n async getAuthState(): Promise<FronteggState> {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n\n async login(): Promise<void> {\n throw Error('FronteggNative.login not implemented in web');\n }\n\n async logout(): Promise<void> {\n throw Error('FronteggNative.logout not implemented in web');\n }\n\n async switchTenant(payload: { tenantId: string }): Promise<void> {\n throw Error(\n `FronteggNative.switchTenant ${payload} not implemented in web`,\n );\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 async initWithRegion(payload: { regionKey: string }): Promise<void> {\n throw Error(\n `FronteggNative.initWithRegion ${payload} not implemented in web`,\n );\n }\n\n async refreshToken(): Promise<void> {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n"]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var core = require('@capacitor/core');
6
6
 
7
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
7
8
  const createObservable = (map, state, key) => {
8
9
  return {
9
10
  value: state[key],
@@ -13,7 +14,7 @@ const createObservable = (map, state, key) => {
13
14
  return () => {
14
15
  mapKey.delete(listener);
15
16
  };
16
- }
17
+ },
17
18
  };
18
19
  };
19
20
 
@@ -39,19 +40,21 @@ class FronteggService {
39
40
  selectedRegion: null,
40
41
  };
41
42
  this.mapListeners = {
42
- 'isAuthenticated': new Set(),
43
- 'showLoader': new Set(),
44
- 'user': new Set(),
45
- 'accessToken': new Set(),
46
- 'refreshToken': new Set(),
47
- 'selectedRegion': new Set(),
43
+ isAuthenticated: new Set(),
44
+ showLoader: new Set(),
45
+ user: new Set(),
46
+ accessToken: new Set(),
47
+ refreshToken: new Set(),
48
+ selectedRegion: new Set(),
48
49
  };
49
50
  FronteggNative.addListener('onFronteggAuthEvent', (state) => {
50
51
  console.log('onFronteggAuthEvent', {
51
52
  isAuthenticated: state.isAuthenticated,
52
53
  showLoader: state.showLoader,
53
54
  user: `${state.user}`,
54
- accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,
55
+ accessToken: state.accessToken && state.accessToken.length > 50
56
+ ? `${state.accessToken.slice(0, 50)}...`
57
+ : state.accessToken,
55
58
  refreshToken: state.refreshToken,
56
59
  selectedRegion: state.selectedRegion,
57
60
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["export 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 { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor() {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ];\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n };\n this.mapListeners = {\n 'isAuthenticated': new Set(),\n 'showLoader': new Set(),\n 'user': new Set(),\n 'accessToken': new Set(),\n 'refreshToken': new Set(),\n 'selectedRegion': new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`,\n accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', 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 console.log('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(value1, value2) {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\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, '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 $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 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 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 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":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["// 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 { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor() {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ];\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`,\n accessToken: state.accessToken && state.accessToken.length > 50\n ? `${state.accessToken.slice(0, 50)}...`\n : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', 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 console.log('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(value1, value2) {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\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, '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 $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 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 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 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":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -1,6 +1,7 @@
1
1
  var capacitorFronteggNative = (function (exports, core) {
2
2
  'use strict';
3
3
 
4
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
4
5
  const createObservable = (map, state, key) => {
5
6
  return {
6
7
  value: state[key],
@@ -10,7 +11,7 @@ var capacitorFronteggNative = (function (exports, core) {
10
11
  return () => {
11
12
  mapKey.delete(listener);
12
13
  };
13
- }
14
+ },
14
15
  };
15
16
  };
16
17
 
@@ -36,19 +37,21 @@ var capacitorFronteggNative = (function (exports, core) {
36
37
  selectedRegion: null,
37
38
  };
38
39
  this.mapListeners = {
39
- 'isAuthenticated': new Set(),
40
- 'showLoader': new Set(),
41
- 'user': new Set(),
42
- 'accessToken': new Set(),
43
- 'refreshToken': new Set(),
44
- 'selectedRegion': new Set(),
40
+ isAuthenticated: new Set(),
41
+ showLoader: new Set(),
42
+ user: new Set(),
43
+ accessToken: new Set(),
44
+ refreshToken: new Set(),
45
+ selectedRegion: new Set(),
45
46
  };
46
47
  FronteggNative.addListener('onFronteggAuthEvent', (state) => {
47
48
  console.log('onFronteggAuthEvent', {
48
49
  isAuthenticated: state.isAuthenticated,
49
50
  showLoader: state.showLoader,
50
51
  user: `${state.user}`,
51
- accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,
52
+ accessToken: state.accessToken && state.accessToken.length > 50
53
+ ? `${state.accessToken.slice(0, 50)}...`
54
+ : state.accessToken,
52
55
  refreshToken: state.refreshToken,
53
56
  selectedRegion: state.selectedRegion,
54
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["export 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 { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor() {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ];\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n };\n this.mapListeners = {\n 'isAuthenticated': new Set(),\n 'showLoader': new Set(),\n 'user': new Set(),\n 'accessToken': new Set(),\n 'refreshToken': new Set(),\n 'selectedRegion': new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`,\n accessToken: state.accessToken && state.accessToken.length > 50 ? `${state.accessToken.slice(0, 50)}...` : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', 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 console.log('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(value1, value2) {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\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, '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 $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 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 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 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":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["// 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 { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor() {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n ];\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n console.log('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.showLoader,\n user: `${state.user}`,\n accessToken: state.accessToken && state.accessToken.length > 50\n ? `${state.accessToken.slice(0, 50)}...`\n : state.accessToken,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n console.log('onFronteggAuthEvent key: ', 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 console.log('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(value1, value2) {\n if (value1 == value2) {\n return false;\n }\n return JSON.stringify(value1) != JSON.stringify(value2);\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, '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 $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 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 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 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":["registerPlugin","WebPlugin"],"mappings":"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"}
@@ -11,29 +11,29 @@ import Capacitor
11
11
  public class FronteggNativePlugin: CAPPlugin {
12
12
  public let fronteggApp = FronteggApp.shared
13
13
  var cancellables = Set<AnyCancellable>()
14
-
14
+
15
15
  private var workItem: DispatchWorkItem?
16
16
  private let delay: TimeInterval = 0.05 // 200ms delay
17
-
17
+
18
18
  func debounce(_ action: @escaping () -> Void) {
19
19
  workItem?.cancel()
20
20
  let newWorkItem = DispatchWorkItem(block: action)
21
21
  DispatchQueue.main.asyncAfter(deadline: .now() + delay, execute: newWorkItem)
22
22
  workItem = newWorkItem
23
23
  }
24
-
24
+
25
25
  override public func load() {
26
-
26
+
27
27
  let config = self.getConfig()
28
-
28
+
29
29
  let handleLoginWithSocialLogin = config.getBoolean("handleLoginWithSocialLogin", true)
30
30
  let handleLoginWithSSO = config.getBoolean("handleLoginWithSSO", false)
31
-
32
- if let array = config.getArray("regions"),
31
+
32
+ if let array = config.getArray("regions", []),
33
33
  array.count > 0 {
34
34
  print("region initialization")
35
35
  var regions:[RegionConfig] = []
36
-
36
+
37
37
  array.forEach {item in
38
38
  if let dict = item as? [String:String] {
39
39
  regions.append(RegionConfig(
@@ -43,7 +43,7 @@ public class FronteggNativePlugin: CAPPlugin {
43
43
  ))
44
44
  }
45
45
  }
46
-
46
+
47
47
  if(regions.isEmpty){
48
48
  print("Frontegg Error: Missing regions configurations")
49
49
  exit(1)
@@ -64,9 +64,9 @@ public class FronteggNativePlugin: CAPPlugin {
64
64
  exit(1)
65
65
  }
66
66
  }
67
-
68
-
69
-
67
+
68
+
69
+
70
70
  let auth = fronteggApp.auth
71
71
  var anyChange: AnyPublisher<Void, Never> {
72
72
  return Publishers.Merge8 (
@@ -81,26 +81,26 @@ public class FronteggNativePlugin: CAPPlugin {
81
81
  )
82
82
  .eraseToAnyPublisher()
83
83
  }
84
-
84
+
85
85
  anyChange.sink(receiveValue: { () in
86
86
  self.debounce() {
87
87
  self.sendEvent()
88
88
  }
89
89
  }).store(in: &cancellables)
90
-
90
+
91
91
  self.sendEvent()
92
92
  }
93
-
94
-
95
-
93
+
94
+
95
+
96
96
  func sendEvent() {
97
97
  let auth = fronteggApp.auth
98
-
98
+
99
99
  var jsonUser: [String: Any]? = nil
100
100
  if let userData = try? JSONEncoder().encode(auth.user) {
101
101
  jsonUser = try? JSONSerialization.jsonObject(with: userData, options: .allowFragments) as? [String: Any]
102
102
  }
103
-
103
+
104
104
  let body: [String: Any?] = [
105
105
  "accessToken": auth.accessToken,
106
106
  "refreshToken": auth.refreshToken,
@@ -111,13 +111,13 @@ public class FronteggNativePlugin: CAPPlugin {
111
111
  "showLoader": auth.showLoader,
112
112
  "selectedRegion": regionToJson(auth.selectedRegion)
113
113
  ]
114
-
114
+
115
115
  self.notifyListeners("onFronteggAuthEvent", data: body as [String : Any])
116
116
  }
117
-
118
-
117
+
118
+
119
119
  func regionToJson(_ region: RegionConfig?) -> [String:String]? {
120
-
120
+
121
121
  if let reg = region {
122
122
  return [
123
123
  "baseUrl": reg.baseUrl,
@@ -129,17 +129,17 @@ public class FronteggNativePlugin: CAPPlugin {
129
129
  }
130
130
  }
131
131
  func regionsToJson(_ regions: [RegionConfig]) -> [[String:String]] {
132
-
132
+
133
133
  var regionData: [[String:String]] = []
134
134
  regions.forEach { reg in
135
135
  if let region = regionToJson(reg) {
136
136
  regionData.append(region)
137
137
  }
138
138
  }
139
-
139
+
140
140
  return regionData
141
141
  }
142
-
142
+
143
143
  @objc func getConstants(_ call: CAPPluginCall) {
144
144
  call.resolve([
145
145
  "baseUrl": fronteggApp.baseUrl,
@@ -149,43 +149,43 @@ public class FronteggNativePlugin: CAPPlugin {
149
149
  "regionData": regionsToJson(fronteggApp.auth.regionData)
150
150
  ])
151
151
  }
152
-
152
+
153
153
  @objc func login(_ call: CAPPluginCall) {
154
154
  DispatchQueue.main.sync {
155
155
  fronteggApp.auth.login()
156
156
  }
157
157
  call.resolve()
158
158
  }
159
-
159
+
160
160
  @objc func logout(_ call: CAPPluginCall) {
161
161
  DispatchQueue.main.sync {
162
162
  fronteggApp.auth.logout()
163
163
  }
164
164
  call.resolve()
165
165
  }
166
-
166
+
167
167
  @objc func switchTenant(_ call: CAPPluginCall) {
168
168
  guard let tenantId = call.options["tenantId"] as? String else {
169
169
  call.reject("No tenantId provided")
170
170
  return
171
171
  }
172
-
172
+
173
173
  fronteggApp.auth.switchTenant(tenantId: tenantId) { _ in
174
174
  call.resolve()
175
175
  }
176
176
  }
177
-
177
+
178
178
  @objc func initWithRegion(_ call: CAPPluginCall) {
179
179
  guard let regionKey = call.options["regionKey"] as? String else {
180
180
  call.reject("No regionKey provided")
181
181
  return
182
182
  }
183
-
183
+
184
184
  fronteggApp.initWithRegion(regionKey: regionKey)
185
185
  }
186
-
186
+
187
187
  @objc func refreshToken(_ call: CAPPluginCall) {
188
-
188
+
189
189
  DispatchQueue.global(qos: .background).async {
190
190
  Task {
191
191
  await self.fronteggApp.auth.refreshTokenIfNeeded()
@@ -193,14 +193,14 @@ public class FronteggNativePlugin: CAPPlugin {
193
193
  }
194
194
  }
195
195
  }
196
-
196
+
197
197
  @objc func getAuthState(_ call: CAPPluginCall) {
198
198
  let auth = fronteggApp.auth
199
199
  var jsonUser: [String: Any]? = nil
200
200
  if let userData = try? JSONEncoder().encode(auth.user) {
201
201
  jsonUser = try? JSONSerialization.jsonObject(with: userData, options: .allowFragments) as? [String: Any]
202
202
  }
203
-
203
+
204
204
  let body: [String: Any?] = [
205
205
  "accessToken": auth.accessToken,
206
206
  "refreshToken": auth.refreshToken,
@@ -213,5 +213,5 @@ public class FronteggNativePlugin: CAPPlugin {
213
213
  ]
214
214
  call.resolve(body as [String: Any] )
215
215
  }
216
-
216
+
217
217
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontegg/ionic-capacitor",
3
- "version": "2.0.0",
3
+ "version": "2.0.2-alpha.7453434883",
4
4
  "description": "Frontegg Ionic Capacitor SDK",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",
@@ -32,8 +32,8 @@
32
32
  "verify:ios": "cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..",
33
33
  "verify:android": "cd android && ./gradlew clean build test && cd ..",
34
34
  "verify:web": "npm run build",
35
- "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
36
- "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format",
35
+ "lint": "npm run eslint && npm run prettier -- --check",
36
+ "fmt": "npm run eslint -- --fix && npm run prettier -- --write",
37
37
  "eslint": "eslint . --ext ts",
38
38
  "prettier": "prettier \"**/*.{css,html,ts,js,java}\"",
39
39
  "swiftlint": "node-swiftlint",
@@ -51,6 +51,11 @@
51
51
  "@frontegg/rest-api": "^3.1.5"
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",