@descope/react-sdk 2.0.12 → 2.0.14
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/README.md +3 -3
- 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 +5 -5
package/README.md
CHANGED
|
@@ -318,7 +318,7 @@ Important Note:
|
|
|
318
318
|
|
|
319
319
|
#### User Management
|
|
320
320
|
|
|
321
|
-
The `
|
|
321
|
+
The `UserManagement` widget will let you embed a user table in your site to view and take action.
|
|
322
322
|
|
|
323
323
|
The widget lets you:
|
|
324
324
|
|
|
@@ -349,7 +349,7 @@ Example:
|
|
|
349
349
|
|
|
350
350
|
#### Role Management
|
|
351
351
|
|
|
352
|
-
The `
|
|
352
|
+
The `RoleManagement` widget will let you embed a role table in your site to view and take action.
|
|
353
353
|
|
|
354
354
|
The widget lets you:
|
|
355
355
|
|
|
@@ -378,7 +378,7 @@ Example:
|
|
|
378
378
|
|
|
379
379
|
#### Access Key Management
|
|
380
380
|
|
|
381
|
-
The `
|
|
381
|
+
The `AccessKeyManagement` widget will let you embed an access key table in your site to view and take action.
|
|
382
382
|
|
|
383
383
|
The widget lets you:
|
|
384
384
|
|
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 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 u=s.default.createContext(void 0),a=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},l=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.
|
|
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 u=s.default.createContext(void 0),a=e=>(...t)=>{if(!e)throw Error("You can only use this function after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component");return e(...t)},l=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r},i={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.0.14"},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 g=()=>c?null==d?void 0:d.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),p=()=>c?null==d?void 0:d.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=l(((e=g(),t)=>null==d?void 0:d.getJwtPermissions(e,t))),b=l(((e=g(),t)=>null==d?void 0:d.getJwtRoles(e,t)));const h=e.lazy((async()=>((await Promise.resolve().then((function(){return n(require("@descope/web-component"))}))).default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return d.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:e,flowId:t,baseUrl:r,innerRef:n,tenant:o,theme:u,locale:a,debug:l,redirectUrl:i,client:c,form:d,autoFocus:f})=>s.default.createElement("descope-wc",{"project-id":e,"flow-id":t,"base-url":r,ref:n,tenant:o,theme:u,locale:a,debug:l,client:c,form:d,"redirect-url":i,"auto-focus":f})}))),w=s.default.forwardRef((({flowId:t,onSuccess:r,onError:n,onReady:o,logger:a,tenant:l,theme:i,locale:c,debug:d,client:f,form:g,telemetryKey:p,redirectUrl:m,autoFocus:b,errorTransformer:w},v)=>{const[E,k]=e.useState(null);e.useImperativeHandle(v,(()=>E));const{projectId:I,baseUrl:y,sdk:j}=s.default.useContext(u),S=e.useCallback((async e=>{await j.httpClient.hooks.afterRequest({},new Response(JSON.stringify(e.detail))),r&&r(e)}),[r]);e.useEffect((()=>{const e=E;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)}}),[E,n,S]),e.useEffect((()=>{const e=E;return null==e||e.addEventListener("success",S),()=>{null==e||e.removeEventListener("success",S)}}),[E,S]),e.useEffect((()=>{const e=E;return n&&(null==e||e.addEventListener("error",n)),()=>{n&&(null==e||e.removeEventListener("error",n))}}),[E,n]),e.useEffect((()=>{const e=E;return o&&(null==e||e.addEventListener("ready",o)),()=>{o&&(null==e||e.removeEventListener("error",o))}}),[E,o]),e.useEffect((()=>{E&&(E.errorTransformer=w)}),[E,w]),e.useEffect((()=>{E&&a&&(E.logger=a)}),[E,a]);const{form:U,client:R}=e.useMemo((()=>({form:JSON.stringify(g||{}),client:JSON.stringify(f||{})})),[g,f]);return s.default.createElement("form",null,s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(h,{projectId:I,flowId:t,baseUrl:y,innerRef:k,tenant:l,theme:i,locale:c,debug:d,form:U,client:R,telemetryKey:p,redirectUrl:m,autoFocus:b})))})),v=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:u,debug:a})=>s.default.createElement("descope-user-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:u,tenant:n,debug:a,ref:r})}))),E=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:a},l)=>{const[i,c]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:d,baseUrl:f}=s.default.useContext(u);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(v,{projectId:d,widgetId:a,baseUrl:f,innerRef:c,tenant:r,theme:n,debug:o}))})),k=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:u,debug:a})=>s.default.createElement("descope-role-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:u,tenant:n,debug:a,ref:r})}))),I=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:a},l)=>{const[i,c]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:d,baseUrl:f}=s.default.useContext(u);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(k,{projectId:d,widgetId:a,baseUrl:f,innerRef:c,tenant:r,theme:n,debug:o}))})),y=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:u,debug:a})=>s.default.createElement("descope-access-key-management-widget",{"project-id":e,"widget-id":o,"base-url":t,theme:u,tenant:n,debug:a,ref:r})}))),j=s.default.forwardRef((({logger:t,tenant:r,theme:n,debug:o,widgetId:a},l)=>{const[i,c]=e.useState(null);e.useImperativeHandle(l,(()=>i));const{projectId:d,baseUrl:f}=s.default.useContext(u);return e.useEffect((()=>{i&&t&&(i.logger=t)}),[i,t]),s.default.createElement(e.Suspense,{fallback:null},s.default.createElement(y,{projectId:d,widgetId:a,baseUrl:f,innerRef:c,tenant:r,theme:n,debug:o}))}));var S=()=>{const t=e.useContext(u);if(!t)throw Error("You can only use this hook in the context of <AuthProvider />");return t};const U=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,R={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],R);if("function"==typeof e[t])return()=>{throw Error(U("function"))};throw Error(U("attribute"))}};exports.AccessKeyManagement=j,exports.AuthProvider=({projectId:t,baseUrl:r="",sessionTokenViaCookie:n=!1,children:o})=>{const[l,c]=e.useState(),[d,g]=e.useState(),[p,m]=e.useState(!1),[b,h]=e.useState(!1),w=(({projectId:t,baseUrl:r,sessionTokenViaCookie:n})=>e.useMemo((()=>{if(t)return f({projectId:t,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:i,persistToken:!0,autoRefresh:!0})}),[t,r,n]))({projectId:t,baseUrl:r,sessionTokenViaCookie:n});e.useEffect((()=>{if(w){const e=w.onSessionTokenChange(g),t=w.onUserChange(c);return()=>{e(),t()}}}),[w]);const v=e.useRef(!1),E=e.useCallback((()=>{v.current||(v.current=!0,h(!0),a(null==w?void 0:w.refresh)().then((()=>{h(!1)})))}),[w]),k=e.useCallback((()=>{m(!0),a(w.me)().then((()=>{m(!1)}))}),[w]),I=e.useMemo((()=>({fetchUser:k,user:l,isUserLoading:p,fetchSession:E,session:d,isSessionLoading:b,isSessionFetched:v.current,projectId:t,baseUrl:r,setUser:c,setSession:g,sdk:w})),[k,l,p,E,d,b,v.current,t,r,c,g,w]);return s.default.createElement(u.Provider,{value:I},o)},exports.Descope=w,exports.RoleManagement=I,exports.SignInFlow=e=>s.default.createElement(w,Object.assign({},e,{flowId:"sign-in"})),exports.SignUpFlow=e=>s.default.createElement(w,Object.assign({},e,{flowId:"sign-up"})),exports.SignUpOrInFlow=e=>s.default.createElement(w,Object.assign({},e,{flowId:"sign-up-or-in"})),exports.UserManagement=E,exports.baseHeaders=i,exports.getJwtPermissions=m,exports.getJwtRoles=b,exports.getRefreshToken=p,exports.getSessionToken=g,exports.refresh=(e=p())=>null==d?void 0:d.refresh(e),exports.useDescope=()=>{const{sdk:t}=S();return e.useMemo((()=>t||new Proxy(f({projectId:"dummy"}),R)),[t])},exports.useSession=()=>{const{session:t,isSessionLoading:r,fetchSession:n,isSessionFetched:s}=S(),o=e.useRef(r);e.useMemo((()=>{o.current=r}),[r]);const u=!t&&!r;return e.useMemo((()=>{u&&!s&&(o.current=!0)}),[s]),e.useEffect((()=>{u&&n()}),[n]),{isSessionLoading:o.current,sessionToken:t,isAuthenticated:!!t}},exports.useUser=()=>{const{user:t,fetchUser:r,isUserLoading:n,session:s}=S(),[o,u]=e.useState(!1),a=e.useRef(n),l=e.useMemo((()=>!t&&!n&&s&&!o),[r,s,o]);return e.useMemo((()=>{a.current=n}),[n]),e.useMemo((()=>{l&&(a.current=!0)}),[l]),e.useEffect((()=>{l&&(u(!0),r())}),[l]),{isUserLoading:a.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 a,Suspense as c,useContext as l}from"react";import d from"@descope/web-js-sdk";const u=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)},g=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.
|
|
1
|
+
import e,{useMemo as t,useState as r,useEffect as n,useRef as o,useCallback as s,lazy as i,useImperativeHandle as a,Suspense as c,useContext as l}from"react";import d from"@descope/web-js-sdk";const u=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)},g=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.14"},p="undefined"!=typeof window;let b;const h=e=>{const t=d(Object.assign(Object.assign({},e),{persistTokens:p,autoRefresh:p}));return b=t,t};b=h({projectId:"temp pid"});const w=()=>p?null==b?void 0:b.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),k=()=>p?null==b?void 0:b.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),I=g(((e=w(),t)=>null==b?void 0:b.getJwtPermissions(e,t))),E=g(((e=w(),t)=>null==b?void 0:b.getJwtRoles(e,t))),v=(e=k())=>null==b?void 0:b.refresh(e);const j=({projectId:i,baseUrl:a="",sessionTokenViaCookie:c=!1,children:l})=>{const[d,g]=r(),[p,b]=r(),[w,k]=r(!1),[I,E]=r(!1),v=(({projectId:e,baseUrl:r,sessionTokenViaCookie:n})=>t((()=>{if(e)return h({projectId:e,baseUrl:r,sessionTokenViaCookie:n,baseHeaders:m,persistToken:!0,autoRefresh:!0})}),[e,r,n]))({projectId:i,baseUrl:a,sessionTokenViaCookie:c});n((()=>{if(v){const e=v.onSessionTokenChange(b),t=v.onUserChange(g);return()=>{e(),t()}}}),[v]);const j=o(!1),y=s((()=>{j.current||(j.current=!0,E(!0),f(null==v?void 0:v.refresh)().then((()=>{E(!1)})))}),[v]),U=s((()=>{k(!0),f(v.me)().then((()=>{k(!1)}))}),[v]),R=t((()=>({fetchUser:U,user:d,isUserLoading:w,fetchSession:y,session:p,isSessionLoading:I,isSessionFetched:j.current,projectId:i,baseUrl:a,setUser:g,setSession:b,sdk:v})),[U,d,w,y,p,I,j.current,i,a,g,b,v]);return e.createElement(u.Provider,{value:R},l)},y=i((async()=>((await import("@descope/web-component")).default.sdkConfigOverrides={baseHeaders:m,persistTokens:!1,hooks:{get beforeRequest(){return b.httpClient.hooks.beforeRequest},set beforeRequest(e){}}},{default:({projectId:t,flowId:r,baseUrl:n,innerRef:o,tenant:s,theme:i,locale:a,debug:c,redirectUrl:l,client:d,form:u,autoFocus:f})=>e.createElement("descope-wc",{"project-id":t,"flow-id":r,"base-url":n,ref:o,tenant:s,theme:i,locale:a,debug:c,client:d,form:u,"redirect-url":l,"auto-focus":f})}))),U=e.forwardRef((({flowId:o,onSuccess:i,onError:l,onReady:d,logger:f,tenant:g,theme:m,locale:p,debug:b,client:h,form:w,telemetryKey:k,redirectUrl:I,autoFocus:E,errorTransformer:v},j)=>{const[U,R]=r(null);a(j,(()=>U));const{projectId:L,baseUrl:S,sdk:C}=e.useContext(u),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),l&&(null==e||e.addEventListener("error",l)),d&&(null==e||e.addEventListener("ready",d)),()=>{l&&(null==e||e.removeEventListener("error",l)),d&&(null==e||e.removeEventListener("ready",d)),null==e||e.removeEventListener("success",T)}}),[U,l,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 l&&(null==e||e.addEventListener("error",l)),()=>{l&&(null==e||e.removeEventListener("error",l))}}),[U,l]),n((()=>{const e=U;return d&&(null==e||e.addEventListener("ready",d)),()=>{d&&(null==e||e.removeEventListener("error",d))}}),[U,d]),n((()=>{U&&(U.errorTransformer=v)}),[U,v]),n((()=>{U&&f&&(U.logger=f)}),[U,f]);const{form:x,client:O}=t((()=>({form:JSON.stringify(w||{}),client:JSON.stringify(h||{})})),[w,h]);return e.createElement("form",null,e.createElement(c,{fallback:null},e.createElement(y,{projectId:L,flowId:o,baseUrl:S,innerRef:R,tenant:g,theme:m,locale:p,debug:b,form:x,client:O,telemetryKey:k,redirectUrl:I,autoFocus:E})))})),R=t=>e.createElement(U,Object.assign({},t,{flowId:"sign-in"})),L=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:a})=>e.createElement("descope-user-management-widget",{"project-id":t,"widget-id":s,"base-url":r,theme:i,tenant:o,debug:a,ref:n})}))),T=e.forwardRef((({logger:t,tenant:o,theme:s,debug:i,widgetId:l},d)=>{const[f,g]=r(null);a(d,(()=>f));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(c,{fallback:null},e.createElement(C,{projectId:m,widgetId:l,baseUrl:p,innerRef:g,tenant:o,theme:s,debug:i}))})),x=i((async()=>(await import("@descope/role-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:o,widgetId:s,theme:i,debug:a})=>e.createElement("descope-role-management-widget",{"project-id":t,"widget-id":s,"base-url":r,theme:i,tenant:o,debug:a,ref:n})}))),O=e.forwardRef((({logger:t,tenant:o,theme:s,debug:i,widgetId:l},d)=>{const[f,g]=r(null);a(d,(()=>f));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(c,{fallback:null},e.createElement(x,{projectId:m,widgetId:l,baseUrl:p,innerRef:g,tenant:o,theme:s,debug:i}))})),P=i((async()=>(await import("@descope/access-key-management-widget"),{default:({projectId:t,baseUrl:r,innerRef:n,tenant:o,widgetId:s,theme:i,debug:a})=>e.createElement("descope-access-key-management-widget",{"project-id":t,"widget-id":s,"base-url":r,theme:i,tenant:o,debug:a,ref:n})}))),F=e.forwardRef((({logger:t,tenant:o,theme:s,debug:i,widgetId:l},d)=>{const[f,g]=r(null);a(d,(()=>f));const{projectId:m,baseUrl:p}=e.useContext(u);return n((()=>{f&&t&&(f.logger=t)}),[f,t]),e.createElement(c,{fallback:null},e.createElement(P,{projectId:m,widgetId:l,baseUrl:p,innerRef:g,tenant:o,theme:s,debug:i}))}));var J=()=>{const e=l(u);if(!e)throw Error("You can only use this hook in the context of <AuthProvider />");return e};const q=e=>`You can only use this ${e} after sdk initialization. Make sure to supply 'projectId' to <AuthProvider /> component`,A={get(e,t){if("object"==typeof e[t]&&null!==e[t])return new Proxy(e[t],A);if("function"==typeof e[t])return()=>{throw Error(q("function"))};throw Error(q("attribute"))}},V=()=>{const{sdk:e}=J();return t((()=>e||new Proxy(h({projectId:"dummy"}),A)),[e])},N=()=>{const{session:e,isSessionLoading:r,fetchSession:s,isSessionFetched:i}=J(),a=o(r);t((()=>{a.current=r}),[r]);const c=!e&&!r;return t((()=>{c&&!i&&(a.current=!0)}),[i]),n((()=>{c&&s()}),[s]),{isSessionLoading:a.current,sessionToken:e,isAuthenticated:!!e}},Y=()=>{const{user:e,fetchUser:s,isUserLoading:i,session:a}=J(),[c,l]=r(!1),d=o(i),u=t((()=>!e&&!i&&a&&!c),[s,a,c]);return t((()=>{d.current=i}),[i]),t((()=>{u&&(d.current=!0)}),[u]),n((()=>{u&&(l(!0),s())}),[u]),{isUserLoading:d.current,user:e}};export{F as AccessKeyManagement,j as AuthProvider,U as Descope,O as RoleManagement,R as SignInFlow,L as SignUpFlow,S as SignUpOrInFlow,T as UserManagement,m as baseHeaders,I as getJwtPermissions,E as getJwtRoles,k as getRefreshToken,w as getSessionToken,v as refresh,V as useDescope,N as useSession,Y as useUser};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|