@frontegg/ionic-capacitor 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,6 +40,7 @@ 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
46
  array = this.getConfig().getConfigJSON().optJSONArray("regions");
@@ -74,10 +75,11 @@ public class FronteggNativePlugin extends Plugin {
74
75
  FronteggApp.Companion.init(
75
76
  baseUrl,
76
77
  clientId,
77
- this.getContext()
78
+ this.getContext(),
79
+ useAssetLinks
78
80
  );
79
81
  }else {
80
- FronteggApp.Companion.initWithRegions(regions, this.getContext());
82
+ FronteggApp.Companion.initWithRegions(regions, this.getContext(), useAssetLinks);
81
83
  }
82
84
 
83
85
  FronteggAuth auth = FronteggAuth.Companion.getInstance();
@@ -66,10 +66,32 @@ declare type FronteggNativeRegionOptions = {
66
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontegg/ionic-capacitor",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
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",
@@ -65,7 +65,12 @@
65
65
  "rimraf": "^3.0.2",
66
66
  "rollup": "^2.32.0",
67
67
  "swiftlint": "^1.0.1",
68
- "typescript": "~4.1.5"
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"
69
74
  },
70
75
  "peerDependencies": {
71
76
  "@capacitor/core": "^5.0.0"