oidc-spa 8.0.4 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/angular.d.ts +191 -0
  2. package/angular.js +351 -0
  3. package/angular.js.map +1 -0
  4. package/core/createOidc.d.ts +7 -7
  5. package/core/createOidc.js +15 -2
  6. package/core/createOidc.js.map +1 -1
  7. package/core/oidcClientTsUserToTokens.js +7 -0
  8. package/core/oidcClientTsUserToTokens.js.map +1 -1
  9. package/esm/angular.d.ts +191 -0
  10. package/esm/angular.js +314 -0
  11. package/esm/angular.js.map +1 -0
  12. package/esm/core/createOidc.d.ts +7 -7
  13. package/esm/core/createOidc.js +15 -2
  14. package/esm/core/createOidc.js.map +1 -1
  15. package/esm/core/oidcClientTsUserToTokens.js +7 -0
  16. package/esm/core/oidcClientTsUserToTokens.js.map +1 -1
  17. package/esm/keycloak/keycloakUtils.js.map +1 -1
  18. package/esm/mock/oidc.js +2 -1
  19. package/esm/mock/oidc.js.map +1 -1
  20. package/esm/tools/ConcreteClass.d.ts +3 -0
  21. package/esm/tools/ConcreteClass.js +2 -0
  22. package/esm/tools/ConcreteClass.js.map +1 -0
  23. package/esm/tools/Deferred.d.ts +7 -0
  24. package/esm/tools/Deferred.js +5 -0
  25. package/esm/tools/Deferred.js.map +1 -1
  26. package/esm/tools/INFINITY_TIME.d.ts +1 -0
  27. package/esm/tools/INFINITY_TIME.js +3 -0
  28. package/esm/tools/INFINITY_TIME.js.map +1 -0
  29. package/esm/tools/ReadonlyBehaviorSubject.d.ts +8 -0
  30. package/esm/tools/ReadonlyBehaviorSubject.js +2 -0
  31. package/esm/tools/ReadonlyBehaviorSubject.js.map +1 -0
  32. package/esm/tools/getBaseHref.d.ts +1 -0
  33. package/esm/tools/getBaseHref.js +8 -0
  34. package/esm/tools/getBaseHref.js.map +1 -0
  35. package/esm/tools/readExpirationTimeInJwt.js +4 -0
  36. package/esm/tools/readExpirationTimeInJwt.js.map +1 -1
  37. package/esm/vendor/frontend/tsafe.d.ts +1 -0
  38. package/esm/vendor/frontend/tsafe.js +1 -1
  39. package/keycloak/keycloakUtils.js.map +1 -1
  40. package/mock/oidc.js +2 -1
  41. package/mock/oidc.js.map +1 -1
  42. package/package.json +3 -3
  43. package/src/angular.ts +583 -0
  44. package/src/core/createOidc.ts +28 -10
  45. package/src/core/oidcClientTsUserToTokens.ts +9 -0
  46. package/src/keycloak/keycloakUtils.ts +0 -1
  47. package/src/mock/oidc.ts +2 -1
  48. package/src/tools/ConcreteClass.ts +3 -0
  49. package/src/tools/Deferred.ts +10 -0
  50. package/src/tools/INFINITY_TIME.ts +2 -0
  51. package/src/tools/ReadonlyBehaviorSubject.ts +9 -0
  52. package/src/tools/getBaseHref.ts +7 -0
  53. package/src/tools/readExpirationTimeInJwt.ts +5 -0
  54. package/src/vendor/frontend/tsafe.ts +1 -0
  55. package/tools/ConcreteClass.d.ts +3 -0
  56. package/tools/ConcreteClass.js +3 -0
  57. package/tools/ConcreteClass.js.map +1 -0
  58. package/tools/Deferred.d.ts +7 -0
  59. package/tools/Deferred.js +5 -0
  60. package/tools/Deferred.js.map +1 -1
  61. package/tools/INFINITY_TIME.d.ts +1 -0
  62. package/tools/INFINITY_TIME.js +6 -0
  63. package/tools/INFINITY_TIME.js.map +1 -0
  64. package/tools/ReadonlyBehaviorSubject.d.ts +8 -0
  65. package/tools/ReadonlyBehaviorSubject.js +3 -0
  66. package/tools/ReadonlyBehaviorSubject.js.map +1 -0
  67. package/tools/getBaseHref.d.ts +1 -0
  68. package/tools/getBaseHref.js +11 -0
  69. package/tools/getBaseHref.js.map +1 -0
  70. package/tools/readExpirationTimeInJwt.js +4 -0
  71. package/tools/readExpirationTimeInJwt.js.map +1 -1
  72. package/vendor/frontend/tsafe.d.ts +1 -0
  73. package/vendor/frontend/tsafe.js +1 -1
  74. package/angular/angular.d.ts +0 -72
  75. package/angular/angular.js +0 -253
  76. package/angular/angular.js.map +0 -1
  77. package/angular/index.d.ts +0 -1
  78. package/angular/index.js +0 -6
  79. package/angular/index.js.map +0 -1
  80. package/esm/angular/angular.d.ts +0 -72
  81. package/esm/angular/angular.js +0 -249
  82. package/esm/angular/angular.js.map +0 -1
  83. package/esm/angular/index.d.ts +0 -1
  84. package/esm/angular/index.js +0 -2
  85. package/esm/angular/index.js.map +0 -1
  86. package/esm/mock/angular.d.ts +0 -41
  87. package/esm/mock/angular.js +0 -7
  88. package/esm/mock/angular.js.map +0 -1
  89. package/mock/angular.d.ts +0 -41
  90. package/mock/angular.js +0 -10
  91. package/mock/angular.js.map +0 -1
  92. package/src/angular/angular.ts +0 -428
  93. package/src/angular/index.ts +0 -1
  94. package/src/mock/angular.ts +0 -11
@@ -1,5 +1,4 @@
1
1
  import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
2
-
3
2
  import { type KeycloakIssuerUriParsed, parseKeycloakIssuerUri } from "./keycloakIssuerUriParsed";
4
3
 
5
4
  export type KeycloakUtils = {
package/src/mock/oidc.ts CHANGED
@@ -4,6 +4,7 @@ import { id } from "../vendor/frontend/tsafe";
4
4
  import { toFullyQualifiedUrl } from "../tools/toFullyQualifiedUrl";
5
5
  import { getSearchParam, addOrUpdateSearchParam } from "../tools/urlSearchParams";
6
6
  import { getRootRelativeOriginalLocationHref } from "../core/earlyInit";
7
+ import { INFINITY_TIME } from "../tools/INFINITY_TIME";
7
8
 
8
9
  export type ParamsOfCreateMockOidc<
9
10
  DecodedIdToken extends Record<string, unknown> = Record<string, unknown>,
@@ -144,7 +145,7 @@ export async function createMockOidc<
144
145
  ...(() => {
145
146
  const tokens_common: Oidc.Tokens.Common<DecodedIdToken> = {
146
147
  accessToken: mockedTokens.accessToken ?? "mocked-access-token",
147
- accessTokenExpirationTime: mockedTokens.accessTokenExpirationTime ?? Infinity,
148
+ accessTokenExpirationTime: mockedTokens.accessTokenExpirationTime ?? INFINITY_TIME,
148
149
  idToken: mockedTokens.idToken ?? "mocked-id-token",
149
150
  decodedIdToken:
150
151
  mockedTokens.decodedIdToken ??
@@ -0,0 +1,3 @@
1
+ export type ConcreteClass<T> = T extends abstract new (...args: infer A) => infer R
2
+ ? { new (...args: A): R } & Omit<T, "prototype">
3
+ : never;
@@ -4,13 +4,19 @@ export class Deferred<T> {
4
4
  /** NOTE: Does not need to be called bound to instance*/
5
5
  public readonly resolve: (value: T) => void;
6
6
  public readonly reject: (error: any) => void;
7
+ public readonly getState: () =>
8
+ | { hasResolved: true; value: T }
9
+ | { hasResolved: false; value?: never };
7
10
 
8
11
  constructor() {
9
12
  let resolve!: (value: T) => void;
10
13
  let reject!: (error: any) => void;
11
14
 
15
+ let valueWrap: [T] | undefined = undefined;
16
+
12
17
  this.pr = new Promise<T>((resolve_, reject_) => {
13
18
  resolve = value => {
19
+ valueWrap = [value];
14
20
  resolve_(value);
15
21
  };
16
22
 
@@ -21,6 +27,10 @@ export class Deferred<T> {
21
27
 
22
28
  this.resolve = resolve;
23
29
  this.reject = reject;
30
+ this.getState = () =>
31
+ valueWrap === undefined
32
+ ? { hasResolved: false }
33
+ : { hasResolved: true, value: valueWrap[0] };
24
34
  }
25
35
  }
26
36
 
@@ -0,0 +1,2 @@
1
+ // We do not use Infinity because it's not serializable.
2
+ export const INFINITY_TIME = new Date("9999-12-31T23:59:59.999Z").getTime();
@@ -0,0 +1,9 @@
1
+ import type { Observable } from "rxjs";
2
+
3
+ /**
4
+ * An observable with a .getValue() you can think of it
5
+ * as a BehaviorSubject on which you can't call .next()
6
+ */
7
+ export interface ReadonlyBehaviorSubject<T> extends Observable<T> {
8
+ getValue(): T;
9
+ }
@@ -0,0 +1,7 @@
1
+ export function getBaseHref() {
2
+ const baseEl = document.querySelector<HTMLBaseElement>("base[href]");
3
+ if (!baseEl) {
4
+ throw new Error('No <base href="..."> element found in the DOM');
5
+ }
6
+ return baseEl.getAttribute("href") ?? "/";
7
+ }
@@ -1,5 +1,6 @@
1
1
  import { decodeJwt } from "./decodeJwt";
2
2
  import { assert } from "../vendor/frontend/tsafe";
3
+ import { INFINITY_TIME } from "./INFINITY_TIME";
3
4
 
4
5
  // Return undefined if token provided wasn't a JWT or if it hasn't an exp claim number
5
6
  export function readExpirationTimeInJwt(token: string): number | undefined {
@@ -12,5 +13,9 @@ export function readExpirationTimeInJwt(token: string): number | undefined {
12
13
  return undefined;
13
14
  }
14
15
 
16
+ if (exp === 0) {
17
+ return INFINITY_TIME;
18
+ }
19
+
15
20
  return exp * 1000;
16
21
  }
@@ -4,3 +4,4 @@ export { typeGuard } from "tsafe/typeGuard";
4
4
  export { noUndefined } from "tsafe/noUndefined";
5
5
  export type { Param0 } from "tsafe";
6
6
  export { isAmong } from "tsafe/isAmong";
7
+ export { Reflect } from "tsafe/Reflect";
@@ -0,0 +1,3 @@
1
+ export type ConcreteClass<T> = T extends abstract new (...args: infer A) => infer R ? {
2
+ new (...args: A): R;
3
+ } & Omit<T, "prototype"> : never;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ConcreteClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcreteClass.js","sourceRoot":"","sources":["../src/tools/ConcreteClass.ts"],"names":[],"mappings":""}
@@ -3,6 +3,13 @@ export declare class Deferred<T> {
3
3
  /** NOTE: Does not need to be called bound to instance*/
4
4
  readonly resolve: (value: T) => void;
5
5
  readonly reject: (error: any) => void;
6
+ readonly getState: () => {
7
+ hasResolved: true;
8
+ value: T;
9
+ } | {
10
+ hasResolved: false;
11
+ value?: never;
12
+ };
6
13
  constructor();
7
14
  }
8
15
  export declare namespace Deferred {
package/tools/Deferred.js CHANGED
@@ -5,8 +5,10 @@ class Deferred {
5
5
  constructor() {
6
6
  let resolve;
7
7
  let reject;
8
+ let valueWrap = undefined;
8
9
  this.pr = new Promise((resolve_, reject_) => {
9
10
  resolve = value => {
11
+ valueWrap = [value];
10
12
  resolve_(value);
11
13
  };
12
14
  reject = error => {
@@ -15,6 +17,9 @@ class Deferred {
15
17
  });
16
18
  this.resolve = resolve;
17
19
  this.reject = reject;
20
+ this.getState = () => valueWrap === undefined
21
+ ? { hasResolved: false }
22
+ : { hasResolved: true, value: valueWrap[0] };
18
23
  }
19
24
  }
20
25
  exports.Deferred = Deferred;
@@ -1 +1 @@
1
- {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../src/tools/Deferred.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAOjB;QACI,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;CACJ;AAxBD,4BAwBC;AAMD,MAAa,YAAa,SAAQ,QAAmB;CAEpD;AAFD,oCAEC"}
1
+ {"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../src/tools/Deferred.ts"],"names":[],"mappings":";;;AAAA,MAAa,QAAQ;IAUjB;QACI,IAAI,OAA4B,CAAC;QACjC,IAAI,MAA6B,CAAC;QAElC,IAAI,SAAS,GAAoB,SAAS,CAAC;QAE3C,IAAI,CAAC,EAAE,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC3C,OAAO,GAAG,KAAK,CAAC,EAAE;gBACd,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,MAAM,GAAG,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CACjB,SAAS,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE;YACxB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;CACJ;AAlCD,4BAkCC;AAMD,MAAa,YAAa,SAAQ,QAAmB;CAEpD;AAFD,oCAEC"}
@@ -0,0 +1 @@
1
+ export declare const INFINITY_TIME: number;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INFINITY_TIME = void 0;
4
+ // We do not use Infinity because it's not serializable.
5
+ exports.INFINITY_TIME = new Date("9999-12-31T23:59:59.999Z").getTime();
6
+ //# sourceMappingURL=INFINITY_TIME.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"INFINITY_TIME.js","sourceRoot":"","sources":["../src/tools/INFINITY_TIME.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAC3C,QAAA,aAAa,GAAG,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Observable } from "rxjs";
2
+ /**
3
+ * An observable with a .getValue() you can think of it
4
+ * as a BehaviorSubject on which you can't call .next()
5
+ */
6
+ export interface ReadonlyBehaviorSubject<T> extends Observable<T> {
7
+ getValue(): T;
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=ReadonlyBehaviorSubject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadonlyBehaviorSubject.js","sourceRoot":"","sources":["../src/tools/ReadonlyBehaviorSubject.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export declare function getBaseHref(): string;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBaseHref = getBaseHref;
4
+ function getBaseHref() {
5
+ const baseEl = document.querySelector("base[href]");
6
+ if (!baseEl) {
7
+ throw new Error('No <base href="..."> element found in the DOM');
8
+ }
9
+ return baseEl.getAttribute("href") ?? "/";
10
+ }
11
+ //# sourceMappingURL=getBaseHref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBaseHref.js","sourceRoot":"","sources":["../src/tools/getBaseHref.ts"],"names":[],"mappings":";;AAAA,kCAMC;AAND,SAAgB,WAAW;IACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAkB,YAAY,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;AAC9C,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readExpirationTimeInJwt = readExpirationTimeInJwt;
4
4
  const decodeJwt_1 = require("./decodeJwt");
5
5
  const tsafe_1 = require("../vendor/frontend/tsafe");
6
+ const INFINITY_TIME_1 = require("./INFINITY_TIME");
6
7
  // Return undefined if token provided wasn't a JWT or if it hasn't an exp claim number
7
8
  function readExpirationTimeInJwt(token) {
8
9
  let exp;
@@ -13,6 +14,9 @@ function readExpirationTimeInJwt(token) {
13
14
  catch {
14
15
  return undefined;
15
16
  }
17
+ if (exp === 0) {
18
+ return INFINITY_TIME_1.INFINITY_TIME;
19
+ }
16
20
  return exp * 1000;
17
21
  }
18
22
  //# sourceMappingURL=readExpirationTimeInJwt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readExpirationTimeInJwt.js","sourceRoot":"","sources":["../src/tools/readExpirationTimeInJwt.ts"],"names":[],"mappings":";;AAIA,0DAWC;AAfD,2CAAwC;AACxC,oDAAkD;AAElD,sFAAsF;AACtF,SAAgB,uBAAuB,CAAC,KAAa;IACjD,IAAI,GAAW,CAAC;IAEhB,IAAI,CAAC;QACD,GAAG,GAAG,IAAA,qBAAS,EAAkB,KAAK,CAAC,CAAC,GAAG,CAAC;QAC5C,IAAA,cAAM,EAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,GAAG,GAAG,IAAI,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"readExpirationTimeInJwt.js","sourceRoot":"","sources":["../src/tools/readExpirationTimeInJwt.ts"],"names":[],"mappings":";;AAKA,0DAeC;AApBD,2CAAwC;AACxC,oDAAkD;AAClD,mDAAgD;AAEhD,sFAAsF;AACtF,SAAgB,uBAAuB,CAAC,KAAa;IACjD,IAAI,GAAW,CAAC;IAEhB,IAAI,CAAC;QACD,GAAG,GAAG,IAAA,qBAAS,EAAkB,KAAK,CAAC,CAAC,GAAG,CAAC;QAC5C,IAAA,cAAM,EAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,6BAAa,CAAC;IACzB,CAAC;IAED,OAAO,GAAG,GAAG,IAAI,CAAC;AACtB,CAAC"}
@@ -4,3 +4,4 @@ export { typeGuard } from "tsafe/typeGuard";
4
4
  export { noUndefined } from "tsafe/noUndefined";
5
5
  export type { Param0 } from "tsafe";
6
6
  export { isAmong } from "tsafe/isAmong";
7
+ export { Reflect } from "tsafe/Reflect";
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var e={720:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){if(t&&("object"==n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function i(e){var t="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(u())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&c(o,r.prototype),o}(e,arguments,f(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},i(e)}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(u=function(){return!!e})()}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.AssertionError=void 0,t.assert=function(e,t){if(0===arguments.length&&(e=!0),void 0===s){if(!e)throw new l("function"==typeof t?t():t)}else s=void 0},t.is=function(e){var t={};if(void 0!==s)throw s=void 0,new Error(p);return s=t,Promise.resolve().then((function(){if(s===t)throw new Error(p)})),null};var a=r(522),l=function(e){function t(e){var r,n,i,c;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,i=t,c=["Wrong assertion encountered"+(e?': "'.concat(e,'"'):"")],i=f(i),(r=o(n,u()?Reflect.construct(i,c||[],f(n).constructor):i.apply(n,c))).originalMessage=e,Object.setPrototypeOf(r,(this instanceof t?this.constructor:void 0).prototype),!r.stack)return o(r);try{(0,a.overwriteReadonlyProp)(r,"stack",r.stack.split("\n").filter((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t[1];return 1!==n&&2!==n})).join("\n"))}catch(e){}return r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(t,e),r=t,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(i(Error));t.AssertionError=l;var s=void 0,p="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.id=void 0,t.id=function(e){return e}},952:(e,t)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}Object.defineProperty(t,"__esModule",{value:!0}),t.isAmong=function(e,t){var n,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,c=!0,f=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){f=!0,u=e},f:function(){try{c||null==n.return||n.return()}finally{if(f)throw u}}}}(e);try{for(o.s();!(n=o.n()).done;)if(n.value===t)return!0}catch(e){o.e(e)}finally{o.f()}return!1}},522:(e,t)=>{function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0}),t.overwriteReadonlyProp=function(e,t,r){try{e[t]=r}catch(e){}if(e[t]===r)return r;var n=void 0,i=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong idea to overwrite ".concat(String(t)," getter"));try{Object.defineProperty(e,t,o(o({},i),{},{value:r}))}catch(e){n=e}if(e[t]!==r)throw n||new Error("Can't assign");return r}},505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.noUndefined=function(e){var t={};for(var r in e)void 0!==e[r]&&(t[r]=e[r]);return t}},497:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.typeGuard=function(e,t){return t}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.isAmong=e.noUndefined=e.typeGuard=e.is=e.assert=e.id=void 0;var t=r(135);Object.defineProperty(e,"id",{enumerable:!0,get:function(){return t.id}});var o=r(720);Object.defineProperty(e,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(e,"is",{enumerable:!0,get:function(){return o.is}});var i=r(497);Object.defineProperty(e,"typeGuard",{enumerable:!0,get:function(){return i.typeGuard}});var u=r(505);Object.defineProperty(e,"noUndefined",{enumerable:!0,get:function(){return u.noUndefined}});var c=r(952);Object.defineProperty(e,"isAmong",{enumerable:!0,get:function(){return c.isAmong}})})(),module.exports=n})();
1
+ (()=>{"use strict";var e={549:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Reflect=function(){return null}},720:(e,t,r)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function o(e,t){if(t&&("object"==n(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function i(e){var t="function"==typeof Map?new Map:void 0;return i=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(u())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var o=new(e.bind.apply(e,n));return r&&c(o,r.prototype),o}(e,arguments,f(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),c(r,e)},i(e)}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(u=function(){return!!e})()}function c(e,t){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},c(e,t)}function f(e){return f=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},f(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.AssertionError=void 0,t.assert=function(e,t){if(0===arguments.length&&(e=!0),void 0===s){if(!e)throw new l("function"==typeof t?t():t)}else s=void 0},t.is=function(e){var t={};if(void 0!==s)throw s=void 0,new Error(p);return s=t,Promise.resolve().then((function(){if(s===t)throw new Error(p)})),null};var a=r(522),l=function(e){function t(e){var r,n,i,c;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),n=this,i=t,c=["Wrong assertion encountered"+(e?': "'.concat(e,'"'):"")],i=f(i),(r=o(n,u()?Reflect.construct(i,c||[],f(n).constructor):i.apply(n,c))).originalMessage=e,Object.setPrototypeOf(r,(this instanceof t?this.constructor:void 0).prototype),!r.stack)return o(r);try{(0,a.overwriteReadonlyProp)(r,"stack",r.stack.split("\n").filter((function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t[1];return 1!==n&&2!==n})).join("\n"))}catch(e){}return r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&c(e,t)}(t,e),r=t,Object.defineProperty(r,"prototype",{writable:!1}),r;var r}(i(Error));t.AssertionError=l;var s=void 0,p="Wrong usage of the `is` function refer to https://docs.tsafe.dev/is"},135:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.id=void 0,t.id=function(e){return e}},952:(e,t)=>{function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}Object.defineProperty(t,"__esModule",{value:!0}),t.isAmong=function(e,t){var n,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u,c=!0,f=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){f=!0,u=e},f:function(){try{c||null==n.return||n.return()}finally{if(f)throw u}}}}(e);try{for(o.s();!(n=o.n()).done;)if(n.value===t)return!0}catch(e){o.e(e)}finally{o.f()}return!1}},522:(e,t)=>{function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(t){i(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function i(e,t,n){return(t=function(e){var t=function(e){if("object"!=r(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==r(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0}),t.overwriteReadonlyProp=function(e,t,r){try{e[t]=r}catch(e){}if(e[t]===r)return r;var n=void 0,i=Object.getOwnPropertyDescriptor(e,t)||{enumerable:!0,configurable:!0};if(i.get)throw new Error("Probably a wrong idea to overwrite ".concat(String(t)," getter"));try{Object.defineProperty(e,t,o(o({},i),{},{value:r}))}catch(e){n=e}if(e[t]!==r)throw n||new Error("Can't assign");return r}},505:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.noUndefined=function(e){var t={};for(var r in e)void 0!==e[r]&&(t[r]=e[r]);return t}},497:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.typeGuard=function(e,t){return t}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.Reflect=e.isAmong=e.noUndefined=e.typeGuard=e.is=e.assert=e.id=void 0;var t=r(135);Object.defineProperty(e,"id",{enumerable:!0,get:function(){return t.id}});var o=r(720);Object.defineProperty(e,"assert",{enumerable:!0,get:function(){return o.assert}}),Object.defineProperty(e,"is",{enumerable:!0,get:function(){return o.is}});var i=r(497);Object.defineProperty(e,"typeGuard",{enumerable:!0,get:function(){return i.typeGuard}});var u=r(505);Object.defineProperty(e,"noUndefined",{enumerable:!0,get:function(){return u.noUndefined}});var c=r(952);Object.defineProperty(e,"isAmong",{enumerable:!0,get:function(){return c.isAmong}});var f=r(549);Object.defineProperty(e,"Reflect",{enumerable:!0,get:function(){return f.Reflect}})})(),module.exports=n})();
2
2
  exports.__oidcSpaBundle = true;
@@ -1,72 +0,0 @@
1
- import { type Oidc, type ParamsOfCreateOidc, OidcInitializationError } from "../core";
2
- import type { ValueOrAsyncGetter } from "../tools/ValueOrAsyncGetter";
3
- import { type Signal, type EnvironmentProviders } from "@angular/core";
4
- import { type CanActivateFn } from "@angular/router";
5
- export type OidcAngular = OidcAngular.NotLoggedIn | OidcAngular.LoggedIn;
6
- export declare namespace OidcAngular {
7
- type Common = Oidc.Common;
8
- type NotLoggedIn = Common & {
9
- isUserLoggedIn: false;
10
- login: (params?: {
11
- extraQueryParams?: Record<string, string | undefined>;
12
- transformUrlBeforeRedirect?: (url: string) => string;
13
- }) => Promise<never>;
14
- };
15
- type LoggedIn = Common & {
16
- isUserLoggedIn: true;
17
- logout: Oidc.LoggedIn["logout"];
18
- renewTokens: Oidc.LoggedIn["renewTokens"];
19
- goToAuthServer: Oidc.LoggedIn["goToAuthServer"];
20
- backFromAuthServer: {
21
- extraQueryParams: Record<string, string>;
22
- result: Record<string, string>;
23
- } | undefined;
24
- isNewBrowserSession: boolean;
25
- };
26
- }
27
- type OidcAngularApi<DecodedIdToken extends Record<string, unknown>, AutoLogin extends boolean> = {
28
- getOidc: AutoLogin extends true ? {
29
- (params?: {
30
- assert: "user logged in";
31
- }): OidcAngular.LoggedIn;
32
- } : {
33
- (params?: {
34
- assert?: undefined;
35
- }): OidcAngular;
36
- (params: {
37
- assert: "user logged in";
38
- }): OidcAngular.LoggedIn;
39
- (params: {
40
- assert: "user not logged in";
41
- }): OidcAngular.NotLoggedIn;
42
- };
43
- getOidcInitializationError: () => OidcInitializationError | undefined;
44
- get$decodedIdToken: () => Signal<DecodedIdToken>;
45
- get$secondsLeftBeforeAutoLogout: (params: {
46
- warningDurationSeconds: number;
47
- }) => Signal<number | undefined>;
48
- getTokens: () => Promise<{
49
- isUserLoggedIn: false;
50
- prTokens?: never;
51
- } | {
52
- isUserLoggedIn: true;
53
- prTokens: Promise<Oidc.Tokens<DecodedIdToken>>;
54
- }>;
55
- provideOidcInitAwaiter: EnvironmentProviders;
56
- } & (AutoLogin extends true ? {} : {
57
- enforceLoginGuard: CanActivateFn;
58
- });
59
- export declare function createAngularOidc_dependencyInjection<DecodedIdToken extends Record<string, unknown>, ParamsOfCreateOidc extends {
60
- autoLogin?: boolean;
61
- } & ({
62
- decodedIdTokenSchema: {
63
- parse: (data: unknown) => DecodedIdToken;
64
- } | undefined;
65
- } | {})>(paramsOrGetParams: ValueOrAsyncGetter<ParamsOfCreateOidc>, createOidc: (params: ParamsOfCreateOidc) => Promise<Oidc<DecodedIdToken>>): OidcAngularApi<DecodedIdToken, ParamsOfCreateOidc extends {
66
- autoLogin?: true | undefined;
67
- } ? true : false>;
68
- /** @see: https://docs.oidc-spa.dev/v/v8/usage#angular-api */
69
- export declare function createAngularOidc<DecodedIdToken extends Record<string, unknown> = Oidc.Tokens.DecodedIdToken_base, AutoLogin extends boolean = false>(params: ValueOrAsyncGetter<Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl">>): OidcAngularApi<DecodedIdToken, Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl"> extends infer T ? T extends Omit<ParamsOfCreateOidc<DecodedIdToken, AutoLogin>, "homeUrl"> ? T extends {
70
- autoLogin?: true | undefined;
71
- } ? true : false : never : never>;
72
- export {};
@@ -1,253 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAngularOidc_dependencyInjection = createAngularOidc_dependencyInjection;
4
- exports.createAngularOidc = createAngularOidc;
5
- const core_1 = require("../core");
6
- const tsafe_1 = require("../vendor/frontend/tsafe");
7
- const tsafe_2 = require("../vendor/frontend/tsafe");
8
- const Deferred_1 = require("../tools/Deferred");
9
- const core_2 = require("@angular/core");
10
- const router_1 = require("@angular/router");
11
- const rxjs_interop_1 = require("@angular/core/rxjs-interop");
12
- const rxjs_1 = require("rxjs");
13
- const createObjectThatThrowsIfAccessed_1 = require("../tools/createObjectThatThrowsIfAccessed");
14
- function createAngularOidc_dependencyInjection(paramsOrGetParams, createOidc) {
15
- const dReadyToCreate = new Deferred_1.Deferred();
16
- // NOTE: It can be InitializationError only if autoLogin is true
17
- const prOidcOrAutoLoginInitializationError = (async () => {
18
- const params = await (async () => {
19
- await dReadyToCreate.pr;
20
- if (typeof paramsOrGetParams === "function") {
21
- const getParams = paramsOrGetParams;
22
- const params = await getParams();
23
- return params;
24
- }
25
- const params = paramsOrGetParams;
26
- return params;
27
- })();
28
- let oidc;
29
- try {
30
- oidc = await createOidc(params);
31
- }
32
- catch (error) {
33
- if (!(error instanceof core_1.OidcInitializationError)) {
34
- throw error;
35
- }
36
- return error;
37
- }
38
- return oidc;
39
- })();
40
- let oidcOrAutoLoginInitializationError = undefined;
41
- prOidcOrAutoLoginInitializationError.then(value => {
42
- oidcOrAutoLoginInitializationError = value;
43
- });
44
- function getOidc(params) {
45
- const { assert: assert_params } = params ?? {};
46
- if (oidcOrAutoLoginInitializationError === undefined) {
47
- throw new Error("oidc-spa: calling getOidc() before provideOidcInitAwaiter has resolved");
48
- }
49
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
50
- throw new Error("oidc-spa: calling getOidc() while getOidcInitializationError() is not `undefined` in autoLogin: true mode");
51
- }
52
- const oidc = oidcOrAutoLoginInitializationError;
53
- check_assertion: {
54
- if (assert_params === undefined) {
55
- break check_assertion;
56
- }
57
- const getMessage = (v) => [
58
- "There is a logic error in the application.",
59
- `If this component is mounted the user is supposed ${v}.`,
60
- "An explicit assertion was made in this sense."
61
- ].join(" ");
62
- switch (assert_params) {
63
- case "user logged in":
64
- if (!oidc.isUserLoggedIn) {
65
- throw new Error(getMessage("to be logged in but currently they arn't"));
66
- }
67
- break;
68
- case "user not logged in":
69
- if (oidc.isUserLoggedIn) {
70
- throw new Error(getMessage("not to be logged in but currently they are"));
71
- }
72
- break;
73
- default:
74
- (0, tsafe_1.assert)(false);
75
- }
76
- }
77
- const common = {
78
- params: oidc.params
79
- };
80
- return oidc.isUserLoggedIn
81
- ? (0, tsafe_2.id)({
82
- ...common,
83
- isUserLoggedIn: true,
84
- logout: oidc.logout,
85
- renewTokens: oidc.renewTokens,
86
- goToAuthServer: oidc.goToAuthServer,
87
- backFromAuthServer: oidc.backFromAuthServer,
88
- isNewBrowserSession: oidc.isNewBrowserSession
89
- })
90
- : (0, tsafe_2.id)({
91
- ...common,
92
- isUserLoggedIn: false,
93
- login: params => oidc.login({
94
- ...params,
95
- doesCurrentHrefRequiresAuth: false
96
- })
97
- });
98
- }
99
- function getOidcInitializationError() {
100
- if (oidcOrAutoLoginInitializationError === undefined) {
101
- throw new Error("oidc-spa: calling getOidcInitializationError() before provideOidcInitAwaiter has resolved");
102
- }
103
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
104
- return oidcOrAutoLoginInitializationError;
105
- }
106
- const oidc = oidcOrAutoLoginInitializationError;
107
- if (!oidc.isUserLoggedIn && oidc.initializationError !== undefined) {
108
- return oidc.initializationError;
109
- }
110
- return undefined;
111
- }
112
- const { get$decodedIdToken } = (() => {
113
- function createDecodedIdToken$() {
114
- if (oidcOrAutoLoginInitializationError === undefined) {
115
- throw new Error("oidc-spa: calling get$decodedIdToken() before provideOidcInitAwaiter has resolved");
116
- }
117
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
118
- throw new Error("oidc-spa: calling getOidc() while getOidcInitializationError() is not `undefined` in autoLogin: true mode");
119
- }
120
- const oidc = oidcOrAutoLoginInitializationError;
121
- let initialValue;
122
- if (!oidc.isUserLoggedIn) {
123
- initialValue = (0, createObjectThatThrowsIfAccessed_1.createObjectThatThrowsIfAccessed)({
124
- debugMessage: [
125
- "You are trying to read the decodedIdToken but the user",
126
- "isn't logged in"
127
- ].join(" ")
128
- });
129
- }
130
- else {
131
- initialValue = oidc.getDecodedIdToken();
132
- }
133
- const decodedIdToken$ = new rxjs_1.BehaviorSubject(initialValue);
134
- if (oidc.isUserLoggedIn) {
135
- oidc.subscribeToTokensChange(() => {
136
- const decodedIdToken = oidc.getDecodedIdToken();
137
- if (decodedIdToken$.getValue() === decodedIdToken) {
138
- return;
139
- }
140
- decodedIdToken$.next(decodedIdToken);
141
- });
142
- }
143
- return decodedIdToken$;
144
- }
145
- let decodedIdToken$ = undefined;
146
- function get$decodedIdToken() {
147
- return (0, rxjs_interop_1.toSignal)((decodedIdToken$ ?? (decodedIdToken$ = createDecodedIdToken$())), {
148
- requireSync: true
149
- });
150
- }
151
- return { get$decodedIdToken };
152
- })();
153
- const { get$secondsLeftBeforeAutoLogout } = (() => {
154
- function createSecondsLeftBeforeAutoLogout$() {
155
- if (oidcOrAutoLoginInitializationError === undefined) {
156
- throw new Error("oidc-spa: calling get$decodedIdToken() before provideOidcInitAwaiter has resolved");
157
- }
158
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
159
- throw new Error("oidc-spa: calling getOidc() while getOidcInitializationError() is not `undefined` in autoLogin: true mode");
160
- }
161
- const oidc = oidcOrAutoLoginInitializationError;
162
- const secondsLeftBeforeAutoLogout$ = new rxjs_1.BehaviorSubject(undefined);
163
- if (oidc.isUserLoggedIn) {
164
- oidc.subscribeToAutoLogoutCountdown(({ secondsLeft }) => secondsLeftBeforeAutoLogout$.next(secondsLeft));
165
- }
166
- return secondsLeftBeforeAutoLogout$;
167
- }
168
- let secondsLeftBeforeAutoLogout$ = undefined;
169
- function get$secondsLeftBeforeAutoLogout(params) {
170
- const { warningDurationSeconds } = params;
171
- secondsLeftBeforeAutoLogout$ ?? (secondsLeftBeforeAutoLogout$ = createSecondsLeftBeforeAutoLogout$());
172
- const secondsLeftBeforeAutoLogout$_cropped = new rxjs_1.BehaviorSubject(secondsLeftBeforeAutoLogout$.getValue());
173
- secondsLeftBeforeAutoLogout$.subscribe(secondsLeftBeforeAutoLogout => {
174
- if (secondsLeftBeforeAutoLogout === undefined ||
175
- secondsLeftBeforeAutoLogout > warningDurationSeconds) {
176
- if (secondsLeftBeforeAutoLogout$_cropped.getValue() !== undefined) {
177
- secondsLeftBeforeAutoLogout$_cropped.next(undefined);
178
- }
179
- return;
180
- }
181
- secondsLeftBeforeAutoLogout$_cropped.next(secondsLeftBeforeAutoLogout);
182
- });
183
- const signal = (0, rxjs_interop_1.toSignal)(secondsLeftBeforeAutoLogout$_cropped, {
184
- requireSync: true
185
- });
186
- return signal;
187
- }
188
- return { get$secondsLeftBeforeAutoLogout };
189
- })();
190
- async function getTokens() {
191
- const oidcOrAutoLoginInitializationError = await prOidcOrAutoLoginInitializationError;
192
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
193
- return new Promise(() => { });
194
- }
195
- const oidc = oidcOrAutoLoginInitializationError;
196
- return oidc.isUserLoggedIn
197
- ? { isUserLoggedIn: true, prTokens: oidc.getTokens() }
198
- : {
199
- isUserLoggedIn: false
200
- };
201
- }
202
- const provideOidcInitAwaiter = (0, core_2.provideAppInitializer)(async () => {
203
- dReadyToCreate.resolve();
204
- await prOidcOrAutoLoginInitializationError;
205
- });
206
- const enforceLoginGuard = async (route) => {
207
- const router = (0, core_2.inject)(router_1.Router);
208
- const oidcOrAutoLoginInitializationError = await prOidcOrAutoLoginInitializationError;
209
- if (oidcOrAutoLoginInitializationError instanceof core_1.OidcInitializationError) {
210
- return new Promise(() => { });
211
- }
212
- const oidc = oidcOrAutoLoginInitializationError;
213
- if (!oidc.isUserLoggedIn) {
214
- const redirectUrl = (() => {
215
- const tree = router.createUrlTree(route.url.map(u => u.path), {
216
- queryParams: route.queryParams
217
- });
218
- return router.serializeUrl(tree);
219
- })();
220
- const doesCurrentHrefRequiresAuth = location.href.replace(/\/$/, "") === redirectUrl.replace(/\/$/, "");
221
- await oidc.login({
222
- doesCurrentHrefRequiresAuth,
223
- redirectUrl
224
- });
225
- }
226
- return true;
227
- };
228
- const oidcAngularApi = (0, tsafe_2.id)({
229
- getOidc: getOidc,
230
- getOidcInitializationError,
231
- get$decodedIdToken,
232
- get$secondsLeftBeforeAutoLogout,
233
- getTokens,
234
- provideOidcInitAwaiter,
235
- enforceLoginGuard
236
- });
237
- // @ts-expect-error: We know what we are doing
238
- return oidcAngularApi;
239
- }
240
- /** @see: https://docs.oidc-spa.dev/v/v8/usage#angular-api */
241
- function createAngularOidc(params) {
242
- return createAngularOidc_dependencyInjection(params, params => (0, core_1.createOidc)({
243
- ...params,
244
- homeUrl: (() => {
245
- const baseEl = document.querySelector("base[href]");
246
- if (!baseEl) {
247
- throw new Error('No <base href="..."> element found in the DOM');
248
- }
249
- return baseEl.getAttribute("href") ?? "/";
250
- })()
251
- }));
252
- }
253
- //# sourceMappingURL=angular.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular.js","sourceRoot":"","sources":["../src/angular/angular.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export { type OidcAngular, createAngularOidc } from "./angular";
package/angular/index.js DELETED
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAngularOidc = void 0;
4
- var angular_1 = require("./angular");
5
- Object.defineProperty(exports, "createAngularOidc", { enumerable: true, get: function () { return angular_1.createAngularOidc; } });
6
- //# sourceMappingURL=index.js.map