@odx/auth 15.0.0 → 15.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 (72) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/esm2022/lib/auth.component.mjs +6 -1
  3. package/esm2022/lib/auth.config.mjs +38 -1
  4. package/esm2022/lib/auth.directive.mjs +11 -1
  5. package/esm2022/lib/auth.guard.mjs +9 -1
  6. package/esm2022/lib/auth.interceptor.mjs +8 -1
  7. package/esm2022/lib/auth.providers.mjs +35 -1
  8. package/esm2022/lib/auth.service.mjs +159 -1
  9. package/esm2022/lib/components/auth-actions/auth-actions.component.mjs +10 -1
  10. package/esm2022/lib/components/auth-loading-screen/auth-loading-screen.component.mjs +15 -3
  11. package/esm2022/lib/directives/auth-action.directive.mjs +7 -1
  12. package/esm2022/lib/directives/sign-in.directive.mjs +20 -1
  13. package/esm2022/lib/directives/sign-out.directive.mjs +20 -1
  14. package/esm2022/lib/helpers/create-auth-host-url.mjs +13 -1
  15. package/esm2022/lib/helpers/create-inititals.mjs +18 -1
  16. package/esm2022/lib/helpers/handle-auth-error.mjs +13 -3
  17. package/esm2022/lib/helpers/handle-oauth-event.mjs +9 -1
  18. package/esm2022/lib/helpers/resolve-email.mjs +21 -1
  19. package/esm2022/lib/helpers/resolve-username.mjs +22 -1
  20. package/esm2022/lib/helpers/set-http-auth-header.mjs +10 -1
  21. package/esm2022/lib/helpers/user-language-loader.mjs +8 -1
  22. package/esm2022/lib/plugins/core-debug.plugin.mjs +10 -1
  23. package/esm2022/lib/plugins/core-identity.plugin.mjs +8 -1
  24. package/esm2022/lib/plugins/user-profile-link.plugin.mjs +10 -1
  25. package/esm2022/lib/unauth.guard.mjs +9 -1
  26. package/esm2022/plugins/service-connect/lib/helpers/build-service-connect-url.mjs +8 -1
  27. package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.mjs +8 -1
  28. package/esm2022/plugins/service-connect/lib/helpers/has-roles-or-rights.mjs +8 -1
  29. package/esm2022/plugins/service-connect/lib/helpers/service-connect-plugin-factory.mjs +7 -1
  30. package/esm2022/plugins/service-connect/lib/service-connect-rights.directive.mjs +13 -1
  31. package/esm2022/plugins/service-connect/lib/service-connect-rights.guard.mjs +9 -1
  32. package/esm2022/plugins/service-connect/lib/service-connect-rights.plugin.mjs +9 -1
  33. package/esm2022/plugins/service-connect/lib/service-connect-user-language.plugin.mjs +15 -1
  34. package/esm2022/plugins/service-connect/lib/service-connect-user-profile.plugin.mjs +9 -1
  35. package/fesm2022/odx-auth-plugins-service-connect.mjs +77 -0
  36. package/fesm2022/odx-auth-plugins-service-connect.mjs.map +1 -1
  37. package/fesm2022/odx-auth.mjs +466 -5
  38. package/fesm2022/odx-auth.mjs.map +1 -1
  39. package/lib/auth.component.d.ts +5 -0
  40. package/lib/auth.config.d.ts +42 -0
  41. package/lib/auth.directive.d.ts +10 -0
  42. package/lib/auth.guard.d.ts +8 -0
  43. package/lib/auth.interceptor.d.ts +7 -0
  44. package/lib/auth.providers.d.ts +34 -0
  45. package/lib/auth.service.d.ts +156 -0
  46. package/lib/components/auth-actions/auth-actions.component.d.ts +9 -0
  47. package/lib/components/auth-loading-screen/auth-loading-screen.component.d.ts +13 -0
  48. package/lib/directives/auth-action.directive.d.ts +6 -0
  49. package/lib/directives/sign-in.directive.d.ts +19 -0
  50. package/lib/directives/sign-out.directive.d.ts +19 -0
  51. package/lib/helpers/create-auth-host-url.d.ts +12 -0
  52. package/lib/helpers/create-inititals.d.ts +17 -0
  53. package/lib/helpers/handle-auth-error.d.ts +10 -0
  54. package/lib/helpers/handle-oauth-event.d.ts +8 -0
  55. package/lib/helpers/resolve-email.d.ts +20 -0
  56. package/lib/helpers/resolve-username.d.ts +21 -0
  57. package/lib/helpers/set-http-auth-header.d.ts +9 -0
  58. package/lib/helpers/user-language-loader.d.ts +7 -0
  59. package/lib/plugins/core-debug.plugin.d.ts +9 -0
  60. package/lib/plugins/core-identity.plugin.d.ts +7 -0
  61. package/lib/plugins/user-profile-link.plugin.d.ts +9 -0
  62. package/lib/unauth.guard.d.ts +8 -0
  63. package/package.json +1 -1
  64. package/plugins/service-connect/lib/helpers/build-service-connect-url.d.ts +7 -0
  65. package/plugins/service-connect/lib/helpers/has-roles-or-rights-handler.d.ts +7 -0
  66. package/plugins/service-connect/lib/helpers/has-roles-or-rights.d.ts +7 -0
  67. package/plugins/service-connect/lib/helpers/service-connect-plugin-factory.d.ts +6 -0
  68. package/plugins/service-connect/lib/service-connect-rights.directive.d.ts +12 -0
  69. package/plugins/service-connect/lib/service-connect-rights.guard.d.ts +8 -0
  70. package/plugins/service-connect/lib/service-connect-rights.plugin.d.ts +8 -0
  71. package/plugins/service-connect/lib/service-connect-user-language.plugin.d.ts +14 -0
  72. package/plugins/service-connect/lib/service-connect-user-profile.plugin.d.ts +8 -0
@@ -1,3 +1,20 @@
1
+ /**
2
+ * Creates initials from a given string.
3
+ *
4
+ * This function takes a string input, removes any text within parentheses,
5
+ * trims any leading or trailing whitespace, and then splits the string into
6
+ * parts based on spaces. It then constructs initials using the first letter
7
+ * of the first and last parts of the string, converting them to uppercase.
8
+ *
9
+ * @param {string | null} value - The input string from which to create initials. It can be
10
+ * undefined or null, in which case an empty string is returned.
11
+ * @returns {string} - A string containing the initials derived from the input string.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * createInitials('John Smith'); // returns 'JS'
16
+ * ```
17
+ */
1
18
  export function createInitials(value) {
2
19
  if (!value)
3
20
  return '';
@@ -12,4 +29,4 @@ export function createInitials(value) {
12
29
  return initials;
13
30
  }, '');
14
31
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWluaXRpdGFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvY3JlYXRlLWluaXRpdGFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQXFCO0lBQ2xELElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdEIsTUFBTSxLQUFLLEdBQUcsS0FBSztTQUNoQixPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztTQUN6QixJQUFJLEVBQUU7U0FDTixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFZCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzVDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluaXRpYWxzKHZhbHVlPzogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB7XG4gIGlmICghdmFsdWUpIHJldHVybiAnJztcbiAgY29uc3QgcGFydHMgPSB2YWx1ZVxuICAgIC5yZXBsYWNlKC9cXChbXigpXSpcXCkvLCAnJylcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KCcgJyk7XG5cbiAgcmV0dXJuIHBhcnRzLnJlZHVjZSgoaW5pdGlhbHMsIGN1cnIsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSAwIHx8IGluZGV4ID09PSBwYXJ0cy5sZW5ndGggLSAxKSB7XG4gICAgICBpbml0aWFscyArPSBjdXJyWzBdLnRvVXBwZXJDYXNlKCk7XG4gICAgfVxuICAgIHJldHVybiBpbml0aWFscztcbiAgfSwgJycpO1xufVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWluaXRpdGFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvY3JlYXRlLWluaXRpdGFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBcUI7SUFDbEQsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyxLQUFLO1NBQ2hCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1NBQ3pCLElBQUksRUFBRTtTQUNOLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDNUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssS0FBSyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgaW5pdGlhbHMgZnJvbSBhIGdpdmVuIHN0cmluZy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGEgc3RyaW5nIGlucHV0LCByZW1vdmVzIGFueSB0ZXh0IHdpdGhpbiBwYXJlbnRoZXNlcyxcbiAqIHRyaW1zIGFueSBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UsIGFuZCB0aGVuIHNwbGl0cyB0aGUgc3RyaW5nIGludG9cbiAqIHBhcnRzIGJhc2VkIG9uIHNwYWNlcy4gSXQgdGhlbiBjb25zdHJ1Y3RzIGluaXRpYWxzIHVzaW5nIHRoZSBmaXJzdCBsZXR0ZXJcbiAqIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBwYXJ0cyBvZiB0aGUgc3RyaW5nLCBjb252ZXJ0aW5nIHRoZW0gdG8gdXBwZXJjYXNlLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gdmFsdWUgLSBUaGUgaW5wdXQgc3RyaW5nIGZyb20gd2hpY2ggdG8gY3JlYXRlIGluaXRpYWxzLiBJdCBjYW4gYmVcbiAqICAgICAgICAgICAgICAgIHVuZGVmaW5lZCBvciBudWxsLCBpbiB3aGljaCBjYXNlIGFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gQSBzdHJpbmcgY29udGFpbmluZyB0aGUgaW5pdGlhbHMgZGVyaXZlZCBmcm9tIHRoZSBpbnB1dCBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjcmVhdGVJbml0aWFscygnSm9obiBTbWl0aCcpOyAvLyByZXR1cm5zICdKUydcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5pdGlhbHModmFsdWU/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICBjb25zdCBwYXJ0cyA9IHZhbHVlXG4gICAgLnJlcGxhY2UoL1xcKFteKCldKlxcKS8sICcnKVxuICAgIC50cmltKClcbiAgICAuc3BsaXQoJyAnKTtcblxuICByZXR1cm4gcGFydHMucmVkdWNlKChpbml0aWFscywgY3VyciwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IDAgfHwgaW5kZXggPT09IHBhcnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgIGluaXRpYWxzICs9IGN1cnJbMF0udG9VcHBlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxzO1xuICB9LCAnJyk7XG59XG4iXX0=
@@ -1,9 +1,19 @@
1
- import { EnvironmentInjector, inject } from '@angular/core';
1
+ import { EnvironmentInjector, inject, runInInjectionContext } from '@angular/core';
2
2
  import { OAuthErrorEvent } from 'angular-oauth2-oidc';
3
+ /**
4
+ * Handles authentication errors by executing a series of error handler functions.
5
+ *
6
+ * @param {AuthErrorHandlerFn[]} handlers - An array of functions that handle authentication errors.
7
+ * Each function is expected to take an `OAuthErrorEvent` as an argument.
8
+ *
9
+ * @returns A function that takes an `OAuthErrorEvent` and processes it using the provided handlers.
10
+ * The function will stop processing once a handler successfully handles the error without throwing.
11
+ * If a handler throws an error that is not an instance of `OAuthErrorEvent`, the original error is re-thrown.
12
+ */
3
13
  export function handleAuthError(handlers) {
4
14
  const injector = inject(EnvironmentInjector);
5
15
  return (error) => {
6
- injector.runInContext(() => {
16
+ runInInjectionContext(injector, () => {
7
17
  for (const handler of handlers) {
8
18
  try {
9
19
  handler(error);
@@ -18,4 +28,4 @@ export function handleAuthError(handlers) {
18
28
  });
19
29
  };
20
30
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWF1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2hhbmRsZS1hdXRoLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3RELE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBOEI7SUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDekIsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDO29CQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDZixNQUFNO2dCQUNSLENBQUM7Z0JBQUMsT0FBTyxjQUFjLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLENBQUMsY0FBYyxZQUFZLGVBQWUsQ0FBQzt3QkFBRSxNQUFNLEtBQUssQ0FBQztvQkFDOUQsU0FBUztnQkFDWCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhFcnJvckV2ZW50IH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XG5pbXBvcnQgeyBBdXRoRXJyb3JIYW5kbGVyRm4gfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVBdXRoRXJyb3IoaGFuZGxlcnM6IEF1dGhFcnJvckhhbmRsZXJGbltdKTogKGVycm9yOiBPQXV0aEVycm9yRXZlbnQpID0+IHZvaWQge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKTtcblxuICByZXR1cm4gKGVycm9yKSA9PiB7XG4gICAgaW5qZWN0b3IucnVuSW5Db250ZXh0KCgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBoYW5kbGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoICh1bmhhbmRsZWRFcnJvcikge1xuICAgICAgICAgIGlmICghKHVuaGFuZGxlZEVycm9yIGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSkgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWF1dGgtZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL2hhbmRsZS1hdXRoLWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR3REOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBOEI7SUFDNUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YscUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUNuQyxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUM7b0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNmLE1BQU07Z0JBQ1IsQ0FBQztnQkFBQyxPQUFPLGNBQWMsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsQ0FBQyxjQUFjLFlBQVksZUFBZSxDQUFDO3dCQUFFLE1BQU0sS0FBSyxDQUFDO29CQUM5RCxTQUFTO2dCQUNYLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRJbmplY3RvciwgaW5qZWN0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgQXV0aEVycm9ySGFuZGxlckZuIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuXG4vKipcbiAqIEhhbmRsZXMgYXV0aGVudGljYXRpb24gZXJyb3JzIGJ5IGV4ZWN1dGluZyBhIHNlcmllcyBvZiBlcnJvciBoYW5kbGVyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge0F1dGhFcnJvckhhbmRsZXJGbltdfSBoYW5kbGVycyAtIEFuIGFycmF5IG9mIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZSBhdXRoZW50aWNhdGlvbiBlcnJvcnMuXG4gKiBFYWNoIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHRha2UgYW4gYE9BdXRoRXJyb3JFdmVudGAgYXMgYW4gYXJndW1lbnQuXG4gKlxuICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGBPQXV0aEVycm9yRXZlbnRgIGFuZCBwcm9jZXNzZXMgaXQgdXNpbmcgdGhlIHByb3ZpZGVkIGhhbmRsZXJzLlxuICogVGhlIGZ1bmN0aW9uIHdpbGwgc3RvcCBwcm9jZXNzaW5nIG9uY2UgYSBoYW5kbGVyIHN1Y2Nlc3NmdWxseSBoYW5kbGVzIHRoZSBlcnJvciB3aXRob3V0IHRocm93aW5nLlxuICogSWYgYSBoYW5kbGVyIHRocm93cyBhbiBlcnJvciB0aGF0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBgT0F1dGhFcnJvckV2ZW50YCwgdGhlIG9yaWdpbmFsIGVycm9yIGlzIHJlLXRocm93bi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUF1dGhFcnJvcihoYW5kbGVyczogQXV0aEVycm9ySGFuZGxlckZuW10pOiAoZXJyb3I6IE9BdXRoRXJyb3JFdmVudCkgPT4gdm9pZCB7XG4gIGNvbnN0IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuXG4gIHJldHVybiAoZXJyb3IpID0+IHtcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiBoYW5kbGVycykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGhhbmRsZXIoZXJyb3IpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoICh1bmhhbmRsZWRFcnJvcikge1xuICAgICAgICAgIGlmICghKHVuaGFuZGxlZEVycm9yIGluc3RhbmNlb2YgT0F1dGhFcnJvckV2ZW50KSkgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,5 +1,13 @@
1
1
  import { filter, switchMap } from 'rxjs';
2
+ /**
3
+ * Handles OAuth events of a specific type by applying a provided handler function.
4
+ *
5
+ * @template {T} - The type of OAuth event.
6
+ * @param {T['type']} type - The type of the OAuth event to handle.
7
+ * @param {(event: T) => Promise<void>} handler - A function that takes an event of type T and returns a Promise that resolves to void.
8
+ * @returns {OperatorFunction<T, void>} - An OperatorFunction that filters events of the specified type and applies the handler function.
9
+ */
2
10
  export function handleOAuthEvent(type, handler) {
3
11
  return (source$) => source$.pipe(filter((event) => event.type === type), switchMap((event) => handler(event)));
4
12
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLW9hdXRoLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvaGVscGVycy9oYW5kbGUtb2F1dGgtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBZ0MsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBdUIsSUFBZSxFQUFFLE9BQW9DO0lBQzFHLE9BQU8sQ0FBQyxPQUFzQixFQUFFLEVBQUUsQ0FDaEMsT0FBTyxDQUFDLElBQUksQ0FDVixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ3RDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3JDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT0F1dGhFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xuaW1wb3J0IHsgZmlsdGVyLCBPYnNlcnZhYmxlLCBPcGVyYXRvckZ1bmN0aW9uLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU9BdXRoRXZlbnQ8VCBleHRlbmRzIE9BdXRoRXZlbnQ+KHR5cGU6IFRbJ3R5cGUnXSwgaGFuZGxlcjogKGV2ZW50OiBUKSA9PiBQcm9taXNlPHZvaWQ+KTogT3BlcmF0b3JGdW5jdGlvbjxULCB2b2lkPiB7XG4gIHJldHVybiAoc291cmNlJDogT2JzZXJ2YWJsZTxUPikgPT5cbiAgICBzb3VyY2UkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC50eXBlID09PSB0eXBlKSxcbiAgICAgIHN3aXRjaE1hcCgoZXZlbnQpID0+IGhhbmRsZXIoZXZlbnQpKSxcbiAgICApO1xufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLW9hdXRoLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvaGVscGVycy9oYW5kbGUtb2F1dGgtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBZ0MsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQXVCLElBQWUsRUFBRSxPQUFvQztJQUMxRyxPQUFPLENBQUMsT0FBc0IsRUFBRSxFQUFFLENBQ2hDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUN0QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNyQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9BdXRoRXZlbnQgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcbmltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgT3BlcmF0b3JGdW5jdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogSGFuZGxlcyBPQXV0aCBldmVudHMgb2YgYSBzcGVjaWZpYyB0eXBlIGJ5IGFwcGx5aW5nIGEgcHJvdmlkZWQgaGFuZGxlciBmdW5jdGlvbi5cbiAqXG4gKiBAdGVtcGxhdGUge1R9IC0gVGhlIHR5cGUgb2YgT0F1dGggZXZlbnQuXG4gKiBAcGFyYW0ge1RbJ3R5cGUnXX0gdHlwZSAtIFRoZSB0eXBlIG9mIHRoZSBPQXV0aCBldmVudCB0byBoYW5kbGUuXG4gKiBAcGFyYW0geyhldmVudDogVCkgPT4gUHJvbWlzZTx2b2lkPn0gaGFuZGxlciAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBldmVudCBvZiB0eXBlIFQgYW5kIHJldHVybnMgYSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdm9pZC5cbiAqIEByZXR1cm5zIHtPcGVyYXRvckZ1bmN0aW9uPFQsIHZvaWQ+fSAtIEFuIE9wZXJhdG9yRnVuY3Rpb24gdGhhdCBmaWx0ZXJzIGV2ZW50cyBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIGFwcGxpZXMgdGhlIGhhbmRsZXIgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVPQXV0aEV2ZW50PFQgZXh0ZW5kcyBPQXV0aEV2ZW50Pih0eXBlOiBUWyd0eXBlJ10sIGhhbmRsZXI6IChldmVudDogVCkgPT4gUHJvbWlzZTx2b2lkPik6IE9wZXJhdG9yRnVuY3Rpb248VCwgdm9pZD4ge1xuICByZXR1cm4gKHNvdXJjZSQ6IE9ic2VydmFibGU8VD4pID0+XG4gICAgc291cmNlJC5waXBlKFxuICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQudHlwZSA9PT0gdHlwZSksXG4gICAgICBzd2l0Y2hNYXAoKGV2ZW50KSA9PiBoYW5kbGVyKGV2ZW50KSksXG4gICAgKTtcbn1cbiJdfQ==
@@ -1,4 +1,24 @@
1
1
  import { isString } from '@odx/angular/utils';
2
+ /**
3
+ * Resolves the email address from the given identity claims.
4
+ *
5
+ * This function attempts to extract an email address from the provided
6
+ * `OdxAuth.RawIdentityClaims` object by checking the following properties
7
+ * in order:
8
+ * 1. `email` - if it is a string, it is returned.
9
+ * 2. `email_address` - if it is a string, it is returned.
10
+ * 3. `emails` - if it is an array and the first element is a string, the first element is returned.
11
+ *
12
+ * If none of these properties contain a valid string email address, an empty string is returned.
13
+ *
14
+ * @param {OdxAuth.RawIdentityClaims} claims - The identity claims object from which to resolve the email address.
15
+ * @returns {string} - The resolved email address as a string, or an empty string if no valid email address is found.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * resolveEmail({ email_address: 'email.address@mdn.com' }) // returns 'email.address@mdn.com';
20
+ * ```
21
+ */
2
22
  export function resolveEmail(claims) {
3
23
  if (isString(claims['email'])) {
4
24
  return claims['email'];
@@ -11,4 +31,4 @@ export function resolveEmail(claims) {
11
31
  }
12
32
  return '';
13
33
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS1lbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFpQztJQUM1RCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbWFpbChjbGFpbXM6IE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXMpOiBzdHJpbmcge1xuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydlbWFpbCddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsJ107XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZW1haWxfYWRkcmVzcyddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsX2FkZHJlc3MnXTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShjbGFpbXNbJ2VtYWlscyddKSAmJiBpc1N0cmluZyhjbGFpbXNbJ2VtYWlscyddWzBdKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlscyddWzBdO1xuICB9XG4gIHJldHVybiAnJztcbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1lbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS1lbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWlDO0lBQzVELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBlbWFpbCBhZGRyZXNzIGZyb20gdGhlIGdpdmVuIGlkZW50aXR5IGNsYWltcy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGF0dGVtcHRzIHRvIGV4dHJhY3QgYW4gZW1haWwgYWRkcmVzcyBmcm9tIHRoZSBwcm92aWRlZFxuICogYE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXNgIG9iamVjdCBieSBjaGVja2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXNcbiAqIGluIG9yZGVyOlxuICogMS4gYGVtYWlsYCAtIGlmIGl0IGlzIGEgc3RyaW5nLCBpdCBpcyByZXR1cm5lZC5cbiAqIDIuIGBlbWFpbF9hZGRyZXNzYCAtIGlmIGl0IGlzIGEgc3RyaW5nLCBpdCBpcyByZXR1cm5lZC5cbiAqIDMuIGBlbWFpbHNgIC0gaWYgaXQgaXMgYW4gYXJyYXkgYW5kIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgc3RyaW5nLCB0aGUgZmlyc3QgZWxlbWVudCBpcyByZXR1cm5lZC5cbiAqXG4gKiBJZiBub25lIG9mIHRoZXNlIHByb3BlcnRpZXMgY29udGFpbiBhIHZhbGlkIHN0cmluZyBlbWFpbCBhZGRyZXNzLCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHtPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zfSBjbGFpbXMgLSBUaGUgaWRlbnRpdHkgY2xhaW1zIG9iamVjdCBmcm9tIHdoaWNoIHRvIHJlc29sdmUgdGhlIGVtYWlsIGFkZHJlc3MuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSByZXNvbHZlZCBlbWFpbCBhZGRyZXNzIGFzIGEgc3RyaW5nLCBvciBhbiBlbXB0eSBzdHJpbmcgaWYgbm8gdmFsaWQgZW1haWwgYWRkcmVzcyBpcyBmb3VuZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIHJlc29sdmVFbWFpbCh7IGVtYWlsX2FkZHJlc3M6ICdlbWFpbC5hZGRyZXNzQG1kbi5jb20nIH0pIC8vIHJldHVybnMgJ2VtYWlsLmFkZHJlc3NAbWRuLmNvbSc7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVFbWFpbChjbGFpbXM6IE9keEF1dGguUmF3SWRlbnRpdHlDbGFpbXMpOiBzdHJpbmcge1xuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydlbWFpbCddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsJ107XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZW1haWxfYWRkcmVzcyddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlsX2FkZHJlc3MnXTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShjbGFpbXNbJ2VtYWlscyddKSAmJiBpc1N0cmluZyhjbGFpbXNbJ2VtYWlscyddWzBdKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2VtYWlscyddWzBdO1xuICB9XG4gIHJldHVybiAnJztcbn1cbiJdfQ==
@@ -1,4 +1,25 @@
1
1
  import { isString } from '@odx/angular/utils';
2
+ /**
3
+ * Resolves the username from the provided identity claims.
4
+ *
5
+ * The function attempts to construct a username from the claims in the following order:
6
+ * 1. If both 'firstname' and 'lastname' are strings, it returns them concatenated with a space.
7
+ * 2. If both 'given_name' and 'family_name' are strings, it returns them concatenated with a space.
8
+ * 3. If 'name' is a string, it returns the 'name'.
9
+ * 4. If 'displayname' is a string, it returns the 'displayname'.
10
+ * 5. If none of the above conditions are met, it returns an empty string.
11
+ *
12
+ * @param {OdxAuth.RawIdentityClaims} claims - The raw identity claims from which to resolve the username.
13
+ * @returns {string} - The resolved username as a string.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * resolveUsername({ firstname: 'John', lastname: 'Doe' }) // returns 'John Doe';
18
+ * resolveUsername({ given_name: 'John', family_name: 'Doe' }) // returns 'John Doe';
19
+ * resolveUsername({ name: 'John Doe' }) // returns 'John Doe';
20
+ * resolveUsername({ displayname: 'John Doe' }) // returns 'John Doe';
21
+ * ```
22
+ */
2
23
  export function resolveUsername(claims) {
3
24
  if (isString(claims['firstname']) && isString(claims['lastname'])) {
4
25
  return `${claims['firstname']} ${claims['lastname']}`;
@@ -14,4 +35,4 @@ export function resolveUsername(claims) {
14
35
  }
15
36
  return '';
16
37
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS11c2VybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS11c2VybmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFpQztJQUMvRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlcm5hbWUoY2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKTogc3RyaW5nIHtcbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZmlyc3RuYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snbGFzdG5hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydmaXJzdG5hbWUnXX0gJHtjbGFpbXNbJ2xhc3RuYW1lJ119YDtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydnaXZlbl9uYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snZmFtaWx5X25hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydnaXZlbl9uYW1lJ119ICR7Y2xhaW1zWydmYW1pbHlfbmFtZSddfWA7XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snbmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ25hbWUnXTtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydkaXNwbGF5bmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2Rpc3BsYXluYW1lJ107XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS11c2VybmFtZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9zcmMvbGliL2hlbHBlcnMvcmVzb2x2ZS11c2VybmFtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUFpQztJQUMvRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHVzZXJuYW1lIGZyb20gdGhlIHByb3ZpZGVkIGlkZW50aXR5IGNsYWltcy5cbiAqXG4gKiBUaGUgZnVuY3Rpb24gYXR0ZW1wdHMgdG8gY29uc3RydWN0IGEgdXNlcm5hbWUgZnJvbSB0aGUgY2xhaW1zIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6XG4gKiAxLiBJZiBib3RoICdmaXJzdG5hbWUnIGFuZCAnbGFzdG5hbWUnIGFyZSBzdHJpbmdzLCBpdCByZXR1cm5zIHRoZW0gY29uY2F0ZW5hdGVkIHdpdGggYSBzcGFjZS5cbiAqIDIuIElmIGJvdGggJ2dpdmVuX25hbWUnIGFuZCAnZmFtaWx5X25hbWUnIGFyZSBzdHJpbmdzLCBpdCByZXR1cm5zIHRoZW0gY29uY2F0ZW5hdGVkIHdpdGggYSBzcGFjZS5cbiAqIDMuIElmICduYW1lJyBpcyBhIHN0cmluZywgaXQgcmV0dXJucyB0aGUgJ25hbWUnLlxuICogNC4gSWYgJ2Rpc3BsYXluYW1lJyBpcyBhIHN0cmluZywgaXQgcmV0dXJucyB0aGUgJ2Rpc3BsYXluYW1lJy5cbiAqIDUuIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNvbmRpdGlvbnMgYXJlIG1ldCwgaXQgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zfSBjbGFpbXMgLSBUaGUgcmF3IGlkZW50aXR5IGNsYWltcyBmcm9tIHdoaWNoIHRvIHJlc29sdmUgdGhlIHVzZXJuYW1lLlxuICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgcmVzb2x2ZWQgdXNlcm5hbWUgYXMgYSBzdHJpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiByZXNvbHZlVXNlcm5hbWUoeyBmaXJzdG5hbWU6ICdKb2huJywgbGFzdG5hbWU6ICdEb2UnIH0pIC8vIHJldHVybnMgJ0pvaG4gRG9lJztcbiAqIHJlc29sdmVVc2VybmFtZSh7IGdpdmVuX25hbWU6ICdKb2huJywgZmFtaWx5X25hbWU6ICdEb2UnIH0pIC8vIHJldHVybnMgJ0pvaG4gRG9lJztcbiAqIHJlc29sdmVVc2VybmFtZSh7IG5hbWU6ICdKb2huIERvZScgfSkgLy8gcmV0dXJucyAnSm9obiBEb2UnO1xuICogcmVzb2x2ZVVzZXJuYW1lKHsgZGlzcGxheW5hbWU6ICdKb2huIERvZScgfSkgLy8gcmV0dXJucyAnSm9obiBEb2UnO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlVXNlcm5hbWUoY2xhaW1zOiBPZHhBdXRoLlJhd0lkZW50aXR5Q2xhaW1zKTogc3RyaW5nIHtcbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snZmlyc3RuYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snbGFzdG5hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydmaXJzdG5hbWUnXX0gJHtjbGFpbXNbJ2xhc3RuYW1lJ119YDtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydnaXZlbl9uYW1lJ10pICYmIGlzU3RyaW5nKGNsYWltc1snZmFtaWx5X25hbWUnXSkpIHtcbiAgICByZXR1cm4gYCR7Y2xhaW1zWydnaXZlbl9uYW1lJ119ICR7Y2xhaW1zWydmYW1pbHlfbmFtZSddfWA7XG4gIH1cbiAgaWYgKGlzU3RyaW5nKGNsYWltc1snbmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ25hbWUnXTtcbiAgfVxuICBpZiAoaXNTdHJpbmcoY2xhaW1zWydkaXNwbGF5bmFtZSddKSkge1xuICAgIHJldHVybiBjbGFpbXNbJ2Rpc3BsYXluYW1lJ107XG4gIH1cblxuICByZXR1cm4gJyc7XG59XG4iXX0=
@@ -1,5 +1,14 @@
1
1
  import { HttpRequest } from '@angular/common/http';
2
2
  import { AUTH_HTTP_HEADER } from '../auth.config';
3
+ /**
4
+ * Sets the HTTP Authorization header for a given request.
5
+ *
6
+ * @template R - The type of the request, which extends HttpRequest<T> or Request.
7
+ * @template T - The type of the request body.
8
+ * @param {R} req - The HTTP request to which the Authorization header will be added.
9
+ * @param {string | null} [token] - The token to be used in the Authorization header. If no token is provided, the request is returned unchanged.
10
+ * @returns {R} - The modified HTTP request with the Authorization header set, or the original request if no token is provided.
11
+ */
3
12
  export function setHttpAuthHeader(req, token) {
4
13
  if (!token)
5
14
  return req;
@@ -10,4 +19,4 @@ export function setHttpAuthHeader(req, token) {
10
19
  req.headers.set(AUTH_HTTP_HEADER, header);
11
20
  return req;
12
21
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWh0dHAtYXV0aC1oZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3NldC1odHRwLWF1dGgtaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsaUJBQWlCLENBQXdDLEdBQU0sRUFBRSxLQUFxQjtJQUNwRyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLFVBQVUsS0FBSyxFQUFFLENBQUM7SUFDakMsSUFBSSxHQUFHLFlBQVksV0FBVyxFQUFFLENBQUM7UUFDL0IsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQU0sQ0FBQztJQUNoRixDQUFDO0lBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBVVRIX0hUVFBfSEVBREVSIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0SHR0cEF1dGhIZWFkZXI8UiBleHRlbmRzIEh0dHBSZXF1ZXN0PFQ+IHwgUmVxdWVzdCwgVD4ocmVxOiBSLCB0b2tlbj86IHN0cmluZyB8IG51bGwpOiBSIHtcbiAgaWYgKCF0b2tlbikgcmV0dXJuIHJlcTtcbiAgY29uc3QgaGVhZGVyID0gYEJlYXJlciAke3Rva2VufWA7XG4gIGlmIChyZXEgaW5zdGFuY2VvZiBIdHRwUmVxdWVzdCkge1xuICAgIHJldHVybiByZXEuY2xvbmUoeyBoZWFkZXJzOiByZXEuaGVhZGVycy5zZXQoQVVUSF9IVFRQX0hFQURFUiwgaGVhZGVyKSB9KSBhcyBSO1xuICB9XG4gIHJlcS5oZWFkZXJzLnNldChBVVRIX0hUVFBfSEVBREVSLCBoZWFkZXIpO1xuXG4gIHJldHVybiByZXE7XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWh0dHAtYXV0aC1oZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3NldC1odHRwLWF1dGgtaGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBd0MsR0FBTSxFQUFFLEtBQXFCO0lBQ3BHLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxHQUFHLENBQUM7SUFDdkIsTUFBTSxNQUFNLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEdBQUcsWUFBWSxXQUFXLEVBQUUsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBTSxDQUFDO0lBQ2hGLENBQUM7SUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUUxQyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFVVEhfSFRUUF9IRUFERVIgfSBmcm9tICcuLi9hdXRoLmNvbmZpZyc7XG5cbi8qKlxuICogU2V0cyB0aGUgSFRUUCBBdXRob3JpemF0aW9uIGhlYWRlciBmb3IgYSBnaXZlbiByZXF1ZXN0LlxuICpcbiAqIEB0ZW1wbGF0ZSBSIC0gVGhlIHR5cGUgb2YgdGhlIHJlcXVlc3QsIHdoaWNoIGV4dGVuZHMgSHR0cFJlcXVlc3Q8VD4gb3IgUmVxdWVzdC5cbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHJlcXVlc3QgYm9keS5cbiAqIEBwYXJhbSB7Un0gcmVxIC0gVGhlIEhUVFAgcmVxdWVzdCB0byB3aGljaCB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgd2lsbCBiZSBhZGRlZC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVsbH0gW3Rva2VuXSAtIFRoZSB0b2tlbiB0byBiZSB1c2VkIGluIHRoZSBBdXRob3JpemF0aW9uIGhlYWRlci4gSWYgbm8gdG9rZW4gaXMgcHJvdmlkZWQsIHRoZSByZXF1ZXN0IGlzIHJldHVybmVkIHVuY2hhbmdlZC5cbiAqIEByZXR1cm5zIHtSfSAtIFRoZSBtb2RpZmllZCBIVFRQIHJlcXVlc3Qgd2l0aCB0aGUgQXV0aG9yaXphdGlvbiBoZWFkZXIgc2V0LCBvciB0aGUgb3JpZ2luYWwgcmVxdWVzdCBpZiBubyB0b2tlbiBpcyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEh0dHBBdXRoSGVhZGVyPFIgZXh0ZW5kcyBIdHRwUmVxdWVzdDxUPiB8IFJlcXVlc3QsIFQ+KHJlcTogUiwgdG9rZW4/OiBzdHJpbmcgfCBudWxsKTogUiB7XG4gIGlmICghdG9rZW4pIHJldHVybiByZXE7XG4gIGNvbnN0IGhlYWRlciA9IGBCZWFyZXIgJHt0b2tlbn1gO1xuICBpZiAocmVxIGluc3RhbmNlb2YgSHR0cFJlcXVlc3QpIHtcbiAgICByZXR1cm4gcmVxLmNsb25lKHsgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KEFVVEhfSFRUUF9IRUFERVIsIGhlYWRlcikgfSkgYXMgUjtcbiAgfVxuICByZXEuaGVhZGVycy5zZXQoQVVUSF9IVFRQX0hFQURFUiwgaGVhZGVyKTtcblxuICByZXR1cm4gcmVxO1xufVxuIl19
@@ -2,9 +2,16 @@ import { inject } from '@angular/core';
2
2
  import { isNonEmptyString } from '@odx/angular/utils';
3
3
  import { map } from 'rxjs';
4
4
  import { AuthService } from '../auth.service';
5
+ /**
6
+ * A function that creates a language loader function for user authentication.
7
+ *
8
+ * @param {LanguageSelector} languageSelector - A function that takes optional identity claims and returns a language string, null, or undefined.
9
+ * Defaults to a function that returns the preferred language from the claims.
10
+ * @returns {LanguageLoaderFn} - A function that retrieves the user's preferred language from the identity claims.
11
+ */
5
12
  export function userLanguageLoader(languageSelector = (claims) => claims?.preferredLanguage) {
6
13
  return () => {
7
14
  return inject(AuthService).identityClaims$.pipe(map(languageSelector), map((value) => (isNonEmptyString(value) ? value : undefined)));
8
15
  };
9
16
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sYW5ndWFnZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3VzZXItbGFuZ3VhZ2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLG1CQUFxQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtJQUMzRyxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlTG9hZGVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IGlzTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbnR5cGUgTGFuZ3VhZ2VTZWxlY3RvciA9IChjbGFpbXM/OiBPZHhBdXRoLklkZW50aXlDbGFpbXMgfCBudWxsKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlckxhbmd1YWdlTG9hZGVyKGxhbmd1YWdlU2VsZWN0b3I6IExhbmd1YWdlU2VsZWN0b3IgPSAoY2xhaW1zKSA9PiBjbGFpbXM/LnByZWZlcnJlZExhbmd1YWdlKTogTGFuZ3VhZ2VMb2FkZXJGbiB7XG4gIHJldHVybiAoKSA9PiB7XG4gICAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuaWRlbnRpdHlDbGFpbXMkLnBpcGUoXG4gICAgICBtYXAobGFuZ3VhZ2VTZWxlY3RvciksXG4gICAgICBtYXAoKHZhbHVlKSA9PiAoaXNOb25FbXB0eVN0cmluZyh2YWx1ZSkgPyB2YWx1ZSA6IHVuZGVmaW5lZCkpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1sYW5ndWFnZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9oZWxwZXJzL3VzZXItbGFuZ3VhZ2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJOUM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLG1CQUFxQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQjtJQUMzRyxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzdDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNyQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExhbmd1YWdlTG9hZGVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7IGlzTm9uRW1wdHlTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGguc2VydmljZSc7XG5cbnR5cGUgTGFuZ3VhZ2VTZWxlY3RvciA9IChjbGFpbXM/OiBPZHhBdXRoLklkZW50aXlDbGFpbXMgfCBudWxsKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgbGFuZ3VhZ2UgbG9hZGVyIGZ1bmN0aW9uIGZvciB1c2VyIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIEBwYXJhbSB7TGFuZ3VhZ2VTZWxlY3Rvcn0gbGFuZ3VhZ2VTZWxlY3RvciAtIEEgZnVuY3Rpb24gdGhhdCB0YWtlcyBvcHRpb25hbCBpZGVudGl0eSBjbGFpbXMgYW5kIHJldHVybnMgYSBsYW5ndWFnZSBzdHJpbmcsIG51bGwsIG9yIHVuZGVmaW5lZC5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdHMgdG8gYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgdGhlIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIHRoZSBjbGFpbXMuXG4gKiBAcmV0dXJucyB7TGFuZ3VhZ2VMb2FkZXJGbn0gLSBBIGZ1bmN0aW9uIHRoYXQgcmV0cmlldmVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIGZyb20gdGhlIGlkZW50aXR5IGNsYWltcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZXJMYW5ndWFnZUxvYWRlcihsYW5ndWFnZVNlbGVjdG9yOiBMYW5ndWFnZVNlbGVjdG9yID0gKGNsYWltcykgPT4gY2xhaW1zPy5wcmVmZXJyZWRMYW5ndWFnZSk6IExhbmd1YWdlTG9hZGVyRm4ge1xuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmlkZW50aXR5Q2xhaW1zJC5waXBlKFxuICAgICAgbWFwKGxhbmd1YWdlU2VsZWN0b3IpLFxuICAgICAgbWFwKCh2YWx1ZSkgPT4gKGlzTm9uRW1wdHlTdHJpbmcodmFsdWUpID8gdmFsdWUgOiB1bmRlZmluZWQpKSxcbiAgICApO1xuICB9O1xufVxuIl19
@@ -2,6 +2,15 @@ import { DestroyRef, inject } from '@angular/core';
2
2
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { of } from 'rxjs';
4
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
+ */
5
14
  export const coreDebugPlugin = () => {
6
15
  logger.warn('DEBUG MODE ENABLED - DO NOT USE IN PRODUCTION!');
7
16
  const destroyRef = inject(DestroyRef);
@@ -17,4 +26,4 @@ export const coreDebugPlugin = () => {
17
26
  return of({});
18
27
  };
19
28
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kZWJ1Zy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtZGVidWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBR3BDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBc0IsR0FBRyxFQUFFO0lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM5RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsSUFBSSxRQUFRLEdBQXdCLElBQUksQ0FBQztJQUV6QyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7UUFDckIsUUFBUSxLQUFLLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDakcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLE1BQU0sRUFBRSxRQUFRLEtBQUssTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2F1dGgubG9nZ2VyJztcbmltcG9ydCB7IEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGNvbnN0IGNvcmVEZWJ1Z1BsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGxvZ2dlci53YXJuKCdERUJVRyBNT0RFIEVOQUJMRUQgLSBETyBOT1QgVVNFIElOIFBST0RVQ1RJT04hJyk7XG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIGxldCBpbnN0YW5jZTogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIChhdXRoU2VydmljZSkgPT4ge1xuICAgIGluc3RhbmNlID8/PSBhdXRoU2VydmljZS5pZGVudGl0eUNsYWltcyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoZGVzdHJveVJlZikpLnN1YnNjcmliZSgoY2xhaW1zKSA9PiB7XG4gICAgICBsb2dnZXIuaW5mbyhgVXNlcjogJHtjbGFpbXM/LnVzZXJuYW1lfSAoJHtjbGFpbXM/LmVtYWlsfSlgKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnSWRlbnRpdHkgY2xhaW1zJywgKGxvZykgPT4gbG9nKGNsYWltcyksIGZhbHNlKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnQWNjZXNzIHRva2VuJywgKGxvZykgPT4gbG9nKGF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkpKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnUmVmcmVzaCB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRSZWZyZXNoVG9rZW4oKSkpO1xuICAgICAgbG9nZ2VyLmdyb3VwKCdJRCB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRJZFRva2VuKCkpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBvZih7fSk7XG4gIH07XG59O1xuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1kZWJ1Zy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtZGVidWcucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBZ0IsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hDLE9BQU8sTUFBTSxNQUFNLGdCQUFnQixDQUFDO0FBR3BDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFzQixHQUFHLEVBQUU7SUFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxJQUFJLFFBQVEsR0FBd0IsSUFBSSxDQUFDO0lBRXpDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixRQUFRLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsTUFBTSxFQUFFLFFBQVEsS0FBSyxNQUFNLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM1RCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRSxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vYXV0aC5sb2dnZXInO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKipcbiAqIEEgZmFjdG9yeSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgYSBjb3JlIGRlYnVnIHBsdWdpbiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKiBUaGlzIHBsdWdpbiBsb2dzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyJ3MgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgcGx1Z2luIGlzIGludGVuZGVkIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMgb25seSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzLlxuICpcbiAqIEByZXR1cm5zIHtBdXRoUGx1Z2luRmFjdG9yeX0gQSBmdW5jdGlvbiB0aGF0IHRha2VzIGFuIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UgYW5kIHNldHMgdXAgbG9nZ2luZyBmb3IgaWRlbnRpdHkgY2xhaW1zIGFuZCB0b2tlbnMuXG4gKi9cbmV4cG9ydCBjb25zdCBjb3JlRGVidWdQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBsb2dnZXIud2FybignREVCVUcgTU9ERSBFTkFCTEVEIC0gRE8gTk9UIFVTRSBJTiBQUk9EVUNUSU9OIScpO1xuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICBsZXQgaW5zdGFuY2U6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHJldHVybiAoYXV0aFNlcnZpY2UpID0+IHtcbiAgICBpbnN0YW5jZSA/Pz0gYXV0aFNlcnZpY2UuaWRlbnRpdHlDbGFpbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKGRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKGNsYWltcykgPT4ge1xuICAgICAgbG9nZ2VyLmluZm8oYFVzZXI6ICR7Y2xhaW1zPy51c2VybmFtZX0gKCR7Y2xhaW1zPy5lbWFpbH0pYCk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0lkZW50aXR5IGNsYWltcycsIChsb2cpID0+IGxvZyhjbGFpbXMpLCBmYWxzZSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ0FjY2VzcyB0b2tlbicsIChsb2cpID0+IGxvZyhhdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpKSk7XG4gICAgICBsb2dnZXIuZ3JvdXAoJ1JlZnJlc2ggdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCkpKTtcbiAgICAgIGxvZ2dlci5ncm91cCgnSUQgdG9rZW4nLCAobG9nKSA9PiBsb2coYXV0aFNlcnZpY2UuZ2V0SWRUb2tlbigpKSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2Yoe30pO1xuICB9O1xufTtcbiJdfQ==
@@ -1,5 +1,12 @@
1
1
  import { of } from 'rxjs';
2
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
+ */
3
10
  export const coreIdentityPlugin = () => {
4
11
  const { resolveEmail, resolveUsername, createInitials } = injectAuthConfig();
5
12
  return (authService) => {
@@ -10,4 +17,4 @@ export const coreIdentityPlugin = () => {
10
17
  return of({ email: resolveEmail(claims), username, initials: createInitials(username) });
11
18
  };
12
19
  };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pZGVudGl0eS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtaWRlbnRpdHkucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjbEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXNCLEdBQUcsRUFBRTtJQUN4RCxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW5pdGlhbHM6IHN0cmluZztcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjb3JlSWRlbnRpdHlQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCB7IHJlc29sdmVFbWFpbCwgcmVzb2x2ZVVzZXJuYW1lLCBjcmVhdGVJbml0aWFscyB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuXG4gIHJldHVybiAoYXV0aFNlcnZpY2UpID0+IHtcbiAgICBjb25zdCBjbGFpbXMgPSBhdXRoU2VydmljZS5nZXRSYXdJZGVudGl0eUNsYWltcygpO1xuICAgIGlmICghY2xhaW1zKSByZXR1cm4gb2Yoe30pO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gcmVzb2x2ZVVzZXJuYW1lKGNsYWltcyk7XG5cbiAgICByZXR1cm4gb2YoeyBlbWFpbDogcmVzb2x2ZUVtYWlsKGNsYWltcyksIHVzZXJuYW1lLCBpbml0aWFsczogY3JlYXRlSW5pdGlhbHModXNlcm5hbWUpIH0pO1xuICB9O1xufTtcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pZGVudGl0eS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvc3JjL2xpYi9wbHVnaW5zL2NvcmUtaWRlbnRpdHkucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFjbEQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXNCLEdBQUcsRUFBRTtJQUN4RCxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTdFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUNyQixNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNGLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICBlbWFpbDogc3RyaW5nO1xuICAgICAgaW5pdGlhbHM6IHN0cmluZztcbiAgICAgIHVzZXJuYW1lOiBzdHJpbmc7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ29yZSBpZGVudGl0eSBwbHVnaW4gZm9yIGF1dGhlbnRpY2F0aW9uLlxuICpcbiAqIFRoaXMgcGx1Z2luIGV4dHJhY3RzIGFuZCBwcm9jZXNzZXMgaWRlbnRpdHkgY2xhaW1zIGZyb20gdGhlIGF1dGhlbnRpY2F0aW9uIHNlcnZpY2UuXG4gKlxuICogQHJldHVybnMge0F1dGhQbHVnaW5GYWN0b3J5fSBBIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9ic2VydmFibGUgd2l0aCB0aGUgcHJvY2Vzc2VkIGlkZW50aXR5IGNsYWltcy5cbiAqL1xuZXhwb3J0IGNvbnN0IGNvcmVJZGVudGl0eVBsdWdpbjogQXV0aFBsdWdpbkZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IHsgcmVzb2x2ZUVtYWlsLCByZXNvbHZlVXNlcm5hbWUsIGNyZWF0ZUluaXRpYWxzIH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG5cbiAgcmV0dXJuIChhdXRoU2VydmljZSkgPT4ge1xuICAgIGNvbnN0IGNsYWltcyA9IGF1dGhTZXJ2aWNlLmdldFJhd0lkZW50aXR5Q2xhaW1zKCk7XG4gICAgaWYgKCFjbGFpbXMpIHJldHVybiBvZih7fSk7XG4gICAgY29uc3QgdXNlcm5hbWUgPSByZXNvbHZlVXNlcm5hbWUoY2xhaW1zKTtcblxuICAgIHJldHVybiBvZih7IGVtYWlsOiByZXNvbHZlRW1haWwoY2xhaW1zKSwgdXNlcm5hbWUsIGluaXRpYWxzOiBjcmVhdGVJbml0aWFscyh1c2VybmFtZSkgfSk7XG4gIH07XG59O1xuIl19
@@ -1,9 +1,18 @@
1
1
  import { of } from 'rxjs';
2
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
+ */
3
12
  export const userProfileUrlPlugin = () => {
4
13
  const { environment, userProfileUrl } = injectAuthConfig();
5
14
  return () => {
6
15
  return of({ userProfileUrl: userProfileUrl ?? ODX_AUTH_USER_PROFILE_HOSTS[environment] });
7
16
  };
8
17
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkvRSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBc0IsR0FBRyxFQUFFO0lBQzFELE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUMzRCxPQUFPLEdBQUcsRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLGNBQWMsSUFBSSwyQkFBMkIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUYsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9EWF9BVVRIX1VTRVJfUFJPRklMRV9IT1NUUywgaW5qZWN0QXV0aENvbmZpZyB9IGZyb20gJy4uL2F1dGguY29uZmlnJztcbmltcG9ydCB7IEF1dGhQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZVxuICBuYW1lc3BhY2UgT2R4QXV0aCB7XG4gICAgaW50ZXJmYWNlIEF1dGhQbHVnaW5SZXN1bHQge1xuICAgICAgdXNlclByb2ZpbGVVcmw6IHN0cmluZztcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZXJQcm9maWxlVXJsUGx1Z2luOiBBdXRoUGx1Z2luRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgeyBlbnZpcm9ubWVudCwgdXNlclByb2ZpbGVVcmwgfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgcmV0dXJuICgpID0+IHtcbiAgICByZXR1cm4gb2YoeyB1c2VyUHJvZmlsZVVybDogdXNlclByb2ZpbGVVcmwgPz8gT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTW2Vudmlyb25tZW50XSB9KTtcbiAgfTtcbn07XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWxpbmsucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvcGx1Z2lucy91c2VyLXByb2ZpbGUtbGluay5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVkvRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFzQixHQUFHLEVBQUU7SUFDMUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzNELE9BQU8sR0FBRyxFQUFFO1FBQ1YsT0FBTyxFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsY0FBYyxJQUFJLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTLCBpbmplY3RBdXRoQ29uZmlnIH0gZnJvbSAnLi4vYXV0aC5jb25maWcnO1xuaW1wb3J0IHsgQXV0aFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICB1c2VyUHJvZmlsZVVybDogc3RyaW5nO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZhY3RvcnkgdGhhdCBnZW5lcmF0ZXMgYSB1c2VyIHByb2ZpbGUgVVJMIHBsdWdpbi5cbiAqXG4gKiBUaGlzIHBsdWdpbiByZXRyaWV2ZXMgdGhlIHVzZXIgcHJvZmlsZSBVUkwgZnJvbSB0aGUgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbi5cbiAqIElmIHRoZSB1c2VyIHByb2ZpbGUgVVJMIGlzIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGl0IGZhbGxzIGJhY2sgdG9cbiAqIHVzaW5nIHRoZSBkZWZhdWx0IFVSTCBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgZnJvbSBgT0RYX0FVVEhfVVNFUl9QUk9GSUxFX0hPU1RTYC5cbiAqXG4gKiBAcmV0dXJucyBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYnNlcnZhYmxlIGVtaXR0aW5nIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB1c2VyIHByb2ZpbGUgVVJMLlxuICovXG5leHBvcnQgY29uc3QgdXNlclByb2ZpbGVVcmxQbHVnaW46IEF1dGhQbHVnaW5GYWN0b3J5ID0gKCkgPT4ge1xuICBjb25zdCB7IGVudmlyb25tZW50LCB1c2VyUHJvZmlsZVVybCB9ID0gaW5qZWN0QXV0aENvbmZpZygpO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIHJldHVybiBvZih7IHVzZXJQcm9maWxlVXJsOiB1c2VyUHJvZmlsZVVybCA/PyBPRFhfQVVUSF9VU0VSX1BST0ZJTEVfSE9TVFNbZW52aXJvbm1lbnRdIH0pO1xuICB9O1xufTtcbiJdfQ==
@@ -4,6 +4,14 @@ import { WindowRef } from '@odx/angular';
4
4
  import { isString } from '@odx/angular/utils';
5
5
  import { map, take, tap } from 'rxjs';
6
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
+ */
7
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
16
  export function unauthGuard(authorizedHandler, redirectTo, isExternal = false) {
9
17
  return (_) => {
@@ -27,4 +35,4 @@ export function unauthGuard(authorizedHandler, redirectTo, isExternal = false) {
27
35
  }), take(1));
28
36
  };
29
37
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUsV0FBVyxDQUFDLGlCQUFxQyxFQUFFLFVBQTJCLEVBQUUsVUFBVSxHQUFHLEtBQUs7SUFDaEgsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1gsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEMsT0FBTyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN0QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDdkQsR0FBRyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDckIsSUFBSSxjQUFjLElBQUksQ0FBQyxNQUFNO2dCQUFFLE9BQU87WUFDdEMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25DLENBQUM7WUFDSCxDQUFDO2lCQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUMsRUFDRixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBXaW5kb3dSZWYgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aG9yaXplZEhhbmRsZXIgfSBmcm9tICcuL21vZGVscyc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgZnVuY3Rpb24gdW5hdXRoR3VhcmQoYXV0aG9yaXplZEhhbmRsZXI/OiBBdXRob3JpemVkSGFuZGxlciwgcmVkaXJlY3RUbz86IGFueVtdIHwgc3RyaW5nLCBpc0V4dGVybmFsID0gZmFsc2UpOiBDYW5BY3RpdmF0ZUZuIHtcbiAgcmV0dXJuIChfKSA9PiB7XG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICAgIGNvbnN0IHJvdXRlciA9IGluamVjdChSb3V0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgY29uc3Qgd2luZG93UmVmID0gaW5qZWN0KFdpbmRvd1JlZik7XG5cbiAgICByZXR1cm4gYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkJC5waXBlKFxuICAgICAgbWFwKCgpID0+ICFhdXRoU2VydmljZS5pc0F1dGhvcml6ZWQoYXV0aG9yaXplZEhhbmRsZXIpKSxcbiAgICAgIHRhcCgoaXNVbmF1dGhvcml6ZWQpID0+IHtcbiAgICAgICAgaWYgKGlzVW5hdXRob3JpemVkIHx8ICFyb3V0ZXIpIHJldHVybjtcbiAgICAgICAgaWYgKGlzU3RyaW5nKHJlZGlyZWN0VG8pKSB7XG4gICAgICAgICAgaWYgKGlzRXh0ZXJuYWwpIHtcbiAgICAgICAgICAgIHdpbmRvd1JlZi5sb2NhdGlvbi5hc3NpZ24ocmVkaXJlY3RUbyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJlZGlyZWN0VG8pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlZGlyZWN0VG8pKSB7XG4gICAgICAgICAgcm91dGVyLm5hdmlnYXRlKHJlZGlyZWN0VG8pO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRha2UoMSksXG4gICAgKTtcbiAgfTtcbn1cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5hdXRoLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3NyYy9saWIvdW5hdXRoLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzdDOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxpQkFBcUMsRUFBRSxVQUEyQixFQUFFLFVBQVUsR0FBRyxLQUFLO0lBQ2hILE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNYLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFO1lBQ3JCLElBQUksY0FBYyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3RDLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2YsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IG1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhvcml6ZWRIYW5kbGVyIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG4vKipcbiAqIEd1YXJkIGZ1bmN0aW9uIHRvIHByZXZlbnQgdW5hdXRob3JpemVkIGFjY2VzcyB0byByb3V0ZXMuXG4gKlxuICogQHBhcmFtIHtBdXRob3JpemVkSGFuZGxlcn0gYXV0aG9yaXplZEhhbmRsZXIgLSBPcHRpb25hbCBoYW5kbGVyIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGlzIGF1dGhvcml6ZWQuXG4gKiBAcGFyYW0ge2FueVtdIHwgc3RyaW5nfSByZWRpcmVjdFRvIC0gT3B0aW9uYWwgVVJMIG9yIHJvdXRlIHRvIHJlZGlyZWN0IHVuYXV0aG9yaXplZCB1c2VycyB0by4gQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSBPcHRpb25hbCBmbGFnIHRvIGluZGljYXRlIGlmIHRoZSByZWRpcmVjdGlvbiBzaG91bGQgYmUgZXh0ZXJuYWwuIERlZmF1bHRzIHRvIGZhbHNlLlxuICogQHJldHVybnMge0NhbkFjdGl2YXRlRm59IC0gQSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgdGhlIENhbkFjdGl2YXRlRm4gaW50ZXJmYWNlLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHVuYXV0aEd1YXJkKGF1dGhvcml6ZWRIYW5kbGVyPzogQXV0aG9yaXplZEhhbmRsZXIsIHJlZGlyZWN0VG8/OiBhbnlbXSB8IHN0cmluZywgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiAoXykgPT4ge1xuICAgIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIGNvbnN0IHdpbmRvd1JlZiA9IGluamVjdChXaW5kb3dSZWYpO1xuXG4gICAgcmV0dXJuIGF1dGhTZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICAgIG1hcCgoKSA9PiAhYXV0aFNlcnZpY2UuaXNBdXRob3JpemVkKGF1dGhvcml6ZWRIYW5kbGVyKSksXG4gICAgICB0YXAoKGlzVW5hdXRob3JpemVkKSA9PiB7XG4gICAgICAgIGlmIChpc1VuYXV0aG9yaXplZCB8fCAhcm91dGVyKSByZXR1cm47XG4gICAgICAgIGlmIChpc1N0cmluZyhyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIGlmIChpc0V4dGVybmFsKSB7XG4gICAgICAgICAgICB3aW5kb3dSZWYubG9jYXRpb24uYXNzaWduKHJlZGlyZWN0VG8pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGVCeVVybChyZWRpcmVjdFRvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShyZWRpcmVjdFRvKSkge1xuICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZShyZWRpcmVjdFRvKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0YWtlKDEpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
@@ -1,9 +1,16 @@
1
1
  import { buildUrl, isString } from '@odx/angular/utils';
2
2
  import { ServiceConnnectEnvironments } 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
+ */
3
10
  export function buildServiceConnectUrl(environment, ...endpoints) {
4
11
  if (isString(environment)) {
5
12
  return buildUrl(ServiceConnnectEnvironments[environment], ...endpoints);
6
13
  }
7
14
  return buildUrl(environment.custom, ...endpoints);
8
15
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBNkIsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBd0QsRUFBRSxHQUFHLFNBQW1CO0lBQ3JILElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFVybCwgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQsIFNlcnZpY2VDb25ubmVjdEVudmlyb25tZW50cyB9IGZyb20gJy4uL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTZXJ2aWNlQ29ubmVjdFVybChlbnZpcm9ubWVudDogU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCB8IEF1dGhFbnZpcm9ubWVudCwgLi4uZW5kcG9pbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGlmIChpc1N0cmluZyhlbnZpcm9ubWVudCkpIHtcbiAgICByZXR1cm4gYnVpbGRVcmwoU2VydmljZUNvbm5uZWN0RW52aXJvbm1lbnRzW2Vudmlyb25tZW50XSwgLi4uZW5kcG9pbnRzKTtcbiAgfVxuICByZXR1cm4gYnVpbGRVcmwoZW52aXJvbm1lbnQuY3VzdG9tLCAuLi5lbmRwb2ludHMpO1xufVxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvYnVpbGQtc2VydmljZS1jb25uZWN0LXVybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBNkIsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVuRzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsV0FBd0QsRUFBRSxHQUFHLFNBQW1CO0lBQ3JILElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsT0FBTyxRQUFRLENBQUMsMkJBQTJCLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZFVybCwgaXNTdHJpbmcgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgQXV0aEVudmlyb25tZW50IH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQsIFNlcnZpY2VDb25ubmVjdEVudmlyb25tZW50cyB9IGZyb20gJy4uL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG4vKipcbiAqIEJ1aWxkcyBhIHNlcnZpY2UgY29ubmVjdCBVUkwgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGVudmlyb25tZW50IGFuZCBlbmRwb2ludHMuXG4gKlxuICogQHBhcmFtIHtTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50IHwgQXV0aEVudmlyb25tZW50fSBlbnZpcm9ubWVudCAtIFRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uIHdoaWNoIGNhbiBiZSBlaXRoZXIgYSBgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudGAgb3IgYEF1dGhFbnZpcm9ubWVudGAuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBlbmRwb2ludHMgLSBBIGxpc3Qgb2YgZW5kcG9pbnQgc3RyaW5ncyB0byBiZSBhcHBlbmRlZCB0byB0aGUgYmFzZSBVUkwuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFRoZSBjb25zdHJ1Y3RlZCBzZXJ2aWNlIGNvbm5lY3QgVVJMIGFzIGEgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTZXJ2aWNlQ29ubmVjdFVybChlbnZpcm9ubWVudDogU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCB8IEF1dGhFbnZpcm9ubWVudCwgLi4uZW5kcG9pbnRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIGlmIChpc1N0cmluZyhlbnZpcm9ubWVudCkpIHtcbiAgICByZXR1cm4gYnVpbGRVcmwoU2VydmljZUNvbm5uZWN0RW52aXJvbm1lbnRzW2Vudmlyb25tZW50XSwgLi4uZW5kcG9pbnRzKTtcbiAgfVxuICByZXR1cm4gYnVpbGRVcmwoZW52aXJvbm1lbnQuY3VzdG9tLCAuLi5lbmRwb2ludHMpO1xufVxuIl19
@@ -1,5 +1,12 @@
1
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
+ */
2
9
  export function hasRolesOrRightsHandler(rolesOrRights) {
3
10
  return (claims) => hasRolesOrRights(claims?.rights ?? [], rolesOrRights);
4
11
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9oYXMtcm9sZXMtb3ItcmlnaHRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFLE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxhQUE0QjtJQUNsRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXplZEhhbmRsZXIgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0cywgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogQXV0aG9yaXplZEhhbmRsZXIge1xuICByZXR1cm4gKGNsYWltcykgPT4gaGFzUm9sZXNPclJpZ2h0cyhjbGFpbXM/LnJpZ2h0cyA/PyBbXSwgcm9sZXNPclJpZ2h0cyk7XG59XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy1oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9oYXMtcm9sZXMtb3ItcmlnaHRzLWhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFpQixNQUFNLHVCQUF1QixDQUFDO0FBRXhFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxhQUE0QjtJQUNsRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUMzRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aG9yaXplZEhhbmRsZXIgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0cywgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGFzLXJvbGVzLW9yLXJpZ2h0cyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBhdXRob3JpemVkIGhhbmRsZXIgdGhhdCBjaGVja3MgaWYgdGhlIHVzZXIgaGFzIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgdG8gY2hlY2sgYWdhaW5zdCB0aGUgdXNlcidzIGNsYWltcy5cbiAqIEByZXR1cm5zIHtBdXRob3JpemVkSGFuZGxlcn0gLSBBbiBoYW5kbGVyIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdXNlciBjbGFpbXMgYW5kIHJldHVybnMgYSBib29sZWFuIGluZGljYXRpbmdcbiAqICAgICAgICAgIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogQXV0aG9yaXplZEhhbmRsZXIge1xuICByZXR1cm4gKGNsYWltcykgPT4gaGFzUm9sZXNPclJpZ2h0cyhjbGFpbXM/LnJpZ2h0cyA/PyBbXSwgcm9sZXNPclJpZ2h0cyk7XG59XG4iXX0=
@@ -1,4 +1,11 @@
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
+ */
1
8
  export function hasRolesOrRights(userRights, rolesOrRights) {
2
9
  return rolesOrRights.some((rights) => (Array.isArray(rights) ? rights : [rights])?.every((right) => userRights.includes(right)));
3
10
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvaGFzLXJvbGVzLW9yLXJpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxhQUE0QjtJQUNoRixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmlnaHQgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBSb2xlID0gUmlnaHRbXTtcbmV4cG9ydCB0eXBlIFJvbGVzT3JSaWdodHMgPSBBcnJheTxSb2xlIHwgUmlnaHQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzUm9sZXNPclJpZ2h0cyh1c2VyUmlnaHRzOiBSaWdodFtdLCByb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogYm9vbGVhbiB7XG4gIHJldHVybiByb2xlc09yUmlnaHRzLnNvbWUoKHJpZ2h0cykgPT4gKEFycmF5LmlzQXJyYXkocmlnaHRzKSA/IHJpZ2h0cyA6IFtyaWdodHNdKT8uZXZlcnkoKHJpZ2h0KSA9PiB1c2VyUmlnaHRzLmluY2x1ZGVzKHJpZ2h0KSkpO1xufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzLXJvbGVzLW9yLXJpZ2h0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL2hlbHBlcnMvaGFzLXJvbGVzLW9yLXJpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsVUFBbUIsRUFBRSxhQUE0QjtJQUNoRixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmlnaHQgPSBzdHJpbmcgfCBudW1iZXI7XG5leHBvcnQgdHlwZSBSb2xlID0gUmlnaHRbXTtcbmV4cG9ydCB0eXBlIFJvbGVzT3JSaWdodHMgPSBBcnJheTxSb2xlIHwgUmlnaHQ+O1xuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgdXNlciBoYXMgYW55IG9mIHRoZSBzcGVjaWZpZWQgcm9sZXMgb3IgcmlnaHRzLlxuICpcbiAqIEBwYXJhbSB7UmlnaHRbXX0gdXNlclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJpZ2h0cyB0aGF0IHRoZSB1c2VyIHBvc3Nlc3Nlcy5cbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIEFuIGFycmF5IG9mIHJvbGVzIG9yIHJpZ2h0cyB0byBjaGVjayBhZ2FpbnN0LiBBIHJvbGUgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXkgb2YgcmlnaHRzLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gYHRydWVgIGlmIHRoZSB1c2VyIGhhcyBhbnkgb2YgdGhlIHNwZWNpZmllZCByb2xlcyBvciByaWdodHMsIG90aGVyd2lzZSBgZmFsc2VgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzUm9sZXNPclJpZ2h0cyh1c2VyUmlnaHRzOiBSaWdodFtdLCByb2xlc09yUmlnaHRzOiBSb2xlc09yUmlnaHRzKTogYm9vbGVhbiB7XG4gIHJldHVybiByb2xlc09yUmlnaHRzLnNvbWUoKHJpZ2h0cykgPT4gKEFycmF5LmlzQXJyYXkocmlnaHRzKSA/IHJpZ2h0cyA6IFtyaWdodHNdKT8uZXZlcnkoKHJpZ2h0KSA9PiB1c2VyUmlnaHRzLmluY2x1ZGVzKHJpZ2h0KSkpO1xufVxuIl19
@@ -3,6 +3,12 @@ import { inject } from '@angular/core';
3
3
  import { injectAuthConfig, requireAuthentication } from '@odx/auth';
4
4
  import { defer, map } from 'rxjs';
5
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
+ */
6
12
  export function serviceConnectPluginFactory(options) {
7
13
  return (pluginOptions) => () => {
8
14
  options.setup?.(pluginOptions);
@@ -15,4 +21,4 @@ export function serviceConnectPluginFactory(options) {
15
21
  })).pipe(map((dto) => parseResponse(dto)));
16
22
  };
17
23
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9zZXJ2aWNlLWNvbm5lY3QtcGx1Z2luLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFlckUsTUFBTSxVQUFVLDJCQUEyQixDQUFnQixPQUFnRDtJQUN6RyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDN0IsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzNDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsV0FBVyxJQUFJLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQWUsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUVwRyxPQUFPLEdBQUcsRUFBRSxDQUNWLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FDVCxVQUFVLENBQUMsR0FBRyxDQUFNLEdBQUcsRUFBRTtZQUN2QixPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDO1NBQzVELENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoUGx1Z2luRmFjdG9yeSwgaW5qZWN0QXV0aENvbmZpZywgcmVxdWlyZUF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IGRlZmVyLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNlcnZpY2VDb25uZWN0RW52aXJvbm1lbnQgfSBmcm9tICcuLi9zZXJ2aWNlLWNvbm5lY3QuY29uZmlnJztcbmltcG9ydCB7IGJ1aWxkU2VydmljZUNvbm5lY3RVcmwgfSBmcm9tICcuL2J1aWxkLXNlcnZpY2UtY29ubmVjdC11cmwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25uZWN0UGx1Z2luT3B0aW9ucyB7XG4gIGVudmlyb25tZW50PzogU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnlPcHRpb25zPER0bz4ge1xuICBlbmRwb2ludDogc3RyaW5nW107XG4gIHBhcnNlUmVzcG9uc2U6IChyZXM6IER0byB8IG51bGwpID0+IFBhcnRpYWw8T2R4QXV0aC5BdXRoUGx1Z2luUmVzdWx0PjtcbiAgZGVmYXVsdFZhbHVlPzogUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xuICBzZXR1cD86IChwbHVnaW5PcHRpb25zPzogU2VydmljZUNvbm5lY3RQbHVnaW5PcHRpb25zKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBTZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgPSAocGx1Z2luT3B0aW9ucz86IFNlcnZpY2VDb25uZWN0UGx1Z2luT3B0aW9ucykgPT4gQXV0aFBsdWdpbkZhY3Rvcnk7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnk8RHRvID0gdW5rbm93bj4ob3B0aW9uczogU2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5T3B0aW9uczxEdG8+KTogU2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5IHtcbiAgcmV0dXJuIChwbHVnaW5PcHRpb25zKSA9PiAoKSA9PiB7XG4gICAgb3B0aW9ucy5zZXR1cD8uKHBsdWdpbk9wdGlvbnMpO1xuICAgIGNvbnN0IHsgZW52aXJvbm1lbnQgfSA9IGluamVjdEF1dGhDb25maWcoKTtcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIGNvbnN0IHVybCA9IGJ1aWxkU2VydmljZUNvbm5lY3RVcmwocGx1Z2luT3B0aW9ucz8uZW52aXJvbm1lbnQgPz8gZW52aXJvbm1lbnQsIC4uLm9wdGlvbnMuZW5kcG9pbnQpO1xuICAgIGNvbnN0IHBhcnNlUmVzcG9uc2UgPSAoZHRvOiBEdG8gfCBudWxsKSA9PiBvcHRpb25zLnBhcnNlUmVzcG9uc2UoZHRvKSA/PyBvcHRpb25zLmRlZmF1bHRWYWx1ZSA/PyB7fTtcblxuICAgIHJldHVybiAoKSA9PlxuICAgICAgZGVmZXIoKCkgPT5cbiAgICAgICAgaHR0cENsaWVudC5nZXQ8RHRvPih1cmwsIHtcbiAgICAgICAgICBjb250ZXh0OiBuZXcgSHR0cENvbnRleHQoKS5zZXQocmVxdWlyZUF1dGhlbnRpY2F0aW9uLCB0cnVlKSxcbiAgICAgICAgfSksXG4gICAgICApLnBpcGUobWFwKChkdG8pID0+IHBhcnNlUmVzcG9uc2UoZHRvKSkpO1xuICB9O1xufVxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXBsdWdpbi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvaGVscGVycy9zZXJ2aWNlLWNvbm5lY3QtcGx1Z2luLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkYsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFlckU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQWdCLE9BQWdEO0lBQ3pHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtRQUM3QixPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0IsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sR0FBRyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxXQUFXLElBQUksV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBZSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1FBRXBHLE9BQU8sR0FBRyxFQUFFLENBQ1YsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUNULFVBQVUsQ0FBQyxHQUFHLENBQU0sR0FBRyxFQUFFO1lBQ3ZCLE9BQU8sRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUM7U0FDNUQsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhQbHVnaW5GYWN0b3J5LCBpbmplY3RBdXRoQ29uZmlnLCByZXF1aXJlQXV0aGVudGljYXRpb24gfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgZGVmZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbnZpcm9ubWVudCB9IGZyb20gJy4uL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuaW1wb3J0IHsgYnVpbGRTZXJ2aWNlQ29ubmVjdFVybCB9IGZyb20gJy4vYnVpbGQtc2VydmljZS1jb25uZWN0LXVybCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZUNvbm5lY3RQbHVnaW5PcHRpb25zIHtcbiAgZW52aXJvbm1lbnQ/OiBTZXJ2aWNlQ29ubmVjdEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPiB7XG4gIGVuZHBvaW50OiBzdHJpbmdbXTtcbiAgcGFyc2VSZXNwb25zZTogKHJlczogRHRvIHwgbnVsbCkgPT4gUGFydGlhbDxPZHhBdXRoLkF1dGhQbHVnaW5SZXN1bHQ+O1xuICBkZWZhdWx0VmFsdWU/OiBQYXJ0aWFsPE9keEF1dGguQXV0aFBsdWdpblJlc3VsdD47XG4gIHNldHVwPzogKHBsdWdpbk9wdGlvbnM/OiBTZXJ2aWNlQ29ubmVjdFBsdWdpbk9wdGlvbnMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSA9IChwbHVnaW5PcHRpb25zPzogU2VydmljZUNvbm5lY3RQbHVnaW5PcHRpb25zKSA9PiBBdXRoUGx1Z2luRmFjdG9yeTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgcGx1Z2luIGZhY3RvcnkgZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHNlcnZpY2UgY29ubmVjdCBkYXRhLlxuICpcbiAqIEBwYXJhbSB7U2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5T3B0aW9uczxEdG8+fSBvcHRpb25zIC0gVGhlIG9wdGlvbnMgZm9yIHRoZSBzZXJ2aWNlIGNvbm5lY3QgcGx1Z2luIGZhY3RvcnkuXG4gKiBAcmV0dXJucyB7U2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5fSAtIEEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGFuIGF1dGggcGx1Z2luIGZhY3RvcnkgZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHNlcnZpY2UgY29ubmVjdCBkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PER0byA9IHVua25vd24+KG9wdGlvbnM6IFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeU9wdGlvbnM8RHRvPik6IFNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB7XG4gIHJldHVybiAocGx1Z2luT3B0aW9ucykgPT4gKCkgPT4ge1xuICAgIG9wdGlvbnMuc2V0dXA/LihwbHVnaW5PcHRpb25zKTtcbiAgICBjb25zdCB7IGVudmlyb25tZW50IH0gPSBpbmplY3RBdXRoQ29uZmlnKCk7XG4gICAgY29uc3QgaHR0cENsaWVudCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBjb25zdCB1cmwgPSBidWlsZFNlcnZpY2VDb25uZWN0VXJsKHBsdWdpbk9wdGlvbnM/LmVudmlyb25tZW50ID8/IGVudmlyb25tZW50LCAuLi5vcHRpb25zLmVuZHBvaW50KTtcbiAgICBjb25zdCBwYXJzZVJlc3BvbnNlID0gKGR0bzogRHRvIHwgbnVsbCkgPT4gb3B0aW9ucy5wYXJzZVJlc3BvbnNlKGR0bykgPz8gb3B0aW9ucy5kZWZhdWx0VmFsdWUgPz8ge307XG5cbiAgICByZXR1cm4gKCkgPT5cbiAgICAgIGRlZmVyKCgpID0+XG4gICAgICAgIGh0dHBDbGllbnQuZ2V0PER0bz4odXJsLCB7XG4gICAgICAgICAgY29udGV4dDogbmV3IEh0dHBDb250ZXh0KCkuc2V0KHJlcXVpcmVBdXRoZW50aWNhdGlvbiwgdHJ1ZSksXG4gICAgICAgIH0pLFxuICAgICAgKS5waXBlKG1hcCgoZHRvKSA9PiBwYXJzZVJlc3BvbnNlKGR0bykpKTtcbiAgfTtcbn1cbiJdfQ==
@@ -3,10 +3,22 @@ import { AuthDirective } from '@odx/auth';
3
3
  import { hasRolesOrRightsHandler } from './helpers';
4
4
  import * as i0 from "@angular/core";
5
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
+ */
6
15
  export class ServiceConnectRightsDirective {
7
16
  constructor() {
8
17
  this.authDirective = inject(AuthDirective, { host: true });
9
18
  }
19
+ /**
20
+ * Sets the roles or rights that the user must have to display the content.
21
+ */
10
22
  set rolesOrRights(value) {
11
23
  this.authDirective.authorizationHandler = hasRolesOrRightsHandler(value ?? []);
12
24
  }
@@ -29,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
29
41
  type: Input,
30
42
  args: ['odxAuthServiceConnectRights']
31
43
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDOzs7QUFZbkUsTUFBTSxPQUFPLDZCQUE2QjtJQVYxQztRQVdtQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQU14RTtJQUpDLElBQ1csYUFBYSxDQUFDLEtBQXVDO1FBQzlELElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7K0dBTlUsNkJBQTZCO21HQUE3Qiw2QkFBNkI7OzRGQUE3Qiw2QkFBNkI7a0JBVnpDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQ0FBMEM7b0JBQ3BELGNBQWMsRUFBRTt3QkFDZDs0QkFDRSxTQUFTLEVBQUUsYUFBYTs0QkFDeEIsTUFBTSxFQUFFLENBQUMsNkNBQTZDLENBQUM7eUJBQ3hEO3FCQUNGO2lCQUNGOzhCQUtZLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyLCBSb2xlc09yUmlnaHRzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbb2R4QXV0aFNlcnZpY2VDb25uZWN0UmlnaHRzXScsXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAge1xuICAgICAgZGlyZWN0aXZlOiBBdXRoRGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ29keEF1dGhFbHNlOm9keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c0Vsc2UnXSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlQ29ubmVjdFJpZ2h0c0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aERpcmVjdGl2ZSA9IGluamVjdChBdXRoRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgQElucHV0KCdvZHhBdXRoU2VydmljZUNvbm5lY3RSaWdodHMnKVxuICBwdWJsaWMgc2V0IHJvbGVzT3JSaWdodHModmFsdWU6IFJvbGVzT3JSaWdodHMgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5hdXRoRGlyZWN0aXZlLmF1dGhvcml6YXRpb25IYW5kbGVyID0gaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIodmFsdWUgPz8gW10pO1xuICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDOzs7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFXSCxNQUFNLE9BQU8sNkJBQTZCO0lBVjFDO1FBV21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBU3hFO0lBUEM7O09BRUc7SUFDSCxJQUNXLGFBQWEsQ0FBQyxLQUF1QztRQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDOytHQVRVLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQVZ6QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxjQUFjLEVBQUU7d0JBQ2Q7NEJBQ0UsU0FBUyxFQUFFLGFBQWE7NEJBQ3hCLE1BQU0sRUFBRSxDQUFDLDZDQUE2QyxDQUFDO3lCQUN4RDtxQkFDRjtpQkFDRjs4QkFRWSxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aERpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYXV0aCc7XG5pbXBvcnQgeyBoYXNSb2xlc09yUmlnaHRzSGFuZGxlciwgUm9sZXNPclJpZ2h0cyB9IGZyb20gJy4vaGVscGVycyc7XG5cbi8qKlxuICogQSBkaXJlY3RpdmUgdGhhdCBleHRlbmRzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBgQXV0aERpcmVjdGl2ZWAgdG8gaGFuZGxlXG4gKiByb2xlcyBvciByaWdodHMgZm9yIHNlcnZpY2UgY29ubmVjdGlvbiBhdXRob3JpemF0aW9uLlxuICpcbiAqIEBzZWUgQXV0aERpcmVjdGl2ZVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSB1c2VkIG9uIGFuIGBuZy10ZW1wbGF0ZWAgZWxlbWVudCB3aXRoIHRoZSBzZWxlY3RvclxuICogYG9keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW29keEF1dGhTZXJ2aWNlQ29ubmVjdFJpZ2h0c10nLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogQXV0aERpcmVjdGl2ZSxcbiAgICAgIGlucHV0czogWydvZHhBdXRoRWxzZTpvZHhBdXRoU2VydmljZUNvbm5lY3RSaWdodHNFbHNlJ10sXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VydmljZUNvbm5lY3RSaWdodHNEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhEaXJlY3RpdmUgPSBpbmplY3QoQXV0aERpcmVjdGl2ZSwgeyBob3N0OiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSByb2xlcyBvciByaWdodHMgdGhhdCB0aGUgdXNlciBtdXN0IGhhdmUgdG8gZGlzcGxheSB0aGUgY29udGVudC5cbiAgICovXG4gIEBJbnB1dCgnb2R4QXV0aFNlcnZpY2VDb25uZWN0UmlnaHRzJylcbiAgcHVibGljIHNldCByb2xlc09yUmlnaHRzKHZhbHVlOiBSb2xlc09yUmlnaHRzIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXV0aERpcmVjdGl2ZS5hdXRob3JpemF0aW9uSGFuZGxlciA9IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyKHZhbHVlID8/IFtdKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,15 @@
1
1
  import { authGuard } from '@odx/auth';
2
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
+ */
3
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
12
  export function serviceConnectRightsGuard(rolesOrRights, redirectTo, isExternal = false) {
5
13
  return authGuard(hasRolesOrRightsHandler(rolesOrRights), redirectTo, isExternal);
6
14
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FLDhEQUE4RDtBQUM5RCxNQUFNLFVBQVUseUJBQXlCLENBQUMsYUFBNEIsRUFBRSxVQUEyQixFQUFFLFVBQVUsR0FBRyxLQUFLO0lBQ3JILE9BQU8sU0FBUyxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FuQWN0aXZhdGVGbiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBhdXRoR3VhcmQgfSBmcm9tICdAb2R4L2F1dGgnO1xuaW1wb3J0IHsgaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIsIFJvbGVzT3JSaWdodHMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZXhwb3J0IGZ1bmN0aW9uIHNlcnZpY2VDb25uZWN0UmlnaHRzR3VhcmQocm9sZXNPclJpZ2h0czogUm9sZXNPclJpZ2h0cywgcmVkaXJlY3RUbz86IHN0cmluZyB8IGFueVtdLCBpc0V4dGVybmFsID0gZmFsc2UpOiBDYW5BY3RpdmF0ZUZuIHtcbiAgcmV0dXJuIGF1dGhHdWFyZChoYXNSb2xlc09yUmlnaHRzSGFuZGxlcihyb2xlc09yUmlnaHRzKSwgcmVkaXJlY3RUbywgaXNFeHRlcm5hbCk7XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXV0aC9wbHVnaW5zL3NlcnZpY2UtY29ubmVjdC9zcmMvbGliL3NlcnZpY2UtY29ubmVjdC1yaWdodHMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sV0FBVyxDQUFDO0FBRW5FOzs7Ozs7O0dBT0c7QUFDSCw4REFBOEQ7QUFDOUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGFBQTRCLEVBQUUsVUFBMkIsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUNySCxPQUFPLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDbkYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbkFjdGl2YXRlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYXV0aEd1YXJkIH0gZnJvbSAnQG9keC9hdXRoJztcbmltcG9ydCB7IGhhc1JvbGVzT3JSaWdodHNIYW5kbGVyLCBSb2xlc09yUmlnaHRzIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBBIGd1YXJkIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIHRoZSB1c2VyIGhhcyB0aGUgcmVxdWlyZWQgcm9sZXMgb3IgcmlnaHRzIHRvIGFjY2VzcyBhIHJvdXRlLlxuICpcbiAqIEBwYXJhbSB7Um9sZXNPclJpZ2h0c30gcm9sZXNPclJpZ2h0cyAtIFRoZSByb2xlcyBvciByaWdodHMgcmVxdWlyZWQgdG8gYWNjZXNzIHRoZSByb3V0ZS5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgYW55W119IHJlZGlyZWN0VG8gLSAoT3B0aW9uYWwpIFRoZSByb3V0ZSB0byByZWRpcmVjdCB0byBpZiB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRoZSByZXF1aXJlZCByb2xlcyBvciByaWdodHMuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGlzRXh0ZXJuYWwgLSAoT3B0aW9uYWwpIEEgZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSByZWRpcmVjdGlvbiBpcyB0byBhbiBleHRlcm5hbCBVUkwuIERlZmF1bHRzIHRvIGBmYWxzZWAuXG4gKiBAcmV0dXJucyB7Q2FuQWN0aXZhdGVGbn0gLSBBIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIHRoZSB1c2VyJ3Mgcm9sZXMgb3IgcmlnaHRzIGFuZCBoYW5kbGVzIHJlZGlyZWN0aW9uIGlmIG5lY2Vzc2FyeS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBmdW5jdGlvbiBzZXJ2aWNlQ29ubmVjdFJpZ2h0c0d1YXJkKHJvbGVzT3JSaWdodHM6IFJvbGVzT3JSaWdodHMsIHJlZGlyZWN0VG8/OiBzdHJpbmcgfCBhbnlbXSwgaXNFeHRlcm5hbCA9IGZhbHNlKTogQ2FuQWN0aXZhdGVGbiB7XG4gIHJldHVybiBhdXRoR3VhcmQoaGFzUm9sZXNPclJpZ2h0c0hhbmRsZXIocm9sZXNPclJpZ2h0cyksIHJlZGlyZWN0VG8sIGlzRXh0ZXJuYWwpO1xufVxuIl19
@@ -1,8 +1,16 @@
1
1
  import { serviceConnectPluginFactory } from './helpers';
2
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
+ */
3
11
  export const serviceConnectRightsPlugin = serviceConnectPluginFactory({
4
12
  endpoint: [ServiceConnectEndpoints.userRights],
5
13
  parseResponse: (res) => ({ rights: res?.rights ?? [] }),
6
14
  defaultValue: { rights: [] },
7
15
  });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFXbkUsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsMkJBQTJCLENBQXFDO0lBQ3hHLFFBQVEsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztJQUM5QyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN2RCxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO0NBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8gfSBmcm9tICcuL2R0b3MnO1xuaW1wb3J0IHsgUmlnaHQsIHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cyB9IGZyb20gJy4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcbiAgbmFtZXNwYWNlIE9keEF1dGgge1xuICAgIGludGVyZmFjZSBBdXRoUGx1Z2luUmVzdWx0IHtcbiAgICAgIHJpZ2h0czogUmlnaHRbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHNlcnZpY2VDb25uZWN0UmlnaHRzUGx1Z2luID0gc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5PEdldFNlcnZpY2VDb25uZWN0UmlnaHRzUmVzcG9uc2VEdG8+KHtcbiAgZW5kcG9pbnQ6IFtTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cy51c2VyUmlnaHRzXSxcbiAgcGFyc2VSZXNwb25zZTogKHJlcykgPT4gKHsgcmlnaHRzOiByZXM/LnJpZ2h0cyA/PyBbXSB9KSxcbiAgZGVmYXVsdFZhbHVlOiB7IHJpZ2h0czogW10gfSxcbn0pO1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXJpZ2h0cy5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2F1dGgvcGx1Z2lucy9zZXJ2aWNlLWNvbm5lY3Qvc3JjL2xpYi9zZXJ2aWNlLWNvbm5lY3QtcmlnaHRzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVMsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFXbkU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLDJCQUEyQixDQUFxQztJQUN4RyxRQUFRLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxVQUFVLENBQUM7SUFDOUMsYUFBYSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdkQsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtDQUM3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IFJpZ2h0LCBzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3RvcnkgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU2VydmljZUNvbm5lY3RFbmRwb2ludHMgfSBmcm9tICcuL3NlcnZpY2UtY29ubmVjdC5jb25maWcnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbmFtZXNwYWNlXG4gIG5hbWVzcGFjZSBPZHhBdXRoIHtcbiAgICBpbnRlcmZhY2UgQXV0aFBsdWdpblJlc3VsdCB7XG4gICAgICByaWdodHM6IFJpZ2h0W107XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQSBwbHVnaW4gZm9yIGZldGNoaW5nIGFuZCBwYXJzaW5nIHNlcnZpY2UgY29ubmVjdCByaWdodHMuXG4gKlxuICogVGhpcyBwbHVnaW4gdXNlcyB0aGUgYHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeWAgdG8gY3JlYXRlIGEgcGx1Z2luIHRoYXQgZmV0Y2hlcyB1c2VyIHJpZ2h0c1xuICogZnJvbSB0aGUgc3BlY2lmaWVkIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHJpZ2h0cy5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFJpZ2h0c1BsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFJpZ2h0c1Jlc3BvbnNlRHRvPih7XG4gIGVuZHBvaW50OiBbU2VydmljZUNvbm5lY3RFbmRwb2ludHMudXNlclJpZ2h0c10sXG4gIHBhcnNlUmVzcG9uc2U6IChyZXMpID0+ICh7IHJpZ2h0czogcmVzPy5yaWdodHMgPz8gW10gfSksXG4gIGRlZmF1bHRWYWx1ZTogeyByaWdodHM6IFtdIH0sXG59KTtcbiJdfQ==
@@ -1,11 +1,25 @@
1
1
  import { getLanguageCode } from '@odx/angular/utils';
2
2
  import { serviceConnectPluginFactory } from './helpers';
3
3
  import { ServiceConnectEndpoints } from './service-connect.config';
4
+ /**
5
+ * Gets the language code from a service connect user response.
6
+ *
7
+ * @param {GetServiceConnectUserResponseDto | null} res - The service connect user response.
8
+ * @returns {string | undefined} - The language code or undefined.
9
+ */
4
10
  export function getServiceConnectUserLanguage(res) {
5
11
  return (res?.preferred_language ?? res?.language_code) ? getLanguageCode(res.preferred_language ?? res.language_code) : undefined;
6
12
  }
13
+ /**
14
+ * A plugin for fetching and parsing the user's preferred language from service connect.
15
+ *
16
+ * This plugin uses the `serviceConnectPluginFactory` to create a plugin that fetches the user's preferred language
17
+ * from the user endpoint and parses the response to extract the preferred language.
18
+ *
19
+ * @see {serviceConnectPluginFactory}
20
+ */
7
21
  export const serviceConnectUserLanguagePlugin = serviceConnectPluginFactory({
8
22
  endpoint: [ServiceConnectEndpoints.user],
9
23
  parseResponse: (res) => ({ preferredLanguage: getServiceConnectUserLanguage(res) }),
10
24
  });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkUsTUFBTSxVQUFVLDZCQUE2QixDQUFDLEdBQTZDO0lBQ3pGLE9BQU8sQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLElBQUksR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3BJLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRywyQkFBMkIsQ0FBbUM7SUFDNUcsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Q0FDcEYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TGFuZ3VhZ2VDb2RlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cyB9IGZyb20gJy4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZShyZXM/OiBHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gKHJlcz8ucHJlZmVycmVkX2xhbmd1YWdlID8/IHJlcz8ubGFuZ3VhZ2VfY29kZSkgPyBnZXRMYW5ndWFnZUNvZGUocmVzLnByZWZlcnJlZF9sYW5ndWFnZSA/PyByZXMubGFuZ3VhZ2VfY29kZSkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiAoeyBwcmVmZXJyZWRMYW5ndWFnZTogZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2UocmVzKSB9KSxcbn0pO1xuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hdXRoL3BsdWdpbnMvc2VydmljZS1jb25uZWN0L3NyYy9saWIvc2VydmljZS1jb25uZWN0LXVzZXItbGFuZ3VhZ2UucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFbkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsR0FBNkM7SUFDekYsT0FBTyxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsSUFBSSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDcEksQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRywyQkFBMkIsQ0FBbUM7SUFDNUcsUUFBUSxFQUFFLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Q0FDcEYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TGFuZ3VhZ2VDb2RlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEdldFNlcnZpY2VDb25uZWN0VXNlclJlc3BvbnNlRHRvIH0gZnJvbSAnLi9kdG9zJztcbmltcG9ydCB7IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBTZXJ2aWNlQ29ubmVjdEVuZHBvaW50cyB9IGZyb20gJy4vc2VydmljZS1jb25uZWN0LmNvbmZpZyc7XG5cbi8qKlxuICogR2V0cyB0aGUgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgc2VydmljZSBjb25uZWN0IHVzZXIgcmVzcG9uc2UuXG4gKlxuICogQHBhcmFtIHtHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0byB8IG51bGx9IHJlcyAtIFRoZSBzZXJ2aWNlIGNvbm5lY3QgdXNlciByZXNwb25zZS5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIGxhbmd1YWdlIGNvZGUgb3IgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2UocmVzPzogR2V0U2VydmljZUNvbm5lY3RVc2VyUmVzcG9uc2VEdG8gfCBudWxsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIChyZXM/LnByZWZlcnJlZF9sYW5ndWFnZSA/PyByZXM/Lmxhbmd1YWdlX2NvZGUpID8gZ2V0TGFuZ3VhZ2VDb2RlKHJlcy5wcmVmZXJyZWRfbGFuZ3VhZ2UgPz8gcmVzLmxhbmd1YWdlX2NvZGUpIDogdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgcGx1Z2luIGZvciBmZXRjaGluZyBhbmQgcGFyc2luZyB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBmcm9tIHNlcnZpY2UgY29ubmVjdC5cbiAqXG4gKiBUaGlzIHBsdWdpbiB1c2VzIHRoZSBgc2VydmljZUNvbm5lY3RQbHVnaW5GYWN0b3J5YCB0byBjcmVhdGUgYSBwbHVnaW4gdGhhdCBmZXRjaGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlXG4gKiBmcm9tIHRoZSB1c2VyIGVuZHBvaW50IGFuZCBwYXJzZXMgdGhlIHJlc3BvbnNlIHRvIGV4dHJhY3QgdGhlIHByZWZlcnJlZCBsYW5ndWFnZS5cbiAqXG4gKiBAc2VlIHtzZXJ2aWNlQ29ubmVjdFBsdWdpbkZhY3Rvcnl9XG4gKi9cbmV4cG9ydCBjb25zdCBzZXJ2aWNlQ29ubmVjdFVzZXJMYW5ndWFnZVBsdWdpbiA9IHNlcnZpY2VDb25uZWN0UGx1Z2luRmFjdG9yeTxHZXRTZXJ2aWNlQ29ubmVjdFVzZXJSZXNwb25zZUR0bz4oe1xuICBlbmRwb2ludDogW1NlcnZpY2VDb25uZWN0RW5kcG9pbnRzLnVzZXJdLFxuICBwYXJzZVJlc3BvbnNlOiAocmVzKSA9PiAoeyBwcmVmZXJyZWRMYW5ndWFnZTogZ2V0U2VydmljZUNvbm5lY3RVc2VyTGFuZ3VhZ2UocmVzKSB9KSxcbn0pO1xuIl19