@descope/react-sdk 2.3.1 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +10 -10
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(e),a=r(t);const o=n.default.createContext(void 0),l=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.1"},d="undefined"!=typeof window;let c;const f=e=>{const t=a.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},g=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=g();const p=()=>d?null==c?void 0:c.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return s(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,baseStaticUrl:s,innerRef:a,tenant:o,theme:l,locale:u,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:b,restartOnError:m,storeLastAuthenticatedUser:h})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:a,tenant:o,theme:l,locale:u,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":b,"restart-on-error":m,"store-last-authenticated-user":h})}))),U=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:a,logger:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,restartOnError:U,errorTransformer:I,styleId:y},E)=>{const[S,v]=e.useState(null);e.useImperativeHandle(E,(()=>S));const{projectId:k,baseUrl:j,baseStaticUrl:L,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x,sdk:A}=n.default.useContext(o),O=e.useCallback((async e=>{await A.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),s&&(null==e||e.addEventListener("error",s)),a&&(null==e||e.addEventListener("ready",a)),()=>{s&&(null==e||e.removeEventListener("error",s)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",O)}}),[S,s,O]),e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),()=>{null==e||e.removeEventListener("success",O)}}),[S,O]),e.useEffect((()=>{const e=S;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[S,s]),e.useEffect((()=>{const e=S;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[S,a]),e.useEffect((()=>{S&&(S.errorTransformer=I)}),[S,I]),e.useEffect((()=>{S&&l&&(S.logger=l)}),[S,l]);const{form:C,client:P}=e.useMemo((()=>({form:JSON.stringify(g||{}),client:JSON.stringify(f||{})})),[g,f]);return n.default.createElement("form",null,n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(w,{projectId:k,flowId:t,baseUrl:j,baseStaticUrl:L,innerRef:v,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:y,validateOnBlur:h,restartOnError:U,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x})))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),R=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-profile-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,debug:s}))})),A=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/applications-portal-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),O=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));var C=()=>{const t=e.useContext(o);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const P=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,T={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],T);if("function"==typeof e[t])return()=>{throw Error(P("function"))};throw Error(P("attribute"))}};exports.AccessKeyManagement=k,exports.ApplicationsPortal=O,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,exports.SignInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=y,exports.UserProfile=x,exports.baseHeaders=i,exports.getJwtPermissions=m,exports.getJwtRoles=h,exports.getRefreshToken=b,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=b())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=b())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=C();return e.useMemo((()=>t||new Proxy(g(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=C(),a=e.useRef(r);e.useMemo((()=>{a.current=r}),[r]);const o=!t&&!r;return e.useMemo((()=>{o&&!n&&(a.current=!0)}),[n]),e.useEffect((()=>{o&&s()}),[s]),{isSessionLoading:a.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:a}=C(),[o,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var n=r(e),a=r(t);const o=n.default.createContext(void 0),l=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.2"},d="undefined"!=typeof window;let c;const f=e=>{const t=a.default(Object.assign({persistTokens:d,autoRefresh:d},e));return c=t,t},g=()=>f({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});c=g();const p=()=>d?null==c?void 0:c.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>d?null==c?void 0:c.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>null==c?void 0:c.getJwtPermissions(e,t))),h=u(((e=p(),t)=>null==c?void 0:c.getJwtRoles(e,t)));const w=e.lazy((async()=>((await Promise.resolve().then((function(){return s(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return c.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,baseStaticUrl:s,innerRef:a,tenant:o,theme:l,locale:u,debug:i,redirectUrl:d,client:c,form:f,styleId:g,autoFocus:p,validateOnBlur:b,restartOnError:m,storeLastAuthenticatedUser:h})=>n.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,"base-static-url":s,ref:a,tenant:o,theme:l,locale:u,debug:i,client:c,form:f,"style-id":g,"redirect-url":d,"auto-focus":p,"validate-on-blur":b,"restart-on-error":m,"store-last-authenticated-user":h})}))),U=n.default.forwardRef((({flowId:t,onSuccess:r,onError:s,onReady:a,logger:l,tenant:u,theme:i,locale:d,debug:c,client:f,form:g,telemetryKey:p,redirectUrl:b,autoFocus:m,validateOnBlur:h,restartOnError:U,errorTransformer:I,styleId:y},E)=>{const[S,v]=e.useState(null);e.useImperativeHandle(E,(()=>S));const{projectId:k,baseUrl:j,baseStaticUrl:L,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x,sdk:A}=n.default.useContext(o),O=e.useCallback((async e=>{await A.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),s&&(null==e||e.addEventListener("error",s)),a&&(null==e||e.addEventListener("ready",a)),()=>{s&&(null==e||e.removeEventListener("error",s)),a&&(null==e||e.removeEventListener("ready",a)),null==e||e.removeEventListener("success",O)}}),[S,s,O]),e.useEffect((()=>{const e=S;return null==e||e.addEventListener("success",O),()=>{null==e||e.removeEventListener("success",O)}}),[S,O]),e.useEffect((()=>{const e=S;return s&&(null==e||e.addEventListener("error",s)),()=>{s&&(null==e||e.removeEventListener("error",s))}}),[S,s]),e.useEffect((()=>{const e=S;return a&&(null==e||e.addEventListener("ready",a)),()=>{a&&(null==e||e.removeEventListener("error",a))}}),[S,a]),e.useEffect((()=>{S&&(S.errorTransformer=I)}),[S,I]),e.useEffect((()=>{S&&l&&(S.logger=l)}),[S,l]);const{form:C,client:P}=e.useMemo((()=>({form:JSON.stringify(g||{}),client:JSON.stringify(f||{})})),[g,f]);return n.default.createElement("form",null,n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(w,{projectId:k,flowId:t,baseUrl:j,baseStaticUrl:L,innerRef:v,tenant:u,theme:i,locale:d,debug:c,form:C,client:P,telemetryKey:p,redirectUrl:b,autoFocus:m,styleId:y,validateOnBlur:h,restartOnError:U,storeLastAuthenticatedUser:R,keepLastAuthenticatedUserAfterLogout:x})))})),I=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),y=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(I,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),E=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/role-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),S=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(E,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),v=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/access-key-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),k=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(v,{projectId:c,widgetId:l,baseUrl:f,baseStaticUrl:g,innerRef:d,tenant:r,theme:s,debug:a}))})),j=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/audit-management-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,tenant:a,widgetId:o,theme:l,debug:u,styleId:i})=>n.default.createElement("descope-audit-management-widget",{"project-id":e,"widget-id":o,"base-url":t,"base-static-url":r,theme:l,tenant:a,debug:u,"style-id":i,ref:s})}))),L=n.default.forwardRef((({logger:t,tenant:r,theme:s,debug:a,widgetId:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(j,{projectId:f,widgetId:l,baseUrl:g,baseStaticUrl:p,innerRef:c,tenant:r,theme:s,styleId:u,debug:a}))})),R=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/user-profile-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-user-profile-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),x=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,onLogout:l,styleId:u},i)=>{const[d,c]=e.useState(null);e.useImperativeHandle(i,(()=>d));const{projectId:f,baseUrl:g,baseStaticUrl:p}=n.default.useContext(o);return e.useEffect((()=>{d&&t&&(d.logger=t)}),[d,t]),e.useEffect((()=>{if(d&&l)return d.addEventListener("logout",l),()=>d.removeEventListener("logout",l)}),[d,l]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(R,{projectId:f,widgetId:a,baseUrl:g,baseStaticUrl:p,innerRef:c,theme:r,styleId:u,debug:s}))})),A=e.lazy((async()=>(await Promise.resolve().then((function(){return s(require("@descope/applications-portal-widget"))})),{default:({projectId:e,baseUrl:t,baseStaticUrl:r,innerRef:s,widgetId:a,theme:o,debug:l,styleId:u})=>n.default.createElement("descope-applications-portal-widget",{"project-id":e,"widget-id":a,"base-url":t,"base-static-url":r,theme:o,debug:l,"style-id":u,ref:s})}))),O=n.default.forwardRef((({logger:t,theme:r,debug:s,widgetId:a,styleId:l},u)=>{const[i,d]=e.useState(null);e.useImperativeHandle(u,(()=>i));const{projectId:c,baseUrl:f,baseStaticUrl:g}=n.default.useContext(o);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),n.default.createElement(e.Suspense,{fallback:null},n.default.createElement(A,{projectId:c,widgetId:a,baseUrl:f,baseStaticUrl:g,innerRef:d,theme:r,debug:s,styleId:l}))}));var C=()=>{const t=e.useContext(o);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const P=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,T={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],T);if("function"==typeof e[t])return()=>{throw Error(P("function"))};throw Error(P("attribute"))}};exports.AccessKeyManagement=k,exports.ApplicationsPortal=O,exports.AuditManagement=L,exports.AuthProvider=({projectId:t,baseUrl:r="",baseStaticUrl:s="",sessionTokenViaCookie:a=!1,persistTokens:u=!0,storeLastAuthenticatedUser:d=!0,keepLastAuthenticatedUserAfterLogout:c=!1,children:g})=>{const[p,b]=e.useState(),[m,h]=e.useState(),[w,U]=e.useState(!1),[I,y]=e.useState(!1),E=(({projectId:t,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistTokens:s,storeLastAuthenticatedUser:a,keepLastAuthenticatedUserAfterLogout:o,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,persistTokens:u,sessionTokenViaCookie:a,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c});e.useEffect((()=>{if(E){const e=E.onSessionTokenChange(h),t=E.onUserChange(b);return()=>{e(),t()}}}),[E]);const S=e.useRef(!1),v=e.useRef(!1),k=e.useCallback((()=>{S.current||(S.current=!0,y(!0),l(null==E?void 0:E.refresh)().then((()=>{y(!1)})))}),[E]),j=e.useCallback((()=>{v.current||(v.current=!0,U(!0),l(E.me)().then((()=>{U(!1)})))}),[E]),L=e.useMemo((()=>({fetchUser:j,user:p,isUserLoading:w,isUserFetched:v.current,fetchSession:k,session:m,isSessionLoading:I,isSessionFetched:S.current,projectId:t,baseUrl:r,baseStaticUrl:s,storeLastAuthenticatedUser:d,keepLastAuthenticatedUserAfterLogout:c,setUser:b,setSession:h,sdk:E})),[j,p,w,v.current,k,m,I,S.current,t,r,s,b,h,E]);return n.default.createElement(o.Provider,{value:L},g)},exports.Descope=U,exports.RoleManagement=S,exports.SignInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>n.default.createElement(U,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=y,exports.UserProfile=x,exports.baseHeaders=i,exports.getJwtPermissions=m,exports.getJwtRoles=h,exports.getRefreshToken=b,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=b())=>null==c?void 0:c.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>null==c?void 0:c.isJwtExpired(e),exports.refresh=(e=b())=>null==c?void 0:c.refresh(e),exports.useDescope=()=>{const{sdk:t}=C();return e.useMemo((()=>t||new Proxy(g(),T)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:s,isSessionFetched:n}=C(),a=e.useRef(r);e.useMemo((()=>{a.current=r}),[r]);const o=!t&&!r;return e.useMemo((()=>{o&&!n&&(a.current=!0)}),[n]),e.useEffect((()=>{o&&s()}),[s]),{isSessionLoading:a.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:s,session:n,isUserFetched:a}=C(),[o,l]=e.useState(!1),u=e.useRef(s),i=e.useMemo((()=>!t&&!s&&n&&!o),[r,n,o]);return e.useMemo((()=>{u.current=s}),[s]),e.useMemo((()=>{i&&!a&&(u.current=!0)}),[i,a]),e.useEffect((()=>{i&&(l(!0),r())}),[i]),{isUserLoading:u.current,user:t}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.1"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,restartOnError:m,storeLastAuthenticatedUser:h})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"restart-on-error":m,"store-last-authenticated-user":h})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,restartOnError:E,errorTransformer:L,styleId:j},v)=>{const[R,A]=r(null);i(v,(()=>R));const{projectId:C,baseUrl:x,baseStaticUrl:T,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F,sdk:J}=e.useContext(u),P=o((async e=>{await J.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=R;return null==e||e.addEventListener("success",P),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",P)}}),[R,d,P]),s((()=>{const e=R;return null==e||e.addEventListener("success",P),()=>{null==e||e.removeEventListener("success",P)}}),[R,P]),s((()=>{const e=R;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[R,d]),s((()=>{const e=R;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[R,c]),s((()=>{R&&(R.errorTransformer=L)}),[R,L]),s((()=>{R&&g&&(R.logger=g)}),[R,g]);const{form:q,client:V}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:C,flowId:n,baseUrl:x,baseStaticUrl:T,innerRef:A,tenant:f,theme:b,locale:p,debug:m,form:q,client:V,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:j,validateOnBlur:k,restartOnError:E,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
|
|
1
|
+
import e,{useMemo as t,useState as r,useEffect as s,useRef as n,useCallback as o,lazy as a,useImperativeHandle as i,Suspense as l,useContext as d}from"react";import c from"@descope/web-js-sdk";const u=e.createContext(void 0),g=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},f=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},b={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.3.2"},p="undefined"!=typeof window;let m;const h=e=>{const t=c(Object.assign({persistTokens:p,autoRefresh:p},e));return m=t,t},U=()=>h({projectId:"temp pid",persistTokens:!1,autoRefresh:!1,storeLastAuthenticatedUser:!1});m=U();const w=()=>p?null==m?void 0:m.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>p?null==m?void 0:m.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=(e=w())=>null==m?void 0:m.isJwtExpired(e),k=(e=I())=>null==m?void 0:m.isJwtExpired(e),E=f(((e=w(),t)=>null==m?void 0:m.getJwtPermissions(e,t))),L=f(((e=w(),t)=>null==m?void 0:m.getJwtRoles(e,t))),j=(e=I())=>null==m?void 0:m.refresh(e);const v=({projectId:a,baseUrl:i="",baseStaticUrl:l="",sessionTokenViaCookie:d=!1,persistTokens:c=!0,storeLastAuthenticatedUser:f=!0,keepLastAuthenticatedUserAfterLogout:p=!1,children:m})=>{const[U,w]=r(),[I,y]=r(),[k,E]=r(!1),[L,j]=r(!1),v=(({projectId:e,baseUrl:r,persistTokens:s,sessionTokenViaCookie:n,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:b,persistTokens:s,storeLastAuthenticatedUser:o,keepLastAuthenticatedUserAfterLogout:a,autoRefresh:!0})}),[e,r,n]))({projectId:a,baseUrl:i,persistTokens:c,sessionTokenViaCookie:d,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p});s((()=>{if(v){const e=v.onSessionTokenChange(y),t=v.onUserChange(w);return()=>{e(),t()}}}),[v]);const S=n(!1),R=n(!1),A=o((()=>{S.current||(S.current=!0,j(!0),g(null==v?void 0:v.refresh)().then((()=>{j(!1)})))}),[v]),C=o((()=>{R.current||(R.current=!0,E(!0),g(v.me)().then((()=>{E(!1)})))}),[v]),x=t((()=>({fetchUser:C,user:U,isUserLoading:k,isUserFetched:R.current,fetchSession:A,session:I,isSessionLoading:L,isSessionFetched:S.current,projectId:a,baseUrl:i,baseStaticUrl:l,storeLastAuthenticatedUser:f,keepLastAuthenticatedUserAfterLogout:p,setUser:w,setSession:y,sdk:v})),[C,U,k,R.current,A,I,L,S.current,a,i,l,w,y,v]);return e.createElement(u.Provider,{value:x},m)},S=a((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:b,persistTokens:!1,hooks:{get beforeRequest(){return m.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:s,baseStaticUrl:n,innerRef:o,tenant:a,theme:i,locale:l,debug:d,redirectUrl:c,client:u,form:g,styleId:f,autoFocus:b,validateOnBlur:p,restartOnError:m,storeLastAuthenticatedUser:h})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":s,"base-static-url":n,ref:o,tenant:a,theme:i,locale:l,debug:d,client:u,form:g,"style-id":f,"redirect-url":c,"auto-focus":b,"validate-on-blur":p,"restart-on-error":m,"store-last-authenticated-user":h})}))),R=e.forwardRef((({flowId:n,onSuccess:a,onError:d,onReady:c,logger:g,tenant:f,theme:b,locale:p,debug:m,client:h,form:U,telemetryKey:w,redirectUrl:I,autoFocus:y,validateOnBlur:k,restartOnError:E,errorTransformer:L,styleId:j},v)=>{const[R,A]=r(null);i(v,(()=>R));const{projectId:C,baseUrl:x,baseStaticUrl:T,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F,sdk:J}=e.useContext(u),P=o((async e=>{await J.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),a&&a(e)}),[a]);s((()=>{const e=R;return null==e||e.addEventListener("success",P),d&&(null==e||e.addEventListener("error",d)),c&&(null==e||e.addEventListener("ready",c)),()=>{d&&(null==e||e.removeEventListener("error",d)),c&&(null==e||e.removeEventListener("ready",c)),null==e||e.removeEventListener("success",P)}}),[R,d,P]),s((()=>{const e=R;return null==e||e.addEventListener("success",P),()=>{null==e||e.removeEventListener("success",P)}}),[R,P]),s((()=>{const e=R;return d&&(null==e||e.addEventListener("error",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[R,d]),s((()=>{const e=R;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("error",c))}}),[R,c]),s((()=>{R&&(R.errorTransformer=L)}),[R,L]),s((()=>{R&&g&&(R.logger=g)}),[R,g]);const{form:q,client:V}=t((()=>({form:JSON.stringify(U||{}),client:JSON.stringify(h||{})})),[U,h]);return e.createElement("form",null,e.createElement(l,{fallback:null},e.createElement(S,{projectId:C,flowId:n,baseUrl:x,baseStaticUrl:T,innerRef:A,tenant:f,theme:b,locale:p,debug:m,form:q,client:V,telemetryKey:w,redirectUrl:I,autoFocus:y,styleId:j,validateOnBlur:k,restartOnError:E,storeLastAuthenticatedUser:O,keepLastAuthenticatedUserAfterLogout:F})))})),A=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-in"})),C=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up"})),x=t=>e.createElement(R,Object.assign({},t,{flowId:"sign-up-or-in"})),T=a((async()=>(await import("@descope/user-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),O=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(T,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),F=a((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),J=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(F,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),P=a((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),q=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(P,{projectId:b,widgetId:d,baseUrl:p,baseStaticUrl:m,innerRef:f,tenant:n,theme:o,debug:a}))})),V=a((async()=>(await import("@descope/audit-management-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,tenant:o,widgetId:a,theme:i,debug:l,styleId:d})=>e.createElement("descope-audit-management-widget",{"project-id":t,"widget-id":a,"base-url":r,"base-static-url":s,theme:i,tenant:o,debug:l,"style-id":d,ref:n})}))),B=e.forwardRef((({logger:t,tenant:n,theme:o,debug:a,widgetId:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(l,{fallback:null},e.createElement(V,{projectId:p,widgetId:d,baseUrl:m,baseStaticUrl:h,innerRef:b,tenant:n,theme:o,styleId:c,debug:a}))})),N=a((async()=>(await import("@descope/user-profile-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-user-profile-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),Y=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,onLogout:d,styleId:c},g)=>{const[f,b]=r(null);i(g,(()=>f));const{projectId:p,baseUrl:m,baseStaticUrl:h}=e.useContext(u);return s((()=>{f&&t&&(f.logger=t)}),[f,t]),s((()=>{if(f&&d)return f.addEventListener("logout",d),()=>f.removeEventListener("logout",d)}),[f,d]),e.createElement(l,{fallback:null},e.createElement(N,{projectId:p,widgetId:a,baseUrl:m,baseStaticUrl:h,innerRef:b,theme:n,styleId:c,debug:o}))})),z=a((async()=>(await import("@descope/applications-portal-widget"),{default:({projectId:t,baseUrl:r,baseStaticUrl:s,innerRef:n,widgetId:o,theme:a,debug:i,styleId:l})=>e.createElement("descope-applications-portal-widget",{"project-id":t,"widget-id":o,"base-url":r,"base-static-url":s,theme:a,debug:i,"style-id":l,ref:n})}))),G=e.forwardRef((({logger:t,theme:n,debug:o,widgetId:a,styleId:d},c)=>{const[g,f]=r(null);i(c,(()=>g));const{projectId:b,baseUrl:p,baseStaticUrl:m}=e.useContext(u);return s((()=>{g&&t&&(g.logger=t)}),[g,t]),e.createElement(l,{fallback:null},e.createElement(z,{projectId:b,widgetId:a,baseUrl:p,baseStaticUrl:m,innerRef:f,theme:n,debug:o,styleId:d}))}));var H=()=>{const e=d(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const K=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,M={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],M);if("function"==typeof e[t])return()=>{throw Error(K("function"))};throw Error(K("attribute"))}},$=()=>{const{sdk:e}=H();return t((()=>e||new Proxy(U(),M)),[e])},D=()=>{const{session:e,isSessionLoading:r,fetchSession:o,isSessionFetched:a}=H(),i=n(r);t((()=>{i.current=r}),[r]);const l=!e&&!r;return t((()=>{l&&!a&&(i.current=!0)}),[a]),s((()=>{l&&o()}),[o]),{isSessionLoading:i.current,sessionToken:e,isAuthenticated:!!e}},Q=()=>{const{user:e,fetchUser:o,isUserLoading:a,session:i,isUserFetched:l}=H(),[d,c]=r(!1),u=n(a),g=t((()=>!e&&!a&&i&&!d),[o,i,d]);return t((()=>{u.current=a}),[a]),t((()=>{g&&!l&&(u.current=!0)}),[g,l]),s((()=>{g&&(c(!0),o())}),[g]),{isUserLoading:u.current,user:e}};export{q as AccessKeyManagement,G as ApplicationsPortal,B as AuditManagement,v as AuthProvider,R as Descope,J as RoleManagement,A as SignInFlow,C as SignUpFlow,x as SignUpOrInFlow,O as UserManagement,Y as UserProfile,b as baseHeaders,E as getJwtPermissions,L as getJwtRoles,I as getRefreshToken,w as getSessionToken,k as isRefreshTokenExpired,y as isSessionTokenExpired,j as refresh,$ as useDescope,D as useSession,Q as useUser};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|