@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.
Files changed (218) hide show
  1. package/BaseApiClient.d.ts +16 -0
  2. package/BaseApiClient.js +30 -0
  3. package/ContextHolder/index.d.ts +160 -0
  4. package/ContextHolder/index.js +278 -0
  5. package/ContextHolder/package.json +6 -0
  6. package/FetchClient.d.ts +42 -0
  7. package/FetchClient.js +260 -0
  8. package/account-settings/index.d.ts +21 -7
  9. package/account-settings/index.js +25 -6
  10. package/account-settings/interfaces.d.ts +9 -2
  11. package/applications/index.d.ts +51 -0
  12. package/applications/index.js +55 -0
  13. package/applications/interfaces.d.ts +49 -0
  14. package/applications/interfaces.js +5 -0
  15. package/applications/package.json +6 -0
  16. package/audits/index.d.ts +27 -15
  17. package/audits/index.js +29 -16
  18. package/audits/interfaces.d.ts +3 -2
  19. package/auth/constants.d.ts +5 -0
  20. package/auth/constants.js +5 -0
  21. package/auth/enums.d.ts +8 -1
  22. package/auth/enums.js +9 -4
  23. package/auth/index.d.ts +833 -428
  24. package/auth/index.js +768 -385
  25. package/auth/interfaces.d.ts +341 -39
  26. package/auth/interfaces.js +19 -9
  27. package/auth/secutiry-poilicy/index.d.ts +60 -41
  28. package/auth/secutiry-poilicy/index.js +99 -45
  29. package/auth/secutiry-poilicy/interfaces.d.ts +62 -2
  30. package/auth/secutiry-poilicy/interfaces.js +5 -1
  31. package/auth/utils.d.ts +10 -0
  32. package/auth/utils.js +35 -0
  33. package/connectivity/index.d.ts +126 -27
  34. package/connectivity/index.js +120 -114
  35. package/constants.d.ts +115 -0
  36. package/constants.js +122 -5
  37. package/directory/index.d.ts +32 -0
  38. package/directory/index.js +30 -0
  39. package/directory/interfaces.d.ts +30 -0
  40. package/directory/interfaces.js +7 -0
  41. package/directory/package.json +6 -0
  42. package/entitlements/index.d.ts +15 -0
  43. package/entitlements/index.js +20 -0
  44. package/entitlements/interfaces.d.ts +13 -0
  45. package/entitlements/interfaces.js +11 -0
  46. package/entitlements/package.json +6 -0
  47. package/error.js +0 -2
  48. package/feature-flags/index.d.ts +18 -0
  49. package/feature-flags/index.js +44 -0
  50. package/feature-flags/interfaces.d.ts +5 -0
  51. package/feature-flags/interfaces.js +1 -0
  52. package/feature-flags/package.json +6 -0
  53. package/groups/enums.d.ts +9 -0
  54. package/groups/enums.js +11 -0
  55. package/groups/index.d.ts +73 -0
  56. package/groups/index.js +62 -0
  57. package/groups/interfaces.d.ts +64 -0
  58. package/groups/interfaces.js +1 -0
  59. package/groups/package.json +6 -0
  60. package/impersonate/index.d.ts +17 -0
  61. package/impersonate/index.js +23 -0
  62. package/impersonate/interfaces.d.ts +12 -0
  63. package/impersonate/interfaces.js +1 -0
  64. package/impersonate/package.json +6 -0
  65. package/index.d.ts +148 -53
  66. package/index.js +103 -31
  67. package/interfaces.d.ts +82 -1
  68. package/interfaces.js +28 -1
  69. package/jwt.js +19 -20
  70. package/metadata/index.d.ts +68 -5
  71. package/metadata/index.js +53 -23
  72. package/metadata/interfaces.d.ts +10 -2
  73. package/node/BaseApiClient.js +37 -0
  74. package/node/ContextHolder/index.js +286 -0
  75. package/node/FetchClient.js +268 -0
  76. package/node/account-settings/index.js +26 -11
  77. package/node/applications/index.js +62 -0
  78. package/node/applications/interfaces.js +12 -0
  79. package/node/audits/index.js +32 -27
  80. package/node/auth/constants.js +13 -0
  81. package/node/auth/enums.js +11 -5
  82. package/node/auth/index.js +807 -644
  83. package/node/auth/interfaces.js +27 -13
  84. package/node/auth/secutiry-poilicy/index.js +100 -66
  85. package/node/auth/secutiry-poilicy/interfaces.js +8 -1
  86. package/node/auth/utils.js +44 -0
  87. package/node/connectivity/index.js +123 -197
  88. package/node/constants.js +124 -6
  89. package/node/directory/index.js +37 -0
  90. package/node/directory/interfaces.js +14 -0
  91. package/node/entitlements/index.js +27 -0
  92. package/node/entitlements/interfaces.js +18 -0
  93. package/node/error.js +0 -4
  94. package/node/feature-flags/index.js +54 -0
  95. package/node/feature-flags/interfaces.js +5 -0
  96. package/node/groups/enums.js +19 -0
  97. package/node/groups/index.js +70 -0
  98. package/node/groups/interfaces.js +5 -0
  99. package/node/impersonate/index.js +29 -0
  100. package/node/impersonate/interfaces.js +5 -0
  101. package/node/index.js +324 -94
  102. package/node/interfaces.js +34 -1
  103. package/node/jwt.js +19 -25
  104. package/node/metadata/index.js +57 -38
  105. package/node/notifications/index.js +34 -31
  106. package/node/reports/index.js +79 -83
  107. package/node/roles/index.js +55 -60
  108. package/node/roles/interfaces.js +9 -1
  109. package/node/routers.js +52 -6
  110. package/node/security-center/index.js +26 -0
  111. package/node/security-center/interfaces.js +74 -0
  112. package/node/sub-tenants/index.js +82 -29
  113. package/node/sub-tenants/interfaces.js +9 -1
  114. package/node/subscriptions/enums.js +13 -9
  115. package/node/subscriptions/index.js +64 -109
  116. package/node/subscriptions/interfaces.js +0 -2
  117. package/node/subscriptions/invoices.js +20 -21
  118. package/node/subscriptions/managedSubscriptions.js +28 -33
  119. package/node/subscriptions/paymentMethods.js +23 -27
  120. package/node/subscriptions/paymentProviders.js +11 -8
  121. package/node/subscriptions/plans.js +13 -12
  122. package/node/subscriptions/providers/stripe/index.js +22 -27
  123. package/node/subscriptions/subscriptions.js +28 -33
  124. package/node/subscriptions/summaries.js +11 -8
  125. package/node/subscriptions/tenantConfiguration.js +13 -12
  126. package/node/subscriptions/vendorPublicConfigurations.js +17 -0
  127. package/node/teams/index.js +108 -121
  128. package/node/teams/interfaces.js +8 -1
  129. package/node/tenants/index.js +63 -21
  130. package/node/tenants/interfaces.js +18 -1
  131. package/node/user-phone-numbers/index.js +38 -0
  132. package/node/user-phone-numbers/interfaces.js +5 -0
  133. package/node/users/index.js +64 -0
  134. package/node/users/interfaces.js +27 -0
  135. package/node/velo/index.js +75 -0
  136. package/node/velo/interfaces.js +5 -0
  137. package/node/vendor/index.js +16 -8
  138. package/notifications/index.d.ts +22 -16
  139. package/notifications/index.js +33 -22
  140. package/package.json +4 -2
  141. package/reports/index.d.ts +50 -44
  142. package/reports/index.js +77 -68
  143. package/reports/interfaces.d.ts +2 -2
  144. package/roles/index.d.ts +45 -34
  145. package/roles/index.js +52 -41
  146. package/roles/interfaces.d.ts +25 -9
  147. package/roles/interfaces.js +6 -1
  148. package/routers.d.ts +6 -1
  149. package/routers.js +45 -2
  150. package/security-center/index.d.ts +15 -0
  151. package/security-center/index.js +19 -0
  152. package/security-center/interfaces.d.ts +115 -0
  153. package/security-center/interfaces.js +63 -0
  154. package/security-center/package.json +6 -0
  155. package/sub-tenants/index.d.ts +57 -8
  156. package/sub-tenants/index.js +84 -19
  157. package/sub-tenants/interfaces.d.ts +68 -10
  158. package/sub-tenants/interfaces.js +6 -1
  159. package/subscriptions/enums.d.ts +7 -0
  160. package/subscriptions/enums.js +10 -8
  161. package/subscriptions/index.d.ts +55 -9
  162. package/subscriptions/index.js +56 -9
  163. package/subscriptions/interfaces.d.ts +7 -3
  164. package/subscriptions/interfaces.js +1 -1
  165. package/subscriptions/invoices.d.ts +16 -13
  166. package/subscriptions/invoices.js +19 -14
  167. package/subscriptions/managedSubscriptions.d.ts +18 -15
  168. package/subscriptions/managedSubscriptions.js +27 -22
  169. package/subscriptions/paymentMethods.d.ts +16 -13
  170. package/subscriptions/paymentMethods.js +22 -18
  171. package/subscriptions/paymentProviders.d.ts +8 -5
  172. package/subscriptions/paymentProviders.js +9 -4
  173. package/subscriptions/plans.d.ts +11 -8
  174. package/subscriptions/plans.js +11 -6
  175. package/subscriptions/providers/stripe/index.d.ts +24 -21
  176. package/subscriptions/providers/stripe/index.js +21 -16
  177. package/subscriptions/subscriptions.d.ts +24 -21
  178. package/subscriptions/subscriptions.js +27 -22
  179. package/subscriptions/summaries.d.ts +7 -4
  180. package/subscriptions/summaries.js +8 -3
  181. package/subscriptions/tenantConfiguration.d.ts +6 -3
  182. package/subscriptions/tenantConfiguration.js +12 -7
  183. package/subscriptions/vendorPublicConfigurations.d.ts +5 -0
  184. package/subscriptions/vendorPublicConfigurations.js +10 -0
  185. package/teams/index.d.ts +38 -115
  186. package/teams/index.js +105 -79
  187. package/teams/interfaces.d.ts +47 -42
  188. package/teams/interfaces.js +5 -1
  189. package/tenants/index.d.ts +25 -26
  190. package/tenants/index.js +61 -12
  191. package/tenants/interfaces.d.ts +85 -0
  192. package/tenants/interfaces.js +14 -1
  193. package/user-phone-numbers/index.d.ts +32 -0
  194. package/user-phone-numbers/index.js +31 -0
  195. package/user-phone-numbers/interfaces.d.ts +32 -0
  196. package/user-phone-numbers/interfaces.js +1 -0
  197. package/user-phone-numbers/package.json +6 -0
  198. package/users/index.d.ts +24 -0
  199. package/users/index.js +55 -0
  200. package/users/interfaces.d.ts +144 -0
  201. package/users/interfaces.js +18 -0
  202. package/users/package.json +6 -0
  203. package/velo/index.d.ts +46 -0
  204. package/velo/index.js +68 -0
  205. package/velo/interfaces.d.ts +108 -0
  206. package/velo/interfaces.js +1 -0
  207. package/velo/package.json +6 -0
  208. package/vendor/index.d.ts +12 -6
  209. package/vendor/index.js +15 -4
  210. package/ContextHolder.d.ts +0 -29
  211. package/ContextHolder.js +0 -80
  212. package/fetch.d.ts +0 -19
  213. package/fetch.js +0 -203
  214. package/node/ContextHolder.js +0 -90
  215. package/node/fetch.js +0 -234
  216. package/node/subscriptions/providers/index.js +0 -18
  217. package/subscriptions/providers/index.d.ts +0 -1
  218. 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
+ }
@@ -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
+ };
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/ContextHolder/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -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;