@axa-fr/react-oidc 7.4.0-alpha.1025 → 7.4.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.
- package/dist/OidcProvider.d.ts +2 -0
- package/dist/index.js +555 -549
- package/dist/index.umd.cjs +10 -10
- package/package.json +3 -3
- package/src/OidcProvider.tsx +38 -13
- package/src/OidcSecure.tsx +4 -6
- package/src/ReactOidc.tsx +3 -6
- package/src/User.ts +1 -14
package/dist/index.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(R,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("react"),require("@axa-fr/oidc-client")):typeof define=="function"&&define.amd?define(["exports","react","@axa-fr/oidc-client"],y):(R=typeof globalThis<"u"?globalThis:R||self,y(R["react-oidc"]={},R.React,R.oidcClient))})(this,function(R,y,l){"use strict";var ne={exports:{}},G={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var
|
|
9
|
+
*/var be;function Qe(){if(be)return G;be=1;var s=y,o=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,d=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function h(i,v,g){var k,O={},S=null,D=null;g!==void 0&&(S=""+g),v.key!==void 0&&(S=""+v.key),v.ref!==void 0&&(D=v.ref);for(k in v)a.call(v,k)&&!u.hasOwnProperty(k)&&(O[k]=v[k]);if(i&&i.defaultProps)for(k in v=i.defaultProps,v)O[k]===void 0&&(O[k]=v[k]);return{$$typeof:o,type:i,key:S,ref:D,props:O,_owner:d.current}}return G.Fragment=n,G.jsx=h,G.jsxs=h,G}var H={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var
|
|
18
|
-
`+
|
|
19
|
-
`),
|
|
20
|
-
`),
|
|
21
|
-
`+p[
|
|
17
|
+
*/var ke;function Ze(){return ke||(ke=1,process.env.NODE_ENV!=="production"&&function(){var s=y,o=Symbol.for("react.element"),n=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),h=Symbol.for("react.provider"),i=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),k=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),D=Symbol.for("react.offscreen"),X=Symbol.iterator,W="@@iterator";function oe(e){if(e===null||typeof e!="object")return null;var t=X&&e[X]||e[W];return typeof t=="function"?t:null}var L=s.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function j(e){{for(var t=arguments.length,r=new Array(t>1?t-1:0),f=1;f<t;f++)r[f-1]=arguments[f];M("error",e,r)}}function M(e,t,r){{var f=L.ReactDebugCurrentFrame,b=f.getStackAddendum();b!==""&&(t+="%s",r=r.concat([b]));var m=r.map(function(_){return String(_)});m.unshift("Warning: "+t),Function.prototype.apply.call(console[e],console,m)}}var ae=!1,ce=!1,ie=!1,le=!1,U=!1,Q;Q=Symbol.for("react.module.reference");function ue(e){return!!(typeof e=="string"||typeof e=="function"||e===a||e===u||U||e===d||e===g||e===k||le||e===D||ae||ce||ie||typeof e=="object"&&e!==null&&(e.$$typeof===S||e.$$typeof===O||e.$$typeof===h||e.$$typeof===i||e.$$typeof===v||e.$$typeof===Q||e.getModuleId!==void 0))}function Y(e,t,r){var f=e.displayName;if(f)return f;var b=t.displayName||t.name||"";return b!==""?r+"("+b+")":r}function V(e){return e.displayName||"Context"}function A(e){if(e==null)return null;if(typeof e.tag=="number"&&j("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case a:return"Fragment";case n:return"Portal";case u:return"Profiler";case d:return"StrictMode";case g:return"Suspense";case k:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case i:var t=e;return V(t)+".Consumer";case h:var r=e;return V(r._context)+".Provider";case v:return Y(e,e.render,"ForwardRef");case O:var f=e.displayName||null;return f!==null?f:A(e.type)||"Memo";case S:{var b=e,m=b._payload,_=b._init;try{return A(_(m))}catch{return null}}}return null}var P=Object.assign,F=0,T,N,xe,Pe,Ae,Fe,Ne;function Ie(){}Ie.__reactDisabledLog=!0;function Ot(){{if(F===0){T=console.log,N=console.info,xe=console.warn,Pe=console.error,Ae=console.group,Fe=console.groupCollapsed,Ne=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Ie,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}F++}}function Et(){{if(F--,F===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:P({},e,{value:T}),info:P({},e,{value:N}),warn:P({},e,{value:xe}),error:P({},e,{value:Pe}),group:P({},e,{value:Ae}),groupCollapsed:P({},e,{value:Fe}),groupEnd:P({},e,{value:Ne})})}F<0&&j("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var de=L.ReactCurrentDispatcher,fe;function Z(e,t,r){{if(fe===void 0)try{throw Error()}catch(b){var f=b.stack.trim().match(/\n( *(at )?)/);fe=f&&f[1]||""}return`
|
|
18
|
+
`+fe+e}}var ve=!1,q;{var Tt=typeof WeakMap=="function"?WeakMap:Map;q=new Tt}function De(e,t){if(!e||ve)return"";{var r=q.get(e);if(r!==void 0)return r}var f;ve=!0;var b=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var m;m=de.current,de.current=null,Ot();try{if(t){var _=function(){throw Error()};if(Object.defineProperty(_.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(_,[])}catch(I){f=I}Reflect.construct(e,[],_)}else{try{_.call()}catch(I){f=I}e.call(_.prototype)}}else{try{throw Error()}catch(I){f=I}e()}}catch(I){if(I&&f&&typeof I.stack=="string"){for(var p=I.stack.split(`
|
|
19
|
+
`),C=f.stack.split(`
|
|
20
|
+
`),E=p.length-1,w=C.length-1;E>=1&&w>=0&&p[E]!==C[w];)w--;for(;E>=1&&w>=0;E--,w--)if(p[E]!==C[w]){if(E!==1||w!==1)do if(E--,w--,w<0||p[E]!==C[w]){var x=`
|
|
21
|
+
`+p[E].replace(" at new "," at ");return e.displayName&&x.includes("<anonymous>")&&(x=x.replace("<anonymous>",e.displayName)),typeof e=="function"&&q.set(e,x),x}while(E>=1&&w>=0);break}}}finally{ve=!1,de.current=m,Et(),Error.prepareStackTrace=b}var z=e?e.displayName||e.name:"",Xe=z?Z(z):"";return typeof e=="function"&&q.set(e,Xe),Xe}function wt(e,t,r){return De(e,!1)}function Rt(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function $(e,t,r){if(e==null)return"";if(typeof e=="function")return De(e,Rt(e));if(typeof e=="string")return Z(e);switch(e){case g:return Z("Suspense");case k:return Z("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case v:return wt(e.render);case O:return $(e.type,t,r);case S:{var f=e,b=f._payload,m=f._init;try{return $(m(b),t,r)}catch{}}}return""}var ee=Object.prototype.hasOwnProperty,Le={},Ue=L.ReactDebugCurrentFrame;function te(e){if(e){var t=e._owner,r=$(e.type,e._source,t?t.type:null);Ue.setExtraStackFrame(r)}else Ue.setExtraStackFrame(null)}function St(e,t,r,f,b){{var m=Function.call.bind(ee);for(var _ in e)if(m(e,_)){var p=void 0;try{if(typeof e[_]!="function"){var C=Error((f||"React class")+": "+r+" type `"+_+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[_]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw C.name="Invariant Violation",C}p=e[_](t,_,f,r,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(E){p=E}p&&!(p instanceof Error)&&(te(b),j("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",f||"React class",r,_,typeof p),te(null)),p instanceof Error&&!(p.message in Le)&&(Le[p.message]=!0,te(b),j("Failed %s type: %s",r,p.message),te(null))}}}var jt=Array.isArray;function he(e){return jt(e)}function Ct(e){{var t=typeof Symbol=="function"&&Symbol.toStringTag,r=t&&e[Symbol.toStringTag]||e.constructor.name||"Object";return r}}function xt(e){try{return We(e),!1}catch{return!0}}function We(e){return""+e}function Me(e){if(xt(e))return j("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ct(e)),We(e)}var K=L.ReactCurrentOwner,Pt={key:!0,ref:!0,__self:!0,__source:!0},Ye,Ve,pe;pe={};function At(e){if(ee.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return e.ref!==void 0}function Ft(e){if(ee.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function Nt(e,t){if(typeof e.ref=="string"&&K.current&&t&&K.current.stateNode!==t){var r=A(K.current.type);pe[r]||(j('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',A(K.current.type),e.ref),pe[r]=!0)}}function It(e,t){{var r=function(){Ye||(Ye=!0,j("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"key",{get:r,configurable:!0})}}function Dt(e,t){{var r=function(){Ve||(Ve=!0,j("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};r.isReactWarning=!0,Object.defineProperty(e,"ref",{get:r,configurable:!0})}}var Lt=function(e,t,r,f,b,m,_){var p={$$typeof:o,type:e,key:t,ref:r,props:_,_owner:m};return p._store={},Object.defineProperty(p._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(p,"_self",{configurable:!1,enumerable:!1,writable:!1,value:f}),Object.defineProperty(p,"_source",{configurable:!1,enumerable:!1,writable:!1,value:b}),Object.freeze&&(Object.freeze(p.props),Object.freeze(p)),p};function Ut(e,t,r,f,b){{var m,_={},p=null,C=null;r!==void 0&&(Me(r),p=""+r),Ft(t)&&(Me(t.key),p=""+t.key),At(t)&&(C=t.ref,Nt(t,b));for(m in t)ee.call(t,m)&&!Pt.hasOwnProperty(m)&&(_[m]=t[m]);if(e&&e.defaultProps){var E=e.defaultProps;for(m in E)_[m]===void 0&&(_[m]=E[m])}if(p||C){var w=typeof e=="function"?e.displayName||e.name||"Unknown":e;p&&It(_,w),C&&Dt(_,w)}return Lt(e,p,C,b,f,K.current,_)}}var _e=L.ReactCurrentOwner,Be=L.ReactDebugCurrentFrame;function B(e){if(e){var t=e._owner,r=$(e.type,e._source,t?t.type:null);Be.setExtraStackFrame(r)}else Be.setExtraStackFrame(null)}var ge;ge=!1;function ye(e){return typeof e=="object"&&e!==null&&e.$$typeof===o}function ze(){{if(_e.current){var e=A(_e.current.type);if(e)return`
|
|
22
22
|
|
|
23
|
-
Check the render method of \``+e+"`."}return""}}function
|
|
23
|
+
Check the render method of \``+e+"`."}return""}}function Wt(e){{if(e!==void 0){var t=e.fileName.replace(/^.*[\\\/]/,""),r=e.lineNumber;return`
|
|
24
24
|
|
|
25
|
-
Check your code at `+t+":"+
|
|
25
|
+
Check your code at `+t+":"+r+"."}return""}}var Ge={};function Mt(e){{var t=ze();if(!t){var r=typeof e=="string"?e:e.displayName||e.name;r&&(t=`
|
|
26
26
|
|
|
27
|
-
Check the top-level render call using <`+n+">.")}return t}}function ze(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var n=Lt(t);if(Ke[n])return;Ke[n]=!0;var u="";e&&e._owner&&e._owner!==ue.current&&(u=" It was passed a child from "+E(e._owner.type)+"."),L(e),O('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,u),L(null)}}function Ge(e,t){{if(typeof e!="object")return;if(ce(e))for(var n=0;n<e.length;n++){var u=e[n];fe(u)&&ze(u,t)}else if(fe(e))e._store&&(e._store.validated=!0);else if(e){var b=$(e);if(typeof b=="function"&&b!==e.entries)for(var m=b.call(e),y;!(y=m.next()).done;)fe(y.value)&&ze(y.value,t)}}}function Wt(e){{var t=e.type;if(t==null||typeof t=="string")return;var n;if(typeof t=="function")n=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===v||t.$$typeof===w))n=t.propTypes;else return;if(n){var u=E(t);wt(n,e.props,"prop",u,e)}else if(t.PropTypes!==void 0&&!de){de=!0;var b=E(t);O("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",b||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&O("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Mt(e){{for(var t=Object.keys(e.props),n=0;n<t.length;n++){var u=t[n];if(u!=="children"&&u!=="key"){L(e),O("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",u),L(null);break}}e.ref!==null&&(L(e),O("Invalid attribute `ref` supplied to `React.Fragment`."),L(null))}}function He(e,t,n,u,b,m){{var y=Se(e);if(!y){var p="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(p+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var P=Ut(b);P?p+=P:p+=Be();var T;e===null?T="null":ce(e)?T="array":e!==void 0&&e.$$typeof===a?(T="<"+(E(e.type)||"Unknown")+" />",p=" Did you accidentally export a JSX literal instead of a component?"):T=typeof e,O("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",T,p)}var S=Dt(e,t,n,b,m);if(S==null)return S;if(y){var C=t.children;if(C!==void 0)if(u)if(ce(C)){for(var W=0;W<C.length;W++)Ge(C[W],e);Object.freeze&&Object.freeze(C)}else O("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Ge(C,e)}return e===o?Mt(S):Wt(S),S}}function Yt(e,t,n){return He(e,t,n,!0)}function Vt(e,t,n){return He(e,t,n,!1)}var Bt=Vt,Kt=Yt;Y.Fragment=o,Y.jsx=Bt,Y.jsxs=Kt}()),Y}process.env.NODE_ENV==="production"?Q.exports=Xe():Q.exports=Qe();var d=Q.exports;const pe="default",Ze=(s,a)=>async(...r)=>{var R;const[o,f,...l]=r,h=f?{...f}:{method:"GET"};let c=new Headers;h.headers&&(c=h.headers instanceof Headers?h.headers:new Headers(h.headers));const _=await a().getValidTokenAsync(),g=(R=_==null?void 0:_.tokens)==null?void 0:R.accessToken;c.has("Accept")||c.set("Accept","application/json"),g&&(c.set("Authorization",`Bearer ${g}`),h.credentials||(h.credentials="same-origin"));const w={...h,headers:c};return await s(o,w,...l)},qe=(s=null,a=pe)=>r=>o=>{const{fetch:f}=_e(s||o.fetch,a);return d.jsx(r,{...o,fetch:f})},_e=(s=null,a=pe)=>{const r=s||window.fetch,o=i.OidcClient.get;return{fetch:k.useCallback((l,h)=>Ze(r,()=>o(a))(l,h),[r,a])}},ye=()=>d.jsx("div",{className:"oidc-authenticating",children:d.jsxs("div",{className:"oidc-authenticating__container",children:[d.jsx("h1",{className:"oidc-authenticating__title",children:"Error authentication"}),d.jsx("p",{className:"oidc-authenticating__content",children:"An error occurred during authentication."})]})}),$e=()=>d.jsx("div",{className:"oidc-authenticating",children:d.jsxs("div",{className:"oidc-authenticating__container",children:[d.jsx("h1",{className:"oidc-authenticating__title",children:"Authentication in progress"}),d.jsx("p",{className:"oidc-authenticating__content",children:"You will be redirected to the login page."})]})}),et=()=>Math.random().toString(36).substr(2,6),tt=(s,a)=>(r,o)=>{if(typeof s.CustomEvent=="function")return new s.CustomEvent(r,o);const f=o||{bubbles:!1,cancelable:!1,detail:void 0},l=a.createEvent("CustomEvent");return l.initCustomEvent(r,f.bubbles,f.cancelable,f.detail),l.prototype=s.Event.prototype,l},nt=(s,a,r)=>({replaceState:(o,f)=>{const l=r(),h=f||s.history.state;s.history.replaceState({key:l,state:h},null,o),s.dispatchEvent(a("popstate"))}}),rt=()=>nt(window,tt(window,document),et),ge=()=>d.jsx("div",{className:"oidc-callback",children:d.jsxs("div",{className:"oidc-callback__container",children:[d.jsx("h1",{className:"oidc-callback__title",children:"Authentication complete"}),d.jsx("p",{className:"oidc-callback__content",children:"You will be redirected to your application."})]})}),st=({callBackError:s,callBackSuccess:a,configurationName:r,withCustomHistory:o})=>{const[f,l]=k.useState(!1);k.useEffect(()=>{let v=!0;return(async()=>{const g=i.OidcClient.get;try{const{callbackPath:w}=await g(r).loginCallbackAsync();(o?o():rt()).replaceState(w||"/")}catch(w){v&&(console.warn(w),l(!0))}})(),()=>{v=!1}},[]);const h=s||ye,c=a||ge;return f?d.jsx(h,{configurationName:r}):d.jsx(c,{configurationName:r})},at=()=>d.jsx("div",{className:"oidc-serviceworker",children:d.jsxs("div",{className:"oidc-serviceworker__container",children:[d.jsx("h1",{className:"oidc-serviceworker__title",children:"Unable to authenticate on this browser"}),d.jsx("p",{className:"oidc-serviceworker__content",children:"Your browser is not secure enough to make authentication work. Try updating your browser or use a newer browser."})]})}),ot=()=>d.jsx("div",{className:"oidc-session-lost",children:d.jsxs("div",{className:"oidc-session-lost__container",children:[d.jsx("h1",{className:"oidc-session-lost__title",children:"Session timed out"}),d.jsx("p",{className:"oidc-session-lost__content",children:"Your session has expired. Please re-authenticate."})]})}),it=({configurationName:s})=>(k.useEffect(()=>{(async()=>{const r=i.OidcClient.get;r(s).silentLoginCallbackAsync()})()},[]),d.jsx(d.Fragment,{})),ct=({configurationName:s})=>{const a=i.getParseQueryStringFromLocation(window.location.href),r=i.OidcClient.get,o=r(s);let f=null;for(const[l,h]of Object.entries(a))l==="state"||l==="scope"||(f===null&&(f={}),f[l]=h);return k.useEffect(()=>{o.tokens||o.loginAsync(null,f,!0,a.scope)},[]),d.jsx(d.Fragment,{})},lt=({callbackErrorComponent:s,callbackSuccessComponent:a,redirect_uri:r,silent_redirect_uri:o,silent_login_uri:f,children:l,configurationName:h,withCustomHistory:c=null})=>{const v=window?i.getPath(window.location.href):"",[_,g]=k.useState(v);k.useEffect(()=>{const R=()=>g(i.getPath(window.location.href));return R(),window.addEventListener("popstate",R,!1),()=>window.removeEventListener("popstate",R,!1)},[]);const w=i.getPath(r);if(o&&_===i.getPath(o))return d.jsx(it,{configurationName:h});if(f&&_===i.getPath(f))return d.jsx(ct,{configurationName:h});switch(_){case w:return d.jsx(st,{callBackError:s,callBackSuccess:a,configurationName:h,withCustomHistory:c});default:return d.jsx(d.Fragment,{children:l})}},ut=k.memo(lt),be={name:"",data:null},dt=({children:s,configurationName:a})=>{const r=i.OidcClient.get,o=r(a);return k.useEffect(()=>{o&&o.tryKeepExistingSessionAsync()},[a]),d.jsx(d.Fragment,{children:s})},ft=({children:s,configuration:a,configurationName:r="default",callbackSuccessComponent:o=ge,authenticatingComponent:f=$e,serviceWorkerNotSupportedComponent:l=at,authenticatingErrorComponent:h=ye,sessionLostComponent:c=ot,onSessionLost:v=null,onLogoutFromAnotherTab:_=null,onLogoutFromSameTab:g=null,withCustomHistory:w=null,onEvent:R=null,getFetch:I=null})=>{const F=(V="default")=>i.OidcClient.getOrCreate(I??i.getFetchDefault)(a,V),[Te,$]=k.useState(!0),[N,O]=k.useState(be),[we,ee]=k.useState("default");k.useEffect(()=>{const U=F(r).subscribeEvents((E,x)=>{R&&R(r,E,x)});return()=>{F(r).removeEventSubscription(U)}},[r,R]),k.useEffect(()=>{const U=F(r).subscribeEvents((E,x)=>{if(E===i.OidcClient.eventNames.refreshTokensAsync_error||E===i.OidcClient.eventNames.syncTokensAsync_error){if(v!=null){v();return}O({name:E,data:x})}else if(E===i.OidcClient.eventNames.logout_from_another_tab){if(_!=null){_();return}O({name:E,data:x})}else E===i.OidcClient.eventNames.logout_from_same_tab?g!=null&&g():E===i.OidcClient.eventNames.loginAsync_begin||E===i.OidcClient.eventNames.loginCallbackAsync_end||E===i.OidcClient.eventNames.loginAsync_error||E===i.OidcClient.eventNames.loginCallbackAsync_error?O({name:E,data:x}):E===i.OidcClient.eventNames.service_worker_not_supported_by_browser&&a.service_worker_only===!0&&O({name:E,data:x})});return ee(r),$(!1),()=>{F(r).removeEventSubscription(U),O(be)}},[a,r]);const te=c,ne=f,re=l,se=h,D=F(r);switch(N.name){case i.OidcClient.eventNames.service_worker_not_supported_by_browser:return d.jsx(re,{configurationName:r});case i.OidcClient.eventNames.loginAsync_begin:return d.jsx(ne,{configurationName:r});case i.OidcClient.eventNames.loginAsync_error:case i.OidcClient.eventNames.loginCallbackAsync_error:return d.jsx(se,{configurationName:r});case i.OidcClient.eventNames.refreshTokensAsync_error:case i.OidcClient.eventNames.syncTokensAsync_error:case i.OidcClient.eventNames.logout_from_another_tab:return d.jsx(te,{configurationName:r});default:return d.jsx(ut,{redirect_uri:D.configuration.redirect_uri,silent_redirect_uri:D.configuration.silent_redirect_uri,silent_login_uri:D.configuration.silent_login_uri,callbackSuccessComponent:o,callbackErrorComponent:h,authenticatingComponent:f,configurationName:r,withCustomHistory:w,children:d.jsx(dt,{configurationName:r,children:s})})}},ke=({children:s,callbackPath:a=null,extras:r=null,configurationName:o="default"})=>{const f=i.OidcClient.get,l=f(o);return k.useEffect(()=>{l.tryKeepExistingSessionAsync().then(()=>{l.tokens||l.loginAsync(a,r)})},[o,a,r]),!l&&!l.tokens?null:d.jsx(d.Fragment,{children:s})},vt=(s,a=null,r=null,o="default")=>f=>d.jsx(ke,{callbackPath:a,extras:r,configurationName:o,children:d.jsx(s,{...f})}),Z="default",q=(s,a)=>{let r=!1;return s(a)&&(r=s(a).tokens!=null),r},ht=(s=Z)=>{const a=i.OidcClient.get,[r,o]=k.useState(q(a,s));return k.useEffect(()=>{let c=!0;const v=a(s);o(q(a,s));const _=v.subscribeEvents((g,w)=>{(g===i.OidcClient.eventNames.logout_from_another_tab||g===i.OidcClient.eventNames.logout_from_same_tab||g===i.OidcClient.eventNames.token_aquired||g==i.OidcClient.eventNames.tryKeepExistingSessionAsync_end)&&c&&o(q(a,s))});return()=>{c=!1,v.removeEventSubscription(_)}},[s]),{login:(c=void 0,v=null,_=!1)=>a(s).loginAsync(c,v,!1,void 0,_),logout:(c=void 0,v=null)=>a(s).logoutAsync(c,v),renewTokens:async(c=null)=>{const v=await a(s).renewTokensAsync(c);return{accessToken:v.accessToken,accessTokenPayload:v.accessTokenPayload,idToken:v.idToken,idTokenPayload:v.idTokenPayload}},isAuthenticated:r}},Ee={accessToken:null,accessTokenPayload:null},pt=s=>{const a=i.OidcClient.get,r=a(s);if(r.tokens){const o=r.tokens;return{accessToken:o.accessToken,accessTokenPayload:o.accessTokenPayload}}return Ee},_t=(s=Z)=>{const a=i.OidcClient.get,[r,o]=k.useState(pt(s));return k.useEffect(()=>{let f=!0;const l=a(s);if(l.tokens){const c=l.tokens;o({accessToken:c.accessToken,accessTokenPayload:c.accessTokenPayload})}const h=l.subscribeEvents((c,v)=>{if((c===i.OidcClient.eventNames.token_renewed||c===i.OidcClient.eventNames.token_aquired||c===i.OidcClient.eventNames.logout_from_another_tab||c===i.OidcClient.eventNames.logout_from_same_tab||c===i.OidcClient.eventNames.refreshTokensAsync_error||c===i.OidcClient.eventNames.syncTokensAsync_error||c==i.OidcClient.eventNames.tryKeepExistingSessionAsync_end)&&f){const _=l.tokens;o(_!=null?{accessToken:_.accessToken,accessTokenPayload:_.accessTokenPayload}:Ee)}});return()=>{f=!1,l.removeEventSubscription(h)}},[s]),r},me={idToken:null,idTokenPayload:null},yt=s=>{const a=i.OidcClient.get,r=a(s);if(r.tokens){const o=r.tokens;return{idToken:o.idToken,idTokenPayload:o.idTokenPayload}}return me},gt=(s=Z)=>{const a=i.OidcClient.get,[r,o]=k.useState(yt(s));return k.useEffect(()=>{let f=!0;const l=a(s);if(l.tokens){const c=l.tokens;o({idToken:c.idToken,idTokenPayload:c.idTokenPayload})}const h=l.subscribeEvents((c,v)=>{if((c===i.OidcClient.eventNames.token_renewed||c===i.OidcClient.eventNames.token_aquired||c===i.OidcClient.eventNames.logout_from_another_tab||c===i.OidcClient.eventNames.logout_from_same_tab||c===i.OidcClient.eventNames.refreshTokensAsync_error||c===i.OidcClient.eventNames.syncTokensAsync_error||c==i.OidcClient.eventNames.tryKeepExistingSessionAsync_end)&&f){const _=l.tokens;o(_!=null?{idToken:_.idToken,idTokenPayload:_.idTokenPayload}:me)}});return()=>{f=!1,l.removeEventSubscription(h)}},[s]),r};var Oe=(s=>(s.Unauthenticated="Unauthenticated",s.Loading="Loading user",s.Loaded="User loaded",s.LoadingError="Error loading user",s))(Oe||{});const bt=(s="default")=>{const[a,r]=k.useState({user:null,status:"Unauthenticated"}),[o,f]=k.useState(""),l=i.OidcClient.get(s);k.useEffect(()=>{let c=!0;if(l&&l.tokens){r({...a,status:"Loading user"});const _=o!=="";l.userInfoAsync(_).then(g=>{c&&r({user:g,status:"User loaded"})}).catch(()=>r({...a,status:"Error loading user"}))}else r({user:null,status:"Unauthenticated"});const v=l.subscribeEvents((_,g)=>{console.log(`Event ${_} has been raised`),_==i.OidcClient.eventNames.tryKeepExistingSessionAsync_end&&c&&h()});return()=>{c=!1,l.removeEventSubscription(v)}},[o]);const h=()=>{f(o+" ")};return{oidcUser:a.user,oidcUserLoadingState:a.status,reloadOidcUser:h}};Object.defineProperty(j,"TokenRenewMode",{enumerable:!0,get:()=>i.TokenRenewMode}),j.OidcProvider=ft,j.OidcSecure=ke,j.OidcUserStatus=Oe,j.useOidc=ht,j.useOidcAccessToken=_t,j.useOidcFetch=_e,j.useOidcIdToken=gt,j.useOidcUser=bt,j.withOidcFetch=qe,j.withOidcSecure=vt,Object.defineProperty(j,Symbol.toStringTag,{value:"Module"})});
|
|
27
|
+
Check the top-level render call using <`+r+">.")}return t}}function He(e,t){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var r=Mt(t);if(Ge[r])return;Ge[r]=!0;var f="";e&&e._owner&&e._owner!==_e.current&&(f=" It was passed a child from "+A(e._owner.type)+"."),B(e),j('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',r,f),B(null)}}function Je(e,t){{if(typeof e!="object")return;if(he(e))for(var r=0;r<e.length;r++){var f=e[r];ye(f)&&He(f,t)}else if(ye(e))e._store&&(e._store.validated=!0);else if(e){var b=oe(e);if(typeof b=="function"&&b!==e.entries)for(var m=b.call(e),_;!(_=m.next()).done;)ye(_.value)&&He(_.value,t)}}}function Yt(e){{var t=e.type;if(t==null||typeof t=="string")return;var r;if(typeof t=="function")r=t.propTypes;else if(typeof t=="object"&&(t.$$typeof===v||t.$$typeof===O))r=t.propTypes;else return;if(r){var f=A(t);St(r,e.props,"prop",f,e)}else if(t.PropTypes!==void 0&&!ge){ge=!0;var b=A(t);j("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",b||"Unknown")}typeof t.getDefaultProps=="function"&&!t.getDefaultProps.isReactClassApproved&&j("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Vt(e){{for(var t=Object.keys(e.props),r=0;r<t.length;r++){var f=t[r];if(f!=="children"&&f!=="key"){B(e),j("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",f),B(null);break}}e.ref!==null&&(B(e),j("Invalid attribute `ref` supplied to `React.Fragment`."),B(null))}}function Ke(e,t,r,f,b,m){{var _=ue(e);if(!_){var p="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(p+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var C=Wt(b);C?p+=C:p+=ze();var E;e===null?E="null":he(e)?E="array":e!==void 0&&e.$$typeof===o?(E="<"+(A(e.type)||"Unknown")+" />",p=" Did you accidentally export a JSX literal instead of a component?"):E=typeof e,j("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",E,p)}var w=Ut(e,t,r,b,m);if(w==null)return w;if(_){var x=t.children;if(x!==void 0)if(f)if(he(x)){for(var z=0;z<x.length;z++)Je(x[z],e);Object.freeze&&Object.freeze(x)}else j("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Je(x,e)}return e===a?Vt(w):Yt(w),w}}function Bt(e,t,r){return Ke(e,t,r,!0)}function zt(e,t,r){return Ke(e,t,r,!1)}var Gt=zt,Ht=Bt;H.Fragment=a,H.jsx=Gt,H.jsxs=Ht}()),H}process.env.NODE_ENV==="production"?ne.exports=Qe():ne.exports=Ze();var c=ne.exports;const me="default",qe=(s,o)=>async(...n)=>{var S;const[a,d,...u]=n,h=d?{...d}:{method:"GET"};let i=new Headers;h.headers&&(i=h.headers instanceof Headers?h.headers:new Headers(h.headers));const g=await o().getValidTokenAsync(),k=(S=g==null?void 0:g.tokens)==null?void 0:S.accessToken;i.has("Accept")||i.set("Accept","application/json"),k&&(i.set("Authorization",`Bearer ${k}`),h.credentials||(h.credentials="same-origin"));const O={...h,headers:i};return await s(a,O,...u)},$e=(s=null,o=me)=>n=>a=>{const{fetch:d}=Oe(s||a.fetch,o);return c.jsx(n,{...a,fetch:d})},Oe=(s=null,o=me)=>{const n=s||window.fetch,a=l.OidcClient.get;return{fetch:y.useCallback((u,h)=>qe(n,()=>a(o))(u,h),[n,o])}},Ee=()=>c.jsx("div",{className:"oidc-authenticating",children:c.jsxs("div",{className:"oidc-authenticating__container",children:[c.jsx("h1",{className:"oidc-authenticating__title",children:"Error authentication"}),c.jsx("p",{className:"oidc-authenticating__content",children:"An error occurred during authentication."})]})}),et=()=>c.jsx("div",{className:"oidc-authenticating",children:c.jsxs("div",{className:"oidc-authenticating__container",children:[c.jsx("h1",{className:"oidc-authenticating__title",children:"Authentication in progress"}),c.jsx("p",{className:"oidc-authenticating__content",children:"You will be redirected to the login page."})]})}),tt=()=>Math.random().toString(36).substr(2,6),nt=(s,o)=>(n,a)=>{if(typeof s.CustomEvent=="function")return new s.CustomEvent(n,a);const d=a||{bubbles:!1,cancelable:!1,detail:void 0},u=o.createEvent("CustomEvent");return u.initCustomEvent(n,d.bubbles,d.cancelable,d.detail),u.prototype=s.Event.prototype,u},rt=(s,o,n)=>({replaceState:(a,d)=>{const u=n(),h=d||s.history.state;s.history.replaceState({key:u,state:h},null,a),s.dispatchEvent(o("popstate"))}}),st=()=>rt(window,nt(window,document),tt),Te=()=>c.jsx("div",{className:"oidc-callback",children:c.jsxs("div",{className:"oidc-callback__container",children:[c.jsx("h1",{className:"oidc-callback__title",children:"Authentication complete"}),c.jsx("p",{className:"oidc-callback__content",children:"You will be redirected to your application."})]})}),ot=({callBackError:s,callBackSuccess:o,configurationName:n,withCustomHistory:a})=>{const[d,u]=y.useState(!1);y.useEffect(()=>{let v=!0;return(async()=>{const k=l.OidcClient.get;try{const{callbackPath:O}=await k(n).loginCallbackAsync();(a?a():st()).replaceState(O||"/")}catch(O){v&&(console.warn(O),u(!0))}})(),()=>{v=!1}},[]);const h=s||Ee,i=o||Te;return d?c.jsx(h,{configurationName:n}):c.jsx(i,{configurationName:n})},at=()=>c.jsx("span",{className:"oidc-loading",children:"Loading"}),ct=()=>c.jsx("div",{className:"oidc-serviceworker",children:c.jsxs("div",{className:"oidc-serviceworker__container",children:[c.jsx("h1",{className:"oidc-serviceworker__title",children:"Unable to authenticate on this browser"}),c.jsx("p",{className:"oidc-serviceworker__content",children:"Your browser is not secure enough to make authentication work. Try updating your browser or use a newer browser."})]})}),it=()=>c.jsx("div",{className:"oidc-session-lost",children:c.jsxs("div",{className:"oidc-session-lost__container",children:[c.jsx("h1",{className:"oidc-session-lost__title",children:"Session timed out"}),c.jsx("p",{className:"oidc-session-lost__content",children:"Your session has expired. Please re-authenticate."})]})}),lt=({configurationName:s})=>(y.useEffect(()=>{(async()=>{const n=l.OidcClient.get;n(s).silentLoginCallbackAsync()})()},[]),c.jsx(c.Fragment,{})),ut=({configurationName:s})=>{const o=l.getParseQueryStringFromLocation(window.location.href),n=l.OidcClient.get,a=n(s);let d=null;for(const[u,h]of Object.entries(o))u==="state"||u==="scope"||(d===null&&(d={}),d[u]=h);return y.useEffect(()=>{a.tokens||a.loginAsync(null,d,!0,o.scope)},[]),c.jsx(c.Fragment,{})},dt=({callbackErrorComponent:s,callbackSuccessComponent:o,redirect_uri:n,silent_redirect_uri:a,silent_login_uri:d,children:u,configurationName:h,withCustomHistory:i=null})=>{const v=window?l.getPath(window.location.href):"",[g,k]=y.useState(v);y.useEffect(()=>{const S=()=>k(l.getPath(window.location.href));return S(),window.addEventListener("popstate",S,!1),()=>window.removeEventListener("popstate",S,!1)},[]);const O=l.getPath(n);if(a&&g===l.getPath(a))return c.jsx(lt,{configurationName:h});if(d&&g===l.getPath(d))return c.jsx(ut,{configurationName:h});switch(g){case O:return c.jsx(ot,{callBackError:s,callBackSuccess:o,configurationName:h,withCustomHistory:i});default:return c.jsx(c.Fragment,{children:u})}},ft=y.memo(dt),we={name:"",data:null},vt=({loadingComponent:s,children:o,configurationName:n})=>{const[a,d]=y.useState(!0),u=l.OidcClient.get,h=u(n);y.useEffect(()=>{let v=!0;return h&&h.tryKeepExistingSessionAsync().then(()=>{v&&d(!1)}),()=>{v=!1}},[n]);const i=s;return c.jsx(c.Fragment,{children:a?c.jsx(i,{configurationName:n}):c.jsx(c.Fragment,{children:o})})},J=({isLoading:s,loadingComponent:o,children:n,configurationName:a})=>{const d=o;return s?c.jsx(d,{configurationName:a,children:n}):c.jsx(c.Fragment,{children:n})},ht=({children:s,configuration:o,configurationName:n="default",callbackSuccessComponent:a=Te,authenticatingComponent:d=et,loadingComponent:u=at,serviceWorkerNotSupportedComponent:h=ct,authenticatingErrorComponent:i=Ee,sessionLostComponent:v=it,onSessionLost:g=null,onLogoutFromAnotherTab:k=null,onLogoutFromSameTab:O=null,withCustomHistory:S=null,onEvent:D=null,getFetch:X=null})=>{const W=(P="default")=>l.OidcClient.getOrCreate(X??l.getFetchDefault)(o,P),[oe,L]=y.useState(!0),[j,M]=y.useState(we),[ae,ce]=y.useState("default");y.useEffect(()=>{const F=W(n).subscribeEvents((T,N)=>{D&&D(n,T,N)});return()=>{W(n).removeEventSubscription(F)}},[n,D]),y.useEffect(()=>{const F=W(n).subscribeEvents((T,N)=>{if(T===l.OidcClient.eventNames.refreshTokensAsync_error||T===l.OidcClient.eventNames.syncTokensAsync_error){if(g!=null){g();return}M({name:T,data:N})}else if(T===l.OidcClient.eventNames.logout_from_another_tab){if(k!=null){k();return}M({name:T,data:N})}else T===l.OidcClient.eventNames.logout_from_same_tab?O!=null&&O():T===l.OidcClient.eventNames.loginAsync_begin||T===l.OidcClient.eventNames.loginCallbackAsync_end||T===l.OidcClient.eventNames.loginAsync_error||T===l.OidcClient.eventNames.loginCallbackAsync_error?M({name:T,data:N}):T===l.OidcClient.eventNames.service_worker_not_supported_by_browser&&o.service_worker_only===!0&&M({name:T,data:N})});return ce(n),L(!1),()=>{W(n).removeEventSubscription(F),M(we)}},[o,n]);const ie=v,le=d,U=u,Q=h,ue=i,Y=oe||ae!==n,V=W(n);switch(j.name){case l.OidcClient.eventNames.service_worker_not_supported_by_browser:return c.jsx(J,{loadingComponent:U,isLoading:Y,configurationName:n,children:c.jsx(Q,{configurationName:n})});case l.OidcClient.eventNames.loginAsync_begin:return c.jsx(J,{loadingComponent:U,isLoading:Y,configurationName:n,children:c.jsx(le,{configurationName:n})});case l.OidcClient.eventNames.loginAsync_error:case l.OidcClient.eventNames.loginCallbackAsync_error:return c.jsx(J,{loadingComponent:U,isLoading:Y,configurationName:n,children:c.jsx(ue,{configurationName:n})});case l.OidcClient.eventNames.refreshTokensAsync_error:case l.OidcClient.eventNames.syncTokensAsync_error:case l.OidcClient.eventNames.logout_from_another_tab:return c.jsx(J,{loadingComponent:U,isLoading:Y,configurationName:n,children:c.jsx(ie,{configurationName:n})});default:return c.jsx(J,{loadingComponent:U,isLoading:Y,configurationName:n,children:c.jsx(ft,{redirect_uri:V.configuration.redirect_uri,silent_redirect_uri:V.configuration.silent_redirect_uri,silent_login_uri:V.configuration.silent_login_uri,callbackSuccessComponent:a,callbackErrorComponent:i,authenticatingComponent:d,configurationName:n,withCustomHistory:S,children:c.jsx(vt,{loadingComponent:U,configurationName:n,children:s})})})}},Re=({children:s,callbackPath:o=null,extras:n=null,configurationName:a="default"})=>{const d=l.OidcClient.get,u=d(a);return y.useEffect(()=>{u.tokens||u.loginAsync(o,n)},[a,o,n]),u.tokens?c.jsx(c.Fragment,{children:s}):null},pt=(s,o=null,n=null,a="default")=>d=>c.jsx(Re,{callbackPath:o,extras:n,configurationName:a,children:c.jsx(s,{...d})}),re="default",se=(s,o)=>{let n=!1;return s(o)&&(n=s(o).tokens!=null),n},_t=(s=re)=>{const o=l.OidcClient.get,[n,a]=y.useState(se(o,s));return y.useEffect(()=>{let i=!0;const v=o(s);a(se(o,s));const g=v.subscribeEvents((k,O)=>{(k===l.OidcClient.eventNames.logout_from_another_tab||k===l.OidcClient.eventNames.logout_from_same_tab||k===l.OidcClient.eventNames.token_aquired)&&i&&a(se(o,s))});return()=>{i=!1,v.removeEventSubscription(g)}},[s]),{login:(i=void 0,v=null,g=!1)=>o(s).loginAsync(i,v,!1,void 0,g),logout:(i=void 0,v=null)=>o(s).logoutAsync(i,v),renewTokens:async(i=null)=>{const v=await o(s).renewTokensAsync(i);return{accessToken:v.accessToken,accessTokenPayload:v.accessTokenPayload,idToken:v.idToken,idTokenPayload:v.idTokenPayload}},isAuthenticated:n}},Se={accessToken:null,accessTokenPayload:null},gt=s=>{const o=l.OidcClient.get,n=o(s);if(n.tokens){const a=n.tokens;return{accessToken:a.accessToken,accessTokenPayload:a.accessTokenPayload}}return Se},yt=(s=re)=>{const o=l.OidcClient.get,[n,a]=y.useState(gt(s));return y.useEffect(()=>{let d=!0;const u=o(s);if(u.tokens){const i=u.tokens;a({accessToken:i.accessToken,accessTokenPayload:i.accessTokenPayload})}const h=u.subscribeEvents((i,v)=>{if((i===l.OidcClient.eventNames.token_renewed||i===l.OidcClient.eventNames.token_aquired||i===l.OidcClient.eventNames.logout_from_another_tab||i===l.OidcClient.eventNames.logout_from_same_tab||i===l.OidcClient.eventNames.refreshTokensAsync_error||i===l.OidcClient.eventNames.syncTokensAsync_error)&&d){const g=u.tokens;a(g!=null?{accessToken:g.accessToken,accessTokenPayload:g.accessTokenPayload}:Se)}});return()=>{d=!1,u.removeEventSubscription(h)}},[s]),n},je={idToken:null,idTokenPayload:null},bt=s=>{const o=l.OidcClient.get,n=o(s);if(n.tokens){const a=n.tokens;return{idToken:a.idToken,idTokenPayload:a.idTokenPayload}}return je},kt=(s=re)=>{const o=l.OidcClient.get,[n,a]=y.useState(bt(s));return y.useEffect(()=>{let d=!0;const u=o(s);if(u.tokens){const i=u.tokens;a({idToken:i.idToken,idTokenPayload:i.idTokenPayload})}const h=u.subscribeEvents((i,v)=>{if((i===l.OidcClient.eventNames.token_renewed||i===l.OidcClient.eventNames.token_aquired||i===l.OidcClient.eventNames.logout_from_another_tab||i===l.OidcClient.eventNames.logout_from_same_tab||i===l.OidcClient.eventNames.refreshTokensAsync_error||i===l.OidcClient.eventNames.syncTokensAsync_error)&&d){const g=u.tokens;a(g!=null?{idToken:g.idToken,idTokenPayload:g.idTokenPayload}:je)}});return()=>{d=!1,u.removeEventSubscription(h)}},[s]),n};var Ce=(s=>(s.Unauthenticated="Unauthenticated",s.Loading="Loading user",s.Loaded="User loaded",s.LoadingError="Error loading user",s))(Ce||{});const mt=(s="default")=>{const[o,n]=y.useState({user:null,status:"Unauthenticated"}),[a,d]=y.useState(""),u=l.OidcClient.get(s);y.useEffect(()=>{let i=!0;if(u&&u.tokens){n({...o,status:"Loading user"});const v=a!=="";u.userInfoAsync(v).then(g=>{i&&n({user:g,status:"User loaded"})}).catch(()=>n({...o,status:"Error loading user"}))}else n({user:null,status:"Unauthenticated"});return()=>{i=!1}},[a]);const h=()=>{d(a+" ")};return{oidcUser:o.user,oidcUserLoadingState:o.status,reloadOidcUser:h}};Object.defineProperty(R,"TokenRenewMode",{enumerable:!0,get:()=>l.TokenRenewMode}),R.OidcProvider=ht,R.OidcSecure=Re,R.OidcUserStatus=Ce,R.useOidc=_t,R.useOidcAccessToken=yt,R.useOidcFetch=Oe,R.useOidcIdToken=kt,R.useOidcUser=mt,R.withOidcFetch=$e,R.withOidcSecure=pt,Object.defineProperty(R,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axa-fr/react-oidc",
|
|
3
|
-
"version": "7.4.0
|
|
3
|
+
"version": "7.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.umd.cjs",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"lint": "eslint src"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@axa-fr/oidc-client-service-worker": "7.4.0
|
|
44
|
-
"@axa-fr/oidc-client": "7.4.0
|
|
43
|
+
"@axa-fr/oidc-client-service-worker": "7.4.0",
|
|
44
|
+
"@axa-fr/oidc-client": "7.4.0",
|
|
45
45
|
"base64-js": "1.5.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
package/src/OidcProvider.tsx
CHANGED
|
@@ -18,6 +18,7 @@ export type OidcProviderProps = {
|
|
|
18
18
|
sessionLostComponent?: ComponentType<any>;
|
|
19
19
|
authenticatingComponent?: ComponentType<any>;
|
|
20
20
|
authenticatingErrorComponent?: ComponentType<any>;
|
|
21
|
+
loadingComponent?: ComponentType<any>;
|
|
21
22
|
serviceWorkerNotSupportedComponent?: ComponentType<any>;
|
|
22
23
|
configurationName?: string;
|
|
23
24
|
configuration?: OidcConfiguration;
|
|
@@ -32,18 +33,39 @@ export type OidcProviderProps = {
|
|
|
32
33
|
|
|
33
34
|
export type OidcSessionProps = {
|
|
34
35
|
configurationName: string;
|
|
36
|
+
loadingComponent: PropsWithChildren<any>;
|
|
35
37
|
};
|
|
36
38
|
|
|
37
|
-
const OidcSession: FC<PropsWithChildren<OidcSessionProps>> = ({ children, configurationName }) => {
|
|
39
|
+
const OidcSession: FC<PropsWithChildren<OidcSessionProps>> = ({ loadingComponent, children, configurationName }) => {
|
|
40
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
38
41
|
const getOidc = OidcClient.get;
|
|
39
42
|
const oidc = getOidc(configurationName);
|
|
40
43
|
useEffect(() => {
|
|
44
|
+
let isMounted = true;
|
|
41
45
|
if (oidc) {
|
|
42
|
-
oidc.tryKeepExistingSessionAsync()
|
|
46
|
+
oidc.tryKeepExistingSessionAsync().then(() => {
|
|
47
|
+
if (isMounted) {
|
|
48
|
+
setIsLoading(false);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
43
51
|
}
|
|
52
|
+
return () => {
|
|
53
|
+
isMounted = false;
|
|
54
|
+
};
|
|
44
55
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
45
56
|
}, [configurationName]);
|
|
46
|
-
|
|
57
|
+
const LoadingComponent = loadingComponent;
|
|
58
|
+
return (
|
|
59
|
+
<>
|
|
60
|
+
{isLoading
|
|
61
|
+
? (
|
|
62
|
+
<LoadingComponent configurationName={configurationName} />
|
|
63
|
+
)
|
|
64
|
+
: (
|
|
65
|
+
<>{children}</>
|
|
66
|
+
)}
|
|
67
|
+
</>
|
|
68
|
+
);
|
|
47
69
|
};
|
|
48
70
|
|
|
49
71
|
const Switch = ({ isLoading, loadingComponent, children, configurationName }) => {
|
|
@@ -60,6 +82,7 @@ export const OidcProvider: FC<PropsWithChildren<OidcProviderProps>> = ({
|
|
|
60
82
|
configurationName = 'default',
|
|
61
83
|
callbackSuccessComponent = CallBackSuccess,
|
|
62
84
|
authenticatingComponent = Authenticating,
|
|
85
|
+
loadingComponent = Loading,
|
|
63
86
|
serviceWorkerNotSupportedComponent = ServiceWorkerNotSupported,
|
|
64
87
|
authenticatingErrorComponent = AuthenticatingError,
|
|
65
88
|
sessionLostComponent = SessionLost,
|
|
@@ -134,6 +157,7 @@ export const OidcProvider: FC<PropsWithChildren<OidcProviderProps>> = ({
|
|
|
134
157
|
|
|
135
158
|
const SessionLostComponent = sessionLostComponent;
|
|
136
159
|
const AuthenticatingComponent = authenticatingComponent;
|
|
160
|
+
const LoadingComponent = loadingComponent;
|
|
137
161
|
const ServiceWorkerNotSupportedComponent = serviceWorkerNotSupportedComponent;
|
|
138
162
|
const AuthenticatingErrorComponent = authenticatingErrorComponent;
|
|
139
163
|
|
|
@@ -142,27 +166,27 @@ export const OidcProvider: FC<PropsWithChildren<OidcProviderProps>> = ({
|
|
|
142
166
|
const eventName = event.name;
|
|
143
167
|
switch (eventName) {
|
|
144
168
|
case OidcClient.eventNames.service_worker_not_supported_by_browser:
|
|
145
|
-
return (
|
|
169
|
+
return (<Switch loadingComponent={LoadingComponent} isLoading={isLoading} configurationName={configurationName}>
|
|
146
170
|
<ServiceWorkerNotSupportedComponent configurationName={configurationName} />
|
|
147
|
-
);
|
|
171
|
+
</Switch>);
|
|
148
172
|
case OidcClient.eventNames.loginAsync_begin:
|
|
149
|
-
return (
|
|
173
|
+
return (<Switch loadingComponent={LoadingComponent} isLoading={isLoading} configurationName={configurationName}>
|
|
150
174
|
<AuthenticatingComponent configurationName={configurationName} />
|
|
151
|
-
);
|
|
175
|
+
</Switch>);
|
|
152
176
|
case OidcClient.eventNames.loginAsync_error:
|
|
153
177
|
case OidcClient.eventNames.loginCallbackAsync_error:
|
|
154
|
-
return (
|
|
178
|
+
return (<Switch loadingComponent={LoadingComponent} isLoading={isLoading} configurationName={configurationName}>
|
|
155
179
|
<AuthenticatingErrorComponent configurationName={configurationName} />
|
|
156
|
-
);
|
|
180
|
+
</Switch>);
|
|
157
181
|
case OidcClient.eventNames.refreshTokensAsync_error:
|
|
158
182
|
case OidcClient.eventNames.syncTokensAsync_error:
|
|
159
183
|
case OidcClient.eventNames.logout_from_another_tab:
|
|
160
|
-
return (
|
|
184
|
+
return (<Switch loadingComponent={LoadingComponent} isLoading={isLoading} configurationName={configurationName}>
|
|
161
185
|
<SessionLostComponent configurationName={configurationName} />
|
|
162
|
-
);
|
|
186
|
+
</Switch>);
|
|
163
187
|
default:
|
|
164
188
|
return (
|
|
165
|
-
|
|
189
|
+
<Switch loadingComponent={LoadingComponent} isLoading={isLoading} configurationName={configurationName}>
|
|
166
190
|
<OidcRoutes redirect_uri={oidc.configuration.redirect_uri}
|
|
167
191
|
silent_redirect_uri={oidc.configuration.silent_redirect_uri}
|
|
168
192
|
silent_login_uri={oidc.configuration.silent_login_uri}
|
|
@@ -171,10 +195,11 @@ export const OidcProvider: FC<PropsWithChildren<OidcProviderProps>> = ({
|
|
|
171
195
|
authenticatingComponent={authenticatingComponent}
|
|
172
196
|
configurationName={configurationName}
|
|
173
197
|
withCustomHistory={withCustomHistory}>
|
|
174
|
-
<OidcSession configurationName={configurationName}>
|
|
198
|
+
<OidcSession loadingComponent={LoadingComponent} configurationName={configurationName}>
|
|
175
199
|
{children}
|
|
176
200
|
</OidcSession>
|
|
177
201
|
</OidcRoutes>
|
|
202
|
+
</Switch>
|
|
178
203
|
);
|
|
179
204
|
}
|
|
180
205
|
};
|
package/src/OidcSecure.tsx
CHANGED
|
@@ -11,14 +11,12 @@ export const OidcSecure: FC<PropsWithChildren<OidcSecureProps>> = ({ children, c
|
|
|
11
11
|
const getOidc = OidcClient.get;
|
|
12
12
|
const oidc = getOidc(configurationName);
|
|
13
13
|
useEffect(() => {
|
|
14
|
-
oidc.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
});
|
|
14
|
+
if (!oidc.tokens) {
|
|
15
|
+
oidc.loginAsync(callbackPath, extras);
|
|
16
|
+
}
|
|
19
17
|
}, [configurationName, callbackPath, extras]);
|
|
20
18
|
|
|
21
|
-
if (!oidc
|
|
19
|
+
if (!oidc.tokens) {
|
|
22
20
|
return null;
|
|
23
21
|
}
|
|
24
22
|
return <>{children}</>;
|
package/src/ReactOidc.tsx
CHANGED
|
@@ -26,7 +26,7 @@ export const useOidc = (configurationName = defaultConfigurationName) => {
|
|
|
26
26
|
setIsAuthenticated(defaultIsAuthenticated(getOidc, configurationName));
|
|
27
27
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
28
28
|
const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => {
|
|
29
|
-
if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab || name === OidcClient.eventNames.token_aquired
|
|
29
|
+
if (name === OidcClient.eventNames.logout_from_another_tab || name === OidcClient.eventNames.logout_from_same_tab || name === OidcClient.eventNames.token_aquired) {
|
|
30
30
|
if (isMounted) {
|
|
31
31
|
setIsAuthenticated(defaultIsAuthenticated(getOidc, configurationName));
|
|
32
32
|
}
|
|
@@ -100,9 +100,7 @@ export const useOidcAccessToken = (configurationName = defaultConfigurationName)
|
|
|
100
100
|
name === OidcClient.eventNames.logout_from_another_tab ||
|
|
101
101
|
name === OidcClient.eventNames.logout_from_same_tab ||
|
|
102
102
|
name === OidcClient.eventNames.refreshTokensAsync_error ||
|
|
103
|
-
name === OidcClient.eventNames.syncTokensAsync_error
|
|
104
|
-
name == OidcClient.eventNames.tryKeepExistingSessionAsync_end
|
|
105
|
-
) {
|
|
103
|
+
name === OidcClient.eventNames.syncTokensAsync_error) {
|
|
106
104
|
if (isMounted) {
|
|
107
105
|
const tokens = oidc.tokens;
|
|
108
106
|
setAccessToken(tokens != null ? { accessToken: tokens.accessToken, accessTokenPayload: tokens.accessTokenPayload } : accessTokenInitialState);
|
|
@@ -153,8 +151,7 @@ export const useOidcIdToken = (configurationName = defaultConfigurationName) =>
|
|
|
153
151
|
name === OidcClient.eventNames.logout_from_another_tab ||
|
|
154
152
|
name === OidcClient.eventNames.logout_from_same_tab ||
|
|
155
153
|
name === OidcClient.eventNames.refreshTokensAsync_error ||
|
|
156
|
-
name === OidcClient.eventNames.syncTokensAsync_error
|
|
157
|
-
name == OidcClient.eventNames.tryKeepExistingSessionAsync_end) {
|
|
154
|
+
name === OidcClient.eventNames.syncTokensAsync_error) {
|
|
158
155
|
if (isMounted) {
|
|
159
156
|
const tokens = oidc.tokens;
|
|
160
157
|
setIDToken(tokens != null ? { idToken: tokens.idToken, idTokenPayload: tokens.idTokenPayload } : idTokenInitialState);
|
package/src/User.ts
CHANGED
|
@@ -34,20 +34,7 @@ export const useOidcUser = <T extends OidcUserInfo = OidcUserInfo>(configuration
|
|
|
34
34
|
} else {
|
|
35
35
|
setOidcUser({ user: null, status: OidcUserStatus.Unauthenticated });
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
const newSubscriptionId = oidc.subscribeEvents((name: string, data: any) => {
|
|
39
|
-
console.log(`Event ${name} has been raised`);
|
|
40
|
-
if (name == OidcClient.eventNames.tryKeepExistingSessionAsync_end) {
|
|
41
|
-
if (isMounted) {
|
|
42
|
-
reloadOidcUser();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
return () => {
|
|
48
|
-
isMounted = false;
|
|
49
|
-
oidc.removeEventSubscription(newSubscriptionId);
|
|
50
|
-
};
|
|
37
|
+
return () => { isMounted = false; };
|
|
51
38
|
}, [oidcUserId]);
|
|
52
39
|
|
|
53
40
|
const reloadOidcUser = () => {
|