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