@strivacity/sdk-vue 2.0.1 → 2.1.1
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/CHANGELOG.md +24 -0
- package/LICENSE +1 -1
- package/dist/assets/login-renderer.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/assets/login-renderer.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/assets/login-renderer.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/dist/assets/login-renderer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/login-renderer.vue.d.ts +2 -0
- package/dist/types.d.ts +13 -0
- package/package.json +3 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## 2.1.1 (2025-11-19)
|
|
2
|
+
|
|
3
|
+
### 🩹 Fixes
|
|
4
|
+
|
|
5
|
+
- type module removed from package.json files ([9b2fb1f](https://github.com/Strivacity/sdk-js/commit/9b2fb1f))
|
|
6
|
+
|
|
7
|
+
### 🧱 Updated Dependencies
|
|
8
|
+
|
|
9
|
+
- Updated sdk-core to 2.1.1
|
|
10
|
+
- Updated sdk-core to 2.1.1
|
|
11
|
+
|
|
12
|
+
## 2.1.0 (2025-11-10)
|
|
13
|
+
|
|
14
|
+
### 🚀 Features
|
|
15
|
+
|
|
16
|
+
- webauthn support added ([f1b0fc4](https://github.com/Strivacity/sdk-js/commit/f1b0fc4))
|
|
17
|
+
- entry url added ([808bf81](https://github.com/Strivacity/sdk-js/commit/808bf81))
|
|
18
|
+
- nextjs headless example app added ([0c1dafa](https://github.com/Strivacity/sdk-js/commit/0c1dafa))
|
|
19
|
+
|
|
20
|
+
### 🧱 Updated Dependencies
|
|
21
|
+
|
|
22
|
+
- Updated sdk-core to 2.1.0
|
|
23
|
+
- Updated sdk-core to 2.1.0
|
|
24
|
+
|
|
1
25
|
## 2.0.1 (2025-10-07)
|
|
2
26
|
|
|
3
27
|
### 🧱 Updated Dependencies
|
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2023 Strivacity Inc. <
|
|
3
|
+
Copyright (c) 2023 Strivacity Inc. <opensource@strivacity.com>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const l=require("vue"),y=require("@strivacity/sdk-core"),
|
|
1
|
+
"use strict";const l=require("vue"),y=require("@strivacity/sdk-core"),O=require("@strivacity/sdk-core/utils/object"),B=require("../composables.cjs"),E={class:"login-renderer"},N=l.defineComponent({__name:"login-renderer",props:{params:{default:()=>({})},widgets:{default:()=>({})},sessionId:{default:null}},emits:["login","fallback","close","error","globalMessage","blockReady"],setup(h,{emit:C}){const{sdk:g}=B.useStrivacity(),d=h,i=C,p=l.defineComponent({props:{items:{type:Array,default:()=>[]},widgets:{type:Object,default:()=>({})}},setup:e=>()=>e.items.map(s=>{var n,t;if(s.type==="widget"){const r=(t=(n=o.value)==null?void 0:n.forms)==null?void 0:t.find(v=>v.id===s.formId),a=r==null?void 0:r.widgets.find(v=>v.id===s.widgetId);if(!r||!a)return f(),null;const k=e.widgets[a.type];return k?l.h(k,{key:`${r.id}.${a.id}`,formId:r.id,config:a}):(f(),null)}else return(s.type==="vertical"||s.type==="horizontal")&&e.widgets.layout?l.h(e.widgets.layout,{formId:s.items[0].formId,type:s.type},()=>l.h(p,{items:s.items,widgets:e.widgets})):(f(),null)})}),w=g.login(d.params),m=l.ref(!1),u=l.ref({}),c=l.ref({}),o=l.ref({});l.provide("nativeFlowContext",{loading:m,forms:u,messages:c,state:o,submitForm:_,triggerFallback:f,triggerClose:U,setFormValue:F,setMessage:S}),l.onMounted(async()=>{try{const e=await w.startSession(d.sessionId);e&&await b(e)}catch(e){e instanceof y.FallbackError?i("fallback",e):i("error",e)}});function f(e){const s=e||o.value.hostedUrl;if(!s)throw new Error("No hosted URL provided");i("fallback",new y.FallbackError(new URL(s)))}function U(){i("close")}function F(e,s,n){n===""&&(n=null),u.value[e]===void 0&&(u.value[e]={}),u.value[e][s]=n}function S(e,s,n){c.value[e]===void 0&&(c.value[e]={}),c.value[e][s]=n}async function _(e){try{m.value=!0;const s=await w.submitForm(e,O.unflattenObject(u.value[e]));await b(s),m.value=!1}catch(s){s instanceof y.FallbackError?i("fallback",s):i("error",s)}}async function b(e){if(await g.isAuthenticated)i("login",g.idTokenClaims);else{const s=JSON.parse(JSON.stringify(o.value)),n={hostedUrl:(e==null?void 0:e.hostedUrl)??o.value.hostedUrl,finalizeUrl:(e==null?void 0:e.finalizeUrl)??o.value.finalizeUrl,screen:(e==null?void 0:e.screen)??o.value.screen,forms:(e==null?void 0:e.forms)??o.value.forms,layout:(e==null?void 0:e.layout)??o.value.layout,messages:(e==null?void 0:e.messages)??o.value.messages,branding:(e==null?void 0:e.branding)??o.value.branding};if(n.screen!=o.value.screen){u.value={},c.value={};for(const t of n.forms??[])u.value[t.id]={},c.value[t.id]={}}Object.keys(n.messages??{}).forEach(t=>{var r,a;t==="global"?i("globalMessage",((a=(r=n.messages)==null?void 0:r.global)==null?void 0:a.text)??""):c.value[t]=n.messages[t]}),o.value=n,setTimeout(()=>{i("blockReady",{previousState:s,state:JSON.parse(JSON.stringify(o.value))})})}}return(e,s)=>{var n,t;return l.openBlock(),l.createElementBlock("div",E,[o.value.screen?(l.openBlock(),l.createBlock(l.resolveDynamicComponent(e.widgets.layout),{key:0,formId:((n=o.value.layout)==null?void 0:n.items[0]).formId,type:(t=o.value.layout)==null?void 0:t.type,tag:"form"},{default:l.withCtx(()=>{var r;return[l.createVNode(l.unref(p),{items:(r=o.value.layout)==null?void 0:r.items,widgets:e.widgets},null,8,["items","widgets"])]}),_:1},8,["formId","type"])):(l.openBlock(),l.createBlock(l.resolveDynamicComponent(e.widgets.loading),{key:1}))])}}});exports._sfc_main=N;
|
|
2
2
|
//# sourceMappingURL=login-renderer.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-renderer.vue_vue_type_script_setup_true_lang.cjs","sources":["../../src/login-renderer.vue"],"sourcesContent":["<!-- eslint-disable no-console -->\n<script lang=\"ts\" setup>\nimport type { VNode, Component, PropType } from 'vue';\nimport type { PartialRecord, NativeParams, WidgetType, LayoutWidget, LoginFlowState, Widget, IdTokenClaims, LoginFlowMessage } from '@strivacity/sdk-core';\nimport type { NativeContext, NativeFlowContextValue } from './types';\nimport { defineComponent, provide, ref, h, onMounted } from 'vue';\nimport { FallbackError } from '@strivacity/sdk-core';\nimport { unflattenObject } from '@strivacity/sdk-core/utils/object';\nimport { useStrivacity } from './composables';\n\nconst { sdk } = useStrivacity<NativeContext>();\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tparams?: NativeParams;\n\t\twidgets?: PartialRecord<WidgetType, Component>;\n\t\tsessionId?: string | null;\n\t}>(),\n\t{\n\t\tparams: () => ({}),\n\t\twidgets: () => ({}),\n\t\tsessionId: null,\n\t},\n);\nconst emit = defineEmits<{\n\tlogin: [IdTokenClaims | null | undefined];\n\tfallback: [FallbackError];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terror: [any];\n\tglobalMessage: [string];\n\tblockReady: [{ previousState: LoginFlowState; state: LoginFlowState }];\n}>();\n\nconst WidgetRenderer = defineComponent({\n\tprops: {\n\t\titems: {\n\t\t\ttype: Array as PropType<LayoutWidget['items']>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\twidgets: {\n\t\t\ttype: Object as PropType<PartialRecord<WidgetType, Component>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tsetup: (props) => () =>\n\t\tprops.items.map((item): VNode | null => {\n\t\t\tif (item.type === 'widget') {\n\t\t\t\tconst form = state.value?.forms?.find((form) => form.id === item.formId);\n\t\t\t\tconst widget = form?.widgets.find((widget) => widget.id === item.widgetId);\n\n\t\t\t\tif (!form || !widget) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst component = props.widgets[widget.type];\n\n\t\t\t\tif (!component) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(component, { key: `${form.id}.${widget.id}`, formId: form.id, config: widget });\n\t\t\t} else if (item.type === 'vertical' || item.type === 'horizontal') {\n\t\t\t\tif (!props.widgets.layout) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(props.widgets.layout, { formId: (item.items[0] as Widget).formId, type: item.type }, () =>\n\t\t\t\t\th(WidgetRenderer, { items: item.items, widgets: props.widgets }),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttriggerFallback();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n});\n\nconst loginHandler = sdk.login(props.params);\nconst loading = ref<boolean>(false);\nconst forms = ref<Record<string, Record<string, unknown>>>({});\nconst messages = ref<Record<string, Record<string, LoginFlowMessage>>>({});\nconst state = ref<LoginFlowState>({});\n\nprovide<NativeFlowContextValue>('nativeFlowContext', {\n\tloading,\n\tforms,\n\tmessages,\n\tstate,\n\tsubmitForm,\n\ttriggerFallback,\n\tsetFormValue,\n\tsetMessage,\n});\n\nonMounted(async () => {\n\ttry {\n\t\tconst data = await loginHandler.startSession(props.sessionId);\n\n\t\tif (data) {\n\t\t\tawait handleResponse(data);\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n});\n\nfunction triggerFallback(hostedUrl?: string): void {\n\tconst url = hostedUrl || state.value.hostedUrl;\n\n\tif (!url) {\n\t\tthrow new Error('No hosted URL provided');\n\t}\n\n\temit('fallback', new FallbackError(new URL(url)));\n}\n\nfunction setFormValue(formId: string, widgetId: string, value: unknown) {\n\tif (value === '') {\n\t\tvalue = null;\n\t}\n\n\tif (forms.value[formId] === undefined) {\n\t\tforms.value[formId] = {};\n\t}\n\n\tforms.value[formId][widgetId] = value;\n}\n\nfunction setMessage(formId: string, widgetId: string, value: LoginFlowMessage) {\n\tif (messages.value[formId] === undefined) {\n\t\tmessages.value[formId] = {};\n\t}\n\n\tmessages.value[formId][widgetId] = value;\n}\n\nasync function submitForm(formId: string): Promise<void> {\n\ttry {\n\t\tloading.value = true;\n\n\t\tconst data = await loginHandler.submitForm(formId, unflattenObject(forms.value[formId]));\n\t\tawait handleResponse(data);\n\n\t\tloading.value = false;\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n}\n\nasync function handleResponse(data?: LoginFlowState) {\n\tif (await sdk.isAuthenticated) {\n\t\temit('login', sdk.idTokenClaims);\n\t} else {\n\t\tconst previousState = JSON.parse(JSON.stringify(state.value));\n\t\tconst newState: LoginFlowState = {\n\t\t\thostedUrl: data?.hostedUrl ?? state.value.hostedUrl,\n\t\t\tfinalizeUrl: data?.finalizeUrl ?? state.value.finalizeUrl,\n\t\t\tscreen: data?.screen ?? state.value.screen,\n\t\t\tforms: data?.forms ?? state.value.forms,\n\t\t\tlayout: data?.layout ?? state.value.layout,\n\t\t\tmessages: data?.messages ?? state.value.messages,\n\t\t\tbranding: data?.branding ?? state.value.branding,\n\t\t};\n\n\t\tif (newState.screen != state.value.screen) {\n\t\t\tforms.value = {};\n\t\t\tmessages.value = {};\n\n\t\t\tfor (const form of newState.forms ?? []) {\n\t\t\t\tforms.value[form.id] = {};\n\t\t\t\tmessages.value[form.id] = {};\n\t\t\t}\n\t\t}\n\n\t\tObject.keys(newState.messages ?? {}).forEach((formId) => {\n\t\t\tif (formId === 'global') {\n\t\t\t\temit('globalMessage', newState.messages?.global?.text ?? '');\n\t\t\t} else {\n\t\t\t\tmessages.value[formId] = newState.messages![formId];\n\t\t\t}\n\t\t});\n\n\t\tstate.value = newState;\n\n\t\tsetTimeout(() => {\n\t\t\temit('blockReady', { previousState, state: JSON.parse(JSON.stringify(state.value)) });\n\t\t});\n\t}\n}\n</script>\n\n<template>\n\t<div class=\"login-renderer\">\n\t\t<component :is=\"widgets.layout\" v-if=\"state.screen\" :formId=\"(state.layout?.items[0] as Widget).formId\" :type=\"state.layout?.type\" tag=\"form\">\n\t\t\t<WidgetRenderer :items=\"state.layout?.items\" :widgets=\"widgets\" />\n\t\t</component>\n\t\t<component :is=\"widgets.loading\" v-else />\n\t</div>\n</template>\n"],"names":["sdk","useStrivacity","props","__props","emit","__emit","WidgetRenderer","defineComponent","item","form","_b","_a","state","widget","triggerFallback","component","h","loginHandler","loading","ref","forms","messages","provide","submitForm","setFormValue","setMessage","onMounted","data","handleResponse","error","FallbackError","hostedUrl","url","formId","widgetId","value","unflattenObject","previousState","newState","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","widgets","_createVNode","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"login-renderer.vue_vue_type_script_setup_true_lang.cjs","sources":["../../src/login-renderer.vue"],"sourcesContent":["<!-- eslint-disable no-console -->\n<script lang=\"ts\" setup>\nimport type { VNode, Component, PropType } from 'vue';\nimport type { PartialRecord, NativeParams, WidgetType, LayoutWidget, LoginFlowState, Widget, IdTokenClaims, LoginFlowMessage } from '@strivacity/sdk-core';\nimport type { NativeContext, NativeFlowContextValue } from './types';\nimport { defineComponent, provide, ref, h, onMounted } from 'vue';\nimport { FallbackError } from '@strivacity/sdk-core';\nimport { unflattenObject } from '@strivacity/sdk-core/utils/object';\nimport { useStrivacity } from './composables';\n\nconst { sdk } = useStrivacity<NativeContext>();\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tparams?: NativeParams;\n\t\twidgets?: PartialRecord<WidgetType, Component>;\n\t\tsessionId?: string | null;\n\t}>(),\n\t{\n\t\tparams: () => ({}),\n\t\twidgets: () => ({}),\n\t\tsessionId: null,\n\t},\n);\nconst emit = defineEmits<{\n\tlogin: [IdTokenClaims | null | undefined];\n\tfallback: [FallbackError];\n\tclose: [];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terror: [any];\n\tglobalMessage: [string];\n\tblockReady: [{ previousState: LoginFlowState; state: LoginFlowState }];\n}>();\n\nconst WidgetRenderer = defineComponent({\n\tprops: {\n\t\titems: {\n\t\t\ttype: Array as PropType<LayoutWidget['items']>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\twidgets: {\n\t\t\ttype: Object as PropType<PartialRecord<WidgetType, Component>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tsetup: (props) => () =>\n\t\tprops.items.map((item): VNode | null => {\n\t\t\tif (item.type === 'widget') {\n\t\t\t\tconst form = state.value?.forms?.find((form) => form.id === item.formId);\n\t\t\t\tconst widget = form?.widgets.find((widget) => widget.id === item.widgetId);\n\n\t\t\t\tif (!form || !widget) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst component = props.widgets[widget.type];\n\n\t\t\t\tif (!component) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(component, { key: `${form.id}.${widget.id}`, formId: form.id, config: widget });\n\t\t\t} else if (item.type === 'vertical' || item.type === 'horizontal') {\n\t\t\t\tif (!props.widgets.layout) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(props.widgets.layout, { formId: (item.items[0] as Widget).formId, type: item.type }, () =>\n\t\t\t\t\th(WidgetRenderer, { items: item.items, widgets: props.widgets }),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttriggerFallback();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n});\n\nconst loginHandler = sdk.login(props.params);\nconst loading = ref<boolean>(false);\nconst forms = ref<Record<string, Record<string, unknown>>>({});\nconst messages = ref<Record<string, Record<string, LoginFlowMessage>>>({});\nconst state = ref<LoginFlowState>({});\n\nprovide<NativeFlowContextValue>('nativeFlowContext', {\n\tloading,\n\tforms,\n\tmessages,\n\tstate,\n\tsubmitForm,\n\ttriggerFallback,\n\ttriggerClose,\n\tsetFormValue,\n\tsetMessage,\n});\n\nonMounted(async () => {\n\ttry {\n\t\tconst data = await loginHandler.startSession(props.sessionId);\n\n\t\tif (data) {\n\t\t\tawait handleResponse(data);\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n});\n\nfunction triggerFallback(hostedUrl?: string): void {\n\tconst url = hostedUrl || state.value.hostedUrl;\n\n\tif (!url) {\n\t\tthrow new Error('No hosted URL provided');\n\t}\n\n\temit('fallback', new FallbackError(new URL(url)));\n}\n\nfunction triggerClose(): void {\n\temit('close');\n}\n\nfunction setFormValue(formId: string, widgetId: string, value: unknown) {\n\tif (value === '') {\n\t\tvalue = null;\n\t}\n\n\tif (forms.value[formId] === undefined) {\n\t\tforms.value[formId] = {};\n\t}\n\n\tforms.value[formId][widgetId] = value;\n}\n\nfunction setMessage(formId: string, widgetId: string, value: LoginFlowMessage) {\n\tif (messages.value[formId] === undefined) {\n\t\tmessages.value[formId] = {};\n\t}\n\n\tmessages.value[formId][widgetId] = value;\n}\n\nasync function submitForm(formId: string): Promise<void> {\n\ttry {\n\t\tloading.value = true;\n\n\t\tconst data = await loginHandler.submitForm(formId, unflattenObject(forms.value[formId]));\n\t\tawait handleResponse(data);\n\n\t\tloading.value = false;\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n}\n\nasync function handleResponse(data?: LoginFlowState) {\n\tif (await sdk.isAuthenticated) {\n\t\temit('login', sdk.idTokenClaims);\n\t} else {\n\t\tconst previousState = JSON.parse(JSON.stringify(state.value));\n\t\tconst newState: LoginFlowState = {\n\t\t\thostedUrl: data?.hostedUrl ?? state.value.hostedUrl,\n\t\t\tfinalizeUrl: data?.finalizeUrl ?? state.value.finalizeUrl,\n\t\t\tscreen: data?.screen ?? state.value.screen,\n\t\t\tforms: data?.forms ?? state.value.forms,\n\t\t\tlayout: data?.layout ?? state.value.layout,\n\t\t\tmessages: data?.messages ?? state.value.messages,\n\t\t\tbranding: data?.branding ?? state.value.branding,\n\t\t};\n\n\t\tif (newState.screen != state.value.screen) {\n\t\t\tforms.value = {};\n\t\t\tmessages.value = {};\n\n\t\t\tfor (const form of newState.forms ?? []) {\n\t\t\t\tforms.value[form.id] = {};\n\t\t\t\tmessages.value[form.id] = {};\n\t\t\t}\n\t\t}\n\n\t\tObject.keys(newState.messages ?? {}).forEach((formId) => {\n\t\t\tif (formId === 'global') {\n\t\t\t\temit('globalMessage', newState.messages?.global?.text ?? '');\n\t\t\t} else {\n\t\t\t\tmessages.value[formId] = newState.messages![formId];\n\t\t\t}\n\t\t});\n\n\t\tstate.value = newState;\n\n\t\tsetTimeout(() => {\n\t\t\temit('blockReady', { previousState, state: JSON.parse(JSON.stringify(state.value)) });\n\t\t});\n\t}\n}\n</script>\n\n<template>\n\t<div class=\"login-renderer\">\n\t\t<component :is=\"widgets.layout\" v-if=\"state.screen\" :formId=\"(state.layout?.items[0] as Widget).formId\" :type=\"state.layout?.type\" tag=\"form\">\n\t\t\t<WidgetRenderer :items=\"state.layout?.items\" :widgets=\"widgets\" />\n\t\t</component>\n\t\t<component :is=\"widgets.loading\" v-else />\n\t</div>\n</template>\n"],"names":["sdk","useStrivacity","props","__props","emit","__emit","WidgetRenderer","defineComponent","item","form","_b","_a","state","widget","triggerFallback","component","h","loginHandler","loading","ref","forms","messages","provide","submitForm","triggerClose","setFormValue","setMessage","onMounted","data","handleResponse","error","FallbackError","hostedUrl","url","formId","widgetId","value","unflattenObject","previousState","newState","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","widgets","_createVNode","_unref"],"mappings":"6YAUA,KAAM,CAAE,IAAAA,CAAA,EAAQC,gBAAA,EAEVC,EAAQC,EAYRC,EAAOC,EAUPC,EAAiBC,EAAAA,gBAAgB,CACtC,MAAO,CACN,MAAO,CACN,KAAM,MACN,QAAS,IAAM,CAAA,CAAC,EAEjB,QAAS,CACR,KAAM,OACN,QAAS,KAAO,CAAA,EAAC,CAClB,EAED,MAAQL,GAAU,IACjBA,EAAM,MAAM,IAAKM,GAAuB,SACvC,GAAIA,EAAK,OAAS,SAAU,CAC3B,MAAMC,GAAOC,GAAAC,EAAAC,EAAM,QAAN,YAAAD,EAAa,QAAb,YAAAD,EAAoB,KAAMD,GAASA,EAAK,KAAOD,EAAK,QAC3DK,EAASJ,GAAA,YAAAA,EAAM,QAAQ,KAAMI,GAAWA,EAAO,KAAOL,EAAK,UAEjE,GAAI,CAACC,GAAQ,CAACI,EACb,OAAAC,EAAA,EACO,KAGR,MAAMC,EAAYb,EAAM,QAAQW,EAAO,IAAI,EAE3C,OAAKE,EAKEC,EAAAA,EAAED,EAAW,CAAE,IAAK,GAAGN,EAAK,EAAE,IAAII,EAAO,EAAE,GAAI,OAAQJ,EAAK,GAAI,OAAQI,EAAQ,GAJtFC,EAAA,EACO,KAG+E,aAC7EN,EAAK,OAAS,YAAcA,EAAK,OAAS,eAC/CN,EAAM,QAAQ,OAKZc,EAAAA,EAAEd,EAAM,QAAQ,OAAQ,CAAE,OAASM,EAAK,MAAM,CAAC,EAAa,OAAQ,KAAMA,EAAK,IAAA,EAAQ,IAC7FQ,EAAAA,EAAEV,EAAgB,CAAE,MAAOE,EAAK,MAAO,QAASN,EAAM,OAAA,CAAS,CAAA,GAGhEY,EAAA,EACO,KACR,CACA,CAAA,CACF,EAEKG,EAAejB,EAAI,MAAME,EAAM,MAAM,EACrCgB,EAAUC,EAAAA,IAAa,EAAK,EAC5BC,EAAQD,EAAAA,IAA6C,EAAE,EACvDE,EAAWF,EAAAA,IAAsD,EAAE,EACnEP,EAAQO,EAAAA,IAAoB,EAAE,EAEpCG,EAAAA,QAAgC,oBAAqB,CACpD,QAAAJ,EACA,MAAAE,EACA,SAAAC,EACA,MAAAT,EACA,WAAAW,EACA,gBAAAT,EACA,aAAAU,EACA,aAAAC,EACA,WAAAC,CAAA,CACA,EAEDC,EAAAA,UAAU,SAAY,CACrB,GAAI,CACH,MAAMC,EAAO,MAAMX,EAAa,aAAaf,EAAM,SAAS,EAExD0B,GACH,MAAMC,EAAeD,CAAI,CAC1B,OACQE,EAAO,CACXA,aAAiBC,EAAAA,cACpB3B,EAAK,WAAY0B,CAAK,EAEtB1B,EAAK,QAAS0B,CAAK,CACpB,CACD,CACA,EAED,SAAShB,EAAgBkB,EAA0B,CAClD,MAAMC,EAAMD,GAAapB,EAAM,MAAM,UAErC,GAAI,CAACqB,EACJ,MAAM,IAAI,MAAM,wBAAwB,EAGzC7B,EAAK,WAAY,IAAI2B,EAAAA,cAAc,IAAI,IAAIE,CAAG,CAAC,CAAC,CAAA,CAGjD,SAAST,GAAqB,CAC7BpB,EAAK,OAAO,CAAA,CAGb,SAASqB,EAAaS,EAAgBC,EAAkBC,EAAgB,CACnEA,IAAU,KACbA,EAAQ,MAGLhB,EAAM,MAAMc,CAAM,IAAM,SAC3Bd,EAAM,MAAMc,CAAM,EAAI,CAAA,GAGvBd,EAAM,MAAMc,CAAM,EAAEC,CAAQ,EAAIC,CAAA,CAGjC,SAASV,EAAWQ,EAAgBC,EAAkBC,EAAyB,CAC1Ef,EAAS,MAAMa,CAAM,IAAM,SAC9Bb,EAAS,MAAMa,CAAM,EAAI,CAAA,GAG1Bb,EAAS,MAAMa,CAAM,EAAEC,CAAQ,EAAIC,CAAA,CAGpC,eAAeb,EAAWW,EAA+B,CACxD,GAAI,CACHhB,EAAQ,MAAQ,GAEhB,MAAMU,EAAO,MAAMX,EAAa,WAAWiB,EAAQG,EAAAA,gBAAgBjB,EAAM,MAAMc,CAAM,CAAC,CAAC,EACvF,MAAML,EAAeD,CAAI,EAEzBV,EAAQ,MAAQ,EAAA,OACRY,EAAO,CACXA,aAAiBC,EAAAA,cACpB3B,EAAK,WAAY0B,CAAK,EAEtB1B,EAAK,QAAS0B,CAAK,CACpB,CACD,CAGD,eAAeD,EAAeD,EAAuB,CACpD,GAAI,MAAM5B,EAAI,gBACbI,EAAK,QAASJ,EAAI,aAAa,MACzB,CACN,MAAMsC,EAAgB,KAAK,MAAM,KAAK,UAAU1B,EAAM,KAAK,CAAC,EACtD2B,EAA2B,CAChC,WAAWX,GAAA,YAAAA,EAAM,YAAahB,EAAM,MAAM,UAC1C,aAAagB,GAAA,YAAAA,EAAM,cAAehB,EAAM,MAAM,YAC9C,QAAQgB,GAAA,YAAAA,EAAM,SAAUhB,EAAM,MAAM,OACpC,OAAOgB,GAAA,YAAAA,EAAM,QAAShB,EAAM,MAAM,MAClC,QAAQgB,GAAA,YAAAA,EAAM,SAAUhB,EAAM,MAAM,OACpC,UAAUgB,GAAA,YAAAA,EAAM,WAAYhB,EAAM,MAAM,SACxC,UAAUgB,GAAA,YAAAA,EAAM,WAAYhB,EAAM,MAAM,QAAA,EAGzC,GAAI2B,EAAS,QAAU3B,EAAM,MAAM,OAAQ,CAC1CQ,EAAM,MAAQ,CAAA,EACdC,EAAS,MAAQ,CAAA,EAEjB,UAAWZ,KAAQ8B,EAAS,OAAS,CAAA,EACpCnB,EAAM,MAAMX,EAAK,EAAE,EAAI,CAAA,EACvBY,EAAS,MAAMZ,EAAK,EAAE,EAAI,CAAA,CAC3B,CAGD,OAAO,KAAK8B,EAAS,UAAY,CAAA,CAAE,EAAE,QAASL,GAAW,SACpDA,IAAW,SACd9B,EAAK,kBAAiBM,GAAAC,EAAA4B,EAAS,WAAT,YAAA5B,EAAmB,SAAnB,YAAAD,EAA2B,OAAQ,EAAE,EAE3DW,EAAS,MAAMa,CAAM,EAAIK,EAAS,SAAUL,CAAM,CACnD,CACA,EAEDtB,EAAM,MAAQ2B,EAEd,WAAW,IAAM,CAChBnC,EAAK,aAAc,CAAE,cAAAkC,EAAe,MAAO,KAAK,MAAM,KAAK,UAAU1B,EAAM,KAAK,CAAC,CAAA,CAAG,CAAA,CACpF,CAAA,CACF,uBAKA,OAAA4B,YAAA,EAAAC,qBAKM,MALNC,EAKM,CAJiC9B,EAAA,MAAM,sBAA5C+B,cAEYC,EAAAA,wBAFIC,EAAAA,QAAQ,MAAM,EAAA,OAAuB,SAASlC,EAAAC,EAAA,MAAM,SAAN,YAAAD,EAAc,UAAoB,OAAS,MAAMD,EAAAE,EAAA,MAAM,SAAN,YAAAF,EAAc,KAAM,IAAI,MAAA,qBACtI,IAAA,OAAkE,OAAlEoC,cAAkEC,EAAAA,MAAAzC,CAAA,EAAA,CAAjD,OAAOK,EAAAC,EAAA,MAAM,SAAN,YAAAD,EAAc,MAAQ,QAASkC,EAAAA,OAAAA,2EAExDF,EAAAA,YAA0CC,EAAAA,wBAA1BC,EAAAA,QAAQ,OAAO,EAAA,CAAA,IAAA,EAAA,EAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent as S,ref as f,h as y,provide as
|
|
1
|
+
import{defineComponent as S,ref as f,h as y,provide as J,onMounted as M,createElementBlock as j,openBlock as d,createBlock as O,resolveDynamicComponent as _,withCtx as B,createVNode as I,unref as x}from"vue";import{FallbackError as p}from"@strivacity/sdk-core";import{unflattenObject as A}from"@strivacity/sdk-core/utils/object";import{useStrivacity as L}from"../composables.mjs";const T={class:"login-renderer"},W=S({__name:"login-renderer",props:{params:{default:()=>({})},widgets:{default:()=>({})},sessionId:{default:null}},emits:["login","fallback","close","error","globalMessage","blockReady"],setup(C,{emit:F}){const{sdk:g}=L(),w=C,i=F,b=S({props:{items:{type:Array,default:()=>[]},widgets:{type:Object,default:()=>({})}},setup:e=>()=>e.items.map(s=>{var t,o;if(s.type==="widget"){const n=(o=(t=l.value)==null?void 0:t.forms)==null?void 0:o.find(v=>v.id===s.formId),a=n==null?void 0:n.widgets.find(v=>v.id===s.widgetId);if(!n||!a)return c(),null;const U=e.widgets[a.type];return U?y(U,{key:`${n.id}.${a.id}`,formId:n.id,config:a}):(c(),null)}else return(s.type==="vertical"||s.type==="horizontal")&&e.widgets.layout?y(e.widgets.layout,{formId:s.items[0].formId,type:s.type},()=>y(b,{items:s.items,widgets:e.widgets})):(c(),null)})}),k=g.login(w.params),m=f(!1),r=f({}),u=f({}),l=f({});J("nativeFlowContext",{loading:m,forms:r,messages:u,state:l,submitForm:E,triggerFallback:c,triggerClose:N,setFormValue:R,setMessage:z}),M(async()=>{try{const e=await k.startSession(w.sessionId);e&&await h(e)}catch(e){e instanceof p?i("fallback",e):i("error",e)}});function c(e){const s=e||l.value.hostedUrl;if(!s)throw new Error("No hosted URL provided");i("fallback",new p(new URL(s)))}function N(){i("close")}function R(e,s,t){t===""&&(t=null),r.value[e]===void 0&&(r.value[e]={}),r.value[e][s]=t}function z(e,s,t){u.value[e]===void 0&&(u.value[e]={}),u.value[e][s]=t}async function E(e){try{m.value=!0;const s=await k.submitForm(e,A(r.value[e]));await h(s),m.value=!1}catch(s){s instanceof p?i("fallback",s):i("error",s)}}async function h(e){if(await g.isAuthenticated)i("login",g.idTokenClaims);else{const s=JSON.parse(JSON.stringify(l.value)),t={hostedUrl:(e==null?void 0:e.hostedUrl)??l.value.hostedUrl,finalizeUrl:(e==null?void 0:e.finalizeUrl)??l.value.finalizeUrl,screen:(e==null?void 0:e.screen)??l.value.screen,forms:(e==null?void 0:e.forms)??l.value.forms,layout:(e==null?void 0:e.layout)??l.value.layout,messages:(e==null?void 0:e.messages)??l.value.messages,branding:(e==null?void 0:e.branding)??l.value.branding};if(t.screen!=l.value.screen){r.value={},u.value={};for(const o of t.forms??[])r.value[o.id]={},u.value[o.id]={}}Object.keys(t.messages??{}).forEach(o=>{var n,a;o==="global"?i("globalMessage",((a=(n=t.messages)==null?void 0:n.global)==null?void 0:a.text)??""):u.value[o]=t.messages[o]}),l.value=t,setTimeout(()=>{i("blockReady",{previousState:s,state:JSON.parse(JSON.stringify(l.value))})})}}return(e,s)=>{var t,o;return d(),j("div",T,[l.value.screen?(d(),O(_(e.widgets.layout),{key:0,formId:((t=l.value.layout)==null?void 0:t.items[0]).formId,type:(o=l.value.layout)==null?void 0:o.type,tag:"form"},{default:B(()=>{var n;return[I(x(b),{items:(n=l.value.layout)==null?void 0:n.items,widgets:e.widgets},null,8,["items","widgets"])]}),_:1},8,["formId","type"])):(d(),O(_(e.widgets.loading),{key:1}))])}}});export{W as _};
|
|
2
2
|
//# sourceMappingURL=login-renderer.vue_vue_type_script_setup_true_lang.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login-renderer.vue_vue_type_script_setup_true_lang.mjs","sources":["../../src/login-renderer.vue"],"sourcesContent":["<!-- eslint-disable no-console -->\n<script lang=\"ts\" setup>\nimport type { VNode, Component, PropType } from 'vue';\nimport type { PartialRecord, NativeParams, WidgetType, LayoutWidget, LoginFlowState, Widget, IdTokenClaims, LoginFlowMessage } from '@strivacity/sdk-core';\nimport type { NativeContext, NativeFlowContextValue } from './types';\nimport { defineComponent, provide, ref, h, onMounted } from 'vue';\nimport { FallbackError } from '@strivacity/sdk-core';\nimport { unflattenObject } from '@strivacity/sdk-core/utils/object';\nimport { useStrivacity } from './composables';\n\nconst { sdk } = useStrivacity<NativeContext>();\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tparams?: NativeParams;\n\t\twidgets?: PartialRecord<WidgetType, Component>;\n\t\tsessionId?: string | null;\n\t}>(),\n\t{\n\t\tparams: () => ({}),\n\t\twidgets: () => ({}),\n\t\tsessionId: null,\n\t},\n);\nconst emit = defineEmits<{\n\tlogin: [IdTokenClaims | null | undefined];\n\tfallback: [FallbackError];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terror: [any];\n\tglobalMessage: [string];\n\tblockReady: [{ previousState: LoginFlowState; state: LoginFlowState }];\n}>();\n\nconst WidgetRenderer = defineComponent({\n\tprops: {\n\t\titems: {\n\t\t\ttype: Array as PropType<LayoutWidget['items']>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\twidgets: {\n\t\t\ttype: Object as PropType<PartialRecord<WidgetType, Component>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tsetup: (props) => () =>\n\t\tprops.items.map((item): VNode | null => {\n\t\t\tif (item.type === 'widget') {\n\t\t\t\tconst form = state.value?.forms?.find((form) => form.id === item.formId);\n\t\t\t\tconst widget = form?.widgets.find((widget) => widget.id === item.widgetId);\n\n\t\t\t\tif (!form || !widget) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst component = props.widgets[widget.type];\n\n\t\t\t\tif (!component) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(component, { key: `${form.id}.${widget.id}`, formId: form.id, config: widget });\n\t\t\t} else if (item.type === 'vertical' || item.type === 'horizontal') {\n\t\t\t\tif (!props.widgets.layout) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(props.widgets.layout, { formId: (item.items[0] as Widget).formId, type: item.type }, () =>\n\t\t\t\t\th(WidgetRenderer, { items: item.items, widgets: props.widgets }),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttriggerFallback();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n});\n\nconst loginHandler = sdk.login(props.params);\nconst loading = ref<boolean>(false);\nconst forms = ref<Record<string, Record<string, unknown>>>({});\nconst messages = ref<Record<string, Record<string, LoginFlowMessage>>>({});\nconst state = ref<LoginFlowState>({});\n\nprovide<NativeFlowContextValue>('nativeFlowContext', {\n\tloading,\n\tforms,\n\tmessages,\n\tstate,\n\tsubmitForm,\n\ttriggerFallback,\n\tsetFormValue,\n\tsetMessage,\n});\n\nonMounted(async () => {\n\ttry {\n\t\tconst data = await loginHandler.startSession(props.sessionId);\n\n\t\tif (data) {\n\t\t\tawait handleResponse(data);\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n});\n\nfunction triggerFallback(hostedUrl?: string): void {\n\tconst url = hostedUrl || state.value.hostedUrl;\n\n\tif (!url) {\n\t\tthrow new Error('No hosted URL provided');\n\t}\n\n\temit('fallback', new FallbackError(new URL(url)));\n}\n\nfunction setFormValue(formId: string, widgetId: string, value: unknown) {\n\tif (value === '') {\n\t\tvalue = null;\n\t}\n\n\tif (forms.value[formId] === undefined) {\n\t\tforms.value[formId] = {};\n\t}\n\n\tforms.value[formId][widgetId] = value;\n}\n\nfunction setMessage(formId: string, widgetId: string, value: LoginFlowMessage) {\n\tif (messages.value[formId] === undefined) {\n\t\tmessages.value[formId] = {};\n\t}\n\n\tmessages.value[formId][widgetId] = value;\n}\n\nasync function submitForm(formId: string): Promise<void> {\n\ttry {\n\t\tloading.value = true;\n\n\t\tconst data = await loginHandler.submitForm(formId, unflattenObject(forms.value[formId]));\n\t\tawait handleResponse(data);\n\n\t\tloading.value = false;\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n}\n\nasync function handleResponse(data?: LoginFlowState) {\n\tif (await sdk.isAuthenticated) {\n\t\temit('login', sdk.idTokenClaims);\n\t} else {\n\t\tconst previousState = JSON.parse(JSON.stringify(state.value));\n\t\tconst newState: LoginFlowState = {\n\t\t\thostedUrl: data?.hostedUrl ?? state.value.hostedUrl,\n\t\t\tfinalizeUrl: data?.finalizeUrl ?? state.value.finalizeUrl,\n\t\t\tscreen: data?.screen ?? state.value.screen,\n\t\t\tforms: data?.forms ?? state.value.forms,\n\t\t\tlayout: data?.layout ?? state.value.layout,\n\t\t\tmessages: data?.messages ?? state.value.messages,\n\t\t\tbranding: data?.branding ?? state.value.branding,\n\t\t};\n\n\t\tif (newState.screen != state.value.screen) {\n\t\t\tforms.value = {};\n\t\t\tmessages.value = {};\n\n\t\t\tfor (const form of newState.forms ?? []) {\n\t\t\t\tforms.value[form.id] = {};\n\t\t\t\tmessages.value[form.id] = {};\n\t\t\t}\n\t\t}\n\n\t\tObject.keys(newState.messages ?? {}).forEach((formId) => {\n\t\t\tif (formId === 'global') {\n\t\t\t\temit('globalMessage', newState.messages?.global?.text ?? '');\n\t\t\t} else {\n\t\t\t\tmessages.value[formId] = newState.messages![formId];\n\t\t\t}\n\t\t});\n\n\t\tstate.value = newState;\n\n\t\tsetTimeout(() => {\n\t\t\temit('blockReady', { previousState, state: JSON.parse(JSON.stringify(state.value)) });\n\t\t});\n\t}\n}\n</script>\n\n<template>\n\t<div class=\"login-renderer\">\n\t\t<component :is=\"widgets.layout\" v-if=\"state.screen\" :formId=\"(state.layout?.items[0] as Widget).formId\" :type=\"state.layout?.type\" tag=\"form\">\n\t\t\t<WidgetRenderer :items=\"state.layout?.items\" :widgets=\"widgets\" />\n\t\t</component>\n\t\t<component :is=\"widgets.loading\" v-else />\n\t</div>\n</template>\n"],"names":["sdk","useStrivacity","props","__props","emit","__emit","WidgetRenderer","defineComponent","item","form","_b","_a","state","widget","triggerFallback","component","h","loginHandler","loading","ref","forms","messages","provide","submitForm","setFormValue","setMessage","onMounted","data","handleResponse","error","FallbackError","hostedUrl","url","formId","widgetId","value","unflattenObject","previousState","newState","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","widgets","_createVNode","_unref"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"login-renderer.vue_vue_type_script_setup_true_lang.mjs","sources":["../../src/login-renderer.vue"],"sourcesContent":["<!-- eslint-disable no-console -->\n<script lang=\"ts\" setup>\nimport type { VNode, Component, PropType } from 'vue';\nimport type { PartialRecord, NativeParams, WidgetType, LayoutWidget, LoginFlowState, Widget, IdTokenClaims, LoginFlowMessage } from '@strivacity/sdk-core';\nimport type { NativeContext, NativeFlowContextValue } from './types';\nimport { defineComponent, provide, ref, h, onMounted } from 'vue';\nimport { FallbackError } from '@strivacity/sdk-core';\nimport { unflattenObject } from '@strivacity/sdk-core/utils/object';\nimport { useStrivacity } from './composables';\n\nconst { sdk } = useStrivacity<NativeContext>();\n\nconst props = withDefaults(\n\tdefineProps<{\n\t\tparams?: NativeParams;\n\t\twidgets?: PartialRecord<WidgetType, Component>;\n\t\tsessionId?: string | null;\n\t}>(),\n\t{\n\t\tparams: () => ({}),\n\t\twidgets: () => ({}),\n\t\tsessionId: null,\n\t},\n);\nconst emit = defineEmits<{\n\tlogin: [IdTokenClaims | null | undefined];\n\tfallback: [FallbackError];\n\tclose: [];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\terror: [any];\n\tglobalMessage: [string];\n\tblockReady: [{ previousState: LoginFlowState; state: LoginFlowState }];\n}>();\n\nconst WidgetRenderer = defineComponent({\n\tprops: {\n\t\titems: {\n\t\t\ttype: Array as PropType<LayoutWidget['items']>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\twidgets: {\n\t\t\ttype: Object as PropType<PartialRecord<WidgetType, Component>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tsetup: (props) => () =>\n\t\tprops.items.map((item): VNode | null => {\n\t\t\tif (item.type === 'widget') {\n\t\t\t\tconst form = state.value?.forms?.find((form) => form.id === item.formId);\n\t\t\t\tconst widget = form?.widgets.find((widget) => widget.id === item.widgetId);\n\n\t\t\t\tif (!form || !widget) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst component = props.widgets[widget.type];\n\n\t\t\t\tif (!component) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(component, { key: `${form.id}.${widget.id}`, formId: form.id, config: widget });\n\t\t\t} else if (item.type === 'vertical' || item.type === 'horizontal') {\n\t\t\t\tif (!props.widgets.layout) {\n\t\t\t\t\ttriggerFallback();\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn h(props.widgets.layout, { formId: (item.items[0] as Widget).formId, type: item.type }, () =>\n\t\t\t\t\th(WidgetRenderer, { items: item.items, widgets: props.widgets }),\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttriggerFallback();\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}),\n});\n\nconst loginHandler = sdk.login(props.params);\nconst loading = ref<boolean>(false);\nconst forms = ref<Record<string, Record<string, unknown>>>({});\nconst messages = ref<Record<string, Record<string, LoginFlowMessage>>>({});\nconst state = ref<LoginFlowState>({});\n\nprovide<NativeFlowContextValue>('nativeFlowContext', {\n\tloading,\n\tforms,\n\tmessages,\n\tstate,\n\tsubmitForm,\n\ttriggerFallback,\n\ttriggerClose,\n\tsetFormValue,\n\tsetMessage,\n});\n\nonMounted(async () => {\n\ttry {\n\t\tconst data = await loginHandler.startSession(props.sessionId);\n\n\t\tif (data) {\n\t\t\tawait handleResponse(data);\n\t\t}\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n});\n\nfunction triggerFallback(hostedUrl?: string): void {\n\tconst url = hostedUrl || state.value.hostedUrl;\n\n\tif (!url) {\n\t\tthrow new Error('No hosted URL provided');\n\t}\n\n\temit('fallback', new FallbackError(new URL(url)));\n}\n\nfunction triggerClose(): void {\n\temit('close');\n}\n\nfunction setFormValue(formId: string, widgetId: string, value: unknown) {\n\tif (value === '') {\n\t\tvalue = null;\n\t}\n\n\tif (forms.value[formId] === undefined) {\n\t\tforms.value[formId] = {};\n\t}\n\n\tforms.value[formId][widgetId] = value;\n}\n\nfunction setMessage(formId: string, widgetId: string, value: LoginFlowMessage) {\n\tif (messages.value[formId] === undefined) {\n\t\tmessages.value[formId] = {};\n\t}\n\n\tmessages.value[formId][widgetId] = value;\n}\n\nasync function submitForm(formId: string): Promise<void> {\n\ttry {\n\t\tloading.value = true;\n\n\t\tconst data = await loginHandler.submitForm(formId, unflattenObject(forms.value[formId]));\n\t\tawait handleResponse(data);\n\n\t\tloading.value = false;\n\t} catch (error) {\n\t\tif (error instanceof FallbackError) {\n\t\t\temit('fallback', error);\n\t\t} else {\n\t\t\temit('error', error);\n\t\t}\n\t}\n}\n\nasync function handleResponse(data?: LoginFlowState) {\n\tif (await sdk.isAuthenticated) {\n\t\temit('login', sdk.idTokenClaims);\n\t} else {\n\t\tconst previousState = JSON.parse(JSON.stringify(state.value));\n\t\tconst newState: LoginFlowState = {\n\t\t\thostedUrl: data?.hostedUrl ?? state.value.hostedUrl,\n\t\t\tfinalizeUrl: data?.finalizeUrl ?? state.value.finalizeUrl,\n\t\t\tscreen: data?.screen ?? state.value.screen,\n\t\t\tforms: data?.forms ?? state.value.forms,\n\t\t\tlayout: data?.layout ?? state.value.layout,\n\t\t\tmessages: data?.messages ?? state.value.messages,\n\t\t\tbranding: data?.branding ?? state.value.branding,\n\t\t};\n\n\t\tif (newState.screen != state.value.screen) {\n\t\t\tforms.value = {};\n\t\t\tmessages.value = {};\n\n\t\t\tfor (const form of newState.forms ?? []) {\n\t\t\t\tforms.value[form.id] = {};\n\t\t\t\tmessages.value[form.id] = {};\n\t\t\t}\n\t\t}\n\n\t\tObject.keys(newState.messages ?? {}).forEach((formId) => {\n\t\t\tif (formId === 'global') {\n\t\t\t\temit('globalMessage', newState.messages?.global?.text ?? '');\n\t\t\t} else {\n\t\t\t\tmessages.value[formId] = newState.messages![formId];\n\t\t\t}\n\t\t});\n\n\t\tstate.value = newState;\n\n\t\tsetTimeout(() => {\n\t\t\temit('blockReady', { previousState, state: JSON.parse(JSON.stringify(state.value)) });\n\t\t});\n\t}\n}\n</script>\n\n<template>\n\t<div class=\"login-renderer\">\n\t\t<component :is=\"widgets.layout\" v-if=\"state.screen\" :formId=\"(state.layout?.items[0] as Widget).formId\" :type=\"state.layout?.type\" tag=\"form\">\n\t\t\t<WidgetRenderer :items=\"state.layout?.items\" :widgets=\"widgets\" />\n\t\t</component>\n\t\t<component :is=\"widgets.loading\" v-else />\n\t</div>\n</template>\n"],"names":["sdk","useStrivacity","props","__props","emit","__emit","WidgetRenderer","defineComponent","item","form","_b","_a","state","widget","triggerFallback","component","h","loginHandler","loading","ref","forms","messages","provide","submitForm","triggerClose","setFormValue","setMessage","onMounted","data","handleResponse","error","FallbackError","hostedUrl","url","formId","widgetId","value","unflattenObject","previousState","newState","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_resolveDynamicComponent","widgets","_createVNode","_unref"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),s=require("@strivacity/sdk-core"),y=require("@strivacity/sdk-core/utils/HttpClient"),T=require("@strivacity/sdk-core/storages/LocalStorage"),k=require("@strivacity/sdk-core/storages/SessionStorage"),g=require("./composables.cjs"),S=require("./assets/login-renderer.vue_vue_type_script_setup_true_lang.cjs"),v=require("@strivacity/sdk-core/utils/credentials");require("@strivacity/sdk-core/utils/object");exports.isAuthenticated=()=>Promise.resolve(!1);const h=a=>{const e=s.initFlow(a);return{install:o=>{const i=r.ref(!0),p=r.ref(e.options),c=r.ref(!1),l=r.ref(null),u=r.ref(null),d=r.ref(null),f=r.ref(!0),b=r.ref(null),t=async()=>{c.value=await e.isAuthenticated,l.value=e.idTokenClaims||null,u.value=e.accessToken||null,d.value=e.refreshToken||null,f.value=e.accessTokenExpired,b.value=e.accessTokenExpirationDate||null,i.value&&(i.value=!1)};exports.isAuthenticated=()=>e.isAuthenticated,e.subscribeToEvent("init",t),e.subscribeToEvent("loggedIn",t),e.subscribeToEvent("sessionLoaded",t),e.subscribeToEvent("tokenRefreshed",t),e.subscribeToEvent("tokenRefreshFailed",t),e.subscribeToEvent("logoutInitiated",t),e.subscribeToEvent("tokenRevoked",t),e.subscribeToEvent("tokenRevokeFailed",t),o.component("StyLoginRenderer",S._sfc_main),o.provide(g.STRIVACITY_SDK,{sdk:e,loading:i,options:p,isAuthenticated:c,idTokenClaims:l,accessToken:u,refreshToken:d,accessTokenExpired:f,accessTokenExpirationDate:b,login:async n=>{if(e.options.mode==="native")return e.login(n);await e.login(n),await t()},register:async n=>{if(e.options.mode==="native")return e.register(n);await e.register(n),await t()},entry:async n=>await e.entry(n),refresh:async()=>{await e.refresh(),await t()},revoke:async()=>{await e.revoke(),await t()},logout:async n=>{await e.logout(n),await t()},handleCallback:async n=>{await e.handleCallback(n),await t()}})}}};Object.defineProperty(exports,"HttpClient",{enumerable:!0,get:()=>y.HttpClient});Object.defineProperty(exports,"LocalStorage",{enumerable:!0,get:()=>T.LocalStorage});Object.defineProperty(exports,"SessionStorage",{enumerable:!0,get:()=>k.SessionStorage});exports.useStrivacity=g.useStrivacity;Object.defineProperty(exports,"createCredential",{enumerable:!0,get:()=>v.createCredential});Object.defineProperty(exports,"getCredential",{enumerable:!0,get:()=>v.getCredential});exports.createStrivacitySDK=h;Object.keys(s).forEach(a=>{a!=="default"&&!Object.prototype.hasOwnProperty.call(exports,a)&&Object.defineProperty(exports,a,{enumerable:!0,get:()=>s[a]})});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import type { IdTokenClaims, SDKOptions } from '@strivacity/sdk-core';\nimport type { PopupFlow } from '@strivacity/sdk-core/flows/PopupFlow';\nimport type { RedirectFlow } from '@strivacity/sdk-core/flows/RedirectFlow';\nimport type { NativeFlow } from '@strivacity/sdk-core/flows/NativeFlow';\nimport { type App, ref } from 'vue';\nimport { initFlow } from '@strivacity/sdk-core';\nimport { HttpClient } from '@strivacity/sdk-core/utils/HttpClient';\nimport { LocalStorage } from '@strivacity/sdk-core/storages/LocalStorage';\nimport { SessionStorage } from '@strivacity/sdk-core/storages/SessionStorage';\nimport { STRIVACITY_SDK, useStrivacity } from './composables';\nimport LoginRendererComponent from './login-renderer.vue';\n\nexport * from '@strivacity/sdk-core';\nexport type * from './types';\nexport type { PopupFlow, RedirectFlow, NativeFlow };\nexport { HttpClient, LocalStorage, SessionStorage, useStrivacity };\n\n/**\n * Checks if the user is authenticated.\n *\n * @returns {Promise<boolean>} A promise that resolves to `true` if the user is authenticated, otherwise `false`.\n */\nexport let isAuthenticated: () => Promise<boolean> = () => Promise.resolve(false);\n\n/**\n * Creates a Strivacity SDK plugin for Vue.\n *\n * @param {SDKOptions} options - The options used to configure the SDK.\n *\n * @returns {Plugin} A Vue plugin that can be installed in the application.\n */\nexport const createStrivacitySDK = (options: SDKOptions) => {\n\tconst sdk = initFlow(options);\n\n\tconst plugin = {\n\t\tinstall: (app: App) => {\n\t\t\tconst loadingRef = ref<boolean>(true);\n\t\t\tconst optionsRef = ref<SDKOptions>(sdk.options);\n\t\t\tconst isAuthenticatedRef = ref<boolean>(false);\n\t\t\tconst idTokenClaimsRef = ref<IdTokenClaims | null>(null);\n\t\t\tconst accessTokenRef = ref<string | null>(null);\n\t\t\tconst refreshTokenRef = ref<string | null>(null);\n\t\t\tconst accessTokenExpiredRef = ref<boolean>(true);\n\t\t\tconst accessTokenExpirationDateRef = ref<number | null>(null);\n\n\t\t\tconst updateSession = async () => {\n\t\t\t\tisAuthenticatedRef.value = await sdk.isAuthenticated;\n\t\t\t\tidTokenClaimsRef.value = sdk.idTokenClaims || null;\n\t\t\t\taccessTokenRef.value = sdk.accessToken || null;\n\t\t\t\trefreshTokenRef.value = sdk.refreshToken || null;\n\t\t\t\taccessTokenExpiredRef.value = sdk.accessTokenExpired;\n\t\t\t\taccessTokenExpirationDateRef.value = sdk.accessTokenExpirationDate || null;\n\n\t\t\t\tif (loadingRef.value) {\n\t\t\t\t\tloadingRef.value = false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tisAuthenticated = () => sdk.isAuthenticated;\n\n\t\t\tsdk.subscribeToEvent('init', updateSession);\n\t\t\tsdk.subscribeToEvent('loggedIn', updateSession);\n\t\t\tsdk.subscribeToEvent('sessionLoaded', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshed', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshFailed', updateSession);\n\t\t\tsdk.subscribeToEvent('logoutInitiated', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevoked', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevokeFailed', updateSession);\n\n\t\t\tapp.component('StyLoginRenderer', LoginRendererComponent);\n\t\t\tapp.provide(STRIVACITY_SDK, {\n\t\t\t\tsdk: sdk,\n\t\t\t\tloading: loadingRef,\n\t\t\t\toptions: optionsRef,\n\t\t\t\tisAuthenticated: isAuthenticatedRef,\n\t\t\t\tidTokenClaims: idTokenClaimsRef,\n\t\t\t\taccessToken: accessTokenRef,\n\t\t\t\trefreshToken: refreshTokenRef,\n\t\t\t\taccessTokenExpired: accessTokenExpiredRef,\n\t\t\t\taccessTokenExpirationDate: accessTokenExpirationDateRef,\n\n\t\t\t\tlogin: async (options?: Parameters<PopupFlow['login'] | RedirectFlow['login'] | NativeFlow['login']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.login(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.login(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tregister: async (options?: Parameters<PopupFlow['register'] | RedirectFlow['register'] | NativeFlow['register']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.register(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.register(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trefresh: async () => {\n\t\t\t\t\tawait sdk.refresh();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trevoke: async () => {\n\t\t\t\t\tawait sdk.revoke();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tlogout: async (options?: Parameters<PopupFlow['logout'] | RedirectFlow['logout']>[0]) => {\n\t\t\t\t\tawait sdk.logout(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\thandleCallback: async (url?: Parameters<PopupFlow['handleCallback'] | RedirectFlow['handleCallback'] | NativeFlow['handleCallback']>[0]) => {\n\t\t\t\t\tawait sdk.handleCallback(url);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t};\n\n\treturn plugin;\n};\n"],"names":["isAuthenticated","createStrivacitySDK","options","sdk","initFlow","app","loadingRef","ref","optionsRef","isAuthenticatedRef","idTokenClaimsRef","accessTokenRef","refreshTokenRef","accessTokenExpiredRef","accessTokenExpirationDateRef","updateSession","LoginRendererComponent","STRIVACITY_SDK","url"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["import type { IdTokenClaims, SDKOptions } from '@strivacity/sdk-core';\nimport type { PopupFlow } from '@strivacity/sdk-core/flows/PopupFlow';\nimport type { RedirectFlow } from '@strivacity/sdk-core/flows/RedirectFlow';\nimport type { NativeFlow } from '@strivacity/sdk-core/flows/NativeFlow';\nimport { type App, ref } from 'vue';\nimport { initFlow } from '@strivacity/sdk-core';\nimport { HttpClient } from '@strivacity/sdk-core/utils/HttpClient';\nimport { LocalStorage } from '@strivacity/sdk-core/storages/LocalStorage';\nimport { SessionStorage } from '@strivacity/sdk-core/storages/SessionStorage';\nimport { STRIVACITY_SDK, useStrivacity } from './composables';\nimport LoginRendererComponent from './login-renderer.vue';\n\nexport * from '@strivacity/sdk-core';\nexport { createCredential, getCredential } from '@strivacity/sdk-core/utils/credentials';\nexport type * from './types';\nexport type { PopupFlow, RedirectFlow, NativeFlow };\nexport { HttpClient, LocalStorage, SessionStorage, useStrivacity };\n\n/**\n * Checks if the user is authenticated.\n *\n * @returns {Promise<boolean>} A promise that resolves to `true` if the user is authenticated, otherwise `false`.\n */\nexport let isAuthenticated: () => Promise<boolean> = () => Promise.resolve(false);\n\n/**\n * Creates a Strivacity SDK plugin for Vue.\n *\n * @param {SDKOptions} options - The options used to configure the SDK.\n *\n * @returns {Plugin} A Vue plugin that can be installed in the application.\n */\nexport const createStrivacitySDK = (options: SDKOptions) => {\n\tconst sdk = initFlow(options);\n\n\tconst plugin = {\n\t\tinstall: (app: App) => {\n\t\t\tconst loadingRef = ref<boolean>(true);\n\t\t\tconst optionsRef = ref<SDKOptions>(sdk.options);\n\t\t\tconst isAuthenticatedRef = ref<boolean>(false);\n\t\t\tconst idTokenClaimsRef = ref<IdTokenClaims | null>(null);\n\t\t\tconst accessTokenRef = ref<string | null>(null);\n\t\t\tconst refreshTokenRef = ref<string | null>(null);\n\t\t\tconst accessTokenExpiredRef = ref<boolean>(true);\n\t\t\tconst accessTokenExpirationDateRef = ref<number | null>(null);\n\n\t\t\tconst updateSession = async () => {\n\t\t\t\tisAuthenticatedRef.value = await sdk.isAuthenticated;\n\t\t\t\tidTokenClaimsRef.value = sdk.idTokenClaims || null;\n\t\t\t\taccessTokenRef.value = sdk.accessToken || null;\n\t\t\t\trefreshTokenRef.value = sdk.refreshToken || null;\n\t\t\t\taccessTokenExpiredRef.value = sdk.accessTokenExpired;\n\t\t\t\taccessTokenExpirationDateRef.value = sdk.accessTokenExpirationDate || null;\n\n\t\t\t\tif (loadingRef.value) {\n\t\t\t\t\tloadingRef.value = false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tisAuthenticated = () => sdk.isAuthenticated;\n\n\t\t\tsdk.subscribeToEvent('init', updateSession);\n\t\t\tsdk.subscribeToEvent('loggedIn', updateSession);\n\t\t\tsdk.subscribeToEvent('sessionLoaded', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshed', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshFailed', updateSession);\n\t\t\tsdk.subscribeToEvent('logoutInitiated', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevoked', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevokeFailed', updateSession);\n\n\t\t\tapp.component('StyLoginRenderer', LoginRendererComponent);\n\t\t\tapp.provide(STRIVACITY_SDK, {\n\t\t\t\tsdk: sdk,\n\t\t\t\tloading: loadingRef,\n\t\t\t\toptions: optionsRef,\n\t\t\t\tisAuthenticated: isAuthenticatedRef,\n\t\t\t\tidTokenClaims: idTokenClaimsRef,\n\t\t\t\taccessToken: accessTokenRef,\n\t\t\t\trefreshToken: refreshTokenRef,\n\t\t\t\taccessTokenExpired: accessTokenExpiredRef,\n\t\t\t\taccessTokenExpirationDate: accessTokenExpirationDateRef,\n\n\t\t\t\tlogin: async (options?: Parameters<PopupFlow['login'] | RedirectFlow['login'] | NativeFlow['login']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.login(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.login(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tregister: async (options?: Parameters<PopupFlow['register'] | RedirectFlow['register'] | NativeFlow['register']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.register(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.register(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tentry: async (url?: string) => {\n\t\t\t\t\treturn await sdk.entry(url);\n\t\t\t\t},\n\t\t\t\trefresh: async () => {\n\t\t\t\t\tawait sdk.refresh();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trevoke: async () => {\n\t\t\t\t\tawait sdk.revoke();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tlogout: async (options?: Parameters<PopupFlow['logout'] | RedirectFlow['logout']>[0]) => {\n\t\t\t\t\tawait sdk.logout(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\thandleCallback: async (url?: Parameters<PopupFlow['handleCallback'] | RedirectFlow['handleCallback'] | NativeFlow['handleCallback']>[0]) => {\n\t\t\t\t\tawait sdk.handleCallback(url);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t};\n\n\treturn plugin;\n};\n"],"names":["isAuthenticated","createStrivacitySDK","options","sdk","initFlow","app","loadingRef","ref","optionsRef","isAuthenticatedRef","idTokenClaimsRef","accessTokenRef","refreshTokenRef","accessTokenExpiredRef","accessTokenExpirationDateRef","updateSession","LoginRendererComponent","STRIVACITY_SDK","url"],"mappings":"2fAuBWA,QAAAA,gBAA0C,IAAM,QAAQ,QAAQ,EAAK,EASzE,MAAMC,EAAuBC,GAAwB,CAC3D,MAAMC,EAAMC,EAAAA,SAASF,CAAO,EAwF5B,MAtFe,CACd,QAAUG,GAAa,CACtB,MAAMC,EAAaC,EAAAA,IAAa,EAAI,EAC9BC,EAAaD,EAAAA,IAAgBJ,EAAI,OAAO,EACxCM,EAAqBF,EAAAA,IAAa,EAAK,EACvCG,EAAmBH,EAAAA,IAA0B,IAAI,EACjDI,EAAiBJ,EAAAA,IAAmB,IAAI,EACxCK,EAAkBL,EAAAA,IAAmB,IAAI,EACzCM,EAAwBN,EAAAA,IAAa,EAAI,EACzCO,EAA+BP,EAAAA,IAAmB,IAAI,EAEtDQ,EAAgB,SAAY,CACjCN,EAAmB,MAAQ,MAAMN,EAAI,gBACrCO,EAAiB,MAAQP,EAAI,eAAiB,KAC9CQ,EAAe,MAAQR,EAAI,aAAe,KAC1CS,EAAgB,MAAQT,EAAI,cAAgB,KAC5CU,EAAsB,MAAQV,EAAI,mBAClCW,EAA6B,MAAQX,EAAI,2BAA6B,KAElEG,EAAW,QACdA,EAAW,MAAQ,GACpB,EAGDN,QAAAA,gBAAkB,IAAMG,EAAI,gBAE5BA,EAAI,iBAAiB,OAAQY,CAAa,EAC1CZ,EAAI,iBAAiB,WAAYY,CAAa,EAC9CZ,EAAI,iBAAiB,gBAAiBY,CAAa,EACnDZ,EAAI,iBAAiB,iBAAkBY,CAAa,EACpDZ,EAAI,iBAAiB,qBAAsBY,CAAa,EACxDZ,EAAI,iBAAiB,kBAAmBY,CAAa,EACrDZ,EAAI,iBAAiB,eAAgBY,CAAa,EAClDZ,EAAI,iBAAiB,oBAAqBY,CAAa,EAEvDV,EAAI,UAAU,mBAAoBW,WAAsB,EACxDX,EAAI,QAAQY,iBAAgB,CAC3B,IAAAd,EACA,QAASG,EACT,QAASE,EACT,gBAAiBC,EACjB,cAAeC,EACf,YAAaC,EACb,aAAcC,EACd,mBAAoBC,EACpB,0BAA2BC,EAE3B,MAAO,MAAOZ,GAA8F,CAC3G,GAAIC,EAAI,QAAQ,OAAS,SACxB,OAAOA,EAAI,MAAMD,CAAO,EAGzB,MAAMC,EAAI,MAAMD,CAAO,EACvB,MAAMa,EAAA,CAAc,EAErB,SAAU,MAAOb,GAAuG,CACvH,GAAIC,EAAI,QAAQ,OAAS,SACxB,OAAOA,EAAI,SAASD,CAAO,EAG5B,MAAMC,EAAI,SAASD,CAAO,EAC1B,MAAMa,EAAA,CAAc,EAErB,MAAO,MAAOG,GACN,MAAMf,EAAI,MAAMe,CAAG,EAE3B,QAAS,SAAY,CACpB,MAAMf,EAAI,QAAA,EACV,MAAMY,EAAA,CAAc,EAErB,OAAQ,SAAY,CACnB,MAAMZ,EAAI,OAAA,EACV,MAAMY,EAAA,CAAc,EAErB,OAAQ,MAAOb,GAA0E,CACxF,MAAMC,EAAI,OAAOD,CAAO,EACxB,MAAMa,EAAA,CAAc,EAErB,eAAgB,MAAOG,GAAqH,CAC3I,MAAMf,EAAI,eAAee,CAAG,EAC5B,MAAMH,EAAA,CAAc,CACrB,CACA,CAAA,CACF,CAIF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { LocalStorage } from '@strivacity/sdk-core/storages/LocalStorage';
|
|
|
8
8
|
import { SessionStorage } from '@strivacity/sdk-core/storages/SessionStorage';
|
|
9
9
|
import { useStrivacity } from './composables';
|
|
10
10
|
export * from '@strivacity/sdk-core';
|
|
11
|
+
export { createCredential, getCredential } from '@strivacity/sdk-core/utils/credentials';
|
|
11
12
|
export type * from './types';
|
|
12
13
|
export type { PopupFlow, RedirectFlow, NativeFlow };
|
|
13
14
|
export { HttpClient, LocalStorage, SessionStorage, useStrivacity };
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ref as n}from"vue";import{initFlow as v}from"@strivacity/sdk-core";export*from"@strivacity/sdk-core";import{HttpClient as A}from"@strivacity/sdk-core/utils/HttpClient";import{LocalStorage as I}from"@strivacity/sdk-core/storages/LocalStorage";import{SessionStorage as F}from"@strivacity/sdk-core/storages/SessionStorage";import{STRIVACITY_SDK as
|
|
1
|
+
import{ref as n}from"vue";import{initFlow as v}from"@strivacity/sdk-core";export*from"@strivacity/sdk-core";import{HttpClient as A}from"@strivacity/sdk-core/utils/HttpClient";import{LocalStorage as I}from"@strivacity/sdk-core/storages/LocalStorage";import{SessionStorage as F}from"@strivacity/sdk-core/storages/SessionStorage";import{STRIVACITY_SDK as p}from"./composables.mjs";import{useStrivacity as K}from"./composables.mjs";import{_ as T}from"./assets/login-renderer.vue_vue_type_script_setup_true_lang.mjs";import{createCredential as P,getCredential as V}from"@strivacity/sdk-core/utils/credentials";import"@strivacity/sdk-core/utils/object";let m=()=>Promise.resolve(!1);const x=d=>{const e=v(d);return{install:i=>{const a=n(!0),k=n(e.options),s=n(!1),r=n(null),c=n(null),l=n(null),u=n(!0),f=n(null),t=async()=>{s.value=await e.isAuthenticated,r.value=e.idTokenClaims||null,c.value=e.accessToken||null,l.value=e.refreshToken||null,u.value=e.accessTokenExpired,f.value=e.accessTokenExpirationDate||null,a.value&&(a.value=!1)};m=()=>e.isAuthenticated,e.subscribeToEvent("init",t),e.subscribeToEvent("loggedIn",t),e.subscribeToEvent("sessionLoaded",t),e.subscribeToEvent("tokenRefreshed",t),e.subscribeToEvent("tokenRefreshFailed",t),e.subscribeToEvent("logoutInitiated",t),e.subscribeToEvent("tokenRevoked",t),e.subscribeToEvent("tokenRevokeFailed",t),i.component("StyLoginRenderer",T),i.provide(p,{sdk:e,loading:a,options:k,isAuthenticated:s,idTokenClaims:r,accessToken:c,refreshToken:l,accessTokenExpired:u,accessTokenExpirationDate:f,login:async o=>{if(e.options.mode==="native")return e.login(o);await e.login(o),await t()},register:async o=>{if(e.options.mode==="native")return e.register(o);await e.register(o),await t()},entry:async o=>await e.entry(o),refresh:async()=>{await e.refresh(),await t()},revoke:async()=>{await e.revoke(),await t()},logout:async o=>{await e.logout(o),await t()},handleCallback:async o=>{await e.handleCallback(o),await t()}})}}};export{A as HttpClient,I as LocalStorage,F as SessionStorage,P as createCredential,x as createStrivacitySDK,V as getCredential,m as isAuthenticated,K as useStrivacity};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { IdTokenClaims, SDKOptions } from '@strivacity/sdk-core';\nimport type { PopupFlow } from '@strivacity/sdk-core/flows/PopupFlow';\nimport type { RedirectFlow } from '@strivacity/sdk-core/flows/RedirectFlow';\nimport type { NativeFlow } from '@strivacity/sdk-core/flows/NativeFlow';\nimport { type App, ref } from 'vue';\nimport { initFlow } from '@strivacity/sdk-core';\nimport { HttpClient } from '@strivacity/sdk-core/utils/HttpClient';\nimport { LocalStorage } from '@strivacity/sdk-core/storages/LocalStorage';\nimport { SessionStorage } from '@strivacity/sdk-core/storages/SessionStorage';\nimport { STRIVACITY_SDK, useStrivacity } from './composables';\nimport LoginRendererComponent from './login-renderer.vue';\n\nexport * from '@strivacity/sdk-core';\nexport type * from './types';\nexport type { PopupFlow, RedirectFlow, NativeFlow };\nexport { HttpClient, LocalStorage, SessionStorage, useStrivacity };\n\n/**\n * Checks if the user is authenticated.\n *\n * @returns {Promise<boolean>} A promise that resolves to `true` if the user is authenticated, otherwise `false`.\n */\nexport let isAuthenticated: () => Promise<boolean> = () => Promise.resolve(false);\n\n/**\n * Creates a Strivacity SDK plugin for Vue.\n *\n * @param {SDKOptions} options - The options used to configure the SDK.\n *\n * @returns {Plugin} A Vue plugin that can be installed in the application.\n */\nexport const createStrivacitySDK = (options: SDKOptions) => {\n\tconst sdk = initFlow(options);\n\n\tconst plugin = {\n\t\tinstall: (app: App) => {\n\t\t\tconst loadingRef = ref<boolean>(true);\n\t\t\tconst optionsRef = ref<SDKOptions>(sdk.options);\n\t\t\tconst isAuthenticatedRef = ref<boolean>(false);\n\t\t\tconst idTokenClaimsRef = ref<IdTokenClaims | null>(null);\n\t\t\tconst accessTokenRef = ref<string | null>(null);\n\t\t\tconst refreshTokenRef = ref<string | null>(null);\n\t\t\tconst accessTokenExpiredRef = ref<boolean>(true);\n\t\t\tconst accessTokenExpirationDateRef = ref<number | null>(null);\n\n\t\t\tconst updateSession = async () => {\n\t\t\t\tisAuthenticatedRef.value = await sdk.isAuthenticated;\n\t\t\t\tidTokenClaimsRef.value = sdk.idTokenClaims || null;\n\t\t\t\taccessTokenRef.value = sdk.accessToken || null;\n\t\t\t\trefreshTokenRef.value = sdk.refreshToken || null;\n\t\t\t\taccessTokenExpiredRef.value = sdk.accessTokenExpired;\n\t\t\t\taccessTokenExpirationDateRef.value = sdk.accessTokenExpirationDate || null;\n\n\t\t\t\tif (loadingRef.value) {\n\t\t\t\t\tloadingRef.value = false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tisAuthenticated = () => sdk.isAuthenticated;\n\n\t\t\tsdk.subscribeToEvent('init', updateSession);\n\t\t\tsdk.subscribeToEvent('loggedIn', updateSession);\n\t\t\tsdk.subscribeToEvent('sessionLoaded', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshed', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshFailed', updateSession);\n\t\t\tsdk.subscribeToEvent('logoutInitiated', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevoked', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevokeFailed', updateSession);\n\n\t\t\tapp.component('StyLoginRenderer', LoginRendererComponent);\n\t\t\tapp.provide(STRIVACITY_SDK, {\n\t\t\t\tsdk: sdk,\n\t\t\t\tloading: loadingRef,\n\t\t\t\toptions: optionsRef,\n\t\t\t\tisAuthenticated: isAuthenticatedRef,\n\t\t\t\tidTokenClaims: idTokenClaimsRef,\n\t\t\t\taccessToken: accessTokenRef,\n\t\t\t\trefreshToken: refreshTokenRef,\n\t\t\t\taccessTokenExpired: accessTokenExpiredRef,\n\t\t\t\taccessTokenExpirationDate: accessTokenExpirationDateRef,\n\n\t\t\t\tlogin: async (options?: Parameters<PopupFlow['login'] | RedirectFlow['login'] | NativeFlow['login']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.login(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.login(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tregister: async (options?: Parameters<PopupFlow['register'] | RedirectFlow['register'] | NativeFlow['register']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.register(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.register(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trefresh: async () => {\n\t\t\t\t\tawait sdk.refresh();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trevoke: async () => {\n\t\t\t\t\tawait sdk.revoke();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tlogout: async (options?: Parameters<PopupFlow['logout'] | RedirectFlow['logout']>[0]) => {\n\t\t\t\t\tawait sdk.logout(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\thandleCallback: async (url?: Parameters<PopupFlow['handleCallback'] | RedirectFlow['handleCallback'] | NativeFlow['handleCallback']>[0]) => {\n\t\t\t\t\tawait sdk.handleCallback(url);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t};\n\n\treturn plugin;\n};\n"],"names":["isAuthenticated","createStrivacitySDK","options","sdk","initFlow","app","loadingRef","ref","optionsRef","isAuthenticatedRef","idTokenClaimsRef","accessTokenRef","refreshTokenRef","accessTokenExpiredRef","accessTokenExpirationDateRef","updateSession","LoginRendererComponent","STRIVACITY_SDK","url"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import type { IdTokenClaims, SDKOptions } from '@strivacity/sdk-core';\nimport type { PopupFlow } from '@strivacity/sdk-core/flows/PopupFlow';\nimport type { RedirectFlow } from '@strivacity/sdk-core/flows/RedirectFlow';\nimport type { NativeFlow } from '@strivacity/sdk-core/flows/NativeFlow';\nimport { type App, ref } from 'vue';\nimport { initFlow } from '@strivacity/sdk-core';\nimport { HttpClient } from '@strivacity/sdk-core/utils/HttpClient';\nimport { LocalStorage } from '@strivacity/sdk-core/storages/LocalStorage';\nimport { SessionStorage } from '@strivacity/sdk-core/storages/SessionStorage';\nimport { STRIVACITY_SDK, useStrivacity } from './composables';\nimport LoginRendererComponent from './login-renderer.vue';\n\nexport * from '@strivacity/sdk-core';\nexport { createCredential, getCredential } from '@strivacity/sdk-core/utils/credentials';\nexport type * from './types';\nexport type { PopupFlow, RedirectFlow, NativeFlow };\nexport { HttpClient, LocalStorage, SessionStorage, useStrivacity };\n\n/**\n * Checks if the user is authenticated.\n *\n * @returns {Promise<boolean>} A promise that resolves to `true` if the user is authenticated, otherwise `false`.\n */\nexport let isAuthenticated: () => Promise<boolean> = () => Promise.resolve(false);\n\n/**\n * Creates a Strivacity SDK plugin for Vue.\n *\n * @param {SDKOptions} options - The options used to configure the SDK.\n *\n * @returns {Plugin} A Vue plugin that can be installed in the application.\n */\nexport const createStrivacitySDK = (options: SDKOptions) => {\n\tconst sdk = initFlow(options);\n\n\tconst plugin = {\n\t\tinstall: (app: App) => {\n\t\t\tconst loadingRef = ref<boolean>(true);\n\t\t\tconst optionsRef = ref<SDKOptions>(sdk.options);\n\t\t\tconst isAuthenticatedRef = ref<boolean>(false);\n\t\t\tconst idTokenClaimsRef = ref<IdTokenClaims | null>(null);\n\t\t\tconst accessTokenRef = ref<string | null>(null);\n\t\t\tconst refreshTokenRef = ref<string | null>(null);\n\t\t\tconst accessTokenExpiredRef = ref<boolean>(true);\n\t\t\tconst accessTokenExpirationDateRef = ref<number | null>(null);\n\n\t\t\tconst updateSession = async () => {\n\t\t\t\tisAuthenticatedRef.value = await sdk.isAuthenticated;\n\t\t\t\tidTokenClaimsRef.value = sdk.idTokenClaims || null;\n\t\t\t\taccessTokenRef.value = sdk.accessToken || null;\n\t\t\t\trefreshTokenRef.value = sdk.refreshToken || null;\n\t\t\t\taccessTokenExpiredRef.value = sdk.accessTokenExpired;\n\t\t\t\taccessTokenExpirationDateRef.value = sdk.accessTokenExpirationDate || null;\n\n\t\t\t\tif (loadingRef.value) {\n\t\t\t\t\tloadingRef.value = false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tisAuthenticated = () => sdk.isAuthenticated;\n\n\t\t\tsdk.subscribeToEvent('init', updateSession);\n\t\t\tsdk.subscribeToEvent('loggedIn', updateSession);\n\t\t\tsdk.subscribeToEvent('sessionLoaded', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshed', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRefreshFailed', updateSession);\n\t\t\tsdk.subscribeToEvent('logoutInitiated', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevoked', updateSession);\n\t\t\tsdk.subscribeToEvent('tokenRevokeFailed', updateSession);\n\n\t\t\tapp.component('StyLoginRenderer', LoginRendererComponent);\n\t\t\tapp.provide(STRIVACITY_SDK, {\n\t\t\t\tsdk: sdk,\n\t\t\t\tloading: loadingRef,\n\t\t\t\toptions: optionsRef,\n\t\t\t\tisAuthenticated: isAuthenticatedRef,\n\t\t\t\tidTokenClaims: idTokenClaimsRef,\n\t\t\t\taccessToken: accessTokenRef,\n\t\t\t\trefreshToken: refreshTokenRef,\n\t\t\t\taccessTokenExpired: accessTokenExpiredRef,\n\t\t\t\taccessTokenExpirationDate: accessTokenExpirationDateRef,\n\n\t\t\t\tlogin: async (options?: Parameters<PopupFlow['login'] | RedirectFlow['login'] | NativeFlow['login']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.login(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.login(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tregister: async (options?: Parameters<PopupFlow['register'] | RedirectFlow['register'] | NativeFlow['register']>[0]) => {\n\t\t\t\t\tif (sdk.options.mode === 'native') {\n\t\t\t\t\t\treturn sdk.register(options);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait sdk.register(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tentry: async (url?: string) => {\n\t\t\t\t\treturn await sdk.entry(url);\n\t\t\t\t},\n\t\t\t\trefresh: async () => {\n\t\t\t\t\tawait sdk.refresh();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\trevoke: async () => {\n\t\t\t\t\tawait sdk.revoke();\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\tlogout: async (options?: Parameters<PopupFlow['logout'] | RedirectFlow['logout']>[0]) => {\n\t\t\t\t\tawait sdk.logout(options);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t\thandleCallback: async (url?: Parameters<PopupFlow['handleCallback'] | RedirectFlow['handleCallback'] | NativeFlow['handleCallback']>[0]) => {\n\t\t\t\t\tawait sdk.handleCallback(url);\n\t\t\t\t\tawait updateSession();\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t};\n\n\treturn plugin;\n};\n"],"names":["isAuthenticated","createStrivacitySDK","options","sdk","initFlow","app","loadingRef","ref","optionsRef","isAuthenticatedRef","idTokenClaimsRef","accessTokenRef","refreshTokenRef","accessTokenExpiredRef","accessTokenExpirationDateRef","updateSession","LoginRendererComponent","STRIVACITY_SDK","url"],"mappings":"uoBAuBO,IAAIA,EAA0C,IAAM,QAAQ,QAAQ,EAAK,EASzE,MAAMC,EAAuBC,GAAwB,CAC3D,MAAMC,EAAMC,EAASF,CAAO,EAwF5B,MAtFe,CACd,QAAUG,GAAa,CACtB,MAAMC,EAAaC,EAAa,EAAI,EAC9BC,EAAaD,EAAgBJ,EAAI,OAAO,EACxCM,EAAqBF,EAAa,EAAK,EACvCG,EAAmBH,EAA0B,IAAI,EACjDI,EAAiBJ,EAAmB,IAAI,EACxCK,EAAkBL,EAAmB,IAAI,EACzCM,EAAwBN,EAAa,EAAI,EACzCO,EAA+BP,EAAmB,IAAI,EAEtDQ,EAAgB,SAAY,CACjCN,EAAmB,MAAQ,MAAMN,EAAI,gBACrCO,EAAiB,MAAQP,EAAI,eAAiB,KAC9CQ,EAAe,MAAQR,EAAI,aAAe,KAC1CS,EAAgB,MAAQT,EAAI,cAAgB,KAC5CU,EAAsB,MAAQV,EAAI,mBAClCW,EAA6B,MAAQX,EAAI,2BAA6B,KAElEG,EAAW,QACdA,EAAW,MAAQ,GACpB,EAGDN,EAAkB,IAAMG,EAAI,gBAE5BA,EAAI,iBAAiB,OAAQY,CAAa,EAC1CZ,EAAI,iBAAiB,WAAYY,CAAa,EAC9CZ,EAAI,iBAAiB,gBAAiBY,CAAa,EACnDZ,EAAI,iBAAiB,iBAAkBY,CAAa,EACpDZ,EAAI,iBAAiB,qBAAsBY,CAAa,EACxDZ,EAAI,iBAAiB,kBAAmBY,CAAa,EACrDZ,EAAI,iBAAiB,eAAgBY,CAAa,EAClDZ,EAAI,iBAAiB,oBAAqBY,CAAa,EAEvDV,EAAI,UAAU,mBAAoBW,CAAsB,EACxDX,EAAI,QAAQY,EAAgB,CAC3B,IAAAd,EACA,QAASG,EACT,QAASE,EACT,gBAAiBC,EACjB,cAAeC,EACf,YAAaC,EACb,aAAcC,EACd,mBAAoBC,EACpB,0BAA2BC,EAE3B,MAAO,MAAOZ,GAA8F,CAC3G,GAAIC,EAAI,QAAQ,OAAS,SACxB,OAAOA,EAAI,MAAMD,CAAO,EAGzB,MAAMC,EAAI,MAAMD,CAAO,EACvB,MAAMa,EAAA,CAAc,EAErB,SAAU,MAAOb,GAAuG,CACvH,GAAIC,EAAI,QAAQ,OAAS,SACxB,OAAOA,EAAI,SAASD,CAAO,EAG5B,MAAMC,EAAI,SAASD,CAAO,EAC1B,MAAMa,EAAA,CAAc,EAErB,MAAO,MAAOG,GACN,MAAMf,EAAI,MAAMe,CAAG,EAE3B,QAAS,SAAY,CACpB,MAAMf,EAAI,QAAA,EACV,MAAMY,EAAA,CAAc,EAErB,OAAQ,SAAY,CACnB,MAAMZ,EAAI,OAAA,EACV,MAAMY,EAAA,CAAc,EAErB,OAAQ,MAAOb,GAA0E,CACxF,MAAMC,EAAI,OAAOD,CAAO,EACxB,MAAMa,EAAA,CAAc,EAErB,eAAgB,MAAOG,GAAqH,CAC3I,MAAMf,EAAI,eAAee,CAAG,EAC5B,MAAMH,EAAA,CAAc,CACrB,CACA,CAAA,CACF,CAIF"}
|
|
@@ -7,6 +7,7 @@ type __VLS_Props = {
|
|
|
7
7
|
};
|
|
8
8
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
9
|
login: (args_0: IdTokenClaims | null | undefined) => any;
|
|
10
|
+
close: () => any;
|
|
10
11
|
fallback: (args_0: FallbackError) => any;
|
|
11
12
|
error: (args_0: any) => any;
|
|
12
13
|
globalMessage: (args_0: string) => any;
|
|
@@ -16,6 +17,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
16
17
|
}) => any;
|
|
17
18
|
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
18
19
|
onLogin?: ((args_0: IdTokenClaims | null | undefined) => any) | undefined;
|
|
20
|
+
onClose?: (() => any) | undefined;
|
|
19
21
|
onFallback?: ((args_0: FallbackError) => any) | undefined;
|
|
20
22
|
onError?: ((args_0: any) => any) | undefined;
|
|
21
23
|
onGlobalMessage?: ((args_0: string) => any) | undefined;
|
package/dist/types.d.ts
CHANGED
|
@@ -63,6 +63,10 @@ export type PopupSDK = {
|
|
|
63
63
|
* Registers a new user.
|
|
64
64
|
*/
|
|
65
65
|
register: InstanceType<typeof PopupFlow>['register'];
|
|
66
|
+
/**
|
|
67
|
+
* Initiates the entry process.
|
|
68
|
+
*/
|
|
69
|
+
entry: InstanceType<typeof PopupFlow>['entry'];
|
|
66
70
|
/**
|
|
67
71
|
* Refreshes the user's session.
|
|
68
72
|
*/
|
|
@@ -96,6 +100,10 @@ export type RedirectSDK = {
|
|
|
96
100
|
* Registers a new user.
|
|
97
101
|
*/
|
|
98
102
|
register: InstanceType<typeof RedirectFlow>['register'];
|
|
103
|
+
/**
|
|
104
|
+
* Initiates the entry process.
|
|
105
|
+
*/
|
|
106
|
+
entry: InstanceType<typeof RedirectFlow>['entry'];
|
|
99
107
|
/**
|
|
100
108
|
* Refreshes the user's session.
|
|
101
109
|
*/
|
|
@@ -129,6 +137,10 @@ export type NativeSDK = {
|
|
|
129
137
|
* Registers a new user.
|
|
130
138
|
*/
|
|
131
139
|
register: InstanceType<typeof NativeFlow>['register'];
|
|
140
|
+
/**
|
|
141
|
+
* Initiates the entry process.
|
|
142
|
+
*/
|
|
143
|
+
entry: InstanceType<typeof NativeFlow>['entry'];
|
|
132
144
|
/**
|
|
133
145
|
* Refreshes the user's session.
|
|
134
146
|
*/
|
|
@@ -165,6 +177,7 @@ export type NativeFlowContextValue = {
|
|
|
165
177
|
state: Ref<Partial<LoginFlowState>>;
|
|
166
178
|
submitForm: (formId: string) => Promise<void>;
|
|
167
179
|
triggerFallback: (hostedUrl?: string) => void;
|
|
180
|
+
triggerClose: () => void;
|
|
168
181
|
setFormValue: (formId: string, widgetId: string, value: unknown) => void;
|
|
169
182
|
setMessage: (formId: string, widgetId: string, value: LoginFlowMessage) => void;
|
|
170
183
|
};
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strivacity/sdk-vue",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"type": "module",
|
|
3
|
+
"version": "2.1.1",
|
|
5
4
|
"license": "MIT",
|
|
6
5
|
"description": "Strivacity Vue.js SDK client",
|
|
7
|
-
"author": "strivacity <
|
|
6
|
+
"author": "strivacity <opensource@strivacity.com>",
|
|
8
7
|
"dependencies": {
|
|
9
|
-
"@strivacity/sdk-core": "2.
|
|
8
|
+
"@strivacity/sdk-core": "2.1.1"
|
|
10
9
|
},
|
|
11
10
|
"peerDependencies": {
|
|
12
11
|
"vue": ">=3"
|