@frontegg/ionic-capacitor 2.0.8 → 2.0.9-alpha.10663474341
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FronteggIonicCapacitor.podspec +1 -1
- package/README.md +1 -0
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/frontegg/ionic/FronteggNativePlugin.java +17 -15
- package/dist/esm/definitions.d.ts +155 -9
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/frontegg.service.d.ts +6 -4
- package/dist/esm/frontegg.service.js +65 -14
- package/dist/esm/frontegg.service.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/logger.d.ts +20 -0
- package/dist/esm/logger.js +38 -0
- package/dist/esm/logger.js.map +1 -0
- package/dist/esm/observables.d.ts +1 -1
- package/dist/esm/web.d.ts +2 -1
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +102 -14
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +102 -14
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/FronteggNativePlugin.swift +27 -14
- package/package.json +7 -7
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enum representing different log levels.
|
|
3
|
+
*/
|
|
4
|
+
export var LogLevel;
|
|
5
|
+
(function (LogLevel) {
|
|
6
|
+
LogLevel["INFO"] = "info";
|
|
7
|
+
LogLevel["WARN"] = "warn";
|
|
8
|
+
LogLevel["ERROR"] = "error";
|
|
9
|
+
LogLevel["NONE"] = "none";
|
|
10
|
+
})(LogLevel || (LogLevel = {}));
|
|
11
|
+
/**
|
|
12
|
+
* Logger class to handle logging with a configurable log level.
|
|
13
|
+
*/
|
|
14
|
+
export class Logger {
|
|
15
|
+
constructor(logLevel = LogLevel.WARN) {
|
|
16
|
+
this.logLevel = logLevel;
|
|
17
|
+
}
|
|
18
|
+
info(message, ...args) {
|
|
19
|
+
if (this.shouldLog(LogLevel.INFO)) {
|
|
20
|
+
console.info(message, ...args);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
warn(message, ...args) {
|
|
24
|
+
if (this.shouldLog(LogLevel.WARN)) {
|
|
25
|
+
console.info(message, ...args);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
error(message, ...args) {
|
|
29
|
+
if (this.shouldLog(LogLevel.ERROR)) {
|
|
30
|
+
console.info(message, ...args);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
shouldLog(level) {
|
|
34
|
+
const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];
|
|
35
|
+
return levels.indexOf(level) >= levels.indexOf(this.logLevel);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,yBAAa,CAAA;AACf,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED;;GAEG;AACH,MAAM,OAAO,MAAM;IAGjB,YAAY,WAAqB,QAAQ,CAAC,IAAI;QAC5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,IAAW;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,GAAG,IAAW;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;SAChC;IACH,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;CACF","sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport enum LogLevel {\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error',\n NONE = 'none',\n}\n\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n private logLevel: LogLevel;\n\n constructor(logLevel: LogLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n\n info(message: string, ...args: any[]): void {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n\n error(message: string, ...args: any[]): void {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n\n private shouldLog(level: LogLevel): boolean {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n"]}
|
|
@@ -3,4 +3,4 @@ export interface FronteggObservable<T extends keyof FronteggState> {
|
|
|
3
3
|
value: FronteggState[T];
|
|
4
4
|
subscribe: (listener: SubscribeFunc<FronteggState, T>) => () => void;
|
|
5
5
|
}
|
|
6
|
-
export declare const createObservable: <T extends "user" | "accessToken" | "refreshToken" | "isAuthenticated" | "showLoader" | "selectedRegion">(map: SubscribeMap<FronteggState>, state: FronteggState, key: T) => FronteggObservable<T>;
|
|
6
|
+
export declare const createObservable: <T extends "user" | "accessToken" | "refreshToken" | "isAuthenticated" | "showLoader" | "isLoading" | "selectedRegion" | "refreshingToken" | "initializing">(map: SubscribeMap<FronteggState>, state: FronteggState, key: T) => FronteggObservable<T>;
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export declare class FronteggNativeWeb extends WebPlugin implements FronteggNati
|
|
|
7
7
|
directLoginAction(payload: {
|
|
8
8
|
type: string;
|
|
9
9
|
data: string;
|
|
10
|
-
|
|
10
|
+
ephemeralSession?: boolean;
|
|
11
|
+
}): Promise<boolean>;
|
|
11
12
|
logout(): Promise<void>;
|
|
12
13
|
switchTenant(payload: {
|
|
13
14
|
tenantId: string;
|
package/dist/esm/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,iBAAiB,CAAC,
|
|
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,iBAAiB,CAAC,OAIvB;QACC,MAAM,KAAK,CACT,oCAAoC,OAAO,yBAAyB,CACrE,CAAC;IACJ,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 directLoginAction(payload: {\n type: string;\n data: string;\n ephemeralSession?: boolean;\n }): Promise<boolean> {\n throw Error(\n `FronteggNative.directLoginAction ${payload} not implemented in web`,\n );\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"]}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -4,6 +4,44 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var core = require('@capacitor/core');
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Enum representing different log levels.
|
|
9
|
+
*/
|
|
10
|
+
exports.LogLevel = void 0;
|
|
11
|
+
(function (LogLevel) {
|
|
12
|
+
LogLevel["INFO"] = "info";
|
|
13
|
+
LogLevel["WARN"] = "warn";
|
|
14
|
+
LogLevel["ERROR"] = "error";
|
|
15
|
+
LogLevel["NONE"] = "none";
|
|
16
|
+
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
17
|
+
/**
|
|
18
|
+
* Logger class to handle logging with a configurable log level.
|
|
19
|
+
*/
|
|
20
|
+
class Logger {
|
|
21
|
+
constructor(logLevel = exports.LogLevel.WARN) {
|
|
22
|
+
this.logLevel = logLevel;
|
|
23
|
+
}
|
|
24
|
+
info(message, ...args) {
|
|
25
|
+
if (this.shouldLog(exports.LogLevel.INFO)) {
|
|
26
|
+
console.info(message, ...args);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
warn(message, ...args) {
|
|
30
|
+
if (this.shouldLog(exports.LogLevel.WARN)) {
|
|
31
|
+
console.info(message, ...args);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
error(message, ...args) {
|
|
35
|
+
if (this.shouldLog(exports.LogLevel.ERROR)) {
|
|
36
|
+
console.info(message, ...args);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
shouldLog(level) {
|
|
40
|
+
const levels = [exports.LogLevel.INFO, exports.LogLevel.WARN, exports.LogLevel.ERROR];
|
|
41
|
+
return levels.indexOf(level) >= levels.indexOf(this.logLevel);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
7
45
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
8
46
|
const createObservable = (map, state, key) => {
|
|
9
47
|
return {
|
|
@@ -22,7 +60,7 @@ const FronteggNative = core.registerPlugin('FronteggNative', {
|
|
|
22
60
|
web: () => Promise.resolve().then(function () { return web; }).then(m => new m.FronteggNativeWeb()),
|
|
23
61
|
});
|
|
24
62
|
class FronteggService {
|
|
25
|
-
constructor() {
|
|
63
|
+
constructor(options) {
|
|
26
64
|
this.orderedListenerKeys = [
|
|
27
65
|
'refreshToken',
|
|
28
66
|
'accessToken',
|
|
@@ -30,38 +68,48 @@ class FronteggService {
|
|
|
30
68
|
'isAuthenticated',
|
|
31
69
|
'selectedRegion',
|
|
32
70
|
'showLoader',
|
|
71
|
+
'refreshingToken',
|
|
72
|
+
'initializing',
|
|
33
73
|
];
|
|
74
|
+
this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);
|
|
75
|
+
this.logger.info('FronteggService created');
|
|
34
76
|
this.state = {
|
|
35
77
|
isAuthenticated: false,
|
|
36
78
|
showLoader: true,
|
|
79
|
+
isLoading: true,
|
|
37
80
|
user: null,
|
|
38
81
|
accessToken: null,
|
|
39
82
|
refreshToken: null,
|
|
40
83
|
selectedRegion: null,
|
|
84
|
+
refreshingToken: false,
|
|
85
|
+
initializing: true,
|
|
41
86
|
};
|
|
42
87
|
this.mapListeners = {
|
|
43
88
|
isAuthenticated: new Set(),
|
|
44
89
|
showLoader: new Set(),
|
|
90
|
+
isLoading: new Set(),
|
|
45
91
|
user: new Set(),
|
|
46
92
|
accessToken: new Set(),
|
|
47
93
|
refreshToken: new Set(),
|
|
48
94
|
selectedRegion: new Set(),
|
|
95
|
+
refreshingToken: new Set(),
|
|
96
|
+
initializing: new Set(),
|
|
49
97
|
};
|
|
50
98
|
FronteggNative.addListener('onFronteggAuthEvent', (state) => {
|
|
51
|
-
|
|
99
|
+
this.logger.info('onFronteggAuthEvent', {
|
|
52
100
|
isAuthenticated: state.isAuthenticated,
|
|
53
|
-
showLoader: state.
|
|
101
|
+
showLoader: state.isLoading,
|
|
54
102
|
user: `${state.user}`,
|
|
55
|
-
accessToken: state.accessToken
|
|
56
|
-
? `${state.accessToken.slice(0, 50)}...`
|
|
57
|
-
: state.accessToken,
|
|
103
|
+
accessToken: state.accessToken ? '****' : null,
|
|
58
104
|
refreshToken: state.refreshToken,
|
|
59
105
|
selectedRegion: state.selectedRegion,
|
|
106
|
+
refreshingToken: state.refreshingToken,
|
|
107
|
+
initializing: state.initializing,
|
|
60
108
|
});
|
|
61
109
|
const keys = this.orderedListenerKeys;
|
|
62
110
|
keys.forEach(key => {
|
|
63
111
|
if (this.isChanged(this.state[key], state[key])) {
|
|
64
|
-
|
|
112
|
+
this.logger.info('onFronteggAuthEvent', key, state[key]);
|
|
65
113
|
this.state[key] = state[key];
|
|
66
114
|
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
67
115
|
}
|
|
@@ -69,7 +117,7 @@ class FronteggService {
|
|
|
69
117
|
this.state = state;
|
|
70
118
|
});
|
|
71
119
|
FronteggNative.getAuthState().then((state) => {
|
|
72
|
-
|
|
120
|
+
this.logger.info('getAuthState()', state);
|
|
73
121
|
const keys = Object.keys(this.mapListeners);
|
|
74
122
|
for (const item of keys) {
|
|
75
123
|
const key = item;
|
|
@@ -80,11 +128,50 @@ class FronteggService {
|
|
|
80
128
|
}
|
|
81
129
|
});
|
|
82
130
|
}
|
|
83
|
-
isChanged(
|
|
84
|
-
|
|
131
|
+
isChanged(obj1, obj2) {
|
|
132
|
+
// Strict equality check
|
|
133
|
+
if (obj1 === obj2) {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
// Check for null and undefined
|
|
137
|
+
if (obj1 === null ||
|
|
138
|
+
obj1 === undefined ||
|
|
139
|
+
obj2 === null ||
|
|
140
|
+
obj2 === undefined) {
|
|
141
|
+
return obj1 !== obj2;
|
|
142
|
+
}
|
|
143
|
+
// Handle primitive types (number, string, boolean)
|
|
144
|
+
if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {
|
|
145
|
+
return obj1 !== obj2;
|
|
146
|
+
}
|
|
147
|
+
// Handle arrays
|
|
148
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
149
|
+
if (obj1.length !== obj2.length) {
|
|
150
|
+
return true;
|
|
151
|
+
}
|
|
152
|
+
for (let i = 0; i < obj1.length; i++) {
|
|
153
|
+
if (this.isChanged(obj1[i], obj2[i])) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
// Handle objects
|
|
160
|
+
if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
|
161
|
+
const keys1 = Object.keys(obj1);
|
|
162
|
+
const keys2 = Object.keys(obj2);
|
|
163
|
+
if (keys1.length !== keys2.length) {
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
for (const key of keys1) {
|
|
167
|
+
if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
85
171
|
return false;
|
|
86
172
|
}
|
|
87
|
-
|
|
173
|
+
// If none of the above conditions match, the values have changed
|
|
174
|
+
return true;
|
|
88
175
|
}
|
|
89
176
|
getState() {
|
|
90
177
|
return this.state;
|
|
@@ -93,7 +180,7 @@ class FronteggService {
|
|
|
93
180
|
return FronteggNative.getAuthState();
|
|
94
181
|
}
|
|
95
182
|
get $isLoading() {
|
|
96
|
-
return createObservable(this.mapListeners, this.state, '
|
|
183
|
+
return createObservable(this.mapListeners, this.state, 'isLoading');
|
|
97
184
|
}
|
|
98
185
|
get $isAuthenticated() {
|
|
99
186
|
return createObservable(this.mapListeners, this.state, 'isAuthenticated');
|
|
@@ -117,9 +204,10 @@ class FronteggService {
|
|
|
117
204
|
* Used to log in with social login provider directly without visiting the login page
|
|
118
205
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
119
206
|
* @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)
|
|
207
|
+
* @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser
|
|
120
208
|
*/
|
|
121
|
-
directLoginAction(type, data) {
|
|
122
|
-
return FronteggNative.directLoginAction({ type, data });
|
|
209
|
+
directLoginAction(type, data, ephemeralSession = true) {
|
|
210
|
+
return FronteggNative.directLoginAction({ type, data, ephemeralSession });
|
|
123
211
|
}
|
|
124
212
|
logout() {
|
|
125
213
|
FronteggNative.logout();
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n */\n directLoginAction(type, data) {\n return FronteggNative.directLoginAction({ type, data });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info('getAuthState()', state);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys) {\n const key = item;\n if (this.isChanged(this.state[key], state[key])) {\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n }\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n directLoginAction(type, data, ephemeralSession = true) {\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":";;;;;;AAAA;AACA;AACA;AACWA,0BAAS;AACpB,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC9B,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAC9B,CAAC,EAAEA,gBAAQ,KAAKA,gBAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC;AACA;AACA;AACO,MAAM,MAAM,CAAC;AACpB,IAAI,WAAW,CAAC,QAAQ,GAAGA,gBAAQ,CAAC,IAAI,EAAE;AAC1C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,IAAI,CAAC,EAAE;AAC3C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;AAC3B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,IAAI,CAAC,EAAE;AAC3C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK;AACL,IAAI,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE;AAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,CAACA,gBAAQ,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3C,SAAS;AACT,KAAK;AACL,IAAI,SAAS,CAAC,KAAK,EAAE;AACrB,QAAQ,MAAM,MAAM,GAAG,CAACA,gBAAQ,CAAC,IAAI,EAAEA,gBAAQ,CAAC,IAAI,EAAEA,gBAAQ,CAAC,KAAK,CAAC,CAAC;AACtE,QAAQ,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtE,KAAK;AACL;;ACpCA;AACO,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK;AACrD,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACzB,QAAQ,SAAS,CAAC,QAAQ,EAAE;AAC5B,YAAY,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACpC,YAAY,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACjC,YAAY,OAAO,MAAM;AACzB,gBAAgB,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxC,aAAa,CAAC;AACd,SAAS;AACT,KAAK,CAAC;AACN,CAAC;;ACTD,MAAM,cAAc,GAAGC,mBAAc,CAAC,gBAAgB,EAAE;AACxD,IAAI,GAAG,EAAE,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC;AACnE,CAAC,CAAC,CAAC;AACI,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,CAAC,mBAAmB,GAAG;AACnC,YAAY,cAAc;AAC1B,YAAY,aAAa;AACzB,YAAY,MAAM;AAClB,YAAY,iBAAiB;AAC7B,YAAY,gBAAgB;AAC5B,YAAY,YAAY;AACxB,YAAY,iBAAiB;AAC7B,YAAY,cAAc;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACrG,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,KAAK,GAAG;AACrB,YAAY,eAAe,EAAE,KAAK;AAClC,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,SAAS,EAAE,IAAI;AAC3B,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,YAAY,EAAE,IAAI;AAC9B,YAAY,cAAc,EAAE,IAAI;AAChC,YAAY,eAAe,EAAE,KAAK;AAClC,YAAY,YAAY,EAAE,IAAI;AAC9B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,GAAG;AAC5B,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;AACtC,YAAY,UAAU,EAAE,IAAI,GAAG,EAAE;AACjC,YAAY,SAAS,EAAE,IAAI,GAAG,EAAE;AAChC,YAAY,IAAI,EAAE,IAAI,GAAG,EAAE;AAC3B,YAAY,WAAW,EAAE,IAAI,GAAG,EAAE;AAClC,YAAY,YAAY,EAAE,IAAI,GAAG,EAAE;AACnC,YAAY,cAAc,EAAE,IAAI,GAAG,EAAE;AACrC,YAAY,eAAe,EAAE,IAAI,GAAG,EAAE;AACtC,YAAY,YAAY,EAAE,IAAI,GAAG,EAAE;AACnC,SAAS,CAAC;AACV,QAAQ,cAAc,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,KAAK,KAAK;AACrE,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACpD,gBAAgB,eAAe,EAAE,KAAK,CAAC,eAAe;AACtD,gBAAgB,UAAU,EAAE,KAAK,CAAC,SAAS;AAC3C,gBAAgB,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;AACrC,gBAAgB,WAAW,EAAE,KAAK,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI;AAC9D,gBAAgB,YAAY,EAAE,KAAK,CAAC,YAAY;AAChD,gBAAgB,cAAc,EAAE,KAAK,CAAC,cAAc;AACpD,gBAAgB,eAAe,EAAE,KAAK,CAAC,eAAe;AACtD,gBAAgB,YAAY,EAAE,KAAK,CAAC,YAAY;AAChD,aAAa,CAAC,CAAC;AACf,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;AAClD,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AAChC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACjE,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7E,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACjD,oBAAoB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,QAAQ,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK;AACtD,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACtD,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxD,YAAY,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;AACrC,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC;AACjC,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACjE,oBAAoB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACjD,oBAAoB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvF,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B;AACA,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,IAAI,IAAI,KAAK,IAAI;AACzB,YAAY,IAAI,KAAK,SAAS;AAC9B,YAAY,IAAI,KAAK,IAAI;AACzB,YAAY,IAAI,KAAK,SAAS,EAAE;AAChC,YAAY,OAAO,IAAI,KAAK,IAAI,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClE,YAAY,OAAO,IAAI,KAAK,IAAI,CAAC;AACjC,SAAS;AACT;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxD,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AAC7C,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACtD,oBAAoB,OAAO,IAAI,CAAC;AAChC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClE,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAC/C,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa;AACb,YAAY,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACrC,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAClF,oBAAoB,OAAO,IAAI,CAAC;AAChC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT;AACA,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;AAC1B,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;AAC7C,KAAK;AACL,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAC5E,KAAK;AACL,IAAI,IAAI,gBAAgB,GAAG;AAC3B,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACjF,KAAK;AACL;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,OAAO,cAAc,CAAC,KAAK,EAAE,CAAC;AACtC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAAE;AAC3D,QAAQ,OAAO,cAAc,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAClF,KAAK;AACL,IAAI,MAAM,GAAG;AACb,QAAQ,cAAc,CAAC,MAAM,EAAE,CAAC;AAChC,KAAK;AACL,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;AAC7C,KAAK;AACL,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,OAAO,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,SAAS,EAAE;AAC9B;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,cAAc,KAAK,SAAS,EAAE;AAC1D,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AACrC,SAAS;AACT,QAAQ,OAAO,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,cAAc,CAAC,YAAY,EAAE,CAAC;AAC7C,KAAK;AACL;;ACpLO,MAAM,iBAAiB,SAASC,cAAS,CAAC;AACjD,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,MAAM,iBAAiB,CAAC,OAAO,EAAE;AACrC,QAAQ,MAAM,KAAK,CAAC,CAAC,iCAAiC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAC1F,KAAK;AACL,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACpE,KAAK;AACL,IAAI,MAAM,YAAY,CAAC,OAAO,EAAE;AAChC,QAAQ,MAAM,KAAK,CAAC,CAAC,4BAA4B,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACrF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,OAAO,EAAE;AAClC,QAAQ,MAAM,KAAK,CAAC,CAAC,8BAA8B,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACvF,KAAK;AACL,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,KAAK,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL;;;;;;;;;"}
|
package/dist/plugin.js
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
var capacitorFronteggNative = (function (exports, core) {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Enum representing different log levels.
|
|
6
|
+
*/
|
|
7
|
+
exports.LogLevel = void 0;
|
|
8
|
+
(function (LogLevel) {
|
|
9
|
+
LogLevel["INFO"] = "info";
|
|
10
|
+
LogLevel["WARN"] = "warn";
|
|
11
|
+
LogLevel["ERROR"] = "error";
|
|
12
|
+
LogLevel["NONE"] = "none";
|
|
13
|
+
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
14
|
+
/**
|
|
15
|
+
* Logger class to handle logging with a configurable log level.
|
|
16
|
+
*/
|
|
17
|
+
class Logger {
|
|
18
|
+
constructor(logLevel = exports.LogLevel.WARN) {
|
|
19
|
+
this.logLevel = logLevel;
|
|
20
|
+
}
|
|
21
|
+
info(message, ...args) {
|
|
22
|
+
if (this.shouldLog(exports.LogLevel.INFO)) {
|
|
23
|
+
console.info(message, ...args);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
warn(message, ...args) {
|
|
27
|
+
if (this.shouldLog(exports.LogLevel.WARN)) {
|
|
28
|
+
console.info(message, ...args);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
error(message, ...args) {
|
|
32
|
+
if (this.shouldLog(exports.LogLevel.ERROR)) {
|
|
33
|
+
console.info(message, ...args);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
shouldLog(level) {
|
|
37
|
+
const levels = [exports.LogLevel.INFO, exports.LogLevel.WARN, exports.LogLevel.ERROR];
|
|
38
|
+
return levels.indexOf(level) >= levels.indexOf(this.logLevel);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
4
42
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
|
|
5
43
|
const createObservable = (map, state, key) => {
|
|
6
44
|
return {
|
|
@@ -19,7 +57,7 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
19
57
|
web: () => Promise.resolve().then(function () { return web; }).then(m => new m.FronteggNativeWeb()),
|
|
20
58
|
});
|
|
21
59
|
class FronteggService {
|
|
22
|
-
constructor() {
|
|
60
|
+
constructor(options) {
|
|
23
61
|
this.orderedListenerKeys = [
|
|
24
62
|
'refreshToken',
|
|
25
63
|
'accessToken',
|
|
@@ -27,38 +65,48 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
27
65
|
'isAuthenticated',
|
|
28
66
|
'selectedRegion',
|
|
29
67
|
'showLoader',
|
|
68
|
+
'refreshingToken',
|
|
69
|
+
'initializing',
|
|
30
70
|
];
|
|
71
|
+
this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);
|
|
72
|
+
this.logger.info('FronteggService created');
|
|
31
73
|
this.state = {
|
|
32
74
|
isAuthenticated: false,
|
|
33
75
|
showLoader: true,
|
|
76
|
+
isLoading: true,
|
|
34
77
|
user: null,
|
|
35
78
|
accessToken: null,
|
|
36
79
|
refreshToken: null,
|
|
37
80
|
selectedRegion: null,
|
|
81
|
+
refreshingToken: false,
|
|
82
|
+
initializing: true,
|
|
38
83
|
};
|
|
39
84
|
this.mapListeners = {
|
|
40
85
|
isAuthenticated: new Set(),
|
|
41
86
|
showLoader: new Set(),
|
|
87
|
+
isLoading: new Set(),
|
|
42
88
|
user: new Set(),
|
|
43
89
|
accessToken: new Set(),
|
|
44
90
|
refreshToken: new Set(),
|
|
45
91
|
selectedRegion: new Set(),
|
|
92
|
+
refreshingToken: new Set(),
|
|
93
|
+
initializing: new Set(),
|
|
46
94
|
};
|
|
47
95
|
FronteggNative.addListener('onFronteggAuthEvent', (state) => {
|
|
48
|
-
|
|
96
|
+
this.logger.info('onFronteggAuthEvent', {
|
|
49
97
|
isAuthenticated: state.isAuthenticated,
|
|
50
|
-
showLoader: state.
|
|
98
|
+
showLoader: state.isLoading,
|
|
51
99
|
user: `${state.user}`,
|
|
52
|
-
accessToken: state.accessToken
|
|
53
|
-
? `${state.accessToken.slice(0, 50)}...`
|
|
54
|
-
: state.accessToken,
|
|
100
|
+
accessToken: state.accessToken ? '****' : null,
|
|
55
101
|
refreshToken: state.refreshToken,
|
|
56
102
|
selectedRegion: state.selectedRegion,
|
|
103
|
+
refreshingToken: state.refreshingToken,
|
|
104
|
+
initializing: state.initializing,
|
|
57
105
|
});
|
|
58
106
|
const keys = this.orderedListenerKeys;
|
|
59
107
|
keys.forEach(key => {
|
|
60
108
|
if (this.isChanged(this.state[key], state[key])) {
|
|
61
|
-
|
|
109
|
+
this.logger.info('onFronteggAuthEvent', key, state[key]);
|
|
62
110
|
this.state[key] = state[key];
|
|
63
111
|
this.mapListeners[key].forEach((listener) => listener(state[key]));
|
|
64
112
|
}
|
|
@@ -66,7 +114,7 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
66
114
|
this.state = state;
|
|
67
115
|
});
|
|
68
116
|
FronteggNative.getAuthState().then((state) => {
|
|
69
|
-
|
|
117
|
+
this.logger.info('getAuthState()', state);
|
|
70
118
|
const keys = Object.keys(this.mapListeners);
|
|
71
119
|
for (const item of keys) {
|
|
72
120
|
const key = item;
|
|
@@ -77,11 +125,50 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
77
125
|
}
|
|
78
126
|
});
|
|
79
127
|
}
|
|
80
|
-
isChanged(
|
|
81
|
-
|
|
128
|
+
isChanged(obj1, obj2) {
|
|
129
|
+
// Strict equality check
|
|
130
|
+
if (obj1 === obj2) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
// Check for null and undefined
|
|
134
|
+
if (obj1 === null ||
|
|
135
|
+
obj1 === undefined ||
|
|
136
|
+
obj2 === null ||
|
|
137
|
+
obj2 === undefined) {
|
|
138
|
+
return obj1 !== obj2;
|
|
139
|
+
}
|
|
140
|
+
// Handle primitive types (number, string, boolean)
|
|
141
|
+
if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {
|
|
142
|
+
return obj1 !== obj2;
|
|
143
|
+
}
|
|
144
|
+
// Handle arrays
|
|
145
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
146
|
+
if (obj1.length !== obj2.length) {
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
for (let i = 0; i < obj1.length; i++) {
|
|
150
|
+
if (this.isChanged(obj1[i], obj2[i])) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
// Handle objects
|
|
157
|
+
if (typeof obj1 === 'object' && typeof obj2 === 'object') {
|
|
158
|
+
const keys1 = Object.keys(obj1);
|
|
159
|
+
const keys2 = Object.keys(obj2);
|
|
160
|
+
if (keys1.length !== keys2.length) {
|
|
161
|
+
return true;
|
|
162
|
+
}
|
|
163
|
+
for (const key of keys1) {
|
|
164
|
+
if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
82
168
|
return false;
|
|
83
169
|
}
|
|
84
|
-
|
|
170
|
+
// If none of the above conditions match, the values have changed
|
|
171
|
+
return true;
|
|
85
172
|
}
|
|
86
173
|
getState() {
|
|
87
174
|
return this.state;
|
|
@@ -90,7 +177,7 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
90
177
|
return FronteggNative.getAuthState();
|
|
91
178
|
}
|
|
92
179
|
get $isLoading() {
|
|
93
|
-
return createObservable(this.mapListeners, this.state, '
|
|
180
|
+
return createObservable(this.mapListeners, this.state, 'isLoading');
|
|
94
181
|
}
|
|
95
182
|
get $isAuthenticated() {
|
|
96
183
|
return createObservable(this.mapListeners, this.state, 'isAuthenticated');
|
|
@@ -114,9 +201,10 @@ var capacitorFronteggNative = (function (exports, core) {
|
|
|
114
201
|
* Used to log in with social login provider directly without visiting the login page
|
|
115
202
|
* @param type - the direct login type (direct, social-login, custom-social-login)
|
|
116
203
|
* @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)
|
|
204
|
+
* @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser
|
|
117
205
|
*/
|
|
118
|
-
directLoginAction(type, data) {
|
|
119
|
-
return FronteggNative.directLoginAction({ type, data });
|
|
206
|
+
directLoginAction(type, data, ephemeralSession = true) {
|
|
207
|
+
return FronteggNative.directLoginAction({ type, data, ephemeralSession });
|
|
120
208
|
}
|
|
121
209
|
logout() {
|
|
122
210
|
FronteggNative.logout();
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n */\n directLoginAction(type, data) {\n return FronteggNative.directLoginAction({ type, data });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/logger.js","esm/observables.js","esm/frontegg.service.js","esm/web.js"],"sourcesContent":["/**\n * Enum representing different log levels.\n */\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"INFO\"] = \"info\";\n LogLevel[\"WARN\"] = \"warn\";\n LogLevel[\"ERROR\"] = \"error\";\n LogLevel[\"NONE\"] = \"none\";\n})(LogLevel || (LogLevel = {}));\n/**\n * Logger class to handle logging with a configurable log level.\n */\nexport class Logger {\n constructor(logLevel = LogLevel.WARN) {\n this.logLevel = logLevel;\n }\n info(message, ...args) {\n if (this.shouldLog(LogLevel.INFO)) {\n console.info(message, ...args);\n }\n }\n warn(message, ...args) {\n if (this.shouldLog(LogLevel.WARN)) {\n console.info(message, ...args);\n }\n }\n error(message, ...args) {\n if (this.shouldLog(LogLevel.ERROR)) {\n console.info(message, ...args);\n }\n }\n shouldLog(level) {\n const levels = [LogLevel.INFO, LogLevel.WARN, LogLevel.ERROR];\n return levels.indexOf(level) >= levels.indexOf(this.logLevel);\n }\n}\n//# sourceMappingURL=logger.js.map","// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const createObservable = (map, state, key) => {\n return {\n value: state[key],\n subscribe(listener) {\n const mapKey = map[key];\n mapKey.add(listener);\n return () => {\n mapKey.delete(listener);\n };\n },\n };\n};\n//# sourceMappingURL=observables.js.map","import { registerPlugin } from '@capacitor/core';\nimport { Logger } from './logger';\nimport { createObservable } from './observables';\nconst FronteggNative = registerPlugin('FronteggNative', {\n web: () => import('./web').then(m => new m.FronteggNativeWeb()),\n});\nexport class FronteggService {\n constructor(options) {\n this.orderedListenerKeys = [\n 'refreshToken',\n 'accessToken',\n 'user',\n 'isAuthenticated',\n 'selectedRegion',\n 'showLoader',\n 'refreshingToken',\n 'initializing',\n ];\n this.logger = new Logger(options === null || options === void 0 ? void 0 : options.logLevel);\n this.logger.info('FronteggService created');\n this.state = {\n isAuthenticated: false,\n showLoader: true,\n isLoading: true,\n user: null,\n accessToken: null,\n refreshToken: null,\n selectedRegion: null,\n refreshingToken: false,\n initializing: true,\n };\n this.mapListeners = {\n isAuthenticated: new Set(),\n showLoader: new Set(),\n isLoading: new Set(),\n user: new Set(),\n accessToken: new Set(),\n refreshToken: new Set(),\n selectedRegion: new Set(),\n refreshingToken: new Set(),\n initializing: new Set(),\n };\n FronteggNative.addListener('onFronteggAuthEvent', (state) => {\n this.logger.info('onFronteggAuthEvent', {\n isAuthenticated: state.isAuthenticated,\n showLoader: state.isLoading,\n user: `${state.user}`,\n accessToken: state.accessToken ? '****' : null,\n refreshToken: state.refreshToken,\n selectedRegion: state.selectedRegion,\n refreshingToken: state.refreshingToken,\n initializing: state.initializing,\n });\n const keys = this.orderedListenerKeys;\n keys.forEach(key => {\n if (this.isChanged(this.state[key], state[key])) {\n this.logger.info('onFronteggAuthEvent', key, state[key]);\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n });\n this.state = state;\n });\n FronteggNative.getAuthState().then((state) => {\n this.logger.info('getAuthState()', state);\n const keys = Object.keys(this.mapListeners);\n for (const item of keys) {\n const key = item;\n if (this.isChanged(this.state[key], state[key])) {\n this.state[key] = state[key];\n this.mapListeners[key].forEach((listener) => listener(state[key]));\n }\n }\n });\n }\n isChanged(obj1, obj2) {\n // Strict equality check\n if (obj1 === obj2) {\n return false;\n }\n // Check for null and undefined\n if (obj1 === null ||\n obj1 === undefined ||\n obj2 === null ||\n obj2 === undefined) {\n return obj1 !== obj2;\n }\n // Handle primitive types (number, string, boolean)\n if (typeof obj1 !== 'object' && typeof obj2 !== 'object') {\n return obj1 !== obj2;\n }\n // Handle arrays\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\n if (obj1.length !== obj2.length) {\n return true;\n }\n for (let i = 0; i < obj1.length; i++) {\n if (this.isChanged(obj1[i], obj2[i])) {\n return true;\n }\n }\n return false;\n }\n // Handle objects\n if (typeof obj1 === 'object' && typeof obj2 === 'object') {\n const keys1 = Object.keys(obj1);\n const keys2 = Object.keys(obj2);\n if (keys1.length !== keys2.length) {\n return true;\n }\n for (const key of keys1) {\n if (!keys2.includes(key) || this.isChanged(obj1[key], obj2[key])) {\n return true;\n }\n }\n return false;\n }\n // If none of the above conditions match, the values have changed\n return true;\n }\n getState() {\n return this.state;\n }\n getNativeState() {\n return FronteggNative.getAuthState();\n }\n get $isLoading() {\n return createObservable(this.mapListeners, this.state, 'isLoading');\n }\n get $isAuthenticated() {\n return createObservable(this.mapListeners, this.state, 'isAuthenticated');\n }\n get $user() {\n return createObservable(this.mapListeners, this.state, 'user');\n }\n get $accessToken() {\n return createObservable(this.mapListeners, this.state, 'accessToken');\n }\n get $selectedRegion() {\n return createObservable(this.mapListeners, this.state, 'selectedRegion');\n }\n /**\n * Call frontegg native login method\n */\n login() {\n return FronteggNative.login();\n }\n /**\n * Used to log in with social login provider directly without visiting the login page\n * @param type - the direct login type (direct, social-login, custom-social-login)\n * @param data - the direct login data (for direct it's saml url request, for social-login it's the provider name, for custom-social-login it's the provider entity id)\n * @param ephemeralSession - if true, the session will be ephemeral and will not be saved in the browser\n */\n directLoginAction(type, data, ephemeralSession = true) {\n return FronteggNative.directLoginAction({ type, data, ephemeralSession });\n }\n logout() {\n FronteggNative.logout();\n }\n getConstants() {\n return FronteggNative.getConstants();\n }\n switchTenant(tenantId) {\n return FronteggNative.switchTenant({ tenantId });\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n initWithRegion(regionKey) {\n // check if current region is the same as the new region\n if (this.getState().selectedRegion === regionKey) {\n return Promise.resolve();\n }\n return FronteggNative.initWithRegion({ regionKey });\n }\n refreshToken() {\n return FronteggNative.refreshToken();\n }\n}\n//# sourceMappingURL=frontegg.service.js.map","import { WebPlugin } from '@capacitor/core';\nexport class FronteggNativeWeb extends WebPlugin {\n async getConstants() {\n throw Error('FronteggNative.getConstants not implemented in web');\n }\n async getAuthState() {\n throw Error('FronteggNative.getAuthState not implemented in web');\n }\n async login() {\n throw Error('FronteggNative.login not implemented in web');\n }\n async directLoginAction(payload) {\n throw Error(`FronteggNative.directLoginAction ${payload} not implemented in web`);\n }\n async logout() {\n throw Error('FronteggNative.logout not implemented in web');\n }\n async switchTenant(payload) {\n throw Error(`FronteggNative.switchTenant ${payload} not implemented in web`);\n }\n /**\n * used to initialize the plugin with multiple regions\n * for more information see:\n * iOS: https://github.com/frontegg/frontegg-ios-swift#multi-region-support\n * Android: https://github.com/frontegg/frontegg-android-kotlin#multi-region-support\n */\n async initWithRegion(payload) {\n throw Error(`FronteggNative.initWithRegion ${payload} not implemented in web`);\n }\n async refreshToken() {\n throw Error(`FronteggNative.refreshToken not implemented in web`);\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["LogLevel","registerPlugin","WebPlugin"],"mappings":"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"}
|