@axa-fr/react-oidc 6.23.1 → 6.24.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.
@@ -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"},x="/.well-known/openid-configuration";function K(n,e){if(!e)return;if(!n.find(o=>{var i;let t;return typeof o=="string"?t=new RegExp(`^${o}`):t=o,(i=t.test)==null?void 0:i.call(t,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+N)}const D=(n,e)=>Array.isArray(n)?n:n[`${e}Domains`]??n.domains??[],M=(n,e,s)=>{var o;if(e.endsWith(x))return null;for(const[t,i]of Object.entries(n)){const d=i.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=s==null?[]:s[t],f=D(l,"accessToken"),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}`)),(o=r.test)!=null&&o.call(r,e)){c=!0;break}}if(c)return i.tokens?i:null}return null};function U(n,e){return n.split(e).length-1}function P(n){return JSON.parse(W(n.split(".")[1].replace("-","+").replace("_","/")))}function W(n){return decodeURIComponent(Array.prototype.map.call(atob(n),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function F(n,e){const s=new Date().getTime()/1e3;return Math.round(e-n-s)}function b(n){return n?F(0,n.expiresAt)>0:!1}const O=n=>{try{return n&&U(n,".")===2?P(n):null}catch(e){console.warn(e)}return null},q=(n,e,s)=>{if(n.idTokenPayload){const o=n.idTokenPayload;if(s.issuer!==o.iss)return{isValid:!1,reason:"Issuer does not match"};const t=new Date().getTime()/1e3;if(o.exp&&o.exp<t)return{isValid:!1,reason:"Token expired"};const i=60*60*24*7;if(o.iat&&o.iat+i<t)return{isValid:!1,reason:"Token is used from too long time"};if(o.nonce&&o.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function L(n,e,s){if(!n.issued_at){const u=new Date().getTime()/1e3;n.issued_at=u}const o=O(n.access_token),t={...n,accessTokenPayload:o};e.hideAccessToken&&(t.access_token=_.ACCESS_TOKEN+"_"+s),n.accessTokenPayload=o;let i=null;if(n.id_token){if(i=O(n.id_token),n.idTokenPayload={...i},i.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;i.nonce=u}t.idTokenPayload=i}n.refresh_token&&(t.refresh_token=_.REFRESH_TOKEN+"_"+s);const d=i&&i.exp?i.exp:Number.MAX_VALUE,l=o&&o.exp?o.exp:n.issued_at+n.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,n.expiresAt=f;const c=e.nonce?e.nonce.nonce:null,{isValid:h,reason:r}=q(n,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 n)){const u=e.tokens.refresh_token;e.tokens={...n,refresh_token:u}}else e.tokens=n;return e.status="LOGGED_IN",t}function y(n){const e=n.configurationName;return s=>s.status!==200?s:s.json().then(o=>{const t=L(o,n,e),i=JSON.stringify(t);return new Response(i,s)})}function m(n){const e={};for(const s of n.keys())n.has(s)&&(e[s]=n.get(s));return e}const V=n=>new Promise(e=>setTimeout(e,n)),E=self;E.importScripts(N);const I=Math.round(new Date().getTime()/1e3).toString(),H="OidcKeepAliveServiceWorker.json",j=n=>{console.log("[OidcServiceWorker] service worker installed "+I),n.waitUntil(E.skipWaiting())},J=n=>{console.log("[OidcServiceWorker] service worker activated "+I),n.waitUntil(E.clients.claim())};let T=null;const g={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},Y=(n,e)=>{const s=[];for(const[,o]of Object.entries(n))(o.oidcServerConfiguration!=null&&e.startsWith(o.oidcServerConfiguration.tokenEndpoint)||o.oidcServerConfiguration!=null&&o.oidcServerConfiguration.revocationEndpoint&&e.startsWith(o.oidcServerConfiguration.revocationEndpoint))&&s.push(o);return s},$=async n=>{const e=n.request,s=e.headers.has("oidc-vanilla"),o={status:200,statusText:"oidc-service-worker"},t=new Response("{}",o);if(!s){const i=new URL(e.url),d=Number(i.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await V(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(n.request,t.clone())}return t},z=async n=>{const e=n.request,s=e.url;if(e.url.includes(H)){n.respondWith($(n));return}const o=M(g,e.url,trustedDomains);if(o&&o.tokens&&o.tokens.access_token){for(;o.tokens&&!b(o.tokens);)await V(200);const l=e.mode=="navigate"?new Request(e,{headers:{...m(e.headers),authorization:"Bearer "+o.tokens.access_token}}):new Request(e,{headers:{...m(e.headers),authorization:"Bearer "+o.tokens.access_token},mode:o.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});n.waitUntil(n.respondWith(fetch(l)));return}if(n.request.method!=="POST")return;let t=null;const i=Y(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)),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:{...m(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 p=>{const k=await p.text();return new Response(k,p)}):S.then(y(t))}else if(r.includes("code_verifier=")&&T){t=g[T],T=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:{...m(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")))})});n.waitUntil(n.respondWith(l))}},C={},G=n=>{const e=n.ports[0],s=n.data,o=s.configurationName;let t=g[o];if(trustedDomains==null&&(trustedDomains={}),!t){if(C[o]===void 0){let i=trustedDomains[o];C[o]=Array.isArray(i)?!1:i.showAccessToken}g[o]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:o,hideAccessToken:!C[o]},t=g[o],trustedDomains[o]||(trustedDomains[o]=[])}switch(s.type){case"clear":t.tokens=null,t.state=null,t.codeVerifier=null,t.status=s.data.status,e.postMessage({configurationName:o});return;case"init":{const i=s.data.oidcServerConfiguration;let d=trustedDomains[o];const l=D(d,"oidc");l.find(a=>a===A)||[i.tokenEndpoint,i.revocationEndpoint,i.userInfoEndpoint,i.issuer].forEach(a=>{K(l,a)}),t.oidcServerConfiguration=i,t.oidcConfiguration=s.data.oidcConfiguration;const f=s.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?T=o:T=null,!t.tokens)e.postMessage({tokens:null,status:t.status,configurationName:o});else{const a={...t.tokens};t.hideAccessToken&&(a.access_token=_.ACCESS_TOKEN+"_"+o),a.refresh_token&&(a.refresh_token=_.REFRESH_TOKEN+"_"+o),a.idTokenPayload&&a.idTokenPayload.nonce&&t.nonce!=null&&(a.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+o),e.postMessage({tokens:a,status:t.status,configurationName:o})}return}case"setState":t.state=s.data.state,e.postMessage({configurationName:o});return;case"getState":{const i=t.state;e.postMessage({configurationName:o,state:i});return}case"setCodeVerifier":t.codeVerifier=s.data.codeVerifier,e.postMessage({configurationName:o});return;case"getCodeVerifier":{e.postMessage({configurationName:o,codeVerifier:_.CODE_VERIFIER+"_"+o});return}case"setSessionState":t.sessionState=s.data.sessionState,e.postMessage({configurationName:o});return;case"getSessionState":{const i=t.sessionState;e.postMessage({configurationName:o,sessionState:i});return}case"setNonce":t.nonce=s.data.nonce,e.postMessage({configurationName:o});return;default:t.items={...s.data},e.postMessage({configurationName:o})}};E.addEventListener("install",j);E.addEventListener("activate",J);E.addEventListener("fetch",z);E.addEventListener("message",G);
1
+ "use strict";const y="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 K(n,e){if(!e)return;if(!n.find(o=>{var s;let t;return typeof o=="string"?t=new RegExp(`^${o}`):t=o,(s=t.test)==null?void 0:s.call(t,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+y)}const D=(n,e)=>Array.isArray(n)?n:n[`${e}Domains`]??n.domains??[],M=(n,e,i)=>{var o;if(e.endsWith(I))return null;for(const[t,s]of Object.entries(n)){const d=s.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=i==null?[]:i[t],f=D(l,"accessToken"),r=d.userInfoEndpoint?[d.userInfoEndpoint,...f]:[...f];let a=!1;if(r.find(h=>h===A))a=!0;else for(let h=0;h<r.length;h++){let c=r[h];if(typeof c=="string"&&(c=new RegExp(`^${c}`)),(o=c.test)!=null&&o.call(c,e)){a=!0;break}}if(a)return s.tokens?s:null}return null};function U(n,e){return n.split(e).length-1}function P(n){return JSON.parse(W(n.split(".")[1].replace("-","+").replace("_","/")))}function W(n){return decodeURIComponent(Array.prototype.map.call(atob(n),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function F(n,e){const i=new Date().getTime()/1e3;return Math.round(e-n-i)}function b(n){return n?F(0,n.expiresAt)>0:!1}const O=n=>{try{return n&&U(n,".")===2?P(n):null}catch(e){console.warn(e)}return null},q=(n,e,i)=>{if(n.idTokenPayload){const o=n.idTokenPayload;if(i.issuer!==o.iss)return{isValid:!1,reason:"Issuer does not match"};const t=new Date().getTime()/1e3;if(o.exp&&o.exp<t)return{isValid:!1,reason:"Token expired"};const s=60*60*24*7;if(o.iat&&o.iat+s<t)return{isValid:!1,reason:"Token is used from too long time"};if(e&&o.nonce&&o.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function L(n,e,i){if(!n.issued_at){const u=new Date().getTime()/1e3;n.issued_at=u}const o=O(n.access_token),t={...n,accessTokenPayload:o};e.hideAccessToken&&(t.access_token=_.ACCESS_TOKEN+"_"+i),n.accessTokenPayload=o;let s=null;if(n.id_token){if(s=O(n.id_token),n.idTokenPayload={...s},s.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;s.nonce=u}t.idTokenPayload=s}n.refresh_token&&(t.refresh_token=_.REFRESH_TOKEN+"_"+i);const d=s&&s.exp?s.exp:Number.MAX_VALUE,l=o&&o.exp?o.exp:n.issued_at+n.expires_in;let f;const r=e.oidcConfiguration.token_renew_mode;r===w.access_token_invalid?f=l:r===w.id_token_invalid?f=d:f=d<l?d:l,t.expiresAt=f,n.expiresAt=f;const a=e.nonce?e.nonce.nonce:null,{isValid:h,reason:c}=q(n,a,e.oidcServerConfiguration);if(!h)throw Error(`Tokens are not OpenID valid, reason: ${c}`);if(e.tokens!=null&&"refresh_token"in e.tokens&&!("refresh_token"in n)){const u=e.tokens.refresh_token;e.tokens={...n,refresh_token:u}}else e.tokens=n;return e.status="LOGGED_IN",t}function N(n){const e=n.configurationName;return i=>i.status!==200?i:i.json().then(o=>{const t=L(o,n,e),s=JSON.stringify(t);return new Response(s,i)})}function T(n){const e={};for(const i of n.keys())n.has(i)&&(e[i]=n.get(i));return e}const V=n=>new Promise(e=>setTimeout(e,n));function H(n,e){const i=/code_verifier=[A-Za-z0-9_-]+/i;return n.replace(i,`code_verifier=${e}`)}const p=self;p.importScripts(y);const x=Math.round(new Date().getTime()/1e3).toString(),j="OidcKeepAliveServiceWorker.json",$=n=>{console.log("[OidcServiceWorker] service worker installed "+x),n.waitUntil(p.skipWaiting())},z=n=>{console.log("[OidcServiceWorker] service worker activated "+x),n.waitUntil(p.clients.claim())};let S=null;const g={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},J=(n,e)=>{const i=[];for(const[,o]of Object.entries(n))(o.oidcServerConfiguration!=null&&e.startsWith(o.oidcServerConfiguration.tokenEndpoint)||o.oidcServerConfiguration!=null&&o.oidcServerConfiguration.revocationEndpoint&&e.startsWith(o.oidcServerConfiguration.revocationEndpoint))&&i.push(o);return i},Y=async n=>{const e=n.request,i=e.headers.has("oidc-vanilla"),o={status:200,statusText:"oidc-service-worker"},t=new Response("{}",o);if(!i){const s=new URL(e.url),d=Number(s.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await V(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(n.request,t.clone())}return t},B=async n=>{const e=n.request,i=e.url;if(e.url.includes(j)){n.respondWith(Y(n));return}const o=M(g,e.url,trustedDomains);if(o&&o.tokens&&o.tokens.access_token){for(;o.tokens&&!b(o.tokens);)await V(200);const l=e.mode=="navigate"?new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+o.tokens.access_token}}):new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+o.tokens.access_token},mode:o.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});n.waitUntil(n.respondWith(fetch(l)));return}if(n.request.method!=="POST")return;let t=null;const s=J(g,e.url),d=s.length;if(d>0){const l=new Promise((f,r)=>{const a=e.clone();a.text().then(c=>{if(c.includes(_.REFRESH_TOKEN)||c.includes(_.ACCESS_TOKEN)){let u=c;for(let E=0;E<d;E++){const k=s[E];if(k&&k.tokens!=null){const R=_.REFRESH_TOKEN+"_"+k.configurationName;if(c.includes(R)){u=u.replace(R,encodeURIComponent(k.tokens.refresh_token)),t=k;break}const v=_.ACCESS_TOKEN+"_"+k.configurationName;if(c.includes(v)){u=u.replace(v,encodeURIComponent(k.tokens.access_token)),t=k;break}}}const C=fetch(e,{body:u,method:a.method,headers:{...T(e.headers)},mode:a.mode,cache:a.cache,redirect:a.redirect,referrer:a.referrer,credentials:a.credentials,integrity:a.integrity});return t&&t.oidcServerConfiguration!=null&&t.oidcServerConfiguration.revocationEndpoint&&i.startsWith(t.oidcServerConfiguration.revocationEndpoint)?C.then(async E=>{const k=await E.text();return new Response(k,E)}):C.then(N(t))}else if(c.includes("code_verifier=")&&S){t=g[S],S=null;let u=c;return t&&t.codeVerifier!=null&&(u=H(u,t.codeVerifier)),fetch(e,{body:u,method:a.method,headers:{...T(e.headers)},mode:a.mode,cache:a.cache,redirect:a.redirect,referrer:a.referrer,credentials:a.credentials,integrity:a.integrity}).then(N(t))}}).then(c=>{c!==void 0?f(c):(console.log("success undefined"),r(new Error("Response is undefined inside a success")))}).catch(c=>{c!==void 0?r(c):(console.log("error undefined"),r(new Error("Response is undefined inside a error")))})});n.waitUntil(n.respondWith(l))}},m={},G=n=>{const e=n.ports[0],i=n.data,o=i.configurationName;let t=g[o];if(trustedDomains==null&&(trustedDomains={}),!t){if(m[o]===void 0){let s=trustedDomains[o];m[o]=Array.isArray(s)?!1:s.showAccessToken}g[o]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:o,hideAccessToken:!m[o]},t=g[o],trustedDomains[o]||(trustedDomains[o]=[])}switch(i.type){case"clear":t.tokens=null,t.state=null,t.codeVerifier=null,t.status=i.data.status,e.postMessage({configurationName:o});return;case"init":{const s=i.data.oidcServerConfiguration;let d=trustedDomains[o];const l=D(d,"oidc");l.find(r=>r===A)||[s.tokenEndpoint,s.revocationEndpoint,s.userInfoEndpoint,s.issuer].forEach(r=>{K(l,r)}),t.oidcServerConfiguration=s,t.oidcConfiguration=i.data.oidcConfiguration;const f=i.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?S=o:S=null,!t.tokens)e.postMessage({tokens:null,status:t.status,configurationName:o});else{const r={...t.tokens};t.hideAccessToken&&(r.access_token=_.ACCESS_TOKEN+"_"+o),r.refresh_token&&(r.refresh_token=_.REFRESH_TOKEN+"_"+o),r.idTokenPayload&&r.idTokenPayload.nonce&&t.nonce!=null&&(r.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+o),e.postMessage({tokens:r,status:t.status,configurationName:o})}return}case"setState":t.state=i.data.state,e.postMessage({configurationName:o});return;case"getState":{const s=t.state;e.postMessage({configurationName:o,state:s});return}case"setCodeVerifier":t.codeVerifier=i.data.codeVerifier,e.postMessage({configurationName:o});return;case"getCodeVerifier":{e.postMessage({configurationName:o,codeVerifier:t.codeVerifier!=null?_.CODE_VERIFIER+"_"+o:null});return}case"setSessionState":t.sessionState=i.data.sessionState,e.postMessage({configurationName:o});return;case"getSessionState":{const s=t.sessionState;e.postMessage({configurationName:o,sessionState:s});return}case"setNonce":{let s=i.data.nonce;s&&(t.nonce=s),e.postMessage({configurationName:o});return}case"getNonce":{const s=_.NONCE_TOKEN+"_"+o,d=t.nonce?s:null;e.postMessage({configurationName:o,nonce:d});return}default:t.items={...i.data},e.postMessage({configurationName:o})}};p.addEventListener("install",$);p.addEventListener("activate",z);p.addEventListener("fetch",B);p.addEventListener("message",G);
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 { DomainDetails, 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\nexport const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => {\n if(Array.isArray(trustedDomain)) {\n return trustedDomain;\n }\n\n return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? [];\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\n const domains = getDomains(trustedDomain, 'accessToken');\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 getDomains,\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 const domains = getDomains(trustedDomain, 'oidc');\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","getDomains","trustedDomain","type","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","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","../utils/codeVerifier.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 { DomainDetails, 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\nexport const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => {\n if(Array.isArray(trustedDomain)) {\n return trustedDomain;\n }\n\n return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? [];\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\n const domains = getDomains(trustedDomain, 'accessToken');\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 (nonce && 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","\n\nexport function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string):string {\n const regex = /code_verifier=[A-Za-z0-9_-]+/i;\n return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`);\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 getDomains,\n} from './utils';\nimport {replaceCodeVerifier} from \"./utils/codeVerifier\";\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 newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier);\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 const domains = getDomains(trustedDomain, 'oidc');\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: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + '_' + configurationName : null,\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 let nonce = data.data.nonce;\n if (nonce) {\n currentDatabase.nonce = nonce;\n }\n port.postMessage({configurationName});\n return;\n }\n case 'getNonce': {\n const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName;\n const nonce = currentDatabase.nonce ? keyNonce : null;\n port.postMessage({configurationName, nonce});\n return;\n }\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","getDomains","trustedDomain","type","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","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","replaceCodeVerifier","codeVerifier","newCodeVerifier","regex","_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","r","err","trustedDomainsShowAccessToken","handleMessage","port","data","where","state","sessionState"],"mappings":"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"}
@@ -23,7 +23,7 @@ export interface FetchHeaders extends Headers {
23
23
  keys(): string[];
24
24
  }
25
25
  export type Status = 'LOGGED' | 'LOGGED_IN' | 'LOGGED_OUT' | 'NOT_CONNECTED' | 'LOGOUT_FROM_ANOTHER_TAB' | 'SESSION_LOST' | 'REQUIRE_SYNC_TOKENS' | 'FORCE_REFRESH' | null;
26
- export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce';
26
+ export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce';
27
27
  export type MessageData = {
28
28
  status: Status;
29
29
  oidcServerConfiguration: OidcServerConfiguration;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function replaceCodeVerifier(codeVerifier: string, newCodeVerifier: string): string;
2
+ //# sourceMappingURL=codeVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeVerifier.d.ts","sourceRoot":"","sources":["../../utils/codeVerifier.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,YAAY,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,GAAE,MAAM,CAGtF"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.webworker.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../service_worker/constants.ts","../service_worker/types.ts","../service_worker/utils/domains.ts","../service_worker/utils/strings.ts","../service_worker/utils/tokens.ts","../service_worker/utils/serializeHeaders.ts","../service_worker/utils/sleep.ts","../service_worker/utils/index.ts","../service_worker/OidcServiceWorker.ts","../node_modules/@vitest/utils/dist/types.d.ts","../node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/pretty-format/build/types.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/picocolors/types.ts","../node_modules/picocolors/picocolors.d.ts","../node_modules/@vitest/utils/dist/index.d.ts","../node_modules/@vitest/runner/dist/tasks-e1fc71d1.d.ts","../node_modules/@vitest/runner/dist/runner-4c50f8a9.d.ts","../node_modules/@vitest/runner/dist/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@vitest/expect/dist/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/vite/types/metadata.d.ts","../node_modules/vite/types/hmrPayload.d.ts","../node_modules/vite/types/customEvent.d.ts","../node_modules/vite/node_modules/rollup/dist/rollup.d.ts","../node_modules/vite/types/importGlob.d.ts","../node_modules/source-map-js/source-map.d.ts","../node_modules/postcss/lib/comment.d.ts","../node_modules/postcss/lib/at-rule.d.ts","../node_modules/postcss/lib/rule.d.ts","../node_modules/postcss/lib/container.d.ts","../node_modules/postcss/lib/declaration.d.ts","../node_modules/postcss/lib/previous-map.d.ts","../node_modules/postcss/lib/input.d.ts","../node_modules/postcss/lib/css-syntax-error.d.ts","../node_modules/postcss/lib/warning.d.ts","../node_modules/postcss/lib/document.d.ts","../node_modules/postcss/lib/root.d.ts","../node_modules/postcss/lib/lazy-result.d.ts","../node_modules/postcss/lib/no-work-result.d.ts","../node_modules/postcss/lib/processor.d.ts","../node_modules/postcss/lib/result.d.ts","../node_modules/postcss/lib/node.d.ts","../node_modules/postcss/lib/list.d.ts","../node_modules/postcss/lib/postcss.d.ts","../node_modules/vite/dist/node/index.d.ts","../node_modules/@vitest/runner/dist/types.d.ts","../node_modules/@vitest/runner/types.d.ts","../node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/@vitest/runner/utils.d.ts","../node_modules/tinybench/dist/index.d.ts","../node_modules/vite-node/dist/types.d-1e7e3fdf.d.ts","../node_modules/vite-node/dist/types-e288fc62.d.ts","../node_modules/vite-node/dist/client.d.ts","../node_modules/vite-node/dist/server.d.ts","../node_modules/vite-node/dist/index.d.ts","../node_modules/source-map/source-map.d.ts","../node_modules/vitest/dist/types-7cd96283.d.ts","../node_modules/tinyspy/dist/index.d.ts","../node_modules/@vitest/spy/dist/index.d.ts","../node_modules/vitest/dist/env-afee91f0.d.ts","../node_modules/vitest/dist/index.d.ts","../service_worker/utils/__tests__/domains.spec.ts","../service_worker/utils/__tests__/serializeHeaders.spec.ts","../service_worker/utils/__tests__/strings.spec.ts","../service_worker/utils/__tests__/testHelper.ts","../service_worker/utils/__tests__/tokens.spec.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"ee453f8d91ef4dac435de2004557bda0db36aee22682da75815b54387434951e","8b0f4d2468a0382779a1b07d19b57acb268da7f991be01dd7604ff17a9b38787","17a7ed929f2c6eea6c9a87f9e7a60716209675dd15415b6d9a1b6f57380d4cd5","c086955af3f274c82dc16949e595ec7e47f626a951977a3a425e04f6fd382cdb","30382859f68f8bc25d1ab6b77118a9348e23fedce1b5a43171714936c9ed50c1","e51725fa106f4f8b38c013eb89fcac2f97cdd31b693568f2b83ff5891cedf562","28cd0fe4d33474764a94966cd9410ceadd84d3b7a0932d12dd34dfe5ef2fb1e8","e12ad12e64da906e9b463b23c8650c7dbd47a879413f60f7f26dfbb265703d8d","cfbf50c5475c9437fc85ffbba10b8c10d947105ac27087a7aece6db8f041f286","9c54a5d94a1ca20e52912f67f5d4d7dbdd53d73fe7ab647f1b1e2037e0fff754","bda0f515b6bf7e0559674024b72e23b58e6edf32814ce490309028957827bedb","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","576d63ef3a0408e9044ab3855ea0877b5f0c674752d4a339d79b8ed6bb88b02a","8c5f0739f00f89f89b03a1fe6658c6d78000d7ebd7f556f0f8d6908fa679de35","25c92362f402669778f77769afabbf97cae0fb827e389e3c5a86a6538988a1f2","9e0c12c479e7592677b3b1c271dc40ed937cd3732bb25894c956630a61e191cd","32e87e95d14ce71a7afa390b190c81401cb1e67afc6c59708ed7b439cbd663da","d63d901954a2859d9581931dbf3335753ae01836eb331ad666a58dcfe70c27c2",{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"119fb97015a7336ef0ebc3de8471b70fba14772558940c65ccadf2b4de1428d7","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"0c5004386ed814334d2d4abd1d8f2f0b63ea2134d5717d8fb2fb8aabc05288ef","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","0aa7220845f5f3902fe043f646f9d9218bd7dd6c4046e8471580866ea6b03aa2","65570ad7e2ac88e024dd1f50844db3b9106e044871529e71d377967e3b590ed7","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","d1c89db652113258e4ba4bbdf5cc7a2a3a600403d4d864a2087b95186253cd5b","11a90d2cb2eaf7fdf931a63b58279e8161f1477a1bd1e914ae026c1bbf9afed3","af18e30f3ba06e9870b61dfa4a109215caabdaa337590c51b4a044a9f338ce96","ace603f7b60599f2dcdbd71c07137b60a747dd33be540f4a294b890f9e0b89dc","7658fbdd425c656fb1849b44932ae7431e8c3198d22c65ce1490deb582743b52","7786c75c1b46e93b33c63dccf689143a5f47ff451a6b3bd9b10e4801cdeadcc2","dbef2851e33a4c2fd2f3164fec70e45df647eb0e87f250de784500a3037e2c37","31491a01ed7466e0b3b0ef8407f2524683055eceb955b1d5ccf7096129468b39","f4b12f7dde4fc0e386648318481bdcfe861b566be246bebf0e8a11ebd909adf9","e8966f7c424780bb0b9d411ebe13eda8555ca15aa675603316c2952bc027b0e3","df0e5f3c4a518111d160cf3bebc9a3ac7d39c6e3bfb7a21d43c304896c3015e2","df4e2f161f74870708c2cc5e1036a6405b878496408fda1ee50d5b10e50d6601","bf791da347fb1c0ffc1e2fcd35867e64bb8355270ae26278198c521bdcf94569","e0e0e3c068e145fbb322120979299ff130ffdd39f0dcd0d5aeaa9f3f8a0d01d9","fde91356172e35b9ea68bbdf33721f7c80307a4ce65b82105eac800e9e744995","9bd5e5a4a1e66b35efe3c48ddac1116537ef86e041717f3a9b9f1e060c74efa6","d7e4a5f4ccfb749c3033fafc233073b4d1dcca0249785186c589602a81f9d86f","68161b6f3004fc10f8bb47a4986cef13c3b0728fb1ca3e1dc7316227d09b2c8d","3fcb7c753af79d2b17b79268bbcace7d957baa234fb12b662e7445aea45be54d","9330dd1414fe87001a61064208c588087bd96c61f91e7cdd8d3ecbe805f10351","1c53e1884dc6550ce179c68e9e3086f54af258fff39eb70274ea9294eb7ce6df","bfcb462146d6d962e5e81691db71da6eafc7a21f65ded1a27620153d780932ed","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","fbdd4ba3bdd2b138debf86f8ea4ac13a16574e9925d62be28a97f4da282feaeb","d12ab69ace581804d4f264eabc71094ca8dadfa70ae2bf5ccd54a8d6105ab84b","08c9b4a63139715b2403190e7b2a0152cd69ea488077a9311261511fcd20d3cf","54a5a83039166ea55e9b9fefe068d22c46e22c4e1318483a26ce21397f05e381","4895ac81e40fdf2b92bdde94f982cff38cebd1374d69ac7773c1a225f4532893","4d221cbdbf1f7e63ffa53674aaea5e77431264ec4e0eb7fea070230a0d5b400e","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579",{"version":"04924c19cb47975ac071bdeb4d62f9c3e51816954dcfd536f15aab0b8cb61aa6","affectsGlobalScope":true},"9bb2968ad5c75dc49dfebd740d0f57ebc81c865e3d034af6a40a8a2ca9d13c2b","0a1416d477a9a58ec1ea05f053d7d2ea47a1f84768745536ef59d278e792195b","691ca3cb7591aba2cfc1fe25cd028e18f3752a3b9635f4e02a29e47c47698a4b","e669214fe6c7ad91b44ce6dbeed23d264d2af1221bf520d0bb300a2f4fe89f6f","d95c3e5140affd86d6d63094d5ed627271cd7f3ca9e8a5ed77631841c056bfd8","2ec1ce60484ba69d734f60cafc5d74067607705414bbc417d4ce6db2058f25b8","1674d1fa07c46f4940024898114375e867f6812815bdbaadd18599098a697d5a","0823741a699067705964b4f7f8c07002c3ab9dfdd1ea0295aa125ae8b38bf044","4936b019fe9bbba3de9860c45aa6dfa2829bab075aff75fe41999a2d07b29256"],"options":{"composite":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[119],[76,119],[79,119],[80,85,119],[81,91,92,99,108,118,119],[81,82,91,99,119],[83,119],[84,85,92,100,119],[85,108,115,119],[86,88,91,99,119],[87,119],[88,89,119],[90,91,119],[91,119],[91,92,93,108,118,119],[91,92,93,108,119],[94,99,108,118,119],[91,92,94,95,99,108,115,118,119],[94,96,108,115,118,119],[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],[91,97,119],[98,118,119],[88,91,99,108,119],[100,119],[101,119],[79,102,119],[103,117,119,123],[104,119],[105,119],[91,106,119],[106,107,119,121],[91,108,109,110,119],[108,110,119],[108,109,119],[111,119],[112,119],[91,113,114,119],[113,114,119],[85,99,108,115,119],[116,119],[99,117,119],[80,94,105,118,119],[85,119],[108,119,120],[119,121],[119,122],[80,85,91,93,102,108,118,119,121,123],[108,119,124],[70,74,119],[70,71,72,119],[71,119],[70,119],[70,71,119],[119,153],[119,155],[119,165],[64,119],[64,65,67,69,119],[68,119],[119,137],[119,137,149],[119,134,135,136,138,149],[119,140],[119,137,144,148,151],[119,139,151],[119,142,144,147,148,151],[119,142,144,145,147,148,151],[119,134,135,136,137,138,140,141,142,143,144,148,151],[119,133,134,135,136,137,138,140,141,142,143,144,145,147,148,149,150],[119,133,151],[119,144,145,146,148,151],[119,147,151],[119,137,143,148,151],[119,141,149],[66,119],[119,133],[119,158,159],[119,152,158,159,164],[119,158],[91,92,94,96,99,108,115,118,119,124,126,127,128,129,130,131,132,151],[119,129],[119,131],[70,73,74,75,92,119,123,152,154,156,157,160,161,162,163,164,166,167],[70,73,75,92,119,123,152,154,156,157,160,161,162,163,164],[55,56,62,119],[55,56,62,119,168],[62,119,168],[56,119,168],[56,62,119,168,172],[55,56,119],[57,58,59,60,61,119],[56,119],[55,56,58,119]],"referencedMap":[[74,1],[76,2],[77,2],[79,3],[80,4],[81,5],[82,6],[83,7],[84,8],[85,9],[86,10],[87,11],[88,12],[89,12],[90,13],[91,14],[92,15],[93,16],[78,1],[125,1],[94,17],[95,18],[96,19],[126,20],[97,21],[98,22],[99,23],[100,24],[101,25],[102,26],[103,27],[104,28],[105,29],[106,30],[107,31],[108,32],[110,33],[109,34],[111,35],[112,36],[113,37],[114,38],[115,39],[116,40],[117,41],[118,42],[119,43],[120,44],[121,45],[122,46],[123,47],[124,48],[75,49],[73,50],[72,51],[71,52],[153,50],[155,53],[154,54],[156,55],[166,56],[65,57],[70,58],[64,1],[127,1],[69,59],[68,1],[135,60],[134,61],[137,62],[141,63],[138,61],[143,64],[140,65],[145,66],[150,1],[146,67],[149,68],[151,69],[139,70],[147,71],[148,72],[144,73],[136,60],[142,74],[67,75],[66,1],[133,76],[163,1],[157,1],[165,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[8,1],[47,1],[44,1],[45,1],[46,1],[48,1],[9,1],[49,1],[50,1],[51,1],[52,1],[53,1],[1,1],[10,1],[54,1],[11,1],[160,77],[162,77],[161,78],[159,79],[158,1],[152,80],[131,1],[130,81],[129,1],[132,1],[128,82],[167,1],[168,83],[164,84],[63,85],[55,1],[56,1],[169,86],[170,87],[171,87],[172,88],[173,89],[57,90],[62,91],[60,92],[61,1],[58,1],[59,93]],"exportedModulesMap":[[74,1],[76,2],[77,2],[79,3],[80,4],[81,5],[82,6],[83,7],[84,8],[85,9],[86,10],[87,11],[88,12],[89,12],[90,13],[91,14],[92,15],[93,16],[78,1],[125,1],[94,17],[95,18],[96,19],[126,20],[97,21],[98,22],[99,23],[100,24],[101,25],[102,26],[103,27],[104,28],[105,29],[106,30],[107,31],[108,32],[110,33],[109,34],[111,35],[112,36],[113,37],[114,38],[115,39],[116,40],[117,41],[118,42],[119,43],[120,44],[121,45],[122,46],[123,47],[124,48],[75,49],[73,50],[72,51],[71,52],[153,50],[155,53],[154,54],[156,55],[166,56],[65,57],[70,58],[64,1],[127,1],[69,59],[68,1],[135,60],[134,61],[137,62],[141,63],[138,61],[143,64],[140,65],[145,66],[150,1],[146,67],[149,68],[151,69],[139,70],[147,71],[148,72],[144,73],[136,60],[142,74],[67,75],[66,1],[133,76],[163,1],[157,1],[165,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[8,1],[47,1],[44,1],[45,1],[46,1],[48,1],[9,1],[49,1],[50,1],[51,1],[52,1],[53,1],[1,1],[10,1],[54,1],[11,1],[160,77],[162,77],[161,78],[159,79],[158,1],[152,80],[131,1],[130,81],[129,1],[132,1],[128,82],[167,1],[168,83],[164,84],[63,85],[55,1],[56,1],[169,86],[170,87],[171,87],[172,88],[173,89],[57,90],[62,91],[60,92],[61,1],[58,1],[59,93]],"semanticDiagnosticsPerFile":[74,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,78,125,94,95,96,126,97,98,99,100,101,102,103,104,105,106,107,108,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,124,75,73,72,71,153,155,154,156,166,65,70,64,127,69,68,135,134,137,141,138,143,140,145,150,146,149,151,139,147,148,144,136,142,67,66,133,163,157,165,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,37,42,43,38,39,40,41,8,47,44,45,46,48,9,49,50,51,52,53,1,10,54,11,160,162,161,159,158,152,131,130,129,132,128,167,168,164,63,55,56,169,170,171,172,173,57,62,60,61,58,59],"affectedFilesPendingEmit":[[74,1],[76,1],[77,1],[79,1],[80,1],[81,1],[82,1],[83,1],[84,1],[85,1],[86,1],[87,1],[88,1],[89,1],[90,1],[91,1],[92,1],[93,1],[78,1],[125,1],[94,1],[95,1],[96,1],[126,1],[97,1],[98,1],[99,1],[100,1],[101,1],[102,1],[103,1],[104,1],[105,1],[106,1],[107,1],[108,1],[110,1],[109,1],[111,1],[112,1],[113,1],[114,1],[115,1],[116,1],[117,1],[118,1],[119,1],[120,1],[121,1],[122,1],[123,1],[124,1],[75,1],[73,1],[72,1],[71,1],[153,1],[155,1],[154,1],[156,1],[166,1],[65,1],[70,1],[64,1],[127,1],[69,1],[68,1],[135,1],[134,1],[137,1],[141,1],[138,1],[143,1],[140,1],[145,1],[150,1],[146,1],[149,1],[151,1],[139,1],[147,1],[148,1],[144,1],[136,1],[142,1],[67,1],[66,1],[133,1],[163,1],[157,1],[165,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[160,1],[162,1],[161,1],[159,1],[158,1],[152,1],[131,1],[130,1],[129,1],[132,1],[128,1],[167,1],[168,1],[164,1],[63,1],[55,1],[56,1],[169,1],[170,1],[171,1],[172,1],[173,1],[57,1],[62,1],[60,1],[61,1],[58,1],[59,1]],"emitSignatures":[55,56,57,58,59,60,61,62,63,169,170,171,172,173]},"version":"4.8.2"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/typescript/lib/lib.webworker.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../service_worker/constants.ts","../service_worker/types.ts","../service_worker/utils/domains.ts","../service_worker/utils/strings.ts","../service_worker/utils/tokens.ts","../service_worker/utils/serializeHeaders.ts","../service_worker/utils/sleep.ts","../service_worker/utils/index.ts","../service_worker/utils/codeVerifier.ts","../service_worker/OidcServiceWorker.ts","../node_modules/@vitest/utils/dist/types.d.ts","../node_modules/@vitest/utils/dist/helpers.d.ts","../node_modules/pretty-format/build/types.d.ts","../node_modules/pretty-format/build/index.d.ts","../node_modules/picocolors/types.ts","../node_modules/picocolors/picocolors.d.ts","../node_modules/@vitest/utils/dist/index.d.ts","../node_modules/@vitest/runner/dist/tasks-e1fc71d1.d.ts","../node_modules/@vitest/runner/dist/runner-4c50f8a9.d.ts","../node_modules/@vitest/runner/dist/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@vitest/expect/dist/index.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/esbuild/lib/main.d.ts","../node_modules/vite/types/metadata.d.ts","../node_modules/vite/types/hmrPayload.d.ts","../node_modules/vite/types/customEvent.d.ts","../node_modules/vite/node_modules/rollup/dist/rollup.d.ts","../node_modules/vite/types/importGlob.d.ts","../node_modules/source-map-js/source-map.d.ts","../node_modules/postcss/lib/comment.d.ts","../node_modules/postcss/lib/at-rule.d.ts","../node_modules/postcss/lib/rule.d.ts","../node_modules/postcss/lib/container.d.ts","../node_modules/postcss/lib/declaration.d.ts","../node_modules/postcss/lib/previous-map.d.ts","../node_modules/postcss/lib/input.d.ts","../node_modules/postcss/lib/css-syntax-error.d.ts","../node_modules/postcss/lib/warning.d.ts","../node_modules/postcss/lib/document.d.ts","../node_modules/postcss/lib/root.d.ts","../node_modules/postcss/lib/lazy-result.d.ts","../node_modules/postcss/lib/no-work-result.d.ts","../node_modules/postcss/lib/processor.d.ts","../node_modules/postcss/lib/result.d.ts","../node_modules/postcss/lib/node.d.ts","../node_modules/postcss/lib/list.d.ts","../node_modules/postcss/lib/postcss.d.ts","../node_modules/vite/dist/node/index.d.ts","../node_modules/@vitest/runner/dist/types.d.ts","../node_modules/@vitest/runner/types.d.ts","../node_modules/@vitest/runner/dist/utils.d.ts","../node_modules/@vitest/runner/utils.d.ts","../node_modules/tinybench/dist/index.d.ts","../node_modules/vite-node/dist/types.d-1e7e3fdf.d.ts","../node_modules/vite-node/dist/types-e288fc62.d.ts","../node_modules/vite-node/dist/client.d.ts","../node_modules/vite-node/dist/server.d.ts","../node_modules/vite-node/dist/index.d.ts","../node_modules/source-map/source-map.d.ts","../node_modules/vitest/dist/types-7cd96283.d.ts","../node_modules/tinyspy/dist/index.d.ts","../node_modules/@vitest/spy/dist/index.d.ts","../node_modules/vitest/dist/env-afee91f0.d.ts","../node_modules/vitest/dist/index.d.ts","../service_worker/utils/__tests__/codeVerifier.spec.ts","../service_worker/utils/__tests__/domains.spec.ts","../service_worker/utils/__tests__/serializeHeaders.spec.ts","../service_worker/utils/__tests__/strings.spec.ts","../service_worker/utils/__tests__/testHelper.ts","../service_worker/utils/__tests__/tokens.spec.ts"],"fileInfos":[{"version":"f20c05dbfe50a208301d2a1da37b9931bce0466eb5a1f4fe240971b4ecc82b67","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"adb09ec0a64fc17dbbc4a228b3b18aa5f01db3440a6b0cbb02354df58674d584","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"55f400eec64d17e888e278f4def2f254b41b89515d3b88ad75d5e05f019daddd","affectsGlobalScope":true},{"version":"181f1784c6c10b751631b24ce60c7f78b20665db4550b335be179217bacc0d5f","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"775d9c9fd150d5de79e0450f35bc8b8f94ae64e3eb5da12725ff2a649dccc777","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"ee453f8d91ef4dac435de2004557bda0db36aee22682da75815b54387434951e","bc5782be898329e8ec9b3ecde609f11d2054ba51b0de6a6b8ae8e59c07ac8159","17a7ed929f2c6eea6c9a87f9e7a60716209675dd15415b6d9a1b6f57380d4cd5","c086955af3f274c82dc16949e595ec7e47f626a951977a3a425e04f6fd382cdb","1fa6c5e02360818ddf697c0570417880da7b31a3bbd04243edd625ada539931b","e51725fa106f4f8b38c013eb89fcac2f97cdd31b693568f2b83ff5891cedf562","28cd0fe4d33474764a94966cd9410ceadd84d3b7a0932d12dd34dfe5ef2fb1e8","e12ad12e64da906e9b463b23c8650c7dbd47a879413f60f7f26dfbb265703d8d","703785d6f459bbeca0436d51564862c56cab1b57f15b08afc4ccfcbfada55605","fbdc8bb433ad9739ac2c6cf45250b9629b846da92d53d20f516844217b756942","9c54a5d94a1ca20e52912f67f5d4d7dbdd53d73fe7ab647f1b1e2037e0fff754","bda0f515b6bf7e0559674024b72e23b58e6edf32814ce490309028957827bedb","462bccdf75fcafc1ae8c30400c9425e1a4681db5d605d1a0edb4f990a54d8094","5923d8facbac6ecf7c84739a5c701a57af94a6f6648d6229a6c768cf28f0f8cb","576d63ef3a0408e9044ab3855ea0877b5f0c674752d4a339d79b8ed6bb88b02a","8c5f0739f00f89f89b03a1fe6658c6d78000d7ebd7f556f0f8d6908fa679de35","25c92362f402669778f77769afabbf97cae0fb827e389e3c5a86a6538988a1f2","9e0c12c479e7592677b3b1c271dc40ed937cd3732bb25894c956630a61e191cd","32e87e95d14ce71a7afa390b190c81401cb1e67afc6c59708ed7b439cbd663da","d63d901954a2859d9581931dbf3335753ae01836eb331ad666a58dcfe70c27c2",{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"119fb97015a7336ef0ebc3de8471b70fba14772558940c65ccadf2b4de1428d7","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"2a801b0322994c3dd7f0ef30265d19b3dd3bae6d793596879166ed6219c3da68","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"7a5459efa09ea82088234e6533a203d528c594b01787fb90fba148885a36e8b6","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"8207e7e6db9aa5fc7e61c8f17ba74cf9c115d26f51f91ee93f790815a7ea9dfb","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"cfe724f7c694aab65a9bdd1acb05997848c504548c9d4c71645c187a091cfa2a","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","e383ff72aabf294913f8c346f5da1445ae6ad525836d28efd52cbadc01a361a6","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"0c5004386ed814334d2d4abd1d8f2f0b63ea2134d5717d8fb2fb8aabc05288ef","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"0b3eba6dca8c6e534d16ef7b7d76cb546cd3cbab616c8f71daa0a151b5412b9e","99d951629f7096dcd79adbaa83a85e3be57613005533bd23029b3aba4ce9383e","8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","0aa7220845f5f3902fe043f646f9d9218bd7dd6c4046e8471580866ea6b03aa2","65570ad7e2ac88e024dd1f50844db3b9106e044871529e71d377967e3b590ed7","739c2c46edc112421fc023c24b4898b1f413f792bb6a02b40ba182c648e56c2f","858d0d831826c6eb563df02f7db71c90e26deadd0938652096bea3cc14899700","d1c89db652113258e4ba4bbdf5cc7a2a3a600403d4d864a2087b95186253cd5b","11a90d2cb2eaf7fdf931a63b58279e8161f1477a1bd1e914ae026c1bbf9afed3","af18e30f3ba06e9870b61dfa4a109215caabdaa337590c51b4a044a9f338ce96","ace603f7b60599f2dcdbd71c07137b60a747dd33be540f4a294b890f9e0b89dc","7658fbdd425c656fb1849b44932ae7431e8c3198d22c65ce1490deb582743b52","7786c75c1b46e93b33c63dccf689143a5f47ff451a6b3bd9b10e4801cdeadcc2","dbef2851e33a4c2fd2f3164fec70e45df647eb0e87f250de784500a3037e2c37","31491a01ed7466e0b3b0ef8407f2524683055eceb955b1d5ccf7096129468b39","f4b12f7dde4fc0e386648318481bdcfe861b566be246bebf0e8a11ebd909adf9","e8966f7c424780bb0b9d411ebe13eda8555ca15aa675603316c2952bc027b0e3","df0e5f3c4a518111d160cf3bebc9a3ac7d39c6e3bfb7a21d43c304896c3015e2","df4e2f161f74870708c2cc5e1036a6405b878496408fda1ee50d5b10e50d6601","bf791da347fb1c0ffc1e2fcd35867e64bb8355270ae26278198c521bdcf94569","e0e0e3c068e145fbb322120979299ff130ffdd39f0dcd0d5aeaa9f3f8a0d01d9","fde91356172e35b9ea68bbdf33721f7c80307a4ce65b82105eac800e9e744995","9bd5e5a4a1e66b35efe3c48ddac1116537ef86e041717f3a9b9f1e060c74efa6","d7e4a5f4ccfb749c3033fafc233073b4d1dcca0249785186c589602a81f9d86f","68161b6f3004fc10f8bb47a4986cef13c3b0728fb1ca3e1dc7316227d09b2c8d","3fcb7c753af79d2b17b79268bbcace7d957baa234fb12b662e7445aea45be54d","9330dd1414fe87001a61064208c588087bd96c61f91e7cdd8d3ecbe805f10351","1c53e1884dc6550ce179c68e9e3086f54af258fff39eb70274ea9294eb7ce6df","bfcb462146d6d962e5e81691db71da6eafc7a21f65ded1a27620153d780932ed","e666e31d323fef5642f87db0da48a83e58f0aaf9e3823e87eabd8ec7e0441a36","fbdd4ba3bdd2b138debf86f8ea4ac13a16574e9925d62be28a97f4da282feaeb","d12ab69ace581804d4f264eabc71094ca8dadfa70ae2bf5ccd54a8d6105ab84b","08c9b4a63139715b2403190e7b2a0152cd69ea488077a9311261511fcd20d3cf","54a5a83039166ea55e9b9fefe068d22c46e22c4e1318483a26ce21397f05e381","4895ac81e40fdf2b92bdde94f982cff38cebd1374d69ac7773c1a225f4532893","4d221cbdbf1f7e63ffa53674aaea5e77431264ec4e0eb7fea070230a0d5b400e","2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579",{"version":"04924c19cb47975ac071bdeb4d62f9c3e51816954dcfd536f15aab0b8cb61aa6","affectsGlobalScope":true},"9bb2968ad5c75dc49dfebd740d0f57ebc81c865e3d034af6a40a8a2ca9d13c2b","0a1416d477a9a58ec1ea05f053d7d2ea47a1f84768745536ef59d278e792195b","691ca3cb7591aba2cfc1fe25cd028e18f3752a3b9635f4e02a29e47c47698a4b","e669214fe6c7ad91b44ce6dbeed23d264d2af1221bf520d0bb300a2f4fe89f6f","4a8e64c6d800557b3bbf4e07a438576a11a010a86dc2241473d035155b34b4d5","d95c3e5140affd86d6d63094d5ed627271cd7f3ca9e8a5ed77631841c056bfd8","2ec1ce60484ba69d734f60cafc5d74067607705414bbc417d4ce6db2058f25b8","1674d1fa07c46f4940024898114375e867f6812815bdbaadd18599098a697d5a","0823741a699067705964b4f7f8c07002c3ab9dfdd1ea0295aa125ae8b38bf044","4936b019fe9bbba3de9860c45aa6dfa2829bab075aff75fe41999a2d07b29256"],"options":{"composite":true,"declarationMap":true,"esModuleInterop":true,"module":99,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[120],[77,120],[80,120],[81,86,120],[82,92,93,100,109,119,120],[82,83,92,100,120],[84,120],[85,86,93,101,120],[86,109,116,120],[87,89,92,100,120],[88,120],[89,90,120],[91,92,120],[92,120],[92,93,94,109,119,120],[92,93,94,109,120],[95,100,109,119,120],[92,93,95,96,100,109,116,119,120],[95,97,109,116,119,120],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],[92,98,120],[99,119,120],[89,92,100,109,120],[101,120],[102,120],[80,103,120],[104,118,120,124],[105,120],[106,120],[92,107,120],[107,108,120,122],[92,109,110,111,120],[109,111,120],[109,110,120],[112,120],[113,120],[92,114,115,120],[114,115,120],[86,100,109,116,120],[117,120],[100,118,120],[81,95,106,119,120],[86,120],[109,120,121],[120,122],[120,123],[81,86,92,94,103,109,119,120,122,124],[109,120,125],[71,75,120],[71,72,73,120],[72,120],[71,120],[71,72,120],[120,154],[120,156],[120,166],[65,120],[65,66,68,70,120],[69,120],[120,138],[120,138,150],[120,135,136,137,139,150],[120,141],[120,138,145,149,152],[120,140,152],[120,143,145,148,149,152],[120,143,145,146,148,149,152],[120,135,136,137,138,139,141,142,143,144,145,149,152],[120,134,135,136,137,138,139,141,142,143,144,145,146,148,149,150,151],[120,134,152],[120,145,146,147,149,152],[120,148,152],[120,138,144,149,152],[120,142,150],[67,120],[120,134],[120,159,160],[120,153,159,160,165],[120,159],[92,93,95,97,100,109,116,119,120,125,127,128,129,130,131,132,133,152],[120,130],[120,132],[71,74,75,76,93,120,124,153,155,157,158,161,162,163,164,165,167,168],[71,74,76,93,120,124,153,155,157,158,161,162,163,164,165],[55,56,62,63,120],[63,120,169],[55,56,62,120,169],[62,120,169],[56,120,169],[56,62,120,169,174],[55,56,120],[57,58,59,60,61,120],[56,120],[55,56,58,120]],"referencedMap":[[75,1],[77,2],[78,2],[80,3],[81,4],[82,5],[83,6],[84,7],[85,8],[86,9],[87,10],[88,11],[89,12],[90,12],[91,13],[92,14],[93,15],[94,16],[79,1],[126,1],[95,17],[96,18],[97,19],[127,20],[98,21],[99,22],[100,23],[101,24],[102,25],[103,26],[104,27],[105,28],[106,29],[107,30],[108,31],[109,32],[111,33],[110,34],[112,35],[113,36],[114,37],[115,38],[116,39],[117,40],[118,41],[119,42],[120,43],[121,44],[122,45],[123,46],[124,47],[125,48],[76,49],[74,50],[73,51],[72,52],[154,50],[156,53],[155,54],[157,55],[167,56],[66,57],[71,58],[65,1],[128,1],[70,59],[69,1],[136,60],[135,61],[138,62],[142,63],[139,61],[144,64],[141,65],[146,66],[151,1],[147,67],[150,68],[152,69],[140,70],[148,71],[149,72],[145,73],[137,60],[143,74],[68,75],[67,1],[134,76],[164,1],[158,1],[166,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[8,1],[47,1],[44,1],[45,1],[46,1],[48,1],[9,1],[49,1],[50,1],[51,1],[52,1],[53,1],[1,1],[10,1],[54,1],[11,1],[161,77],[163,77],[162,78],[160,79],[159,1],[153,80],[132,1],[131,81],[130,1],[133,1],[129,82],[168,1],[169,83],[165,84],[64,85],[55,1],[56,1],[170,86],[171,87],[172,88],[173,88],[174,89],[175,90],[63,1],[57,91],[62,92],[60,93],[61,1],[58,1],[59,94]],"exportedModulesMap":[[75,1],[77,2],[78,2],[80,3],[81,4],[82,5],[83,6],[84,7],[85,8],[86,9],[87,10],[88,11],[89,12],[90,12],[91,13],[92,14],[93,15],[94,16],[79,1],[126,1],[95,17],[96,18],[97,19],[127,20],[98,21],[99,22],[100,23],[101,24],[102,25],[103,26],[104,27],[105,28],[106,29],[107,30],[108,31],[109,32],[111,33],[110,34],[112,35],[113,36],[114,37],[115,38],[116,39],[117,40],[118,41],[119,42],[120,43],[121,44],[122,45],[123,46],[124,47],[125,48],[76,49],[74,50],[73,51],[72,52],[154,50],[156,53],[155,54],[157,55],[167,56],[66,57],[71,58],[65,1],[128,1],[70,59],[69,1],[136,60],[135,61],[138,62],[142,63],[139,61],[144,64],[141,65],[146,66],[151,1],[147,67],[150,68],[152,69],[140,70],[148,71],[149,72],[145,73],[137,60],[143,74],[68,75],[67,1],[134,76],[164,1],[158,1],[166,1],[13,1],[12,1],[2,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[3,1],[4,1],[25,1],[22,1],[23,1],[24,1],[26,1],[27,1],[28,1],[5,1],[29,1],[30,1],[31,1],[32,1],[6,1],[33,1],[34,1],[35,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[8,1],[47,1],[44,1],[45,1],[46,1],[48,1],[9,1],[49,1],[50,1],[51,1],[52,1],[53,1],[1,1],[10,1],[54,1],[11,1],[161,77],[163,77],[162,78],[160,79],[159,1],[153,80],[132,1],[131,81],[130,1],[133,1],[129,82],[168,1],[169,83],[165,84],[64,85],[55,1],[56,1],[170,86],[171,87],[172,88],[173,88],[174,89],[175,90],[63,1],[57,91],[62,92],[60,93],[61,1],[58,1],[59,94]],"semanticDiagnosticsPerFile":[75,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,79,126,95,96,97,127,98,99,100,101,102,103,104,105,106,107,108,109,111,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,76,74,73,72,154,156,155,157,167,66,71,65,128,70,69,136,135,138,142,139,144,141,146,151,147,150,152,140,148,149,145,137,143,68,67,134,164,158,166,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,33,34,35,36,7,37,42,43,38,39,40,41,8,47,44,45,46,48,9,49,50,51,52,53,1,10,54,11,161,163,162,160,159,153,132,131,130,133,129,168,169,165,64,55,56,170,171,172,173,174,175,63,57,62,60,61,58,59],"affectedFilesPendingEmit":[[75,1],[77,1],[78,1],[80,1],[81,1],[82,1],[83,1],[84,1],[85,1],[86,1],[87,1],[88,1],[89,1],[90,1],[91,1],[92,1],[93,1],[94,1],[79,1],[126,1],[95,1],[96,1],[97,1],[127,1],[98,1],[99,1],[100,1],[101,1],[102,1],[103,1],[104,1],[105,1],[106,1],[107,1],[108,1],[109,1],[111,1],[110,1],[112,1],[113,1],[114,1],[115,1],[116,1],[117,1],[118,1],[119,1],[120,1],[121,1],[122,1],[123,1],[124,1],[125,1],[76,1],[74,1],[73,1],[72,1],[154,1],[156,1],[155,1],[157,1],[167,1],[66,1],[71,1],[65,1],[128,1],[70,1],[69,1],[136,1],[135,1],[138,1],[142,1],[139,1],[144,1],[141,1],[146,1],[151,1],[147,1],[150,1],[152,1],[140,1],[148,1],[149,1],[145,1],[137,1],[143,1],[68,1],[67,1],[134,1],[164,1],[158,1],[166,1],[2,1],[3,1],[4,1],[5,1],[6,1],[7,1],[8,1],[9,1],[10,1],[161,1],[163,1],[162,1],[160,1],[159,1],[153,1],[132,1],[131,1],[130,1],[133,1],[129,1],[168,1],[169,1],[165,1],[64,1],[55,1],[56,1],[170,1],[171,1],[172,1],[173,1],[174,1],[175,1],[63,1],[57,1],[62,1],[60,1],[61,1],[58,1],[59,1]],"emitSignatures":[55,56,57,58,59,60,61,62,63,64,170,171,172,173,174,175]},"version":"4.8.2"}
@@ -15,7 +15,7 @@ export declare const initSession: (configurationName: any, storage?: Storage) =>
15
15
  setLoginParams: (configurationName: string, data: any) => void;
16
16
  getLoginParams: (configurationName: any) => any;
17
17
  getStateAsync: () => Promise<any>;
18
- setStateAsync: (state: any) => Promise<void>;
18
+ setStateAsync: (state: string) => Promise<void>;
19
19
  getCodeVerifierAsync: () => Promise<any>;
20
20
  setCodeVerifierAsync: (codeVerifier: any) => Promise<void>;
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"initSession.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/initSession.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;wCA4CsB,MAAM;;;;;;CA4CnD,CAAC"}
1
+ {"version":3,"file":"initSession.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/initSession.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;wCA4CsB,MAAM;;;2BAgBb,MAAM;;;CA4B5C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"initSession.js","sourceRoot":"","sources":["../../src/oidc/vanilla/initSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initSession.js","sourceRoot":"","sources":["../../src/oidc/vanilla/initSession.ts"],"names":[],"mappings":"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"}
@@ -13,18 +13,18 @@ export declare const initWorkerAsync: (serviceWorkerRelativeUrl: any, configurat
13
13
  }>;
14
14
  startKeepAliveServiceWorker: () => void;
15
15
  isServiceWorkerProxyActiveAsync: () => Promise<boolean | void>;
16
- setSessionStateAsync: (sessionState: any) => Promise<unknown>;
16
+ setSessionStateAsync: (sessionState: string) => Promise<unknown>;
17
17
  getSessionStateAsync: () => Promise<any>;
18
18
  setNonceAsync: (nonce: any) => Promise<unknown>;
19
19
  getNonceAsync: () => Promise<{
20
- nonce: string;
20
+ nonce: any;
21
21
  }>;
22
22
  unregisterAsync: () => Promise<boolean>;
23
23
  setLoginParams: (configurationName: string, data: any) => void;
24
24
  getLoginParams: (configurationName: any) => any;
25
25
  getStateAsync: () => Promise<any>;
26
- setStateAsync: (state: any) => Promise<unknown>;
26
+ setStateAsync: (state: string) => Promise<unknown>;
27
27
  getCodeVerifierAsync: () => Promise<any>;
28
- setCodeVerifierAsync: (codeVerifier: any) => Promise<unknown>;
28
+ setCodeVerifierAsync: (codeVerifier: string) => Promise<unknown>;
29
29
  }>;
30
30
  //# sourceMappingURL=initWorker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"initWorker.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/initWorker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB;;;CAmE9B,CAAC;AAkCF,eAAO,MAAM,UAAU,yCAEtB,CAAC;AAsBF,eAAO,MAAM,SAAS,mCAQrB,CAAC;AAgBF,eAAO,MAAM,eAAe;;6EAuDmD,iBAAiB;;;;;;;;;;;;;wCA8ClD,MAAM;;;;;;EAiDnD,CAAC"}
1
+ {"version":3,"file":"initWorker.d.ts","sourceRoot":"","sources":["../../src/oidc/vanilla/initWorker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,eAAO,MAAM,kBAAkB;;;CAmE9B,CAAC;AAkCF,eAAO,MAAM,UAAU,yCAEtB,CAAC;AAsBF,eAAO,MAAM,SAAS,mCAQrB,CAAC;AAgBF,eAAO,MAAM,eAAe;;6EAuDmD,iBAAiB;;;;;;yCAwBjD,MAAM;;;;;;;wCA2BP,MAAM;;;2BAuBb,MAAM;;yCAgBQ,MAAM;EAsB1D,CAAC"}
@@ -241,13 +241,19 @@ const initWorkerAsync = (serviceWorkerRelativeUrl, configurationName) => __await
241
241
  return result.sessionState;
242
242
  });
243
243
  const setNonceAsync = (nonce) => {
244
+ sessionStorage['oidc.nonce'] = nonce.nonce;
244
245
  return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName });
245
246
  };
246
- const NONCE_TOKEN = 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER';
247
247
  const getNonceAsync = () => __awaiter(void 0, void 0, void 0, function* () {
248
248
  // @ts-ignore
249
- const keyNonce = NONCE_TOKEN + '_' + configurationName;
250
- return { nonce: keyNonce };
249
+ const result = yield sendMessageAsync(registration)({ type: 'getNonce', data: null, configurationName });
250
+ // @ts-ignore
251
+ let nonce = result.nonce;
252
+ if (!nonce) {
253
+ nonce = sessionStorage['oidc.nonce'];
254
+ console.warn('nonce not found in service worker, using sessionStorage');
255
+ }
256
+ return { nonce };
251
257
  });
252
258
  let getLoginParamsCache = null;
253
259
  const setLoginParams = (configurationName, data) => {
@@ -264,17 +270,29 @@ const initWorkerAsync = (serviceWorkerRelativeUrl, configurationName) => __await
264
270
  const getStateAsync = () => __awaiter(void 0, void 0, void 0, function* () {
265
271
  const result = yield sendMessageAsync(registration)({ type: 'getState', data: null, configurationName });
266
272
  // @ts-ignore
267
- return result.state;
273
+ let state = result.state;
274
+ if (!state) {
275
+ state = sessionStorage[`oidc.state.${configurationName}`];
276
+ console.warn('state not found in service worker, using sessionStorage');
277
+ }
278
+ return state;
268
279
  });
269
280
  const setStateAsync = (state) => __awaiter(void 0, void 0, void 0, function* () {
281
+ sessionStorage[`oidc.state.${configurationName}`] = state;
270
282
  return sendMessageAsync(registration)({ type: 'setState', data: { state }, configurationName });
271
283
  });
272
284
  const getCodeVerifierAsync = () => __awaiter(void 0, void 0, void 0, function* () {
273
285
  const result = yield sendMessageAsync(registration)({ type: 'getCodeVerifier', data: null, configurationName });
274
286
  // @ts-ignore
275
- return result.codeVerifier;
287
+ let codeVerifier = result.codeVerifier;
288
+ if (!codeVerifier) {
289
+ codeVerifier = sessionStorage[`oidc.code_verifier.${configurationName}`];
290
+ console.warn('codeVerifier not found in service worker, using sessionStorage');
291
+ }
292
+ return codeVerifier;
276
293
  });
277
294
  const setCodeVerifierAsync = (codeVerifier) => __awaiter(void 0, void 0, void 0, function* () {
295
+ sessionStorage[`oidc.code_verifier.${configurationName}`] = codeVerifier;
278
296
  return sendMessageAsync(registration)({ type: 'setCodeVerifier', data: { codeVerifier }, configurationName });
279
297
  });
280
298
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"initWorker.js","sourceRoot":"","sources":["../../src/oidc/vanilla/initWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initWorker.js","sourceRoot":"","sources":["../../src/oidc/vanilla/initWorker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axa-fr/react-oidc",
3
- "version": "6.23.1",
3
+ "version": "6.24.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "jsnext:main": "dist/index.js",
@@ -16,6 +16,7 @@ import {
16
16
  sleep,
17
17
  getDomains,
18
18
  } from './utils';
19
+ import {replaceCodeVerifier} from "./utils/codeVerifier";
19
20
 
20
21
  const _self = self as ServiceWorkerGlobalScope & typeof globalThis;
21
22
 
@@ -221,14 +222,7 @@ const handleFetch = async (event: FetchEvent) => {
221
222
  currentLoginCallbackConfigurationName = null;
222
223
  let newBody = actualBody;
223
224
  if (currentDatabase && currentDatabase.codeVerifier != null) {
224
- const keyCodeVerifier =
225
- TOKEN.CODE_VERIFIER + '_' + currentDatabase.configurationName;
226
- if (actualBody.includes(keyCodeVerifier)) {
227
- newBody = newBody.replace(
228
- keyCodeVerifier,
229
- currentDatabase.codeVerifier
230
- );
231
- }
225
+ newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier);
232
226
  }
233
227
 
234
228
  return fetch(originalRequest, {
@@ -391,7 +385,7 @@ const handleMessage = (event: ExtendableMessageEvent) => {
391
385
  case 'getCodeVerifier': {
392
386
  port.postMessage({
393
387
  configurationName,
394
- codeVerifier: TOKEN.CODE_VERIFIER + '_' + configurationName,
388
+ codeVerifier: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + '_' + configurationName : null,
395
389
  });
396
390
  return;
397
391
  }
@@ -404,10 +398,20 @@ const handleMessage = (event: ExtendableMessageEvent) => {
404
398
  port.postMessage({ configurationName, sessionState });
405
399
  return;
406
400
  }
407
- case 'setNonce':
408
- currentDatabase.nonce = data.data.nonce;
409
- port.postMessage({ configurationName });
401
+ case 'setNonce': {
402
+ let nonce = data.data.nonce;
403
+ if (nonce) {
404
+ currentDatabase.nonce = nonce;
405
+ }
406
+ port.postMessage({configurationName});
410
407
  return;
408
+ }
409
+ case 'getNonce': {
410
+ const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName;
411
+ const nonce = currentDatabase.nonce ? keyNonce : null;
412
+ port.postMessage({configurationName, nonce});
413
+ return;
414
+ }
411
415
  default:
412
416
  currentDatabase.items = { ...data.data };
413
417
  port.postMessage({ configurationName });
@@ -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"},x="/.well-known/openid-configuration";function K(n,e){if(!e)return;if(!n.find(o=>{var i;let t;return typeof o=="string"?t=new RegExp(`^${o}`):t=o,(i=t.test)==null?void 0:i.call(t,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+N)}const D=(n,e)=>Array.isArray(n)?n:n[`${e}Domains`]??n.domains??[],M=(n,e,s)=>{var o;if(e.endsWith(x))return null;for(const[t,i]of Object.entries(n)){const d=i.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=s==null?[]:s[t],f=D(l,"accessToken"),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}`)),(o=r.test)!=null&&o.call(r,e)){c=!0;break}}if(c)return i.tokens?i:null}return null};function U(n,e){return n.split(e).length-1}function P(n){return JSON.parse(W(n.split(".")[1].replace("-","+").replace("_","/")))}function W(n){return decodeURIComponent(Array.prototype.map.call(atob(n),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function F(n,e){const s=new Date().getTime()/1e3;return Math.round(e-n-s)}function b(n){return n?F(0,n.expiresAt)>0:!1}const O=n=>{try{return n&&U(n,".")===2?P(n):null}catch(e){console.warn(e)}return null},q=(n,e,s)=>{if(n.idTokenPayload){const o=n.idTokenPayload;if(s.issuer!==o.iss)return{isValid:!1,reason:"Issuer does not match"};const t=new Date().getTime()/1e3;if(o.exp&&o.exp<t)return{isValid:!1,reason:"Token expired"};const i=60*60*24*7;if(o.iat&&o.iat+i<t)return{isValid:!1,reason:"Token is used from too long time"};if(o.nonce&&o.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function L(n,e,s){if(!n.issued_at){const u=new Date().getTime()/1e3;n.issued_at=u}const o=O(n.access_token),t={...n,accessTokenPayload:o};e.hideAccessToken&&(t.access_token=_.ACCESS_TOKEN+"_"+s),n.accessTokenPayload=o;let i=null;if(n.id_token){if(i=O(n.id_token),n.idTokenPayload={...i},i.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;i.nonce=u}t.idTokenPayload=i}n.refresh_token&&(t.refresh_token=_.REFRESH_TOKEN+"_"+s);const d=i&&i.exp?i.exp:Number.MAX_VALUE,l=o&&o.exp?o.exp:n.issued_at+n.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,n.expiresAt=f;const c=e.nonce?e.nonce.nonce:null,{isValid:h,reason:r}=q(n,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 n)){const u=e.tokens.refresh_token;e.tokens={...n,refresh_token:u}}else e.tokens=n;return e.status="LOGGED_IN",t}function y(n){const e=n.configurationName;return s=>s.status!==200?s:s.json().then(o=>{const t=L(o,n,e),i=JSON.stringify(t);return new Response(i,s)})}function m(n){const e={};for(const s of n.keys())n.has(s)&&(e[s]=n.get(s));return e}const V=n=>new Promise(e=>setTimeout(e,n)),E=self;E.importScripts(N);const I=Math.round(new Date().getTime()/1e3).toString(),H="OidcKeepAliveServiceWorker.json",j=n=>{console.log("[OidcServiceWorker] service worker installed "+I),n.waitUntil(E.skipWaiting())},J=n=>{console.log("[OidcServiceWorker] service worker activated "+I),n.waitUntil(E.clients.claim())};let T=null;const g={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},Y=(n,e)=>{const s=[];for(const[,o]of Object.entries(n))(o.oidcServerConfiguration!=null&&e.startsWith(o.oidcServerConfiguration.tokenEndpoint)||o.oidcServerConfiguration!=null&&o.oidcServerConfiguration.revocationEndpoint&&e.startsWith(o.oidcServerConfiguration.revocationEndpoint))&&s.push(o);return s},$=async n=>{const e=n.request,s=e.headers.has("oidc-vanilla"),o={status:200,statusText:"oidc-service-worker"},t=new Response("{}",o);if(!s){const i=new URL(e.url),d=Number(i.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await V(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(n.request,t.clone())}return t},z=async n=>{const e=n.request,s=e.url;if(e.url.includes(H)){n.respondWith($(n));return}const o=M(g,e.url,trustedDomains);if(o&&o.tokens&&o.tokens.access_token){for(;o.tokens&&!b(o.tokens);)await V(200);const l=e.mode=="navigate"?new Request(e,{headers:{...m(e.headers),authorization:"Bearer "+o.tokens.access_token}}):new Request(e,{headers:{...m(e.headers),authorization:"Bearer "+o.tokens.access_token},mode:o.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});n.waitUntil(n.respondWith(fetch(l)));return}if(n.request.method!=="POST")return;let t=null;const i=Y(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)),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:{...m(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 p=>{const k=await p.text();return new Response(k,p)}):S.then(y(t))}else if(r.includes("code_verifier=")&&T){t=g[T],T=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:{...m(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")))})});n.waitUntil(n.respondWith(l))}},C={},G=n=>{const e=n.ports[0],s=n.data,o=s.configurationName;let t=g[o];if(trustedDomains==null&&(trustedDomains={}),!t){if(C[o]===void 0){let i=trustedDomains[o];C[o]=Array.isArray(i)?!1:i.showAccessToken}g[o]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:o,hideAccessToken:!C[o]},t=g[o],trustedDomains[o]||(trustedDomains[o]=[])}switch(s.type){case"clear":t.tokens=null,t.state=null,t.codeVerifier=null,t.status=s.data.status,e.postMessage({configurationName:o});return;case"init":{const i=s.data.oidcServerConfiguration;let d=trustedDomains[o];const l=D(d,"oidc");l.find(a=>a===A)||[i.tokenEndpoint,i.revocationEndpoint,i.userInfoEndpoint,i.issuer].forEach(a=>{K(l,a)}),t.oidcServerConfiguration=i,t.oidcConfiguration=s.data.oidcConfiguration;const f=s.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?T=o:T=null,!t.tokens)e.postMessage({tokens:null,status:t.status,configurationName:o});else{const a={...t.tokens};t.hideAccessToken&&(a.access_token=_.ACCESS_TOKEN+"_"+o),a.refresh_token&&(a.refresh_token=_.REFRESH_TOKEN+"_"+o),a.idTokenPayload&&a.idTokenPayload.nonce&&t.nonce!=null&&(a.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+o),e.postMessage({tokens:a,status:t.status,configurationName:o})}return}case"setState":t.state=s.data.state,e.postMessage({configurationName:o});return;case"getState":{const i=t.state;e.postMessage({configurationName:o,state:i});return}case"setCodeVerifier":t.codeVerifier=s.data.codeVerifier,e.postMessage({configurationName:o});return;case"getCodeVerifier":{e.postMessage({configurationName:o,codeVerifier:_.CODE_VERIFIER+"_"+o});return}case"setSessionState":t.sessionState=s.data.sessionState,e.postMessage({configurationName:o});return;case"getSessionState":{const i=t.sessionState;e.postMessage({configurationName:o,sessionState:i});return}case"setNonce":t.nonce=s.data.nonce,e.postMessage({configurationName:o});return;default:t.items={...s.data},e.postMessage({configurationName:o})}};E.addEventListener("install",j);E.addEventListener("activate",J);E.addEventListener("fetch",z);E.addEventListener("message",G);
1
+ "use strict";const y="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 K(n,e){if(!e)return;if(!n.find(o=>{var s;let t;return typeof o=="string"?t=new RegExp(`^${o}`):t=o,(s=t.test)==null?void 0:s.call(t,e)}))throw new Error("Domain "+e+" is not trusted, please add domain in "+y)}const D=(n,e)=>Array.isArray(n)?n:n[`${e}Domains`]??n.domains??[],M=(n,e,i)=>{var o;if(e.endsWith(I))return null;for(const[t,s]of Object.entries(n)){const d=s.oidcServerConfiguration;if(!d||d.tokenEndpoint&&e===d.tokenEndpoint||d.revocationEndpoint&&e===d.revocationEndpoint)continue;const l=i==null?[]:i[t],f=D(l,"accessToken"),r=d.userInfoEndpoint?[d.userInfoEndpoint,...f]:[...f];let a=!1;if(r.find(h=>h===A))a=!0;else for(let h=0;h<r.length;h++){let c=r[h];if(typeof c=="string"&&(c=new RegExp(`^${c}`)),(o=c.test)!=null&&o.call(c,e)){a=!0;break}}if(a)return s.tokens?s:null}return null};function U(n,e){return n.split(e).length-1}function P(n){return JSON.parse(W(n.split(".")[1].replace("-","+").replace("_","/")))}function W(n){return decodeURIComponent(Array.prototype.map.call(atob(n),e=>"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)).join(""))}function F(n,e){const i=new Date().getTime()/1e3;return Math.round(e-n-i)}function b(n){return n?F(0,n.expiresAt)>0:!1}const O=n=>{try{return n&&U(n,".")===2?P(n):null}catch(e){console.warn(e)}return null},q=(n,e,i)=>{if(n.idTokenPayload){const o=n.idTokenPayload;if(i.issuer!==o.iss)return{isValid:!1,reason:"Issuer does not match"};const t=new Date().getTime()/1e3;if(o.exp&&o.exp<t)return{isValid:!1,reason:"Token expired"};const s=60*60*24*7;if(o.iat&&o.iat+s<t)return{isValid:!1,reason:"Token is used from too long time"};if(e&&o.nonce&&o.nonce!==e)return{isValid:!1,reason:"Nonce does not match"}}return{isValid:!0,reason:""}};function L(n,e,i){if(!n.issued_at){const u=new Date().getTime()/1e3;n.issued_at=u}const o=O(n.access_token),t={...n,accessTokenPayload:o};e.hideAccessToken&&(t.access_token=_.ACCESS_TOKEN+"_"+i),n.accessTokenPayload=o;let s=null;if(n.id_token){if(s=O(n.id_token),n.idTokenPayload={...s},s.nonce&&e.nonce!=null){const u=_.NONCE_TOKEN+"_"+e.configurationName;s.nonce=u}t.idTokenPayload=s}n.refresh_token&&(t.refresh_token=_.REFRESH_TOKEN+"_"+i);const d=s&&s.exp?s.exp:Number.MAX_VALUE,l=o&&o.exp?o.exp:n.issued_at+n.expires_in;let f;const r=e.oidcConfiguration.token_renew_mode;r===w.access_token_invalid?f=l:r===w.id_token_invalid?f=d:f=d<l?d:l,t.expiresAt=f,n.expiresAt=f;const a=e.nonce?e.nonce.nonce:null,{isValid:h,reason:c}=q(n,a,e.oidcServerConfiguration);if(!h)throw Error(`Tokens are not OpenID valid, reason: ${c}`);if(e.tokens!=null&&"refresh_token"in e.tokens&&!("refresh_token"in n)){const u=e.tokens.refresh_token;e.tokens={...n,refresh_token:u}}else e.tokens=n;return e.status="LOGGED_IN",t}function N(n){const e=n.configurationName;return i=>i.status!==200?i:i.json().then(o=>{const t=L(o,n,e),s=JSON.stringify(t);return new Response(s,i)})}function T(n){const e={};for(const i of n.keys())n.has(i)&&(e[i]=n.get(i));return e}const V=n=>new Promise(e=>setTimeout(e,n));function H(n,e){const i=/code_verifier=[A-Za-z0-9_-]+/i;return n.replace(i,`code_verifier=${e}`)}const p=self;p.importScripts(y);const x=Math.round(new Date().getTime()/1e3).toString(),j="OidcKeepAliveServiceWorker.json",$=n=>{console.log("[OidcServiceWorker] service worker installed "+x),n.waitUntil(p.skipWaiting())},z=n=>{console.log("[OidcServiceWorker] service worker activated "+x),n.waitUntil(p.clients.claim())};let S=null;const g={default:{configurationName:"default",tokens:null,status:null,state:null,codeVerifier:null,nonce:null,oidcServerConfiguration:null,hideAccessToken:!0}},J=(n,e)=>{const i=[];for(const[,o]of Object.entries(n))(o.oidcServerConfiguration!=null&&e.startsWith(o.oidcServerConfiguration.tokenEndpoint)||o.oidcServerConfiguration!=null&&o.oidcServerConfiguration.revocationEndpoint&&e.startsWith(o.oidcServerConfiguration.revocationEndpoint))&&i.push(o);return i},Y=async n=>{const e=n.request,i=e.headers.has("oidc-vanilla"),o={status:200,statusText:"oidc-service-worker"},t=new Response("{}",o);if(!i){const s=new URL(e.url),d=Number(s.searchParams.get("minSleepSeconds"))||240;for(let l=0;l<d;l++)await V(1e3+Math.floor(Math.random()*1e3)),await(await caches.open("oidc_dummy_cache")).put(n.request,t.clone())}return t},B=async n=>{const e=n.request,i=e.url;if(e.url.includes(j)){n.respondWith(Y(n));return}const o=M(g,e.url,trustedDomains);if(o&&o.tokens&&o.tokens.access_token){for(;o.tokens&&!b(o.tokens);)await V(200);const l=e.mode=="navigate"?new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+o.tokens.access_token}}):new Request(e,{headers:{...T(e.headers),authorization:"Bearer "+o.tokens.access_token},mode:o.oidcConfiguration.service_worker_convert_all_requests_to_cors?"cors":e.mode});n.waitUntil(n.respondWith(fetch(l)));return}if(n.request.method!=="POST")return;let t=null;const s=J(g,e.url),d=s.length;if(d>0){const l=new Promise((f,r)=>{const a=e.clone();a.text().then(c=>{if(c.includes(_.REFRESH_TOKEN)||c.includes(_.ACCESS_TOKEN)){let u=c;for(let E=0;E<d;E++){const k=s[E];if(k&&k.tokens!=null){const R=_.REFRESH_TOKEN+"_"+k.configurationName;if(c.includes(R)){u=u.replace(R,encodeURIComponent(k.tokens.refresh_token)),t=k;break}const v=_.ACCESS_TOKEN+"_"+k.configurationName;if(c.includes(v)){u=u.replace(v,encodeURIComponent(k.tokens.access_token)),t=k;break}}}const C=fetch(e,{body:u,method:a.method,headers:{...T(e.headers)},mode:a.mode,cache:a.cache,redirect:a.redirect,referrer:a.referrer,credentials:a.credentials,integrity:a.integrity});return t&&t.oidcServerConfiguration!=null&&t.oidcServerConfiguration.revocationEndpoint&&i.startsWith(t.oidcServerConfiguration.revocationEndpoint)?C.then(async E=>{const k=await E.text();return new Response(k,E)}):C.then(N(t))}else if(c.includes("code_verifier=")&&S){t=g[S],S=null;let u=c;return t&&t.codeVerifier!=null&&(u=H(u,t.codeVerifier)),fetch(e,{body:u,method:a.method,headers:{...T(e.headers)},mode:a.mode,cache:a.cache,redirect:a.redirect,referrer:a.referrer,credentials:a.credentials,integrity:a.integrity}).then(N(t))}}).then(c=>{c!==void 0?f(c):(console.log("success undefined"),r(new Error("Response is undefined inside a success")))}).catch(c=>{c!==void 0?r(c):(console.log("error undefined"),r(new Error("Response is undefined inside a error")))})});n.waitUntil(n.respondWith(l))}},m={},G=n=>{const e=n.ports[0],i=n.data,o=i.configurationName;let t=g[o];if(trustedDomains==null&&(trustedDomains={}),!t){if(m[o]===void 0){let s=trustedDomains[o];m[o]=Array.isArray(s)?!1:s.showAccessToken}g[o]={tokens:null,state:null,codeVerifier:null,oidcServerConfiguration:null,oidcConfiguration:void 0,nonce:null,status:null,configurationName:o,hideAccessToken:!m[o]},t=g[o],trustedDomains[o]||(trustedDomains[o]=[])}switch(i.type){case"clear":t.tokens=null,t.state=null,t.codeVerifier=null,t.status=i.data.status,e.postMessage({configurationName:o});return;case"init":{const s=i.data.oidcServerConfiguration;let d=trustedDomains[o];const l=D(d,"oidc");l.find(r=>r===A)||[s.tokenEndpoint,s.revocationEndpoint,s.userInfoEndpoint,s.issuer].forEach(r=>{K(l,r)}),t.oidcServerConfiguration=s,t.oidcConfiguration=i.data.oidcConfiguration;const f=i.data.where;if(f==="loginCallbackAsync"||f==="tryKeepExistingSessionAsync"?S=o:S=null,!t.tokens)e.postMessage({tokens:null,status:t.status,configurationName:o});else{const r={...t.tokens};t.hideAccessToken&&(r.access_token=_.ACCESS_TOKEN+"_"+o),r.refresh_token&&(r.refresh_token=_.REFRESH_TOKEN+"_"+o),r.idTokenPayload&&r.idTokenPayload.nonce&&t.nonce!=null&&(r.idTokenPayload.nonce=_.NONCE_TOKEN+"_"+o),e.postMessage({tokens:r,status:t.status,configurationName:o})}return}case"setState":t.state=i.data.state,e.postMessage({configurationName:o});return;case"getState":{const s=t.state;e.postMessage({configurationName:o,state:s});return}case"setCodeVerifier":t.codeVerifier=i.data.codeVerifier,e.postMessage({configurationName:o});return;case"getCodeVerifier":{e.postMessage({configurationName:o,codeVerifier:t.codeVerifier!=null?_.CODE_VERIFIER+"_"+o:null});return}case"setSessionState":t.sessionState=i.data.sessionState,e.postMessage({configurationName:o});return;case"getSessionState":{const s=t.sessionState;e.postMessage({configurationName:o,sessionState:s});return}case"setNonce":{let s=i.data.nonce;s&&(t.nonce=s),e.postMessage({configurationName:o});return}case"getNonce":{const s=_.NONCE_TOKEN+"_"+o,d=t.nonce?s:null;e.postMessage({configurationName:o,nonce:d});return}default:t.items={...i.data},e.postMessage({configurationName:o})}};p.addEventListener("install",$);p.addEventListener("activate",z);p.addEventListener("fetch",B);p.addEventListener("message",G);
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 { DomainDetails, 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\nexport const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => {\n if(Array.isArray(trustedDomain)) {\n return trustedDomain;\n }\n\n return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? [];\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\n const domains = getDomains(trustedDomain, 'accessToken');\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 getDomains,\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 const domains = getDomains(trustedDomain, 'oidc');\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","getDomains","trustedDomain","type","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","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","../utils/codeVerifier.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 { DomainDetails, 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\nexport const getDomains = (trustedDomain: Domain[] | DomainDetails, type: 'oidc' | 'accessToken') => {\n if(Array.isArray(trustedDomain)) {\n return trustedDomain;\n }\n\n return trustedDomain[`${type}Domains`] ?? trustedDomain.domains ?? [];\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\n const domains = getDomains(trustedDomain, 'accessToken');\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 (nonce && 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","\n\nexport function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string):string {\n const regex = /code_verifier=[A-Za-z0-9_-]+/i;\n return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`);\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 getDomains,\n} from './utils';\nimport {replaceCodeVerifier} from \"./utils/codeVerifier\";\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 newBody = replaceCodeVerifier(newBody, currentDatabase.codeVerifier);\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 const domains = getDomains(trustedDomain, 'oidc');\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: currentDatabase.codeVerifier != null ? TOKEN.CODE_VERIFIER + '_' + configurationName : null,\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 let nonce = data.data.nonce;\n if (nonce) {\n currentDatabase.nonce = nonce;\n }\n port.postMessage({configurationName});\n return;\n }\n case 'getNonce': {\n const keyNonce = TOKEN.NONCE_TOKEN + '_' + configurationName;\n const nonce = currentDatabase.nonce ? keyNonce : null;\n port.postMessage({configurationName, nonce});\n return;\n }\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","getDomains","trustedDomain","type","getCurrentDatabaseDomain","database","url","trustedDomains","key","currentDatabase","oidcServerConfiguration","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","replaceCodeVerifier","codeVerifier","newCodeVerifier","regex","_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","r","err","trustedDomainsShowAccessToken","handleMessage","port","data","where","state","sessionState"],"mappings":"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"}
@@ -23,7 +23,7 @@ export interface FetchHeaders extends Headers {
23
23
  keys(): string[];
24
24
  }
25
25
  export type Status = 'LOGGED' | 'LOGGED_IN' | 'LOGGED_OUT' | 'NOT_CONNECTED' | 'LOGOUT_FROM_ANOTHER_TAB' | 'SESSION_LOST' | 'REQUIRE_SYNC_TOKENS' | 'FORCE_REFRESH' | null;
26
- export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce';
26
+ export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce';
27
27
  export type MessageData = {
28
28
  status: Status;
29
29
  oidcServerConfiguration: OidcServerConfiguration;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,cAAc,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,aAAa,CAAC;CAC3C,GAAI,IAAI,CAAC;AAEV,MAAM,MAAM,uBAAuB,GAAG;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,2CAA2C,EAAE,OAAO,CAAC;CACxD,CAAA;AAID,MAAM,WAAW,YAAa,SAAQ,OAAO;IACzC,IAAI,IAAI,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,eAAe,GAAG,yBAAyB,GAAG,cAAc,GAAG,qBAAqB,GAAG,eAAe,GAAG,IAAI,CAAC;AAC3K,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEpL,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,UAAU,GAAG;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACxD,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACf,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;CAC5B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function replaceCodeVerifier(codeVerifier: string, newCodeVerifier: string): string;
2
+ //# sourceMappingURL=codeVerifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeVerifier.d.ts","sourceRoot":"","sources":["../../utils/codeVerifier.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,YAAY,EAAC,MAAM,EAAE,eAAe,EAAC,MAAM,GAAE,MAAM,CAGtF"}
@@ -32,7 +32,7 @@ export interface FetchHeaders extends Headers {
32
32
  }
33
33
 
34
34
  export type Status = 'LOGGED' | 'LOGGED_IN' | 'LOGGED_OUT' | 'NOT_CONNECTED' | 'LOGOUT_FROM_ANOTHER_TAB' | 'SESSION_LOST' | 'REQUIRE_SYNC_TOKENS' | 'FORCE_REFRESH' | null;
35
- export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce';
35
+ export type MessageEventType = 'clear' | 'init' | 'setState' | 'getState' | 'setCodeVerifier' | 'getCodeVerifier' | 'setSessionState' | 'getSessionState' | 'setNonce' | 'getNonce';
36
36
 
37
37
  export type MessageData = {
38
38
  status: Status;
@@ -0,0 +1,14 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import {replaceCodeVerifier} from "../codeVerifier";
3
+
4
+ describe('replaceCodeVerifier should', () => {
5
+
6
+ it.each([
7
+ {body:'code=F5CDCDB9AADB9ADA59560DE80CAAA6688BC5C8BA1CC1C1F9839F7E7B32171B3D-1&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauthentication%2Fcallback&code_verifier=ONskPfcbfAYPp5xqhpMstHSz017896R7sy3wqrRdqC8lYB8yQciCCNLooqLC9qHFTF2FFhDQP4m8PEFNSry8eoCbQ9baYcoWjF1bEH6vGWExdTIMqauicjeVxqz58FO8', bodyExpected: 'code=F5CDCDB9AADB9ADA59560DE80CAAA6688BC5C8BA1CC1C1F9839F7E7B32171B3D-1&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauthentication%2Fcallback&code_verifier=1234'},
8
+ {body:'code=F5CDCDB9AADB9ADA59560DE80CAAA6688BC5C8BA1CC1C1F9839F7E7B32171B3D-1&code_verifier=ONskPfcbfAYPp5xqhpMstHSz017896R7sy3wqrRdqC8lYB8yQciCCNLooqLC9qHFTF2FFhDQP4m8PEFNSry8eoCbQ9baYcoWjF1bEH6vGWExdTIMqauicjeVxqz58FO8&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauthentication%2Fcallback', bodyExpected: 'code=F5CDCDB9AADB9ADA59560DE80CAAA6688BC5C8BA1CC1C1F9839F7E7B32171B3D-1&code_verifier=1234&grant_type=authorization_code&client_id=interactive.public.short&redirect_uri=http%3A%2F%2Flocalhost%3A4200%2Fauthentication%2Fcallback'},
9
+ ]) ('inject new codeVerifier', async ({ body, bodyExpected}) => {
10
+ const result = replaceCodeVerifier(body, '1234');
11
+ expect(bodyExpected).toEqual(result);
12
+ });
13
+
14
+ });
@@ -0,0 +1,6 @@
1
+ 
2
+
3
+ export function replaceCodeVerifier(codeVerifier:string, newCodeVerifier:string):string {
4
+ const regex = /code_verifier=[A-Za-z0-9_-]+/i;
5
+ return codeVerifier.replace(regex, `code_verifier=${newCodeVerifier}`);
6
+ }
@@ -84,7 +84,7 @@ const isTokensOidcValid = (
84
84
  return { isValid: false, reason: 'Token is used from too long time' };
85
85
  }
86
86
  // 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.
87
- if (idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {
87
+ if (nonce && idTokenPayload.nonce && idTokenPayload.nonce !== nonce) {
88
88
  return { isValid: false, reason: 'Nonce does not match' };
89
89
  }
90
90
  }
@@ -59,7 +59,7 @@ export const initSession = (configurationName, storage = sessionStorage) => {
59
59
  return storage[`oidc.state.${configurationName}`];
60
60
  };
61
61
 
62
- const setStateAsync = async (state) => {
62
+ const setStateAsync = async (state:string) => {
63
63
  storage[`oidc.state.${configurationName}`] = state;
64
64
  };
65
65
 
@@ -230,7 +230,7 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName
230
230
  }
231
231
  };
232
232
 
233
- const setSessionStateAsync = (sessionState) => {
233
+ const setSessionStateAsync = (sessionState:string) => {
234
234
  return sendMessageAsync(registration)({ type: 'setSessionState', data: { sessionState }, configurationName });
235
235
  };
236
236
 
@@ -241,14 +241,19 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName
241
241
  };
242
242
 
243
243
  const setNonceAsync = (nonce) => {
244
+ sessionStorage['oidc.nonce'] = nonce.nonce;
244
245
  return sendMessageAsync(registration)({ type: 'setNonce', data: { nonce }, configurationName });
245
246
  };
246
-
247
- const NONCE_TOKEN = 'NONCE_SECURED_BY_OIDC_SERVICE_WORKER';
248
- const getNonceAsync = async () => {
247
+ const getNonceAsync = async () => {
248
+ // @ts-ignore
249
+ const result = await sendMessageAsync(registration)({ type: 'getNonce', data: null, configurationName });
249
250
  // @ts-ignore
250
- const keyNonce = NONCE_TOKEN + '_' + configurationName;
251
- return { nonce: keyNonce };
251
+ let nonce = result.nonce;
252
+ if (!nonce) {
253
+ nonce = sessionStorage['oidc.nonce'];
254
+ console.warn('nonce not found in service worker, using sessionStorage');
255
+ }
256
+ return { nonce };
252
257
  };
253
258
 
254
259
  let getLoginParamsCache = null;
@@ -267,20 +272,32 @@ export const initWorkerAsync = async(serviceWorkerRelativeUrl, configurationName
267
272
  const getStateAsync = async () => {
268
273
  const result = await sendMessageAsync(registration)({ type: 'getState', data: null, configurationName });
269
274
  // @ts-ignore
270
- return result.state;
275
+ let state = result.state;
276
+ if (!state) {
277
+ state = sessionStorage[`oidc.state.${configurationName}`];
278
+ console.warn('state not found in service worker, using sessionStorage');
279
+ }
280
+ return state;
271
281
  };
272
282
 
273
- const setStateAsync = async (state) => {
283
+ const setStateAsync = async (state:string) => {
284
+ sessionStorage[`oidc.state.${configurationName}`] = state;
274
285
  return sendMessageAsync(registration)({ type: 'setState', data: { state }, configurationName });
275
286
  };
276
287
 
277
288
  const getCodeVerifierAsync = async () => {
278
289
  const result = await sendMessageAsync(registration)({ type: 'getCodeVerifier', data: null, configurationName });
279
290
  // @ts-ignore
280
- return result.codeVerifier;
291
+ let codeVerifier = result.codeVerifier;
292
+ if (!codeVerifier) {
293
+ codeVerifier = sessionStorage[`oidc.code_verifier.${configurationName}`];
294
+ console.warn('codeVerifier not found in service worker, using sessionStorage');
295
+ }
296
+ return codeVerifier;
281
297
  };
282
298
 
283
- const setCodeVerifierAsync = async (codeVerifier) => {
299
+ const setCodeVerifierAsync = async (codeVerifier:string) => {
300
+ sessionStorage[`oidc.code_verifier.${configurationName}`] = codeVerifier;
284
301
  return sendMessageAsync(registration)({ type: 'setCodeVerifier', data: { codeVerifier }, configurationName });
285
302
  };
286
303