@descope/angular-sdk 0.0.0-next-88a7f420-20250415 → 0.0.0-next-c55974df-20250416

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 (43) hide show
  1. package/dist/environment.d.ts +3 -0
  2. package/dist/esm2022/descope-angular-sdk.mjs +5 -0
  3. package/dist/esm2022/environment.mjs +4 -0
  4. package/dist/esm2022/lib/components/access-key-management/access-key-management.component.mjs +67 -0
  5. package/dist/esm2022/lib/components/applications-portal/applications-portal.component.mjs +75 -0
  6. package/dist/esm2022/lib/components/audit-management/audit-management.component.mjs +70 -0
  7. package/dist/esm2022/lib/components/descope/descope.component.mjs +191 -0
  8. package/dist/esm2022/lib/components/role-management/role-management.component.mjs +70 -0
  9. package/dist/esm2022/lib/components/sign-in-flow/sign-in-flow.component.mjs +56 -0
  10. package/dist/esm2022/lib/components/sign-up-flow/sign-up-flow.component.mjs +56 -0
  11. package/dist/esm2022/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.mjs +56 -0
  12. package/dist/esm2022/lib/components/user-management/user-management.component.mjs +70 -0
  13. package/dist/esm2022/lib/components/user-profile/user-profile.component.mjs +78 -0
  14. package/dist/esm2022/lib/descope-auth.module.mjs +83 -0
  15. package/dist/esm2022/lib/services/descope-auth.guard.mjs +15 -0
  16. package/dist/esm2022/lib/services/descope-auth.service.mjs +145 -0
  17. package/dist/esm2022/lib/services/descope.interceptor.mjs +51 -0
  18. package/dist/esm2022/lib/types/types.mjs +6 -0
  19. package/dist/esm2022/lib/utils/constants.mjs +7 -0
  20. package/dist/esm2022/lib/utils/helpers.mjs +27 -0
  21. package/dist/esm2022/public-api.mjs +19 -0
  22. package/dist/fesm2022/descope-angular-sdk.mjs +1075 -0
  23. package/dist/fesm2022/descope-angular-sdk.mjs.map +1 -0
  24. package/dist/index.d.ts +5 -0
  25. package/dist/lib/components/access-key-management/access-key-management.component.d.ts +24 -0
  26. package/dist/lib/components/applications-portal/applications-portal.component.d.ts +24 -0
  27. package/dist/lib/components/audit-management/audit-management.component.d.ts +24 -0
  28. package/dist/lib/components/descope/descope.component.d.ts +45 -0
  29. package/dist/lib/components/role-management/role-management.component.d.ts +24 -0
  30. package/dist/lib/components/sign-in-flow/sign-in-flow.component.d.ts +32 -0
  31. package/dist/lib/components/sign-up-flow/sign-up-flow.component.d.ts +32 -0
  32. package/dist/lib/components/sign-up-or-in-flow/sign-up-or-in-flow.component.d.ts +32 -0
  33. package/dist/lib/components/user-management/user-management.component.d.ts +24 -0
  34. package/dist/lib/components/user-profile/user-profile.component.d.ts +26 -0
  35. package/dist/lib/descope-auth.module.d.ts +20 -0
  36. package/dist/lib/services/descope-auth.guard.d.ts +2 -0
  37. package/dist/lib/services/descope-auth.service.d.ts +41 -0
  38. package/dist/lib/services/descope.interceptor.d.ts +2 -0
  39. package/dist/lib/types/types.d.ts +13 -0
  40. package/dist/lib/utils/constants.d.ts +5 -0
  41. package/dist/lib/utils/helpers.d.ts +5 -0
  42. package/dist/public-api.d.ts +15 -0
  43. package/package.json +10 -10
@@ -0,0 +1,1075 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, inject, EventEmitter, Component, Input, Output, NgModule, CUSTOM_ELEMENTS_SCHEMA, Optional, SkipSelf } from '@angular/core';
3
+ import createSdk from '@descope/web-js-sdk';
4
+ import { from, BehaviorSubject, finalize, tap, of, throwError } from 'rxjs';
5
+ import { Router } from '@angular/router';
6
+ import { switchMap, catchError } from 'rxjs/operators';
7
+ import DescopeWebComponent from '@descope/web-component';
8
+ import DescopeUserManagementWidget from '@descope/user-management-widget';
9
+ import DescopeRoleManagementWidget from '@descope/role-management-widget';
10
+ import DescopeAccessKeyManagementWidget from '@descope/access-key-management-widget';
11
+ import DescopeAuditManagementWidget from '@descope/audit-management-widget';
12
+ import DescopeUserProfileWidget from '@descope/user-profile-widget';
13
+ import DescopeApplicationsPortalWidget from '@descope/applications-portal-widget';
14
+
15
+ function observabilify(value) {
16
+ /* eslint-disable @typescript-eslint/no-explicit-any */
17
+ const observableValue = {};
18
+ for (const key in value) {
19
+ if (typeof value[key] === 'function') {
20
+ const fn = value[key];
21
+ observableValue[key] = (...args) => {
22
+ const fnResult = fn(...args);
23
+ if (fnResult instanceof Promise) {
24
+ return from(fnResult);
25
+ }
26
+ else {
27
+ return fnResult;
28
+ }
29
+ };
30
+ }
31
+ else if (typeof value[key] === 'object' && value[key] !== null) {
32
+ observableValue[key] = observabilify(value[key]);
33
+ }
34
+ else {
35
+ observableValue[key] = value[key];
36
+ }
37
+ }
38
+ return observableValue;
39
+ }
40
+
41
+ const environment = {
42
+ buildVersion: '0.14.12'
43
+ };
44
+
45
+ const baseHeaders = {
46
+ 'x-descope-sdk-name': 'angular',
47
+ 'x-descope-sdk-version': environment.buildVersion
48
+ };
49
+ const isBrowser = () => typeof window !== 'undefined';
50
+
51
+ class DescopeAuthConfig {
52
+ constructor() {
53
+ this.projectId = '';
54
+ }
55
+ }
56
+
57
+ class DescopeAuthService {
58
+ constructor(config) {
59
+ this.descopeSdk = observabilify(createSdk({
60
+ persistTokens: isBrowser(),
61
+ ...config,
62
+ storeLastAuthenticatedUser: isBrowser(),
63
+ autoRefresh: isBrowser(),
64
+ baseHeaders
65
+ }));
66
+ this.sessionSubject = new BehaviorSubject({
67
+ isAuthenticated: false,
68
+ isSessionLoading: false,
69
+ sessionToken: ''
70
+ });
71
+ this.session$ = this.sessionSubject.asObservable();
72
+ this.userSubject = new BehaviorSubject({
73
+ isUserLoading: false
74
+ });
75
+ this.user$ = this.userSubject.asObservable();
76
+ this.descopeSdk.onSessionTokenChange(this.setSession.bind(this));
77
+ this.descopeSdk.onIsAuthenticatedChange(this.setIsAuthenticated.bind(this));
78
+ this.descopeSdk.onUserChange(this.setUser.bind(this));
79
+ }
80
+ refreshSession() {
81
+ const beforeRefreshSession = this.sessionSubject.value;
82
+ this.sessionSubject.next({
83
+ ...beforeRefreshSession,
84
+ isSessionLoading: true
85
+ });
86
+ return this.descopeSdk.refresh().pipe(finalize(() => {
87
+ const afterRefreshSession = this.sessionSubject.value;
88
+ this.sessionSubject.next({
89
+ ...afterRefreshSession,
90
+ isSessionLoading: false
91
+ });
92
+ }));
93
+ }
94
+ refreshUser() {
95
+ const beforeRefreshUser = this.userSubject.value;
96
+ this.userSubject.next({
97
+ ...beforeRefreshUser,
98
+ isUserLoading: true
99
+ });
100
+ return this.descopeSdk.me().pipe(tap((data) => {
101
+ const afterRequestUser = this.userSubject.value;
102
+ if (data.data) {
103
+ this.userSubject.next({
104
+ ...afterRequestUser,
105
+ user: {
106
+ ...data.data
107
+ }
108
+ });
109
+ }
110
+ }), finalize(() => {
111
+ const afterRefreshUser = this.userSubject.value;
112
+ this.userSubject.next({
113
+ ...afterRefreshUser,
114
+ isUserLoading: false
115
+ });
116
+ }));
117
+ }
118
+ getSessionToken() {
119
+ if (isBrowser()) {
120
+ return this.descopeSdk.getSessionToken();
121
+ }
122
+ console.warn('Get session token is not supported in SSR');
123
+ return '';
124
+ }
125
+ getRefreshToken() {
126
+ if (isBrowser()) {
127
+ return this.descopeSdk.getRefreshToken();
128
+ }
129
+ this.descopeSdk.getJwtPermissions;
130
+ console.warn('Get refresh token is not supported in SSR');
131
+ return '';
132
+ }
133
+ isSessionTokenExpired(token = this.getSessionToken()) {
134
+ if (isBrowser()) {
135
+ return this.descopeSdk.isJwtExpired(token ?? '');
136
+ }
137
+ console.warn('isSessionTokenExpired is not supported in SSR');
138
+ return true;
139
+ }
140
+ isRefreshTokenExpired(token = this.getRefreshToken()) {
141
+ if (isBrowser()) {
142
+ return this.descopeSdk.isJwtExpired(token ?? '');
143
+ }
144
+ console.warn('isRefreshTokenExpired is not supported in SSR');
145
+ return true;
146
+ }
147
+ getJwtPermissions(token = this.getSessionToken(), tenant) {
148
+ if (token === null) {
149
+ console.error('Could not get JWT Permissions - not authenticated');
150
+ return [];
151
+ }
152
+ return this.descopeSdk.getJwtPermissions(token, tenant);
153
+ }
154
+ getJwtRoles(token = this.getSessionToken(), tenant) {
155
+ if (token === null) {
156
+ console.error('Could not get JWT Roles - not authenticated');
157
+ return [];
158
+ }
159
+ return this.descopeSdk.getJwtRoles(token, tenant);
160
+ }
161
+ isAuthenticated() {
162
+ return this.sessionSubject.value.isAuthenticated;
163
+ }
164
+ setSession(sessionToken) {
165
+ const currentSession = this.sessionSubject.value;
166
+ this.sessionSubject.next({
167
+ ...currentSession,
168
+ sessionToken
169
+ });
170
+ }
171
+ setIsAuthenticated(isAuthenticated) {
172
+ const currentSession = this.sessionSubject.value;
173
+ this.sessionSubject.next({
174
+ ...currentSession,
175
+ isAuthenticated
176
+ });
177
+ }
178
+ setUser(user) {
179
+ const currentUser = this.userSubject.value;
180
+ this.userSubject.next({
181
+ isUserLoading: currentUser.isUserLoading,
182
+ user
183
+ });
184
+ }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, deps: [{ token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Injectable }); }
186
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, providedIn: 'root' }); }
187
+ }
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthService, decorators: [{
189
+ type: Injectable,
190
+ args: [{
191
+ providedIn: 'root'
192
+ }]
193
+ }], ctorParameters: () => [{ type: DescopeAuthConfig }] });
194
+
195
+ const descopeAuthGuard = (route) => {
196
+ const authService = inject(DescopeAuthService);
197
+ const router = inject(Router);
198
+ const fallbackUrl = route.data['descopeFallbackUrl'];
199
+ const isAuthenticated = authService.isAuthenticated();
200
+ if (!isAuthenticated && !!fallbackUrl) {
201
+ return from(router.navigate([fallbackUrl]));
202
+ }
203
+ return of(isAuthenticated);
204
+ };
205
+
206
+ const descopeInterceptor = (request, next) => {
207
+ const config = inject(DescopeAuthConfig);
208
+ const authService = inject(DescopeAuthService);
209
+ function refreshAndRetry(request, next, error) {
210
+ return authService.refreshSession().pipe(switchMap((refreshed) => {
211
+ if (refreshed.ok && refreshed.data) {
212
+ const requestWithRefreshedToken = addTokenToRequest(request, refreshed.data?.sessionJwt);
213
+ return next(requestWithRefreshedToken);
214
+ }
215
+ else {
216
+ return throwError(() => error ?? new Error('Could not refresh session!'));
217
+ }
218
+ }));
219
+ }
220
+ function shouldIntercept(request) {
221
+ return ((config.pathsToIntercept?.length === 0 ||
222
+ config.pathsToIntercept?.some((path) => request.url.includes(path))) ??
223
+ true);
224
+ }
225
+ function addTokenToRequest(request, token) {
226
+ return request.clone({
227
+ setHeaders: {
228
+ Authorization: `Bearer ${token}`
229
+ }
230
+ });
231
+ }
232
+ if (shouldIntercept(request)) {
233
+ const token = authService.getSessionToken();
234
+ if (!token) {
235
+ return refreshAndRetry(request, next);
236
+ }
237
+ const requestWithToken = addTokenToRequest(request, token);
238
+ return next(requestWithToken).pipe(catchError((error) => {
239
+ if (error.status === 401 || error.status === 403) {
240
+ return refreshAndRetry(request, next, error);
241
+ }
242
+ else {
243
+ return throwError(() => error);
244
+ }
245
+ }));
246
+ }
247
+ else {
248
+ return next(request);
249
+ }
250
+ };
251
+
252
+ class DescopeComponent {
253
+ constructor(elementRef, authService, descopeConfig) {
254
+ this.elementRef = elementRef;
255
+ this.authService = authService;
256
+ this.success = new EventEmitter();
257
+ this.error = new EventEmitter();
258
+ this.ready = new EventEmitter();
259
+ this.webComponent = new DescopeWebComponent();
260
+ this.projectId = descopeConfig.projectId;
261
+ this.baseUrl = descopeConfig.baseUrl;
262
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
263
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
264
+ this.storeLastAuthenticatedUser = descopeConfig.storeLastAuthenticatedUser;
265
+ }
266
+ ngOnInit() {
267
+ const sdk = this.authService.descopeSdk; // Capture the class context in a variable
268
+ const WebComponent = customElements?.get('descope-wc') || DescopeWebComponent;
269
+ WebComponent.sdkConfigOverrides = {
270
+ // Overrides the web-component's base headers to indicate usage via the React SDK
271
+ baseHeaders,
272
+ // Disables token persistence within the web-component to delegate token management
273
+ // to the global SDK hooks. This ensures token handling aligns with the SDK's configuration,
274
+ // and web-component requests leverage the global SDK's beforeRequest hooks for consistency
275
+ persistTokens: false,
276
+ hooks: {
277
+ get beforeRequest() {
278
+ // Retrieves the beforeRequest hook from the global SDK, which is initialized
279
+ // within the AuthProvider using the desired configuration. This approach ensures
280
+ // the web-component utilizes the same beforeRequest hooks as the global SDK
281
+ return sdk.httpClient.hooks?.beforeRequest;
282
+ },
283
+ set beforeRequest(_) {
284
+ // The empty setter prevents runtime errors when attempts are made to assign a value to 'beforeRequest'.
285
+ // JavaScript objects default to having both getters and setters
286
+ }
287
+ }
288
+ };
289
+ this.setupWebComponent();
290
+ this.elementRef.nativeElement.appendChild(this.webComponent);
291
+ }
292
+ ngOnChanges() {
293
+ this.setupWebComponent();
294
+ }
295
+ setupWebComponent() {
296
+ this.webComponent.setAttribute('project-id', this.projectId);
297
+ this.webComponent.setAttribute('flow-id', this.flowId);
298
+ if (this.baseUrl) {
299
+ this.webComponent.setAttribute('base-url', this.baseUrl);
300
+ }
301
+ if (this.baseStaticUrl) {
302
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
303
+ }
304
+ if (this.baseCdnUrl) {
305
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
306
+ }
307
+ if (this.storeLastAuthenticatedUser) {
308
+ this.webComponent.setAttribute('store-last-authenticated-user', this.storeLastAuthenticatedUser.toString());
309
+ }
310
+ if (this.locale) {
311
+ this.webComponent.setAttribute('locale', this.locale);
312
+ }
313
+ if (this.theme) {
314
+ this.webComponent.setAttribute('theme', this.theme);
315
+ }
316
+ if (this.tenant) {
317
+ this.webComponent.setAttribute('tenant', this.tenant);
318
+ }
319
+ if (this.telemetryKey) {
320
+ this.webComponent.setAttribute('telemetryKey', this.telemetryKey);
321
+ }
322
+ if (this.redirectUrl) {
323
+ this.webComponent.setAttribute('redirect-url', this.redirectUrl);
324
+ }
325
+ if (this.autoFocus) {
326
+ this.webComponent.setAttribute('auto-focus', this.autoFocus.toString());
327
+ }
328
+ if (this.validateOnBlur) {
329
+ this.webComponent.setAttribute('validate-on-blur', this.validateOnBlur.toString());
330
+ }
331
+ if (this.restartOnError) {
332
+ this.webComponent.setAttribute('restart-on-error', this.restartOnError.toString());
333
+ }
334
+ if (this.debug) {
335
+ this.webComponent.setAttribute('debug', this.debug.toString());
336
+ }
337
+ if (this.styleId) {
338
+ this.webComponent.setAttribute('style-id', this.styleId);
339
+ }
340
+ if (this.errorTransformer) {
341
+ this.webComponent.errorTransformer = this.errorTransformer;
342
+ }
343
+ if (this.onScreenUpdate) {
344
+ this.webComponent.onScreenUpdate = this.onScreenUpdate;
345
+ }
346
+ if (this.client) {
347
+ this.webComponent.setAttribute('client', JSON.stringify(this.client));
348
+ }
349
+ if (this.nonce) {
350
+ this.webComponent.setAttribute('nonce', JSON.stringify(this.nonce));
351
+ }
352
+ if (this.dismissScreenErrorOnInput) {
353
+ this.webComponent.setAttribute('dismiss-screen-error-on-input', JSON.stringify(this.dismissScreenErrorOnInput));
354
+ }
355
+ if (this.form) {
356
+ this.webComponent.setAttribute('form', JSON.stringify(this.form));
357
+ }
358
+ if (this.logger) {
359
+ this.webComponent.logger = this.logger;
360
+ }
361
+ this.webComponent.addEventListener('success', (e) => {
362
+ from(this.authService.descopeSdk.httpClient.hooks?.afterRequest(
363
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
364
+ {}, new Response(JSON.stringify(e.detail)))).subscribe(() => {
365
+ if (this.success) {
366
+ this.success?.emit(e);
367
+ }
368
+ });
369
+ });
370
+ if (this.error) {
371
+ this.webComponent.addEventListener('error', (e) => {
372
+ this.error?.emit(e);
373
+ });
374
+ }
375
+ if (this.ready) {
376
+ this.webComponent.addEventListener('ready', () => {
377
+ this.ready?.emit();
378
+ });
379
+ }
380
+ }
381
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthService }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
382
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: DescopeComponent, isStandalone: true, selector: "descope[flowId]", inputs: { flowId: "flowId", locale: "locale", theme: "theme", tenant: "tenant", telemetryKey: "telemetryKey", redirectUrl: "redirectUrl", autoFocus: "autoFocus", validateOnBlur: "validateOnBlur", restartOnError: "restartOnError", debug: "debug", errorTransformer: "errorTransformer", onScreenUpdate: "onScreenUpdate", client: "client", nonce: "nonce", dismissScreenErrorOnInput: "dismissScreenErrorOnInput", form: "form", logger: "logger", styleId: "styleId" }, outputs: { success: "success", error: "error", ready: "ready" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
383
+ }
384
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeComponent, decorators: [{
385
+ type: Component,
386
+ args: [{
387
+ selector: 'descope[flowId]',
388
+ standalone: true,
389
+ template: ''
390
+ }]
391
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthService }, { type: DescopeAuthConfig }], propDecorators: { flowId: [{
392
+ type: Input
393
+ }], locale: [{
394
+ type: Input
395
+ }], theme: [{
396
+ type: Input
397
+ }], tenant: [{
398
+ type: Input
399
+ }], telemetryKey: [{
400
+ type: Input
401
+ }], redirectUrl: [{
402
+ type: Input
403
+ }], autoFocus: [{
404
+ type: Input
405
+ }], validateOnBlur: [{
406
+ type: Input
407
+ }], restartOnError: [{
408
+ type: Input
409
+ }], debug: [{
410
+ type: Input
411
+ }], errorTransformer: [{
412
+ type: Input
413
+ }], onScreenUpdate: [{
414
+ type: Input
415
+ }], client: [{
416
+ type: Input
417
+ }], nonce: [{
418
+ type: Input
419
+ }], dismissScreenErrorOnInput: [{
420
+ type: Input
421
+ }], form: [{
422
+ type: Input
423
+ }], logger: [{
424
+ type: Input
425
+ }], styleId: [{
426
+ type: Input
427
+ }], success: [{
428
+ type: Output
429
+ }], error: [{
430
+ type: Output
431
+ }], ready: [{
432
+ type: Output
433
+ }] } });
434
+
435
+ class SignInFlowComponent {
436
+ constructor(descopeConfig) {
437
+ this.success = new EventEmitter();
438
+ this.error = new EventEmitter();
439
+ this.projectId = descopeConfig.projectId;
440
+ }
441
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignInFlowComponent, deps: [{ token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
442
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: SignInFlowComponent, isStandalone: true, selector: "descope-sign-in-flow", inputs: { locale: "locale", theme: "theme", tenant: "tenant", telemetryKey: "telemetryKey", redirectUrl: "redirectUrl", autoFocus: "autoFocus", validateOnBlur: "validateOnBlur", restartOnError: "restartOnError", debug: "debug", errorTransformer: "errorTransformer", onScreenUpdate: "onScreenUpdate", client: "client", nonce: "nonce", dismissScreenErrorOnInput: "dismissScreenErrorOnInput", form: "form", logger: "logger", styleId: "styleId" }, outputs: { success: "success", error: "error" }, ngImport: i0, template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-in\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n", dependencies: [{ kind: "component", type: DescopeComponent, selector: "descope[flowId]", inputs: ["flowId", "locale", "theme", "tenant", "telemetryKey", "redirectUrl", "autoFocus", "validateOnBlur", "restartOnError", "debug", "errorTransformer", "onScreenUpdate", "client", "nonce", "dismissScreenErrorOnInput", "form", "logger", "styleId"], outputs: ["success", "error", "ready"] }] }); }
443
+ }
444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignInFlowComponent, decorators: [{
445
+ type: Component,
446
+ args: [{ selector: 'descope-sign-in-flow', standalone: true, imports: [DescopeComponent], template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-in\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n" }]
447
+ }], ctorParameters: () => [{ type: DescopeAuthConfig }], propDecorators: { locale: [{
448
+ type: Input
449
+ }], theme: [{
450
+ type: Input
451
+ }], tenant: [{
452
+ type: Input
453
+ }], telemetryKey: [{
454
+ type: Input
455
+ }], redirectUrl: [{
456
+ type: Input
457
+ }], autoFocus: [{
458
+ type: Input
459
+ }], validateOnBlur: [{
460
+ type: Input
461
+ }], restartOnError: [{
462
+ type: Input
463
+ }], debug: [{
464
+ type: Input
465
+ }], errorTransformer: [{
466
+ type: Input
467
+ }], onScreenUpdate: [{
468
+ type: Input
469
+ }], client: [{
470
+ type: Input
471
+ }], nonce: [{
472
+ type: Input
473
+ }], dismissScreenErrorOnInput: [{
474
+ type: Input
475
+ }], form: [{
476
+ type: Input
477
+ }], logger: [{
478
+ type: Input
479
+ }], styleId: [{
480
+ type: Input
481
+ }], success: [{
482
+ type: Output
483
+ }], error: [{
484
+ type: Output
485
+ }] } });
486
+
487
+ class SignUpFlowComponent {
488
+ constructor(descopeConfig) {
489
+ this.success = new EventEmitter();
490
+ this.error = new EventEmitter();
491
+ this.projectId = descopeConfig.projectId;
492
+ }
493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignUpFlowComponent, deps: [{ token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: SignUpFlowComponent, isStandalone: true, selector: "descope-sign-up-flow", inputs: { locale: "locale", theme: "theme", tenant: "tenant", telemetryKey: "telemetryKey", redirectUrl: "redirectUrl", autoFocus: "autoFocus", validateOnBlur: "validateOnBlur", restartOnError: "restartOnError", debug: "debug", errorTransformer: "errorTransformer", onScreenUpdate: "onScreenUpdate", client: "client", nonce: "nonce", dismissScreenErrorOnInput: "dismissScreenErrorOnInput", form: "form", logger: "logger", styleId: "styleId" }, outputs: { success: "success", error: "error" }, ngImport: i0, template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-up\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n", dependencies: [{ kind: "component", type: DescopeComponent, selector: "descope[flowId]", inputs: ["flowId", "locale", "theme", "tenant", "telemetryKey", "redirectUrl", "autoFocus", "validateOnBlur", "restartOnError", "debug", "errorTransformer", "onScreenUpdate", "client", "nonce", "dismissScreenErrorOnInput", "form", "logger", "styleId"], outputs: ["success", "error", "ready"] }] }); }
495
+ }
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignUpFlowComponent, decorators: [{
497
+ type: Component,
498
+ args: [{ selector: 'descope-sign-up-flow', standalone: true, imports: [DescopeComponent], template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-up\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n" }]
499
+ }], ctorParameters: () => [{ type: DescopeAuthConfig }], propDecorators: { locale: [{
500
+ type: Input
501
+ }], theme: [{
502
+ type: Input
503
+ }], tenant: [{
504
+ type: Input
505
+ }], telemetryKey: [{
506
+ type: Input
507
+ }], redirectUrl: [{
508
+ type: Input
509
+ }], autoFocus: [{
510
+ type: Input
511
+ }], validateOnBlur: [{
512
+ type: Input
513
+ }], restartOnError: [{
514
+ type: Input
515
+ }], debug: [{
516
+ type: Input
517
+ }], errorTransformer: [{
518
+ type: Input
519
+ }], onScreenUpdate: [{
520
+ type: Input
521
+ }], client: [{
522
+ type: Input
523
+ }], nonce: [{
524
+ type: Input
525
+ }], dismissScreenErrorOnInput: [{
526
+ type: Input
527
+ }], form: [{
528
+ type: Input
529
+ }], logger: [{
530
+ type: Input
531
+ }], styleId: [{
532
+ type: Input
533
+ }], success: [{
534
+ type: Output
535
+ }], error: [{
536
+ type: Output
537
+ }] } });
538
+
539
+ class SignUpOrInFlowComponent {
540
+ constructor(descopeConfig) {
541
+ this.success = new EventEmitter();
542
+ this.error = new EventEmitter();
543
+ this.projectId = descopeConfig.projectId;
544
+ }
545
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignUpOrInFlowComponent, deps: [{ token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
546
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: SignUpOrInFlowComponent, isStandalone: true, selector: "descope-sign-up-or-in-flow", inputs: { locale: "locale", theme: "theme", tenant: "tenant", telemetryKey: "telemetryKey", redirectUrl: "redirectUrl", autoFocus: "autoFocus", validateOnBlur: "validateOnBlur", restartOnError: "restartOnError", debug: "debug", errorTransformer: "errorTransformer", onScreenUpdate: "onScreenUpdate", client: "client", nonce: "nonce", dismissScreenErrorOnInput: "dismissScreenErrorOnInput", form: "form", logger: "logger", styleId: "styleId" }, outputs: { success: "success", error: "error" }, ngImport: i0, template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-up-or-in\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n", dependencies: [{ kind: "component", type: DescopeComponent, selector: "descope[flowId]", inputs: ["flowId", "locale", "theme", "tenant", "telemetryKey", "redirectUrl", "autoFocus", "validateOnBlur", "restartOnError", "debug", "errorTransformer", "onScreenUpdate", "client", "nonce", "dismissScreenErrorOnInput", "form", "logger", "styleId"], outputs: ["success", "error", "ready"] }] }); }
547
+ }
548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: SignUpOrInFlowComponent, decorators: [{
549
+ type: Component,
550
+ args: [{ selector: 'descope-sign-up-or-in-flow', standalone: true, imports: [DescopeComponent], template: "<descope\n (success)=\"success.emit($event)\"\n (error)=\"error.emit($event)\"\n flowId=\"sign-up-or-in\"\n [locale]=\"locale\"\n [theme]=\"theme\"\n [tenant]=\"tenant\"\n [telemetryKey]=\"telemetryKey\"\n [redirectUrl]=\"redirectUrl\"\n [autoFocus]=\"autoFocus\"\n [validateOnBlur]=\"validateOnBlur\"\n [restartOnError]=\"restartOnError\"\n [debug]=\"debug\"\n [errorTransformer]=\"errorTransformer\"\n [onScreenUpdate]=\"onScreenUpdate\"\n [client]=\"client\"\n [nonce]=\"nonce\"\n [dismissScreenErrorOnInput]=\"dismissScreenErrorOnInput\"\n [form]=\"form\"\n [logger]=\"logger\"\n [styleId]=\"styleId\"\n>\n</descope>\n" }]
551
+ }], ctorParameters: () => [{ type: DescopeAuthConfig }], propDecorators: { locale: [{
552
+ type: Input
553
+ }], theme: [{
554
+ type: Input
555
+ }], tenant: [{
556
+ type: Input
557
+ }], telemetryKey: [{
558
+ type: Input
559
+ }], redirectUrl: [{
560
+ type: Input
561
+ }], autoFocus: [{
562
+ type: Input
563
+ }], validateOnBlur: [{
564
+ type: Input
565
+ }], restartOnError: [{
566
+ type: Input
567
+ }], debug: [{
568
+ type: Input
569
+ }], errorTransformer: [{
570
+ type: Input
571
+ }], onScreenUpdate: [{
572
+ type: Input
573
+ }], client: [{
574
+ type: Input
575
+ }], nonce: [{
576
+ type: Input
577
+ }], dismissScreenErrorOnInput: [{
578
+ type: Input
579
+ }], form: [{
580
+ type: Input
581
+ }], logger: [{
582
+ type: Input
583
+ }], styleId: [{
584
+ type: Input
585
+ }], success: [{
586
+ type: Output
587
+ }], error: [{
588
+ type: Output
589
+ }] } });
590
+
591
+ class UserManagementComponent {
592
+ constructor(elementRef, descopeConfig) {
593
+ this.elementRef = elementRef;
594
+ this.webComponent = new DescopeUserManagementWidget();
595
+ this.projectId = descopeConfig.projectId;
596
+ this.baseUrl = descopeConfig.baseUrl;
597
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
598
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
599
+ }
600
+ ngOnInit() {
601
+ this.setupWebComponent();
602
+ this.elementRef.nativeElement.appendChild(this.webComponent);
603
+ }
604
+ ngOnChanges() {
605
+ this.setupWebComponent();
606
+ }
607
+ setupWebComponent() {
608
+ this.webComponent.setAttribute('project-id', this.projectId);
609
+ this.webComponent.setAttribute('tenant', this.tenant);
610
+ this.webComponent.setAttribute('widget-id', this.widgetId);
611
+ if (this.baseUrl) {
612
+ this.webComponent.setAttribute('base-url', this.baseUrl);
613
+ }
614
+ if (this.baseStaticUrl) {
615
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
616
+ }
617
+ if (this.baseCdnUrl) {
618
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
619
+ }
620
+ if (this.theme) {
621
+ this.webComponent.setAttribute('theme', this.theme);
622
+ }
623
+ if (this.debug) {
624
+ this.webComponent.setAttribute('debug', this.debug.toString());
625
+ }
626
+ if (this.styleId) {
627
+ this.webComponent.setAttribute('style-id', this.styleId);
628
+ }
629
+ if (this.logger) {
630
+ this.webComponent.logger = this.logger;
631
+ }
632
+ }
633
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: UserManagementComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
634
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: UserManagementComponent, isStandalone: true, selector: "user-management[tenant]", inputs: { tenant: "tenant", widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
635
+ }
636
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: UserManagementComponent, decorators: [{
637
+ type: Component,
638
+ args: [{
639
+ selector: 'user-management[tenant]',
640
+ standalone: true,
641
+ template: ''
642
+ }]
643
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }], propDecorators: { tenant: [{
644
+ type: Input
645
+ }], widgetId: [{
646
+ type: Input
647
+ }], theme: [{
648
+ type: Input
649
+ }], debug: [{
650
+ type: Input
651
+ }], logger: [{
652
+ type: Input
653
+ }], styleId: [{
654
+ type: Input
655
+ }] } });
656
+
657
+ class RoleManagementComponent {
658
+ constructor(elementRef, descopeConfig) {
659
+ this.elementRef = elementRef;
660
+ this.webComponent = new DescopeRoleManagementWidget();
661
+ this.projectId = descopeConfig.projectId;
662
+ this.baseUrl = descopeConfig.baseUrl;
663
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
664
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
665
+ }
666
+ ngOnInit() {
667
+ this.setupWebComponent();
668
+ this.elementRef.nativeElement.appendChild(this.webComponent);
669
+ }
670
+ ngOnChanges() {
671
+ this.setupWebComponent();
672
+ }
673
+ setupWebComponent() {
674
+ this.webComponent.setAttribute('project-id', this.projectId);
675
+ this.webComponent.setAttribute('tenant', this.tenant);
676
+ this.webComponent.setAttribute('widget-id', this.widgetId);
677
+ if (this.baseUrl) {
678
+ this.webComponent.setAttribute('base-url', this.baseUrl);
679
+ }
680
+ if (this.baseStaticUrl) {
681
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
682
+ }
683
+ if (this.baseCdnUrl) {
684
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
685
+ }
686
+ if (this.theme) {
687
+ this.webComponent.setAttribute('theme', this.theme);
688
+ }
689
+ if (this.debug) {
690
+ this.webComponent.setAttribute('debug', this.debug.toString());
691
+ }
692
+ if (this.styleId) {
693
+ this.webComponent.setAttribute('style-id', this.styleId);
694
+ }
695
+ if (this.logger) {
696
+ this.webComponent.logger = this.logger;
697
+ }
698
+ }
699
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: RoleManagementComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
700
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: RoleManagementComponent, isStandalone: true, selector: "role-management[tenant]", inputs: { tenant: "tenant", widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
701
+ }
702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: RoleManagementComponent, decorators: [{
703
+ type: Component,
704
+ args: [{
705
+ selector: 'role-management[tenant]',
706
+ standalone: true,
707
+ template: ''
708
+ }]
709
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }], propDecorators: { tenant: [{
710
+ type: Input
711
+ }], widgetId: [{
712
+ type: Input
713
+ }], theme: [{
714
+ type: Input
715
+ }], debug: [{
716
+ type: Input
717
+ }], logger: [{
718
+ type: Input
719
+ }], styleId: [{
720
+ type: Input
721
+ }] } });
722
+
723
+ class AccessKeyManagementComponent {
724
+ constructor(elementRef, descopeConfig) {
725
+ this.elementRef = elementRef;
726
+ this.webComponent = new DescopeAccessKeyManagementWidget();
727
+ this.projectId = descopeConfig.projectId;
728
+ this.baseUrl = descopeConfig.baseUrl;
729
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
730
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
731
+ }
732
+ ngOnInit() {
733
+ this.setupWebComponent();
734
+ this.elementRef.nativeElement.appendChild(this.webComponent);
735
+ }
736
+ ngOnChanges() {
737
+ this.setupWebComponent();
738
+ }
739
+ setupWebComponent() {
740
+ this.webComponent.setAttribute('project-id', this.projectId);
741
+ this.webComponent.setAttribute('tenant', this.tenant);
742
+ this.webComponent.setAttribute('widget-id', this.widgetId);
743
+ if (this.baseUrl) {
744
+ this.webComponent.setAttribute('base-url', this.baseUrl);
745
+ }
746
+ if (this.baseStaticUrl) {
747
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
748
+ }
749
+ if (this.baseCdnUrl) {
750
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
751
+ }
752
+ if (this.theme) {
753
+ this.webComponent.setAttribute('theme', this.theme);
754
+ }
755
+ if (this.debug) {
756
+ this.webComponent.setAttribute('debug', this.debug.toString());
757
+ }
758
+ if (this.logger) {
759
+ this.webComponent.logger = this.logger;
760
+ }
761
+ }
762
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AccessKeyManagementComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
763
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: AccessKeyManagementComponent, isStandalone: true, selector: "access-key-management[tenant]", inputs: { tenant: "tenant", widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
764
+ }
765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AccessKeyManagementComponent, decorators: [{
766
+ type: Component,
767
+ args: [{
768
+ selector: 'access-key-management[tenant]',
769
+ standalone: true,
770
+ template: ''
771
+ }]
772
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }], propDecorators: { tenant: [{
773
+ type: Input
774
+ }], widgetId: [{
775
+ type: Input
776
+ }], theme: [{
777
+ type: Input
778
+ }], debug: [{
779
+ type: Input
780
+ }], logger: [{
781
+ type: Input
782
+ }], styleId: [{
783
+ type: Input
784
+ }] } });
785
+
786
+ class AuditManagementComponent {
787
+ constructor(elementRef, descopeConfig) {
788
+ this.elementRef = elementRef;
789
+ this.webComponent = new DescopeAuditManagementWidget();
790
+ this.projectId = descopeConfig.projectId;
791
+ this.baseUrl = descopeConfig.baseUrl;
792
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
793
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
794
+ }
795
+ ngOnInit() {
796
+ this.setupWebComponent();
797
+ this.elementRef.nativeElement.appendChild(this.webComponent);
798
+ }
799
+ ngOnChanges() {
800
+ this.setupWebComponent();
801
+ }
802
+ setupWebComponent() {
803
+ this.webComponent.setAttribute('project-id', this.projectId);
804
+ this.webComponent.setAttribute('tenant', this.tenant);
805
+ this.webComponent.setAttribute('widget-id', this.widgetId);
806
+ if (this.baseUrl) {
807
+ this.webComponent.setAttribute('base-url', this.baseUrl);
808
+ }
809
+ if (this.baseStaticUrl) {
810
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
811
+ }
812
+ if (this.baseCdnUrl) {
813
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
814
+ }
815
+ if (this.theme) {
816
+ this.webComponent.setAttribute('theme', this.theme);
817
+ }
818
+ if (this.debug) {
819
+ this.webComponent.setAttribute('debug', this.debug.toString());
820
+ }
821
+ if (this.styleId) {
822
+ this.webComponent.setAttribute('style-id', this.styleId);
823
+ }
824
+ if (this.logger) {
825
+ this.webComponent.logger = this.logger;
826
+ }
827
+ }
828
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AuditManagementComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
829
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: AuditManagementComponent, isStandalone: true, selector: "audit-management[tenant]", inputs: { tenant: "tenant", widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
830
+ }
831
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: AuditManagementComponent, decorators: [{
832
+ type: Component,
833
+ args: [{
834
+ selector: 'audit-management[tenant]',
835
+ standalone: true,
836
+ template: ''
837
+ }]
838
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }], propDecorators: { tenant: [{
839
+ type: Input
840
+ }], widgetId: [{
841
+ type: Input
842
+ }], theme: [{
843
+ type: Input
844
+ }], debug: [{
845
+ type: Input
846
+ }], logger: [{
847
+ type: Input
848
+ }], styleId: [{
849
+ type: Input
850
+ }] } });
851
+
852
+ class UserProfileComponent {
853
+ constructor(elementRef, descopeConfig, descopeAuthService) {
854
+ this.elementRef = elementRef;
855
+ this.descopeAuthService = descopeAuthService;
856
+ this.logout = new EventEmitter();
857
+ this.webComponent = new DescopeUserProfileWidget();
858
+ this.projectId = descopeConfig.projectId;
859
+ this.baseUrl = descopeConfig.baseUrl;
860
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
861
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
862
+ }
863
+ ngOnInit() {
864
+ this.setupWebComponent();
865
+ this.elementRef.nativeElement.appendChild(this.webComponent);
866
+ }
867
+ ngOnChanges() {
868
+ this.setupWebComponent();
869
+ }
870
+ setupWebComponent() {
871
+ this.webComponent.setAttribute('project-id', this.projectId);
872
+ this.webComponent.setAttribute('widget-id', this.widgetId);
873
+ if (this.baseUrl) {
874
+ this.webComponent.setAttribute('base-url', this.baseUrl);
875
+ }
876
+ if (this.baseStaticUrl) {
877
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
878
+ }
879
+ if (this.baseCdnUrl) {
880
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
881
+ }
882
+ if (this.theme) {
883
+ this.webComponent.setAttribute('theme', this.theme);
884
+ }
885
+ if (this.debug) {
886
+ this.webComponent.setAttribute('debug', this.debug.toString());
887
+ }
888
+ if (this.styleId) {
889
+ this.webComponent.setAttribute('style-id', this.styleId);
890
+ }
891
+ if (this.logger) {
892
+ this.webComponent.logger = this.logger;
893
+ }
894
+ this.webComponent.addEventListener('logout', (e) => {
895
+ this.logout?.emit(e);
896
+ this.descopeAuthService.setSession('');
897
+ this.descopeAuthService.setIsAuthenticated(false);
898
+ this.descopeAuthService.setUser(null);
899
+ });
900
+ }
901
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: UserProfileComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }, { token: DescopeAuthService }], target: i0.ɵɵFactoryTarget.Component }); }
902
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: UserProfileComponent, isStandalone: true, selector: "user-profile", inputs: { widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, outputs: { logout: "logout" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
903
+ }
904
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: UserProfileComponent, decorators: [{
905
+ type: Component,
906
+ args: [{
907
+ selector: 'user-profile',
908
+ standalone: true,
909
+ template: ''
910
+ }]
911
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }, { type: DescopeAuthService }], propDecorators: { widgetId: [{
912
+ type: Input
913
+ }], theme: [{
914
+ type: Input
915
+ }], debug: [{
916
+ type: Input
917
+ }], logger: [{
918
+ type: Input
919
+ }], styleId: [{
920
+ type: Input
921
+ }], logout: [{
922
+ type: Output
923
+ }] } });
924
+
925
+ class ApplicationsPortalComponent {
926
+ constructor(elementRef, descopeConfig) {
927
+ this.elementRef = elementRef;
928
+ this.logout = new EventEmitter();
929
+ this.webComponent = new DescopeApplicationsPortalWidget();
930
+ this.projectId = descopeConfig.projectId;
931
+ this.baseUrl = descopeConfig.baseUrl;
932
+ this.baseStaticUrl = descopeConfig.baseStaticUrl;
933
+ this.baseCdnUrl = descopeConfig.baseCdnUrl;
934
+ }
935
+ ngOnInit() {
936
+ this.setupWebComponent();
937
+ this.elementRef.nativeElement.appendChild(this.webComponent);
938
+ }
939
+ ngOnChanges() {
940
+ this.setupWebComponent();
941
+ }
942
+ setupWebComponent() {
943
+ this.webComponent.setAttribute('project-id', this.projectId);
944
+ this.webComponent.setAttribute('widget-id', this.widgetId);
945
+ if (this.baseUrl) {
946
+ this.webComponent.setAttribute('base-url', this.baseUrl);
947
+ }
948
+ if (this.baseStaticUrl) {
949
+ this.webComponent.setAttribute('base-static-url', this.baseStaticUrl);
950
+ }
951
+ if (this.baseCdnUrl) {
952
+ this.webComponent.setAttribute('base-cdn-url', this.baseCdnUrl);
953
+ }
954
+ if (this.theme) {
955
+ this.webComponent.setAttribute('theme', this.theme);
956
+ }
957
+ if (this.debug) {
958
+ this.webComponent.setAttribute('debug', this.debug.toString());
959
+ }
960
+ if (this.logger) {
961
+ this.webComponent.logger = this.logger;
962
+ }
963
+ if (this.styleId) {
964
+ this.webComponent.setAttribute('style-id', this.styleId);
965
+ }
966
+ if (this.logout) {
967
+ this.webComponent.addEventListener('logout', (e) => {
968
+ this.logout?.emit(e);
969
+ });
970
+ }
971
+ }
972
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ApplicationsPortalComponent, deps: [{ token: i0.ElementRef }, { token: DescopeAuthConfig }], target: i0.ɵɵFactoryTarget.Component }); }
973
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.1.4", type: ApplicationsPortalComponent, isStandalone: true, selector: "applications-portal", inputs: { widgetId: "widgetId", theme: "theme", debug: "debug", logger: "logger", styleId: "styleId" }, outputs: { logout: "logout" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
974
+ }
975
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: ApplicationsPortalComponent, decorators: [{
976
+ type: Component,
977
+ args: [{
978
+ selector: 'applications-portal',
979
+ standalone: true,
980
+ template: ''
981
+ }]
982
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: DescopeAuthConfig }], propDecorators: { widgetId: [{
983
+ type: Input
984
+ }], theme: [{
985
+ type: Input
986
+ }], debug: [{
987
+ type: Input
988
+ }], logger: [{
989
+ type: Input
990
+ }], styleId: [{
991
+ type: Input
992
+ }], logout: [{
993
+ type: Output
994
+ }] } });
995
+
996
+ class DescopeAuthModule {
997
+ constructor(parentModule) {
998
+ if (parentModule) {
999
+ // eslint-disable-next-line no-console
1000
+ console.log('DescopeAuthModule is loaded in a child module');
1001
+ }
1002
+ }
1003
+ static forRoot(config) {
1004
+ return {
1005
+ ngModule: DescopeAuthModule,
1006
+ providers: [{ provide: DescopeAuthConfig, useValue: config }]
1007
+ };
1008
+ }
1009
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthModule, deps: [{ token: DescopeAuthModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
1010
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthModule, imports: [DescopeComponent,
1011
+ SignInFlowComponent,
1012
+ SignUpFlowComponent,
1013
+ SignUpOrInFlowComponent,
1014
+ UserManagementComponent,
1015
+ RoleManagementComponent,
1016
+ AccessKeyManagementComponent,
1017
+ AuditManagementComponent,
1018
+ UserProfileComponent,
1019
+ ApplicationsPortalComponent], exports: [DescopeComponent,
1020
+ SignInFlowComponent,
1021
+ SignUpFlowComponent,
1022
+ SignUpOrInFlowComponent,
1023
+ UserManagementComponent,
1024
+ RoleManagementComponent,
1025
+ AccessKeyManagementComponent,
1026
+ AuditManagementComponent,
1027
+ UserProfileComponent,
1028
+ ApplicationsPortalComponent] }); }
1029
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthModule }); }
1030
+ }
1031
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DescopeAuthModule, decorators: [{
1032
+ type: NgModule,
1033
+ args: [{
1034
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
1035
+ imports: [
1036
+ DescopeComponent,
1037
+ SignInFlowComponent,
1038
+ SignUpFlowComponent,
1039
+ SignUpOrInFlowComponent,
1040
+ UserManagementComponent,
1041
+ RoleManagementComponent,
1042
+ AccessKeyManagementComponent,
1043
+ AuditManagementComponent,
1044
+ UserProfileComponent,
1045
+ ApplicationsPortalComponent
1046
+ ],
1047
+ exports: [
1048
+ DescopeComponent,
1049
+ SignInFlowComponent,
1050
+ SignUpFlowComponent,
1051
+ SignUpOrInFlowComponent,
1052
+ UserManagementComponent,
1053
+ RoleManagementComponent,
1054
+ AccessKeyManagementComponent,
1055
+ AuditManagementComponent,
1056
+ UserProfileComponent,
1057
+ ApplicationsPortalComponent
1058
+ ]
1059
+ }]
1060
+ }], ctorParameters: () => [{ type: DescopeAuthModule, decorators: [{
1061
+ type: Optional
1062
+ }, {
1063
+ type: SkipSelf
1064
+ }] }] });
1065
+
1066
+ /*
1067
+ * Public API Surface of angular-sdk
1068
+ */
1069
+
1070
+ /**
1071
+ * Generated bundle index. Do not edit.
1072
+ */
1073
+
1074
+ export { AccessKeyManagementComponent, ApplicationsPortalComponent, AuditManagementComponent, DescopeAuthConfig, DescopeAuthModule, DescopeAuthService, DescopeComponent, RoleManagementComponent, SignInFlowComponent, SignUpFlowComponent, SignUpOrInFlowComponent, UserManagementComponent, UserProfileComponent, descopeAuthGuard, descopeInterceptor };
1075
+ //# sourceMappingURL=descope-angular-sdk.mjs.map