@frontegg/rest-api 6.0.1-alpha.4 → 7.28.0-alpha.0
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/BaseApiClient.d.ts +16 -0
- package/BaseApiClient.js +30 -0
- package/ContextHolder/index.d.ts +160 -0
- package/ContextHolder/index.js +278 -0
- package/ContextHolder/package.json +6 -0
- package/FetchClient.d.ts +42 -0
- package/FetchClient.js +260 -0
- package/account-settings/index.d.ts +21 -7
- package/account-settings/index.js +25 -6
- package/account-settings/interfaces.d.ts +9 -2
- package/applications/index.d.ts +51 -0
- package/applications/index.js +55 -0
- package/applications/interfaces.d.ts +49 -0
- package/applications/interfaces.js +5 -0
- package/applications/package.json +6 -0
- package/audits/index.d.ts +27 -15
- package/audits/index.js +29 -16
- package/audits/interfaces.d.ts +3 -2
- package/auth/constants.d.ts +5 -0
- package/auth/constants.js +5 -0
- package/auth/enums.d.ts +8 -1
- package/auth/enums.js +9 -4
- package/auth/index.d.ts +833 -428
- package/auth/index.js +768 -385
- package/auth/interfaces.d.ts +341 -39
- package/auth/interfaces.js +19 -9
- package/auth/secutiry-poilicy/index.d.ts +60 -41
- package/auth/secutiry-poilicy/index.js +99 -45
- package/auth/secutiry-poilicy/interfaces.d.ts +62 -2
- package/auth/secutiry-poilicy/interfaces.js +5 -1
- package/auth/utils.d.ts +10 -0
- package/auth/utils.js +35 -0
- package/connectivity/index.d.ts +126 -27
- package/connectivity/index.js +120 -114
- package/constants.d.ts +115 -0
- package/constants.js +122 -5
- package/directory/index.d.ts +32 -0
- package/directory/index.js +30 -0
- package/directory/interfaces.d.ts +30 -0
- package/directory/interfaces.js +7 -0
- package/directory/package.json +6 -0
- package/entitlements/index.d.ts +15 -0
- package/entitlements/index.js +20 -0
- package/entitlements/interfaces.d.ts +13 -0
- package/entitlements/interfaces.js +11 -0
- package/entitlements/package.json +6 -0
- package/error.js +0 -2
- package/feature-flags/index.d.ts +18 -0
- package/feature-flags/index.js +44 -0
- package/feature-flags/interfaces.d.ts +5 -0
- package/feature-flags/interfaces.js +1 -0
- package/feature-flags/package.json +6 -0
- package/groups/enums.d.ts +9 -0
- package/groups/enums.js +11 -0
- package/groups/index.d.ts +73 -0
- package/groups/index.js +62 -0
- package/groups/interfaces.d.ts +64 -0
- package/groups/interfaces.js +1 -0
- package/groups/package.json +6 -0
- package/impersonate/index.d.ts +17 -0
- package/impersonate/index.js +23 -0
- package/impersonate/interfaces.d.ts +12 -0
- package/impersonate/interfaces.js +1 -0
- package/impersonate/package.json +6 -0
- package/index.d.ts +148 -53
- package/index.js +103 -31
- package/interfaces.d.ts +82 -1
- package/interfaces.js +28 -1
- package/jwt.js +19 -20
- package/metadata/index.d.ts +68 -5
- package/metadata/index.js +53 -23
- package/metadata/interfaces.d.ts +10 -2
- package/node/BaseApiClient.js +37 -0
- package/node/ContextHolder/index.js +286 -0
- package/node/FetchClient.js +268 -0
- package/node/account-settings/index.js +26 -11
- package/node/applications/index.js +62 -0
- package/node/applications/interfaces.js +12 -0
- package/node/audits/index.js +32 -27
- package/node/auth/constants.js +13 -0
- package/node/auth/enums.js +11 -5
- package/node/auth/index.js +807 -644
- package/node/auth/interfaces.js +27 -13
- package/node/auth/secutiry-poilicy/index.js +100 -66
- package/node/auth/secutiry-poilicy/interfaces.js +8 -1
- package/node/auth/utils.js +44 -0
- package/node/connectivity/index.js +123 -197
- package/node/constants.js +124 -6
- package/node/directory/index.js +37 -0
- package/node/directory/interfaces.js +14 -0
- package/node/entitlements/index.js +27 -0
- package/node/entitlements/interfaces.js +18 -0
- package/node/error.js +0 -4
- package/node/feature-flags/index.js +54 -0
- package/node/feature-flags/interfaces.js +5 -0
- package/node/groups/enums.js +19 -0
- package/node/groups/index.js +70 -0
- package/node/groups/interfaces.js +5 -0
- package/node/impersonate/index.js +29 -0
- package/node/impersonate/interfaces.js +5 -0
- package/node/index.js +324 -94
- package/node/interfaces.js +34 -1
- package/node/jwt.js +19 -25
- package/node/metadata/index.js +57 -38
- package/node/notifications/index.js +34 -31
- package/node/reports/index.js +79 -83
- package/node/roles/index.js +55 -60
- package/node/roles/interfaces.js +9 -1
- package/node/routers.js +52 -6
- package/node/security-center/index.js +26 -0
- package/node/security-center/interfaces.js +74 -0
- package/node/sub-tenants/index.js +82 -29
- package/node/sub-tenants/interfaces.js +9 -1
- package/node/subscriptions/enums.js +13 -9
- package/node/subscriptions/index.js +64 -109
- package/node/subscriptions/interfaces.js +0 -2
- package/node/subscriptions/invoices.js +20 -21
- package/node/subscriptions/managedSubscriptions.js +28 -33
- package/node/subscriptions/paymentMethods.js +23 -27
- package/node/subscriptions/paymentProviders.js +11 -8
- package/node/subscriptions/plans.js +13 -12
- package/node/subscriptions/providers/stripe/index.js +22 -27
- package/node/subscriptions/subscriptions.js +28 -33
- package/node/subscriptions/summaries.js +11 -8
- package/node/subscriptions/tenantConfiguration.js +13 -12
- package/node/subscriptions/vendorPublicConfigurations.js +17 -0
- package/node/teams/index.js +108 -121
- package/node/teams/interfaces.js +8 -1
- package/node/tenants/index.js +63 -21
- package/node/tenants/interfaces.js +18 -1
- package/node/user-phone-numbers/index.js +38 -0
- package/node/user-phone-numbers/interfaces.js +5 -0
- package/node/users/index.js +64 -0
- package/node/users/interfaces.js +27 -0
- package/node/velo/index.js +75 -0
- package/node/velo/interfaces.js +5 -0
- package/node/vendor/index.js +16 -8
- package/notifications/index.d.ts +22 -16
- package/notifications/index.js +33 -22
- package/package.json +4 -2
- package/reports/index.d.ts +50 -44
- package/reports/index.js +77 -68
- package/reports/interfaces.d.ts +2 -2
- package/roles/index.d.ts +45 -34
- package/roles/index.js +52 -41
- package/roles/interfaces.d.ts +25 -9
- package/roles/interfaces.js +6 -1
- package/routers.d.ts +6 -1
- package/routers.js +45 -2
- package/security-center/index.d.ts +15 -0
- package/security-center/index.js +19 -0
- package/security-center/interfaces.d.ts +115 -0
- package/security-center/interfaces.js +63 -0
- package/security-center/package.json +6 -0
- package/sub-tenants/index.d.ts +57 -8
- package/sub-tenants/index.js +84 -19
- package/sub-tenants/interfaces.d.ts +68 -10
- package/sub-tenants/interfaces.js +6 -1
- package/subscriptions/enums.d.ts +7 -0
- package/subscriptions/enums.js +10 -8
- package/subscriptions/index.d.ts +55 -9
- package/subscriptions/index.js +56 -9
- package/subscriptions/interfaces.d.ts +7 -3
- package/subscriptions/interfaces.js +1 -1
- package/subscriptions/invoices.d.ts +16 -13
- package/subscriptions/invoices.js +19 -14
- package/subscriptions/managedSubscriptions.d.ts +18 -15
- package/subscriptions/managedSubscriptions.js +27 -22
- package/subscriptions/paymentMethods.d.ts +16 -13
- package/subscriptions/paymentMethods.js +22 -18
- package/subscriptions/paymentProviders.d.ts +8 -5
- package/subscriptions/paymentProviders.js +9 -4
- package/subscriptions/plans.d.ts +11 -8
- package/subscriptions/plans.js +11 -6
- package/subscriptions/providers/stripe/index.d.ts +24 -21
- package/subscriptions/providers/stripe/index.js +21 -16
- package/subscriptions/subscriptions.d.ts +24 -21
- package/subscriptions/subscriptions.js +27 -22
- package/subscriptions/summaries.d.ts +7 -4
- package/subscriptions/summaries.js +8 -3
- package/subscriptions/tenantConfiguration.d.ts +6 -3
- package/subscriptions/tenantConfiguration.js +12 -7
- package/subscriptions/vendorPublicConfigurations.d.ts +5 -0
- package/subscriptions/vendorPublicConfigurations.js +10 -0
- package/teams/index.d.ts +38 -115
- package/teams/index.js +105 -79
- package/teams/interfaces.d.ts +47 -42
- package/teams/interfaces.js +5 -1
- package/tenants/index.d.ts +25 -26
- package/tenants/index.js +61 -12
- package/tenants/interfaces.d.ts +85 -0
- package/tenants/interfaces.js +14 -1
- package/user-phone-numbers/index.d.ts +32 -0
- package/user-phone-numbers/index.js +31 -0
- package/user-phone-numbers/interfaces.d.ts +32 -0
- package/user-phone-numbers/interfaces.js +1 -0
- package/user-phone-numbers/package.json +6 -0
- package/users/index.d.ts +24 -0
- package/users/index.js +55 -0
- package/users/interfaces.d.ts +144 -0
- package/users/interfaces.js +18 -0
- package/users/package.json +6 -0
- package/velo/index.d.ts +46 -0
- package/velo/index.js +68 -0
- package/velo/interfaces.d.ts +108 -0
- package/velo/interfaces.js +1 -0
- package/velo/package.json +6 -0
- package/vendor/index.d.ts +12 -6
- package/vendor/index.js +15 -4
- package/ContextHolder.d.ts +0 -29
- package/ContextHolder.js +0 -80
- package/fetch.d.ts +0 -19
- package/fetch.js +0 -203
- package/node/ContextHolder.js +0 -90
- package/node/fetch.js +0 -234
- package/node/subscriptions/providers/index.js +0 -18
- package/subscriptions/providers/index.d.ts +0 -1
- package/subscriptions/providers/index.js +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FetchClient } from './FetchClient';
|
|
2
|
+
import { RequestOptions, UserJwtOptions } from './interfaces';
|
|
3
|
+
export declare class BaseApiClient {
|
|
4
|
+
protected appName: string;
|
|
5
|
+
protected fetchClient: FetchClient;
|
|
6
|
+
protected constructor(appName: string);
|
|
7
|
+
protected get: <T>(url: string, params?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
8
|
+
protected post: <T>(url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
9
|
+
protected patch: <T>(url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
10
|
+
protected put: <T>(url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
11
|
+
protected delete: <T>(url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
12
|
+
protected postDownload: <T>(url: string, body?: any, params?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<T>;
|
|
13
|
+
protected extractHeadersFromOptions: (options?: UserJwtOptions) => {
|
|
14
|
+
Authorization?: string | undefined;
|
|
15
|
+
};
|
|
16
|
+
}
|
package/BaseApiClient.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FetchClient } from './FetchClient';
|
|
2
|
+
export class BaseApiClient {
|
|
3
|
+
constructor(appName) {
|
|
4
|
+
this.appName = void 0;
|
|
5
|
+
this.fetchClient = void 0;
|
|
6
|
+
this.get = async (url, params, opts) => {
|
|
7
|
+
return this.fetchClient.get(url, params, opts);
|
|
8
|
+
};
|
|
9
|
+
this.post = async (url, body, opts) => {
|
|
10
|
+
return this.fetchClient.post(url, body, opts);
|
|
11
|
+
};
|
|
12
|
+
this.patch = async (url, body, opts) => {
|
|
13
|
+
return this.fetchClient.patch(url, body, opts);
|
|
14
|
+
};
|
|
15
|
+
this.put = async (url, body, opts) => {
|
|
16
|
+
return this.fetchClient.put(url, body, opts);
|
|
17
|
+
};
|
|
18
|
+
this.delete = async (url, body, opts) => {
|
|
19
|
+
return this.fetchClient.delete(url, body, opts);
|
|
20
|
+
};
|
|
21
|
+
this.postDownload = async (url, body, params, opts) => {
|
|
22
|
+
return this.fetchClient.postDownload(url, body, params, opts);
|
|
23
|
+
};
|
|
24
|
+
this.extractHeadersFromOptions = (options = {}) => {
|
|
25
|
+
return this.fetchClient.extractHeadersFromOptions(options);
|
|
26
|
+
};
|
|
27
|
+
this.appName = appName;
|
|
28
|
+
this.fetchClient = new FetchClient(appName);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { SessionContext, ContextOptions, RedirectOptions, RequestSource } from '../interfaces';
|
|
2
|
+
import { IUserProfile } from '../users/interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Entitlements config from frontegg provider
|
|
5
|
+
*/
|
|
6
|
+
export interface EntitlementsOptions {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare class ContextHolder {
|
|
10
|
+
private static _apps;
|
|
11
|
+
private context;
|
|
12
|
+
private accessToken;
|
|
13
|
+
private user;
|
|
14
|
+
private requestSource;
|
|
15
|
+
onRedirectTo: (path: string, opts?: RedirectOptions) => void;
|
|
16
|
+
logout: (callback?: () => void) => void;
|
|
17
|
+
private entitlementsOptions;
|
|
18
|
+
private appName;
|
|
19
|
+
private sessionContext?;
|
|
20
|
+
private basename;
|
|
21
|
+
private constructor();
|
|
22
|
+
static default(): ContextHolder;
|
|
23
|
+
static for(appName: string): ContextHolder;
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated - use ContextHolder.for(appName) / ContextHolder.default() instead
|
|
26
|
+
* @param appName
|
|
27
|
+
*/
|
|
28
|
+
static getInstance(appName?: string): ContextHolder;
|
|
29
|
+
static createInstance(appName?: string): ContextHolder;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated - use ContextHolder.for(appName).setContext instead
|
|
32
|
+
*/
|
|
33
|
+
static setContext(context: ContextOptions, appName?: string): void;
|
|
34
|
+
setContext: (context: ContextOptions) => void;
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated - use ContextHolder.for(appName).setAccessToken instead
|
|
37
|
+
*/
|
|
38
|
+
static setAccessToken(accessToken: string | null, appName?: string): void;
|
|
39
|
+
setAccessToken: (accessToken: string | null) => void;
|
|
40
|
+
/**
|
|
41
|
+
* @deprecated - use ContextHolder.for(appName).setUser instead
|
|
42
|
+
*/
|
|
43
|
+
static setUser(user: IUserProfile | null, appName?: string): void;
|
|
44
|
+
setUser: (user: IUserProfile | null) => void;
|
|
45
|
+
/**
|
|
46
|
+
* @deprecated - use ContextHolder.for(appName).setRequestSource instead
|
|
47
|
+
*/
|
|
48
|
+
static setRequestSource(requestSource: RequestSource | null, appName?: string): void;
|
|
49
|
+
setRequestSource: (requestSource: RequestSource | null) => void;
|
|
50
|
+
/**
|
|
51
|
+
* @deprecated - use ContextHolder.for(appName).setOnRedirectTo instead
|
|
52
|
+
*/
|
|
53
|
+
static setOnRedirectTo(onRedirectTo: (path: string, opts?: RedirectOptions) => void, appName?: string): void;
|
|
54
|
+
setOnRedirectTo: (onRedirectTo: (path: string, opts?: RedirectOptions) => void) => void;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated - use ContextHolder.for(appName).setLogout instead
|
|
57
|
+
*/
|
|
58
|
+
static setLogout(logout: (callback?: () => void) => void, logoutUrl: string, appName?: string): void;
|
|
59
|
+
setLogout: (logout: (callback?: () => void) => void) => void;
|
|
60
|
+
/**
|
|
61
|
+
* App name should also be set for entitlements
|
|
62
|
+
* @deprecated - use ContextHolder.for(appName).setEntitlementsOptions instead
|
|
63
|
+
* @param entitlementsOptions frontegg options entitlements config
|
|
64
|
+
* @param appName - app name
|
|
65
|
+
*/
|
|
66
|
+
static setEntitlementsOptions(entitlementsOptions: EntitlementsOptions, appName?: string): void;
|
|
67
|
+
setEntitlementsOptions: (entitlementsOptions: EntitlementsOptions) => void;
|
|
68
|
+
/**
|
|
69
|
+
* @deprecated - use ContextHolder.for(appName).setSessionContext instead
|
|
70
|
+
* @param sessionContext frontegg options SessionContext config
|
|
71
|
+
* @param appName - app name
|
|
72
|
+
*/
|
|
73
|
+
static setSessionContext(sessionContext: SessionContext, appName?: string): void;
|
|
74
|
+
setSessionContext: (sessionContext: SessionContext) => void;
|
|
75
|
+
/**
|
|
76
|
+
* @deprecated - use ContextHolder.for(appName).setAppName instead
|
|
77
|
+
*/
|
|
78
|
+
static setAppName(appName: string): void;
|
|
79
|
+
setAppName: (appName: string) => void;
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated - use ContextHolder.for(appName).getContext instead
|
|
82
|
+
*/
|
|
83
|
+
static getContext(appName?: string): ContextOptions;
|
|
84
|
+
getContext: () => ContextOptions;
|
|
85
|
+
/**
|
|
86
|
+
* @deprecated - use ContextHolder.for(appName).getAccessToken instead
|
|
87
|
+
*/
|
|
88
|
+
static getAccessToken(appName?: string): string | null;
|
|
89
|
+
getAccessToken: () => string | null;
|
|
90
|
+
/**
|
|
91
|
+
* @deprecated - use ContextHolder.for(appName).requestSource instead
|
|
92
|
+
*/
|
|
93
|
+
static getRequestSource(appName?: string): RequestSource | null;
|
|
94
|
+
getRequestSource: () => RequestSource | null;
|
|
95
|
+
/**
|
|
96
|
+
* @deprecated - use ContextHolder.for(appName).getBasename instead
|
|
97
|
+
*/
|
|
98
|
+
static getBasename(appName?: string): string | null;
|
|
99
|
+
getBasename(): string | null;
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated - use ContextHolder.for(appName).setBasename instead
|
|
102
|
+
*/
|
|
103
|
+
static setBasename(basename: string | null, appName?: string): void;
|
|
104
|
+
setBasename(basename: string | null): void;
|
|
105
|
+
/**
|
|
106
|
+
* @deprecated - use ContextHolder.for(appName).getUser instead
|
|
107
|
+
*/
|
|
108
|
+
static getUser(appName?: string): IUserProfile | null;
|
|
109
|
+
getUser: () => IUserProfile | null;
|
|
110
|
+
/**
|
|
111
|
+
* @deprecated - use ContextHolder.for(appName).onRedirectTo instead
|
|
112
|
+
*/
|
|
113
|
+
static onRedirectTo(path: string, opts?: RedirectOptions, appName?: string): void;
|
|
114
|
+
/**
|
|
115
|
+
* @deprecated - use ContextHolder.for(appName).logout instead
|
|
116
|
+
*/
|
|
117
|
+
static logout(callback?: () => void, appName?: string): void;
|
|
118
|
+
/**
|
|
119
|
+
* @deprecated - use ContextHolder.for(appName).shouldLoadEntitlements instead
|
|
120
|
+
* @returns shouldLoadEntitlements. Default to false.
|
|
121
|
+
*/
|
|
122
|
+
static shouldLoadEntitlements(appName?: string): boolean;
|
|
123
|
+
shouldLoadEntitlements: () => boolean;
|
|
124
|
+
/**
|
|
125
|
+
* @deprecated - use ContextHolder.for(appName).isSessionPerTenantEnabled instead
|
|
126
|
+
* @returns isSessionPerTenantEnabled. Default to false.
|
|
127
|
+
*/
|
|
128
|
+
static isSessionPerTenantEnabled(appName?: string): boolean;
|
|
129
|
+
isSessionPerTenantEnabled: () => boolean;
|
|
130
|
+
/**
|
|
131
|
+
* @deprecated - use ContextHolder.for(appName).getAppName instead
|
|
132
|
+
* @returns app name value
|
|
133
|
+
*/
|
|
134
|
+
static getAppName(appName?: string): string | null;
|
|
135
|
+
getAppName: () => string | null;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Frontegg context to be used in the application
|
|
139
|
+
*
|
|
140
|
+
* @deprecated use ContextHolder.for instead
|
|
141
|
+
*/
|
|
142
|
+
export declare const FronteggContext: {
|
|
143
|
+
getContext: () => ContextOptions;
|
|
144
|
+
getAccessToken: () => string | null;
|
|
145
|
+
setAccessToken: (accessToken: string | null) => void;
|
|
146
|
+
getUser: () => IUserProfile | null;
|
|
147
|
+
setUser: (user: IUserProfile | null) => void;
|
|
148
|
+
onRedirectTo: (path: string, opts?: RedirectOptions) => void;
|
|
149
|
+
setOnRedirectTo: (onRedirectTo: (path: string, opts?: RedirectOptions) => void) => void;
|
|
150
|
+
logout: (callback?: () => void) => void;
|
|
151
|
+
getRequestSource: () => RequestSource | null;
|
|
152
|
+
setRequestSource: (requestSource: RequestSource | null) => void;
|
|
153
|
+
isSessionPerTenantEnabled: () => boolean;
|
|
154
|
+
shouldLoadEntitlements: () => boolean;
|
|
155
|
+
getAppName: () => string | null;
|
|
156
|
+
setEntitlementsOptions: (entitlementsOptions: EntitlementsOptions) => void;
|
|
157
|
+
setSessionContext: (sessionContext: SessionContext) => void;
|
|
158
|
+
getBasename: () => string | null;
|
|
159
|
+
setBasename: (basename: string | null) => void;
|
|
160
|
+
};
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entitlements config from frontegg provider
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
export class ContextHolder {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.context = null;
|
|
8
|
+
this.accessToken = null;
|
|
9
|
+
this.user = null;
|
|
10
|
+
this.requestSource = null;
|
|
11
|
+
this.onRedirectTo = path => window.location.href = path;
|
|
12
|
+
this.logout = () => window.location.href = '/account/logout';
|
|
13
|
+
this.entitlementsOptions = null;
|
|
14
|
+
this.appName = null;
|
|
15
|
+
this.sessionContext = void 0;
|
|
16
|
+
this.basename = null;
|
|
17
|
+
this.setContext = context => {
|
|
18
|
+
this.context = context;
|
|
19
|
+
};
|
|
20
|
+
this.setAccessToken = accessToken => {
|
|
21
|
+
this.accessToken = accessToken;
|
|
22
|
+
};
|
|
23
|
+
this.setUser = user => {
|
|
24
|
+
this.user = user;
|
|
25
|
+
};
|
|
26
|
+
this.setRequestSource = requestSource => {
|
|
27
|
+
this.requestSource = requestSource;
|
|
28
|
+
};
|
|
29
|
+
this.setOnRedirectTo = onRedirectTo => {
|
|
30
|
+
this.onRedirectTo = onRedirectTo;
|
|
31
|
+
};
|
|
32
|
+
this.setLogout = logout => {
|
|
33
|
+
this.logout = logout;
|
|
34
|
+
};
|
|
35
|
+
this.setEntitlementsOptions = entitlementsOptions => {
|
|
36
|
+
this.entitlementsOptions = entitlementsOptions;
|
|
37
|
+
};
|
|
38
|
+
this.setSessionContext = sessionContext => {
|
|
39
|
+
this.sessionContext = sessionContext;
|
|
40
|
+
};
|
|
41
|
+
this.setAppName = appName => {
|
|
42
|
+
this.appName = appName;
|
|
43
|
+
};
|
|
44
|
+
this.getContext = () => {
|
|
45
|
+
var _this$context;
|
|
46
|
+
return (_this$context = this.context) != null ? _this$context : {
|
|
47
|
+
baseUrl: window.location.href,
|
|
48
|
+
tokenResolver: () => 'my-authentication-token',
|
|
49
|
+
logLevel: 'error'
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
this.getAccessToken = () => {
|
|
53
|
+
return this.accessToken;
|
|
54
|
+
};
|
|
55
|
+
this.getRequestSource = () => {
|
|
56
|
+
return this.requestSource;
|
|
57
|
+
};
|
|
58
|
+
this.getUser = () => {
|
|
59
|
+
return this.user;
|
|
60
|
+
};
|
|
61
|
+
this.shouldLoadEntitlements = () => {
|
|
62
|
+
var _this$entitlementsOpt;
|
|
63
|
+
return ((_this$entitlementsOpt = this.entitlementsOptions) == null ? void 0 : _this$entitlementsOpt.enabled) || false;
|
|
64
|
+
};
|
|
65
|
+
this.isSessionPerTenantEnabled = () => {
|
|
66
|
+
var _this$sessionContext;
|
|
67
|
+
return ((_this$sessionContext = this.sessionContext) == null ? void 0 : _this$sessionContext.enableSessionPerTenant) || false;
|
|
68
|
+
};
|
|
69
|
+
this.getAppName = () => {
|
|
70
|
+
return this.appName;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
static default() {
|
|
74
|
+
return ContextHolder.getInstance(DEFAULT_APP_NAME);
|
|
75
|
+
}
|
|
76
|
+
static for(appName) {
|
|
77
|
+
return ContextHolder.getInstance(appName);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* @deprecated - use ContextHolder.for(appName) / ContextHolder.default() instead
|
|
82
|
+
* @param appName
|
|
83
|
+
*/
|
|
84
|
+
static getInstance(appName = 'default') {
|
|
85
|
+
if (!ContextHolder._apps) {
|
|
86
|
+
ContextHolder._apps = {};
|
|
87
|
+
}
|
|
88
|
+
if (ContextHolder._apps[appName]) {
|
|
89
|
+
return ContextHolder._apps[appName];
|
|
90
|
+
}
|
|
91
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
92
|
+
return ContextHolder._apps[appName];
|
|
93
|
+
}
|
|
94
|
+
static createInstance(appName = 'default') {
|
|
95
|
+
ContextHolder._apps[appName] = new ContextHolder();
|
|
96
|
+
ContextHolder._apps[appName].appName = appName;
|
|
97
|
+
return ContextHolder._apps[appName];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated - use ContextHolder.for(appName).setContext instead
|
|
102
|
+
*/
|
|
103
|
+
static setContext(context, appName = 'default') {
|
|
104
|
+
ContextHolder.for(appName).context = context;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @deprecated - use ContextHolder.for(appName).setAccessToken instead
|
|
108
|
+
*/
|
|
109
|
+
static setAccessToken(accessToken, appName = DEFAULT_APP_NAME) {
|
|
110
|
+
ContextHolder.for(appName).accessToken = accessToken;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* @deprecated - use ContextHolder.for(appName).setUser instead
|
|
114
|
+
*/
|
|
115
|
+
static setUser(user, appName = 'default') {
|
|
116
|
+
ContextHolder.for(appName).user = user;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @deprecated - use ContextHolder.for(appName).setRequestSource instead
|
|
120
|
+
*/
|
|
121
|
+
static setRequestSource(requestSource, appName = 'default') {
|
|
122
|
+
ContextHolder.for(appName).requestSource = requestSource;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* @deprecated - use ContextHolder.for(appName).setOnRedirectTo instead
|
|
126
|
+
*/
|
|
127
|
+
static setOnRedirectTo(onRedirectTo, appName = 'default') {
|
|
128
|
+
ContextHolder.for(appName).onRedirectTo = onRedirectTo;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @deprecated - use ContextHolder.for(appName).setLogout instead
|
|
132
|
+
*/
|
|
133
|
+
static setLogout(logout, logoutUrl, appName = 'default') {
|
|
134
|
+
const context = ContextHolder.for(appName);
|
|
135
|
+
context.logout = callback => {
|
|
136
|
+
if (!callback) {
|
|
137
|
+
context.onRedirectTo(logoutUrl, undefined);
|
|
138
|
+
} else {
|
|
139
|
+
logout(callback);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* App name should also be set for entitlements
|
|
145
|
+
* @deprecated - use ContextHolder.for(appName).setEntitlementsOptions instead
|
|
146
|
+
* @param entitlementsOptions frontegg options entitlements config
|
|
147
|
+
* @param appName - app name
|
|
148
|
+
*/
|
|
149
|
+
static setEntitlementsOptions(entitlementsOptions, appName = 'default') {
|
|
150
|
+
ContextHolder.for(appName).entitlementsOptions = entitlementsOptions;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* @deprecated - use ContextHolder.for(appName).setSessionContext instead
|
|
154
|
+
* @param sessionContext frontegg options SessionContext config
|
|
155
|
+
* @param appName - app name
|
|
156
|
+
*/
|
|
157
|
+
static setSessionContext(sessionContext, appName = 'default') {
|
|
158
|
+
ContextHolder.for(appName).sessionContext = sessionContext;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* @deprecated - use ContextHolder.for(appName).setAppName instead
|
|
162
|
+
*/
|
|
163
|
+
static setAppName(appName) {
|
|
164
|
+
ContextHolder.for(appName).appName = appName;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* @deprecated - use ContextHolder.for(appName).getContext instead
|
|
168
|
+
*/
|
|
169
|
+
static getContext(appName = 'default') {
|
|
170
|
+
var _ContextHolder$for$co;
|
|
171
|
+
return (_ContextHolder$for$co = ContextHolder.for(appName).context) != null ? _ContextHolder$for$co : {
|
|
172
|
+
baseUrl: window.location.href,
|
|
173
|
+
tokenResolver: () => 'my-authentication-token',
|
|
174
|
+
logLevel: 'error'
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* @deprecated - use ContextHolder.for(appName).getAccessToken instead
|
|
179
|
+
*/
|
|
180
|
+
static getAccessToken(appName = 'default') {
|
|
181
|
+
return ContextHolder.for(appName).accessToken;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @deprecated - use ContextHolder.for(appName).requestSource instead
|
|
185
|
+
*/
|
|
186
|
+
static getRequestSource(appName = 'default') {
|
|
187
|
+
return ContextHolder.for(appName).requestSource;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @deprecated - use ContextHolder.for(appName).getBasename instead
|
|
191
|
+
*/
|
|
192
|
+
static getBasename(appName = 'default') {
|
|
193
|
+
return ContextHolder.for(appName).basename;
|
|
194
|
+
}
|
|
195
|
+
getBasename() {
|
|
196
|
+
return this.basename;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* @deprecated - use ContextHolder.for(appName).setBasename instead
|
|
201
|
+
*/
|
|
202
|
+
static setBasename(basename, appName = DEFAULT_APP_NAME) {
|
|
203
|
+
ContextHolder.for(appName).basename = basename;
|
|
204
|
+
}
|
|
205
|
+
setBasename(basename) {
|
|
206
|
+
this.basename = basename;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* @deprecated - use ContextHolder.for(appName).getUser instead
|
|
211
|
+
*/
|
|
212
|
+
static getUser(appName = 'default') {
|
|
213
|
+
return ContextHolder.for(appName).user;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* @deprecated - use ContextHolder.for(appName).onRedirectTo instead
|
|
217
|
+
*/
|
|
218
|
+
static onRedirectTo(path, opts, appName = 'default') {
|
|
219
|
+
return ContextHolder.for(appName).onRedirectTo(path, opts);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* @deprecated - use ContextHolder.for(appName).logout instead
|
|
224
|
+
*/
|
|
225
|
+
static logout(callback, appName = 'default') {
|
|
226
|
+
return ContextHolder.for(appName).logout(callback);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* @deprecated - use ContextHolder.for(appName).shouldLoadEntitlements instead
|
|
231
|
+
* @returns shouldLoadEntitlements. Default to false.
|
|
232
|
+
*/
|
|
233
|
+
static shouldLoadEntitlements(appName = 'default') {
|
|
234
|
+
var _ContextHolder$for$en;
|
|
235
|
+
return ((_ContextHolder$for$en = ContextHolder.for(appName).entitlementsOptions) == null ? void 0 : _ContextHolder$for$en.enabled) || false;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* @deprecated - use ContextHolder.for(appName).isSessionPerTenantEnabled instead
|
|
239
|
+
* @returns isSessionPerTenantEnabled. Default to false.
|
|
240
|
+
*/
|
|
241
|
+
static isSessionPerTenantEnabled(appName = 'default') {
|
|
242
|
+
var _ContextHolder$for$se;
|
|
243
|
+
return ((_ContextHolder$for$se = ContextHolder.for(appName).sessionContext) == null ? void 0 : _ContextHolder$for$se.enableSessionPerTenant) || false;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* @deprecated - use ContextHolder.for(appName).getAppName instead
|
|
247
|
+
* @returns app name value
|
|
248
|
+
*/
|
|
249
|
+
static getAppName(appName = 'default') {
|
|
250
|
+
return ContextHolder.for(appName).appName;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
ContextHolder._apps = void 0;
|
|
254
|
+
const DEFAULT_APP_NAME = 'default';
|
|
255
|
+
/**
|
|
256
|
+
* Frontegg context to be used in the application
|
|
257
|
+
*
|
|
258
|
+
* @deprecated use ContextHolder.for instead
|
|
259
|
+
*/
|
|
260
|
+
export const FronteggContext = {
|
|
261
|
+
getContext: () => ContextHolder.getContext(DEFAULT_APP_NAME),
|
|
262
|
+
getAccessToken: () => ContextHolder.getAccessToken(DEFAULT_APP_NAME),
|
|
263
|
+
setAccessToken: accessToken => ContextHolder.setAccessToken(accessToken, DEFAULT_APP_NAME),
|
|
264
|
+
getUser: () => ContextHolder.getUser(DEFAULT_APP_NAME),
|
|
265
|
+
setUser: user => ContextHolder.setUser(user, DEFAULT_APP_NAME),
|
|
266
|
+
onRedirectTo: (path, opts) => ContextHolder.onRedirectTo(path, opts, DEFAULT_APP_NAME),
|
|
267
|
+
setOnRedirectTo: onRedirectTo => ContextHolder.setOnRedirectTo(onRedirectTo, DEFAULT_APP_NAME),
|
|
268
|
+
logout: callback => ContextHolder.logout(callback, DEFAULT_APP_NAME),
|
|
269
|
+
getRequestSource: () => ContextHolder.getRequestSource(DEFAULT_APP_NAME),
|
|
270
|
+
setRequestSource: requestSource => ContextHolder.setRequestSource(requestSource, DEFAULT_APP_NAME),
|
|
271
|
+
isSessionPerTenantEnabled: () => ContextHolder.isSessionPerTenantEnabled(DEFAULT_APP_NAME),
|
|
272
|
+
shouldLoadEntitlements: () => ContextHolder.shouldLoadEntitlements(DEFAULT_APP_NAME),
|
|
273
|
+
getAppName: () => ContextHolder.getAppName(DEFAULT_APP_NAME),
|
|
274
|
+
setEntitlementsOptions: entitlementsOptions => ContextHolder.setEntitlementsOptions(entitlementsOptions, DEFAULT_APP_NAME),
|
|
275
|
+
setSessionContext: sessionContext => ContextHolder.setSessionContext(sessionContext, DEFAULT_APP_NAME),
|
|
276
|
+
getBasename: () => ContextHolder.getBasename(DEFAULT_APP_NAME),
|
|
277
|
+
setBasename: basename => ContextHolder.setBasename(basename, DEFAULT_APP_NAME)
|
|
278
|
+
};
|
package/FetchClient.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ContextOptions, RequestOptions, UserJwtOptions } from './interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* FetchClient is a class that wrap around the fetch API to make requests.
|
|
4
|
+
* It is used by the BaseApiClient to make requests to the server
|
|
5
|
+
*/
|
|
6
|
+
export declare class FetchClient {
|
|
7
|
+
private appName;
|
|
8
|
+
constructor(appName: string);
|
|
9
|
+
private getFronteggContext;
|
|
10
|
+
private prepareUrl;
|
|
11
|
+
private buildQueryParams;
|
|
12
|
+
private getAdditionalQueryParams;
|
|
13
|
+
private getAdditionalHeaders;
|
|
14
|
+
private buildRequestHeaders;
|
|
15
|
+
sendRequest: (opts: RequestOptions) => Promise<any>;
|
|
16
|
+
get: (url: string, params?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<any>;
|
|
17
|
+
post: (url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<any>;
|
|
18
|
+
patch: (url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<any>;
|
|
19
|
+
put: (url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<any>;
|
|
20
|
+
delete: (url: string, body?: any, opts?: Omit<RequestOptions, "method" | "url">) => Promise<any>;
|
|
21
|
+
postDownload: (url: string, body?: any, params?: any, opts?: any) => Promise<any>;
|
|
22
|
+
extractHeadersFromOptions: (options?: UserJwtOptions) => {
|
|
23
|
+
Authorization?: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
/** @deprecated use getContextBaseUrl instead */
|
|
26
|
+
static getBaseUrl: (context: ContextOptions, url: string, withFronteggPrefix?: boolean) => string;
|
|
27
|
+
/** @deprecated use getContextBaseUrl instead */
|
|
28
|
+
getBaseUrl: (context: ContextOptions, url: string, withFronteggPrefix?: boolean) => string;
|
|
29
|
+
getContextBaseUrl: (url: string, withFronteggPrefix?: boolean) => string;
|
|
30
|
+
static getMetadataHeaders: (context: ContextOptions) => Record<string, string>;
|
|
31
|
+
/** @deprecated - use getContextMetadataHeaders instead */
|
|
32
|
+
getMetadataHeaders: (context: ContextOptions) => Record<string, string>;
|
|
33
|
+
getContextMetadataHeaders: () => Record<string, string>;
|
|
34
|
+
static getScopedTenant: () => string | null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* import FetchClient and use it to make requests to the server for specific application
|
|
38
|
+
* @param appName - the application name to make requests for
|
|
39
|
+
* @deprecated - use FetchClient directly
|
|
40
|
+
*/
|
|
41
|
+
declare const _default: FetchClient;
|
|
42
|
+
export default _default;
|