@descope/vue-sdk 2.0.36 → 2.1.0
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 +23 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +41 -7
- package/dist/index.mjs +1 -1
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -53,6 +53,7 @@ app.mount('#app');
|
|
|
53
53
|
<!-- errorTransformer="errorTransformer" errorTransformer is a function that receives an error object and returns a string. The returned string will be displayed to the user. NOTE: errorTransformer is not required. If not provided, the error object will be displayed as is. -->
|
|
54
54
|
<!-- form="{ email: 'test@domain.com' }" form is an object the initial form context that is used in screens inputs in the flow execution. Used to inject predifined input values on flow start such as custom inputs, custom attrbiutes and other inputs. Keys passed can be accessed in flows actions, conditions and screens prefixed with "form.". NOTE: form is not required. If not provided, 'form' context key will be empty before user input. -->
|
|
55
55
|
<!-- client="{ version: '1.2.3' }" client is an object the initial client context in the flow execution. Keys passed can be accessed in flows actions and conditions prefixed with "client.". NOTE: client is not required. If not provided, context key will be empty. -->
|
|
56
|
+
<!-- styleId="my-awesome-style" Use a custom style name or keep empty to use the default style. -->
|
|
56
57
|
</template>
|
|
57
58
|
|
|
58
59
|
<script setup>
|
|
@@ -99,7 +100,7 @@ This can be helpful to implement application-specific logic. Examples:
|
|
|
99
100
|
<div v-if="isSessionLoading || isUserLoading">Loading ...</div>
|
|
100
101
|
<div v-else-if="isAuthenticated">
|
|
101
102
|
<div>Hello {{ user?.name }}</div>
|
|
102
|
-
<button @click="logout">Logout</button>
|
|
103
|
+
<button @click="logout()">Logout</button>
|
|
103
104
|
</div>
|
|
104
105
|
<div v-else>You are not logged in</div>
|
|
105
106
|
</div>
|
|
@@ -108,8 +109,8 @@ This can be helpful to implement application-specific logic. Examples:
|
|
|
108
109
|
<script setup>
|
|
109
110
|
import { useDescope, useSession, useUser } from '@descope/vue-sdk';
|
|
110
111
|
|
|
111
|
-
const { isAuthenticated, isSessionLoading } = useSession();
|
|
112
|
-
const { user, isUserLoading } = useUser();
|
|
112
|
+
const { isAuthenticated, isLoading: isSessionLoading } = useSession();
|
|
113
|
+
const { user, isLoading: isUserLoading } = useUser();
|
|
113
114
|
const { logout } = useDescope();
|
|
114
115
|
</script>
|
|
115
116
|
```
|
|
@@ -384,6 +385,25 @@ const onLogout = () => (window.location.href = '/login');
|
|
|
384
385
|
Example:
|
|
385
386
|
[User Profile](./example/components/MyUserProfile.vue)
|
|
386
387
|
|
|
388
|
+
#### Applications Portal
|
|
389
|
+
|
|
390
|
+
The `ApplicationsPortal` lets you embed an applications portal component in your app and allows the logged-in user to open applications they are assigned to.
|
|
391
|
+
|
|
392
|
+
###### Usage
|
|
393
|
+
|
|
394
|
+
```vue
|
|
395
|
+
<template>
|
|
396
|
+
<ApplicationsPortal widget-id="applications-portal-widget" />
|
|
397
|
+
</template>
|
|
398
|
+
|
|
399
|
+
<script setup>
|
|
400
|
+
import { ApplicationsPortal } from '@descope/vue-sdk';
|
|
401
|
+
</script>
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
Example:
|
|
405
|
+
[User Profile](./example/components/MyApplicationsPortal.vue)
|
|
406
|
+
|
|
387
407
|
## Code Example
|
|
388
408
|
|
|
389
409
|
You can find an example Vue app in the [example folder](./example).
|
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");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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");var s=n(t),o=n(r);const a=Symbol("$descope"),i={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.0
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("vue"),t=require("@descope/web-component"),r=require("@descope/web-js-sdk");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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");var s=n(t),o=n(r);const a=Symbol("$descope"),i={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.1.0"},u="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},d=()=>l().options,c=()=>l().sdk,p=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let g;const m=e=>{const t=o.default({persistTokens:u,storeLastAuthenticatedUser:u,...e,autoRefresh:u});return g=t,t};g=m({projectId:"temp pid"});const f=()=>u?g?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),b=()=>u?g?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),y=p(((e=f(),t)=>g?.getJwtPermissions(e,t))),v=p(((e=f(),t)=>g?.getJwtRoles(e,t)));var h=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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String}},emits:["success","error","ready"],setup(t,{emit:r}){s.default.sdkConfigOverrides={baseHeaders:i,persistTokens:!1,hooks:{get beforeRequest(){return g.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const n=t,o=r,{projectId:a,baseUrl:u,baseStaticUrl:l,storeLastAuthenticatedUser:p}=d(),m=c(),f=e.computed((()=>n.form?JSON.stringify(n.form):"")),b=e.computed((()=>n.client?JSON.stringify(n.client):"")),y=async e=>{await(m.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),o("success",e)},v=e=>o("error",e),h=e=>o("ready",e);return(r,n)=>{const s=e.resolveComponent("descope-wc");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{"project-id":e.unref(a),"base-url":e.unref(u),"base-static-url":e.unref(l),"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,"store-last-authenticated-user":e.unref(p),".errorTransformer":t.errorTransformer,"^form":f.value,"^client":b.value,onSuccess:y,onError:v,onReady:h},null,40,["project-id","base-url","base-static-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","store-last-authenticated-user",".errorTransformer","^form","^client"])])}}});h.__file="src/Descope.vue";var w=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}=d();return(o,a)=>{const i=e.resolveComponent("descope-user-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(r),"base-url":e.unref(n),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});w.__file="src/UserManagement.vue";var S=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}=d();return(o,a)=>{const i=e.resolveComponent("descope-role-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(r),"base-url":e.unref(n),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});S.__file="src/RoleManagement.vue";var k=e.defineComponent({__name:"AccessKeyManagement",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}=d();return(o,a)=>{const i=e.resolveComponent("descope-access-key-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(r),"base-url":e.unref(n),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});k.__file="src/AccessKeyManagement.vue";var U=e.defineComponent({__name:"AuditManagement",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}=d();return(o,a)=>{const i=e.resolveComponent("descope-audit-management-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(r),"base-url":e.unref(n),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});U.__file="src/AuditManagement.vue";var _=e.defineComponent({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout"],setup(t,{emit:r}){const n=r,s=e=>n("logout",e),{projectId:o,baseUrl:a,baseStaticUrl:i}=d();return(r,n)=>{const u=e.resolveComponent("descope-user-profile-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(u,{"project-id":e.unref(o),"base-url":e.unref(a),"base-static-url":e.unref(i),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId,onLogout:s},null,8,["project-id","base-url","base-static-url","^theme","^debug","widget-id"])])}}});_.__file="src/UserProfile.vue";var j=e.defineComponent({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(t){const{projectId:r,baseUrl:n,baseStaticUrl:s}=d();return(o,a)=>{const i=e.resolveComponent("descope-applications-portal-widget");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(i,{"project-id":e.unref(r),"base-url":e.unref(n),"base-static-url":e.unref(s),"^theme":t.theme,"^debug":t.debug,"widget-id":t.widgetId},null,8,["project-id","base-url","base-static-url","^theme","^debug","widget-id"])])}}});j.__file="src/ApplicationsPortal.vue";const x=e.ref(null);let B;var q={install:function(t,r){const n=m({persistTokens:!0,...r,autoRefresh:!0,baseHeaders:i});B=n;const s=e.ref(null),o=e.ref(""),u=e.ref(null),l=e.ref(null);n.onSessionTokenChange((e=>{o.value=e})),n.onUserChange((e=>{l.value=e}));const d=async()=>{s.value=!0,await n.refresh(),s.value=!1},c=e.computed((()=>null===s.value)),p=e.computed((()=>null===u.value));x.value=()=>new Promise(((t,r)=>{!o.value&&c.value&&d().catch(r),e.watch((()=>s.value),(()=>!s.value&&t(!!e.unref(o))),{immediate:!0})})),t.provide(a,{session:{fetchSession:d,isLoading:e.readonly(s),session:e.readonly(o),isFetchSessionWasNeverCalled:c},user:{fetchUser:async()=>{u.value=!0,await n.me(),u.value=!1},isLoading:e.readonly(u),user:e.readonly(l),isFetchUserWasNeverCalled:p},sdk:n,options:r})}};exports.AccessKeyManagement=k,exports.ApplicationsPortal=j,exports.AuditManagement=U,exports.Descope=h,exports.RoleManagement=S,exports.UserManagement=w,exports.UserProfile=_,exports.default=q,exports.getJwtPermissions=y,exports.getJwtRoles=v,exports.getRefreshToken=b,exports.getSdk=()=>B,exports.getSessionToken=f,exports.isRefreshTokenExpired=(e=b())=>g?.isJwtExpired(e),exports.isSessionTokenExpired=(e=f())=>g?.isJwtExpired(e),exports.routeGuard=()=>e.unref(x)?.(),exports.useDescope=c,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:r}=l(),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
|
@@ -3,7 +3,7 @@ import { App } from 'vue';
|
|
|
3
3
|
import * as _descope_web_js_sdk from '@descope/web-js-sdk';
|
|
4
4
|
import * as _descope_core_js_sdk from '@descope/core-js-sdk';
|
|
5
5
|
|
|
6
|
-
declare const _default$
|
|
6
|
+
declare const _default$7: vue.DefineComponent<{
|
|
7
7
|
flowId: {
|
|
8
8
|
type: StringConstructor;
|
|
9
9
|
required: true;
|
|
@@ -41,6 +41,9 @@ declare const _default$6: vue.DefineComponent<{
|
|
|
41
41
|
client: {
|
|
42
42
|
type: ObjectConstructor;
|
|
43
43
|
};
|
|
44
|
+
styleId: {
|
|
45
|
+
type: StringConstructor;
|
|
46
|
+
};
|
|
44
47
|
}, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
45
48
|
[key: string]: any;
|
|
46
49
|
}>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("success" | "error" | "ready")[], "success" | "error" | "ready", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -81,6 +84,9 @@ declare const _default$6: vue.DefineComponent<{
|
|
|
81
84
|
client: {
|
|
82
85
|
type: ObjectConstructor;
|
|
83
86
|
};
|
|
87
|
+
styleId: {
|
|
88
|
+
type: StringConstructor;
|
|
89
|
+
};
|
|
84
90
|
}>> & {
|
|
85
91
|
onSuccess?: (...args: any[]) => any;
|
|
86
92
|
onError?: (...args: any[]) => any;
|
|
@@ -90,7 +96,7 @@ declare const _default$6: vue.DefineComponent<{
|
|
|
90
96
|
validateOnBlur: boolean;
|
|
91
97
|
}, {}>;
|
|
92
98
|
|
|
93
|
-
declare const _default$
|
|
99
|
+
declare const _default$6: vue.DefineComponent<{
|
|
94
100
|
tenant: {
|
|
95
101
|
type: StringConstructor;
|
|
96
102
|
required: true;
|
|
@@ -126,7 +132,7 @@ declare const _default$5: vue.DefineComponent<{
|
|
|
126
132
|
debug: boolean;
|
|
127
133
|
}, {}>;
|
|
128
134
|
|
|
129
|
-
declare const _default$
|
|
135
|
+
declare const _default$5: vue.DefineComponent<{
|
|
130
136
|
tenant: {
|
|
131
137
|
type: StringConstructor;
|
|
132
138
|
required: true;
|
|
@@ -162,7 +168,7 @@ declare const _default$4: vue.DefineComponent<{
|
|
|
162
168
|
debug: boolean;
|
|
163
169
|
}, {}>;
|
|
164
170
|
|
|
165
|
-
declare const _default$
|
|
171
|
+
declare const _default$4: vue.DefineComponent<{
|
|
166
172
|
tenant: {
|
|
167
173
|
type: StringConstructor;
|
|
168
174
|
required: true;
|
|
@@ -198,7 +204,7 @@ declare const _default$3: vue.DefineComponent<{
|
|
|
198
204
|
debug: boolean;
|
|
199
205
|
}, {}>;
|
|
200
206
|
|
|
201
|
-
declare const _default$
|
|
207
|
+
declare const _default$3: vue.DefineComponent<{
|
|
202
208
|
tenant: {
|
|
203
209
|
type: StringConstructor;
|
|
204
210
|
required: true;
|
|
@@ -234,7 +240,7 @@ declare const _default$2: vue.DefineComponent<{
|
|
|
234
240
|
debug: boolean;
|
|
235
241
|
}, {}>;
|
|
236
242
|
|
|
237
|
-
declare const _default$
|
|
243
|
+
declare const _default$2: vue.DefineComponent<{
|
|
238
244
|
widgetId: {
|
|
239
245
|
type: StringConstructor;
|
|
240
246
|
required: true;
|
|
@@ -264,6 +270,34 @@ declare const _default$1: vue.DefineComponent<{
|
|
|
264
270
|
debug: boolean;
|
|
265
271
|
}, {}>;
|
|
266
272
|
|
|
273
|
+
declare const _default$1: vue.DefineComponent<{
|
|
274
|
+
widgetId: {
|
|
275
|
+
type: StringConstructor;
|
|
276
|
+
required: true;
|
|
277
|
+
};
|
|
278
|
+
theme: {
|
|
279
|
+
type: StringConstructor;
|
|
280
|
+
};
|
|
281
|
+
debug: {
|
|
282
|
+
type: BooleanConstructor;
|
|
283
|
+
};
|
|
284
|
+
}, (_ctx: any, _cache: any) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
285
|
+
[key: string]: any;
|
|
286
|
+
}>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
287
|
+
widgetId: {
|
|
288
|
+
type: StringConstructor;
|
|
289
|
+
required: true;
|
|
290
|
+
};
|
|
291
|
+
theme: {
|
|
292
|
+
type: StringConstructor;
|
|
293
|
+
};
|
|
294
|
+
debug: {
|
|
295
|
+
type: BooleanConstructor;
|
|
296
|
+
};
|
|
297
|
+
}>>, {
|
|
298
|
+
debug: boolean;
|
|
299
|
+
}, {}>;
|
|
300
|
+
|
|
267
301
|
type Options = {
|
|
268
302
|
projectId: string;
|
|
269
303
|
baseUrl?: string;
|
|
@@ -5004,5 +5038,5 @@ declare const isRefreshTokenExpired: (token?: string) => boolean;
|
|
|
5004
5038
|
declare const getJwtPermissions: (token?: any, tenant?: string) => string[];
|
|
5005
5039
|
declare const getJwtRoles: (token?: any, tenant?: string) => string[];
|
|
5006
5040
|
|
|
5007
|
-
export { _default$
|
|
5041
|
+
export { _default$4 as AccessKeyManagement, _default$1 as ApplicationsPortal, _default$3 as AuditManagement, _default$7 as Descope, _default$5 as RoleManagement, _default$6 as UserManagement, _default$2 as UserProfile, _default as default, getJwtPermissions, getJwtRoles, getRefreshToken, getSdk, getSessionToken, isRefreshTokenExpired, isSessionTokenExpired, routeGuard, useDescope, useSession, useUser };
|
|
5008
5042
|
//# sourceMappingURL=index.d.ts.map
|
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
|
|
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,ref as l,readonly as u}from"vue";import c from"@descope/web-component";import p 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 g=Symbol("$descope"),m={"x-descope-sdk-name":"vue","x-descope-sdk-version":"2.1.0"},b="undefined"!=typeof window,y=()=>{const e=r(g);if(!e)throw Error("Missing Descope context, make sure you are using the Descope plugin");return e},v=()=>y().options,h=()=>y().sdk,w=()=>{const{session:t}=y();return t.isFetchSessionWasNeverCalled.value&&t.fetchSession(),{isLoading:e((()=>t.isLoading.value||t.isFetchSessionWasNeverCalled.value)),sessionToken:t.session,isAuthenticated:e((()=>!!t.session.value))}},f=()=>{const{user:r,session:s}=y(),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}},S=e=>(...t)=>{let r;try{r=e(...t)}catch(e){console.error(e)}return r};let U;const _=e=>{const t=p({persistTokens:b,storeLastAuthenticatedUser:b,...e,autoRefresh:b});return U=t,t};U=_({projectId:"temp pid"});const j=()=>b?U?.getSessionToken():(console.warn("Get session token is not supported in SSR"),""),I=()=>b?U?.getRefreshToken():(console.warn("Get refresh token is not supported in SSR"),""),k=(e=j())=>U?.isJwtExpired(e),q=(e=I())=>U?.isJwtExpired(e),R=S(((e=j(),t)=>U?.getJwtPermissions(e,t))),M=S(((e=j(),t)=>U?.getJwtRoles(e,t)));var A=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},errorTransformer:{type:Function},form:{type:Object},client:{type:Object},styleId:{type:String}},emits:["success","error","ready"],setup(t,{emit:r}){c.sdkConfigOverrides={baseHeaders:m,persistTokens:!1,hooks:{get beforeRequest(){return U.httpClient.hooks.beforeRequest},set beforeRequest(e){}}};const s=t,l=r,{projectId:u,baseUrl:p,baseStaticUrl:g,storeLastAuthenticatedUser:b}=v(),y=h(),w=e((()=>s.form?JSON.stringify(s.form):"")),f=e((()=>s.client?JSON.stringify(s.client):"")),S=async e=>{await(y.httpClient.hooks?.afterRequest?.({},new Response(JSON.stringify(e.detail)))),l("success",e)},_=e=>l("error",e),j=e=>l("ready",e);return(e,r)=>{const s=n("descope-wc");return a(),i("div",null,[o(s,{"project-id":d(u),"base-url":d(p),"base-static-url":d(g),"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,"store-last-authenticated-user":d(b),".errorTransformer":t.errorTransformer,"^form":w.value,"^client":f.value,onSuccess:S,onError:_,onReady:j},null,40,["project-id","base-url","base-static-url","flow-id","^theme","^locale","^tenant","^debug","^telemetryKey","redirect-url","auto-focus","style-id","validate-on-blur","store-last-authenticated-user",".errorTransformer","^form","^client"])])}}});A.__file="src/Descope.vue";var B=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}=v();return(l,u)=>{const c=n("descope-user-management-widget");return a(),i("div",null,[o(c,{"project-id":d(t),"base-url":d(r),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});B.__file="src/UserManagement.vue";var T=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}=v();return(l,u)=>{const c=n("descope-role-management-widget");return a(),i("div",null,[o(c,{"project-id":d(t),"base-url":d(r),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});T.__file="src/RoleManagement.vue";var C=s({__name:"AccessKeyManagement",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}=v();return(l,u)=>{const c=n("descope-access-key-management-widget");return a(),i("div",null,[o(c,{"project-id":d(t),"base-url":d(r),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});C.__file="src/AccessKeyManagement.vue";var L=s({__name:"AuditManagement",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}=v();return(l,u)=>{const c=n("descope-audit-management-widget");return a(),i("div",null,[o(c,{"project-id":d(t),"base-url":d(r),"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-static-url","^theme","^tenant","^debug","widget-id"])])}}});L.__file="src/AuditManagement.vue";var F=s({__name:"UserProfile",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},emits:["logout"],setup(e,{emit:t}){const r=t,s=e=>r("logout",e),{projectId:l,baseUrl:u,baseStaticUrl:c}=v();return(t,r)=>{const p=n("descope-user-profile-widget");return a(),i("div",null,[o(p,{"project-id":d(l),"base-url":d(u),"base-static-url":d(c),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId,onLogout:s},null,8,["project-id","base-url","base-static-url","^theme","^debug","widget-id"])])}}});F.__file="src/UserProfile.vue";var N=s({__name:"ApplicationsPortal",props:{widgetId:{type:String,required:!0},theme:{type:String},debug:{type:Boolean}},setup(e){const{projectId:t,baseUrl:r,baseStaticUrl:s}=v();return(l,u)=>{const c=n("descope-applications-portal-widget");return a(),i("div",null,[o(c,{"project-id":d(t),"base-url":d(r),"base-static-url":d(s),"^theme":e.theme,"^debug":e.debug,"widget-id":e.widgetId},null,8,["project-id","base-url","base-static-url","^theme","^debug","widget-id"])])}}});N.__file="src/ApplicationsPortal.vue";const O=l(null),P=()=>d(O)?.();let J;const K=()=>J;var x={install:function(r,s){const n=_({persistTokens:!0,...s,autoRefresh:!0,baseHeaders:m});J=n;const a=l(null),i=l(""),o=l(null),c=l(null);n.onSessionTokenChange((e=>{i.value=e})),n.onUserChange((e=>{c.value=e}));const p=async()=>{a.value=!0,await n.refresh(),a.value=!1},b=e((()=>null===a.value)),y=e((()=>null===o.value));O.value=()=>new Promise(((e,r)=>{!i.value&&b.value&&p().catch(r),t((()=>a.value),(()=>!a.value&&e(!!d(i))),{immediate:!0})})),r.provide(g,{session:{fetchSession:p,isLoading:u(a),session:u(i),isFetchSessionWasNeverCalled:b},user:{fetchUser:async()=>{o.value=!0,await n.me(),o.value=!1},isLoading:u(o),user:u(c),isFetchUserWasNeverCalled:y},sdk:n,options:s})}};export{C as AccessKeyManagement,N as ApplicationsPortal,L as AuditManagement,A as Descope,T as RoleManagement,B as UserManagement,F as UserProfile,x as default,R as getJwtPermissions,M as getJwtRoles,I as getRefreshToken,K as getSdk,j as getSessionToken,q as isRefreshTokenExpired,k as isSessionTokenExpired,P as routeGuard,h as useDescope,w as useSession,f 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
|
+
"version": "2.1.0",
|
|
4
4
|
"main": "dist/index.cjs",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"type": "module",
|
|
@@ -25,14 +25,15 @@
|
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@descope/access-key-management-widget": "0.1.
|
|
29
|
-
"@descope/
|
|
30
|
-
"@descope/
|
|
31
|
-
"@descope/
|
|
32
|
-
"@descope/user-
|
|
33
|
-
"@descope/
|
|
34
|
-
"@descope/web-
|
|
35
|
-
"@descope/core-js-sdk": "2.
|
|
28
|
+
"@descope/access-key-management-widget": "0.1.125",
|
|
29
|
+
"@descope/role-management-widget": "0.1.123",
|
|
30
|
+
"@descope/user-profile-widget": "0.0.108",
|
|
31
|
+
"@descope/audit-management-widget": "0.1.89",
|
|
32
|
+
"@descope/user-management-widget": "0.4.126",
|
|
33
|
+
"@descope/applications-portal-widget": "0.1.0",
|
|
34
|
+
"@descope/web-component": "3.26.0",
|
|
35
|
+
"@descope/core-js-sdk": "2.27.0",
|
|
36
|
+
"@descope/web-js-sdk": "1.18.0"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
38
39
|
"vue": ">=3"
|