@descope/react-sdk 2.3.1 → 2.3.3
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/cjs/index.cjs.js +1 -1
- package/dist/dts/src/sdk.d.ts +12 -6
- package/dist/index.d.ts +4 -2
- package/dist/index.esm.js +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +10 -10
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(e),a=r(t);const o=n.default.createContext(void 0),l=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.1"},d="undefined"!=typeof window;let c;const f=e=>{const t=a.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},g=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=g();const p=()=>d?null==c?void 0:c.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return s(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,baseStaticUrl:s,innerRef:a,tenant:o,theme:l,locale:u,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:b,restartOnError:m,storeLastAuthenticatedUser:h})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:a,tenant:o,theme:l,locale:u,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":b,"restart-on-error":m,"store-last-authenticated-user":h})}))),U=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:a,logger:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,restartOnError:U,errorTransformer:I,styleId:y},E)=>{const[S,v]=e.useState(null);e.useImperativeHandle(E,(()=>S));const{projectId:k,baseUrl:j,baseStaticUrl:L,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x,sdk:A}=n.default.useContext(o),O=e.useCallback((async e=>{await A.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),s&&(null==e||e.addEventListener("error",s)),a&&(null==e||e.addEventListener("ready",a)),()=>{s&&(null==e||e.removeEventListener("error",s)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",O)}}),[S,s,O]),e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),()=>{null==e||e.removeEventListener("success",O)}}),[S,O]),e.useEffect((()=>{const e=S;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[S,s]),e.useEffect((()=>{const e=S;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[S,a]),e.useEffect((()=>{S&&(S.errorTransformer=I)}),[S,I]),e.useEffect((()=>{S&&l&&(S.logger=l)}),[S,l]);const{form:C,client:P}=e.useMemo((()=>({form:JSON.stringify(g||{}),client:JSON.stringify(f||{})})),[g,f]);return n.default.createElement("form",null,n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(w,{projectId:k,flowId:t,baseUrl:j,baseStaticUrl:L,innerRef:v,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:y,validateOnBlur:h,restartOnError:U,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x})))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),R=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-profile-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,debug:s}))})),A=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/applications-portal-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),O=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));var C=()=>{const t=e.useContext(o);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const P=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,T={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],T);if("function"==typeof e[t])return()=>{throw Error(P("function"))};throw Error(P("attribute"))}};exports.AccessKeyManagement=k,exports.ApplicationsPortal=O,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,exports.SignInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=y,exports.UserProfile=x,exports.baseHeaders=i,exports.getJwtPermissions=m,exports.getJwtRoles=h,exports.getRefreshToken=b,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=b())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=b())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=C();return e.useMemo((()=>t||new Proxy(g(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=C(),a=e.useRef(r);e.useMemo((()=>{a.current=r}),[r]);const o=!t&&!r;return e.useMemo((()=>{o&&!n&&(a.current=!0)}),[n]),e.useEffect((()=>{o&&s()}),[s]),{isSessionLoading:a.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:a}=C(),[o,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(e),a=r(t);const o=n.default.createContext(void 0),l=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.3"},d="undefined"!=typeof window;let c;const f=e=>{const t=a.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},g=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=g();const p=()=>d?null==c?void 0:c.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return s(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,baseStaticUrl:s,innerRef:a,tenant:o,theme:l,locale:u,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:b,restartOnError:m,storeLastAuthenticatedUser:h})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:a,tenant:o,theme:l,locale:u,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":b,"restart-on-error":m,"store-last-authenticated-user":h})}))),U=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:a,logger:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,restartOnError:U,errorTransformer:I,styleId:y},E)=>{const[S,v]=e.useState(null);e.useImperativeHandle(E,(()=>S));const{projectId:k,baseUrl:j,baseStaticUrl:L,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x,sdk:A}=n.default.useContext(o),O=e.useCallback((async e=>{await A.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),s&&(null==e||e.addEventListener("error",s)),a&&(null==e||e.addEventListener("ready",a)),()=>{s&&(null==e||e.removeEventListener("error",s)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",O)}}),[S,s,O]),e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),()=>{null==e||e.removeEventListener("success",O)}}),[S,O]),e.useEffect((()=>{const e=S;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[S,s]),e.useEffect((()=>{const e=S;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[S,a]),e.useEffect((()=>{S&&(S.errorTransformer=I)}),[S,I]),e.useEffect((()=>{S&&l&&(S.logger=l)}),[S,l]);const{form:C,client:P}=e.useMemo((()=>({form:JSON.stringify(g||{}),client:JSON.stringify(f||{})})),[g,f]);return n.default.createElement("form",null,n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(w,{projectId:k,flowId:t,baseUrl:j,baseStaticUrl:L,innerRef:v,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:y,validateOnBlur:h,restartOnError:U,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x})))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),R=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-profile-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,debug:s}))})),A=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/applications-portal-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),O=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));var C=()=>{const t=e.useContext(o);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const P=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,T={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],T);if("function"==typeof e[t])return()=>{throw Error(P("function"))};throw Error(P("attribute"))}};exports.AccessKeyManagement=k,exports.ApplicationsPortal=O,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,exports.SignInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=y,exports.UserProfile=x,exports.baseHeaders=i,exports.getJwtPermissions=m,exports.getJwtRoles=h,exports.getRefreshToken=b,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=b())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=b())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=C();return e.useMemo((()=>t||new Proxy(g(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=C(),a=e.useRef(r);e.useMemo((()=>{a.current=r}),[r]);const o=!t&&!r;return e.useMemo((()=>{o&&!n&&(a.current=!0)}),[n]),e.useEffect((()=>{o&&s()}),[s]),{isSessionLoading:a.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:a}=C(),[o,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/dts/src/sdk.d.ts
CHANGED
|
@@ -72,6 +72,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
72
72
|
samlIdpStateId?: string;
|
|
73
73
|
samlIdpUsername?: string;
|
|
74
74
|
ssoAppId?: string;
|
|
75
|
+
thirdPartyAppId?: string;
|
|
75
76
|
oidcLoginHint?: string;
|
|
76
77
|
abTestingKey?: number;
|
|
77
78
|
startOptionsVersion?: number;
|
|
@@ -84,7 +85,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
84
85
|
oauthProvider?: string;
|
|
85
86
|
oauthRedirect?: string;
|
|
86
87
|
};
|
|
87
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
88
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
88
89
|
lastAuth?: Omit<{
|
|
89
90
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
90
91
|
oauthProvider?: string;
|
|
@@ -678,6 +679,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
678
679
|
samlIdpStateId?: string;
|
|
679
680
|
samlIdpUsername?: string;
|
|
680
681
|
ssoAppId?: string;
|
|
682
|
+
thirdPartyAppId?: string;
|
|
681
683
|
oidcLoginHint?: string;
|
|
682
684
|
abTestingKey?: number;
|
|
683
685
|
startOptionsVersion?: number;
|
|
@@ -690,7 +692,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
690
692
|
oauthProvider?: string;
|
|
691
693
|
oauthRedirect?: string;
|
|
692
694
|
};
|
|
693
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
695
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
694
696
|
lastAuth?: Omit<{
|
|
695
697
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
696
698
|
oauthProvider?: string;
|
|
@@ -1294,6 +1296,7 @@ export declare const createTempSdk: () => ((({
|
|
|
1294
1296
|
samlIdpStateId?: string;
|
|
1295
1297
|
samlIdpUsername?: string;
|
|
1296
1298
|
ssoAppId?: string;
|
|
1299
|
+
thirdPartyAppId?: string;
|
|
1297
1300
|
oidcLoginHint?: string;
|
|
1298
1301
|
abTestingKey?: number;
|
|
1299
1302
|
startOptionsVersion?: number;
|
|
@@ -1306,7 +1309,7 @@ export declare const createTempSdk: () => ((({
|
|
|
1306
1309
|
oauthProvider?: string;
|
|
1307
1310
|
oauthRedirect?: string;
|
|
1308
1311
|
};
|
|
1309
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
1312
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
1310
1313
|
lastAuth?: Omit<{
|
|
1311
1314
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
1312
1315
|
oauthProvider?: string;
|
|
@@ -1900,6 +1903,7 @@ export declare const createTempSdk: () => ((({
|
|
|
1900
1903
|
samlIdpStateId?: string;
|
|
1901
1904
|
samlIdpUsername?: string;
|
|
1902
1905
|
ssoAppId?: string;
|
|
1906
|
+
thirdPartyAppId?: string;
|
|
1903
1907
|
oidcLoginHint?: string;
|
|
1904
1908
|
abTestingKey?: number;
|
|
1905
1909
|
startOptionsVersion?: number;
|
|
@@ -1912,7 +1916,7 @@ export declare const createTempSdk: () => ((({
|
|
|
1912
1916
|
oauthProvider?: string;
|
|
1913
1917
|
oauthRedirect?: string;
|
|
1914
1918
|
};
|
|
1915
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
1919
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
1916
1920
|
lastAuth?: Omit<{
|
|
1917
1921
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
1918
1922
|
oauthProvider?: string;
|
|
@@ -2523,6 +2527,7 @@ export declare const getGlobalSdk: () => ((({
|
|
|
2523
2527
|
samlIdpStateId?: string;
|
|
2524
2528
|
samlIdpUsername?: string;
|
|
2525
2529
|
ssoAppId?: string;
|
|
2530
|
+
thirdPartyAppId?: string;
|
|
2526
2531
|
oidcLoginHint?: string;
|
|
2527
2532
|
abTestingKey?: number;
|
|
2528
2533
|
startOptionsVersion?: number;
|
|
@@ -2535,7 +2540,7 @@ export declare const getGlobalSdk: () => ((({
|
|
|
2535
2540
|
oauthProvider?: string;
|
|
2536
2541
|
oauthRedirect?: string;
|
|
2537
2542
|
};
|
|
2538
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
2543
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
2539
2544
|
lastAuth?: Omit<{
|
|
2540
2545
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
2541
2546
|
oauthProvider?: string;
|
|
@@ -3129,6 +3134,7 @@ export declare const getGlobalSdk: () => ((({
|
|
|
3129
3134
|
samlIdpStateId?: string;
|
|
3130
3135
|
samlIdpUsername?: string;
|
|
3131
3136
|
ssoAppId?: string;
|
|
3137
|
+
thirdPartyAppId?: string;
|
|
3132
3138
|
oidcLoginHint?: string;
|
|
3133
3139
|
abTestingKey?: number;
|
|
3134
3140
|
startOptionsVersion?: number;
|
|
@@ -3141,7 +3147,7 @@ export declare const getGlobalSdk: () => ((({
|
|
|
3141
3147
|
oauthProvider?: string;
|
|
3142
3148
|
oauthRedirect?: string;
|
|
3143
3149
|
};
|
|
3144
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
3150
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
3145
3151
|
lastAuth?: Omit<{
|
|
3146
3152
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
3147
3153
|
oauthProvider?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -96,6 +96,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
96
96
|
samlIdpStateId?: string;
|
|
97
97
|
samlIdpUsername?: string;
|
|
98
98
|
ssoAppId?: string;
|
|
99
|
+
thirdPartyAppId?: string;
|
|
99
100
|
oidcLoginHint?: string;
|
|
100
101
|
abTestingKey?: number;
|
|
101
102
|
startOptionsVersion?: number;
|
|
@@ -108,7 +109,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
108
109
|
oauthProvider?: string;
|
|
109
110
|
oauthRedirect?: string;
|
|
110
111
|
};
|
|
111
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
112
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
112
113
|
lastAuth?: Omit<{
|
|
113
114
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
114
115
|
oauthProvider?: string;
|
|
@@ -702,6 +703,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
702
703
|
samlIdpStateId?: string;
|
|
703
704
|
samlIdpUsername?: string;
|
|
704
705
|
ssoAppId?: string;
|
|
706
|
+
thirdPartyAppId?: string;
|
|
705
707
|
oidcLoginHint?: string;
|
|
706
708
|
abTestingKey?: number;
|
|
707
709
|
startOptionsVersion?: number;
|
|
@@ -714,7 +716,7 @@ declare const createSdkWrapper: <P extends Omit<{
|
|
|
714
716
|
oauthProvider?: string;
|
|
715
717
|
oauthRedirect?: string;
|
|
716
718
|
};
|
|
717
|
-
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
719
|
+
}, "tenant" | "redirectUrl" | "redirectAuth" | "oidcIdpStateId" | "samlIdpStateId" | "samlIdpUsername" | "ssoAppId" | "thirdPartyAppId" | "oidcLoginHint" | "preview" | "abTestingKey" | "client" | "locale" | "oidcPrompt" | "oidcErrorRedirectUri" | "nativeOptions"> & {
|
|
718
720
|
lastAuth?: Omit<{
|
|
719
721
|
authMethod?: "webauthn" | "otp" | "oauth" | "saml" | "totp" | "magiclink" | "enchantedlink";
|
|
720
722
|
oauthProvider?: string;
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.1"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,restartOnError:m,storeLastAuthenticatedUser:h})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"restart-on-error":m,"store-last-authenticated-user":h})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,restartOnError:E,errorTransformer:L,styleId:j},v)=>{const[R,A]=r(null);i(v,(()=>R));const{projectId:C,baseUrl:x,baseStaticUrl:T,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F,sdk:J}=e.useContext(u),P=o((async e=>{await J.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=R;return null==e||e.addEventListener("success",P),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",P)}}),[R,d,P]),s((()=>{const e=R;return null==e||e.addEventListener("success",P),()=>{null==e||e.removeEventListener("success",P)}}),[R,P]),s((()=>{const e=R;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[R,d]),s((()=>{const e=R;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[R,c]),s((()=>{R&&(R.errorTransformer=L)}),[R,L]),s((()=>{R&&g&&(R.logger=g)}),[R,g]);const{form:q,client:V}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:C,flowId:n,baseUrl:x,baseStaticUrl:T,innerRef:A,tenant:f,theme:b,locale:p,debug:m,form:q,client:V,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:j,validateOnBlur:k,restartOnError:E,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
|
|
1
|
+
import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.3"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,restartOnError:m,storeLastAuthenticatedUser:h})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"restart-on-error":m,"store-last-authenticated-user":h})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,restartOnError:E,errorTransformer:L,styleId:j},v)=>{const[R,A]=r(null);i(v,(()=>R));const{projectId:C,baseUrl:x,baseStaticUrl:T,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F,sdk:J}=e.useContext(u),P=o((async e=>{await J.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=R;return null==e||e.addEventListener("success",P),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",P)}}),[R,d,P]),s((()=>{const e=R;return null==e||e.addEventListener("success",P),()=>{null==e||e.removeEventListener("success",P)}}),[R,P]),s((()=>{const e=R;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[R,d]),s((()=>{const e=R;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[R,c]),s((()=>{R&&(R.errorTransformer=L)}),[R,L]),s((()=>{R&&g&&(R.logger=g)}),[R,g]);const{form:q,client:V}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:C,flowId:n,baseUrl:x,baseStaticUrl:T,innerRef:A,tenant:f,theme:b,locale:p,debug:m,form:q,client:V,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:j,validateOnBlur:k,restartOnError:E,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|