@descope/vue-sdk 2.0.3 → 2.0.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
@@ -40,7 +40,13 @@ app.mount('#app');
40
40
 
41
41
  ```vue
42
42
  <template>
43
- <Descope flowId="my-flow-id" @error="handleError" @success="handleSuccess" />
43
+ <p v-if="isFlowLoading">Loading...</p>
44
+ <Descope
45
+ flowId="my-flow-id"
46
+ @success="handleSuccess"
47
+ @error="handleError"
48
+ @ready="handleReady"
49
+ />
44
50
  <!-- additional props -->
45
51
  <!-- theme="dark" theme can be "light", "dark" or "os", which auto select a theme based on the OS theme. Default is "light" -->
46
52
  <!-- v-bind:debug="true" debug can be set to true to enable debug mode -->
@@ -55,13 +61,20 @@ app.mount('#app');
55
61
 
56
62
  <script setup>
57
63
  import { Descope } from '@descope/vue-sdk';
64
+ import { ref } from 'vue';
65
+
66
+ const isFlowLoading = ref(true);
67
+
68
+ const handleSuccess = (e) => {
69
+ console.log('Logged in!', e);
70
+ };
58
71
 
59
72
  const handleError = (e) => {
60
73
  console.log('Could not log in', e);
61
74
  };
62
75
 
63
- const handleSuccess = (e) => {
64
- console.log('Logged in!', e);
76
+ const handleReady = () => {
77
+ isFlowLoading.value = false;
65
78
  };
66
79
 
67
80
  // let tenantId = '<tenantId>'; // replace with your tenant ID
@@ -215,7 +228,7 @@ You can find an example Vue app in the [example folder](./example).
215
228
 
216
229
  ### Setup
217
230
 
218
- To run the examples, set your `Project ID` by setting the `DESCOPE_PROJECT_ID` env var or directly
231
+ To run the examples, set your `Project ID` by setting the `VUE_APP_DESCOPE_PROJECT_ID` env var or directly
219
232
  in the sample code.
220
233
  Find your Project ID in the [Descope console](https://app.descope.com/settings/project).
221
234
 
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),s=require("@descope/web-component"),t=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(s),n=r(t);const i=Symbol("$descope"),u={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.0.3"},a="undefined"!=typeof window,l=()=>{const s=e.inject(i);if(!s)throw Error("Missing Descope context, make sure you are using the Descope plugin");return s},c=()=>l().sdk,d=["project-id","base-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus",".errorTransformer","^form","^client"];var p=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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object}},emits:["success","error"],setup(s,{emit:t}){const r=s;o.default.sdkConfigOverrides={baseHeaders:u};const{projectId:n,baseUrl:i}=l().options,a=c(),p=e.computed((()=>r.form?JSON.stringify(r.form):"")),f=e.computed((()=>r.client?JSON.stringify(r.client):"")),m=async e=>{await(a.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),t("success",e)},v=e=>t("error",e);return(t,r)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("descope-wc",{"project-id":e.unref(n),"base-url":e.unref(i),"flow-id":s.flowId,"^theme":s.theme,"^locale":s.locale,"^tenant":s.tenant,"^debug":s.debug,"^telemetryKey":s.telemetryKey,"redirect-url":s.redirectUrl,"auto-focus":s.autoFocus,".errorTransformer":s.errorTransformer,"^form":e.unref(p),"^client":e.unref(f),onSuccess:m,onError:v},null,40,d)]))}});p.__file="src/Descope.vue";const f=e=>(...s)=>{let t;try{t=e(...s)}catch(e){console.error(e)}return t};let m;const v=e=>{const s=n.default({...e,persistTokens:a,autoRefresh:a});return m=s,s};m=v({projectId:"temp pid"});const y=()=>a?m?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),g=f(((e=y(),s)=>m?.getJwtPermissions(e,s))),h=f(((e=y(),s)=>m?.getJwtRoles(e,s))),S=e.ref(null);let w;var k={install:function(s,t){const r=v({...t,persistTokens:!0,autoRefresh:!0,baseHeaders:u});w=r;const o=e.ref(null),n=e.ref(""),a=e.ref(null),l=e.ref(null);r.onSessionTokenChange((e=>{n.value=e})),r.onUserChange((e=>{l.value=e}));const c=async()=>{o.value=!0,await r.refresh(),o.value=!1},d=e.computed((()=>null===o.value)),p=e.computed((()=>null===a.value));S.value=()=>new Promise(((s,t)=>{!n.value&&d.value&&c().catch(t),e.watch((()=>o.value),(()=>!o.value&&s(!!e.unref(n))),{immediate:!0})})),s.provide(i,{session:{fetchSession:c,isLoading:e.readonly(o),session:e.readonly(n),isFetchSessionWasNeverCalled:d},user:{fetchUser:async()=>{a.value=!0,await r.me(),a.value=!1},isLoading:e.readonly(a),user:e.readonly(l),isFetchUserWasNeverCalled:p},sdk:r,options:t})}};exports.Descope=p,exports.default=k,exports.getJwtPermissions=g,exports.getJwtRoles=h,exports.getRefreshToken=()=>a?m?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),exports.getSdk=()=>w,exports.getSessionToken=y,exports.routeGuard=()=>e.unref(S)?.(),exports.useDescope=c,exports.useSession=()=>{const{session:s}=l();return s.isFetchSessionWasNeverCalled.value&&s.fetchSession(),{isLoading:e.computed((()=>s.isLoading.value||s.isFetchSessionWasNeverCalled.value)),sessionToken:s.session,isAuthenticated:e.computed((()=>!!s.session.value))}},exports.useUser=()=>{const{user:s,session:t}=l(),r=()=>{!s.user.value&&t.session.value&&s.fetchUser()};return r(),e.watch(t.session,r),{isLoading:e.computed((()=>s.isLoading.value||s.isFetchUserWasNeverCalled.value)),user:s.user}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@descope/web-component"),s=require("@descope/web-js-sdk");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@descope/user-management-widget");var o=r(t),n=r(s);const a=Symbol("$descope"),u={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.0.5"},i="undefined"!=typeof window,l=()=>{const t=e.inject(a);if(!t)throw Error("Missing Descope context, make sure you are using the Descope plugin");return t},c=()=>l().options,d=()=>l().sdk,p=e=>(...t)=>{let s;try{s=e(...t)}catch(e){console.error(e)}return s};let f;const m=e=>{const t=n.default({...e,persistTokens:i,autoRefresh:i});return f=t,t};f=m({projectId:"temp pid"});const g=()=>i?f?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),v=p(((e=g(),t)=>f?.getJwtPermissions(e,t))),y=p(((e=g(),t)=>f?.getJwtRoles(e,t))),h=["project-id","base-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus",".errorTransformer","^form","^client"];var S=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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object}},emits:["success","error","ready"],setup(t,{emit:s}){const r=t;o.default.sdkConfigOverrides={baseHeaders:u,persistTokens:!1,hooks:{get beforeRequest(){return f.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const{projectId:n,baseUrl:a}=c(),i=d(),l=e.computed((()=>r.form?JSON.stringify(r.form):"")),p=e.computed((()=>r.client?JSON.stringify(r.client):"")),m=async e=>{await(i.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),s("success",e)},g=e=>s("error",e),v=e=>s("ready",e);return(s,r)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("descope-wc",{"project-id":e.unref(n),"base-url":e.unref(a),"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,".errorTransformer":t.errorTransformer,"^form":e.unref(l),"^client":e.unref(p),onSuccess:m,onError:g,onReady:v},null,40,h)]))}});S.__file="src/Descope.vue";const b=["project-id","base-url","^theme","^tenant","^debug"];var k=e.defineComponent({__name:"UserManagement",props:{tenant:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(t){const{projectId:s,baseUrl:r}=c();return(o,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("descope-user-management-widget",{"project-id":e.unref(s),"base-url":e.unref(r),"^theme":t.theme,"^tenant":t.tenant,"^debug":t.debug},null,8,b)]))}});k.__file="src/UserManagement.vue";const w=e.ref(null);let x;var R={install:function(t,s){const r=m({...s,persistTokens:!0,autoRefresh:!0,baseHeaders:u});x=r;const o=e.ref(null),n=e.ref(""),i=e.ref(null),l=e.ref(null);r.onSessionTokenChange((e=>{n.value=e})),r.onUserChange((e=>{l.value=e}));const c=async()=>{o.value=!0,await r.refresh(),o.value=!1},d=e.computed((()=>null===o.value)),p=e.computed((()=>null===i.value));w.value=()=>new Promise(((t,s)=>{!n.value&&d.value&&c().catch(s),e.watch((()=>o.value),(()=>!o.value&&t(!!e.unref(n))),{immediate:!0})})),t.provide(a,{session:{fetchSession:c,isLoading:e.readonly(o),session:e.readonly(n),isFetchSessionWasNeverCalled:d},user:{fetchUser:async()=>{i.value=!0,await r.me(),i.value=!1},isLoading:e.readonly(i),user:e.readonly(l),isFetchUserWasNeverCalled:p},sdk:r,options:s})}};exports.Descope=S,exports.UserManagement=k,exports.default=R,exports.getJwtPermissions=v,exports.getJwtRoles=y,exports.getRefreshToken=()=>i?f?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),exports.getSdk=()=>x,exports.getSessionToken=g,exports.routeGuard=()=>e.unref(w)?.(),exports.useDescope=d,exports.useSession=()=>{const{session:t}=l();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,isAuthenticated:e.computed((()=>!!t.session.value))}},exports.useUser=()=>{const{user:t,session:s}=l(),r=()=>{!t.user.value&&s.session.value&&t.fetchUser()};return r(),e.watch(s.session,r),{isLoading:e.computed((()=>t.isLoading.value||t.isFetchUserWasNeverCalled.value)),user:t.user}};
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import * as vue from 'vue';
2
2
  import { App } from 'vue';
3
3
  import * as _descope_core_js_sdk from '@descope/core-js-sdk';
4
4
 
5
- declare const _default$1: vue.DefineComponent<{
5
+ declare const _default$2: vue.DefineComponent<{
6
6
  flowId: {
7
7
  type: StringConstructor;
8
8
  required: true;
@@ -39,7 +39,7 @@ declare const _default$1: vue.DefineComponent<{
39
39
  };
40
40
  }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
41
41
  [key: string]: any;
42
- }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("success" | "error")[], "success" | "error", vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
42
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("success" | "error" | "ready")[], "success" | "error" | "ready", vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
43
43
  flowId: {
44
44
  type: StringConstructor;
45
45
  required: true;
@@ -77,11 +77,40 @@ declare const _default$1: vue.DefineComponent<{
77
77
  }>> & {
78
78
  onSuccess?: (...args: any[]) => any;
79
79
  onError?: (...args: any[]) => any;
80
+ onReady?: (...args: any[]) => any;
80
81
  }, {
81
82
  debug: boolean;
82
83
  autoFocus: boolean;
83
84
  }>;
84
85
 
86
+ declare const _default$1: vue.DefineComponent<{
87
+ tenant: {
88
+ type: StringConstructor;
89
+ required: true;
90
+ };
91
+ theme: {
92
+ type: StringConstructor;
93
+ };
94
+ debug: {
95
+ type: BooleanConstructor;
96
+ };
97
+ }, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
98
+ [key: string]: any;
99
+ }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
100
+ tenant: {
101
+ type: StringConstructor;
102
+ required: true;
103
+ };
104
+ theme: {
105
+ type: StringConstructor;
106
+ };
107
+ debug: {
108
+ type: BooleanConstructor;
109
+ };
110
+ }>>, {
111
+ debug: boolean;
112
+ }>;
113
+
85
114
  type Options = {
86
115
  projectId: string;
87
116
  baseUrl?: string;
@@ -2921,5 +2950,5 @@ declare const getRefreshToken: () => string;
2921
2950
  declare const getJwtPermissions: (token?: any, tenant?: string) => string[];
2922
2951
  declare const getJwtRoles: (token?: any, tenant?: string) => string[];
2923
2952
 
2924
- export { _default$1 as Descope, _default as default, getJwtPermissions, getJwtRoles, getRefreshToken, getSdk, getSessionToken, routeGuard, useDescope, useSession, useUser };
2953
+ export { _default$2 as Descope, _default$1 as UserManagement, _default as default, getJwtPermissions, getJwtRoles, getRefreshToken, getSdk, getSessionToken, routeGuard, useDescope, useSession, useUser };
2925
2954
  //# sourceMappingURL=index.d.ts.map
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- import{computed as e,watch as s,inject as o,defineComponent as t,openBlock as r,createElementBlock as n,createElementVNode as i,unref as a,ref as l,readonly as c}from"vue";import u from"@descope/web-component";import d from"@descope/web-js-sdk";const p=Symbol("$descope"),f={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.0.3"},m="undefined"!=typeof window,v=()=>{const e=o(p);if(!e)throw Error("Missing Descope context, make sure you are using the Descope plugin");return e},g=()=>v().sdk,y=()=>{const{session:s}=v();return s.isFetchSessionWasNeverCalled.value&&s.fetchSession(),{isLoading:e((()=>s.isLoading.value||s.isFetchSessionWasNeverCalled.value)),sessionToken:s.session,isAuthenticated:e((()=>!!s.session.value))}},h=()=>{const{user:o,session:t}=v(),r=()=>{!o.user.value&&t.session.value&&o.fetchUser()};return r(),s(t.session,r),{isLoading:e((()=>o.isLoading.value||o.isFetchUserWasNeverCalled.value)),user:o.user}},S=["project-id","base-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus",".errorTransformer","^form","^client"];var w=t({__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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object}},emits:["success","error"],setup(s,{emit:o}){const t=s;u.sdkConfigOverrides={baseHeaders:f};const{projectId:l,baseUrl:c}=v().options,d=g(),p=e((()=>t.form?JSON.stringify(t.form):"")),m=e((()=>t.client?JSON.stringify(t.client):"")),y=async e=>{await(d.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),o("success",e)},h=e=>o("error",e);return(e,o)=>(r(),n("div",null,[i("descope-wc",{"project-id":a(l),"base-url":a(c),"flow-id":s.flowId,"^theme":s.theme,"^locale":s.locale,"^tenant":s.tenant,"^debug":s.debug,"^telemetryKey":s.telemetryKey,"redirect-url":s.redirectUrl,"auto-focus":s.autoFocus,".errorTransformer":s.errorTransformer,"^form":a(p),"^client":a(m),onSuccess:y,onError:h},null,40,S)]))}});w.__file="src/Descope.vue";const k=e=>(...s)=>{let o;try{o=e(...s)}catch(e){console.error(e)}return o};let b;const T=e=>{const s=d({...e,persistTokens:m,autoRefresh:m});return b=s,s};b=T({projectId:"temp pid"});const C=()=>m?b?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),F=()=>m?b?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),N=k(((e=C(),s)=>b?.getJwtPermissions(e,s))),R=k(((e=C(),s)=>b?.getJwtRoles(e,s))),U=l(null),j=()=>a(U)?.();let L;const O=()=>L;var D={install:function(o,t){const r=T({...t,persistTokens:!0,autoRefresh:!0,baseHeaders:f});L=r;const n=l(null),i=l(""),u=l(null),d=l(null);r.onSessionTokenChange((e=>{i.value=e})),r.onUserChange((e=>{d.value=e}));const m=async()=>{n.value=!0,await r.refresh(),n.value=!1},v=e((()=>null===n.value)),g=e((()=>null===u.value));U.value=()=>new Promise(((e,o)=>{!i.value&&v.value&&m().catch(o),s((()=>n.value),(()=>!n.value&&e(!!a(i))),{immediate:!0})})),o.provide(p,{session:{fetchSession:m,isLoading:c(n),session:c(i),isFetchSessionWasNeverCalled:v},user:{fetchUser:async()=>{u.value=!0,await r.me(),u.value=!1},isLoading:c(u),user:c(d),isFetchUserWasNeverCalled:g},sdk:r,options:t})}};export{w as Descope,D as default,N as getJwtPermissions,R as getJwtRoles,F as getRefreshToken,O as getSdk,C as getSessionToken,j as routeGuard,g as useDescope,y as useSession,h as useUser};
1
+ import{computed as e,watch as s,inject as t,defineComponent as r,openBlock as o,createElementBlock as n,createElementVNode as a,unref as i,ref as l,readonly as u}from"vue";import c from"@descope/web-component";import d from"@descope/web-js-sdk";import"@descope/user-management-widget";const p=Symbol("$descope"),m={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.0.5"},g="undefined"!=typeof window,f=()=>{const e=t(p);if(!e)throw Error("Missing Descope context, make sure you are using the Descope plugin");return e},v=()=>f().options,y=()=>f().sdk,h=()=>{const{session:s}=f();return s.isFetchSessionWasNeverCalled.value&&s.fetchSession(),{isLoading:e((()=>s.isLoading.value||s.isFetchSessionWasNeverCalled.value)),sessionToken:s.session,isAuthenticated:e((()=>!!s.session.value))}},b=()=>{const{user:t,session:r}=f(),o=()=>{!t.user.value&&r.session.value&&t.fetchUser()};return o(),s(r.session,o),{isLoading:e((()=>t.isLoading.value||t.isFetchUserWasNeverCalled.value)),user:t.user}},S=e=>(...s)=>{let t;try{t=e(...s)}catch(e){console.error(e)}return t};let w;const k=e=>{const s=d({...e,persistTokens:g,autoRefresh:g});return w=s,s};w=k({projectId:"temp pid"});const R=()=>g?w?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),U=()=>g?w?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),T=S(((e=R(),s)=>w?.getJwtPermissions(e,s))),j=S(((e=R(),s)=>w?.getJwtRoles(e,s))),C=["project-id","base-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus",".errorTransformer","^form","^client"];var F=r({__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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object}},emits:["success","error","ready"],setup(s,{emit:t}){const r=s;c.sdkConfigOverrides={baseHeaders:m,persistTokens:!1,hooks:{get beforeRequest(){return w.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const{projectId:l,baseUrl:u}=v(),d=y(),p=e((()=>r.form?JSON.stringify(r.form):"")),g=e((()=>r.client?JSON.stringify(r.client):"")),f=async e=>{await(d.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),t("success",e)},h=e=>t("error",e),b=e=>t("ready",e);return(e,t)=>(o(),n("div",null,[a("descope-wc",{"project-id":i(l),"base-url":i(u),"flow-id":s.flowId,"^theme":s.theme,"^locale":s.locale,"^tenant":s.tenant,"^debug":s.debug,"^telemetryKey":s.telemetryKey,"redirect-url":s.redirectUrl,"auto-focus":s.autoFocus,".errorTransformer":s.errorTransformer,"^form":i(p),"^client":i(g),onSuccess:f,onError:h,onReady:b},null,40,C)]))}});F.__file="src/Descope.vue";const N=["project-id","base-url","^theme","^tenant","^debug"];var _=r({__name:"UserManagement",props:{tenant:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(e){const{projectId:s,baseUrl:t}=v();return(r,l)=>(o(),n("div",null,[a("descope-user-management-widget",{"project-id":i(s),"base-url":i(t),"^theme":e.theme,"^tenant":e.tenant,"^debug":e.debug},null,8,N)]))}});_.__file="src/UserManagement.vue";const q=l(null),L=()=>i(q)?.();let O;const D=()=>O;var I={install:function(t,r){const o=k({...r,persistTokens:!0,autoRefresh:!0,baseHeaders:m});O=o;const n=l(null),a=l(""),c=l(null),d=l(null);o.onSessionTokenChange((e=>{a.value=e})),o.onUserChange((e=>{d.value=e}));const g=async()=>{n.value=!0,await o.refresh(),n.value=!1},f=e((()=>null===n.value)),v=e((()=>null===c.value));q.value=()=>new Promise(((e,t)=>{!a.value&&f.value&&g().catch(t),s((()=>n.value),(()=>!n.value&&e(!!i(a))),{immediate:!0})})),t.provide(p,{session:{fetchSession:g,isLoading:u(n),session:u(a),isFetchSessionWasNeverCalled:f},user:{fetchUser:async()=>{c.value=!0,await o.me(),c.value=!1},isLoading:u(c),user:u(d),isFetchUserWasNeverCalled:v},sdk:o,options:r})}};export{F as Descope,_ as UserManagement,I as default,T as getJwtPermissions,j as getJwtRoles,U as getRefreshToken,D as getSdk,R as getSessionToken,L as routeGuard,y as useDescope,h as useSession,b 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.0.3",
3
+ "version": "2.0.5",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.mjs",
6
6
  "type": "module",
@@ -37,7 +37,8 @@
37
37
  ]
38
38
  },
39
39
  "dependencies": {
40
- "@descope/web-component": "3.7.0"
40
+ "@descope/user-management-widget": "0.0.9",
41
+ "@descope/web-component": "3.8.2"
41
42
  },
42
43
  "peerDependencies": {
43
44
  "vue": ">=3"