@descope/react-sdk 2.0.76 → 2.0.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";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),o=r(t);const a=n.default.createContext(void 0),u=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)},l=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.0.76"},d="undefined"!=typeof window;let c;const f=e=>{const t=o.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"),""),m=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),b=l(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=l(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const U=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:o,tenant:a,theme:u,locale:l,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:m,storeLastAuthenticatedUser:b})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:o,tenant:a,theme:u,locale:l,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":m,"store-last-authenticated-user":b})}))),w=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:o,logger:u,tenant:l,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:m,autoFocus:b,validateOnBlur:h,errorTransformer:w,styleId:E},S)=>{const[v,k]=e.useState(null);e.useImperativeHandle(S,(()=>v));const{projectId:I,baseUrl:y,baseStaticUrl:j,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:x,sdk:R}=n.default.useContext(a),A=e.useCallback((async e=>{await R.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=v;return null==e||e.addEventListener("success",A),s&&(null==e||e.addEventListener("error",s)),o&&(null==e||e.addEventListener("ready",o)),()=>{s&&(null==e||e.removeEventListener("error",s)),o&&(null==e||e.removeEventListener("ready",o)),null==e||e.removeEventListener("success",A)}}),[v,s,A]),e.useEffect((()=>{const e=v;return null==e||e.addEventListener("success",A),()=>{null==e||e.removeEventListener("success",A)}}),[v,A]),e.useEffect((()=>{const e=v;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[v,s]),e.useEffect((()=>{const e=v;return o&&(null==e||e.addEventListener("ready",o)),()=>{o&&(null==e||e.removeEventListener("error",o))}}),[v,o]),e.useEffect((()=>{v&&(v.errorTransformer=w)}),[v,w]),e.useEffect((()=>{v&&u&&(v.logger=u)}),[v,u]);const{form:T,client:C}=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(U,{projectId:I,flowId:t,baseUrl:y,baseStaticUrl:j,innerRef:k,tenant:l,theme:i,locale:d,debug:c,form:T,client:C,telemetryKey:p,redirectUrl:m,autoFocus:b,styleId:E,validateOnBlur:h,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:x})))})),E=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),v=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),I=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),x=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:o,theme:a,debug:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:a,debug:u,ref:s})}))),R=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:o,onLogout:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),e.useEffect((()=>{if(i&&u)return i.addEventListener("logout",u),()=>i.removeEventListener("logout",u)}),[i,u]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(x,{projectId:c,widgetId:o,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s}))}));var A=()=>{const t=e.useContext(a);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const T=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,C={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],C);if("function"==typeof e[t])return()=>{throw Error(T("function"))};throw Error(T("attribute"))}};exports.AccessKeyManagement=y,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:o=!1,persistTokens:l=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,m]=e.useState(),[b,h]=e.useState(),[U,w]=e.useState(!1),[E,S]=e.useState(!1),v=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:l,sessionTokenViaCookie:o,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(v){const e=v.onSessionTokenChange(h),t=v.onUserChange(m);return()=>{e(),t()}}}),[v]);const k=e.useRef(!1),I=e.useRef(!1),y=e.useCallback((()=>{k.current||(k.current=!0,S(!0),u(null==v?void 0:v.refresh)().then((()=>{S(!1)})))}),[v]),j=e.useCallback((()=>{I.current||(I.current=!0,w(!0),u(v.me)().then((()=>{w(!1)})))}),[v]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:U,isUserFetched:I.current,fetchSession:y,session:b,isSessionLoading:E,isSessionFetched:k.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:m,setSession:h,sdk:v})),[j,p,U,I.current,y,b,E,k.current,t,r,s,m,h,v]);return n.default.createElement(a.Provider,{value:L},g)},exports.Descope=w,exports.RoleManagement=k,exports.SignInFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=S,exports.UserProfile=R,exports.baseHeaders=i,exports.getJwtPermissions=b,exports.getJwtRoles=h,exports.getRefreshToken=m,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=m())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=m())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=A();return e.useMemo((()=>t||new Proxy(g(),C)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=A(),o=e.useRef(r);e.useMemo((()=>{o.current=r}),[r]);const a=!t&&!r;return e.useMemo((()=>{a&&!n&&(o.current=!0)}),[n]),e.useEffect((()=>{a&&s()}),[s]),{isSessionLoading:o.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:o}=A(),[a,u]=e.useState(!1),l=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!a),[r,n,a]);return e.useMemo((()=>{l.current=s}),[s]),e.useMemo((()=>{i&&!o&&(l.current=!0)}),[i,o]),e.useEffect((()=>{i&&(u(!0),r())}),[i]),{isUserLoading:l.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),o=r(t);const a=n.default.createContext(void 0),u=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)},l=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.0.77"},d="undefined"!=typeof window;let c;const f=e=>{const t=o.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"),""),m=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),b=l(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=l(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const U=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:o,tenant:a,theme:u,locale:l,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:m,storeLastAuthenticatedUser:b})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:o,tenant:a,theme:u,locale:l,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":m,"store-last-authenticated-user":b})}))),w=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:o,logger:u,tenant:l,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:m,autoFocus:b,validateOnBlur:h,errorTransformer:w,styleId:E},S)=>{const[v,k]=e.useState(null);e.useImperativeHandle(S,(()=>v));const{projectId:I,baseUrl:y,baseStaticUrl:j,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:x,sdk:R}=n.default.useContext(a),A=e.useCallback((async e=>{await R.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=v;return null==e||e.addEventListener("success",A),s&&(null==e||e.addEventListener("error",s)),o&&(null==e||e.addEventListener("ready",o)),()=>{s&&(null==e||e.removeEventListener("error",s)),o&&(null==e||e.removeEventListener("ready",o)),null==e||e.removeEventListener("success",A)}}),[v,s,A]),e.useEffect((()=>{const e=v;return null==e||e.addEventListener("success",A),()=>{null==e||e.removeEventListener("success",A)}}),[v,A]),e.useEffect((()=>{const e=v;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[v,s]),e.useEffect((()=>{const e=v;return o&&(null==e||e.addEventListener("ready",o)),()=>{o&&(null==e||e.removeEventListener("error",o))}}),[v,o]),e.useEffect((()=>{v&&(v.errorTransformer=w)}),[v,w]),e.useEffect((()=>{v&&u&&(v.logger=u)}),[v,u]);const{form:T,client:C}=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(U,{projectId:I,flowId:t,baseUrl:y,baseStaticUrl:j,innerRef:k,tenant:l,theme:i,locale:d,debug:c,form:T,client:C,telemetryKey:p,redirectUrl:m,autoFocus:b,styleId:E,validateOnBlur:h,storeLastAuthenticatedUser:L,keepLastAuthenticatedUserAfterLogout:x})))})),E=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),v=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),I=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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),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:o,widgetId:a,theme:u,debug:l})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:u,tenant:o,debug:l,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:o,widgetId:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:c,widgetId:u,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:o}))})),x=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:o,theme:a,debug:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:a,debug:u,ref:s})}))),R=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:o,onLogout:u},l)=>{const[i,d]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(a);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),e.useEffect((()=>{if(i&&u)return i.addEventListener("logout",u),()=>i.removeEventListener("logout",u)}),[i,u]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(x,{projectId:c,widgetId:o,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s}))}));var A=()=>{const t=e.useContext(a);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const T=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,C={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],C);if("function"==typeof e[t])return()=>{throw Error(T("function"))};throw Error(T("attribute"))}};exports.AccessKeyManagement=y,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:o=!1,persistTokens:l=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,m]=e.useState(),[b,h]=e.useState(),[U,w]=e.useState(!1),[E,S]=e.useState(!1),v=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:l,sessionTokenViaCookie:o,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(v){const e=v.onSessionTokenChange(h),t=v.onUserChange(m);return()=>{e(),t()}}}),[v]);const k=e.useRef(!1),I=e.useRef(!1),y=e.useCallback((()=>{k.current||(k.current=!0,S(!0),u(null==v?void 0:v.refresh)().then((()=>{S(!1)})))}),[v]),j=e.useCallback((()=>{I.current||(I.current=!0,w(!0),u(v.me)().then((()=>{w(!1)})))}),[v]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:U,isUserFetched:I.current,fetchSession:y,session:b,isSessionLoading:E,isSessionFetched:k.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:m,setSession:h,sdk:v})),[j,p,U,I.current,y,b,E,k.current,t,r,s,m,h,v]);return n.default.createElement(a.Provider,{value:L},g)},exports.Descope=w,exports.RoleManagement=k,exports.SignInFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(w,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=S,exports.UserProfile=R,exports.baseHeaders=i,exports.getJwtPermissions=b,exports.getJwtRoles=h,exports.getRefreshToken=m,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=m())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=m())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=A();return e.useMemo((()=>t||new Proxy(g(),C)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=A(),o=e.useRef(r);e.useMemo((()=>{o.current=r}),[r]);const a=!t&&!r;return e.useMemo((()=>{a&&!n&&(o.current=!0)}),[n]),e.useEffect((()=>{a&&s()}),[s]),{isSessionLoading:o.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:o}=A(),[a,u]=e.useState(!1),l=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!a),[r,n,a]);return e.useMemo((()=>{l.current=s}),[s]),e.useMemo((()=>{i&&!o&&(l.current=!0)}),[i,o]),e.useEffect((()=>{i&&(u(!0),r())}),[i]),{isUserLoading:l.current,user:t}};
2
2
  //# sourceMappingURL=index.cjs.js.map
@@ -94,31 +94,31 @@ declare const createSdkWrapper: <P extends Omit<{
94
94
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
95
95
  };
96
96
  webauthn: {
97
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
98
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
97
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
98
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
99
99
  transactionId: string;
100
100
  options: string;
101
101
  create: boolean;
102
102
  }>>;
103
103
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
104
104
  };
105
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
106
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
105
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
106
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
107
107
  transactionId: string;
108
108
  options: string;
109
109
  create: boolean;
110
110
  }>>;
111
111
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
112
112
  };
113
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
114
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
113
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
114
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
115
115
  transactionId: string;
116
116
  options: string;
117
117
  create: boolean;
118
118
  }>>;
119
119
  };
120
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
121
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
120
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
121
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
122
122
  transactionId: string;
123
123
  options: string;
124
124
  create: boolean;
@@ -678,31 +678,31 @@ declare const createSdkWrapper: <P extends Omit<{
678
678
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
679
679
  };
680
680
  webauthn: {
681
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
682
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
681
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
682
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
683
683
  transactionId: string;
684
684
  options: string;
685
685
  create: boolean;
686
686
  }>>;
687
687
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
688
688
  };
689
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
690
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
689
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
690
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
691
691
  transactionId: string;
692
692
  options: string;
693
693
  create: boolean;
694
694
  }>>;
695
695
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
696
696
  };
697
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
698
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
697
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
698
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
699
699
  transactionId: string;
700
700
  options: string;
701
701
  create: boolean;
702
702
  }>>;
703
703
  };
704
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
705
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
704
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
705
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
706
706
  transactionId: string;
707
707
  options: string;
708
708
  create: boolean;
@@ -1272,31 +1272,31 @@ export declare const createTempSdk: () => ((({
1272
1272
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
1273
1273
  };
1274
1274
  webauthn: {
1275
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1276
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
1275
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1276
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1277
1277
  transactionId: string;
1278
1278
  options: string;
1279
1279
  create: boolean;
1280
1280
  }>>;
1281
1281
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
1282
1282
  };
1283
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1284
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
1283
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1284
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1285
1285
  transactionId: string;
1286
1286
  options: string;
1287
1287
  create: boolean;
1288
1288
  }>>;
1289
1289
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
1290
1290
  };
1291
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1292
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
1291
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1292
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1293
1293
  transactionId: string;
1294
1294
  options: string;
1295
1295
  create: boolean;
1296
1296
  }>>;
1297
1297
  };
1298
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
1299
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
1298
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
1299
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1300
1300
  transactionId: string;
1301
1301
  options: string;
1302
1302
  create: boolean;
@@ -1856,31 +1856,31 @@ export declare const createTempSdk: () => ((({
1856
1856
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
1857
1857
  };
1858
1858
  webauthn: {
1859
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1860
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
1859
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1860
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1861
1861
  transactionId: string;
1862
1862
  options: string;
1863
1863
  create: boolean;
1864
1864
  }>>;
1865
1865
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
1866
1866
  };
1867
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1868
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
1867
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1868
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1869
1869
  transactionId: string;
1870
1870
  options: string;
1871
1871
  create: boolean;
1872
1872
  }>>;
1873
1873
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
1874
1874
  };
1875
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1876
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
1875
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
1876
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1877
1877
  transactionId: string;
1878
1878
  options: string;
1879
1879
  create: boolean;
1880
1880
  }>>;
1881
1881
  };
1882
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
1883
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
1882
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
1883
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
1884
1884
  transactionId: string;
1885
1885
  options: string;
1886
1886
  create: boolean;
@@ -2457,31 +2457,31 @@ export declare const getGlobalSdk: () => ((({
2457
2457
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
2458
2458
  };
2459
2459
  webauthn: {
2460
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2461
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
2460
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2461
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
2462
2462
  transactionId: string;
2463
2463
  options: string;
2464
2464
  create: boolean;
2465
2465
  }>>;
2466
2466
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
2467
2467
  };
2468
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2469
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
2468
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2469
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
2470
2470
  transactionId: string;
2471
2471
  options: string;
2472
2472
  create: boolean;
2473
2473
  }>>;
2474
2474
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
2475
2475
  };
2476
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2477
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
2476
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
2477
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
2478
2478
  transactionId: string;
2479
2479
  options: string;
2480
2480
  create: boolean;
2481
2481
  }>>;
2482
2482
  };
2483
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
2484
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
2483
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
2484
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
2485
2485
  transactionId: string;
2486
2486
  options: string;
2487
2487
  create: boolean;
@@ -3041,31 +3041,31 @@ export declare const getGlobalSdk: () => ((({
3041
3041
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
3042
3042
  };
3043
3043
  webauthn: {
3044
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3045
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
3044
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3045
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
3046
3046
  transactionId: string;
3047
3047
  options: string;
3048
3048
  create: boolean;
3049
3049
  }>>;
3050
3050
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
3051
3051
  };
3052
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3053
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
3052
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3053
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
3054
3054
  transactionId: string;
3055
3055
  options: string;
3056
3056
  create: boolean;
3057
3057
  }>>;
3058
3058
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
3059
3059
  };
3060
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3061
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
3060
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
3061
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
3062
3062
  transactionId: string;
3063
3063
  options: string;
3064
3064
  create: boolean;
3065
3065
  }>>;
3066
3066
  };
3067
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
3068
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
3067
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
3068
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
3069
3069
  transactionId: string;
3070
3070
  options: string;
3071
3071
  create: boolean;
package/dist/index.d.ts CHANGED
@@ -117,31 +117,31 @@ declare const createSdkWrapper: <P extends Omit<{
117
117
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
118
118
  };
119
119
  webauthn: {
120
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
121
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
120
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
121
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
122
122
  transactionId: string;
123
123
  options: string;
124
124
  create: boolean;
125
125
  }>>;
126
126
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
127
127
  };
128
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
129
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
128
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
129
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
130
130
  transactionId: string;
131
131
  options: string;
132
132
  create: boolean;
133
133
  }>>;
134
134
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
135
135
  };
136
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
137
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
136
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
137
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
138
138
  transactionId: string;
139
139
  options: string;
140
140
  create: boolean;
141
141
  }>>;
142
142
  };
143
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
144
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
143
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
144
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
145
145
  transactionId: string;
146
146
  options: string;
147
147
  create: boolean;
@@ -701,31 +701,31 @@ declare const createSdkWrapper: <P extends Omit<{
701
701
  }) => Promise<_1.SdkResponse<_1.FlowResponse>>;
702
702
  };
703
703
  webauthn: {
704
- signUp: ((identifier: string, name: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
705
- start: (loginId: string, origin: string, name: string) => Promise<_1.SdkResponse<{
704
+ signUp: ((identifier: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
705
+ start: (loginId: string, origin: string, name: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
706
706
  transactionId: string;
707
707
  options: string;
708
708
  create: boolean;
709
709
  }>>;
710
710
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
711
711
  };
712
- signIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
713
- start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string) => Promise<_1.SdkResponse<{
712
+ signIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
713
+ start: (loginId: string, origin: string, loginOptions?: _1.LoginOptions, token?: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
714
714
  transactionId: string;
715
715
  options: string;
716
716
  create: boolean;
717
717
  }>>;
718
718
  finish: (transactionId: string, response: string) => Promise<_1.SdkResponse<_1.JWTResponse>>;
719
719
  };
720
- signUpOrIn: ((identifier: string) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
721
- start: (loginId: string, origin: string) => Promise<_1.SdkResponse<{
720
+ signUpOrIn: ((identifier: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.JWTResponse>>) & {
721
+ start: (loginId: string, origin: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
722
722
  transactionId: string;
723
723
  options: string;
724
724
  create: boolean;
725
725
  }>>;
726
726
  };
727
- update: ((identifier: string, token: string) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
728
- start: (loginId: string, origin: string, token: string) => Promise<_1.SdkResponse<{
727
+ update: ((identifier: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<_1.ResponseData>>) & {
728
+ start: (loginId: string, origin: string, token: string, passkeyOptions?: _1.PasskeyOptions) => Promise<_1.SdkResponse<{
729
729
  transactionId: string;
730
730
  options: string;
731
731
  create: boolean;
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import e,{useMemo as t,useState as r,useEffect as n,useRef as s,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as c}from"react";import d 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.0.76"},m="undefined"!=typeof window;let p;const h=e=>{const t=d(Object.assign({persistTokens:m,autoRefresh:m},e));return p=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});p=U();const w=()=>m?null==p?void 0:p.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),k=()=>m?null==p?void 0:p.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),I=(e=w())=>null==p?void 0:p.isJwtExpired(e),E=(e=k())=>null==p?void 0:p.isJwtExpired(e),L=f(((e=w(),t)=>null==p?void 0:p.getJwtPermissions(e,t))),v=f(((e=w(),t)=>null==p?void 0:p.getJwtRoles(e,t))),j=(e=k())=>null==p?void 0:p.refresh(e);const S=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:c=!1,persistTokens:d=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:m=!1,children:p})=>{const[U,w]=r(),[k,I]=r(),[E,L]=r(!1),[v,j]=r(!1),S=(({projectId:e,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:b,persistTokens:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,s]))({projectId:a,baseUrl:i,persistTokens:d,sessionTokenViaCookie:c,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:m});n((()=>{if(S){const e=S.onSessionTokenChange(I),t=S.onUserChange(w);return()=>{e(),t()}}}),[S]);const y=s(!1),R=s(!1),A=o((()=>{y.current||(y.current=!0,j(!0),g(null==S?void 0:S.refresh)().then((()=>{j(!1)})))}),[S]),C=o((()=>{R.current||(R.current=!0,L(!0),g(S.me)().then((()=>{L(!1)})))}),[S]),T=t((()=>({fetchUser:C,user:U,isUserLoading:E,isUserFetched:R.current,fetchSession:A,session:k,isSessionLoading:v,isSessionFetched:y.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:m,setUser:w,setSession:I,sdk:S})),[C,U,E,R.current,A,k,v,y.current,a,i,l,w,I,S]);return e.createElement(u.Provider,{value:T},p)},y=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return p.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,baseStaticUrl:s,innerRef:o,tenant:a,theme:i,locale:l,debug:c,redirectUrl:d,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:m,storeLastAuthenticatedUser:p})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,"base-static-url":s,ref:o,tenant:a,theme:i,locale:l,debug:c,client:u,form:g,"style-id":f,"redirect-url":d,"auto-focus":b,"validate-on-blur":m,"store-last-authenticated-user":p})}))),R=e.forwardRef((({flowId:s,onSuccess:a,onError:c,onReady:d,logger:g,tenant:f,theme:b,locale:m,debug:p,client:h,form:U,telemetryKey:w,redirectUrl:k,autoFocus:I,validateOnBlur:E,errorTransformer:L,styleId:v},j)=>{const[S,R]=r(null);i(j,(()=>S));const{projectId:A,baseUrl:C,baseStaticUrl:T,storeLastAuthenticatedUser:x,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);n((()=>{const e=S;return null==e||e.addEventListener("success",J),c&&(null==e||e.addEventListener("error",c)),d&&(null==e||e.addEventListener("ready",d)),()=>{c&&(null==e||e.removeEventListener("error",c)),d&&(null==e||e.removeEventListener("ready",d)),null==e||e.removeEventListener("success",J)}}),[S,c,J]),n((()=>{const e=S;return null==e||e.addEventListener("success",J),()=>{null==e||e.removeEventListener("success",J)}}),[S,J]),n((()=>{const e=S;return c&&(null==e||e.addEventListener("error",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[S,c]),n((()=>{const e=S;return d&&(null==e||e.addEventListener("ready",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[S,d]),n((()=>{S&&(S.errorTransformer=L)}),[S,L]),n((()=>{S&&g&&(S.logger=g)}),[S,g]);const{form:P,client:q}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(y,{projectId:A,flowId:s,baseUrl:C,baseStaticUrl:T,innerRef:R,tenant:f,theme:b,locale:m,debug:p,form:P,client:q,telemetryKey:w,redirectUrl:k,autoFocus:I,styleId:v,validateOnBlur:E,storeLastAuthenticatedUser:x,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),T=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),x=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),O=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(x,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),J=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),q=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),B=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,widgetId:o,theme:a,debug:i})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":n,theme:a,debug:i,ref:s})}))),Y=e.forwardRef((({logger:t,theme:s,debug:o,widgetId:a,onLogout:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),n((()=>{if(g&&c)return g.addEventListener("logout",c),()=>g.removeEventListener("logout",c)}),[g,c]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:b,widgetId:a,baseUrl:m,baseStaticUrl:p,innerRef:f,theme:s,debug:o}))}));var z=()=>{const e=c(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const G=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,H={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],H);if("function"==typeof e[t])return()=>{throw Error(G("function"))};throw Error(G("attribute"))}},K=()=>{const{sdk:e}=z();return t((()=>e||new Proxy(U(),H)),[e])},M=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=z(),i=s(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),n((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},$=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=z(),[c,d]=r(!1),u=s(a),g=t((()=>!e&&!a&&i&&!c),[o,i,c]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),n((()=>{g&&(d(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,B as AuditManagement,S as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,T as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,L as getJwtPermissions,v as getJwtRoles,k as getRefreshToken,w as getSessionToken,E as isRefreshTokenExpired,I as isSessionTokenExpired,j as refresh,K as useDescope,M as useSession,$ as useUser};
1
+ import e,{useMemo as t,useState as r,useEffect as n,useRef as s,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as c}from"react";import d 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.0.77"},m="undefined"!=typeof window;let p;const h=e=>{const t=d(Object.assign({persistTokens:m,autoRefresh:m},e));return p=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});p=U();const w=()=>m?null==p?void 0:p.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),k=()=>m?null==p?void 0:p.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),I=(e=w())=>null==p?void 0:p.isJwtExpired(e),E=(e=k())=>null==p?void 0:p.isJwtExpired(e),L=f(((e=w(),t)=>null==p?void 0:p.getJwtPermissions(e,t))),v=f(((e=w(),t)=>null==p?void 0:p.getJwtRoles(e,t))),j=(e=k())=>null==p?void 0:p.refresh(e);const S=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:c=!1,persistTokens:d=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:m=!1,children:p})=>{const[U,w]=r(),[k,I]=r(),[E,L]=r(!1),[v,j]=r(!1),S=(({projectId:e,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:b,persistTokens:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,s]))({projectId:a,baseUrl:i,persistTokens:d,sessionTokenViaCookie:c,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:m});n((()=>{if(S){const e=S.onSessionTokenChange(I),t=S.onUserChange(w);return()=>{e(),t()}}}),[S]);const y=s(!1),R=s(!1),A=o((()=>{y.current||(y.current=!0,j(!0),g(null==S?void 0:S.refresh)().then((()=>{j(!1)})))}),[S]),C=o((()=>{R.current||(R.current=!0,L(!0),g(S.me)().then((()=>{L(!1)})))}),[S]),T=t((()=>({fetchUser:C,user:U,isUserLoading:E,isUserFetched:R.current,fetchSession:A,session:k,isSessionLoading:v,isSessionFetched:y.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:m,setUser:w,setSession:I,sdk:S})),[C,U,E,R.current,A,k,v,y.current,a,i,l,w,I,S]);return e.createElement(u.Provider,{value:T},p)},y=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return p.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,baseStaticUrl:s,innerRef:o,tenant:a,theme:i,locale:l,debug:c,redirectUrl:d,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:m,storeLastAuthenticatedUser:p})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,"base-static-url":s,ref:o,tenant:a,theme:i,locale:l,debug:c,client:u,form:g,"style-id":f,"redirect-url":d,"auto-focus":b,"validate-on-blur":m,"store-last-authenticated-user":p})}))),R=e.forwardRef((({flowId:s,onSuccess:a,onError:c,onReady:d,logger:g,tenant:f,theme:b,locale:m,debug:p,client:h,form:U,telemetryKey:w,redirectUrl:k,autoFocus:I,validateOnBlur:E,errorTransformer:L,styleId:v},j)=>{const[S,R]=r(null);i(j,(()=>S));const{projectId:A,baseUrl:C,baseStaticUrl:T,storeLastAuthenticatedUser:x,keepLastAuthenticatedUserAfterLogout:O,sdk:F}=e.useContext(u),J=o((async e=>{await F.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);n((()=>{const e=S;return null==e||e.addEventListener("success",J),c&&(null==e||e.addEventListener("error",c)),d&&(null==e||e.addEventListener("ready",d)),()=>{c&&(null==e||e.removeEventListener("error",c)),d&&(null==e||e.removeEventListener("ready",d)),null==e||e.removeEventListener("success",J)}}),[S,c,J]),n((()=>{const e=S;return null==e||e.addEventListener("success",J),()=>{null==e||e.removeEventListener("success",J)}}),[S,J]),n((()=>{const e=S;return c&&(null==e||e.addEventListener("error",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[S,c]),n((()=>{const e=S;return d&&(null==e||e.addEventListener("ready",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[S,d]),n((()=>{S&&(S.errorTransformer=L)}),[S,L]),n((()=>{S&&g&&(S.logger=g)}),[S,g]);const{form:P,client:q}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(y,{projectId:A,flowId:s,baseUrl:C,baseStaticUrl:T,innerRef:R,tenant:f,theme:b,locale:m,debug:p,form:P,client:q,telemetryKey:w,redirectUrl:k,autoFocus:I,styleId:v,validateOnBlur:E,storeLastAuthenticatedUser:x,keepLastAuthenticatedUserAfterLogout:O})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),T=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),x=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),O=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(x,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),J=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),q=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,tenant:o,widgetId:a,theme:i,debug:l})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":n,theme:i,tenant:o,debug:l,ref:s})}))),B=e.forwardRef((({logger:t,tenant:s,theme:o,debug:a,widgetId:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:b,widgetId:c,baseUrl:m,baseStaticUrl:p,innerRef:f,tenant:s,theme:o,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:n,innerRef:s,widgetId:o,theme:a,debug:i})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":n,theme:a,debug:i,ref:s})}))),Y=e.forwardRef((({logger:t,theme:s,debug:o,widgetId:a,onLogout:c},d)=>{const[g,f]=r(null);i(d,(()=>g));const{projectId:b,baseUrl:m,baseStaticUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),n((()=>{if(g&&c)return g.addEventListener("logout",c),()=>g.removeEventListener("logout",c)}),[g,c]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:b,widgetId:a,baseUrl:m,baseStaticUrl:p,innerRef:f,theme:s,debug:o}))}));var z=()=>{const e=c(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const G=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,H={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],H);if("function"==typeof e[t])return()=>{throw Error(G("function"))};throw Error(G("attribute"))}},K=()=>{const{sdk:e}=z();return t((()=>e||new Proxy(U(),H)),[e])},M=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=z(),i=s(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),n((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},$=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=z(),[c,d]=r(!1),u=s(a),g=t((()=>!e&&!a&&i&&!c),[o,i,c]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),n((()=>{g&&(d(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,B as AuditManagement,S as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,T as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,L as getJwtPermissions,v as getJwtRoles,k as getRefreshToken,w as getSessionToken,E as isRefreshTokenExpired,I as isSessionTokenExpired,j as refresh,K as useDescope,M as useSession,$ as useUser};
2
2
  //# sourceMappingURL=index.esm.js.map