@descope/react-sdk 2.0.22 → 2.0.23

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 n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(e),o=r(t);const a=s.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)},i=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},l={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.22"},d="undefined"!=typeof window;let c;const f=e=>{const t=o.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},p=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=p();const g=()=>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=i(((e=g(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=i(((e=g(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return n(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:l,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,innerRef:n,tenant:o,theme:a,locale:u,debug:i,redirectUrl:l,client:d,form:c,autoFocus:f})=>s.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,ref:n,tenant:o,theme:a,locale:u,debug:i,client:d,form:c,"redirect-url":l,"auto-focus":f})}))),E=s.default.forwardRef((({flowId:t,onSuccess:r,onError:n,onReady:o,logger:u,tenant:i,theme:l,locale:d,debug:c,client:f,form:p,telemetryKey:g,redirectUrl:m,autoFocus:b,errorTransformer:h},E)=>{const[k,v]=e.useState(null);e.useImperativeHandle(E,(()=>k));const{projectId:I,baseUrl:U,storeLastAuthenticatedUser:j,sdk:y}=s.default.useContext(a),S=e.useCallback((async e=>{await y.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",S),n&&(null==e||e.addEventListener("error",n)),o&&(null==e||e.addEventListener("ready",o)),()=>{n&&(null==e||e.removeEventListener("error",n)),o&&(null==e||e.removeEventListener("ready",o)),null==e||e.removeEventListener("success",S)}}),[k,n,S]),e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",S),()=>{null==e||e.removeEventListener("success",S)}}),[k,S]),e.useEffect((()=>{const e=k;return n&&(null==e||e.addEventListener("error",n)),()=>{n&&(null==e||e.removeEventListener("error",n))}}),[k,n]),e.useEffect((()=>{const e=k;return o&&(null==e||e.addEventListener("ready",o)),()=>{o&&(null==e||e.removeEventListener("error",o))}}),[k,o]),e.useEffect((()=>{k&&(k.errorTransformer=h)}),[k,h]),e.useEffect((()=>{k&&u&&(k.logger=u)}),[k,u]);const{form:x,client:R}=e.useMemo((()=>({form:JSON.stringify(p||{}),client:JSON.stringify(f||{})})),[p,f]);return s.default.createElement("form",null,s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(w,{projectId:I,flowId:t,baseUrl:U,innerRef:v,tenant:i,theme:l,locale:d,debug:c,form:x,client:R,telemetryKey:g,redirectUrl:m,autoFocus:b,storeLastAuthenticatedUser:j})))})),k=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),v=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(k,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),U=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(I,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),y=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(j,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),S=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),x=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(S,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))}));var R=()=>{const t=e.useContext(a);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const L=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(L("function"))};throw Error(L("attribute"))}};exports.AccessKeyManagement=y,exports.AuditManagement=x,exports.AuthProvider=({projectId:t,baseUrl:r="",sessionTokenViaCookie:n=!1,persistTokens:o=!0,storeLastAuthenticatedUser:i=!0,children:d})=>{const[c,p]=e.useState(),[g,m]=e.useState(),[b,h]=e.useState(!1),[w,E]=e.useState(!1),k=(({projectId:t,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:l,persistTokens:n,storeLastAuthenticatedUser:o,autoRefresh:!0})}),[t,r,s]))({projectId:t,baseUrl:r,persistTokens:o,sessionTokenViaCookie:n,storeLastAuthenticatedUser:i});e.useEffect((()=>{if(k){const e=k.onSessionTokenChange(m),t=k.onUserChange(p);return()=>{e(),t()}}}),[k]);const v=e.useRef(!1),I=e.useCallback((()=>{v.current||(v.current=!0,E(!0),u(null==k?void 0:k.refresh)().then((()=>{E(!1)})))}),[k]),U=e.useCallback((()=>{h(!0),u(k.me)().then((()=>{h(!1)}))}),[k]),j=e.useMemo((()=>({fetchUser:U,user:c,isUserLoading:b,fetchSession:I,session:g,isSessionLoading:w,isSessionFetched:v.current,projectId:t,baseUrl:r,storeLastAuthenticatedUser:i,setUser:p,setSession:m,sdk:k})),[U,c,b,I,g,w,v.current,t,r,p,m,k]);return s.default.createElement(a.Provider,{value:j},d)},exports.Descope=E,exports.RoleManagement=U,exports.SignInFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=v,exports.baseHeaders=l,exports.getJwtPermissions=b,exports.getJwtRoles=h,exports.getRefreshToken=m,exports.getSessionToken=g,exports.isRefreshTokenExpired=(e=m())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=g())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=m())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=R();return e.useMemo((()=>t||new Proxy(p(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:n,isSessionFetched:s}=R(),o=e.useRef(r);e.useMemo((()=>{o.current=r}),[r]);const a=!t&&!r;return e.useMemo((()=>{a&&!s&&(o.current=!0)}),[s]),e.useEffect((()=>{a&&n()}),[n]),{isSessionLoading:o.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:n,session:s}=R(),[o,a]=e.useState(!1),u=e.useRef(n),i=e.useMemo((()=>!t&&!n&&s&&!o),[r,s,o]);return e.useMemo((()=>{u.current=n}),[n]),e.useMemo((()=>{i&&(u.current=!0)}),[i]),e.useEffect((()=>{i&&(a(!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 n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=r(e),o=r(t);const a=s.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)},i=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},l={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.23"},d="undefined"!=typeof window;let c;const f=e=>{const t=o.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},p=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=p();const g=()=>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=i(((e=g(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=i(((e=g(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return n(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:l,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,innerRef:n,tenant:o,theme:a,locale:u,debug:i,redirectUrl:l,client:d,form:c,autoFocus:f})=>s.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,ref:n,tenant:o,theme:a,locale:u,debug:i,client:d,form:c,"redirect-url":l,"auto-focus":f})}))),E=s.default.forwardRef((({flowId:t,onSuccess:r,onError:n,onReady:o,logger:u,tenant:i,theme:l,locale:d,debug:c,client:f,form:p,telemetryKey:g,redirectUrl:m,autoFocus:b,errorTransformer:h},E)=>{const[k,v]=e.useState(null);e.useImperativeHandle(E,(()=>k));const{projectId:I,baseUrl:U,storeLastAuthenticatedUser:j,sdk:y}=s.default.useContext(a),S=e.useCallback((async e=>{await y.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",S),n&&(null==e||e.addEventListener("error",n)),o&&(null==e||e.addEventListener("ready",o)),()=>{n&&(null==e||e.removeEventListener("error",n)),o&&(null==e||e.removeEventListener("ready",o)),null==e||e.removeEventListener("success",S)}}),[k,n,S]),e.useEffect((()=>{const e=k;return null==e||e.addEventListener("success",S),()=>{null==e||e.removeEventListener("success",S)}}),[k,S]),e.useEffect((()=>{const e=k;return n&&(null==e||e.addEventListener("error",n)),()=>{n&&(null==e||e.removeEventListener("error",n))}}),[k,n]),e.useEffect((()=>{const e=k;return o&&(null==e||e.addEventListener("ready",o)),()=>{o&&(null==e||e.removeEventListener("error",o))}}),[k,o]),e.useEffect((()=>{k&&(k.errorTransformer=h)}),[k,h]),e.useEffect((()=>{k&&u&&(k.logger=u)}),[k,u]);const{form:x,client:R}=e.useMemo((()=>({form:JSON.stringify(p||{}),client:JSON.stringify(f||{})})),[p,f]);return s.default.createElement("form",null,s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(w,{projectId:I,flowId:t,baseUrl:U,innerRef:v,tenant:i,theme:l,locale:d,debug:c,form:x,client:R,telemetryKey:g,redirectUrl:m,autoFocus:b,storeLastAuthenticatedUser:j})))})),k=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),v=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(k,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),U=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(I,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),y=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(j,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))})),S=e.lazy((async()=>(await Promise.resolve().then((function(){return n(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,innerRef:r,tenant:n,widgetId:o,theme:a,debug:u})=>s.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:a,tenant:n,debug:u,ref:r})}))),x=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:u},i)=>{const[l,d]=e.useState(null);e.useImperativeHandle(i,(()=>l));const{projectId:c,baseUrl:f}=s.default.useContext(a);return e.useEffect((()=>{l&&t&&(l.logger=t)}),[l,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(S,{projectId:c,widgetId:u,baseUrl:f,innerRef:d,tenant:r,theme:n,debug:o}))}));var R=()=>{const t=e.useContext(a);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const L=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(L("function"))};throw Error(L("attribute"))}};exports.AccessKeyManagement=y,exports.AuditManagement=x,exports.AuthProvider=({projectId:t,baseUrl:r="",sessionTokenViaCookie:n=!1,persistTokens:o=!0,storeLastAuthenticatedUser:i=!0,children:d})=>{const[c,p]=e.useState(),[g,m]=e.useState(),[b,h]=e.useState(!1),[w,E]=e.useState(!1),k=(({projectId:t,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:l,persistTokens:n,storeLastAuthenticatedUser:o,autoRefresh:!0})}),[t,r,s]))({projectId:t,baseUrl:r,persistTokens:o,sessionTokenViaCookie:n,storeLastAuthenticatedUser:i});e.useEffect((()=>{if(k){const e=k.onSessionTokenChange(m),t=k.onUserChange(p);return()=>{e(),t()}}}),[k]);const v=e.useRef(!1),I=e.useCallback((()=>{v.current||(v.current=!0,E(!0),u(null==k?void 0:k.refresh)().then((()=>{E(!1)})))}),[k]),U=e.useCallback((()=>{h(!0),u(k.me)().then((()=>{h(!1)}))}),[k]),j=e.useMemo((()=>({fetchUser:U,user:c,isUserLoading:b,fetchSession:I,session:g,isSessionLoading:w,isSessionFetched:v.current,projectId:t,baseUrl:r,storeLastAuthenticatedUser:i,setUser:p,setSession:m,sdk:k})),[U,c,b,I,g,w,v.current,t,r,p,m,k]);return s.default.createElement(a.Provider,{value:j},d)},exports.Descope=E,exports.RoleManagement=U,exports.SignInFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>s.default.createElement(E,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=v,exports.baseHeaders=l,exports.getJwtPermissions=b,exports.getJwtRoles=h,exports.getRefreshToken=m,exports.getSessionToken=g,exports.isRefreshTokenExpired=(e=m())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=g())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=m())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=R();return e.useMemo((()=>t||new Proxy(p(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:n,isSessionFetched:s}=R(),o=e.useRef(r);e.useMemo((()=>{o.current=r}),[r]);const a=!t&&!r;return e.useMemo((()=>{a&&!s&&(o.current=!0)}),[s]),e.useEffect((()=>{a&&n()}),[n]),{isSessionLoading:o.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:n,session:s}=R(),[o,a]=e.useState(!1),u=e.useRef(n),i=e.useMemo((()=>!t&&!n&&s&&!o),[r,s,o]);return e.useMemo((()=>{u.current=n}),[n]),e.useMemo((()=>{i&&(u.current=!0)}),[i]),e.useEffect((()=>{i&&(a(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
2
2
  //# sourceMappingURL=index.cjs.js.map
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 i,useImperativeHandle as a,Suspense as d,useContext as c}from"react";import l 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},m={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.22"},p="undefined"!=typeof window;let h;const b=e=>{const t=l(Object.assign({persistTokens:p,autoRefresh:p},e));return h=t,t},w=()=>b({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});h=w();const k=()=>p?null==h?void 0:h.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==h?void 0:h.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),E=(e=k())=>null==h?void 0:h.isJwtExpired(e),U=(e=I())=>null==h?void 0:h.isJwtExpired(e),v=f(((e=k(),t)=>null==h?void 0:h.getJwtPermissions(e,t))),j=f(((e=k(),t)=>null==h?void 0:h.getJwtRoles(e,t))),y=(e=I())=>null==h?void 0:h.refresh(e);const R=({projectId:i,baseUrl:a="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:l=!0,children:f})=>{const[p,h]=r(),[w,k]=r(),[I,E]=r(!1),[U,v]=r(!1),j=(({projectId:e,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o})=>t((()=>{if(e)return b({projectId:e,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:m,persistTokens:n,storeLastAuthenticatedUser:o,autoRefresh:!0})}),[e,r,s]))({projectId:i,baseUrl:a,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:l});n((()=>{if(j){const e=j.onSessionTokenChange(k),t=j.onUserChange(h);return()=>{e(),t()}}}),[j]);const y=s(!1),R=o((()=>{y.current||(y.current=!0,v(!0),g(null==j?void 0:j.refresh)().then((()=>{v(!1)})))}),[j]),L=o((()=>{E(!0),g(j.me)().then((()=>{E(!1)}))}),[j]),S=t((()=>({fetchUser:L,user:p,isUserLoading:I,fetchSession:R,session:w,isSessionLoading:U,isSessionFetched:y.current,projectId:i,baseUrl:a,storeLastAuthenticatedUser:l,setUser:h,setSession:k,sdk:j})),[L,p,I,R,w,U,y.current,i,a,h,k,j]);return e.createElement(u.Provider,{value:S},f)},L=i((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:m,persistTokens:!1,hooks:{get beforeRequest(){return h.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,innerRef:s,tenant:o,theme:i,locale:a,debug:d,redirectUrl:c,client:l,form:u,autoFocus:g})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,ref:s,tenant:o,theme:i,locale:a,debug:d,client:l,form:u,"redirect-url":c,"auto-focus":g})}))),S=e.forwardRef((({flowId:s,onSuccess:i,onError:c,onReady:l,logger:g,tenant:f,theme:m,locale:p,debug:h,client:b,form:w,telemetryKey:k,redirectUrl:I,autoFocus:E,errorTransformer:U},v)=>{const[j,y]=r(null);a(v,(()=>j));const{projectId:R,baseUrl:S,storeLastAuthenticatedUser:T,sdk:C}=e.useContext(u),x=o((async e=>{await C.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),i&&i(e)}),[i]);n((()=>{const e=j;return null==e||e.addEventListener("success",x),c&&(null==e||e.addEventListener("error",c)),l&&(null==e||e.addEventListener("ready",l)),()=>{c&&(null==e||e.removeEventListener("error",c)),l&&(null==e||e.removeEventListener("ready",l)),null==e||e.removeEventListener("success",x)}}),[j,c,x]),n((()=>{const e=j;return null==e||e.addEventListener("success",x),()=>{null==e||e.removeEventListener("success",x)}}),[j,x]),n((()=>{const e=j;return c&&(null==e||e.addEventListener("error",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[j,c]),n((()=>{const e=j;return l&&(null==e||e.addEventListener("ready",l)),()=>{l&&(null==e||e.removeEventListener("error",l))}}),[j,l]),n((()=>{j&&(j.errorTransformer=U)}),[j,U]),n((()=>{j&&g&&(j.logger=g)}),[j,g]);const{form:A,client:O}=t((()=>({form:JSON.stringify(w||{}),client:JSON.stringify(b||{})})),[w,b]);return e.createElement("form",null,e.createElement(d,{fallback:null},e.createElement(L,{projectId:R,flowId:s,baseUrl:S,innerRef:y,tenant:f,theme:m,locale:p,debug:h,form:A,client:O,telemetryKey:k,redirectUrl:I,autoFocus:E,storeLastAuthenticatedUser:T})))})),T=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-up-or-in"})),A=i((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),O=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(A,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),J=i((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),P=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(J,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),F=i((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),q=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(F,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),V=i((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),N=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(V,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))}));var Y=()=>{const e=c(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const z=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,G={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],G);if("function"==typeof e[t])return()=>{throw Error(z("function"))};throw Error(z("attribute"))}},H=()=>{const{sdk:e}=Y();return t((()=>e||new Proxy(w(),G)),[e])},K=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:i}=Y(),a=s(r);t((()=>{a.current=r}),[r]);const d=!e&&!r;return t((()=>{d&&!i&&(a.current=!0)}),[i]),n((()=>{d&&o()}),[o]),{isSessionLoading:a.current,sessionToken:e,isAuthenticated:!!e}},M=()=>{const{user:e,fetchUser:o,isUserLoading:i,session:a}=Y(),[d,c]=r(!1),l=s(i),u=t((()=>!e&&!i&&a&&!d),[o,a,d]);return t((()=>{l.current=i}),[i]),t((()=>{u&&(l.current=!0)}),[u]),n((()=>{u&&(c(!0),o())}),[u]),{isUserLoading:l.current,user:e}};export{q as AccessKeyManagement,N as AuditManagement,R as AuthProvider,S as Descope,P as RoleManagement,T as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,m as baseHeaders,v as getJwtPermissions,j as getJwtRoles,I as getRefreshToken,k as getSessionToken,U as isRefreshTokenExpired,E as isSessionTokenExpired,y as refresh,H as useDescope,K as useSession,M as useUser};
1
+ import e,{useMemo as t,useState as r,useEffect as n,useRef as s,useCallback as o,lazy as i,useImperativeHandle as a,Suspense as d,useContext as c}from"react";import l 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},m={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.23"},p="undefined"!=typeof window;let h;const b=e=>{const t=l(Object.assign({persistTokens:p,autoRefresh:p},e));return h=t,t},w=()=>b({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});h=w();const k=()=>p?null==h?void 0:h.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==h?void 0:h.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),E=(e=k())=>null==h?void 0:h.isJwtExpired(e),U=(e=I())=>null==h?void 0:h.isJwtExpired(e),v=f(((e=k(),t)=>null==h?void 0:h.getJwtPermissions(e,t))),j=f(((e=k(),t)=>null==h?void 0:h.getJwtRoles(e,t))),y=(e=I())=>null==h?void 0:h.refresh(e);const R=({projectId:i,baseUrl:a="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:l=!0,children:f})=>{const[p,h]=r(),[w,k]=r(),[I,E]=r(!1),[U,v]=r(!1),j=(({projectId:e,baseUrl:r,persistTokens:n,sessionTokenViaCookie:s,storeLastAuthenticatedUser:o})=>t((()=>{if(e)return b({projectId:e,baseUrl:r,sessionTokenViaCookie:s,baseHeaders:m,persistTokens:n,storeLastAuthenticatedUser:o,autoRefresh:!0})}),[e,r,s]))({projectId:i,baseUrl:a,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:l});n((()=>{if(j){const e=j.onSessionTokenChange(k),t=j.onUserChange(h);return()=>{e(),t()}}}),[j]);const y=s(!1),R=o((()=>{y.current||(y.current=!0,v(!0),g(null==j?void 0:j.refresh)().then((()=>{v(!1)})))}),[j]),L=o((()=>{E(!0),g(j.me)().then((()=>{E(!1)}))}),[j]),S=t((()=>({fetchUser:L,user:p,isUserLoading:I,fetchSession:R,session:w,isSessionLoading:U,isSessionFetched:y.current,projectId:i,baseUrl:a,storeLastAuthenticatedUser:l,setUser:h,setSession:k,sdk:j})),[L,p,I,R,w,U,y.current,i,a,h,k,j]);return e.createElement(u.Provider,{value:S},f)},L=i((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:m,persistTokens:!1,hooks:{get beforeRequest(){return h.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,innerRef:s,tenant:o,theme:i,locale:a,debug:d,redirectUrl:c,client:l,form:u,autoFocus:g})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,ref:s,tenant:o,theme:i,locale:a,debug:d,client:l,form:u,"redirect-url":c,"auto-focus":g})}))),S=e.forwardRef((({flowId:s,onSuccess:i,onError:c,onReady:l,logger:g,tenant:f,theme:m,locale:p,debug:h,client:b,form:w,telemetryKey:k,redirectUrl:I,autoFocus:E,errorTransformer:U},v)=>{const[j,y]=r(null);a(v,(()=>j));const{projectId:R,baseUrl:S,storeLastAuthenticatedUser:T,sdk:C}=e.useContext(u),x=o((async e=>{await C.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),i&&i(e)}),[i]);n((()=>{const e=j;return null==e||e.addEventListener("success",x),c&&(null==e||e.addEventListener("error",c)),l&&(null==e||e.addEventListener("ready",l)),()=>{c&&(null==e||e.removeEventListener("error",c)),l&&(null==e||e.removeEventListener("ready",l)),null==e||e.removeEventListener("success",x)}}),[j,c,x]),n((()=>{const e=j;return null==e||e.addEventListener("success",x),()=>{null==e||e.removeEventListener("success",x)}}),[j,x]),n((()=>{const e=j;return c&&(null==e||e.addEventListener("error",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[j,c]),n((()=>{const e=j;return l&&(null==e||e.addEventListener("ready",l)),()=>{l&&(null==e||e.removeEventListener("error",l))}}),[j,l]),n((()=>{j&&(j.errorTransformer=U)}),[j,U]),n((()=>{j&&g&&(j.logger=g)}),[j,g]);const{form:A,client:O}=t((()=>({form:JSON.stringify(w||{}),client:JSON.stringify(b||{})})),[w,b]);return e.createElement("form",null,e.createElement(d,{fallback:null},e.createElement(L,{projectId:R,flowId:s,baseUrl:S,innerRef:y,tenant:f,theme:m,locale:p,debug:h,form:A,client:O,telemetryKey:k,redirectUrl:I,autoFocus:E,storeLastAuthenticatedUser:T})))})),T=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(S,Object.assign({},t,{flowId:"sign-up-or-in"})),A=i((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),O=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(A,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),J=i((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),P=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(J,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),F=i((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),q=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(F,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))})),V=i((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:s,widgetId:o,theme:i,debug:a})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":o,"base-url":r,theme:i,tenant:s,debug:a,ref:n})}))),N=e.forwardRef((({logger:t,tenant:s,theme:o,debug:i,widgetId:c},l)=>{const[g,f]=r(null);a(l,(()=>g));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(d,{fallback:null},e.createElement(V,{projectId:m,widgetId:c,baseUrl:p,innerRef:f,tenant:s,theme:o,debug:i}))}));var Y=()=>{const e=c(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const z=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,G={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],G);if("function"==typeof e[t])return()=>{throw Error(z("function"))};throw Error(z("attribute"))}},H=()=>{const{sdk:e}=Y();return t((()=>e||new Proxy(w(),G)),[e])},K=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:i}=Y(),a=s(r);t((()=>{a.current=r}),[r]);const d=!e&&!r;return t((()=>{d&&!i&&(a.current=!0)}),[i]),n((()=>{d&&o()}),[o]),{isSessionLoading:a.current,sessionToken:e,isAuthenticated:!!e}},M=()=>{const{user:e,fetchUser:o,isUserLoading:i,session:a}=Y(),[d,c]=r(!1),l=s(i),u=t((()=>!e&&!i&&a&&!d),[o,a,d]);return t((()=>{l.current=i}),[i]),t((()=>{u&&(l.current=!0)}),[u]),n((()=>{u&&(c(!0),o())}),[u]),{isUserLoading:l.current,user:e}};export{q as AccessKeyManagement,N as AuditManagement,R as AuthProvider,S as Descope,P as RoleManagement,T as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,m as baseHeaders,v as getJwtPermissions,j as getJwtRoles,I as getRefreshToken,k as getSessionToken,U as isRefreshTokenExpired,E as isSessionTokenExpired,y as refresh,H as useDescope,K as useSession,M as useUser};
2
2
  //# sourceMappingURL=index.esm.js.map