@odx/auth 17.2.1 → 18.0.1

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 (114) hide show
  1. package/CHANGELOG.md +91 -0
  2. package/fesm2022/odx-auth-plugins-service-connect.mjs +3 -3
  3. package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
  4. package/fesm2022/odx-auth.mjs +41 -41
  5. package/fesm2022/odx-auth.mjs.map +1 -1
  6. package/index.d.ts +744 -15
  7. package/package.json +4 -8
  8. package/plugins/service-connect/index.d.ts +186 -8
  9. package/esm2022/index.mjs +0 -16
  10. package/esm2022/lib/auth.component.mjs +0 -50
  11. package/esm2022/lib/auth.config.mjs +0 -71
  12. package/esm2022/lib/auth.directive.mjs +0 -51
  13. package/esm2022/lib/auth.guard.mjs +0 -44
  14. package/esm2022/lib/auth.i18n.mjs +0 -13
  15. package/esm2022/lib/auth.interceptor.mjs +0 -23
  16. package/esm2022/lib/auth.logger.mjs +0 -3
  17. package/esm2022/lib/auth.module.mjs +0 -19
  18. package/esm2022/lib/auth.providers.mjs +0 -136
  19. package/esm2022/lib/auth.service.mjs +0 -317
  20. package/esm2022/lib/auth.typings.mjs +0 -2
  21. package/esm2022/lib/components/auth-actions/auth-actions.component.mjs +0 -40
  22. package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +0 -53
  23. package/esm2022/lib/components/index.mjs +0 -3
  24. package/esm2022/lib/directives/auth-action.directive.mjs +0 -30
  25. package/esm2022/lib/directives/index.mjs +0 -4
  26. package/esm2022/lib/directives/sign-in.directive.mjs +0 -52
  27. package/esm2022/lib/directives/sign-out.directive.mjs +0 -50
  28. package/esm2022/lib/helpers/create-auth-host-url.mjs +0 -18
  29. package/esm2022/lib/helpers/create-inititals.mjs +0 -32
  30. package/esm2022/lib/helpers/handle-auth-error.mjs +0 -31
  31. package/esm2022/lib/helpers/handle-oauth-event.mjs +0 -13
  32. package/esm2022/lib/helpers/index.mjs +0 -9
  33. package/esm2022/lib/helpers/resolve-email.mjs +0 -34
  34. package/esm2022/lib/helpers/resolve-username.mjs +0 -38
  35. package/esm2022/lib/helpers/set-http-auth-header.mjs +0 -22
  36. package/esm2022/lib/helpers/user-language-loader.mjs +0 -17
  37. package/esm2022/lib/models/auth-environment.mjs +0 -3
  38. package/esm2022/lib/models/auth-plugin-manager.mjs +0 -49
  39. package/esm2022/lib/models/authorized-handler.mjs +0 -2
  40. package/esm2022/lib/models/index.mjs +0 -5
  41. package/esm2022/lib/models/offline-auth-error-handler.mjs +0 -7
  42. package/esm2022/lib/plugins/core-debug.plugin.mjs +0 -29
  43. package/esm2022/lib/plugins/core-identity.plugin.mjs +0 -20
  44. package/esm2022/lib/plugins/index.mjs +0 -4
  45. package/esm2022/lib/plugins/user-profile-link.plugin.mjs +0 -18
  46. package/esm2022/lib/unauth.guard.mjs +0 -38
  47. package/esm2022/odx-auth.mjs +0 -5
  48. package/esm2022/plugins/service-connect/index.mjs +0 -9
  49. package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.mjs +0 -2
  50. package/esm2022/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.mjs +0 -2
  51. package/esm2022/plugins/service-connect/lib/dtos/index.mjs +0 -3
  52. package/esm2022/plugins/service-connect/lib/helpers/build-service-connect-url.mjs +0 -16
  53. package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.mjs +0 -12
  54. package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights.mjs +0 -11
  55. package/esm2022/plugins/service-connect/lib/helpers/index.mjs +0 -5
  56. package/esm2022/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +0 -25
  57. package/esm2022/plugins/service-connect/lib/service-connect-rights.directive.mjs +0 -44
  58. package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +0 -15
  59. package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +0 -16
  60. package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +0 -34
  61. package/esm2022/plugins/service-connect/lib/service-connect-user-profile.plugin.mjs +0 -28
  62. package/esm2022/plugins/service-connect/lib/service-connect.config.mjs +0 -17
  63. package/esm2022/plugins/service-connect/odx-auth-plugins-service-connect.mjs +0 -5
  64. package/lib/auth.component.d.ts +0 -20
  65. package/lib/auth.config.d.ts +0 -84
  66. package/lib/auth.directive.d.ts +0 -25
  67. package/lib/auth.guard.d.ts +0 -11
  68. package/lib/auth.i18n.d.ts +0 -3
  69. package/lib/auth.interceptor.d.ts +0 -10
  70. package/lib/auth.logger.d.ts +0 -3
  71. package/lib/auth.module.d.ts +0 -10
  72. package/lib/auth.providers.d.ts +0 -46
  73. package/lib/auth.service.d.ts +0 -206
  74. package/lib/auth.typings.d.ts +0 -27
  75. package/lib/components/auth-actions/auth-actions.component.d.ts +0 -16
  76. package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +0 -24
  77. package/lib/components/index.d.ts +0 -2
  78. package/lib/directives/auth-action.directive.d.ts +0 -18
  79. package/lib/directives/index.d.ts +0 -3
  80. package/lib/directives/sign-in.directive.d.ts +0 -29
  81. package/lib/directives/sign-out.directive.d.ts +0 -28
  82. package/lib/helpers/create-auth-host-url.d.ts +0 -14
  83. package/lib/helpers/create-inititals.d.ts +0 -18
  84. package/lib/helpers/handle-auth-error.d.ts +0 -13
  85. package/lib/helpers/handle-oauth-event.d.ts +0 -11
  86. package/lib/helpers/index.d.ts +0 -8
  87. package/lib/helpers/resolve-email.d.ts +0 -21
  88. package/lib/helpers/resolve-username.d.ts +0 -22
  89. package/lib/helpers/set-http-auth-header.d.ts +0 -11
  90. package/lib/helpers/user-language-loader.d.ts +0 -11
  91. package/lib/models/auth-environment.d.ts +0 -6
  92. package/lib/models/auth-plugin-manager.d.ts +0 -21
  93. package/lib/models/authorized-handler.d.ts +0 -3
  94. package/lib/models/index.d.ts +0 -4
  95. package/lib/models/offline-auth-error-handler.d.ts +0 -2
  96. package/lib/plugins/core-debug.plugin.d.ts +0 -11
  97. package/lib/plugins/core-identity.plugin.d.ts +0 -18
  98. package/lib/plugins/index.d.ts +0 -3
  99. package/lib/plugins/user-profile-link.plugin.d.ts +0 -18
  100. package/lib/unauth.guard.d.ts +0 -11
  101. package/plugins/service-connect/lib/dtos/get-service-connect-rights-response.dto.d.ts +0 -3
  102. package/plugins/service-connect/lib/dtos/get-service-connect-user-response.dto.d.ts +0 -14
  103. package/plugins/service-connect/lib/dtos/index.d.ts +0 -2
  104. package/plugins/service-connect/lib/helpers/build-service-connect-url.d.ts +0 -10
  105. package/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.d.ts +0 -10
  106. package/plugins/service-connect/lib/helpers/has-roles-or-rights.d.ts +0 -11
  107. package/plugins/service-connect/lib/helpers/index.d.ts +0 -4
  108. package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +0 -20
  109. package/plugins/service-connect/lib/service-connect-rights.directive.d.ts +0 -21
  110. package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +0 -11
  111. package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +0 -18
  112. package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +0 -24
  113. package/plugins/service-connect/lib/service-connect-user-profile.plugin.d.ts +0 -23
  114. package/plugins/service-connect/lib/service-connect.config.d.ts +0 -15
@@ -1,29 +0,0 @@
1
- import { DestroyRef, inject } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { of } from 'rxjs';
4
- import logger from '../auth.logger';
5
- /**
6
- * A factory function that creates a core debug plugin for the authentication service.
7
- * This plugin logs detailed information about the user's identity claims and tokens.
8
- *
9
- * @remarks
10
- * This plugin is intended for debugging purposes only and should not be used in production environments.
11
- *
12
- * @returns {AuthPluginFactory} A function that takes an authentication service and sets up logging for identity claims and tokens.
13
- */
14
- export const coreDebugPlugin = () => {
15
- logger.warn('DEBUG MODE ENABLED - DO NOT USE IN PRODUCTION!');
16
- const destroyRef = inject(DestroyRef);
17
- let instance = null;
18
- return (authService) => {
19
- instance ??= authService.identityClaims$.pipe(takeUntilDestroyed(destroyRef)).subscribe((claims) => {
20
- logger.info(`User: ${claims?.username} (${claims?.email})`);
21
- logger.group('Identity claims', (log) => log(claims), false);
22
- logger.group('Access token', (log) => log(authService.getAccessToken()));
23
- logger.group('Refresh token', (log) => log(authService.getRefreshToken()));
24
- logger.group('ID token', (log) => log(authService.getIdToken()));
25
- });
26
- return of({});
27
- };
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kZWJ1Zy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtZGVidWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBR3BDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQixHQUFHLEVBQUU7SUFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsR0FBd0IsSUFBSSxDQUFDO0lBRXpDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixRQUFRLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsTUFBTSxFQUFFLFFBQVEsS0FBSyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vYXV0aC5sb2dnZXInO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBjb3JlIGRlYnVnIHBsdWdpbiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKiBUaGlzIHBsdWdpbiBsb2dzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyJ3MgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgcGx1Z2luIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlxuICpcbiAqIEByZXR1cm5zIHtBdXRoUGx1Z2luRmFjdG9yeX0gQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgYW5kIHNldHMgdXAgbG9nZ2luZyBmb3IgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBjb3JlRGVidWdQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBsb2dnZXIud2FybignREVCVUcgTU9ERSBFTkFCTEVEIC0gRE8gTk9UIFVTRSBJTiBQUk9EVUNUSU9OIScpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBsZXQgaW5zdGFuY2U6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJldHVybiAoYXV0aFNlcnZpY2UpID0+IHtcbiAgICBpbnN0YW5jZSA/Pz0gYXV0aFNlcnZpY2UuaWRlbnRpdHlDbGFpbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGNsYWltcykgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oYFVzZXI6ICR7Y2xhaW1zPy51c2VybmFtZX0gKCR7Y2xhaW1zPy5lbWFpbH0pYCk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0lkZW50aXR5IGNsYWltcycsIChsb2cpID0+IGxvZyhjbGFpbXMpLCBmYWxzZSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0FjY2VzcyB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ1JlZnJlc2ggdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCkpKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnSUQgdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0SWRUb2tlbigpKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2Yoe30pO1xuICB9O1xufTtcbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { injectAuthConfig } from '../auth.config';
3
- /**
4
- * Core identity plugin for authentication.
5
- *
6
- * This plugin extracts and processes identity claims from the authentication service.
7
- *
8
- * @returns {AuthPluginFactory} A factory function that returns an observable with the processed identity claims.
9
- */
10
- export const coreIdentityPlugin = () => {
11
- const { resolveEmail, resolveUsername, createInitials } = injectAuthConfig();
12
- return (authService) => {
13
- const claims = authService.getRawIdentityClaims();
14
- if (!claims)
15
- return of({});
16
- const username = resolveUsername(claims);
17
- return of({ email: resolveEmail(claims), username, initials: createInitials(username) });
18
- };
19
- };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pZGVudGl0eS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtaWRlbnRpdHkucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXNCLEdBQUcsRUFBRTtJQUN4RCxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW5pdGlhbHM6IHN0cmluZztcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29yZSBpZGVudGl0eSBwbHVnaW4gZm9yIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIFRoaXMgcGx1Z2luIGV4dHJhY3RzIGFuZCBwcm9jZXNzZXMgaWRlbnRpdHkgY2xhaW1zIGZyb20gdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKlxuICogQHJldHVybnMge0F1dGhQbHVnaW5GYWN0b3J5fSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgd2l0aCB0aGUgcHJvY2Vzc2VkIGlkZW50aXR5IGNsYWltcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvcmVJZGVudGl0eVBsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IHsgcmVzb2x2ZUVtYWlsLCByZXNvbHZlVXNlcm5hbWUsIGNyZWF0ZUluaXRpYWxzIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG5cbiAgcmV0dXJuIChhdXRoU2VydmljZSkgPT4ge1xuICAgIGNvbnN0IGNsYWltcyA9IGF1dGhTZXJ2aWNlLmdldFJhd0lkZW50aXR5Q2xhaW1zKCk7XG4gICAgaWYgKCFjbGFpbXMpIHJldHVybiBvZih7fSk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSByZXNvbHZlVXNlcm5hbWUoY2xhaW1zKTtcblxuICAgIHJldHVybiBvZih7IGVtYWlsOiByZXNvbHZlRW1haWwoY2xhaW1zKSwgdXNlcm5hbWUsIGluaXRpYWxzOiBjcmVhdGVJbml0aWFscyh1c2VybmFtZSkgfSk7XG4gIH07XG59O1xuIl19
@@ -1,4 +0,0 @@
1
- export * from './core-debug.plugin';
2
- export * from './core-identity.plugin';
3
- export * from './user-profile-link.plugin';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlLWRlYnVnLnBsdWdpbic7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtaWRlbnRpdHkucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci1wcm9maWxlLWxpbmsucGx1Z2luJztcbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { ODX_AUTH_USER_PROFILE_HOSTS, injectAuthConfig } from '../auth.config';
3
- /**
4
- * A plugin factory that generates a user profile URL plugin.
5
- *
6
- * This plugin retrieves the user profile URL from the authentication configuration.
7
- * If the user profile URL is not specified in the configuration, it falls back to
8
- * using the default URL for the current environment from `ODX_AUTH_USER_PROFILE_HOSTS`.
9
- *
10
- * @returns A function that returns an observable emitting an object containing the user profile URL.
11
- */
12
- export const userProfileUrlPlugin = () => {
13
- const { environment, userProfileUrl } = injectAuthConfig();
14
- return () => {
15
- return of({ userProfileUrl: userProfileUrl ?? ODX_AUTH_USER_PROFILE_HOSTS[environment] });
16
- };
17
- };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFzQixHQUFHLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNELE9BQU8sR0FBRyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxJQUFJLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTLCBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICB1c2VyUHJvZmlsZVVybDogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZhY3RvcnkgdGhhdCBnZW5lcmF0ZXMgYSB1c2VyIHByb2ZpbGUgVVJMIHBsdWdpbi5cbiAqXG4gKiBUaGlzIHBsdWdpbiByZXRyaWV2ZXMgdGhlIHVzZXIgcHJvZmlsZSBVUkwgZnJvbSB0aGUgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAqIElmIHRoZSB1c2VyIHByb2ZpbGUgVVJMIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGl0IGZhbGxzIGJhY2sgdG9cbiAqIHVzaW5nIHRoZSBkZWZhdWx0IFVSTCBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgZnJvbSBgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTYC5cbiAqXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIGVtaXR0aW5nIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1c2VyIHByb2ZpbGUgVVJMLlxuICovXG5leHBvcnQgY29uc3QgdXNlclByb2ZpbGVVcmxQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCB7IGVudmlyb25tZW50LCB1c2VyUHJvZmlsZVVybCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBvZih7IHVzZXJQcm9maWxlVXJsOiB1c2VyUHJvZmlsZVVybCA/PyBPRFhfQVVUSF9VU0VSX1BST0ZJTEVfSE9TVFNbZW52aXJvbm1lbnRdIH0pO1xuICB9O1xufTtcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { inject } from '@angular/core';
2
- import { Router } from '@angular/router';
3
- import { WindowRef } from '@odx/angular';
4
- import { isString } from '@odx/angular/utils';
5
- import { map, take, tap } from 'rxjs';
6
- import { AuthService } from './auth.service';
7
- /**
8
- * Guard function to prevent unauthorized access to routes.
9
- *
10
- * @param {AuthorizedHandler} authorizedHandler - Optional handler to check if the user is authorized.
11
- * @param {any[] | string} redirectTo - Optional URL or route to redirect unauthorized users to. Can be a string or an array of strings.
12
- * @param {boolean} isExternal - Optional flag to indicate if the redirection should be external. Defaults to false.
13
- * @returns {CanActivateFn} - A function that implements the CanActivateFn interface.
14
- */
15
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
- export function unauthGuard(authorizedHandler, redirectTo, isExternal = false) {
17
- return (_) => {
18
- const authService = inject(AuthService);
19
- const router = inject(Router, { optional: true });
20
- const windowRef = inject(WindowRef);
21
- return authService.isAuthenticated$.pipe(map(() => !authService.isAuthorized(authorizedHandler)), tap((isUnauthorized) => {
22
- if (isUnauthorized || !router)
23
- return;
24
- if (isString(redirectTo)) {
25
- if (isExternal) {
26
- windowRef.location.assign(redirectTo);
27
- }
28
- else {
29
- router.navigateByUrl(redirectTo);
30
- }
31
- }
32
- else if (Array.isArray(redirectTo)) {
33
- router.navigate(redirectTo);
34
- }
35
- }), take(1));
36
- };
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxpQkFBcUMsRUFBRSxVQUEyQixFQUFFLFVBQVUsR0FBRyxLQUFLO0lBQ2hILE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNYLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksY0FBYyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3RDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6ZWRIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIEd1YXJkIGZ1bmN0aW9uIHRvIHByZXZlbnQgdW5hdXRob3JpemVkIGFjY2VzcyB0byByb3V0ZXMuXG4gKlxuICogQHBhcmFtIHtBdXRob3JpemVkSGFuZGxlcn0gYXV0aG9yaXplZEhhbmRsZXIgLSBPcHRpb25hbCBoYW5kbGVyIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGlzIGF1dGhvcml6ZWQuXG4gKiBAcGFyYW0ge2FueVtdIHwgc3RyaW5nfSByZWRpcmVjdFRvIC0gT3B0aW9uYWwgVVJMIG9yIHJvdXRlIHRvIHJlZGlyZWN0IHVuYXV0aG9yaXplZCB1c2VycyB0by4gQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSBPcHRpb25hbCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSByZWRpcmVjdGlvbiBzaG91bGQgYmUgZXh0ZXJuYWwuIERlZmF1bHRzIHRvIGZhbHNlLlxuICogQHJldHVybnMge0NhbkFjdGl2YXRlRm59IC0gQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIENhbkFjdGl2YXRlRm4gaW50ZXJmYWNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aEd1YXJkKGF1dGhvcml6ZWRIYW5kbGVyPzogQXV0aG9yaXplZEhhbmRsZXIsIHJlZGlyZWN0VG8/OiBhbnlbXSB8IHN0cmluZywgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiAoXykgPT4ge1xuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIGNvbnN0IHdpbmRvd1JlZiA9IGluamVjdChXaW5kb3dSZWYpO1xuXG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiAhYXV0aFNlcnZpY2UuaXNBdXRob3JpemVkKGF1dGhvcml6ZWRIYW5kbGVyKSksXG4gICAgICB0YXAoKGlzVW5hdXRob3JpemVkKSA9PiB7XG4gICAgICAgIGlmIChpc1VuYXV0aG9yaXplZCB8fCAhcm91dGVyKSByZXR1cm47XG4gICAgICAgIGlmIChpc1N0cmluZyhyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIGlmIChpc0V4dGVybmFsKSB7XG4gICAgICAgICAgICB3aW5kb3dSZWYubG9jYXRpb24uYXNzaWduKHJlZGlyZWN0VG8pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZShyZWRpcmVjdFRvKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL29keC1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,9 +0,0 @@
1
- export * from './lib/dtos';
2
- export * from './lib/helpers';
3
- export * from './lib/service-connect-rights.directive';
4
- export * from './lib/service-connect-rights.guard';
5
- export * from './lib/service-connect-rights.plugin';
6
- export * from './lib/service-connect-user-language.plugin';
7
- export * from './lib/service-connect-user-profile.plugin';
8
- export * from './lib/service-connect.config';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZHRvcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWxwZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC11c2VyLXByb2ZpbGUucGx1Z2luJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlcnZpY2UtY29ubmVjdC1yaWdodHMtcmVzcG9uc2UuZHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvZHRvcy9nZXQtc2VydmljZS1jb25uZWN0LXJpZ2h0cy1yZXNwb25zZS5kdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2V0U2VydmljZUNvbm5lY3RSaWdodHNSZXNwb25zZUR0byB7XG4gIHJpZ2h0czogc3RyaW5nW107XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2R0b3MvZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB7XG4gIHVzZXJfaWQ6IHN0cmluZztcbiAgZmlyc3RfbmFtZTogc3RyaW5nO1xuICBsYXN0X25hbWU6IHN0cmluZztcbiAgbGFuZ3VhZ2VfY29kZTogc3RyaW5nO1xuICBwcmVmZXJyZWRfbGFuZ3VhZ2U6IHN0cmluZztcbiAgY291bnRyeTogc3RyaW5nO1xuICBpbnN0aXR1dGlvbl9pZDogbnVtYmVyO1xuICBpbnN0aXR1dGlvbl9uYW1lOiBzdHJpbmc7XG4gIGluc3RpdHV0aW9uX25hbWVfMj86IHN0cmluZyB8IG51bGw7XG4gIGluc3RpdHV0aW9uX25hbWVfMz86IHN0cmluZyB8IG51bGw7XG4gIGFjY291bnRfbnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcbiAgaW5zdGl0dXRpb25fc2hvcnRuYW1lOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,3 +0,0 @@
1
- export * from './get-service-connect-rights-response.dto';
2
- export * from './get-service-connect-user-response.dto';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9kdG9zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC1yaWdodHMtcmVzcG9uc2UuZHRvJztcbmV4cG9ydCAqIGZyb20gJy4vZ2V0LXNlcnZpY2UtY29ubmVjdC11c2VyLXJlc3BvbnNlLmR0byc7XG4iXX0=
@@ -1,16 +0,0 @@
1
- import { buildUrl, isString } from '@odx/angular/utils';
2
- import { ServiceConnectEnvironments } from '../service-connect.config';
3
- /**
4
- * Builds a service connect URL based on the provided environment and endpoints.
5
- *
6
- * @param {ServiceConnectEnvironment | AuthEnvironment} environment - The environment configuration which can be either a `ServiceConnectEnvironment` or `AuthEnvironment`.
7
- * @param {string[]} endpoints - A list of endpoint strings to be appended to the base URL.
8
- * @returns {string} - The constructed service connect URL as a string.
9
- */
10
- export function buildServiceConnectUrl(environment, ...endpoints) {
11
- if (isString(environment)) {
12
- return buildUrl(ServiceConnectEnvironments[environment], ...endpoints);
13
- }
14
- return buildUrl(environment.custom, ...endpoints);
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBNkIsMEJBQTBCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBd0QsRUFBRSxHQUFHLFNBQW1CO0lBQ3JILElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFVybCwgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQsIFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnRzIH0gZnJvbSAnLi4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbi8qKlxuICogQnVpbGRzIGEgc2VydmljZSBjb25uZWN0IFVSTCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZW52aXJvbm1lbnQgYW5kIGVuZHBvaW50cy5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQgfCBBdXRoRW52aXJvbm1lbnR9IGVudmlyb25tZW50IC0gVGhlIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gd2hpY2ggY2FuIGJlIGVpdGhlciBhIGBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50YCBvciBgQXV0aEVudmlyb25tZW50YC5cbiAqIEBwYXJhbSB7c3RyaW5nW119IGVuZHBvaW50cyAtIEEgbGlzdCBvZiBlbmRwb2ludCBzdHJpbmdzIHRvIGJlIGFwcGVuZGVkIHRvIHRoZSBiYXNlIFVSTC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGNvbnN0cnVjdGVkIHNlcnZpY2UgY29ubmVjdCBVUkwgYXMgYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNlcnZpY2VDb25uZWN0VXJsKGVudmlyb25tZW50OiBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50IHwgQXV0aEVudmlyb25tZW50LCAuLi5lbmRwb2ludHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgaWYgKGlzU3RyaW5nKGVudmlyb25tZW50KSkge1xuICAgIHJldHVybiBidWlsZFVybChTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50c1tlbnZpcm9ubWVudF0sIC4uLmVuZHBvaW50cyk7XG4gIH1cbiAgcmV0dXJuIGJ1aWxkVXJsKGVudmlyb25tZW50LmN1c3RvbSwgLi4uZW5kcG9pbnRzKTtcbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- import { hasRolesOrRights } from './has-roles-or-rights';
2
- /**
3
- * Creates an authorized handler that checks if the user has the specified roles or rights.
4
- *
5
- * @param {RolesOrRights} rolesOrRights - The roles or rights to check against the user's claims.
6
- * @returns {AuthorizedHandler} - An handler function that takes user claims and returns a boolean indicating
7
- * whether the user has the required roles or rights.
8
- */
9
- export function hasRolesOrRightsHandler(rolesOrRights) {
10
- return (claims) => hasRolesOrRights(claims?.rights ?? [], rolesOrRights);
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9oYXMtcm9sZXMtb3ItcmlnaHRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxhQUE0QjtJQUNsRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXplZEhhbmRsZXIgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0cywgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRob3JpemVkIGhhbmRsZXIgdGhhdCBjaGVja3MgaWYgdGhlIHVzZXIgaGFzIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgdG8gY2hlY2sgYWdhaW5zdCB0aGUgdXNlcidzIGNsYWltcy5cbiAqIEByZXR1cm5zIHtBdXRob3JpemVkSGFuZGxlcn0gLSBBbiBoYW5kbGVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdXNlciBjbGFpbXMgYW5kIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmdcbiAqICAgICAgICAgIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogQXV0aG9yaXplZEhhbmRsZXIge1xuICByZXR1cm4gKGNsYWltcykgPT4gaGFzUm9sZXNPclJpZ2h0cyhjbGFpbXM/LnJpZ2h0cyA/PyBbXSwgcm9sZXNPclJpZ2h0cyk7XG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- /**
2
- * Checks if the user has any of the specified roles or rights.
3
- *
4
- * @param {Right[]} userRights - An array of rights that the user possesses.
5
- * @param {RolesOrRights} rolesOrRights - An array of roles or rights to check against. A role is represented as an array of rights.
6
- * @returns {boolean} - `true` if the user has any of the specified roles or rights, otherwise `false`.
7
- */
8
- export function hasRolesOrRights(userRights, rolesOrRights) {
9
- return rolesOrRights.some((rights) => (Array.isArray(rights) ? rights : [rights])?.every((right) => userRights.includes(right)));
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvaGFzLXJvbGVzLW9yLXJpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxhQUE0QjtJQUNoRixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmlnaHQgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBSb2xlID0gUmlnaHRbXTtcbmV4cG9ydCB0eXBlIFJvbGVzT3JSaWdodHMgPSBBcnJheTxSb2xlIHwgUmlnaHQ+O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgYW55IG9mIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7UmlnaHRbXX0gdXNlclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJpZ2h0cyB0aGF0IHRoZSB1c2VyIHBvc3Nlc3Nlcy5cbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJvbGVzIG9yIHJpZ2h0cyB0byBjaGVjayBhZ2FpbnN0LiBBIHJvbGUgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgb2YgcmlnaHRzLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSB1c2VyIGhhcyBhbnkgb2YgdGhlIHNwZWNpZmllZCByb2xlcyBvciByaWdodHMsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUm9sZXNPclJpZ2h0cyh1c2VyUmlnaHRzOiBSaWdodFtdLCByb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogYm9vbGVhbiB7XG4gIHJldHVybiByb2xlc09yUmlnaHRzLnNvbWUoKHJpZ2h0cykgPT4gKEFycmF5LmlzQXJyYXkocmlnaHRzKSA/IHJpZ2h0cyA6IFtyaWdodHNdKT8uZXZlcnkoKHJpZ2h0KSA9PiB1c2VyUmlnaHRzLmluY2x1ZGVzKHJpZ2h0KSkpO1xufVxuIl19
@@ -1,5 +0,0 @@
1
- export * from './build-service-connect-url';
2
- export * from './has-roles-or-rights';
3
- export * from './has-roles-or-rights-handler';
4
- export * from './service-connect-plugin-factory';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1aWxkLXNlcnZpY2UtY29ubmVjdC11cmwnO1xuZXhwb3J0ICogZnJvbSAnLi9oYXMtcm9sZXMtb3ItcmlnaHRzJztcbmV4cG9ydCAqIGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5JztcbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { HttpClient, HttpContext } from '@angular/common/http';
2
- import { inject } from '@angular/core';
3
- import { injectAuthConfig, requireAuthentication } from '@odx/auth';
4
- import { defer, map } from 'rxjs';
5
- import { buildServiceConnectUrl } from './build-service-connect-url';
6
- /**
7
- * Creates a plugin factory for fetching and parsing service connect data.
8
- *
9
- * @param {ServiceConnectPluginFactoryOptions<Dto>} options - The options for the service connect plugin factory.
10
- * @returns {ServiceConnectPluginFactory} - A function that creates an auth plugin factory for fetching and parsing service connect data.
11
- */
12
- export function serviceConnectPluginFactory(options) {
13
- return (pluginOptions) => () => {
14
- options.setup?.(pluginOptions);
15
- const { environment } = injectAuthConfig();
16
- const httpClient = inject(HttpClient);
17
- const url = buildServiceConnectUrl(pluginOptions?.environment ?? environment, ...options.endpoint);
18
- const parseResponse = (res) => ({
19
- ...(options.parseResponse(res) ?? options.defaultValue ?? {}),
20
- ...(pluginOptions?.additionalClaims?.(res) ?? {}),
21
- });
22
- return () => defer(() => httpClient.get(url, { context: new HttpContext().set(requireAuthentication, true) })).pipe(map((res) => parseResponse(res)));
23
- };
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9zZXJ2aWNlLWNvbm5lY3QtcGx1Z2luLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFnQnJFOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFnQixPQUFnRDtJQUN6RyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM3RCxHQUFHLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLENBQUMsR0FBb0MsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuRixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnksIGluamVjdEF1dGhDb25maWcsIHJlcXVpcmVBdXRoZW50aWNhdGlvbiB9IGZyb20gJ0BvZHgvYXV0aCc7XG5pbXBvcnQgeyBkZWZlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50IH0gZnJvbSAnLi4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5pbXBvcnQgeyBidWlsZFNlcnZpY2VDb25uZWN0VXJsIH0gZnJvbSAnLi9idWlsZC1zZXJ2aWNlLWNvbm5lY3QtdXJsJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvID0gdW5rbm93bj4ge1xuICBlbnZpcm9ubWVudD86IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQ7XG4gIGFkZGl0aW9uYWxDbGFpbXM/OiAoZHRvOiAoRHRvICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPiB7XG4gIGVuZHBvaW50OiBzdHJpbmdbXTtcbiAgcGFyc2VSZXNwb25zZTogKHJlczogRHRvIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xuICBkZWZhdWx0VmFsdWU/OiBQYXJ0aWFsPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD47XG4gIHNldHVwPzogKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvPikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PER0byA9IHVua25vd24+ID0gKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnM8RHRvPikgPT4gQXV0aFBsdWdpbkZhY3Rvcnk7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHBsdWdpbiBmYWN0b3J5IGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyBzZXJ2aWNlIGNvbm5lY3QgZGF0YS5cbiAqXG4gKiBAcGFyYW0ge1NlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPn0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciB0aGUgc2VydmljZSBjb25uZWN0IHBsdWdpbiBmYWN0b3J5LlxuICogQHJldHVybnMge1NlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeX0gLSBBIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBhbiBhdXRoIHBsdWdpbiBmYWN0b3J5IGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyBzZXJ2aWNlIGNvbm5lY3QgZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxEdG8gPSB1bmtub3duPihvcHRpb25zOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnlPcHRpb25zPER0bz4pOiBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnk8RHRvPiB7XG4gIHJldHVybiAocGx1Z2luT3B0aW9ucykgPT4gKCkgPT4ge1xuICAgIG9wdGlvbnMuc2V0dXA/LihwbHVnaW5PcHRpb25zKTtcbiAgICBjb25zdCB7IGVudmlyb25tZW50IH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCB1cmwgPSBidWlsZFNlcnZpY2VDb25uZWN0VXJsKHBsdWdpbk9wdGlvbnM/LmVudmlyb25tZW50ID8/IGVudmlyb25tZW50LCAuLi5vcHRpb25zLmVuZHBvaW50KTtcbiAgICBjb25zdCBwYXJzZVJlc3BvbnNlID0gKHJlczogRHRvIHwgbnVsbCkgPT4gKHtcbiAgICAgIC4uLihvcHRpb25zLnBhcnNlUmVzcG9uc2UocmVzKSA/PyBvcHRpb25zLmRlZmF1bHRWYWx1ZSA/PyB7fSksXG4gICAgICAuLi4ocGx1Z2luT3B0aW9ucz8uYWRkaXRpb25hbENsYWltcz8uKHJlcyBhcyBEdG8gJiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPz8ge30pLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuICgpID0+IGRlZmVyKCgpID0+IGh0dHBDbGllbnQuZ2V0PER0bz4odXJsLCB7IGNvbnRleHQ6IG5ldyBIdHRwQ29udGV4dCgpLnNldChyZXF1aXJlQXV0aGVudGljYXRpb24sIHRydWUpIH0pKS5waXBlKG1hcCgocmVzKSA9PiBwYXJzZVJlc3BvbnNlKHJlcykpKTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,44 +0,0 @@
1
- import { Directive, inject, Input } from '@angular/core';
2
- import { AuthDirective } from '@odx/auth';
3
- import { hasRolesOrRightsHandler } from './helpers';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@odx/auth";
6
- /**
7
- * A directive that extends the functionality of the `AuthDirective` to handle
8
- * roles or rights for service connection authorization.
9
- *
10
- * @see AuthDirective
11
- *
12
- * This directive should be used on an `ng-template` element with the selector
13
- * `odxAuthServiceConnectRights`.
14
- */
15
- export class ServiceConnectRightsDirective {
16
- constructor() {
17
- this.authDirective = inject(AuthDirective, { host: true });
18
- }
19
- /**
20
- * Sets the roles or rights that the user must have to display the content.
21
- */
22
- set rolesOrRights(value) {
23
- this.authDirective.authorizationHandler = hasRolesOrRightsHandler(value ?? []);
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceConnectRightsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ServiceConnectRightsDirective, isStandalone: true, selector: "ng-template[odxAuthServiceConnectRights]", inputs: { rolesOrRights: ["odxAuthServiceConnectRights", "rolesOrRights"] }, hostDirectives: [{ directive: i1.AuthDirective, inputs: ["odxAuthElse", "odxAuthServiceConnectRightsElse"] }], ngImport: i0 }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceConnectRightsDirective, decorators: [{
29
- type: Directive,
30
- args: [{
31
- standalone: true,
32
- selector: 'ng-template[odxAuthServiceConnectRights]',
33
- hostDirectives: [
34
- {
35
- directive: AuthDirective,
36
- inputs: ['odxAuthElse:odxAuthServiceConnectRightsElse'],
37
- },
38
- ],
39
- }]
40
- }], propDecorators: { rolesOrRights: [{
41
- type: Input,
42
- args: ['odxAuthServiceConnectRights']
43
- }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDOzs7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFXSCxNQUFNLE9BQU8sNkJBQTZCO0lBVjFDO1FBV21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBU3hFO0lBUEM7O09BRUc7SUFDSCxJQUNXLGFBQWEsQ0FBQyxLQUF1QztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOytHQVRVLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxjQUFjLEVBQUU7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGFBQWE7NEJBQ3hCLE1BQU0sRUFBRSxDQUFDLDZDQUE2QyxDQUFDO3lCQUN4RDtxQkFDRjtpQkFDRjs4QkFRWSxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYXV0aCc7XG5pbXBvcnQgeyBoYXNSb2xlc09yUmlnaHRzSGFuZGxlciwgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBleHRlbmRzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBgQXV0aERpcmVjdGl2ZWAgdG8gaGFuZGxlXG4gKiByb2xlcyBvciByaWdodHMgZm9yIHNlcnZpY2UgY29ubmVjdGlvbiBhdXRob3JpemF0aW9uLlxuICpcbiAqIEBzZWUgQXV0aERpcmVjdGl2ZVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSB1c2VkIG9uIGFuIGBuZy10ZW1wbGF0ZWAgZWxlbWVudCB3aXRoIHRoZSBzZWxlY3RvclxuICogYG9keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c10nLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogQXV0aERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWydvZHhBdXRoRWxzZTpvZHhBdXRoU2VydmljZUNvbm5lY3RSaWdodHNFbHNlJ10sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZUNvbm5lY3RSaWdodHNEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhEaXJlY3RpdmUgPSBpbmplY3QoQXV0aERpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByb2xlcyBvciByaWdodHMgdGhhdCB0aGUgdXNlciBtdXN0IGhhdmUgdG8gZGlzcGxheSB0aGUgY29udGVudC5cbiAgICovXG4gIEBJbnB1dCgnb2R4QXV0aFNlcnZpY2VDb25uZWN0UmlnaHRzJylcbiAgcHVibGljIHNldCByb2xlc09yUmlnaHRzKHZhbHVlOiBSb2xlc09yUmlnaHRzIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXV0aERpcmVjdGl2ZS5hdXRob3JpemF0aW9uSGFuZGxlciA9IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyKHZhbHVlID8/IFtdKTtcbiAgfVxufVxuIl19
@@ -1,15 +0,0 @@
1
- import { authGuard } from '@odx/auth';
2
- import { hasRolesOrRightsHandler } from './helpers';
3
- /**
4
- * A guard function to check if the user has the required roles or rights to access a route.
5
- *
6
- * @param {RolesOrRights} rolesOrRights - The roles or rights required to access the route.
7
- * @param {string | any[]} redirectTo - (Optional) The route to redirect to if the user does not have the required roles or rights.
8
- * @param {boolean} isExternal - (Optional) A flag indicating if the redirection is to an external URL. Defaults to `false`.
9
- * @returns {CanActivateFn} - A function that checks the user's roles or rights and handles redirection if necessary.
10
- */
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- export function serviceConnectRightsGuard(rolesOrRights, redirectTo, isExternal = false) {
13
- return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo, isExternal);
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGFBQTRCLEVBQUUsVUFBMkIsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUNySCxPQUFPLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXV0aEd1YXJkIH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyLCBSb2xlc09yUmlnaHRzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBBIGd1YXJkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyB0aGUgcmVxdWlyZWQgcm9sZXMgb3IgcmlnaHRzIHRvIGFjY2VzcyBhIHJvdXRlLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgcmVxdWlyZWQgdG8gYWNjZXNzIHRoZSByb3V0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgYW55W119IHJlZGlyZWN0VG8gLSAoT3B0aW9uYWwpIFRoZSByb3V0ZSB0byByZWRpcmVjdCB0byBpZiB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSAoT3B0aW9uYWwpIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSByZWRpcmVjdGlvbiBpcyB0byBhbiBleHRlcm5hbCBVUkwuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gKiBAcmV0dXJucyB7Q2FuQWN0aXZhdGVGbn0gLSBBIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIHRoZSB1c2VyJ3Mgcm9sZXMgb3IgcmlnaHRzIGFuZCBoYW5kbGVzIHJlZGlyZWN0aW9uIGlmIG5lY2Vzc2FyeS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlQ29ubmVjdFJpZ2h0c0d1YXJkKHJvbGVzT3JSaWdodHM6IFJvbGVzT3JSaWdodHMsIHJlZGlyZWN0VG8/OiBzdHJpbmcgfCBhbnlbXSwgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiBhdXRoR3VhcmQoaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIocm9sZXNPclJpZ2h0cyksIHJlZGlyZWN0VG8sIGlzRXh0ZXJuYWwpO1xufVxuIl19
@@ -1,16 +0,0 @@
1
- import { serviceConnectPluginFactory } from './helpers';
2
- import { ServiceConnectEndpoints } from './service-connect.config';
3
- /**
4
- * A plugin for fetching and parsing service connect rights.
5
- *
6
- * This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches user rights
7
- * from the specified endpoint and parses the response to extract the rights.
8
- *
9
- * @see {serviceConnectPluginFactory}
10
- */
11
- export const serviceConnectRightsPlugin = serviceConnectPluginFactory({
12
- endpoint: [ServiceConnectEndpoints.userRights],
13
- parseResponse: (res) => ({ rights: res?.rights ?? [] }),
14
- defaultValue: { rights: [] },
15
- });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFXbkU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDJCQUEyQixDQUFxQztJQUN4RyxRQUFRLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7SUFDOUMsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtDQUM3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IFJpZ2h0LCBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICByaWdodHM6IFJpZ2h0W107XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBwbHVnaW4gZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHNlcnZpY2UgY29ubmVjdCByaWdodHMuXG4gKlxuICogVGhpcyBwbHVnaW4gdXNlcyB0aGUgYHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeWAgdG8gY3JlYXRlIGEgcGx1Z2luIHRoYXQgZmV0Y2hlcyB1c2VyIHJpZ2h0c1xuICogZnJvbSB0aGUgc3BlY2lmaWVkIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHJpZ2h0cy5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFJpZ2h0c1BsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvPih7XG4gIGVuZHBvaW50OiBbU2VydmljZUNvbm5lY3RFbmRwb2ludHMudXNlclJpZ2h0c10sXG4gIHBhcnNlUmVzcG9uc2U6IChyZXMpID0+ICh7IHJpZ2h0czogcmVzPy5yaWdodHMgPz8gW10gfSksXG4gIGRlZmF1bHRWYWx1ZTogeyByaWdodHM6IFtdIH0sXG59KTtcbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { getLanguageCode } from '@odx/angular/utils';
2
- import { serviceConnectPluginFactory } from './helpers';
3
- import { ServiceConnectEndpoints } from './service-connect.config';
4
- /**
5
- * Gets the preferred language from a service connect user response.
6
- *
7
- * @param {GetServiceConnectUserResponseDto | null} res - The service connect user response.
8
- * @returns {string | undefined} - The language or undefined.
9
- */
10
- export function getServiceConnectUserLanguage(res) {
11
- return res?.preferred_language || res?.language_code;
12
- }
13
- /**
14
- * Gets the language code from a service connect user response.
15
- *
16
- * @param {GetServiceConnectUserResponseDto | null} res - The service connect user response.
17
- * @returns {string | undefined} - The language code or undefined.
18
- */
19
- export function getServiceConnectUserLanguageCode(res) {
20
- return res?.language_code ? getLanguageCode(res.language_code) : undefined;
21
- }
22
- /**
23
- * A plugin for fetching and parsing the user's preferred language from service connect.
24
- *
25
- * This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches the user's preferred language
26
- * from the user endpoint and parses the response to extract the preferred language.
27
- *
28
- * @see {serviceConnectPluginFactory}
29
- */
30
- export const serviceConnectUserLanguagePlugin = serviceConnectPluginFactory({
31
- endpoint: [ServiceConnectEndpoints.user],
32
- parseResponse: (res) => ({ preferredLanguage: getServiceConnectUserLanguage(res), languageCode: getServiceConnectUserLanguageCode(res) }),
33
- });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsR0FBNkM7SUFDekYsT0FBTyxHQUFHLEVBQUUsa0JBQWtCLElBQUksR0FBRyxFQUFFLGFBQWEsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsR0FBNkM7SUFDN0YsT0FBTyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDN0UsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRywyQkFBMkIsQ0FBbUM7SUFDNUcsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0NBQzFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExhbmd1YWdlQ29kZSB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB9IGZyb20gJy4vZHRvcyc7XG5pbXBvcnQgeyBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG4vKipcbiAqIEdldHMgdGhlIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIGEgc2VydmljZSBjb25uZWN0IHVzZXIgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGx9IHJlcyAtIFRoZSBzZXJ2aWNlIGNvbm5lY3QgdXNlciByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGxhbmd1YWdlIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcnZpY2VDb25uZWN0VXNlckxhbmd1YWdlKHJlcz86IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiByZXM/LnByZWZlcnJlZF9sYW5ndWFnZSB8fCByZXM/Lmxhbmd1YWdlX2NvZGU7XG59XG5cbi8qKlxuICogR2V0cyB0aGUgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgc2VydmljZSBjb25uZWN0IHVzZXIgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGx9IHJlcyAtIFRoZSBzZXJ2aWNlIGNvbm5lY3QgdXNlciByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGxhbmd1YWdlIGNvZGUgb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2VDb2RlKHJlcz86IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIHwgbnVsbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiByZXM/Lmxhbmd1YWdlX2NvZGUgPyBnZXRMYW5ndWFnZUNvZGUocmVzLmxhbmd1YWdlX2NvZGUpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIHNlcnZpY2UgY29ubmVjdC5cbiAqXG4gKiBUaGlzIHBsdWdpbiB1c2VzIHRoZSBgc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5YCB0byBjcmVhdGUgYSBwbHVnaW4gdGhhdCBmZXRjaGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gKiBmcm9tIHRoZSB1c2VyIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHByZWZlcnJlZCBsYW5ndWFnZS5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiAoeyBwcmVmZXJyZWRMYW5ndWFnZTogZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2UocmVzKSwgbGFuZ3VhZ2VDb2RlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZUNvZGUocmVzKSB9KSxcbn0pO1xuIl19
@@ -1,28 +0,0 @@
1
- import { serviceConnectPluginFactory } from './helpers';
2
- import { getServiceConnectUserLanguage, getServiceConnectUserLanguageCode } from './service-connect-user-language.plugin';
3
- import { ServiceConnectEndpoints } from './service-connect.config';
4
- /**
5
- * A plugin for fetching and parsing the user's profile from service connect.
6
- *
7
- * This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches the user's profile
8
- * from the user endpoint and parses the response to extract the user's profile information.
9
- *
10
- * @see {serviceConnectPluginFactory}
11
- */
12
- export const serviceConnectUserProfilePlugin = serviceConnectPluginFactory({
13
- endpoint: [ServiceConnectEndpoints.user],
14
- parseResponse: (res) => {
15
- return {
16
- country: res?.country,
17
- institutionId: res?.institution_id,
18
- institutionName: res?.institution_name,
19
- institutionName2: res?.institution_name_2 ?? undefined,
20
- institutionName3: res?.institution_name_3 ?? undefined,
21
- accountNumber: res?.account_number ?? undefined,
22
- institutionShortname: res?.institution_shortname,
23
- languageCode: getServiceConnectUserLanguageCode(res),
24
- preferredLanguage: getServiceConnectUserLanguage(res),
25
- };
26
- },
27
- });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItcHJvZmlsZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtdXNlci1wcm9maWxlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFpQm5FOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRywyQkFBMkIsQ0FBbUM7SUFDM0csUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3JCLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU87WUFDckIsYUFBYSxFQUFFLEdBQUcsRUFBRSxjQUFjO1lBQ2xDLGVBQWUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCO1lBQ3RDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsSUFBSSxTQUFTO1lBQ3RELGdCQUFnQixFQUFFLEdBQUcsRUFBRSxrQkFBa0IsSUFBSSxTQUFTO1lBQ3RELGFBQWEsRUFBRSxHQUFHLEVBQUUsY0FBYyxJQUFJLFNBQVM7WUFDL0Msb0JBQW9CLEVBQUUsR0FBRyxFQUFFLHFCQUFxQjtZQUNoRCxZQUFZLEVBQUUsaUNBQWlDLENBQUMsR0FBRyxDQUFDO1lBQ3BELGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQztTQUN0RCxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZSwgZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi9zZXJ2aWNlLWNvbm5lY3QtdXNlci1sYW5ndWFnZS5wbHVnaW4nO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBjb3VudHJ5Pzogc3RyaW5nO1xuICAgICAgaW5zdGl0dXRpb25JZD86IG51bWJlcjtcbiAgICAgIGluc3RpdHV0aW9uTmFtZT86IHN0cmluZztcbiAgICAgIGluc3RpdHV0aW9uTmFtZTI/OiBzdHJpbmc7XG4gICAgICBpbnN0aXR1dGlvbk5hbWUzPzogc3RyaW5nO1xuICAgICAgaW5zdGl0dXRpb25TaG9ydG5hbWU/OiBzdHJpbmc7XG4gICAgICBhY2NvdW50TnVtYmVyPzogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyB0aGUgdXNlcidzIHByb2ZpbGUgZnJvbSBzZXJ2aWNlIGNvbm5lY3QuXG4gKlxuICogVGhpcyBwbHVnaW4gdXNlcyB0aGUgYHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeWAgdG8gY3JlYXRlIGEgcGx1Z2luIHRoYXQgZmV0Y2hlcyB0aGUgdXNlcidzIHByb2ZpbGVcbiAqIGZyb20gdGhlIHVzZXIgZW5kcG9pbnQgYW5kIHBhcnNlcyB0aGUgcmVzcG9uc2UgdG8gZXh0cmFjdCB0aGUgdXNlcidzIHByb2ZpbGUgaW5mb3JtYXRpb24uXG4gKlxuICogQHNlZSB7c2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5fVxuICovXG5leHBvcnQgY29uc3Qgc2VydmljZUNvbm5lY3RVc2VyUHJvZmlsZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvdW50cnk6IHJlcz8uY291bnRyeSxcbiAgICAgIGluc3RpdHV0aW9uSWQ6IHJlcz8uaW5zdGl0dXRpb25faWQsXG4gICAgICBpbnN0aXR1dGlvbk5hbWU6IHJlcz8uaW5zdGl0dXRpb25fbmFtZSxcbiAgICAgIGluc3RpdHV0aW9uTmFtZTI6IHJlcz8uaW5zdGl0dXRpb25fbmFtZV8yID8/IHVuZGVmaW5lZCxcbiAgICAgIGluc3RpdHV0aW9uTmFtZTM6IHJlcz8uaW5zdGl0dXRpb25fbmFtZV8zID8/IHVuZGVmaW5lZCxcbiAgICAgIGFjY291bnROdW1iZXI6IHJlcz8uYWNjb3VudF9udW1iZXIgPz8gdW5kZWZpbmVkLFxuICAgICAgaW5zdGl0dXRpb25TaG9ydG5hbWU6IHJlcz8uaW5zdGl0dXRpb25fc2hvcnRuYW1lLFxuICAgICAgbGFuZ3VhZ2VDb2RlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZUNvZGUocmVzKSxcbiAgICAgIHByZWZlcnJlZExhbmd1YWdlOiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZShyZXMpLFxuICAgIH07XG4gIH0sXG59KTtcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { AuthEnvironment } from '@odx/auth';
2
- export const ServiceConnectEnvironments = {
3
- [AuthEnvironment.DEV]: 'https://api.test.connect.draeger.com',
4
- [AuthEnvironment.STAGE]: 'https://api.staging.connect.draeger.com',
5
- [AuthEnvironment.PROD]: 'https://api.connect.draeger.com',
6
- };
7
- export const ServiceConnectScopes = {
8
- BASE: 'dcid',
9
- PROFILE: 'dcid.profile',
10
- RIGHTS: 'dcid.rights',
11
- INSTITUTION: 'dcid.institution',
12
- };
13
- export const ServiceConnectEndpoints = {
14
- user: '/users/me',
15
- userRights: '/users/me/rights',
16
- };
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBb0M7SUFDekUsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsc0NBQXNDO0lBQzdELENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLHlDQUF5QztJQUNsRSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxpQ0FBaUM7Q0FDMUQsQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLGNBQWM7SUFDdkIsTUFBTSxFQUFFLGFBQWE7SUFDckIsV0FBVyxFQUFFLGtCQUFrQjtDQUNoQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsSUFBSSxFQUFFLFdBQVc7SUFDakIsVUFBVSxFQUFFLGtCQUFrQjtDQUMvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcblxuZXhwb3J0IHR5cGUgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCA9IHsgY3VzdG9tOiBzdHJpbmcgfTtcbmV4cG9ydCBjb25zdCBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50czogUmVjb3JkPEF1dGhFbnZpcm9ubWVudCwgc3RyaW5nPiA9IHtcbiAgW0F1dGhFbnZpcm9ubWVudC5ERVZdOiAnaHR0cHM6Ly9hcGkudGVzdC5jb25uZWN0LmRyYWVnZXIuY29tJyxcbiAgW0F1dGhFbnZpcm9ubWVudC5TVEFHRV06ICdodHRwczovL2FwaS5zdGFnaW5nLmNvbm5lY3QuZHJhZWdlci5jb20nLFxuICBbQXV0aEVudmlyb25tZW50LlBST0RdOiAnaHR0cHM6Ly9hcGkuY29ubmVjdC5kcmFlZ2VyLmNvbScsXG59O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25uZWN0U2NvcGVzID0ge1xuICBCQVNFOiAnZGNpZCcsXG4gIFBST0ZJTEU6ICdkY2lkLnByb2ZpbGUnLFxuICBSSUdIVFM6ICdkY2lkLnJpZ2h0cycsXG4gIElOU1RJVFVUSU9OOiAnZGNpZC5pbnN0aXR1dGlvbicsXG59O1xuZXhwb3J0IGNvbnN0IFNlcnZpY2VDb25uZWN0RW5kcG9pbnRzID0ge1xuICB1c2VyOiAnL3VzZXJzL21lJyxcbiAgdXNlclJpZ2h0czogJy91c2Vycy9tZS9yaWdodHMnLFxufTtcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWF1dGgtcGx1Z2lucy1zZXJ2aWNlLWNvbm5lY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL29keC1hdXRoLXBsdWdpbnMtc2VydmljZS1jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,20 +0,0 @@
1
- import { DropdownOptions } from '@odx/angular/components/dropdown';
2
- import { AuthService } from './auth.service';
3
- import * as i0 from "@angular/core";
4
- export declare class AuthComponent {
5
- protected readonly authConfig: import("./auth.config").AuthConfig;
6
- protected readonly authService: AuthService;
7
- protected readonly dropdownOptions: Partial<DropdownOptions>;
8
- protected readonly vm$: import("rxjs").Observable<{
9
- idClaims: OdxAuth.IdentityClaims | null;
10
- isAuthenticated: boolean;
11
- }>;
12
- /**
13
- * Whether to hide the institution information.
14
- *
15
- * @type {InputSignal<boolean>}
16
- */
17
- readonly hideInstitution: import("@angular/core").InputSignal<boolean>;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<AuthComponent, "odx-auth", never, { "hideInstitution": { "alias": "hideInstitution"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
20
- }
@@ -1,84 +0,0 @@
1
- import { DynamicTextContent } from '@odx/angular/cdk/dynamic-view';
2
- import { OAuthErrorEvent, OAuthStorage } from 'angular-oauth2-oidc';
3
- import { AuthEnvironment, AuthorizedHandler, AuthPluginFactory } from './models';
4
- export declare const AUTH_HTTP_HEADER = "Authorization";
5
- export declare const ODX_AUTH_DEFAULT_SCOPES: string[];
6
- export declare const ODX_AUTH_HOSTS: Record<AuthEnvironment, string>;
7
- export declare const ODX_AUTH_USER_PROFILE_HOSTS: Record<AuthEnvironment, string>;
8
- export type AuthErrorHandlerFn = (error: OAuthErrorEvent) => void;
9
- export type ResolveUsernameFn = (rawClaims: OdxAuth.RawIdentityClaims) => string;
10
- export type ResolveEmailFn = (rawClaims: OdxAuth.RawIdentityClaims) => string;
11
- export type CreateInitialsFn = (value: string) => string;
12
- /**
13
- * Configuration options for the authentication module.
14
- *
15
- * @interface AuthConfig
16
- */
17
- export interface AuthConfig {
18
- environment: AuthEnvironment;
19
- clientId?: string;
20
- issuer?: string;
21
- redirectPath: string;
22
- allowedUrls: Array<string | RegExp>;
23
- timeoutFactor: number;
24
- maxOfflineTime: number;
25
- loadUserProfile: boolean;
26
- postLogoutRedirectUrl?: string;
27
- scopes?: string[];
28
- discoveryUrl?: string;
29
- errorHandler: AuthErrorHandlerFn;
30
- createInitials: CreateInitialsFn;
31
- resolveEmail: ResolveEmailFn;
32
- resolveUsername: ResolveUsernameFn;
33
- storage?: OAuthStorage;
34
- plugins: AuthPluginFactory[];
35
- pluginsErrorHandler?: (error: unknown) => void;
36
- defaultAuthorizedHandler?: AuthorizedHandler | null;
37
- enableLoadingScreen: boolean;
38
- refreshTokenOnInit?: boolean;
39
- loadingScreenMessage?: DynamicTextContent | null;
40
- userProfileUrl?: string;
41
- requireSignIn?: boolean;
42
- requireSignInForRequests?: boolean;
43
- waitForTokenInMs?: number;
44
- showDebugInformation?: boolean;
45
- pluginTimeout?: number;
46
- }
47
- /**
48
- * Tools for injecting and providing the auth configuration with default configuration for the authentication.
49
- *
50
- * @example
51
- * // Providing custom authentication configuration.
52
- * ```ts
53
- * import { createInitials, resolveEmail, resolveUsername } from './helpers';
54
- *
55
- * providers: [provideAuthConfig({
56
- * environment: 'dev',
57
- * redirectPath: 'login/callback',
58
- * allowedUrls: [],
59
- * timeoutFactor: 0.75,
60
- * maxOfflineTime: 60 * 60, // 1 hour
61
- * loadUserProfile: false,
62
- * errorHandler: (error) => {
63
- * throw error;
64
- * },
65
- * createInitials,
66
- * resolveEmail,
67
- * resolveUsername,
68
- * plugins: [],
69
- * defaultAuthorizedHandler: null,
70
- * enableLoadingScreen: true,
71
- * loadingScreenMessage: 'Loading...',
72
- * waitForTokenInMs: 500,
73
- *
74
- * })],
75
- *
76
- * // Injecting the datepicker configuration.
77
- * ```ts
78
- * @Component({})
79
- * export class MyComponent {
80
- * constructor(@Inject(injectAuthConfig()) private readonly authConfig: AuthConfig) {}
81
- * }
82
- * ```
83
- */
84
- export declare const AuthDefaultConfig: AuthConfig, AuthConfig: import("@angular/core").InjectionToken<Partial<AuthConfig>>, injectAuthConfig: () => AuthConfig, provideAuthConfig: <D extends import("@odx/angular/utils").ConfigDependencies = import("@odx/angular/utils").ConfigDependencies<Partial<AuthConfig>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<AuthConfig>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
@@ -1,25 +0,0 @@
1
- import { NgIfContext } from '@angular/common';
2
- import { AfterViewInit, TemplateRef } from '@angular/core';
3
- import { AuthorizedHandler } from './models';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- export declare class AuthDirective implements AfterViewInit {
7
- private readonly authService;
8
- private readonly ngIfDirective;
9
- private readonly takeUntilDestroyed;
10
- /**
11
- * The authorization handler or a string representing the handler.
12
- *
13
- * @type {AuthorizedHandler | null | string}
14
- */
15
- authorizationHandler?: AuthorizedHandler | null | string;
16
- /**
17
- * Sets the template to be displayed when the authorization check fails.
18
- *
19
- * @param {TemplateRef<NgIfContext<unknown>>} value - The template reference.
20
- */
21
- set elseTemplate(value: TemplateRef<NgIfContext<unknown>>);
22
- ngAfterViewInit(): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<AuthDirective, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<AuthDirective, "ng-template[odxAuth]", never, { "authorizationHandler": { "alias": "odxAuth"; "required": false; }; "elseTemplate": { "alias": "odxAuthElse"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.NgIf; inputs: {}; outputs: {}; }]>;
25
- }
@@ -1,11 +0,0 @@
1
- import { CanActivateFn } from '@angular/router';
2
- import { AuthorizedHandler } from './models';
3
- /**
4
- * Guard function to protect routes from unauthorized access.
5
- *
6
- * @param {AuthorizedHandler} [authorizedHandler] - Optional handler to check if the user is authorized.
7
- * @param {string | any[]} [redirectTo] - Optional URL or route to redirect unauthorized users to. Can be a string or an array of strings.
8
- * @param {boolean} [isExternal=false] - Optional flag to indicate if the redirection should be external. Defaults to false.
9
- * @returns {CanActivateFn} A function that implements the CanActivateFn interface.
10
- */
11
- export declare function authGuard(authorizedHandler?: AuthorizedHandler, redirectTo?: any[] | string, isExternal?: boolean): CanActivateFn;