@descope/react-sdk 0.0.0-next-02058a8d-20230213 → 0.0.0-next-e97755a5-20230213

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 s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var o=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,o.get?o:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var r=s(e),n=s(t);const u=r.default.createContext(void 0),i={"x-descope-sdk-name":"react","x-descope-sdk-version":"0.0.0-next-02058a8d-20230213"},a="undefined"!=typeof window,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)},c=e=>(...t)=>{let s;try{s=e(...t)}catch(e){console.error(e)}return s};let d;const f=e=>{const t=n.default({...e,persistTokens:a,autoRefresh:a});return d=t,t};d=f({projectId:"temp pid"});const p=()=>a?d?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),g=c(((e=p(),t)=>d?.getJwtPermissions(e,t))),k=c(((e=p(),t)=>d?.getJwtRoles(e,t)));const m=({projectId:t,baseUrl:s,sessionTokenViaCookie:o,children:n})=>{const[a,c]=e.useState(),[d,p]=e.useState(),[g,k]=e.useState(!1),[m,h]=e.useState(!1),b=(({projectId:t,baseUrl:s,sessionTokenViaCookie:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:s,sessionTokenViaCookie:o,baseHeaders:i,persistToken:!0,autoRefresh:!0})}),[t,s,o]))({projectId:t,baseUrl:s,sessionTokenViaCookie:o});e.useEffect((()=>{if(b){const e=b.onSessionTokenChange(p),t=b.onUserChange(c);return()=>{e(),t()}}}),[b]);const w=e.useCallback((()=>{h(!0),l(b?.refresh)().then((()=>{h(!1)}))}),[b]),S=e.useCallback((()=>{k(!0),l(b.me)().then((()=>{k(!1)}))}),[b]),v=e.useCallback(l(b?.logoutAll),[b]),y=e.useCallback(l(b?.logout),[b]),E=e.useMemo((()=>({fetchUser:S,user:a,isUserLoading:g,fetchSession:w,session:d,isSessionLoading:m,logout:y,logoutAll:v,projectId:t,baseUrl:s,setUser:c,setSession:p,sdk:b})),[S,a,g,w,d,m,y,v,t,s,c,p,b]);return r.default.createElement(u.Provider,{value:E},n)};m.defaultProps={baseUrl:"",children:void 0,sessionTokenViaCookie:!1};const h=e.lazy((async()=>((await Promise.resolve().then((function(){return o(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i},{default:({projectId:e,flowId:t,baseUrl:s,innerRef:o,tenant:n,theme:u,debug:i,telemetryKey:a})=>r.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":s,ref:o,tenant:n,theme:u,debug:i,telemetryKey:a})}))),b=r.default.forwardRef((({flowId:t,onSuccess:s,onError:o,tenant:n,theme:i,debug:a,telemetryKey:l},c)=>{const[d,f]=e.useState(null);e.useImperativeHandle(c,(()=>d));const{projectId:p,baseUrl:g,setUser:k,setSession:m,sdk:b}=r.default.useContext(u),w=e.useCallback((async e=>{k(e.detail?.user);const t=e.detail?.sessionJwt;m(t),await b.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),s&&s(e)}),[k,m,s]);return e.useEffect((()=>{const e=d;return e?.addEventListener("success",w),o&&e?.addEventListener("error",o),()=>{o&&e?.removeEventListener("error",o),e?.removeEventListener("success",w)}}),[d,o,w]),r.default.createElement("form",null,r.default.createElement(e.Suspense,{fallback:null},r.default.createElement(h,{projectId:p,flowId:t,baseUrl:g,innerRef:f,tenant:n,theme:i,debug:a,telemetryKey:l})))}));b.defaultProps={onError:void 0,onSuccess:void 0};var w=()=>{const t=e.useContext(u);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};exports.AuthProvider=m,exports.Descope=b,exports.SignInFlow=e=>r.default.createElement(b,{...e,flowId:"sign-in"}),exports.SignUpFlow=e=>r.default.createElement(b,{...e,flowId:"sign-up"}),exports.SignUpOrInFlow=e=>r.default.createElement(b,{...e,flowId:"sign-up-or-in"}),exports.getJwtPermissions=g,exports.getJwtRoles=k,exports.getRefreshToken=()=>a?d?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),exports.getSessionToken=p,exports.useDescope=()=>{const{logout:t,logoutAll:s}=w();return e.useMemo((()=>({logoutAll:s,logout:t})),[s,t])},exports.useSession=()=>{const{session:t,isSessionLoading:s,fetchSession:o}=w(),r=e.useRef(s);return e.useMemo((()=>{r.current=s}),[s]),e.useMemo((()=>{t||s||(r.current=!0)}),[o]),e.useEffect((()=>{t||s||o()}),[o]),{isSessionLoading:r.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:s,isUserLoading:o,session:r}=w(),[n,u]=e.useState(!1),i=e.useRef(o),a=e.useMemo((()=>!t&&!o&&r&&!n),[s,r,n]);return e.useMemo((()=>{i.current=o}),[o]),e.useMemo((()=>{a&&(i.current=!0)}),[a]),e.useEffect((()=>{a&&(u(!0),s())}),[a]),{isUserLoading:i.current,user:t}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@descope/web-js-sdk");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var o=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,o.get?o:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var r=s(e),n=s(t);const u=r.default.createContext(void 0),i={"x-descope-sdk-name":"react","x-descope-sdk-version":"0.0.0-next-e97755a5-20230213"},a="undefined"!=typeof window,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)},c=e=>(...t)=>{let s;try{s=e(...t)}catch(e){console.error(e)}return s};let d;const f=e=>{const t=n.default({...e,persistTokens:a,autoRefresh:a});return d=t,t};d=f({projectId:"temp pid"});const p=()=>a?d?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),g=c(((e=p(),t)=>d?.getJwtPermissions(e,t))),k=c(((e=p(),t)=>d?.getJwtRoles(e,t)));const m=({projectId:t,baseUrl:s,sessionTokenViaCookie:o,children:n})=>{const[a,c]=e.useState(),[d,p]=e.useState(),[g,k]=e.useState(!1),[m,h]=e.useState(!1),b=(({projectId:t,baseUrl:s,sessionTokenViaCookie:o})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:s,sessionTokenViaCookie:o,baseHeaders:i,persistToken:!0,autoRefresh:!0})}),[t,s,o]))({projectId:t,baseUrl:s,sessionTokenViaCookie:o});e.useEffect((()=>{if(b){const e=b.onSessionTokenChange(p),t=b.onUserChange(c);return()=>{e(),t()}}}),[b]);const w=e.useCallback((()=>{h(!0),l(b?.refresh)().then((()=>{h(!1)}))}),[b]),S=e.useCallback((()=>{k(!0),l(b.me)().then((()=>{k(!1)}))}),[b]),v=e.useCallback(l(b?.logoutAll),[b]),y=e.useCallback(l(b?.logout),[b]),E=e.useMemo((()=>({fetchUser:S,user:a,isUserLoading:g,fetchSession:w,session:d,isSessionLoading:m,logout:y,logoutAll:v,projectId:t,baseUrl:s,setUser:c,setSession:p,sdk:b})),[S,a,g,w,d,m,y,v,t,s,c,p,b]);return r.default.createElement(u.Provider,{value:E},n)};m.defaultProps={baseUrl:"",children:void 0,sessionTokenViaCookie:!1};const h=e.lazy((async()=>((await Promise.resolve().then((function(){return o(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i},{default:({projectId:e,flowId:t,baseUrl:s,innerRef:o,tenant:n,theme:u,debug:i,telemetryKey:a})=>r.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":s,ref:o,tenant:n,theme:u,debug:i,telemetryKey:a})}))),b=r.default.forwardRef((({flowId:t,onSuccess:s,onError:o,tenant:n,theme:i,debug:a,telemetryKey:l},c)=>{const[d,f]=e.useState(null);e.useImperativeHandle(c,(()=>d));const{projectId:p,baseUrl:g,setUser:k,setSession:m,sdk:b}=r.default.useContext(u),w=e.useCallback((async e=>{k(e.detail?.user);const t=e.detail?.sessionJwt;m(t),await b.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),s&&s(e)}),[k,m,s]);return e.useEffect((()=>{const e=d;return e?.addEventListener("success",w),o&&e?.addEventListener("error",o),()=>{o&&e?.removeEventListener("error",o),e?.removeEventListener("success",w)}}),[d,o,w]),r.default.createElement("form",null,r.default.createElement(e.Suspense,{fallback:null},r.default.createElement(h,{projectId:p,flowId:t,baseUrl:g,innerRef:f,tenant:n,theme:i,debug:a,telemetryKey:l})))}));b.defaultProps={onError:void 0,onSuccess:void 0};var w=()=>{const t=e.useContext(u);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};exports.AuthProvider=m,exports.Descope=b,exports.SignInFlow=e=>r.default.createElement(b,{...e,flowId:"sign-in"}),exports.SignUpFlow=e=>r.default.createElement(b,{...e,flowId:"sign-up"}),exports.SignUpOrInFlow=e=>r.default.createElement(b,{...e,flowId:"sign-up-or-in"}),exports.getJwtPermissions=g,exports.getJwtRoles=k,exports.getRefreshToken=()=>a?d?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),exports.getSessionToken=p,exports.useDescope=()=>{const{logout:t,logoutAll:s}=w();return e.useMemo((()=>({logoutAll:s,logout:t})),[s,t])},exports.useSession=()=>{const{session:t,isSessionLoading:s,fetchSession:o}=w(),r=e.useRef(s);return e.useMemo((()=>{r.current=s}),[s]),e.useMemo((()=>{t||s||(r.current=!0)}),[o]),e.useEffect((()=>{t||s||o()}),[o]),{isSessionLoading:r.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:s,isUserLoading:o,session:r}=w(),[n,u]=e.useState(!1),i=e.useRef(o),a=e.useMemo((()=>!t&&!o&&r&&!n),[s,r,n]);return e.useMemo((()=>{i.current=o}),[o]),e.useMemo((()=>{a&&(i.current=!0)}),[a]),e.useEffect((()=>{a&&(u(!0),s())}),[a]),{isUserLoading:i.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 o,useEffect as s,useCallback as n,lazy as r,useImperativeHandle as i,Suspense as c,useContext as a,useRef as l}from"react";import d from"@descope/web-js-sdk";const u=e.createContext(void 0),f={"x-descope-sdk-name":"react","x-descope-sdk-version":"0.0.0-next-02058a8d-20230213"},p="undefined"!=typeof window,h=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)},m=e=>(...t)=>{let o;try{o=e(...t)}catch(e){console.error(e)}return o};let g;const k=e=>{const t=d({...e,persistTokens:p,autoRefresh:p});return g=t,t};g=k({projectId:"temp pid"});const w=()=>p?g?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>p?g?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),v=m(((e=w(),t)=>g?.getJwtPermissions(e,t))),U=m(((e=w(),t)=>g?.getJwtRoles(e,t)));const y=({projectId:r,baseUrl:i,sessionTokenViaCookie:c,children:a})=>{const[l,d]=o(),[p,m]=o(),[g,w]=o(!1),[b,v]=o(!1),U=(({projectId:e,baseUrl:o,sessionTokenViaCookie:s})=>t((()=>{if(e)return k({projectId:e,baseUrl:o,sessionTokenViaCookie:s,baseHeaders:f,persistToken:!0,autoRefresh:!0})}),[e,o,s]))({projectId:r,baseUrl:i,sessionTokenViaCookie:c});s((()=>{if(U){const e=U.onSessionTokenChange(m),t=U.onUserChange(d);return()=>{e(),t()}}}),[U]);const y=n((()=>{v(!0),h(U?.refresh)().then((()=>{v(!1)}))}),[U]),E=n((()=>{w(!0),h(U.me)().then((()=>{w(!1)}))}),[U]),I=n(h(U?.logoutAll),[U]),S=n(h(U?.logout),[U]),j=t((()=>({fetchUser:E,user:l,isUserLoading:g,fetchSession:y,session:p,isSessionLoading:b,logout:S,logoutAll:I,projectId:r,baseUrl:i,setUser:d,setSession:m,sdk:U})),[E,l,g,y,p,b,S,I,r,i,d,m,U]);return e.createElement(u.Provider,{value:j},a)};y.defaultProps={baseUrl:"",children:void 0,sessionTokenViaCookie:!1};const E=r((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:f},{default:({projectId:t,flowId:o,baseUrl:s,innerRef:n,tenant:r,theme:i,debug:c,telemetryKey:a})=>e.createElement("descope-wc",{"project-id":t,"flow-id":o,"base-url":s,ref:n,tenant:r,theme:i,debug:c,telemetryKey:a})}))),I=e.forwardRef((({flowId:t,onSuccess:r,onError:a,tenant:l,theme:d,debug:f,telemetryKey:p},h)=>{const[m,g]=o(null);i(h,(()=>m));const{projectId:k,baseUrl:w,setUser:b,setSession:v,sdk:U}=e.useContext(u),y=n((async e=>{b(e.detail?.user);const t=e.detail?.sessionJwt;v(t),await U.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[b,v,r]);return s((()=>{const e=m;return e?.addEventListener("success",y),a&&e?.addEventListener("error",a),()=>{a&&e?.removeEventListener("error",a),e?.removeEventListener("success",y)}}),[m,a,y]),e.createElement("form",null,e.createElement(c,{fallback:null},e.createElement(E,{projectId:k,flowId:t,baseUrl:w,innerRef:g,tenant:l,theme:d,debug:f,telemetryKey:p})))}));I.defaultProps={onError:void 0,onSuccess:void 0};const S=t=>e.createElement(I,{...t,flowId:"sign-in"}),j=t=>e.createElement(I,{...t,flowId:"sign-up"}),C=t=>e.createElement(I,{...t,flowId:"sign-up-or-in"});var R=()=>{const e=a(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const T=()=>{const{logout:e,logoutAll:o}=R();return t((()=>({logoutAll:o,logout:e})),[o,e])},L=()=>{const{session:e,isSessionLoading:o,fetchSession:n}=R(),r=l(o);return t((()=>{r.current=o}),[o]),t((()=>{e||o||(r.current=!0)}),[n]),s((()=>{e||o||n()}),[n]),{isSessionLoading:r.current,sessionToken:e,isAuthenticated:!!e}},x=()=>{const{user:e,fetchUser:n,isUserLoading:r,session:i}=R(),[c,a]=o(!1),d=l(r),u=t((()=>!e&&!r&&i&&!c),[n,i,c]);return t((()=>{d.current=r}),[r]),t((()=>{u&&(d.current=!0)}),[u]),s((()=>{u&&(a(!0),n())}),[u]),{isUserLoading:d.current,user:e}};export{y as AuthProvider,I as Descope,S as SignInFlow,j as SignUpFlow,C as SignUpOrInFlow,v as getJwtPermissions,U as getJwtRoles,b as getRefreshToken,w as getSessionToken,T as useDescope,L as useSession,x as useUser};
1
+ import e,{useMemo as t,useState as o,useEffect as s,useCallback as n,lazy as r,useImperativeHandle as i,Suspense as c,useContext as a,useRef as l}from"react";import d from"@descope/web-js-sdk";const u=e.createContext(void 0),f={"x-descope-sdk-name":"react","x-descope-sdk-version":"0.0.0-next-e97755a5-20230213"},p="undefined"!=typeof window,h=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)},m=e=>(...t)=>{let o;try{o=e(...t)}catch(e){console.error(e)}return o};let g;const k=e=>{const t=d({...e,persistTokens:p,autoRefresh:p});return g=t,t};g=k({projectId:"temp pid"});const w=()=>p?g?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>p?g?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),v=m(((e=w(),t)=>g?.getJwtPermissions(e,t))),U=m(((e=w(),t)=>g?.getJwtRoles(e,t)));const y=({projectId:r,baseUrl:i,sessionTokenViaCookie:c,children:a})=>{const[l,d]=o(),[p,m]=o(),[g,w]=o(!1),[b,v]=o(!1),U=(({projectId:e,baseUrl:o,sessionTokenViaCookie:s})=>t((()=>{if(e)return k({projectId:e,baseUrl:o,sessionTokenViaCookie:s,baseHeaders:f,persistToken:!0,autoRefresh:!0})}),[e,o,s]))({projectId:r,baseUrl:i,sessionTokenViaCookie:c});s((()=>{if(U){const e=U.onSessionTokenChange(m),t=U.onUserChange(d);return()=>{e(),t()}}}),[U]);const y=n((()=>{v(!0),h(U?.refresh)().then((()=>{v(!1)}))}),[U]),E=n((()=>{w(!0),h(U.me)().then((()=>{w(!1)}))}),[U]),I=n(h(U?.logoutAll),[U]),S=n(h(U?.logout),[U]),j=t((()=>({fetchUser:E,user:l,isUserLoading:g,fetchSession:y,session:p,isSessionLoading:b,logout:S,logoutAll:I,projectId:r,baseUrl:i,setUser:d,setSession:m,sdk:U})),[E,l,g,y,p,b,S,I,r,i,d,m,U]);return e.createElement(u.Provider,{value:j},a)};y.defaultProps={baseUrl:"",children:void 0,sessionTokenViaCookie:!1};const E=r((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:f},{default:({projectId:t,flowId:o,baseUrl:s,innerRef:n,tenant:r,theme:i,debug:c,telemetryKey:a})=>e.createElement("descope-wc",{"project-id":t,"flow-id":o,"base-url":s,ref:n,tenant:r,theme:i,debug:c,telemetryKey:a})}))),I=e.forwardRef((({flowId:t,onSuccess:r,onError:a,tenant:l,theme:d,debug:f,telemetryKey:p},h)=>{const[m,g]=o(null);i(h,(()=>m));const{projectId:k,baseUrl:w,setUser:b,setSession:v,sdk:U}=e.useContext(u),y=n((async e=>{b(e.detail?.user);const t=e.detail?.sessionJwt;v(t),await U.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[b,v,r]);return s((()=>{const e=m;return e?.addEventListener("success",y),a&&e?.addEventListener("error",a),()=>{a&&e?.removeEventListener("error",a),e?.removeEventListener("success",y)}}),[m,a,y]),e.createElement("form",null,e.createElement(c,{fallback:null},e.createElement(E,{projectId:k,flowId:t,baseUrl:w,innerRef:g,tenant:l,theme:d,debug:f,telemetryKey:p})))}));I.defaultProps={onError:void 0,onSuccess:void 0};const S=t=>e.createElement(I,{...t,flowId:"sign-in"}),j=t=>e.createElement(I,{...t,flowId:"sign-up"}),C=t=>e.createElement(I,{...t,flowId:"sign-up-or-in"});var R=()=>{const e=a(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const T=()=>{const{logout:e,logoutAll:o}=R();return t((()=>({logoutAll:o,logout:e})),[o,e])},L=()=>{const{session:e,isSessionLoading:o,fetchSession:n}=R(),r=l(o);return t((()=>{r.current=o}),[o]),t((()=>{e||o||(r.current=!0)}),[n]),s((()=>{e||o||n()}),[n]),{isSessionLoading:r.current,sessionToken:e,isAuthenticated:!!e}},x=()=>{const{user:e,fetchUser:n,isUserLoading:r,session:i}=R(),[c,a]=o(!1),d=l(r),u=t((()=>!e&&!r&&i&&!c),[n,i,c]);return t((()=>{d.current=r}),[r]),t((()=>{u&&(d.current=!0)}),[u]),s((()=>{u&&(a(!0),n())}),[u]),{isUserLoading:d.current,user:e}};export{y as AuthProvider,I as Descope,S as SignInFlow,j as SignUpFlow,C as SignUpOrInFlow,v as getJwtPermissions,U as getJwtRoles,b as getRefreshToken,w as getSessionToken,T as useDescope,L as useSession,x as useUser};
2
2
  //# sourceMappingURL=index.esm.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/react-sdk",
3
- "version": "0.0.0-next-02058a8d-20230213",
3
+ "version": "0.0.0-next-e97755a5-20230213",
4
4
  "description": "Descope React SDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -36,7 +36,7 @@
36
36
  ]
37
37
  },
38
38
  "dependencies": {
39
- "@descope/web-component": "0.1.1",
39
+ "@descope/web-component": "0.1.2",
40
40
  "react-router-dom": "6.8.0"
41
41
  },
42
42
  "devDependencies": {