@descope/vue-sdk 2.12.3 → 2.12.5

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 CHANGED
@@ -208,7 +208,11 @@ app.use(descope, {
208
208
  ```
209
209
 
210
210
  Note: The session token cookie is set to [`SameSite=Strict; Secure;`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie) by default.
211
- If you need to customize this, you can set `sessionTokenViaCookie={sameSite: 'Lax', secure: false}` (if you pass only `sameSite`, `secure` will be set to `true` by default).
211
+ If you need to customize this, you can set `sessionTokenViaCookie={sameSite: 'Lax', secure: false, cookieName: 'MY_COOKIE'}`.
212
+
213
+ - `sameSite` (default: `Strict`) – Controls the SameSite attribute of the session cookie.
214
+ - `secure` (default: `true`) – If true, sets the cookie as Secure (sent only over HTTPS).
215
+ - `cookieName` (default: `DS`) – The name of the session token cookie. Useful for avoiding conflicts when running multiple Descope projects on the same domain.
212
216
 
213
217
  Now, whenever you call `fetch`, the cookie will automatically be sent with the request.
214
218
  Descope backend SDKs also support extracting the token from the `DS` cookie.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@descope/web-component"),r=require("@descope/web-js-sdk");require("@descope/user-management-widget"),require("@descope/role-management-widget"),require("@descope/access-key-management-widget"),require("@descope/audit-management-widget"),require("@descope/user-profile-widget"),require("@descope/applications-portal-widget");const n=Symbol("$descope"),s={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.12.3"},o="undefined"!=typeof window,a=()=>{const t=e.inject(n);if(!t)throw Error("Missing Descope context, make sure you are using the Descope plugin");return t},i=()=>a().options,l=()=>a().sdk,u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let d;const c=e=>{const t=r({persistTokens:o,storeLastAuthenticatedUser:o,autoRefresh:o,...e});return d=t,t};d=c({projectId:"temp pid"});const p=()=>o?d?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),g=()=>o?d?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>d?.getJwtPermissions(e,t))),b=u(((e=p(),t)=>d?.getJwtRoles(e,t))),f=u(((e=p())=>d?.getCurrentTenant(e)));var y=e.defineComponent({__name:"Descope",props:{flowId:{type:String,required:!0},tenant:{type:String},theme:{type:String},locale:{type:String},debug:{type:Boolean},telemetryKey:{type:String},redirectUrl:{type:String},autoFocus:{type:Boolean||String},validateOnBlur:{type:Boolean},restartOnError:{type:Boolean},errorTransformer:{type:Function},onScreenUpdate:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String},nonce:{type:String},dismissScreenErrorOnInput:{type:Boolean}},emits:["success","error","ready"],setup(r,{emit:n}){(customElements?.get("descope-wc")||t).sdkConfigOverrides={baseHeaders:s,persistTokens:!1,hooks:{get beforeRequest(){return d.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const o=r,a=n,{projectId:u,baseUrl:c,baseStaticUrl:p,storeLastAuthenticatedUser:g,baseCdnUrl:m}=i(),b=l(),f=e.computed((()=>o.form?JSON.stringify(o.form):"")),y=e.computed((()=>o.client?JSON.stringify(o.client):"")),v=async e=>{await(b.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),a("success",e)},h=e=>a("error",e),w=e=>a("ready",e);return(t,n)=>{const s=e.resolveComponent("descope-wc");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{"project-id":e.unref(u),"base-url":e.unref(c),"base-static-url":e.unref(p),"base-cdn-url":e.unref(m),"flow-id":r.flowId,"^theme":r.theme,"^locale":r.locale,"^tenant":r.tenant,"^debug":r.debug,"^telemetryKey":r.telemetryKey,"redirect-url":r.redirectUrl,"auto-focus":r.autoFocus,"style-id":r.styleId,"validate-on-blur":r.validateOnBlur,"restart-on-error":r.restartOnError,"store-last-authenticated-user":e.unref(g),".errorTransformer":r.errorTransformer,".onScreenUpdate":r.onScreenUpdate,"^form":f.value,"^client":y.value,"^nonce":r.nonce,"^dismiss-screen-error-on-input":r.dismissScreenErrorOnInput,onSuccess:v,onError:h,onReady:w},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},40,["project-id","base-url","base-static-url","base-cdn-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","restart-on-error","store-last-authenticated-user",".errorTransformer",".onScreenUpdate","^form","^client","^nonce","^dismiss-screen-error-on-input"])])}}});y.__file="src/Descope.vue";var v=e.defineComponent({__name:"UserManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s,baseCdnUrl:o}=i();return(a,i)=>{const l=e.resolveComponent("descope-user-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{"project-id":e.unref(r),"base-url":e.unref(n),"base-static-url":e.unref(s),"base-cdn-url":e.unref(o),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id"])])}}});v.__file="src/UserManagement.vue";var h=e.defineComponent({__name:"RoleManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s,baseCdnUrl:o}=i();return(a,i)=>{const l=e.resolveComponent("descope-role-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{"project-id":e.unref(r),"base-url":e.unref(n),"base-cdn-url":e.unref(o),"base-static-url":e.unref(s),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId},null,8,["project-id","base-url","base-cdn-url","base-static-url","^theme","^tenant","^debug","widget-id"])])}}});h.__file="src/RoleManagement.vue";var w=e.defineComponent({__name:"AccessKeyManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s,baseCdnUrl:o}=i();return(a,i)=>{const l=e.resolveComponent("descope-access-key-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{"project-id":e.unref(r),"base-url":e.unref(n),"base-static-url":e.unref(s),"base-cdn-url":e.unref(o),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});w.__file="src/AccessKeyManagement.vue";var S=e.defineComponent({__name:"AuditManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s,baseCdnUrl:o}=i();return(a,i)=>{const l=e.resolveComponent("descope-audit-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{"project-id":e.unref(r),"base-url":e.unref(n),"base-static-url":e.unref(s),"base-cdn-url":e.unref(o),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});S.__file="src/AuditManagement.vue";var U=e.defineComponent({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout"],setup(t,{emit:r}){const s=e.inject(n),o=r,a=e=>{s?.resetAuth(),o("logout",e)},{projectId:l,baseUrl:u,baseStaticUrl:d,baseCdnUrl:c}=i();return(r,n)=>{const s=e.resolveComponent("descope-user-profile-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{"project-id":e.unref(l),"base-url":e.unref(u),"base-static-url":e.unref(d),"base-cdn-url":e.unref(c),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId,onLogout:a},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id"])])}}});U.__file="src/UserProfile.vue";var k=e.defineComponent({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s,baseCdnUrl:o}=i();return(a,i)=>{const l=e.resolveComponent("descope-applications-portal-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{"project-id":e.unref(r),"base-url":e.unref(n),"base-static-url":e.unref(s),"base-cdn-url":e.unref(o),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id","style-id"])])}}});k.__file="src/ApplicationsPortal.vue";const C=e.ref(null);let I;var _={install:function(t,r){const o=c({persistTokens:!0,autoRefresh:!0,...r,baseHeaders:s});I=o;const a=e.ref(null),i=e.ref(""),l=e.ref(),u=e.ref(!1),d=e.ref(null),p=e.ref(null);o.onSessionTokenChange((e=>{i.value=e})),o.onClaimsChange((e=>{l.value=e})),o.onIsAuthenticatedChange((e=>{u.value=e})),o.onUserChange((e=>{p.value=e}));const g=async e=>{a.value=!0,await o.refresh(void 0,e),a.value=!1},m=e.computed((()=>null===a.value)),b=e.computed((()=>null===d.value));C.value=()=>new Promise(((t,r)=>{!u.value&&m.value&&g().catch(r),e.watch((()=>a.value),(()=>!a.value&&t(!!e.unref(u))),{immediate:!0})})),t.provide(n,{session:{fetchSession:g,isLoading:e.readonly(a),session:e.readonly(i),claims:e.readonly(l),isAuthenticated:e.readonly(u),isFetchSessionWasNeverCalled:m},user:{fetchUser:async()=>{d.value=!0,await o.me(),d.value=!1},isLoading:e.readonly(d),user:e.readonly(p),isFetchUserWasNeverCalled:b},sdk:o,options:r,resetAuth:function(){i.value="",u.value=!1,p.value=null}})}};exports.AccessKeyManagement=w,exports.ApplicationsPortal=k,exports.AuditManagement=S,exports.Descope=y,exports.RoleManagement=h,exports.UserManagement=v,exports.UserProfile=U,exports.default=_,exports.getCurrentTenant=f,exports.getJwtPermissions=m,exports.getJwtRoles=b,exports.getRefreshToken=g,exports.getSdk=()=>I,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=g())=>d?.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>d?.isJwtExpired(e),exports.routeGuard=()=>e.unref(C)?.(),exports.useDescope=l,exports.useSession=()=>{const{session:t}=a();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(!0),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,claims:t.claims,isAuthenticated:t.isAuthenticated}},exports.useUser=()=>{const{user:t,session:r}=a(),n=()=>{!t.user.value&&r.session.value&&t.fetchUser()};return n(),e.watch(r.session,n),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchUserWasNeverCalled.value)),user:t.user}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@descope/web-component"),r=require("@descope/web-js-sdk");require("@descope/user-management-widget"),require("@descope/role-management-widget"),require("@descope/access-key-management-widget"),require("@descope/audit-management-widget"),require("@descope/user-profile-widget"),require("@descope/applications-portal-widget");const n=Symbol("$descope"),s={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.12.5"},o="undefined"!=typeof window,a=()=>{const t=e.inject(n);if(!t)throw Error("Missing Descope context, make sure you are using the Descope plugin");return t},i=()=>a().options,d=()=>a().sdk,u=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let l;const c=e=>{const t=r({persistTokens:o,storeLastAuthenticatedUser:o,autoRefresh:o,...e});return l=t,t};l=c({projectId:"temp pid"});const p=()=>o?l?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),g=()=>o?l?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),m=u(((e=p(),t)=>l?.getJwtPermissions(e,t))),y=u(((e=p(),t)=>l?.getJwtRoles(e,t))),b=u(((e=p())=>l?.getCurrentTenant(e)));var f=e.defineComponent({__name:"Descope",props:{flowId:{type:String,required:!0},tenant:{type:String},theme:{type:String},locale:{type:String},debug:{type:Boolean},telemetryKey:{type:String},redirectUrl:{type:String},autoFocus:{type:Boolean||String},validateOnBlur:{type:Boolean},restartOnError:{type:Boolean},errorTransformer:{type:Function},onScreenUpdate:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String},nonce:{type:String},dismissScreenErrorOnInput:{type:Boolean}},emits:["success","error","ready"],setup(r,{emit:n}){(customElements?.get("descope-wc")||t).sdkConfigOverrides={baseHeaders:s,persistTokens:!1,hooks:{get beforeRequest(){return l.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const o=r,a=n,{projectId:u,baseUrl:c,baseStaticUrl:p,storeLastAuthenticatedUser:g,baseCdnUrl:m,customStorage:y}=i(),b=d(),f=e.computed((()=>o.form?JSON.stringify(o.form):"")),v=e.computed((()=>o.client?JSON.stringify(o.client):"")),h=async e=>{await(b.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),a("success",e)},S=e=>a("error",e),w=e=>a("ready",e);return(t,n)=>{const s=e.resolveComponent("descope-wc");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{"project-id":e.unref(u),"base-url":e.unref(c),"base-static-url":e.unref(p),"base-cdn-url":e.unref(m),"flow-id":r.flowId,"^theme":r.theme,"^locale":r.locale,"^tenant":r.tenant,"^debug":r.debug,"^telemetryKey":r.telemetryKey,"redirect-url":r.redirectUrl,"auto-focus":r.autoFocus,"style-id":r.styleId,"validate-on-blur":r.validateOnBlur,"restart-on-error":r.restartOnError,"store-last-authenticated-user":e.unref(g),".customStorage":e.unref(y),".errorTransformer":r.errorTransformer,".onScreenUpdate":r.onScreenUpdate,"^form":f.value,"^client":v.value,"^nonce":r.nonce,"^dismiss-screen-error-on-input":r.dismissScreenErrorOnInput,onSuccess:h,onError:S,onReady:w},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},40,["project-id","base-url","base-static-url","base-cdn-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","restart-on-error","store-last-authenticated-user",".customStorage",".errorTransformer",".onScreenUpdate","^form","^client","^nonce","^dismiss-screen-error-on-input"])])}}});f.__file="src/Descope.vue";var v=e.defineComponent({__name:"UserManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["ready"],setup(t,{emit:r}){const n=r,{projectId:s,baseUrl:o,baseStaticUrl:a,baseCdnUrl:d}=i(),u=e=>n("ready",e);return(r,n)=>{const i=e.resolveComponent("descope-user-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(s),"base-url":e.unref(o),"base-static-url":e.unref(a),"base-cdn-url":e.unref(d),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,onReady:u},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id"])])}}});v.__file="src/UserManagement.vue";var h=e.defineComponent({__name:"RoleManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["ready"],setup(t,{emit:r}){const n=r,{projectId:s,baseUrl:o,baseStaticUrl:a,baseCdnUrl:d}=i(),u=e=>n("ready",e);return(r,n)=>{const i=e.resolveComponent("descope-role-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(s),"base-url":e.unref(o),"base-cdn-url":e.unref(d),"base-static-url":e.unref(a),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,onReady:u},null,8,["project-id","base-url","base-cdn-url","base-static-url","^theme","^tenant","^debug","widget-id"])])}}});h.__file="src/RoleManagement.vue";var S=e.defineComponent({__name:"AccessKeyManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(t,{emit:r}){const n=r,{projectId:s,baseUrl:o,baseStaticUrl:a,baseCdnUrl:d}=i(),u=e=>n("ready",e);return(r,n)=>{const i=e.resolveComponent("descope-access-key-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(s),"base-url":e.unref(o),"base-static-url":e.unref(a),"base-cdn-url":e.unref(d),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId,onReady:u},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});S.__file="src/AccessKeyManagement.vue";var w=e.defineComponent({__name:"AuditManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(t,{emit:r}){const n=r,{projectId:s,baseUrl:o,baseStaticUrl:a,baseCdnUrl:d}=i(),u=e=>n("ready",e);return(r,n)=>{const i=e.resolveComponent("descope-audit-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(s),"base-url":e.unref(o),"base-static-url":e.unref(a),"base-cdn-url":e.unref(d),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId,onReady:u},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});w.__file="src/AuditManagement.vue";var U=e.defineComponent({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout","ready"],setup(t,{emit:r}){const s=e.inject(n),o=r,a=e=>{s?.resetAuth(),o("logout",e)},d=e=>o("ready",e),{projectId:u,baseUrl:l,baseStaticUrl:c,baseCdnUrl:p}=i();return(r,n)=>{const s=e.resolveComponent("descope-user-profile-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{"project-id":e.unref(u),"base-url":e.unref(l),"base-static-url":e.unref(c),"base-cdn-url":e.unref(p),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId,onLogout:a,onReady:d},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id"])])}}});U.__file="src/UserProfile.vue";var k=e.defineComponent({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(t,{emit:r}){const n=r,{projectId:s,baseUrl:o,baseStaticUrl:a,baseCdnUrl:d}=i(),u=e=>n("ready",e);return(r,n)=>{const i=e.resolveComponent("descope-applications-portal-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(s),"base-url":e.unref(o),"base-static-url":e.unref(a),"base-cdn-url":e.unref(d),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId,"style-id":t.styleId,onReady:u},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id","style-id"])])}}});k.__file="src/ApplicationsPortal.vue";const C=e.ref(null);let I;var _={install:function(t,r){const o=c({persistTokens:!0,autoRefresh:!0,...r,baseHeaders:s});I=o;const a=e.ref(null),i=e.ref(""),d=e.ref(),u=e.ref(!1),l=e.ref(null),p=e.ref(null);o.onSessionTokenChange((e=>{i.value=e})),o.onClaimsChange((e=>{d.value=e})),o.onIsAuthenticatedChange((e=>{u.value=e})),o.onUserChange((e=>{p.value=e}));const g=async e=>{a.value=!0,await o.refresh(void 0,e),a.value=!1},m=e.computed((()=>null===a.value)),y=e.computed((()=>null===l.value));C.value=()=>new Promise(((t,r)=>{!u.value&&m.value&&g().catch(r),e.watch((()=>a.value),(()=>!a.value&&t(!!e.unref(u))),{immediate:!0})})),t.provide(n,{session:{fetchSession:g,isLoading:e.readonly(a),session:e.readonly(i),claims:e.readonly(d),isAuthenticated:e.readonly(u),isFetchSessionWasNeverCalled:m},user:{fetchUser:async()=>{l.value=!0,await o.me(),l.value=!1},isLoading:e.readonly(l),user:e.readonly(p),isFetchUserWasNeverCalled:y},sdk:o,options:r,resetAuth:function(){i.value="",u.value=!1,p.value=null}})}};exports.AccessKeyManagement=S,exports.ApplicationsPortal=k,exports.AuditManagement=w,exports.Descope=f,exports.RoleManagement=h,exports.UserManagement=v,exports.UserProfile=U,exports.default=_,exports.getCurrentTenant=b,exports.getJwtPermissions=m,exports.getJwtRoles=y,exports.getRefreshToken=g,exports.getSdk=()=>I,exports.getSessionToken=p,exports.isRefreshTokenExpired=(e=g())=>l?.isJwtExpired(e),exports.isSessionTokenExpired=(e=p())=>l?.isJwtExpired(e),exports.routeGuard=()=>e.unref(C)?.(),exports.useDescope=d,exports.useSession=()=>{const{session:t}=a();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(!0),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,claims:t.claims,isAuthenticated:t.isAuthenticated}},exports.useUser=()=>{const{user:t,session:r}=a(),n=()=>{!t.user.value&&r.session.value&&t.fetchUser()};return n(),e.watch(r.session,n),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchUserWasNeverCalled.value)),user:t.user}};
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ import * as _descope_web_js_sdk from '@descope/web-js-sdk';
4
4
  import { CookieConfig } from '@descope/web-js-sdk';
5
5
  import * as _descope_core_js_sdk from '@descope/core-js-sdk';
6
6
  import * as _2 from 'oidc-client-ts';
7
+ import { CustomStorage } from '@descope/web-component';
7
8
 
8
9
  declare const _default$7: vue.DefineComponent<{
9
10
  flowId: {
@@ -141,7 +142,7 @@ declare const _default$6: vue.DefineComponent<{
141
142
  };
142
143
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
143
144
  [key: string]: any;
144
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
145
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "ready"[], "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
145
146
  tenant: {
146
147
  type: StringConstructor;
147
148
  required: true;
@@ -156,7 +157,9 @@ declare const _default$6: vue.DefineComponent<{
156
157
  debug: {
157
158
  type: BooleanConstructor;
158
159
  };
159
- }>>, {
160
+ }>> & {
161
+ onReady?: (...args: any[]) => any;
162
+ }, {
160
163
  debug: boolean;
161
164
  }, {}>;
162
165
 
@@ -177,7 +180,7 @@ declare const _default$5: vue.DefineComponent<{
177
180
  };
178
181
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
179
182
  [key: string]: any;
180
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
183
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "ready"[], "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
181
184
  tenant: {
182
185
  type: StringConstructor;
183
186
  required: true;
@@ -192,7 +195,9 @@ declare const _default$5: vue.DefineComponent<{
192
195
  debug: {
193
196
  type: BooleanConstructor;
194
197
  };
195
- }>>, {
198
+ }>> & {
199
+ onReady?: (...args: any[]) => any;
200
+ }, {
196
201
  debug: boolean;
197
202
  }, {}>;
198
203
 
@@ -216,7 +221,7 @@ declare const _default$4: vue.DefineComponent<{
216
221
  };
217
222
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
218
223
  [key: string]: any;
219
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
224
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "ready"[], "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
220
225
  tenant: {
221
226
  type: StringConstructor;
222
227
  required: true;
@@ -234,7 +239,9 @@ declare const _default$4: vue.DefineComponent<{
234
239
  debug: {
235
240
  type: BooleanConstructor;
236
241
  };
237
- }>>, {
242
+ }>> & {
243
+ onReady?: (...args: any[]) => any;
244
+ }, {
238
245
  debug: boolean;
239
246
  }, {}>;
240
247
 
@@ -258,7 +265,7 @@ declare const _default$3: vue.DefineComponent<{
258
265
  };
259
266
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
260
267
  [key: string]: any;
261
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
268
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "ready"[], "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
262
269
  tenant: {
263
270
  type: StringConstructor;
264
271
  required: true;
@@ -276,7 +283,9 @@ declare const _default$3: vue.DefineComponent<{
276
283
  debug: {
277
284
  type: BooleanConstructor;
278
285
  };
279
- }>>, {
286
+ }>> & {
287
+ onReady?: (...args: any[]) => any;
288
+ }, {
280
289
  debug: boolean;
281
290
  }, {}>;
282
291
 
@@ -293,7 +302,7 @@ declare const _default$2: vue.DefineComponent<{
293
302
  };
294
303
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
295
304
  [key: string]: any;
296
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "logout"[], "logout", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
305
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("logout" | "ready")[], "logout" | "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
297
306
  widgetId: {
298
307
  type: StringConstructor;
299
308
  required: true;
@@ -306,6 +315,7 @@ declare const _default$2: vue.DefineComponent<{
306
315
  };
307
316
  }>> & {
308
317
  onLogout?: (...args: any[]) => any;
318
+ onReady?: (...args: any[]) => any;
309
319
  }, {
310
320
  debug: boolean;
311
321
  }, {}>;
@@ -326,7 +336,7 @@ declare const _default$1: vue.DefineComponent<{
326
336
  };
327
337
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
328
338
  [key: string]: any;
329
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
339
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "ready"[], "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
330
340
  widgetId: {
331
341
  type: StringConstructor;
332
342
  required: true;
@@ -340,7 +350,9 @@ declare const _default$1: vue.DefineComponent<{
340
350
  debug: {
341
351
  type: BooleanConstructor;
342
352
  };
343
- }>>, {
353
+ }>> & {
354
+ onReady?: (...args: any[]) => any;
355
+ }, {
344
356
  debug: boolean;
345
357
  }, {}>;
346
358
 
@@ -353,6 +365,7 @@ type Options = {
353
365
  autoRefresh?: boolean;
354
366
  sessionTokenViaCookie?: CookieConfig;
355
367
  storeLastAuthenticatedUser?: boolean;
368
+ customStorage?: CustomStorage;
356
369
  };
357
370
 
358
371
  declare const useDescope: () => ((({
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{computed as e,watch as t,inject as r,defineComponent as s,resolveComponent as n,openBlock as a,createElementBlock as i,createVNode as o,unref as d,withCtx as l,renderSlot as u,ref as c,readonly as p}from"vue";import g from"@descope/web-component";import m from"@descope/web-js-sdk";import"@descope/user-management-widget";import"@descope/role-management-widget";import"@descope/access-key-management-widget";import"@descope/audit-management-widget";import"@descope/user-profile-widget";import"@descope/applications-portal-widget";const b=Symbol("$descope"),y={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.12.3"},h="undefined"!=typeof window,v=()=>{const e=r(b);if(!e)throw Error("Missing Descope context, make sure you are using the Descope plugin");return e},w=()=>v().options,S=()=>v().sdk,f=()=>{const{session:t}=v();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(!0),{isLoading:e((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,claims:t.claims,isAuthenticated:t.isAuthenticated}},U=()=>{const{user:r,session:s}=v(),n=()=>{!r.user.value&&s.session.value&&r.fetchUser()};return n(),t(s.session,n),{isLoading:e((()=>r.isLoading.value||r.isFetchUserWasNeverCalled.value)),user:r.user}},I=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let _;const j=e=>{const t=m({persistTokens:h,storeLastAuthenticatedUser:h,autoRefresh:h,...e});return _=t,t};_=j({projectId:"temp pid"});const k=()=>h?_?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),C=()=>h?_?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),A=(e=k())=>_?.isJwtExpired(e),q=(e=C())=>_?.isJwtExpired(e),R=I(((e=k(),t)=>_?.getJwtPermissions(e,t))),B=I(((e=k(),t)=>_?.getJwtRoles(e,t))),M=I(((e=k())=>_?.getCurrentTenant(e)));var O=s({__name:"Descope",props:{flowId:{type:String,required:!0},tenant:{type:String},theme:{type:String},locale:{type:String},debug:{type:Boolean},telemetryKey:{type:String},redirectUrl:{type:String},autoFocus:{type:Boolean||String},validateOnBlur:{type:Boolean},restartOnError:{type:Boolean},errorTransformer:{type:Function},onScreenUpdate:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String},nonce:{type:String},dismissScreenErrorOnInput:{type:Boolean}},emits:["success","error","ready"],setup(t,{emit:r}){(customElements?.get("descope-wc")||g).sdkConfigOverrides={baseHeaders:y,persistTokens:!1,hooks:{get beforeRequest(){return _.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const s=t,c=r,{projectId:p,baseUrl:m,baseStaticUrl:b,storeLastAuthenticatedUser:h,baseCdnUrl:v}=w(),f=S(),U=e((()=>s.form?JSON.stringify(s.form):"")),I=e((()=>s.client?JSON.stringify(s.client):"")),j=async e=>{await(f.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),c("success",e)},k=e=>c("error",e),C=e=>c("ready",e);return(e,r)=>{const s=n("descope-wc");return a(),i("div",null,[o(s,{"project-id":d(p),"base-url":d(m),"base-static-url":d(b),"base-cdn-url":d(v),"flow-id":t.flowId,"^theme":t.theme,"^locale":t.locale,"^tenant":t.tenant,"^debug":t.debug,"^telemetryKey":t.telemetryKey,"redirect-url":t.redirectUrl,"auto-focus":t.autoFocus,"style-id":t.styleId,"validate-on-blur":t.validateOnBlur,"restart-on-error":t.restartOnError,"store-last-authenticated-user":d(h),".errorTransformer":t.errorTransformer,".onScreenUpdate":t.onScreenUpdate,"^form":U.value,"^client":I.value,"^nonce":t.nonce,"^dismiss-screen-error-on-input":t.dismissScreenErrorOnInput,onSuccess:j,onError:k,onReady:C},{default:l((()=>[u(e.$slots,"default")])),_:3},40,["project-id","base-url","base-static-url","base-cdn-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","restart-on-error","store-last-authenticated-user",".errorTransformer",".onScreenUpdate","^form","^client","^nonce","^dismiss-screen-error-on-input"])])}}});O.__file="src/Descope.vue";var T=s({__name:"UserManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s,baseCdnUrl:l}=w();return(u,c)=>{const p=n("descope-user-management-widget");return a(),i("div",null,[o(p,{"project-id":d(t),"base-url":d(r),"base-static-url":d(s),"base-cdn-url":d(l),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id"])])}}});T.__file="src/UserManagement.vue";var E=s({__name:"RoleManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s,baseCdnUrl:l}=w();return(u,c)=>{const p=n("descope-role-management-widget");return a(),i("div",null,[o(p,{"project-id":d(t),"base-url":d(r),"base-cdn-url":d(l),"base-static-url":d(s),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId},null,8,["project-id","base-url","base-cdn-url","base-static-url","^theme","^tenant","^debug","widget-id"])])}}});E.__file="src/RoleManagement.vue";var F=s({__name:"AccessKeyManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s,baseCdnUrl:l}=w();return(u,c)=>{const p=n("descope-access-key-management-widget");return a(),i("div",null,[o(p,{"project-id":d(t),"base-url":d(r),"base-static-url":d(s),"base-cdn-url":d(l),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});F.__file="src/AccessKeyManagement.vue";var L=s({__name:"AuditManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s,baseCdnUrl:l}=w();return(u,c)=>{const p=n("descope-audit-management-widget");return a(),i("div",null,[o(p,{"project-id":d(t),"base-url":d(r),"base-static-url":d(s),"base-cdn-url":d(l),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});L.__file="src/AuditManagement.vue";var N=s({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout"],setup(e,{emit:t}){const s=r(b),l=t,u=e=>{s?.resetAuth(),l("logout",e)},{projectId:c,baseUrl:p,baseStaticUrl:g,baseCdnUrl:m}=w();return(t,r)=>{const s=n("descope-user-profile-widget");return a(),i("div",null,[o(s,{"project-id":d(c),"base-url":d(p),"base-static-url":d(g),"base-cdn-url":d(m),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId,onLogout:u},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id"])])}}});N.__file="src/UserProfile.vue";var P=s({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s,baseCdnUrl:l}=w();return(u,c)=>{const p=n("descope-applications-portal-widget");return a(),i("div",null,[o(p,{"project-id":d(t),"base-url":d(r),"base-static-url":d(s),"base-cdn-url":d(l),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id","style-id"])])}}});P.__file="src/ApplicationsPortal.vue";const J=c(null),K=()=>d(J)?.();let x;const D=()=>x;var W={install:function(r,s){const n=j({persistTokens:!0,autoRefresh:!0,...s,baseHeaders:y});x=n;const a=c(null),i=c(""),o=c(),l=c(!1),u=c(null),g=c(null);n.onSessionTokenChange((e=>{i.value=e})),n.onClaimsChange((e=>{o.value=e})),n.onIsAuthenticatedChange((e=>{l.value=e})),n.onUserChange((e=>{g.value=e}));const m=async e=>{a.value=!0,await n.refresh(void 0,e),a.value=!1},h=e((()=>null===a.value)),v=e((()=>null===u.value));J.value=()=>new Promise(((e,r)=>{!l.value&&h.value&&m().catch(r),t((()=>a.value),(()=>!a.value&&e(!!d(l))),{immediate:!0})})),r.provide(b,{session:{fetchSession:m,isLoading:p(a),session:p(i),claims:p(o),isAuthenticated:p(l),isFetchSessionWasNeverCalled:h},user:{fetchUser:async()=>{u.value=!0,await n.me(),u.value=!1},isLoading:p(u),user:p(g),isFetchUserWasNeverCalled:v},sdk:n,options:s,resetAuth:function(){i.value="",l.value=!1,g.value=null}})}};export{F as AccessKeyManagement,P as ApplicationsPortal,L as AuditManagement,O as Descope,E as RoleManagement,T as UserManagement,N as UserProfile,W as default,M as getCurrentTenant,R as getJwtPermissions,B as getJwtRoles,C as getRefreshToken,D as getSdk,k as getSessionToken,q as isRefreshTokenExpired,A as isSessionTokenExpired,K as routeGuard,S as useDescope,f as useSession,U as useUser};
1
+ import{computed as e,watch as t,inject as r,defineComponent as s,resolveComponent as n,openBlock as a,createElementBlock as i,createVNode as o,unref as d,withCtx as l,renderSlot as u,ref as c,readonly as p}from"vue";import g from"@descope/web-component";import m from"@descope/web-js-sdk";import"@descope/user-management-widget";import"@descope/role-management-widget";import"@descope/access-key-management-widget";import"@descope/audit-management-widget";import"@descope/user-profile-widget";import"@descope/applications-portal-widget";const b=Symbol("$descope"),y={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.12.5"},h="undefined"!=typeof window,v=()=>{const e=r(b);if(!e)throw Error("Missing Descope context, make sure you are using the Descope plugin");return e},S=()=>v().options,w=()=>v().sdk,f=()=>{const{session:t}=v();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(!0),{isLoading:e((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,claims:t.claims,isAuthenticated:t.isAuthenticated}},U=()=>{const{user:r,session:s}=v(),n=()=>{!r.user.value&&s.session.value&&r.fetchUser()};return n(),t(s.session,n),{isLoading:e((()=>r.isLoading.value||r.isFetchUserWasNeverCalled.value)),user:r.user}},I=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let _;const j=e=>{const t=m({persistTokens:h,storeLastAuthenticatedUser:h,autoRefresh:h,...e});return _=t,t};_=j({projectId:"temp pid"});const k=()=>h?_?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),C=()=>h?_?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),R=(e=k())=>_?.isJwtExpired(e),A=(e=C())=>_?.isJwtExpired(e),q=I(((e=k(),t)=>_?.getJwtPermissions(e,t))),B=I(((e=k(),t)=>_?.getJwtRoles(e,t))),M=I(((e=k())=>_?.getCurrentTenant(e)));var O=s({__name:"Descope",props:{flowId:{type:String,required:!0},tenant:{type:String},theme:{type:String},locale:{type:String},debug:{type:Boolean},telemetryKey:{type:String},redirectUrl:{type:String},autoFocus:{type:Boolean||String},validateOnBlur:{type:Boolean},restartOnError:{type:Boolean},errorTransformer:{type:Function},onScreenUpdate:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String},nonce:{type:String},dismissScreenErrorOnInput:{type:Boolean}},emits:["success","error","ready"],setup(t,{emit:r}){(customElements?.get("descope-wc")||g).sdkConfigOverrides={baseHeaders:y,persistTokens:!1,hooks:{get beforeRequest(){return _.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const s=t,c=r,{projectId:p,baseUrl:m,baseStaticUrl:b,storeLastAuthenticatedUser:h,baseCdnUrl:v,customStorage:f}=S(),U=w(),I=e((()=>s.form?JSON.stringify(s.form):"")),j=e((()=>s.client?JSON.stringify(s.client):"")),k=async e=>{await(U.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),c("success",e)},C=e=>c("error",e),R=e=>c("ready",e);return(e,r)=>{const s=n("descope-wc");return a(),i("div",null,[o(s,{"project-id":d(p),"base-url":d(m),"base-static-url":d(b),"base-cdn-url":d(v),"flow-id":t.flowId,"^theme":t.theme,"^locale":t.locale,"^tenant":t.tenant,"^debug":t.debug,"^telemetryKey":t.telemetryKey,"redirect-url":t.redirectUrl,"auto-focus":t.autoFocus,"style-id":t.styleId,"validate-on-blur":t.validateOnBlur,"restart-on-error":t.restartOnError,"store-last-authenticated-user":d(h),".customStorage":d(f),".errorTransformer":t.errorTransformer,".onScreenUpdate":t.onScreenUpdate,"^form":I.value,"^client":j.value,"^nonce":t.nonce,"^dismiss-screen-error-on-input":t.dismissScreenErrorOnInput,onSuccess:k,onError:C,onReady:R},{default:l((()=>[u(e.$slots,"default")])),_:3},40,["project-id","base-url","base-static-url","base-cdn-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","restart-on-error","store-last-authenticated-user",".customStorage",".errorTransformer",".onScreenUpdate","^form","^client","^nonce","^dismiss-screen-error-on-input"])])}}});O.__file="src/Descope.vue";var T=s({__name:"UserManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["ready"],setup(e,{emit:t}){const r=t,{projectId:s,baseUrl:l,baseStaticUrl:u,baseCdnUrl:c}=S(),p=e=>r("ready",e);return(t,r)=>{const g=n("descope-user-management-widget");return a(),i("div",null,[o(g,{"project-id":d(s),"base-url":d(l),"base-static-url":d(u),"base-cdn-url":d(c),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,onReady:p},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id"])])}}});T.__file="src/UserManagement.vue";var E=s({__name:"RoleManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["ready"],setup(e,{emit:t}){const r=t,{projectId:s,baseUrl:l,baseStaticUrl:u,baseCdnUrl:c}=S(),p=e=>r("ready",e);return(t,r)=>{const g=n("descope-role-management-widget");return a(),i("div",null,[o(g,{"project-id":d(s),"base-url":d(l),"base-cdn-url":d(c),"base-static-url":d(u),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,onReady:p},null,8,["project-id","base-url","base-cdn-url","base-static-url","^theme","^tenant","^debug","widget-id"])])}}});E.__file="src/RoleManagement.vue";var F=s({__name:"AccessKeyManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(e,{emit:t}){const r=t,{projectId:s,baseUrl:l,baseStaticUrl:u,baseCdnUrl:c}=S(),p=e=>r("ready",e);return(t,r)=>{const g=n("descope-access-key-management-widget");return a(),i("div",null,[o(g,{"project-id":d(s),"base-url":d(l),"base-static-url":d(u),"base-cdn-url":d(c),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId,onReady:p},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});F.__file="src/AccessKeyManagement.vue";var L=s({__name:"AuditManagement",props:{tenant:{type:String,required:!0},widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(e,{emit:t}){const r=t,{projectId:s,baseUrl:l,baseStaticUrl:u,baseCdnUrl:c}=S(),p=e=>r("ready",e);return(t,r)=>{const g=n("descope-audit-management-widget");return a(),i("div",null,[o(g,{"project-id":d(s),"base-url":d(l),"base-static-url":d(u),"base-cdn-url":d(c),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId,onReady:p},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^tenant","^debug","widget-id","style-id"])])}}});L.__file="src/AuditManagement.vue";var N=s({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout","ready"],setup(e,{emit:t}){const s=r(b),l=t,u=e=>{s?.resetAuth(),l("logout",e)},c=e=>l("ready",e),{projectId:p,baseUrl:g,baseStaticUrl:m,baseCdnUrl:y}=S();return(t,r)=>{const s=n("descope-user-profile-widget");return a(),i("div",null,[o(s,{"project-id":d(p),"base-url":d(g),"base-static-url":d(m),"base-cdn-url":d(y),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId,onLogout:u,onReady:c},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id"])])}}});N.__file="src/UserProfile.vue";var P=s({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},styleId:{type:String},debug:{type:Boolean}},emits:["ready"],setup(e,{emit:t}){const r=t,{projectId:s,baseUrl:l,baseStaticUrl:u,baseCdnUrl:c}=S(),p=e=>r("ready",e);return(t,r)=>{const g=n("descope-applications-portal-widget");return a(),i("div",null,[o(g,{"project-id":d(s),"base-url":d(l),"base-static-url":d(u),"base-cdn-url":d(c),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId,"style-id":e.styleId,onReady:p},null,8,["project-id","base-url","base-static-url","base-cdn-url","^theme","^debug","widget-id","style-id"])])}}});P.__file="src/ApplicationsPortal.vue";const J=c(null),K=()=>d(J)?.();let x;const D=()=>x;var W={install:function(r,s){const n=j({persistTokens:!0,autoRefresh:!0,...s,baseHeaders:y});x=n;const a=c(null),i=c(""),o=c(),l=c(!1),u=c(null),g=c(null);n.onSessionTokenChange((e=>{i.value=e})),n.onClaimsChange((e=>{o.value=e})),n.onIsAuthenticatedChange((e=>{l.value=e})),n.onUserChange((e=>{g.value=e}));const m=async e=>{a.value=!0,await n.refresh(void 0,e),a.value=!1},h=e((()=>null===a.value)),v=e((()=>null===u.value));J.value=()=>new Promise(((e,r)=>{!l.value&&h.value&&m().catch(r),t((()=>a.value),(()=>!a.value&&e(!!d(l))),{immediate:!0})})),r.provide(b,{session:{fetchSession:m,isLoading:p(a),session:p(i),claims:p(o),isAuthenticated:p(l),isFetchSessionWasNeverCalled:h},user:{fetchUser:async()=>{u.value=!0,await n.me(),u.value=!1},isLoading:p(u),user:p(g),isFetchUserWasNeverCalled:v},sdk:n,options:s,resetAuth:function(){i.value="",l.value=!1,g.value=null}})}};export{F as AccessKeyManagement,P as ApplicationsPortal,L as AuditManagement,O as Descope,E as RoleManagement,T as UserManagement,N as UserProfile,W as default,M as getCurrentTenant,q as getJwtPermissions,B as getJwtRoles,C as getRefreshToken,D as getSdk,k as getSessionToken,A as isRefreshTokenExpired,R as isSessionTokenExpired,K as routeGuard,w as useDescope,f as useSession,U as useUser};
2
2
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/vue-sdk",
3
- "version": "2.12.3",
3
+ "version": "2.12.5",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.mjs",
6
6
  "type": "module",
@@ -25,15 +25,15 @@
25
25
  ]
26
26
  },
27
27
  "dependencies": {
28
- "@descope/access-key-management-widget": "0.5.11",
29
- "@descope/role-management-widget": "0.5.3",
30
- "@descope/user-management-widget": "0.9.11",
31
- "@descope/audit-management-widget": "0.5.11",
32
- "@descope/applications-portal-widget": "0.4.11",
33
- "@descope/web-component": "3.47.6",
34
- "@descope/user-profile-widget": "0.6.19",
35
- "@descope/web-js-sdk": "1.36.0",
36
- "@descope/core-js-sdk": "2.50.0"
28
+ "@descope/audit-management-widget": "0.5.13",
29
+ "@descope/access-key-management-widget": "0.5.13",
30
+ "@descope/role-management-widget": "0.5.5",
31
+ "@descope/user-profile-widget": "0.6.21",
32
+ "@descope/user-management-widget": "0.9.13",
33
+ "@descope/applications-portal-widget": "0.4.13",
34
+ "@descope/web-js-sdk": "1.36.2",
35
+ "@descope/web-component": "3.47.8",
36
+ "@descope/core-js-sdk": "2.50.1"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "vue": ">=3"