@axa-fr/react-oidc 6.20.0 → 6.21.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.
@@ -62,11 +62,11 @@ class OidcAuthorizationServiceConfiguration {
62
62
  }
63
63
  exports.OidcAuthorizationServiceConfiguration = OidcAuthorizationServiceConfiguration;
64
64
  const oidcDatabase = {};
65
- const oidcFactory = (configuration, name = 'default') => {
65
+ const oidcFactory = (configuration, name = 'default', fetch = window.fetch) => {
66
66
  if (oidcDatabase[name]) {
67
67
  return oidcDatabase[name];
68
68
  }
69
- oidcDatabase[name] = new Oidc(configuration, name);
69
+ oidcDatabase[name] = new Oidc(configuration, name, fetch);
70
70
  return oidcDatabase[name];
71
71
  };
72
72
  const loginCallbackWithAutoTokensRenewAsync = (oidc) => __awaiter(void 0, void 0, void 0, function* () {
@@ -78,7 +78,7 @@ const getRandomInt = (max) => {
78
78
  return Math.floor(Math.random() * max);
79
79
  };
80
80
  class Oidc {
81
- constructor(configuration, configurationName = 'default') {
81
+ constructor(configuration, configurationName = 'default', fetch = window.fetch) {
82
82
  var _a, _b, _c, _d;
83
83
  this.initPromise = null;
84
84
  this.tryKeepExistingSessionPromise = null;
@@ -103,6 +103,7 @@ class Oidc {
103
103
  configuration.authority_timeout_wellknowurl_in_millisecond = 10000;
104
104
  }
105
105
  this.configuration = Object.assign(Object.assign({}, configuration), { silent_login_uri, monitor_session: (_b = configuration.monitor_session) !== null && _b !== void 0 ? _b : false, refresh_time_before_tokens_expiration_in_second, silent_login_timeout: (_c = configuration.silent_login_timeout) !== null && _c !== void 0 ? _c : 12000, token_renew_mode: (_d = configuration.token_renew_mode) !== null && _d !== void 0 ? _d : parseTokens_js_1.TokenRenewMode.access_token_or_id_token_invalid });
106
+ this.fetch = fetch;
106
107
  this.configurationName = configurationName;
107
108
  this.tokens = null;
108
109
  this.userInfo = null;
@@ -134,9 +135,6 @@ class Oidc {
134
135
  event.func(eventName, data);
135
136
  });
136
137
  }
137
- static getOrCreate(configuration, name = 'default') {
138
- return oidcFactory(configuration, name);
139
- }
140
138
  static get(name = 'default') {
141
139
  const isInsideBrowser = (typeof process === 'undefined');
142
140
  if (!Object.prototype.hasOwnProperty.call(oidcDatabase, name) && isInsideBrowser) {
@@ -189,7 +187,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
189
187
  }
190
188
  const serviceWorker = yield (0, initWorker_js_1.initWorkerAsync)(this.configuration.service_worker_relative_url, this.configurationName);
191
189
  const storage = serviceWorker ? window.localStorage : null;
192
- return yield (0, requests_js_1.fetchFromIssuer)(fetch)(authority, (_a = this.configuration.authority_time_cache_wellknowurl_in_second) !== null && _a !== void 0 ? _a : 60 * 60, storage, this.configuration.authority_timeout_wellknowurl_in_millisecond);
190
+ return yield (0, requests_js_1.fetchFromIssuer)(this.fetch)(authority, (_a = this.configuration.authority_time_cache_wellknowurl_in_second) !== null && _a !== void 0 ? _a : 60 * 60, storage, this.configuration.authority_timeout_wellknowurl_in_millisecond);
193
191
  });
194
192
  this.initPromise = localFuncAsync();
195
193
  return this.initPromise.then((result) => {
@@ -440,7 +438,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
440
438
  };
441
439
  const oidcServerConfiguration = yield this.initAsync(authority, configuration.authority_configuration);
442
440
  const timeoutMs = document.hidden ? 10000 : 30000 * 10;
443
- const tokenResponse = yield (0, requests_js_1.performTokenRequestAsync)(oidcServerConfiguration.tokenEndpoint, details, finalExtras, tokens, configuration.token_renew_mode, timeoutMs);
441
+ const tokenResponse = yield (0, requests_js_1.performTokenRequestAsync)(this.fetch)(oidcServerConfiguration.tokenEndpoint, details, finalExtras, tokens, configuration.token_renew_mode, timeoutMs);
444
442
  if (tokenResponse.success) {
445
443
  const { isValid, reason } = (0, parseTokens_js_1.isTokensOidcValid)(tokenResponse.data, nonce.nonce, oidcServerConfiguration);
446
444
  if (!isValid) {
@@ -593,7 +591,7 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
593
591
  if (this.logoutPromise) {
594
592
  return this.logoutPromise;
595
593
  }
596
- this.logoutPromise = (0, logout_js_1.logoutAsync)(this, oidcDatabase, fetch, window, console)(callbackPathOrUrl, extras);
594
+ this.logoutPromise = (0, logout_js_1.logoutAsync)(this, oidcDatabase, this.fetch, window, console)(callbackPathOrUrl, extras);
597
595
  return this.logoutPromise.then(result => {
598
596
  this.logoutPromise = null;
599
597
  return result;
@@ -602,6 +600,9 @@ Please checkout that you are using OIDC hook inside a <OidcProvider configuratio
602
600
  }
603
601
  }
604
602
  exports.Oidc = Oidc;
603
+ Oidc.getOrCreate = (fetch = window.fetch) => (configuration, name = 'default') => {
604
+ return oidcFactory(configuration, name, fetch);
605
+ };
605
606
  Oidc.eventNames = events_js_1.eventNames;
606
607
  exports.default = Oidc;
607
608
  //# sourceMappingURL=oidc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/oidc.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Fetch } from '../FetchToken';
1
2
  import { OidcAuthorizationServiceConfiguration } from './oidc.js';
2
3
  import { StringMap } from './types.js';
3
4
  export declare const fetchFromIssuer: (fetch: any) => (openIdIssuerUrl: string, timeCacheSecond?: number, storage?: Storage, timeoutMs?: number) => Promise<OidcAuthorizationServiceConfiguration>;
@@ -8,7 +9,7 @@ export declare const TOKEN_TYPE: {
8
9
  export declare const performRevocationRequestAsync: (fetch: any) => (url: any, token: any, token_type: string, client_id: any, timeoutMs?: number) => Promise<{
9
10
  success: boolean;
10
11
  }>;
11
- export declare const performTokenRequestAsync: (url: any, details: any, extras: any, oldTokens: any, tokenRenewMode: string, timeoutMs?: number) => Promise<{
12
+ export declare const performTokenRequestAsync: (fetch: Fetch) => (url: any, details: any, extras: any, oldTokens: any, tokenRenewMode: string, timeoutMs?: number) => Promise<{
12
13
  success: boolean;
13
14
  status: number;
14
15
  data?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qCAAqC,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,eAAO,MAAM,eAAe,oCAAsC,MAAM,sEACpE,QAAQ,qCAAqC,CAkBhD,CAAC;AAwBF,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,eAAO,MAAM,6BAA6B;;EA4BzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,wEAA2D,MAAM;;;;;;;;EA8BrG,CAAC;AAEF,eAAO,MAAM,gCAAgC,YAAa,GAAG,wBAAyB,SAAS,kBAoB9F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAY,GAAG,6CAAyC,MAAM;;;;;;;;;;;EA6BvG,CAAC"}
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAAE,qCAAqC,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC,eAAO,MAAM,eAAe,oCAAsC,MAAM,sEACpE,QAAQ,qCAAqC,CAkBhD,CAAC;AAwBF,eAAO,MAAM,UAAU;;;CAGtB,CAAC;AAEF,eAAO,MAAM,6BAA6B;;EA4BzC,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAAU,KAAK,2EAA6D,MAAM;;;;;;;;EA8BtH,CAAC;AAEF,eAAO,MAAM,gCAAgC,YAAa,GAAG,wBAAyB,SAAS,kBAoB9F,CAAC;AAEF,eAAO,MAAM,6BAA6B,YAAY,GAAG,6CAAyC,MAAM;;;;;;;;;;;EA6BvG,CAAC"}
@@ -87,7 +87,7 @@ const performRevocationRequestAsync = (fetch) => (url, token, token_type = expor
87
87
  };
88
88
  });
89
89
  exports.performRevocationRequestAsync = performRevocationRequestAsync;
90
- const performTokenRequestAsync = (url, details, extras, oldTokens, tokenRenewMode, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
90
+ const performTokenRequestAsync = (fetch) => (url, details, extras, oldTokens, tokenRenewMode, timeoutMs = 10000) => __awaiter(void 0, void 0, void 0, function* () {
91
91
  for (const [key, value] of Object.entries(extras)) {
92
92
  if (details[key] === undefined) {
93
93
  details[key] = value;
@@ -1 +1 @@
1
- {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requests.js","sourceRoot":"","sources":["../../src/oidc/vanilla/requests.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { Fetch } from '../FetchToken';
1
2
  import { LoginCallback, Oidc } from './oidc.js';
2
3
  import { Tokens, ValidToken } from './parseTokens.js';
3
4
  import { OidcConfiguration, StringMap } from './types.js';
@@ -10,7 +11,7 @@ export declare class VanillaOidc {
10
11
  subscribeEvents(func: EventSubscriber): string;
11
12
  removeEventSubscription(id: string): void;
12
13
  publishEvent(eventName: string, data: any): void;
13
- static getOrCreate(configuration: OidcConfiguration, name?: string): VanillaOidc;
14
+ static getOrCreate: (fetch?: Fetch) => (configuration: OidcConfiguration, name?: string) => VanillaOidc;
14
15
  static get(name?: string): VanillaOidc;
15
16
  static eventNames: {
16
17
  service_worker_not_supported_by_browser: string;
@@ -1 +1 @@
1
- {"version":3,"file":"vanillaOidc.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vanillaOidc.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAC,GAAG,OAAE;CAC5B;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,KAAK,CAAO;gBACR,IAAI,EAAE,IAAI;IAItB,eAAe,CAAC,IAAI,EAAC,eAAe,GAAE,MAAM;IAI5C,uBAAuB,CAAC,EAAE,EAAC,MAAM,GAAE,IAAI;IAIvC,YAAY,CAAC,SAAS,EAAC,MAAM,EAAE,IAAI,EAAC,GAAG,GAAI,IAAI;IAI/C,MAAM,CAAC,WAAW,WAAW,KAAK,qBAAmC,iBAAiB,oBAAqB,WAAW,CAEpH;IAEF,MAAM,CAAC,GAAG,CAAC,IAAI,SAAY,GAAE,WAAW;IAIxC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAmB;IACpC,2BAA2B,IAAG,OAAO,CAAC,OAAO,CAAC;IAI9C,UAAU,CAAC,YAAY,GAAC,MAAkB,EAAE,MAAM,GAAC,SAAgB,EAAE,cAAc,UAAQ,EAAE,KAAK,GAAC,MAAkB,EAAE,eAAe,UAAQ,GAAE,OAAO,CAAC,IAAI,CAAC;IAI7J,WAAW,CAAC,iBAAiB,GAAE,MAAM,GAAG,IAAI,GAAG,SAAqB,EAAE,MAAM,GAAE,SAAgB,GAAE,OAAO,CAAC,IAAI,CAAC;IAI7G,wBAAwB,IAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,gBAAgB,CAAC,MAAM,GAAC,SAAgB,GAAE,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB,IAAG,OAAO,CAAC,aAAa,CAAC;IAI3C,IAAI,MAAM,IAAG,MAAM,CAElB;IAED,IAAI,aAAa,IAAG,iBAAiB,CAEpC;IAEK,kBAAkB,CAAC,MAAM,SAAM,EAAE,UAAU,SAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,aAAa,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,KAAI,OAAO,CAAC,CAAC,CAAC;CAG1E;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -25,9 +25,6 @@ class VanillaOidc {
25
25
  publishEvent(eventName, data) {
26
26
  this._oidc.publishEvent(eventName, data);
27
27
  }
28
- static getOrCreate(configuration, name = 'default') {
29
- return new VanillaOidc(oidc_js_1.Oidc.getOrCreate(configuration, name));
30
- }
31
28
  static get(name = 'default') {
32
29
  return new VanillaOidc(oidc_js_1.Oidc.get(name));
33
30
  }
@@ -67,5 +64,8 @@ class VanillaOidc {
67
64
  }
68
65
  }
69
66
  exports.VanillaOidc = VanillaOidc;
67
+ VanillaOidc.getOrCreate = (fetch = window.fetch) => (configuration, name = 'default') => {
68
+ return new VanillaOidc(oidc_js_1.Oidc.getOrCreate(fetch)(configuration, name));
69
+ };
70
70
  VanillaOidc.eventNames = oidc_js_1.Oidc.eventNames;
71
71
  //# sourceMappingURL=vanillaOidc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vanillaOidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uCAAgD;AAChD,qDAA0E;AAO1E,MAAa,WAAW;IAEpB,YAAY,IAAU;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,IAAoB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB,CAAC,EAAS;QAC7B,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,SAAgB,EAAE,IAAQ;QACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,aAA+B,EAAE,IAAI,GAAG,SAAS;QAChE,OAAO,IAAI,WAAW,CAAC,cAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS;QACvB,OAAO,IAAI,WAAW,CAAC,cAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAGD,2BAA2B;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,eAAsB,SAAS,EAAE,SAAmB,IAAI,EAAE,cAAc,GAAG,KAAK,EAAE,QAAe,SAAS,EAAE,eAAe,GAAG,KAAK;QAC1I,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IAED,WAAW,CAAC,oBAA+C,SAAS,EAAE,SAAoB,IAAI;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACjD,CAAC;IAED,gBAAgB,CAAC,SAAmB,IAAI;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACpC,CAAC;IAEK,kBAAkB,CAAC,MAAM,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE;;YAClD,OAAO,IAAA,mCAAkB,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;KAAA;IAEK,aAAa;;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC;KAAA;;AAjEL,kCAkEC;AAxCU,sBAAU,GAAG,cAAI,CAAC,UAAU,CAAC"}
1
+ {"version":3,"file":"vanillaOidc.js","sourceRoot":"","sources":["../../src/oidc/vanilla/vanillaOidc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,uCAAgD;AAChD,qDAA0E;AAO1E,MAAa,WAAW;IAEpB,YAAY,IAAU;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,eAAe,CAAC,IAAoB;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB,CAAC,EAAS;QAC7B,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,SAAgB,EAAE,IAAQ;QACnC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAMD,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,SAAS;QACvB,OAAO,IAAI,WAAW,CAAC,cAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAGD,2BAA2B;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,eAAsB,SAAS,EAAE,SAAmB,IAAI,EAAE,cAAc,GAAG,KAAK,EAAE,QAAe,SAAS,EAAE,eAAe,GAAG,KAAK;QAC1I,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAC/F,CAAC;IAED,WAAW,CAAC,oBAA+C,SAAS,EAAE,SAAoB,IAAI;QAC1F,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;IACjD,CAAC;IAED,gBAAgB,CAAC,SAAmB,IAAI;QACpC,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;IACpC,CAAC;IAEK,kBAAkB,CAAC,MAAM,GAAG,GAAG,EAAE,UAAU,GAAG,EAAE;;YAClD,OAAO,IAAA,mCAAkB,EAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC9D,CAAC;KAAA;IAEK,aAAa;;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACtC,CAAC;KAAA;;AAjEL,kCAkEC;AAhDU,uBAAW,GAAG,CAAC,QAAe,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,aAA+B,EAAE,IAAI,GAAG,SAAS,EAAe,EAAE;IACrH,OAAO,IAAI,WAAW,CAAC,cAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAMK,sBAAU,GAAG,cAAI,CAAC,UAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axa-fr/react-oidc",
3
- "version": "6.20.0",
3
+ "version": "6.21.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "jsnext:main": "dist/index.js",
@@ -301,13 +301,11 @@ const handleMessage = (event: ExtendableMessageEvent) => {
301
301
  configurationName,
302
302
  hideAccessToken: !trustedDomainsShowAccessToken[configurationName],
303
303
  };
304
- console.log(database[configurationName]);
305
304
  currentDatabase = database[configurationName];
306
305
 
307
306
  if (!trustedDomains[configurationName]) {
308
307
  trustedDomains[configurationName] = [];
309
308
  }
310
-
311
309
  }
312
310
 
313
311
  switch (data.type) {
@@ -1,2 +1,2 @@
1
- "use strict";const N="OidcTrustedDomains.js",A="*",_={REFRESH_TOKEN:"REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER",ACCESS_TOKEN:"ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER",NONCE_TOKEN:"NONCE_SECURED_BY_OIDC_SERVICE_WORKER",CODE_VERIFIER:"CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER"},w={access_token_or_id_token_invalid:"access_token_or_id_token_invalid",access_token_invalid:"access_token_invalid",id_token_invalid:"id_token_invalid"},I="/.well-known/openid-configuration";function x(o,e){if(!e)return;if(!o.find(n=>{var i;let t;return typeof n=="string"?t=new RegExp(`^${n}`):t=n,(i=t.test)==null?void 0:i.call(t,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+N)}const K=(o,e,s)=>{var n;if(e.endsWith(I))return null;for(const[t,i]of Object.entries(o)){const d=i.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=s==null?[]:s[t],f=Array.isArray(l)?l:l.domains,a=d.userInfoEndpoint?[d.userInfoEndpoint,...f]:[...f];let c=!1;if(a.find(h=>h===A))c=!0;else for(let h=0;h<a.length;h++){let r=a[h];if(typeof r=="string"&&(r=new RegExp(`^${r}`)),(n=r.test)!=null&&n.call(r,e)){c=!0;break}}if(c)return i.tokens?i:null}return null};function M(o,e){return o.split(e).length-1}function U(o){return JSON.parse(P(o.split(".")[1].replace("-","+").replace("_","/")))}function P(o){return decodeURIComponent(Array.prototype.map.call(atob(o),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function W(o,e){const s=new Date().getTime()/1e3;return Math.round(e-o-s)}function F(o){return o?W(0,o.expiresAt)>0:!1}const O=o=>{try{return o&&M(o,".")===2?U(o):null}catch(e){console.warn(e)}return null},b=(o,e,s)=>{if(o.idTokenPayload){const n=o.idTokenPayload;if(s.issuer!==n.iss)return{isValid:!1,reason:"Issuer does not match"};const t=new Date().getTime()/1e3;if(n.exp&&n.exp<t)return{isValid:!1,reason:"Token expired"};const i=60*60*24*7;if(n.iat&&n.iat+i<t)return{isValid:!1,reason:"Token is used from too long time"};if(n.nonce&&n.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function q(o,e,s){if(!o.issued_at){const u=new Date().getTime()/1e3;o.issued_at=u}const n=O(o.access_token),t={...o,accessTokenPayload:n};e.hideAccessToken&&(t.access_token=_.ACCESS_TOKEN+"_"+s),o.accessTokenPayload=n;let i=null;if(o.id_token){if(i=O(o.id_token),o.idTokenPayload={...i},i.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;i.nonce=u}t.idTokenPayload=i}o.refresh_token&&(t.refresh_token=_.REFRESH_TOKEN+"_"+s);const d=i&&i.exp?i.exp:Number.MAX_VALUE,l=n&&n.exp?n.exp:o.issued_at+o.expires_in;let f;const a=e.oidcConfiguration.token_renew_mode;a===w.access_token_invalid?f=l:a===w.id_token_invalid?f=d:f=d<l?d:l,t.expiresAt=f,o.expiresAt=f;const c=e.nonce?e.nonce.nonce:null,{isValid:h,reason:r}=b(o,c,e.oidcServerConfiguration);if(!h)throw Error(`Tokens are not OpenID valid, reason: ${r}`);if(e.tokens!=null&&"refresh_token"in e.tokens&&!("refresh_token"in o)){const u=e.tokens.refresh_token;e.tokens={...o,refresh_token:u}}else e.tokens=o;return e.status="LOGGED_IN",t}function y(o){const e=o.configurationName;return s=>s.status!==200?s:s.json().then(n=>{const t=q(n,o,e),i=JSON.stringify(t);return new Response(i,s)})}function T(o){const e={};for(const s of o.keys())o.has(s)&&(e[s]=o.get(s));return e}const D=o=>new Promise(e=>setTimeout(e,o)),p=self;p.importScripts(N);const V=Math.round(new Date().getTime()/1e3).toString(),L="OidcKeepAliveServiceWorker.json",H=o=>{console.log("[OidcServiceWorker] service worker installed "+V),o.waitUntil(p.skipWaiting())},j=o=>{console.log("[OidcServiceWorker] service worker activated "+V),o.waitUntil(p.clients.claim())};let m=null;const E={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},J=(o,e)=>{const s=[];for(const[,n]of Object.entries(o))(n.oidcServerConfiguration!=null&&e.startsWith(n.oidcServerConfiguration.tokenEndpoint)||n.oidcServerConfiguration!=null&&n.oidcServerConfiguration.revocationEndpoint&&e.startsWith(n.oidcServerConfiguration.revocationEndpoint))&&s.push(n);return s},Y=async o=>{const e=o.request,s=e.headers.has("oidc-vanilla"),n={status:200,statusText:"oidc-service-worker"},t=new Response("{}",n);if(!s){const i=new URL(e.url),d=Number(i.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await D(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(o.request,t.clone())}return t},z=async o=>{const e=o.request,s=e.url;if(e.url.includes(L)){o.respondWith(Y(o));return}const n=K(E,e.url,trustedDomains);if(n&&n.tokens&&n.tokens.access_token){for(;n.tokens&&!F(n.tokens);)await D(200);const l=e.mode=="navigate"?new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+n.tokens.access_token}}):new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+n.tokens.access_token},mode:n.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});o.waitUntil(o.respondWith(fetch(l)));return}if(o.request.method!=="POST")return;let t=null;const i=J(E,e.url),d=i.length;if(d>0){const l=new Promise((f,a)=>{const c=e.clone();c.text().then(r=>{if(r.includes(_.REFRESH_TOKEN)||r.includes(_.ACCESS_TOKEN)){let u=r;for(let g=0;g<d;g++){const k=i[g];if(k&&k.tokens!=null){const R=_.REFRESH_TOKEN+"_"+k.configurationName;if(r.includes(R)){u=u.replace(R,encodeURIComponent(k.tokens.refresh_token)),t=k;break}const v=_.ACCESS_TOKEN+"_"+k.configurationName;if(r.includes(v)){u=u.replace(v,encodeURIComponent(k.tokens.access_token)),t=k;break}}}const S=fetch(e,{body:u,method:c.method,headers:{...T(e.headers)},mode:c.mode,cache:c.cache,redirect:c.redirect,referrer:c.referrer,credentials:c.credentials,integrity:c.integrity});return t&&t.oidcServerConfiguration!=null&&t.oidcServerConfiguration.revocationEndpoint&&s.startsWith(t.oidcServerConfiguration.revocationEndpoint)?S.then(async g=>{const k=await g.text();return new Response(k,g)}):S.then(y(t))}else if(r.includes("code_verifier=")&&m){t=E[m],m=null;let u=r;if(t&&t.codeVerifier!=null){const S=_.CODE_VERIFIER+"_"+t.configurationName;r.includes(S)&&(u=u.replace(S,t.codeVerifier))}return fetch(e,{body:u,method:c.method,headers:{...T(e.headers)},mode:c.mode,cache:c.cache,redirect:c.redirect,referrer:c.referrer,credentials:c.credentials,integrity:c.integrity}).then(y(t))}}).then(r=>{r!==void 0?f(r):(console.log("success undefined"),a(new Error("Response is undefined inside a success")))}).catch(r=>{r!==void 0?a(r):(console.log("error undefined"),a(new Error("Response is undefined inside a error")))})});o.waitUntil(o.respondWith(l))}},C={},$=o=>{const e=o.ports[0],s=o.data,n=s.configurationName;let t=E[n];if(trustedDomains==null&&(trustedDomains={}),!t){if(C[n]===void 0){let i=trustedDomains[n];C[n]=Array.isArray(i)?!1:i.showAccessToken}E[n]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:n,hideAccessToken:!C[n]},console.log(E[n]),t=E[n],trustedDomains[n]||(trustedDomains[n]=[])}switch(s.type){case"clear":t.tokens=null,t.state=null,t.codeVerifier=null,t.status=s.data.status,e.postMessage({configurationName:n});return;case"init":{const i=s.data.oidcServerConfiguration;let d=trustedDomains[n];const l=Array.isArray(d)?d:d.domains;l.find(a=>a===A)||[i.tokenEndpoint,i.revocationEndpoint,i.userInfoEndpoint,i.issuer].forEach(a=>{x(l,a)}),t.oidcServerConfiguration=i,t.oidcConfiguration=s.data.oidcConfiguration;const f=s.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?m=n:m=null,!t.tokens)e.postMessage({tokens:null,status:t.status,configurationName:n});else{const a={...t.tokens};t.hideAccessToken&&(a.access_token=_.ACCESS_TOKEN+"_"+n),a.refresh_token&&(a.refresh_token=_.REFRESH_TOKEN+"_"+n),a.idTokenPayload&&a.idTokenPayload.nonce&&t.nonce!=null&&(a.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+n),e.postMessage({tokens:a,status:t.status,configurationName:n})}return}case"setState":t.state=s.data.state,e.postMessage({configurationName:n});return;case"getState":{const i=t.state;e.postMessage({configurationName:n,state:i});return}case"setCodeVerifier":t.codeVerifier=s.data.codeVerifier,e.postMessage({configurationName:n});return;case"getCodeVerifier":{e.postMessage({configurationName:n,codeVerifier:_.CODE_VERIFIER+"_"+n});return}case"setSessionState":t.sessionState=s.data.sessionState,e.postMessage({configurationName:n});return;case"getSessionState":{const i=t.sessionState;e.postMessage({configurationName:n,sessionState:i});return}case"setNonce":t.nonce=s.data.nonce,e.postMessage({configurationName:n});return;default:t.items={...s.data},e.postMessage({configurationName:n})}};p.addEventListener("install",H);p.addEventListener("activate",j);p.addEventListener("fetch",z);p.addEventListener("message",$);
1
+ "use strict";const N="OidcTrustedDomains.js",A="*",_={REFRESH_TOKEN:"REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER",ACCESS_TOKEN:"ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER",NONCE_TOKEN:"NONCE_SECURED_BY_OIDC_SERVICE_WORKER",CODE_VERIFIER:"CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER"},w={access_token_or_id_token_invalid:"access_token_or_id_token_invalid",access_token_invalid:"access_token_invalid",id_token_invalid:"id_token_invalid"},I="/.well-known/openid-configuration";function x(t,e){if(!e)return;if(!t.find(n=>{var i;let o;return typeof n=="string"?o=new RegExp(`^${n}`):o=n,(i=o.test)==null?void 0:i.call(o,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+N)}const K=(t,e,s)=>{var n;if(e.endsWith(I))return null;for(const[o,i]of Object.entries(t)){const d=i.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=s==null?[]:s[o],f=Array.isArray(l)?l:l.domains,a=d.userInfoEndpoint?[d.userInfoEndpoint,...f]:[...f];let c=!1;if(a.find(h=>h===A))c=!0;else for(let h=0;h<a.length;h++){let r=a[h];if(typeof r=="string"&&(r=new RegExp(`^${r}`)),(n=r.test)!=null&&n.call(r,e)){c=!0;break}}if(c)return i.tokens?i:null}return null};function M(t,e){return t.split(e).length-1}function U(t){return JSON.parse(P(t.split(".")[1].replace("-","+").replace("_","/")))}function P(t){return decodeURIComponent(Array.prototype.map.call(atob(t),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function W(t,e){const s=new Date().getTime()/1e3;return Math.round(e-t-s)}function F(t){return t?W(0,t.expiresAt)>0:!1}const O=t=>{try{return t&&M(t,".")===2?U(t):null}catch(e){console.warn(e)}return null},b=(t,e,s)=>{if(t.idTokenPayload){const n=t.idTokenPayload;if(s.issuer!==n.iss)return{isValid:!1,reason:"Issuer does not match"};const o=new Date().getTime()/1e3;if(n.exp&&n.exp<o)return{isValid:!1,reason:"Token expired"};const i=60*60*24*7;if(n.iat&&n.iat+i<o)return{isValid:!1,reason:"Token is used from too long time"};if(n.nonce&&n.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function q(t,e,s){if(!t.issued_at){const u=new Date().getTime()/1e3;t.issued_at=u}const n=O(t.access_token),o={...t,accessTokenPayload:n};e.hideAccessToken&&(o.access_token=_.ACCESS_TOKEN+"_"+s),t.accessTokenPayload=n;let i=null;if(t.id_token){if(i=O(t.id_token),t.idTokenPayload={...i},i.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;i.nonce=u}o.idTokenPayload=i}t.refresh_token&&(o.refresh_token=_.REFRESH_TOKEN+"_"+s);const d=i&&i.exp?i.exp:Number.MAX_VALUE,l=n&&n.exp?n.exp:t.issued_at+t.expires_in;let f;const a=e.oidcConfiguration.token_renew_mode;a===w.access_token_invalid?f=l:a===w.id_token_invalid?f=d:f=d<l?d:l,o.expiresAt=f,t.expiresAt=f;const c=e.nonce?e.nonce.nonce:null,{isValid:h,reason:r}=b(t,c,e.oidcServerConfiguration);if(!h)throw Error(`Tokens are not OpenID valid, reason: ${r}`);if(e.tokens!=null&&"refresh_token"in e.tokens&&!("refresh_token"in t)){const u=e.tokens.refresh_token;e.tokens={...t,refresh_token:u}}else e.tokens=t;return e.status="LOGGED_IN",o}function y(t){const e=t.configurationName;return s=>s.status!==200?s:s.json().then(n=>{const o=q(n,t,e),i=JSON.stringify(o);return new Response(i,s)})}function T(t){const e={};for(const s of t.keys())t.has(s)&&(e[s]=t.get(s));return e}const D=t=>new Promise(e=>setTimeout(e,t)),E=self;E.importScripts(N);const V=Math.round(new Date().getTime()/1e3).toString(),L="OidcKeepAliveServiceWorker.json",H=t=>{console.log("[OidcServiceWorker] service worker installed "+V),t.waitUntil(E.skipWaiting())},j=t=>{console.log("[OidcServiceWorker] service worker activated "+V),t.waitUntil(E.clients.claim())};let m=null;const g={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},J=(t,e)=>{const s=[];for(const[,n]of Object.entries(t))(n.oidcServerConfiguration!=null&&e.startsWith(n.oidcServerConfiguration.tokenEndpoint)||n.oidcServerConfiguration!=null&&n.oidcServerConfiguration.revocationEndpoint&&e.startsWith(n.oidcServerConfiguration.revocationEndpoint))&&s.push(n);return s},Y=async t=>{const e=t.request,s=e.headers.has("oidc-vanilla"),n={status:200,statusText:"oidc-service-worker"},o=new Response("{}",n);if(!s){const i=new URL(e.url),d=Number(i.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await D(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(t.request,o.clone())}return o},z=async t=>{const e=t.request,s=e.url;if(e.url.includes(L)){t.respondWith(Y(t));return}const n=K(g,e.url,trustedDomains);if(n&&n.tokens&&n.tokens.access_token){for(;n.tokens&&!F(n.tokens);)await D(200);const l=e.mode=="navigate"?new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+n.tokens.access_token}}):new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+n.tokens.access_token},mode:n.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});t.waitUntil(t.respondWith(fetch(l)));return}if(t.request.method!=="POST")return;let o=null;const i=J(g,e.url),d=i.length;if(d>0){const l=new Promise((f,a)=>{const c=e.clone();c.text().then(r=>{if(r.includes(_.REFRESH_TOKEN)||r.includes(_.ACCESS_TOKEN)){let u=r;for(let p=0;p<d;p++){const k=i[p];if(k&&k.tokens!=null){const R=_.REFRESH_TOKEN+"_"+k.configurationName;if(r.includes(R)){u=u.replace(R,encodeURIComponent(k.tokens.refresh_token)),o=k;break}const v=_.ACCESS_TOKEN+"_"+k.configurationName;if(r.includes(v)){u=u.replace(v,encodeURIComponent(k.tokens.access_token)),o=k;break}}}const S=fetch(e,{body:u,method:c.method,headers:{...T(e.headers)},mode:c.mode,cache:c.cache,redirect:c.redirect,referrer:c.referrer,credentials:c.credentials,integrity:c.integrity});return o&&o.oidcServerConfiguration!=null&&o.oidcServerConfiguration.revocationEndpoint&&s.startsWith(o.oidcServerConfiguration.revocationEndpoint)?S.then(async p=>{const k=await p.text();return new Response(k,p)}):S.then(y(o))}else if(r.includes("code_verifier=")&&m){o=g[m],m=null;let u=r;if(o&&o.codeVerifier!=null){const S=_.CODE_VERIFIER+"_"+o.configurationName;r.includes(S)&&(u=u.replace(S,o.codeVerifier))}return fetch(e,{body:u,method:c.method,headers:{...T(e.headers)},mode:c.mode,cache:c.cache,redirect:c.redirect,referrer:c.referrer,credentials:c.credentials,integrity:c.integrity}).then(y(o))}}).then(r=>{r!==void 0?f(r):(console.log("success undefined"),a(new Error("Response is undefined inside a success")))}).catch(r=>{r!==void 0?a(r):(console.log("error undefined"),a(new Error("Response is undefined inside a error")))})});t.waitUntil(t.respondWith(l))}},C={},$=t=>{const e=t.ports[0],s=t.data,n=s.configurationName;let o=g[n];if(trustedDomains==null&&(trustedDomains={}),!o){if(C[n]===void 0){let i=trustedDomains[n];C[n]=Array.isArray(i)?!1:i.showAccessToken}g[n]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:n,hideAccessToken:!C[n]},o=g[n],trustedDomains[n]||(trustedDomains[n]=[])}switch(s.type){case"clear":o.tokens=null,o.state=null,o.codeVerifier=null,o.status=s.data.status,e.postMessage({configurationName:n});return;case"init":{const i=s.data.oidcServerConfiguration;let d=trustedDomains[n];const l=Array.isArray(d)?d:d.domains;l.find(a=>a===A)||[i.tokenEndpoint,i.revocationEndpoint,i.userInfoEndpoint,i.issuer].forEach(a=>{x(l,a)}),o.oidcServerConfiguration=i,o.oidcConfiguration=s.data.oidcConfiguration;const f=s.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?m=n:m=null,!o.tokens)e.postMessage({tokens:null,status:o.status,configurationName:n});else{const a={...o.tokens};o.hideAccessToken&&(a.access_token=_.ACCESS_TOKEN+"_"+n),a.refresh_token&&(a.refresh_token=_.REFRESH_TOKEN+"_"+n),a.idTokenPayload&&a.idTokenPayload.nonce&&o.nonce!=null&&(a.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+n),e.postMessage({tokens:a,status:o.status,configurationName:n})}return}case"setState":o.state=s.data.state,e.postMessage({configurationName:n});return;case"getState":{const i=o.state;e.postMessage({configurationName:n,state:i});return}case"setCodeVerifier":o.codeVerifier=s.data.codeVerifier,e.postMessage({configurationName:n});return;case"getCodeVerifier":{e.postMessage({configurationName:n,codeVerifier:_.CODE_VERIFIER+"_"+n});return}case"setSessionState":o.sessionState=s.data.sessionState,e.postMessage({configurationName:n});return;case"getSessionState":{const i=o.sessionState;e.postMessage({configurationName:n,sessionState:i});return}case"setNonce":o.nonce=s.data.nonce,e.postMessage({configurationName:n});return;default:o.items={...s.data},e.postMessage({configurationName:n})}};E.addEventListener("install",H);E.addEventListener("activate",j);E.addEventListener("fetch",z);E.addEventListener("message",$);
2
2
  //# sourceMappingURL=OidcServiceWorker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OidcServiceWorker.js","sources":["../constants.ts","../utils/domains.ts","../utils/strings.ts","../utils/tokens.ts","../utils/serializeHeaders.ts","../utils/sleep.ts","../OidcServiceWorker.ts"],"sourcesContent":["const scriptFilename = 'OidcTrustedDomains.js'; /* global trustedDomains */\nconst acceptAnyDomainToken = '*';\n\ntype TokenType = {\n readonly REFRESH_TOKEN: string;\n readonly ACCESS_TOKEN: string;\n readonly NONCE_TOKEN: string;\n readonly CODE_VERIFIER: string;\n};\n\nconst TOKEN: TokenType = {\n REFRESH_TOKEN: 'REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\n ACCESS_TOKEN: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\n NONCE_TOKEN: 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER',\n CODE_VERIFIER: 'CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER',\n};\n\ntype TokenRenewModeType = {\n readonly access_token_or_id_token_invalid: string;\n readonly access_token_invalid: string;\n readonly id_token_invalid: string;\n};\n\nconst TokenRenewMode: TokenRenewModeType = {\n access_token_or_id_token_invalid: 'access_token_or_id_token_invalid',\n access_token_invalid: 'access_token_invalid',\n id_token_invalid: 'id_token_invalid',\n};\n\nconst openidWellknownUrlEndWith = '/.well-known/openid-configuration';\n\nexport { scriptFilename, acceptAnyDomainToken, TOKEN, TokenRenewMode, openidWellknownUrlEndWith };\n","import { TrustedDomains } from './../types';\nimport {\n acceptAnyDomainToken,\n openidWellknownUrlEndWith,\n scriptFilename,\n} from '../constants';\nimport { Database, Domain, OidcConfig } from '../types';\n\nfunction checkDomain(domains: Domain[], endpoint: string) {\n if (!endpoint) {\n return;\n }\n\n const domain = domains.find((domain) => {\n let testable: RegExp;\n\n if (typeof domain === 'string') {\n testable = new RegExp(`^${domain}`);\n } else {\n testable = domain;\n }\n\n return testable.test?.(endpoint);\n });\n if (!domain) {\n throw new Error(\n 'Domain ' +\n endpoint +\n ' is not trusted, please add domain in ' +\n scriptFilename\n );\n }\n}\n\nconst getCurrentDatabaseDomain = (\n database: Database,\n url: string,\n trustedDomains: TrustedDomains\n) => {\n if (url.endsWith(openidWellknownUrlEndWith)) {\n return null;\n }\n for (const [key, currentDatabase] of Object.entries<OidcConfig>(database)) {\n const oidcServerConfiguration = currentDatabase.oidcServerConfiguration;\n\n if (!oidcServerConfiguration) {\n continue;\n }\n\n if (\n oidcServerConfiguration.tokenEndpoint &&\n url === oidcServerConfiguration.tokenEndpoint\n ) {\n continue;\n }\n if (\n oidcServerConfiguration.revocationEndpoint &&\n url === oidcServerConfiguration.revocationEndpoint\n ) {\n continue;\n }\n const trustedDomain = trustedDomains == null ? [] : trustedDomains[key];\n const domains = Array.isArray(trustedDomain) ? trustedDomain : trustedDomain.domains;\n const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint\n ? [oidcServerConfiguration.userInfoEndpoint, ...domains]\n : [...domains];\n\n let hasToSendToken = false;\n if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) {\n hasToSendToken = true;\n } else {\n for (let i = 0; i < domainsToSendTokens.length; i++) {\n let domain = domainsToSendTokens[i];\n\n if (typeof domain === 'string') {\n domain = new RegExp(`^${domain}`);\n }\n\n if (domain.test?.(url)) {\n hasToSendToken = true;\n break;\n }\n }\n }\n\n if (hasToSendToken) {\n if (!currentDatabase.tokens) {\n return null;\n }\n return currentDatabase;\n }\n }\n return null;\n};\n\nexport { checkDomain, getCurrentDatabaseDomain };\n","/**\n * Count occurances of letter in string\n * @param str\n * @param find\n * @returns\n */\nexport function countLetter(str: string, find: string) {\n return str.split(find).length - 1;\n}\n","import { TOKEN, TokenRenewMode } from '../constants';\nimport { OidcConfig, OidcConfiguration, OidcServerConfiguration, Tokens } from '../types';\nimport { countLetter } from './strings';\n\nfunction parseJwt(token: string) {\n return JSON.parse(\n b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/'))\n );\n}\nfunction b64DecodeUnicode(str: string) {\n return decodeURIComponent(\n Array.prototype.map\n .call(\n atob(str),\n (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n )\n .join('')\n );\n}\n\nfunction computeTimeLeft(\n refreshTimeBeforeTokensExpirationInSecond: number,\n expiresAt: number\n) {\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n return Math.round(\n expiresAt -\n refreshTimeBeforeTokensExpirationInSecond -\n currentTimeUnixSecond\n );\n}\n\nfunction isTokensValid(tokens: Tokens | null) {\n if (!tokens) {\n return false;\n }\n return computeTimeLeft(0, tokens.expiresAt) > 0;\n}\n\nconst extractTokenPayload = (token?: string) => {\n try {\n if (!token) {\n return null;\n }\n if (countLetter(token, '.') === 2) {\n return parseJwt(token);\n } else {\n return null;\n }\n } catch (e) {\n console.warn(e);\n }\n return null;\n};\n\n// https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation (excluding rules #1, #4, #5, #7, #8, #12, and #13 which did not apply).\n// https://github.com/openid/AppAuth-JS/issues/65\nconst isTokensOidcValid = (\n tokens: Tokens,\n nonce: string | null,\n oidcServerConfiguration: OidcServerConfiguration\n): { isValid: boolean; reason: string } => {\n if (tokens.idTokenPayload) {\n const idTokenPayload = tokens.idTokenPayload;\n // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim.\n if (oidcServerConfiguration.issuer !== idTokenPayload.iss) {\n return { isValid: false, reason: 'Issuer does not match' };\n }\n // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.\n\n // 6: If the ID Token is received via direct communication between the Client and the Token Endpoint (which it is in this flow), the TLS server validation MAY be used to validate the issuer in place of checking the token signature. The Client MUST validate the signature of all other ID Tokens according to JWS [JWS] using the algorithm specified in the JWT alg Header Parameter. The Client MUST use the keys provided by the Issuer.\n\n // 9: The current time MUST be before the time represented by the exp Claim.\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) {\n return { isValid: false, reason: 'Token expired' };\n }\n // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific.\n const timeInSevenDays = 60 * 60 * 24 * 7;\n if (\n idTokenPayload.iat &&\n idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond\n ) {\n return { isValid: false, reason: 'Token is used from too long time' };\n }\n // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific.\n if (idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {\n return { isValid: false, reason: 'Nonce does not match' };\n }\n }\n return { isValid: true, reason: '' };\n};\n\nfunction _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string) {\n if (!tokens.issued_at) {\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n tokens.issued_at = currentTimeUnixSecond;\n }\n\n const accessTokenPayload = extractTokenPayload(tokens.access_token);\n const secureTokens = {\n ...tokens,\n accessTokenPayload,\n };\n if (currentDatabaseElement.hideAccessToken) {\n secureTokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\n }\n tokens.accessTokenPayload = accessTokenPayload;\n\n let _idTokenPayload = null;\n if (tokens.id_token) {\n _idTokenPayload = extractTokenPayload(tokens.id_token);\n tokens.idTokenPayload = {..._idTokenPayload};\n if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) {\n const keyNonce =\n TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName;\n _idTokenPayload.nonce = keyNonce;\n }\n secureTokens.idTokenPayload = _idTokenPayload;\n }\n if (tokens.refresh_token) {\n secureTokens.refresh_token =\n TOKEN.REFRESH_TOKEN + '_' + configurationName;\n }\n\n const idTokenExpiresAt =\n _idTokenPayload && _idTokenPayload.exp\n ? _idTokenPayload.exp\n : Number.MAX_VALUE;\n const accessTokenExpiresAt =\n accessTokenPayload && accessTokenPayload.exp\n ? accessTokenPayload.exp\n : tokens.issued_at + tokens.expires_in;\n\n let expiresAt: number;\n const tokenRenewMode = (\n currentDatabaseElement.oidcConfiguration as OidcConfiguration\n ).token_renew_mode;\n if (tokenRenewMode === TokenRenewMode.access_token_invalid) {\n expiresAt = accessTokenExpiresAt;\n } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) {\n expiresAt = idTokenExpiresAt;\n } else {\n expiresAt =\n idTokenExpiresAt < accessTokenExpiresAt\n ? idTokenExpiresAt\n : accessTokenExpiresAt;\n }\n secureTokens.expiresAt = expiresAt;\n\n tokens.expiresAt = expiresAt;\n const nonce = currentDatabaseElement.nonce\n ? currentDatabaseElement.nonce.nonce\n : null;\n const {isValid, reason} = isTokensOidcValid(\n tokens,\n nonce,\n currentDatabaseElement.oidcServerConfiguration as OidcServerConfiguration\n ); //TODO: Type assertion, could be null.\n if (!isValid) {\n throw Error(`Tokens are not OpenID valid, reason: ${reason}`);\n }\n\n // When refresh_token is not rotated we reuse ald refresh_token\n if (\n currentDatabaseElement.tokens != null &&\n 'refresh_token' in currentDatabaseElement.tokens &&\n !('refresh_token' in tokens)\n ) {\n const refreshToken = currentDatabaseElement.tokens.refresh_token;\n\n currentDatabaseElement.tokens = {\n ...tokens,\n refresh_token: refreshToken,\n };\n } else {\n currentDatabaseElement.tokens = tokens;\n }\n\n currentDatabaseElement.status = 'LOGGED_IN';\n return secureTokens;\n}\n\nfunction hideTokens(currentDatabaseElement: OidcConfig) {\n const configurationName = currentDatabaseElement.configurationName;\n return (response: Response) => {\n if (response.status !== 200) {\n return response;\n }\n return response.json().then<Response>((tokens: Tokens) => {\n const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName);\n const body = JSON.stringify(secureTokens);\n return new Response(body, response);\n });\n };\n}\n\nexport {\n b64DecodeUnicode,\n computeTimeLeft,\n isTokensValid,\n extractTokenPayload,\n isTokensOidcValid,\n hideTokens,\n _hideTokens\n};\n","import { FetchHeaders } from '../types';\n\nfunction serializeHeaders(headers: Headers) {\n const headersObj: Record<string, string> = {};\n for (const key of (headers as FetchHeaders).keys()) {\n if (headers.has(key)) {\n headersObj[key] = headers.get(key) as string;\n }\n }\n return headersObj;\n}\nexport {serializeHeaders};","const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\nexport { sleep };\n","import { acceptAnyDomainToken, TOKEN, scriptFilename } from './constants';\nimport {\n TrustedDomains,\n Database,\n OidcConfig,\n OidcConfiguration,\n MessageEventData,\n // TrustedDomainsShowAccessToken,\n} from './types';\nimport {\n checkDomain,\n getCurrentDatabaseDomain,\n hideTokens,\n isTokensValid,\n serializeHeaders,\n sleep,\n} from './utils';\n\nconst _self = self as ServiceWorkerGlobalScope & typeof globalThis;\n\ndeclare let trustedDomains: TrustedDomains;\n\n_self.importScripts(scriptFilename);\n\nconst id = Math.round(new Date().getTime() / 1000).toString();\n\nconst keepAliveJsonFilename = 'OidcKeepAliveServiceWorker.json';\nconst handleInstall = (event: ExtendableEvent) => {\n console.log('[OidcServiceWorker] service worker installed ' + id);\n event.waitUntil(_self.skipWaiting());\n};\n\nconst handleActivate = (event: ExtendableEvent) => {\n console.log('[OidcServiceWorker] service worker activated ' + id);\n event.waitUntil(_self.clients.claim());\n};\n\nlet currentLoginCallbackConfigurationName: string | null = null;\nconst database: Database = {\n default: {\n configurationName: 'default',\n tokens: null,\n status: null,\n state: null,\n codeVerifier: null,\n nonce: null,\n oidcServerConfiguration: null,\n hideAccessToken: true,\n },\n};\n\nconst getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => {\n const databases: OidcConfig[] = [];\n for (const [, value] of Object.entries<OidcConfig>(database)) {\n if (\n value.oidcServerConfiguration != null &&\n url.startsWith(value.oidcServerConfiguration.tokenEndpoint)\n ) {\n databases.push(value);\n } else if (\n value.oidcServerConfiguration != null &&\n value.oidcServerConfiguration.revocationEndpoint &&\n url.startsWith(value.oidcServerConfiguration.revocationEndpoint)\n ) {\n databases.push(value);\n }\n }\n return databases;\n};\n\nconst keepAliveAsync = async (event: FetchEvent) => {\n const originalRequest = event.request;\n const isFromVanilla = originalRequest.headers.has('oidc-vanilla');\n const init = { status: 200, statusText: 'oidc-service-worker' };\n const response = new Response('{}', init);\n if (!isFromVanilla) {\n const originalRequestUrl = new URL(originalRequest.url);\n const minSleepSeconds = Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240;\n for (let i = 0; i < minSleepSeconds; i++) {\n await sleep(1000 + Math.floor(Math.random() * 1000));\n const cache = await caches.open('oidc_dummy_cache');\n await cache.put(event.request, response.clone());\n }\n }\n return response;\n};\n\nconst handleFetch = async (event: FetchEvent) => {\n const originalRequest = event.request;\n const url = originalRequest.url;\n if (originalRequest.url.includes(keepAliveJsonFilename)) {\n event.respondWith(keepAliveAsync(event));\n return;\n }\n\n const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain(\n database,\n originalRequest.url,\n trustedDomains\n );\n if (\n currentDatabaseForRequestAccessToken &&\n currentDatabaseForRequestAccessToken.tokens &&\n currentDatabaseForRequestAccessToken.tokens.access_token\n ) {\n while (\n currentDatabaseForRequestAccessToken.tokens &&\n !isTokensValid(currentDatabaseForRequestAccessToken.tokens)\n ) {\n await sleep(200);\n }\n const newRequest =\n originalRequest.mode == 'navigate'\n ? new Request(originalRequest, {\n headers: {\n ...serializeHeaders(originalRequest.headers),\n authorization:\n 'Bearer ' +\n currentDatabaseForRequestAccessToken.tokens.access_token,\n },\n })\n : new Request(originalRequest, {\n headers: {\n ...serializeHeaders(originalRequest.headers),\n authorization:\n 'Bearer ' +\n currentDatabaseForRequestAccessToken.tokens.access_token,\n },\n mode: (\n currentDatabaseForRequestAccessToken.oidcConfiguration as OidcConfiguration\n ).service_worker_convert_all_requests_to_cors\n ? 'cors'\n : originalRequest.mode,\n });\n\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\n event.waitUntil(event.respondWith(fetch(newRequest)));\n\n return;\n }\n\n if (event.request.method !== 'POST') {\n return;\n }\n\n let currentDatabase: OidcConfig | null = null;\n const currentDatabases = getCurrentDatabasesTokenEndpoint(\n database,\n originalRequest.url\n );\n const numberDatabase = currentDatabases.length;\n if (numberDatabase > 0) {\n const maPromesse = new Promise<Response>((resolve, reject) => {\n const clonedRequest = originalRequest.clone();\n const response = clonedRequest.text().then((actualBody) => {\n if (\n actualBody.includes(TOKEN.REFRESH_TOKEN) ||\n actualBody.includes(TOKEN.ACCESS_TOKEN)\n ) {\n let newBody = actualBody;\n for (let i = 0; i < numberDatabase; i++) {\n const currentDb = currentDatabases[i];\n\n if (currentDb && currentDb.tokens != null) {\n const keyRefreshToken =\n TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName;\n if (actualBody.includes(keyRefreshToken)) {\n newBody = newBody.replace(\n keyRefreshToken,\n encodeURIComponent(currentDb.tokens.refresh_token as string)\n );\n currentDatabase = currentDb;\n break;\n }\n const keyAccessToken =\n TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName;\n if (actualBody.includes(keyAccessToken)) {\n newBody = newBody.replace(\n keyAccessToken,\n encodeURIComponent(currentDb.tokens.access_token)\n );\n currentDatabase = currentDb;\n break;\n }\n }\n }\n const fetchPromise = fetch(originalRequest, {\n body: newBody,\n method: clonedRequest.method,\n headers: {\n ...serializeHeaders(originalRequest.headers),\n },\n mode: clonedRequest.mode,\n cache: clonedRequest.cache,\n redirect: clonedRequest.redirect,\n referrer: clonedRequest.referrer,\n credentials: clonedRequest.credentials,\n integrity: clonedRequest.integrity,\n });\n\n if (\n currentDatabase &&\n currentDatabase.oidcServerConfiguration != null &&\n currentDatabase.oidcServerConfiguration.revocationEndpoint &&\n url.startsWith(\n currentDatabase.oidcServerConfiguration.revocationEndpoint\n )\n ) {\n return fetchPromise.then(async (response) => {\n const text = await response.text();\n return new Response(text, response);\n });\n }\n return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); //todo type assertion to OidcConfig but could be null, NEEDS REVIEW\n } else if (\n actualBody.includes('code_verifier=') &&\n currentLoginCallbackConfigurationName\n ) {\n currentDatabase = database[currentLoginCallbackConfigurationName];\n currentLoginCallbackConfigurationName = null;\n let newBody = actualBody;\n if (currentDatabase && currentDatabase.codeVerifier != null) {\n const keyCodeVerifier =\n TOKEN.CODE_VERIFIER + '_' + currentDatabase.configurationName;\n if (actualBody.includes(keyCodeVerifier)) {\n newBody = newBody.replace(\n keyCodeVerifier,\n currentDatabase.codeVerifier\n );\n }\n }\n\n return fetch(originalRequest, {\n body: newBody,\n method: clonedRequest.method,\n headers: {\n ...serializeHeaders(originalRequest.headers),\n },\n mode: clonedRequest.mode,\n cache: clonedRequest.cache,\n redirect: clonedRequest.redirect,\n referrer: clonedRequest.referrer,\n credentials: clonedRequest.credentials,\n integrity: clonedRequest.integrity,\n }).then(hideTokens(currentDatabase));\n }\n return undefined;\n });\n response\n .then((r) => {\n if (r !== undefined) {\n resolve(r);\n } else {\n console.log('success undefined');\n reject(new Error('Response is undefined inside a success'));\n }\n })\n .catch((err) => {\n if (err !== undefined) {\n reject(err);\n } else {\n console.log('error undefined');\n reject(new Error('Response is undefined inside a error'));\n }\n });\n });\n\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\n event.waitUntil(event.respondWith(maPromesse));\n }\n};\n\ntype TrustedDomainsShowAccessToken = {\n [key: string]: boolean\n}\n\nconst trustedDomainsShowAccessToken: TrustedDomainsShowAccessToken = {};\n\nconst handleMessage = (event: ExtendableMessageEvent) => {\n const port = event.ports[0];\n const data = event.data as MessageEventData;\n const configurationName = data.configurationName;\n let currentDatabase = database[configurationName];\n if(trustedDomains== null){\n trustedDomains = {};\n }\n if (!currentDatabase) {\n \n if (trustedDomainsShowAccessToken[configurationName] === undefined) {\n let trustedDomain = trustedDomains[configurationName];\n trustedDomainsShowAccessToken[configurationName] = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken;\n }\n database[configurationName] = {\n tokens: null,\n state: null,\n codeVerifier: null,\n oidcServerConfiguration: null,\n oidcConfiguration: undefined,\n nonce: null,\n status: null,\n configurationName,\n hideAccessToken: !trustedDomainsShowAccessToken[configurationName],\n };\n console.log(database[configurationName]);\n currentDatabase = database[configurationName];\n \n if (!trustedDomains[configurationName]) {\n trustedDomains[configurationName] = [];\n }\n \n }\n\n switch (data.type) {\n case 'clear':\n currentDatabase.tokens = null;\n currentDatabase.state = null;\n currentDatabase.codeVerifier = null;\n currentDatabase.status = data.data.status;\n port.postMessage({ configurationName });\n return;\n case 'init': {\n const oidcServerConfiguration = data.data.oidcServerConfiguration;\n let trustedDomain = trustedDomains[configurationName];\n \n const domains = Array.isArray(trustedDomain) ? trustedDomain : trustedDomain.domains;\n if (!domains.find((f) => f === acceptAnyDomainToken)) {\n [\n oidcServerConfiguration.tokenEndpoint,\n oidcServerConfiguration.revocationEndpoint,\n oidcServerConfiguration.userInfoEndpoint,\n oidcServerConfiguration.issuer,\n ].forEach((url) => {\n checkDomain(domains, url);\n });\n }\n currentDatabase.oidcServerConfiguration = oidcServerConfiguration;\n currentDatabase.oidcConfiguration = data.data.oidcConfiguration;\n const where = data.data.where;\n if (\n where === 'loginCallbackAsync' ||\n where === 'tryKeepExistingSessionAsync'\n ) {\n currentLoginCallbackConfigurationName = configurationName;\n } else {\n currentLoginCallbackConfigurationName = null;\n }\n\n if (!currentDatabase.tokens) {\n port.postMessage({\n tokens: null,\n status: currentDatabase.status,\n configurationName,\n });\n } else {\n const tokens = {\n ...currentDatabase.tokens,\n };\n if(currentDatabase.hideAccessToken) {\n tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\n }\n if (tokens.refresh_token) {\n tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName;\n }\n if (\n tokens.idTokenPayload &&\n tokens.idTokenPayload.nonce &&\n currentDatabase.nonce != null\n ) {\n tokens.idTokenPayload.nonce =\n TOKEN.NONCE_TOKEN + '_' + configurationName;\n }\n port.postMessage({\n tokens,\n status: currentDatabase.status,\n configurationName,\n });\n }\n return;\n }\n case 'setState':\n currentDatabase.state = data.data.state;\n port.postMessage({ configurationName });\n return;\n case 'getState': {\n const state = currentDatabase.state;\n port.postMessage({ configurationName, state });\n return;\n }\n case 'setCodeVerifier':\n currentDatabase.codeVerifier = data.data.codeVerifier;\n port.postMessage({ configurationName });\n return;\n case 'getCodeVerifier': {\n port.postMessage({\n configurationName,\n codeVerifier: TOKEN.CODE_VERIFIER + '_' + configurationName,\n });\n return;\n }\n case 'setSessionState':\n currentDatabase.sessionState = data.data.sessionState;\n port.postMessage({ configurationName });\n return;\n case 'getSessionState': {\n const sessionState = currentDatabase.sessionState;\n port.postMessage({ configurationName, sessionState });\n return;\n }\n case 'setNonce':\n currentDatabase.nonce = data.data.nonce;\n port.postMessage({ configurationName });\n return;\n default:\n currentDatabase.items = { ...data.data };\n port.postMessage({ configurationName });\n }\n};\n\n_self.addEventListener('install', handleInstall);\n_self.addEventListener('activate', handleActivate);\n_self.addEventListener('fetch', handleFetch);\n_self.addEventListener('message', handleMessage);\n"],"names":["scriptFilename","acceptAnyDomainToken","TOKEN","TokenRenewMode","openidWellknownUrlEndWith","checkDomain","domains","endpoint","domain","testable","_a","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","trustedDomain","domainsToSendTokens","hasToSendToken","f","i","countLetter","str","find","parseJwt","token","b64DecodeUnicode","c","computeTimeLeft","refreshTimeBeforeTokensExpirationInSecond","expiresAt","currentTimeUnixSecond","isTokensValid","tokens","extractTokenPayload","isTokensOidcValid","nonce","idTokenPayload","timeInSevenDays","_hideTokens","currentDatabaseElement","configurationName","accessTokenPayload","secureTokens","_idTokenPayload","keyNonce","idTokenExpiresAt","accessTokenExpiresAt","tokenRenewMode","isValid","reason","refreshToken","hideTokens","response","body","serializeHeaders","headers","headersObj","sleep","ms","resolve","_self","id","keepAliveJsonFilename","handleInstall","event","handleActivate","currentLoginCallbackConfigurationName","getCurrentDatabasesTokenEndpoint","databases","value","keepAliveAsync","originalRequest","isFromVanilla","init","originalRequestUrl","minSleepSeconds","handleFetch","currentDatabaseForRequestAccessToken","newRequest","currentDatabases","numberDatabase","maPromesse","reject","clonedRequest","actualBody","newBody","currentDb","keyRefreshToken","keyAccessToken","fetchPromise","text","keyCodeVerifier","err","trustedDomainsShowAccessToken","handleMessage","port","data","where","state","sessionState"],"mappings":"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"}
1
+ {"version":3,"file":"OidcServiceWorker.js","sources":["../constants.ts","../utils/domains.ts","../utils/strings.ts","../utils/tokens.ts","../utils/serializeHeaders.ts","../utils/sleep.ts","../OidcServiceWorker.ts"],"sourcesContent":["const scriptFilename = 'OidcTrustedDomains.js'; /* global trustedDomains */\nconst acceptAnyDomainToken = '*';\n\ntype TokenType = {\n readonly REFRESH_TOKEN: string;\n readonly ACCESS_TOKEN: string;\n readonly NONCE_TOKEN: string;\n readonly CODE_VERIFIER: string;\n};\n\nconst TOKEN: TokenType = {\n REFRESH_TOKEN: 'REFRESH_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\n ACCESS_TOKEN: 'ACCESS_TOKEN_SECURED_BY_OIDC_SERVICE_WORKER',\n NONCE_TOKEN: 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER',\n CODE_VERIFIER: 'CODE_VERIFIER_SECURED_BY_OIDC_SERVICE_WORKER',\n};\n\ntype TokenRenewModeType = {\n readonly access_token_or_id_token_invalid: string;\n readonly access_token_invalid: string;\n readonly id_token_invalid: string;\n};\n\nconst TokenRenewMode: TokenRenewModeType = {\n access_token_or_id_token_invalid: 'access_token_or_id_token_invalid',\n access_token_invalid: 'access_token_invalid',\n id_token_invalid: 'id_token_invalid',\n};\n\nconst openidWellknownUrlEndWith = '/.well-known/openid-configuration';\n\nexport { scriptFilename, acceptAnyDomainToken, TOKEN, TokenRenewMode, openidWellknownUrlEndWith };\n","import { TrustedDomains } from './../types';\nimport {\n acceptAnyDomainToken,\n openidWellknownUrlEndWith,\n scriptFilename,\n} from '../constants';\nimport { Database, Domain, OidcConfig } from '../types';\n\nfunction checkDomain(domains: Domain[], endpoint: string) {\n if (!endpoint) {\n return;\n }\n\n const domain = domains.find((domain) => {\n let testable: RegExp;\n\n if (typeof domain === 'string') {\n testable = new RegExp(`^${domain}`);\n } else {\n testable = domain;\n }\n\n return testable.test?.(endpoint);\n });\n if (!domain) {\n throw new Error(\n 'Domain ' +\n endpoint +\n ' is not trusted, please add domain in ' +\n scriptFilename\n );\n }\n}\n\nconst getCurrentDatabaseDomain = (\n database: Database,\n url: string,\n trustedDomains: TrustedDomains\n) => {\n if (url.endsWith(openidWellknownUrlEndWith)) {\n return null;\n }\n for (const [key, currentDatabase] of Object.entries<OidcConfig>(database)) {\n const oidcServerConfiguration = currentDatabase.oidcServerConfiguration;\n\n if (!oidcServerConfiguration) {\n continue;\n }\n\n if (\n oidcServerConfiguration.tokenEndpoint &&\n url === oidcServerConfiguration.tokenEndpoint\n ) {\n continue;\n }\n if (\n oidcServerConfiguration.revocationEndpoint &&\n url === oidcServerConfiguration.revocationEndpoint\n ) {\n continue;\n }\n const trustedDomain = trustedDomains == null ? [] : trustedDomains[key];\n const domains = Array.isArray(trustedDomain) ? trustedDomain : trustedDomain.domains;\n const domainsToSendTokens = oidcServerConfiguration.userInfoEndpoint\n ? [oidcServerConfiguration.userInfoEndpoint, ...domains]\n : [...domains];\n\n let hasToSendToken = false;\n if (domainsToSendTokens.find((f) => f === acceptAnyDomainToken)) {\n hasToSendToken = true;\n } else {\n for (let i = 0; i < domainsToSendTokens.length; i++) {\n let domain = domainsToSendTokens[i];\n\n if (typeof domain === 'string') {\n domain = new RegExp(`^${domain}`);\n }\n\n if (domain.test?.(url)) {\n hasToSendToken = true;\n break;\n }\n }\n }\n\n if (hasToSendToken) {\n if (!currentDatabase.tokens) {\n return null;\n }\n return currentDatabase;\n }\n }\n return null;\n};\n\nexport { checkDomain, getCurrentDatabaseDomain };\n","/**\n * Count occurances of letter in string\n * @param str\n * @param find\n * @returns\n */\nexport function countLetter(str: string, find: string) {\n return str.split(find).length - 1;\n}\n","import { TOKEN, TokenRenewMode } from '../constants';\nimport { OidcConfig, OidcConfiguration, OidcServerConfiguration, Tokens } from '../types';\nimport { countLetter } from './strings';\n\nfunction parseJwt(token: string) {\n return JSON.parse(\n b64DecodeUnicode(token.split('.')[1].replace('-', '+').replace('_', '/'))\n );\n}\nfunction b64DecodeUnicode(str: string) {\n return decodeURIComponent(\n Array.prototype.map\n .call(\n atob(str),\n (c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n )\n .join('')\n );\n}\n\nfunction computeTimeLeft(\n refreshTimeBeforeTokensExpirationInSecond: number,\n expiresAt: number\n) {\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n return Math.round(\n expiresAt -\n refreshTimeBeforeTokensExpirationInSecond -\n currentTimeUnixSecond\n );\n}\n\nfunction isTokensValid(tokens: Tokens | null) {\n if (!tokens) {\n return false;\n }\n return computeTimeLeft(0, tokens.expiresAt) > 0;\n}\n\nconst extractTokenPayload = (token?: string) => {\n try {\n if (!token) {\n return null;\n }\n if (countLetter(token, '.') === 2) {\n return parseJwt(token);\n } else {\n return null;\n }\n } catch (e) {\n console.warn(e);\n }\n return null;\n};\n\n// https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation (excluding rules #1, #4, #5, #7, #8, #12, and #13 which did not apply).\n// https://github.com/openid/AppAuth-JS/issues/65\nconst isTokensOidcValid = (\n tokens: Tokens,\n nonce: string | null,\n oidcServerConfiguration: OidcServerConfiguration\n): { isValid: boolean; reason: string } => {\n if (tokens.idTokenPayload) {\n const idTokenPayload = tokens.idTokenPayload;\n // 2: The Issuer Identifier for the OpenID Provider (which is typically obtained during Discovery) MUST exactly match the value of the iss (issuer) Claim.\n if (oidcServerConfiguration.issuer !== idTokenPayload.iss) {\n return { isValid: false, reason: 'Issuer does not match' };\n }\n // 3: The Client MUST validate that the aud (audience) Claim contains its client_id value registered at the Issuer identified by the iss (issuer) Claim as an audience. The aud (audience) Claim MAY contain an array with more than one element. The ID Token MUST be rejected if the ID Token does not list the Client as a valid audience, or if it contains additional audiences not trusted by the Client.\n\n // 6: If the ID Token is received via direct communication between the Client and the Token Endpoint (which it is in this flow), the TLS server validation MAY be used to validate the issuer in place of checking the token signature. The Client MUST validate the signature of all other ID Tokens according to JWS [JWS] using the algorithm specified in the JWT alg Header Parameter. The Client MUST use the keys provided by the Issuer.\n\n // 9: The current time MUST be before the time represented by the exp Claim.\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n if (idTokenPayload.exp && idTokenPayload.exp < currentTimeUnixSecond) {\n return { isValid: false, reason: 'Token expired' };\n }\n // 10: The iat Claim can be used to reject tokens that were issued too far away from the current time, limiting the amount of time that nonces need to be stored to prevent attacks. The acceptable range is Client specific.\n const timeInSevenDays = 60 * 60 * 24 * 7;\n if (\n idTokenPayload.iat &&\n idTokenPayload.iat + timeInSevenDays < currentTimeUnixSecond\n ) {\n return { isValid: false, reason: 'Token is used from too long time' };\n }\n // 11: If a nonce value was sent in the Authentication Request, a nonce Claim MUST be present and its value checked to verify that it is the same value as the one that was sent in the Authentication Request. The Client SHOULD check the nonce value for replay attacks. The precise method for detecting replay attacks is Client specific.\n if (idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {\n return { isValid: false, reason: 'Nonce does not match' };\n }\n }\n return { isValid: true, reason: '' };\n};\n\nfunction _hideTokens(tokens: Tokens, currentDatabaseElement: OidcConfig, configurationName: string) {\n if (!tokens.issued_at) {\n const currentTimeUnixSecond = new Date().getTime() / 1000;\n tokens.issued_at = currentTimeUnixSecond;\n }\n\n const accessTokenPayload = extractTokenPayload(tokens.access_token);\n const secureTokens = {\n ...tokens,\n accessTokenPayload,\n };\n if (currentDatabaseElement.hideAccessToken) {\n secureTokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\n }\n tokens.accessTokenPayload = accessTokenPayload;\n\n let _idTokenPayload = null;\n if (tokens.id_token) {\n _idTokenPayload = extractTokenPayload(tokens.id_token);\n tokens.idTokenPayload = {..._idTokenPayload};\n if (_idTokenPayload.nonce && currentDatabaseElement.nonce != null) {\n const keyNonce =\n TOKEN.NONCE_TOKEN + '_' + currentDatabaseElement.configurationName;\n _idTokenPayload.nonce = keyNonce;\n }\n secureTokens.idTokenPayload = _idTokenPayload;\n }\n if (tokens.refresh_token) {\n secureTokens.refresh_token =\n TOKEN.REFRESH_TOKEN + '_' + configurationName;\n }\n\n const idTokenExpiresAt =\n _idTokenPayload && _idTokenPayload.exp\n ? _idTokenPayload.exp\n : Number.MAX_VALUE;\n const accessTokenExpiresAt =\n accessTokenPayload && accessTokenPayload.exp\n ? accessTokenPayload.exp\n : tokens.issued_at + tokens.expires_in;\n\n let expiresAt: number;\n const tokenRenewMode = (\n currentDatabaseElement.oidcConfiguration as OidcConfiguration\n ).token_renew_mode;\n if (tokenRenewMode === TokenRenewMode.access_token_invalid) {\n expiresAt = accessTokenExpiresAt;\n } else if (tokenRenewMode === TokenRenewMode.id_token_invalid) {\n expiresAt = idTokenExpiresAt;\n } else {\n expiresAt =\n idTokenExpiresAt < accessTokenExpiresAt\n ? idTokenExpiresAt\n : accessTokenExpiresAt;\n }\n secureTokens.expiresAt = expiresAt;\n\n tokens.expiresAt = expiresAt;\n const nonce = currentDatabaseElement.nonce\n ? currentDatabaseElement.nonce.nonce\n : null;\n const {isValid, reason} = isTokensOidcValid(\n tokens,\n nonce,\n currentDatabaseElement.oidcServerConfiguration as OidcServerConfiguration\n ); //TODO: Type assertion, could be null.\n if (!isValid) {\n throw Error(`Tokens are not OpenID valid, reason: ${reason}`);\n }\n\n // When refresh_token is not rotated we reuse ald refresh_token\n if (\n currentDatabaseElement.tokens != null &&\n 'refresh_token' in currentDatabaseElement.tokens &&\n !('refresh_token' in tokens)\n ) {\n const refreshToken = currentDatabaseElement.tokens.refresh_token;\n\n currentDatabaseElement.tokens = {\n ...tokens,\n refresh_token: refreshToken,\n };\n } else {\n currentDatabaseElement.tokens = tokens;\n }\n\n currentDatabaseElement.status = 'LOGGED_IN';\n return secureTokens;\n}\n\nfunction hideTokens(currentDatabaseElement: OidcConfig) {\n const configurationName = currentDatabaseElement.configurationName;\n return (response: Response) => {\n if (response.status !== 200) {\n return response;\n }\n return response.json().then<Response>((tokens: Tokens) => {\n const secureTokens = _hideTokens(tokens, currentDatabaseElement, configurationName);\n const body = JSON.stringify(secureTokens);\n return new Response(body, response);\n });\n };\n}\n\nexport {\n b64DecodeUnicode,\n computeTimeLeft,\n isTokensValid,\n extractTokenPayload,\n isTokensOidcValid,\n hideTokens,\n _hideTokens\n};\n","import { FetchHeaders } from '../types';\n\nfunction serializeHeaders(headers: Headers) {\n const headersObj: Record<string, string> = {};\n for (const key of (headers as FetchHeaders).keys()) {\n if (headers.has(key)) {\n headersObj[key] = headers.get(key) as string;\n }\n }\n return headersObj;\n}\nexport {serializeHeaders};","const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\nexport { sleep };\n","import { acceptAnyDomainToken, TOKEN, scriptFilename } from './constants';\nimport {\n TrustedDomains,\n Database,\n OidcConfig,\n OidcConfiguration,\n MessageEventData,\n // TrustedDomainsShowAccessToken,\n} from './types';\nimport {\n checkDomain,\n getCurrentDatabaseDomain,\n hideTokens,\n isTokensValid,\n serializeHeaders,\n sleep,\n} from './utils';\n\nconst _self = self as ServiceWorkerGlobalScope & typeof globalThis;\n\ndeclare let trustedDomains: TrustedDomains;\n\n_self.importScripts(scriptFilename);\n\nconst id = Math.round(new Date().getTime() / 1000).toString();\n\nconst keepAliveJsonFilename = 'OidcKeepAliveServiceWorker.json';\nconst handleInstall = (event: ExtendableEvent) => {\n console.log('[OidcServiceWorker] service worker installed ' + id);\n event.waitUntil(_self.skipWaiting());\n};\n\nconst handleActivate = (event: ExtendableEvent) => {\n console.log('[OidcServiceWorker] service worker activated ' + id);\n event.waitUntil(_self.clients.claim());\n};\n\nlet currentLoginCallbackConfigurationName: string | null = null;\nconst database: Database = {\n default: {\n configurationName: 'default',\n tokens: null,\n status: null,\n state: null,\n codeVerifier: null,\n nonce: null,\n oidcServerConfiguration: null,\n hideAccessToken: true,\n },\n};\n\nconst getCurrentDatabasesTokenEndpoint = (database: Database, url: string) => {\n const databases: OidcConfig[] = [];\n for (const [, value] of Object.entries<OidcConfig>(database)) {\n if (\n value.oidcServerConfiguration != null &&\n url.startsWith(value.oidcServerConfiguration.tokenEndpoint)\n ) {\n databases.push(value);\n } else if (\n value.oidcServerConfiguration != null &&\n value.oidcServerConfiguration.revocationEndpoint &&\n url.startsWith(value.oidcServerConfiguration.revocationEndpoint)\n ) {\n databases.push(value);\n }\n }\n return databases;\n};\n\nconst keepAliveAsync = async (event: FetchEvent) => {\n const originalRequest = event.request;\n const isFromVanilla = originalRequest.headers.has('oidc-vanilla');\n const init = { status: 200, statusText: 'oidc-service-worker' };\n const response = new Response('{}', init);\n if (!isFromVanilla) {\n const originalRequestUrl = new URL(originalRequest.url);\n const minSleepSeconds = Number(originalRequestUrl.searchParams.get('minSleepSeconds')) || 240;\n for (let i = 0; i < minSleepSeconds; i++) {\n await sleep(1000 + Math.floor(Math.random() * 1000));\n const cache = await caches.open('oidc_dummy_cache');\n await cache.put(event.request, response.clone());\n }\n }\n return response;\n};\n\nconst handleFetch = async (event: FetchEvent) => {\n const originalRequest = event.request;\n const url = originalRequest.url;\n if (originalRequest.url.includes(keepAliveJsonFilename)) {\n event.respondWith(keepAliveAsync(event));\n return;\n }\n\n const currentDatabaseForRequestAccessToken = getCurrentDatabaseDomain(\n database,\n originalRequest.url,\n trustedDomains\n );\n if (\n currentDatabaseForRequestAccessToken &&\n currentDatabaseForRequestAccessToken.tokens &&\n currentDatabaseForRequestAccessToken.tokens.access_token\n ) {\n while (\n currentDatabaseForRequestAccessToken.tokens &&\n !isTokensValid(currentDatabaseForRequestAccessToken.tokens)\n ) {\n await sleep(200);\n }\n const newRequest =\n originalRequest.mode == 'navigate'\n ? new Request(originalRequest, {\n headers: {\n ...serializeHeaders(originalRequest.headers),\n authorization:\n 'Bearer ' +\n currentDatabaseForRequestAccessToken.tokens.access_token,\n },\n })\n : new Request(originalRequest, {\n headers: {\n ...serializeHeaders(originalRequest.headers),\n authorization:\n 'Bearer ' +\n currentDatabaseForRequestAccessToken.tokens.access_token,\n },\n mode: (\n currentDatabaseForRequestAccessToken.oidcConfiguration as OidcConfiguration\n ).service_worker_convert_all_requests_to_cors\n ? 'cors'\n : originalRequest.mode,\n });\n\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\n event.waitUntil(event.respondWith(fetch(newRequest)));\n\n return;\n }\n\n if (event.request.method !== 'POST') {\n return;\n }\n\n let currentDatabase: OidcConfig | null = null;\n const currentDatabases = getCurrentDatabasesTokenEndpoint(\n database,\n originalRequest.url\n );\n const numberDatabase = currentDatabases.length;\n if (numberDatabase > 0) {\n const maPromesse = new Promise<Response>((resolve, reject) => {\n const clonedRequest = originalRequest.clone();\n const response = clonedRequest.text().then((actualBody) => {\n if (\n actualBody.includes(TOKEN.REFRESH_TOKEN) ||\n actualBody.includes(TOKEN.ACCESS_TOKEN)\n ) {\n let newBody = actualBody;\n for (let i = 0; i < numberDatabase; i++) {\n const currentDb = currentDatabases[i];\n\n if (currentDb && currentDb.tokens != null) {\n const keyRefreshToken =\n TOKEN.REFRESH_TOKEN + '_' + currentDb.configurationName;\n if (actualBody.includes(keyRefreshToken)) {\n newBody = newBody.replace(\n keyRefreshToken,\n encodeURIComponent(currentDb.tokens.refresh_token as string)\n );\n currentDatabase = currentDb;\n break;\n }\n const keyAccessToken =\n TOKEN.ACCESS_TOKEN + '_' + currentDb.configurationName;\n if (actualBody.includes(keyAccessToken)) {\n newBody = newBody.replace(\n keyAccessToken,\n encodeURIComponent(currentDb.tokens.access_token)\n );\n currentDatabase = currentDb;\n break;\n }\n }\n }\n const fetchPromise = fetch(originalRequest, {\n body: newBody,\n method: clonedRequest.method,\n headers: {\n ...serializeHeaders(originalRequest.headers),\n },\n mode: clonedRequest.mode,\n cache: clonedRequest.cache,\n redirect: clonedRequest.redirect,\n referrer: clonedRequest.referrer,\n credentials: clonedRequest.credentials,\n integrity: clonedRequest.integrity,\n });\n\n if (\n currentDatabase &&\n currentDatabase.oidcServerConfiguration != null &&\n currentDatabase.oidcServerConfiguration.revocationEndpoint &&\n url.startsWith(\n currentDatabase.oidcServerConfiguration.revocationEndpoint\n )\n ) {\n return fetchPromise.then(async (response) => {\n const text = await response.text();\n return new Response(text, response);\n });\n }\n return fetchPromise.then(hideTokens(currentDatabase as OidcConfig)); //todo type assertion to OidcConfig but could be null, NEEDS REVIEW\n } else if (\n actualBody.includes('code_verifier=') &&\n currentLoginCallbackConfigurationName\n ) {\n currentDatabase = database[currentLoginCallbackConfigurationName];\n currentLoginCallbackConfigurationName = null;\n let newBody = actualBody;\n if (currentDatabase && currentDatabase.codeVerifier != null) {\n const keyCodeVerifier =\n TOKEN.CODE_VERIFIER + '_' + currentDatabase.configurationName;\n if (actualBody.includes(keyCodeVerifier)) {\n newBody = newBody.replace(\n keyCodeVerifier,\n currentDatabase.codeVerifier\n );\n }\n }\n\n return fetch(originalRequest, {\n body: newBody,\n method: clonedRequest.method,\n headers: {\n ...serializeHeaders(originalRequest.headers),\n },\n mode: clonedRequest.mode,\n cache: clonedRequest.cache,\n redirect: clonedRequest.redirect,\n referrer: clonedRequest.referrer,\n credentials: clonedRequest.credentials,\n integrity: clonedRequest.integrity,\n }).then(hideTokens(currentDatabase));\n }\n return undefined;\n });\n response\n .then((r) => {\n if (r !== undefined) {\n resolve(r);\n } else {\n console.log('success undefined');\n reject(new Error('Response is undefined inside a success'));\n }\n })\n .catch((err) => {\n if (err !== undefined) {\n reject(err);\n } else {\n console.log('error undefined');\n reject(new Error('Response is undefined inside a error'));\n }\n });\n });\n\n //@ts-ignore -- TODO: review, waitUntil takes a promise, this returns a void\n event.waitUntil(event.respondWith(maPromesse));\n }\n};\n\ntype TrustedDomainsShowAccessToken = {\n [key: string]: boolean\n}\n\nconst trustedDomainsShowAccessToken: TrustedDomainsShowAccessToken = {};\n\nconst handleMessage = (event: ExtendableMessageEvent) => {\n const port = event.ports[0];\n const data = event.data as MessageEventData;\n const configurationName = data.configurationName;\n let currentDatabase = database[configurationName];\n if(trustedDomains== null){\n trustedDomains = {};\n }\n if (!currentDatabase) {\n \n if (trustedDomainsShowAccessToken[configurationName] === undefined) {\n let trustedDomain = trustedDomains[configurationName];\n trustedDomainsShowAccessToken[configurationName] = Array.isArray(trustedDomain) ? false : trustedDomain.showAccessToken;\n }\n database[configurationName] = {\n tokens: null,\n state: null,\n codeVerifier: null,\n oidcServerConfiguration: null,\n oidcConfiguration: undefined,\n nonce: null,\n status: null,\n configurationName,\n hideAccessToken: !trustedDomainsShowAccessToken[configurationName],\n };\n currentDatabase = database[configurationName];\n \n if (!trustedDomains[configurationName]) {\n trustedDomains[configurationName] = [];\n }\n }\n\n switch (data.type) {\n case 'clear':\n currentDatabase.tokens = null;\n currentDatabase.state = null;\n currentDatabase.codeVerifier = null;\n currentDatabase.status = data.data.status;\n port.postMessage({ configurationName });\n return;\n case 'init': {\n const oidcServerConfiguration = data.data.oidcServerConfiguration;\n let trustedDomain = trustedDomains[configurationName];\n \n const domains = Array.isArray(trustedDomain) ? trustedDomain : trustedDomain.domains;\n if (!domains.find((f) => f === acceptAnyDomainToken)) {\n [\n oidcServerConfiguration.tokenEndpoint,\n oidcServerConfiguration.revocationEndpoint,\n oidcServerConfiguration.userInfoEndpoint,\n oidcServerConfiguration.issuer,\n ].forEach((url) => {\n checkDomain(domains, url);\n });\n }\n currentDatabase.oidcServerConfiguration = oidcServerConfiguration;\n currentDatabase.oidcConfiguration = data.data.oidcConfiguration;\n const where = data.data.where;\n if (\n where === 'loginCallbackAsync' ||\n where === 'tryKeepExistingSessionAsync'\n ) {\n currentLoginCallbackConfigurationName = configurationName;\n } else {\n currentLoginCallbackConfigurationName = null;\n }\n\n if (!currentDatabase.tokens) {\n port.postMessage({\n tokens: null,\n status: currentDatabase.status,\n configurationName,\n });\n } else {\n const tokens = {\n ...currentDatabase.tokens,\n };\n if(currentDatabase.hideAccessToken) {\n tokens.access_token = TOKEN.ACCESS_TOKEN + '_' + configurationName;\n }\n if (tokens.refresh_token) {\n tokens.refresh_token = TOKEN.REFRESH_TOKEN + '_' + configurationName;\n }\n if (\n tokens.idTokenPayload &&\n tokens.idTokenPayload.nonce &&\n currentDatabase.nonce != null\n ) {\n tokens.idTokenPayload.nonce =\n TOKEN.NONCE_TOKEN + '_' + configurationName;\n }\n port.postMessage({\n tokens,\n status: currentDatabase.status,\n configurationName,\n });\n }\n return;\n }\n case 'setState':\n currentDatabase.state = data.data.state;\n port.postMessage({ configurationName });\n return;\n case 'getState': {\n const state = currentDatabase.state;\n port.postMessage({ configurationName, state });\n return;\n }\n case 'setCodeVerifier':\n currentDatabase.codeVerifier = data.data.codeVerifier;\n port.postMessage({ configurationName });\n return;\n case 'getCodeVerifier': {\n port.postMessage({\n configurationName,\n codeVerifier: TOKEN.CODE_VERIFIER + '_' + configurationName,\n });\n return;\n }\n case 'setSessionState':\n currentDatabase.sessionState = data.data.sessionState;\n port.postMessage({ configurationName });\n return;\n case 'getSessionState': {\n const sessionState = currentDatabase.sessionState;\n port.postMessage({ configurationName, sessionState });\n return;\n }\n case 'setNonce':\n currentDatabase.nonce = data.data.nonce;\n port.postMessage({ configurationName });\n return;\n default:\n currentDatabase.items = { ...data.data };\n port.postMessage({ configurationName });\n }\n};\n\n_self.addEventListener('install', handleInstall);\n_self.addEventListener('activate', handleActivate);\n_self.addEventListener('fetch', handleFetch);\n_self.addEventListener('message', handleMessage);\n"],"names":["scriptFilename","acceptAnyDomainToken","TOKEN","TokenRenewMode","openidWellknownUrlEndWith","checkDomain","domains","endpoint","domain","testable","_a","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","trustedDomain","domainsToSendTokens","hasToSendToken","f","i","countLetter","str","find","parseJwt","token","b64DecodeUnicode","c","computeTimeLeft","refreshTimeBeforeTokensExpirationInSecond","expiresAt","currentTimeUnixSecond","isTokensValid","tokens","extractTokenPayload","isTokensOidcValid","nonce","idTokenPayload","timeInSevenDays","_hideTokens","currentDatabaseElement","configurationName","accessTokenPayload","secureTokens","_idTokenPayload","keyNonce","idTokenExpiresAt","accessTokenExpiresAt","tokenRenewMode","isValid","reason","refreshToken","hideTokens","response","body","serializeHeaders","headers","headersObj","sleep","ms","resolve","_self","id","keepAliveJsonFilename","handleInstall","event","handleActivate","currentLoginCallbackConfigurationName","getCurrentDatabasesTokenEndpoint","databases","value","keepAliveAsync","originalRequest","isFromVanilla","init","originalRequestUrl","minSleepSeconds","handleFetch","currentDatabaseForRequestAccessToken","newRequest","currentDatabases","numberDatabase","maPromesse","reject","clonedRequest","actualBody","newBody","currentDb","keyRefreshToken","keyAccessToken","fetchPromise","text","keyCodeVerifier","err","trustedDomainsShowAccessToken","handleMessage","port","data","where","state","sessionState"],"mappings":"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"}