@descope/web-component 3.35.1 → 3.36.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.
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("tslib"),e=require("@descope/sdk-helpers"),i=require("@descope/sdk-mixins/static-resources-mixin"),s=require("@descope/sdk-mixins/theme-mixin"),r=require("@descope/web-js-sdk"),o=require("../constants/index.js"),n=require("../helpers/helpers.js"),a=require("../helpers/state.js");require("@descope/escape-markdown"),require("../helpers/webauthn.js");var l,d,u,c,h,g,f,v,p,_,b,m,w,C,F,A,P,k,x,E,I,G=require("../helpers/flowInputs.js"),j=require("../mixins/formMountMixin.js"),y=require("./initTemplate.js"),U=require("../constants/content.js"),L=require("../constants/general.js");function M(t){return Object.freeze({__proto__:null,default:t})}const O=e.compose(s.themeMixin,i.staticResourcesMixin,j.formMountMixin)(HTMLElement);class S extends O{static get observedAttributes(){return["project-id","flow-id","base-url","tenant","locale","debug","storage-prefix","preview","redirect-url","auto-focus","store-last-authenticated-user","keep-last-authenticated-user-after-logout","validate-on-blur","style-id"]}constructor(e){super(),l.add(this),u.set(this,!1),this.flowStatus="initial",this.loggerWrapper={error:(e,i="")=>{this.logger.error(e,i,new Error),t.__classPrivateFieldGet(this,l,"m",E).call(this,e,i)},warn:(t,e="")=>{this.logger.warn(t,e)},info:(t,e="",i={})=>{this.logger.info(t,e,i)},debug:(t,e="")=>{this.logger.debug(t,e)}},c.set(this,new a),h.set(this,new a),g.set(this,{}),this.getComponentsContext=()=>t.__classPrivateFieldGet(this,g,"f"),this.nextRequestStatus=new a({isLoading:!1}),f.set(this,void 0),v.set(this,{popstate:t.__classPrivateFieldGet(this,l,"m",m).bind(this),componentsContext:t.__classPrivateFieldGet(this,l,"m",P).bind(this)}),p.set(this,void 0),this.getConfig=()=>t.__awaiter(this,void 0,void 0,(function*(){return(yield this.config)||{isMissingConfig:!0}})),t.__classPrivateFieldSet(this,p,e,"f"),t.__classPrivateFieldGet(this,l,"m",_).call(this)}get flowId(){return this.getAttribute("flow-id")}get client(){try{return JSON.parse(this.getAttribute("client"))||{}}catch(t){return{}}}get tenantId(){return this.getAttribute("tenant")||void 0}get redirectUrl(){return this.getAttribute("redirect-url")||void 0}get debug(){return"true"===this.getAttribute("debug")}get locale(){return this.getAttribute("locale")||void 0}get autoFocus(){var t;const e=null!==(t=this.getAttribute("auto-focus"))&&void 0!==t?t:"true";return"skipFirstScreen"===e?e:"true"===e}get validateOnBlur(){return"true"===this.getAttribute("validate-on-blur")}get storeLastAuthenticatedUser(){var t;return"true"===(null!==(t=this.getAttribute("store-last-authenticated-user"))&&void 0!==t?t:"true")}get keepLastAuthenticatedUserAfterLogout(){return"true"===this.getAttribute("keep-last-authenticated-user-after-logout")}get storagePrefix(){return this.getAttribute("storage-prefix")||""}get preview(){return!!this.getAttribute("preview")}get formConfig(){return G.transformFlowInputFormData(this.form)}get form(){return this.getAttribute("form")}get formConfigValues(){return G.extractNestedAttribute(this.formConfig,"value")}get isRestartOnError(){return"true"===this.getAttribute("restart-on-error")}getExecutionContext(){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"executionContext"in t?t.executionContext:void 0}))}getProjectConfig(){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"projectConfig"in t?t.projectConfig:void 0}))}getFlowConfig(){return t.__awaiter(this,void 0,void 0,(function*(){var t,e;const i=yield this.getProjectConfig(),s=(null===(t=null==i?void 0:i.flows)||void 0===t?void 0:t[this.flowId])||{};return null!==(e=s.version)&&void 0!==e||(s.version=0),s}))}getTargetLocales(){return t.__awaiter(this,void 0,void 0,(function*(){const t=yield this.getFlowConfig();return((null==t?void 0:t.targetLocales)||[]).map((t=>t.toLowerCase()))}))}getComponentsVersion(){return t.__awaiter(this,void 0,void 0,(function*(){var t;const e=yield this.getConfig(),i="projectConfig"in e?null===(t=e.projectConfig)||void 0===t?void 0:t.componentsVersion:{};return i||(this.logger.error("Did not get components version, using latest version"),"latest")}))}init(){const e=Object.create(null,{init:{get:()=>super.init}});return t.__awaiter(this,void 0,void 0,(function*(){var i;if(this.flowStatus="loading",["ready","error","success"].forEach((t=>this.addEventListener(t,(()=>{this.flowStatus=t})))),yield null===(i=e.init)||void 0===i?void 0:i.call(this),t.__classPrivateFieldGet(this,h,"f").subscribe(t.__classPrivateFieldGet(this,l,"m",x).bind(this)),t.__classPrivateFieldGet(this,h,"f").update({isDebug:this.debug}),t.__classPrivateFieldGet(this,l,"m",b).call(this),yield t.__classPrivateFieldGet(this,l,"m",F).call(this))return void this.loggerWrapper.error("This SDK version does not support your flows version","Make sure to upgrade your flows to the latest version or use an older SDK version");const s=yield this.getConfig();if("isMissingConfig"in s&&s.isMissingConfig)return void this.loggerWrapper.error("Cannot get config file","Make sure that your projectId & flowId are correct");t.__classPrivateFieldGet(this,l,"m",I).call(this);const{executionId:r,stepId:o,token:a,code:d,exchangeError:g,redirectAuthCallbackUrl:f,redirectAuthBackupCallbackUri:p,redirectAuthCodeChallenge:_,redirectAuthInitiator:m,ssoQueryParams:w}=n.handleUrlParams(this.flowId,this.loggerWrapper);window.addEventListener("popstate",t.__classPrivateFieldGet(this,v,"f").popstate),window.addEventListener("components-context",t.__classPrivateFieldGet(this,v,"f").componentsContext),t.__classPrivateFieldGet(this,c,"f").subscribe(t.__classPrivateFieldGet(this,l,"m",C).bind(this)),t.__classPrivateFieldGet(this,c,"f").update(Object.assign({projectId:this.projectId,flowId:this.flowId,baseUrl:this.baseUrl,tenant:this.tenantId,redirectUrl:this.redirectUrl,locale:this.locale,stepId:o,executionId:r,token:a,code:d,exchangeError:g,redirectAuthCallbackUrl:f,redirectAuthBackupCallbackUri:p,redirectAuthCodeChallenge:_,redirectAuthInitiator:m},w)),t.__classPrivateFieldSet(this,u,!0,"f")}))}disconnectedCallback(){t.__classPrivateFieldGet(this,c,"f").unsubscribeAll(),t.__classPrivateFieldGet(this,h,"f").unsubscribeAll(),t.__classPrivateFieldGet(this,l,"m",k).call(this),window.removeEventListener("popstate",t.__classPrivateFieldGet(this,v,"f").popstate),window.removeEventListener("components-context",t.__classPrivateFieldGet(this,v,"f").componentsContext)}attributeChangedCallback(e,i,s){if(this.shadowRoot.isConnected&&t.__classPrivateFieldGet(this,u,"f")&&i!==s&&d.observedAttributes.includes(e)){t.__classPrivateFieldGet(this,l,"m",b).call(this);const r=null===i;t.__classPrivateFieldGet(this,c,"f").update((({stepId:t,executionId:i})=>{let o=t,a=i;return r||(a=null,o=null,n.clearRunIdsFromUrl()),{[n.camelCase(e)]:s,stepId:o,executionId:a}})),t.__classPrivateFieldGet(this,h,"f").update({isDebug:this.debug})}}}d=S,u=new WeakMap,c=new WeakMap,h=new WeakMap,g=new WeakMap,f=new WeakMap,v=new WeakMap,p=new WeakMap,l=new WeakSet,_=function(){this.shadowRoot.appendChild(y.content.cloneNode(!0)),this.slotElement=document.createElement("slot"),this.slotElement.classList.add("hidden"),this.rootElement.appendChild(this.slotElement)},b=function(){const t=["base-url","tenant","locale","debug","redirect-url","auto-focus","store-last-authenticated-user","keep-last-authenticated-user-after-logout","preview","storage-prefix","form","client","validate-on-blur","style-id"];d.observedAttributes.forEach((e=>{if(!t.includes(e)&&!this[n.camelCase(e)])throw Error(`${e} cannot be empty`)}))},m=function(){const{stepId:e,executionId:i}=n.getRunIdsFromUrl(this.flowId);t.__classPrivateFieldGet(this,c,"f").update({stepId:e,executionId:i})},w=function(e,i){this.sdk=r(Object.assign(Object.assign({persistTokens:!0,preview:this.preview,storagePrefix:this.storagePrefix,storeLastAuthenticatedUser:this.storeLastAuthenticatedUser,keepLastAuthenticatedUserAfterLogout:this.keepLastAuthenticatedUserAfterLogout},d.sdkConfigOverrides),{projectId:e,baseUrl:i})),["start","next"].forEach((e=>{const i=this.sdk.flow[e];this.sdk.flow[e]=(...e)=>t.__awaiter(this,void 0,void 0,(function*(){try{return yield i(...e)}catch(t){return{error:{errorCode:L.FETCH_EXCEPTION_ERROR_CODE,errorDescription:t.toString()}}}}))}))},C=function(e,i,s){return t.__awaiter(this,void 0,void 0,(function*(){const{projectId:i,baseUrl:r}=e;if(s("projectId")||s("baseUrl")){if(!i)return;t.__classPrivateFieldGet(this,l,"m",w).call(this,i,r)}t.__classPrivateFieldGet(this,p,"f").call(this,e)}))},F=function(){return t.__awaiter(this,void 0,void 0,(function*(){const e=yield this.getConfig();return"isMissingConfig"in e&&e.isMissingConfig&&(yield t.__classPrivateFieldGet(this,l,"m",A).call(this))}))},A=function(){return t.__awaiter(this,void 0,void 0,(function*(){const t=n.getContentUrl({projectId:this.projectId,filename:U.CONFIG_FILENAME,assetsFolder:U.PREV_VER_ASSETS_FOLDER,baseUrl:this.baseStaticUrl});try{return yield n.fetchContent(t,"json"),!0}catch(t){return!1}}))},P=function(e){t.__classPrivateFieldSet(this,g,Object.assign(Object.assign({},t.__classPrivateFieldGet(this,g,"f")),e.detail),"f")},k=function(){var e;null===(e=t.__classPrivateFieldGet(this,f,"f"))||void 0===e||e.remove(),t.__classPrivateFieldSet(this,f,null,"f")},x=function(e){return t.__awaiter(this,arguments,void 0,(function*({isDebug:e}){e?(t.__classPrivateFieldSet(this,f,document.createElement("descope-debugger"),"f"),Object.assign(t.__classPrivateFieldGet(this,f,"f").style,{position:"fixed",top:"0",right:"0",height:"100vh",width:"100vw",pointerEvents:"none",zIndex:99999}),yield Promise.resolve().then((function(){return M(require("../debugger-wc.js"))})),document.body.appendChild(t.__classPrivateFieldGet(this,f,"f"))):t.__classPrivateFieldGet(this,l,"m",k).call(this)}))},E=function(e,i){var s;e&&this.debug&&(null===(s=t.__classPrivateFieldGet(this,f,"f"))||void 0===s||s.updateData({title:e,description:i}))},I=function(){this.rootElement.onkeydown=t=>{var e,i,s;const r=!!(null===(e=this.shadowRoot.activeElement)||void 0===e?void 0:e.getAttribute("href")),n=o.ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(null!==(s=null===(i=this.shadowRoot.activeElement)||void 0===i?void 0:i.localName)&&void 0!==s?s:"");if("Enter"!==t.key||r||n)return;t.preventDefault();const a=this.rootElement.querySelectorAll("descope-button");if(1===a.length&&"false"!==a[0].getAttribute("auto-submit"))return void a[0].click();const l=Array.from(a).filter((t=>"true"===t.getAttribute("auto-submit")));if(1===l.length)return void l[0].click();const d=Array.from(a).filter((t=>"button"===t.getAttribute("data-type")));if(1===d.length)"false"!==d[0].getAttribute("auto-submit")&&d[0].click();else if(0===d.length){const t=Array.from(a).filter((t=>"sso"===t.getAttribute("data-type")));1===t.length&&"false"!==t[0].getAttribute("auto-submit")&&t[0].click()}}},S.sdkConfigOverrides={baseHeaders:{"x-descope-sdk-name":"web-component","x-descope-sdk-version":"3.35.1"}},module.exports=S;
1
+ "use strict";var e=require("tslib"),t=require("@descope/sdk-helpers"),i=require("@descope/sdk-mixins/static-resources-mixin"),r=require("@descope/sdk-mixins/theme-mixin"),s=require("@descope/web-js-sdk"),o=require("../constants/index.js"),n=require("../helpers/helpers.js"),a=require("../helpers/state.js");require("@descope/escape-markdown"),require("../helpers/webauthn.js");var l,d,u,c,h,g,f,v,p,_,b,m,w,C,F,k,A,P,x,E,I,G=require("../helpers/flowInputs.js"),j=require("../mixins/formMountMixin.js"),y=require("./initTemplate.js"),U=require("../constants/content.js"),L=require("../constants/general.js");function M(e){return Object.freeze({__proto__:null,default:e})}const O=t.compose(r.themeMixin,i.staticResourcesMixin,j.formMountMixin)(HTMLElement);class S extends O{static get observedAttributes(){return["project-id","flow-id","base-url","tenant","locale","debug","storage-prefix","preview","redirect-url","auto-focus","store-last-authenticated-user","refresh-cookie-name","keep-last-authenticated-user-after-logout","validate-on-blur","style-id"]}constructor(t){super(),l.add(this),u.set(this,!1),this.flowStatus="initial",this.loggerWrapper={error:(t,i="")=>{this.logger.error(t,i,new Error),e.__classPrivateFieldGet(this,l,"m",E).call(this,t,i)},warn:(e,t="")=>{this.logger.warn(e,t)},info:(e,t="",i={})=>{this.logger.info(e,t,i)},debug:(e,t="")=>{this.logger.debug(e,t)}},c.set(this,new a),h.set(this,new a),g.set(this,{}),this.getComponentsContext=()=>e.__classPrivateFieldGet(this,g,"f"),this.nextRequestStatus=new a({isLoading:!1}),f.set(this,void 0),v.set(this,{popstate:e.__classPrivateFieldGet(this,l,"m",m).bind(this),componentsContext:e.__classPrivateFieldGet(this,l,"m",A).bind(this)}),p.set(this,void 0),this.getConfig=()=>e.__awaiter(this,void 0,void 0,(function*(){return(yield this.config)||{isMissingConfig:!0}})),e.__classPrivateFieldSet(this,p,t,"f"),e.__classPrivateFieldGet(this,l,"m",_).call(this)}get flowId(){return this.getAttribute("flow-id")}get client(){try{return JSON.parse(this.getAttribute("client"))||{}}catch(e){return{}}}get tenantId(){return this.getAttribute("tenant")||void 0}get redirectUrl(){return this.getAttribute("redirect-url")||void 0}get debug(){return"true"===this.getAttribute("debug")}get locale(){return this.getAttribute("locale")||void 0}get autoFocus(){var e;const t=null!==(e=this.getAttribute("auto-focus"))&&void 0!==e?e:"true";return"skipFirstScreen"===t?t:"true"===t}get validateOnBlur(){return"true"===this.getAttribute("validate-on-blur")}get storeLastAuthenticatedUser(){var e;return"true"===(null!==(e=this.getAttribute("store-last-authenticated-user"))&&void 0!==e?e:"true")}get refreshCookieName(){return this.getAttribute("refresh-cookie-name")||""}get keepLastAuthenticatedUserAfterLogout(){return"true"===this.getAttribute("keep-last-authenticated-user-after-logout")}get storagePrefix(){return this.getAttribute("storage-prefix")||""}get preview(){return!!this.getAttribute("preview")}get formConfig(){return G.transformFlowInputFormData(this.form)}get form(){return this.getAttribute("form")}get formConfigValues(){return G.extractNestedAttribute(this.formConfig,"value")}get isRestartOnError(){return"true"===this.getAttribute("restart-on-error")}getExecutionContext(){return e.__awaiter(this,void 0,void 0,(function*(){const e=yield this.getConfig();return"executionContext"in e?e.executionContext:void 0}))}getProjectConfig(){return e.__awaiter(this,void 0,void 0,(function*(){const e=yield this.getConfig();return"projectConfig"in e?e.projectConfig:void 0}))}getFlowConfig(){return e.__awaiter(this,void 0,void 0,(function*(){var e,t;const i=yield this.getProjectConfig(),r=(null===(e=null==i?void 0:i.flows)||void 0===e?void 0:e[this.flowId])||{};return null!==(t=r.version)&&void 0!==t||(r.version=0),r}))}getTargetLocales(){return e.__awaiter(this,void 0,void 0,(function*(){const e=yield this.getFlowConfig();return((null==e?void 0:e.targetLocales)||[]).map((e=>e.toLowerCase()))}))}getComponentsVersion(){return e.__awaiter(this,void 0,void 0,(function*(){var e;const t=yield this.getConfig(),i="projectConfig"in t?null===(e=t.projectConfig)||void 0===e?void 0:e.componentsVersion:{};return i||(this.logger.error("Did not get components version, using latest version"),"latest")}))}init(){const t=Object.create(null,{init:{get:()=>super.init}});return e.__awaiter(this,void 0,void 0,(function*(){var i;if(this.flowStatus="loading",["ready","error","success"].forEach((e=>this.addEventListener(e,(()=>{this.flowStatus=e})))),yield null===(i=t.init)||void 0===i?void 0:i.call(this),e.__classPrivateFieldGet(this,h,"f").subscribe(e.__classPrivateFieldGet(this,l,"m",x).bind(this)),e.__classPrivateFieldGet(this,h,"f").update({isDebug:this.debug}),e.__classPrivateFieldGet(this,l,"m",b).call(this),yield e.__classPrivateFieldGet(this,l,"m",F).call(this))return void this.loggerWrapper.error("This SDK version does not support your flows version","Make sure to upgrade your flows to the latest version or use an older SDK version");const r=yield this.getConfig();if("isMissingConfig"in r&&r.isMissingConfig)return void this.loggerWrapper.error("Cannot get config file","Make sure that your projectId & flowId are correct");e.__classPrivateFieldGet(this,l,"m",I).call(this);const{executionId:s,stepId:o,token:a,code:d,exchangeError:g,redirectAuthCallbackUrl:f,redirectAuthBackupCallbackUri:p,redirectAuthCodeChallenge:_,redirectAuthInitiator:m,ssoQueryParams:w}=n.handleUrlParams(this.flowId,this.loggerWrapper);window.addEventListener("popstate",e.__classPrivateFieldGet(this,v,"f").popstate),window.addEventListener("components-context",e.__classPrivateFieldGet(this,v,"f").componentsContext),e.__classPrivateFieldGet(this,c,"f").subscribe(e.__classPrivateFieldGet(this,l,"m",C).bind(this)),e.__classPrivateFieldGet(this,c,"f").update(Object.assign({projectId:this.projectId,flowId:this.flowId,baseUrl:this.baseUrl,tenant:this.tenantId,redirectUrl:this.redirectUrl,locale:this.locale,stepId:o,executionId:s,token:a,code:d,exchangeError:g,redirectAuthCallbackUrl:f,redirectAuthBackupCallbackUri:p,redirectAuthCodeChallenge:_,redirectAuthInitiator:m},w)),e.__classPrivateFieldSet(this,u,!0,"f")}))}disconnectedCallback(){e.__classPrivateFieldGet(this,c,"f").unsubscribeAll(),e.__classPrivateFieldGet(this,h,"f").unsubscribeAll(),e.__classPrivateFieldGet(this,l,"m",P).call(this),window.removeEventListener("popstate",e.__classPrivateFieldGet(this,v,"f").popstate),window.removeEventListener("components-context",e.__classPrivateFieldGet(this,v,"f").componentsContext)}attributeChangedCallback(t,i,r){if(this.shadowRoot.isConnected&&e.__classPrivateFieldGet(this,u,"f")&&i!==r&&d.observedAttributes.includes(t)){e.__classPrivateFieldGet(this,l,"m",b).call(this);const s=null===i;e.__classPrivateFieldGet(this,c,"f").update((({stepId:e,executionId:i})=>{let o=e,a=i;return s||(a=null,o=null,n.clearRunIdsFromUrl()),{[n.camelCase(t)]:r,stepId:o,executionId:a}})),e.__classPrivateFieldGet(this,h,"f").update({isDebug:this.debug})}}}d=S,u=new WeakMap,c=new WeakMap,h=new WeakMap,g=new WeakMap,f=new WeakMap,v=new WeakMap,p=new WeakMap,l=new WeakSet,_=function(){this.shadowRoot.appendChild(y.content.cloneNode(!0)),this.slotElement=document.createElement("slot"),this.slotElement.classList.add("hidden"),this.rootElement.appendChild(this.slotElement)},b=function(){const e=["base-url","tenant","locale","debug","redirect-url","auto-focus","store-last-authenticated-user","refresh-cookie-name","keep-last-authenticated-user-after-logout","preview","storage-prefix","form","client","validate-on-blur","style-id"];d.observedAttributes.forEach((t=>{if(!e.includes(t)&&!this[n.camelCase(t)])throw Error(`${t} cannot be empty`)}))},m=function(){const{stepId:t,executionId:i}=n.getRunIdsFromUrl(this.flowId);e.__classPrivateFieldGet(this,c,"f").update({stepId:t,executionId:i})},w=function(t,i){this.sdk=s(Object.assign(Object.assign({persistTokens:!0,preview:this.preview,storagePrefix:this.storagePrefix,storeLastAuthenticatedUser:this.storeLastAuthenticatedUser,keepLastAuthenticatedUserAfterLogout:this.keepLastAuthenticatedUserAfterLogout,refreshCookieName:this.refreshCookieName},d.sdkConfigOverrides),{projectId:t,baseUrl:i})),["start","next"].forEach((t=>{const i=this.sdk.flow[t];this.sdk.flow[t]=(...t)=>e.__awaiter(this,void 0,void 0,(function*(){try{return yield i(...t)}catch(e){return{error:{errorCode:L.FETCH_EXCEPTION_ERROR_CODE,errorDescription:e.toString()}}}}))}))},C=function(t,i,r){return e.__awaiter(this,void 0,void 0,(function*(){const{projectId:i,baseUrl:s}=t;if(r("projectId")||r("baseUrl")){if(!i)return;e.__classPrivateFieldGet(this,l,"m",w).call(this,i,s)}e.__classPrivateFieldGet(this,p,"f").call(this,t)}))},F=function(){return e.__awaiter(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"isMissingConfig"in t&&t.isMissingConfig&&(yield e.__classPrivateFieldGet(this,l,"m",k).call(this))}))},k=function(){return e.__awaiter(this,void 0,void 0,(function*(){const e=n.getContentUrl({projectId:this.projectId,filename:U.CONFIG_FILENAME,assetsFolder:U.PREV_VER_ASSETS_FOLDER,baseUrl:this.baseStaticUrl});try{return yield n.fetchContent(e,"json"),!0}catch(e){return!1}}))},A=function(t){e.__classPrivateFieldSet(this,g,Object.assign(Object.assign({},e.__classPrivateFieldGet(this,g,"f")),t.detail),"f")},P=function(){var t;null===(t=e.__classPrivateFieldGet(this,f,"f"))||void 0===t||t.remove(),e.__classPrivateFieldSet(this,f,null,"f")},x=function(t){return e.__awaiter(this,arguments,void 0,(function*({isDebug:t}){t?(e.__classPrivateFieldSet(this,f,document.createElement("descope-debugger"),"f"),Object.assign(e.__classPrivateFieldGet(this,f,"f").style,{position:"fixed",top:"0",right:"0",height:"100vh",width:"100vw",pointerEvents:"none",zIndex:99999}),yield Promise.resolve().then((function(){return M(require("../debugger-wc.js"))})),document.body.appendChild(e.__classPrivateFieldGet(this,f,"f"))):e.__classPrivateFieldGet(this,l,"m",P).call(this)}))},E=function(t,i){var r;t&&this.debug&&(null===(r=e.__classPrivateFieldGet(this,f,"f"))||void 0===r||r.updateData({title:t,description:i}))},I=function(){this.rootElement.onkeydown=e=>{var t,i,r;const s=!!(null===(t=this.shadowRoot.activeElement)||void 0===t?void 0:t.getAttribute("href")),n=o.ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(null!==(r=null===(i=this.shadowRoot.activeElement)||void 0===i?void 0:i.localName)&&void 0!==r?r:"");if("Enter"!==e.key||s||n)return;e.preventDefault();const a=this.rootElement.querySelectorAll("descope-button");if(1===a.length&&"false"!==a[0].getAttribute("auto-submit"))return void a[0].click();const l=Array.from(a).filter((e=>"true"===e.getAttribute("auto-submit")));if(1===l.length)return void l[0].click();const d=Array.from(a).filter((e=>"button"===e.getAttribute("data-type")));if(1===d.length)"false"!==d[0].getAttribute("auto-submit")&&d[0].click();else if(0===d.length){const e=Array.from(a).filter((e=>"sso"===e.getAttribute("data-type")));1===e.length&&"false"!==e[0].getAttribute("auto-submit")&&e[0].click()}}},S.sdkConfigOverrides={baseHeaders:{"x-descope-sdk-name":"web-component","x-descope-sdk-version":"3.36.0"}},module.exports=S;
2
2
  //# sourceMappingURL=BaseDescopeWc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\nimport initTemplate from './initTemplate';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #initShadowDom() {\n this.shadowRoot.appendChild(initTemplate.content.cloneNode(true));\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n async init() {\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","appendChild","initTemplate","content","cloneNode","slotElement","document","createElement","classList","add","rootElement","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","Promise","resolve","then","_interopNamespaceDefaultOnly","require","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","baseHeaders"],"mappings":"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"}
1
+ {"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\nimport initTemplate from './initTemplate';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #initShadowDom() {\n this.shadowRoot.appendChild(initTemplate.content.cloneNode(true));\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get refreshCookieName() {\n return this.getAttribute('refresh-cookie-name') || '';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n refreshCookieName: this.refreshCookieName,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n async init() {\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","refreshCookieName","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","appendChild","initTemplate","content","cloneNode","slotElement","document","createElement","classList","add","rootElement","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","Promise","resolve","then","_interopNamespaceDefaultOnly","require","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","baseHeaders"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{__classPrivateFieldGet as t,__awaiter as e,__classPrivateFieldSet as i}from"tslib";import{compose as r}from"@descope/sdk-helpers";import{staticResourcesMixin as s}from"@descope/sdk-mixins/static-resources-mixin";import{themeMixin as o}from"@descope/sdk-mixins/theme-mixin";import n from"@descope/web-js-sdk";import{ELEMENTS_TO_IGNORE_ENTER_KEY_ON as u}from"../constants/index.js";import{handleUrlParams as a,clearRunIdsFromUrl as l,camelCase as d,getRunIdsFromUrl as c,getContentUrl as h,fetchContent as f}from"../helpers/helpers.js";import g from"../helpers/state.js";import"@descope/escape-markdown";import"../helpers/webauthn.js";import{transformFlowInputFormData as p,extractNestedAttribute as v}from"../helpers/flowInputs.js";import{formMountMixin as m}from"../mixins/formMountMixin.js";import b from"./initTemplate.js";import{CONFIG_FILENAME as w,PREV_VER_ASSETS_FOLDER as C}from"../constants/content.js";import{FETCH_EXCEPTION_ERROR_CODE as A}from"../constants/general.js";var k,x,y,j,I,E,L,U,M,O,S,W,D,P,R,F,T,B,N,V,q;const H=r(o,s,m)(HTMLElement);class K extends H{static get observedAttributes(){return["project-id","flow-id","base-url","tenant","locale","debug","storage-prefix","preview","redirect-url","auto-focus","store-last-authenticated-user","keep-last-authenticated-user-after-logout","validate-on-blur","style-id"]}constructor(r){super(),k.add(this),y.set(this,!1),this.flowStatus="initial",this.loggerWrapper={error:(e,i="")=>{this.logger.error(e,i,new Error),t(this,k,"m",V).call(this,e,i)},warn:(t,e="")=>{this.logger.warn(t,e)},info:(t,e="",i={})=>{this.logger.info(t,e,i)},debug:(t,e="")=>{this.logger.debug(t,e)}},j.set(this,new g),I.set(this,new g),E.set(this,{}),this.getComponentsContext=()=>t(this,E,"f"),this.nextRequestStatus=new g({isLoading:!1}),L.set(this,void 0),U.set(this,{popstate:t(this,k,"m",W).bind(this),componentsContext:t(this,k,"m",T).bind(this)}),M.set(this,void 0),this.getConfig=()=>e(this,void 0,void 0,(function*(){return(yield this.config)||{isMissingConfig:!0}})),i(this,M,r,"f"),t(this,k,"m",O).call(this)}get flowId(){return this.getAttribute("flow-id")}get client(){try{return JSON.parse(this.getAttribute("client"))||{}}catch(t){return{}}}get tenantId(){return this.getAttribute("tenant")||void 0}get redirectUrl(){return this.getAttribute("redirect-url")||void 0}get debug(){return"true"===this.getAttribute("debug")}get locale(){return this.getAttribute("locale")||void 0}get autoFocus(){var t;const e=null!==(t=this.getAttribute("auto-focus"))&&void 0!==t?t:"true";return"skipFirstScreen"===e?e:"true"===e}get validateOnBlur(){return"true"===this.getAttribute("validate-on-blur")}get storeLastAuthenticatedUser(){var t;return"true"===(null!==(t=this.getAttribute("store-last-authenticated-user"))&&void 0!==t?t:"true")}get keepLastAuthenticatedUserAfterLogout(){return"true"===this.getAttribute("keep-last-authenticated-user-after-logout")}get storagePrefix(){return this.getAttribute("storage-prefix")||""}get preview(){return!!this.getAttribute("preview")}get formConfig(){return p(this.form)}get form(){return this.getAttribute("form")}get formConfigValues(){return v(this.formConfig,"value")}get isRestartOnError(){return"true"===this.getAttribute("restart-on-error")}getExecutionContext(){return e(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"executionContext"in t?t.executionContext:void 0}))}getProjectConfig(){return e(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"projectConfig"in t?t.projectConfig:void 0}))}getFlowConfig(){return e(this,void 0,void 0,(function*(){var t,e;const i=yield this.getProjectConfig(),r=(null===(t=null==i?void 0:i.flows)||void 0===t?void 0:t[this.flowId])||{};return null!==(e=r.version)&&void 0!==e||(r.version=0),r}))}getTargetLocales(){return e(this,void 0,void 0,(function*(){const t=yield this.getFlowConfig();return((null==t?void 0:t.targetLocales)||[]).map((t=>t.toLowerCase()))}))}getComponentsVersion(){return e(this,void 0,void 0,(function*(){var t;const e=yield this.getConfig(),i="projectConfig"in e?null===(t=e.projectConfig)||void 0===t?void 0:t.componentsVersion:{};return i||(this.logger.error("Did not get components version, using latest version"),"latest")}))}init(){const r=Object.create(null,{init:{get:()=>super.init}});return e(this,void 0,void 0,(function*(){var e;if(this.flowStatus="loading",["ready","error","success"].forEach((t=>this.addEventListener(t,(()=>{this.flowStatus=t})))),yield null===(e=r.init)||void 0===e?void 0:e.call(this),t(this,I,"f").subscribe(t(this,k,"m",N).bind(this)),t(this,I,"f").update({isDebug:this.debug}),t(this,k,"m",S).call(this),yield t(this,k,"m",R).call(this))return void this.loggerWrapper.error("This SDK version does not support your flows version","Make sure to upgrade your flows to the latest version or use an older SDK version");const s=yield this.getConfig();if("isMissingConfig"in s&&s.isMissingConfig)return void this.loggerWrapper.error("Cannot get config file","Make sure that your projectId & flowId are correct");t(this,k,"m",q).call(this);const{executionId:o,stepId:n,token:u,code:l,exchangeError:d,redirectAuthCallbackUrl:c,redirectAuthBackupCallbackUri:h,redirectAuthCodeChallenge:f,redirectAuthInitiator:g,ssoQueryParams:p}=a(this.flowId,this.loggerWrapper);window.addEventListener("popstate",t(this,U,"f").popstate),window.addEventListener("components-context",t(this,U,"f").componentsContext),t(this,j,"f").subscribe(t(this,k,"m",P).bind(this)),t(this,j,"f").update(Object.assign({projectId:this.projectId,flowId:this.flowId,baseUrl:this.baseUrl,tenant:this.tenantId,redirectUrl:this.redirectUrl,locale:this.locale,stepId:n,executionId:o,token:u,code:l,exchangeError:d,redirectAuthCallbackUrl:c,redirectAuthBackupCallbackUri:h,redirectAuthCodeChallenge:f,redirectAuthInitiator:g},p)),i(this,y,!0,"f")}))}disconnectedCallback(){t(this,j,"f").unsubscribeAll(),t(this,I,"f").unsubscribeAll(),t(this,k,"m",B).call(this),window.removeEventListener("popstate",t(this,U,"f").popstate),window.removeEventListener("components-context",t(this,U,"f").componentsContext)}attributeChangedCallback(e,i,r){if(this.shadowRoot.isConnected&&t(this,y,"f")&&i!==r&&x.observedAttributes.includes(e)){t(this,k,"m",S).call(this);const s=null===i;t(this,j,"f").update((({stepId:t,executionId:i})=>{let o=t,n=i;return s||(n=null,o=null,l()),{[d(e)]:r,stepId:o,executionId:n}})),t(this,I,"f").update({isDebug:this.debug})}}}x=K,y=new WeakMap,j=new WeakMap,I=new WeakMap,E=new WeakMap,L=new WeakMap,U=new WeakMap,M=new WeakMap,k=new WeakSet,O=function(){this.shadowRoot.appendChild(b.content.cloneNode(!0)),this.slotElement=document.createElement("slot"),this.slotElement.classList.add("hidden"),this.rootElement.appendChild(this.slotElement)},S=function(){const t=["base-url","tenant","locale","debug","redirect-url","auto-focus","store-last-authenticated-user","keep-last-authenticated-user-after-logout","preview","storage-prefix","form","client","validate-on-blur","style-id"];x.observedAttributes.forEach((e=>{if(!t.includes(e)&&!this[d(e)])throw Error(`${e} cannot be empty`)}))},W=function(){const{stepId:e,executionId:i}=c(this.flowId);t(this,j,"f").update({stepId:e,executionId:i})},D=function(t,i){this.sdk=n(Object.assign(Object.assign({persistTokens:!0,preview:this.preview,storagePrefix:this.storagePrefix,storeLastAuthenticatedUser:this.storeLastAuthenticatedUser,keepLastAuthenticatedUserAfterLogout:this.keepLastAuthenticatedUserAfterLogout},x.sdkConfigOverrides),{projectId:t,baseUrl:i})),["start","next"].forEach((t=>{const i=this.sdk.flow[t];this.sdk.flow[t]=(...t)=>e(this,void 0,void 0,(function*(){try{return yield i(...t)}catch(t){return{error:{errorCode:A,errorDescription:t.toString()}}}}))}))},P=function(i,r,s){return e(this,void 0,void 0,(function*(){const{projectId:e,baseUrl:r}=i;if(s("projectId")||s("baseUrl")){if(!e)return;t(this,k,"m",D).call(this,e,r)}t(this,M,"f").call(this,i)}))},R=function(){return e(this,void 0,void 0,(function*(){const e=yield this.getConfig();return"isMissingConfig"in e&&e.isMissingConfig&&(yield t(this,k,"m",F).call(this))}))},F=function(){return e(this,void 0,void 0,(function*(){const t=h({projectId:this.projectId,filename:w,assetsFolder:C,baseUrl:this.baseStaticUrl});try{return yield f(t,"json"),!0}catch(t){return!1}}))},T=function(e){i(this,E,Object.assign(Object.assign({},t(this,E,"f")),e.detail),"f")},B=function(){var e;null===(e=t(this,L,"f"))||void 0===e||e.remove(),i(this,L,null,"f")},N=function(r){return e(this,arguments,void 0,(function*({isDebug:e}){e?(i(this,L,document.createElement("descope-debugger"),"f"),Object.assign(t(this,L,"f").style,{position:"fixed",top:"0",right:"0",height:"100vh",width:"100vw",pointerEvents:"none",zIndex:99999}),yield import("../debugger-wc.js"),document.body.appendChild(t(this,L,"f"))):t(this,k,"m",B).call(this)}))},V=function(e,i){var r;e&&this.debug&&(null===(r=t(this,L,"f"))||void 0===r||r.updateData({title:e,description:i}))},q=function(){this.rootElement.onkeydown=t=>{var e,i,r;const s=!!(null===(e=this.shadowRoot.activeElement)||void 0===e?void 0:e.getAttribute("href")),o=u.includes(null!==(r=null===(i=this.shadowRoot.activeElement)||void 0===i?void 0:i.localName)&&void 0!==r?r:"");if("Enter"!==t.key||s||o)return;t.preventDefault();const n=this.rootElement.querySelectorAll("descope-button");if(1===n.length&&"false"!==n[0].getAttribute("auto-submit"))return void n[0].click();const a=Array.from(n).filter((t=>"true"===t.getAttribute("auto-submit")));if(1===a.length)return void a[0].click();const l=Array.from(n).filter((t=>"button"===t.getAttribute("data-type")));if(1===l.length)"false"!==l[0].getAttribute("auto-submit")&&l[0].click();else if(0===l.length){const t=Array.from(n).filter((t=>"sso"===t.getAttribute("data-type")));1===t.length&&"false"!==t[0].getAttribute("auto-submit")&&t[0].click()}}},K.sdkConfigOverrides={baseHeaders:{"x-descope-sdk-name":"web-component","x-descope-sdk-version":"3.35.1"}};export{K as default};
1
+ import{__classPrivateFieldGet as t,__awaiter as e,__classPrivateFieldSet as i}from"tslib";import{compose as r}from"@descope/sdk-helpers";import{staticResourcesMixin as s}from"@descope/sdk-mixins/static-resources-mixin";import{themeMixin as o}from"@descope/sdk-mixins/theme-mixin";import n from"@descope/web-js-sdk";import{ELEMENTS_TO_IGNORE_ENTER_KEY_ON as a}from"../constants/index.js";import{handleUrlParams as u,clearRunIdsFromUrl as l,camelCase as d,getRunIdsFromUrl as c,getContentUrl as h,fetchContent as f}from"../helpers/helpers.js";import g from"../helpers/state.js";import"@descope/escape-markdown";import"../helpers/webauthn.js";import{transformFlowInputFormData as p,extractNestedAttribute as m}from"../helpers/flowInputs.js";import{formMountMixin as v}from"../mixins/formMountMixin.js";import b from"./initTemplate.js";import{CONFIG_FILENAME as w,PREV_VER_ASSETS_FOLDER as C}from"../constants/content.js";import{FETCH_EXCEPTION_ERROR_CODE as k}from"../constants/general.js";var A,x,y,j,I,E,L,U,M,O,S,W,D,N,P,R,F,T,B,V,q;const H=r(o,s,v)(HTMLElement);class K extends H{static get observedAttributes(){return["project-id","flow-id","base-url","tenant","locale","debug","storage-prefix","preview","redirect-url","auto-focus","store-last-authenticated-user","refresh-cookie-name","keep-last-authenticated-user-after-logout","validate-on-blur","style-id"]}constructor(r){super(),A.add(this),y.set(this,!1),this.flowStatus="initial",this.loggerWrapper={error:(e,i="")=>{this.logger.error(e,i,new Error),t(this,A,"m",V).call(this,e,i)},warn:(t,e="")=>{this.logger.warn(t,e)},info:(t,e="",i={})=>{this.logger.info(t,e,i)},debug:(t,e="")=>{this.logger.debug(t,e)}},j.set(this,new g),I.set(this,new g),E.set(this,{}),this.getComponentsContext=()=>t(this,E,"f"),this.nextRequestStatus=new g({isLoading:!1}),L.set(this,void 0),U.set(this,{popstate:t(this,A,"m",W).bind(this),componentsContext:t(this,A,"m",F).bind(this)}),M.set(this,void 0),this.getConfig=()=>e(this,void 0,void 0,(function*(){return(yield this.config)||{isMissingConfig:!0}})),i(this,M,r,"f"),t(this,A,"m",O).call(this)}get flowId(){return this.getAttribute("flow-id")}get client(){try{return JSON.parse(this.getAttribute("client"))||{}}catch(t){return{}}}get tenantId(){return this.getAttribute("tenant")||void 0}get redirectUrl(){return this.getAttribute("redirect-url")||void 0}get debug(){return"true"===this.getAttribute("debug")}get locale(){return this.getAttribute("locale")||void 0}get autoFocus(){var t;const e=null!==(t=this.getAttribute("auto-focus"))&&void 0!==t?t:"true";return"skipFirstScreen"===e?e:"true"===e}get validateOnBlur(){return"true"===this.getAttribute("validate-on-blur")}get storeLastAuthenticatedUser(){var t;return"true"===(null!==(t=this.getAttribute("store-last-authenticated-user"))&&void 0!==t?t:"true")}get refreshCookieName(){return this.getAttribute("refresh-cookie-name")||""}get keepLastAuthenticatedUserAfterLogout(){return"true"===this.getAttribute("keep-last-authenticated-user-after-logout")}get storagePrefix(){return this.getAttribute("storage-prefix")||""}get preview(){return!!this.getAttribute("preview")}get formConfig(){return p(this.form)}get form(){return this.getAttribute("form")}get formConfigValues(){return m(this.formConfig,"value")}get isRestartOnError(){return"true"===this.getAttribute("restart-on-error")}getExecutionContext(){return e(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"executionContext"in t?t.executionContext:void 0}))}getProjectConfig(){return e(this,void 0,void 0,(function*(){const t=yield this.getConfig();return"projectConfig"in t?t.projectConfig:void 0}))}getFlowConfig(){return e(this,void 0,void 0,(function*(){var t,e;const i=yield this.getProjectConfig(),r=(null===(t=null==i?void 0:i.flows)||void 0===t?void 0:t[this.flowId])||{};return null!==(e=r.version)&&void 0!==e||(r.version=0),r}))}getTargetLocales(){return e(this,void 0,void 0,(function*(){const t=yield this.getFlowConfig();return((null==t?void 0:t.targetLocales)||[]).map((t=>t.toLowerCase()))}))}getComponentsVersion(){return e(this,void 0,void 0,(function*(){var t;const e=yield this.getConfig(),i="projectConfig"in e?null===(t=e.projectConfig)||void 0===t?void 0:t.componentsVersion:{};return i||(this.logger.error("Did not get components version, using latest version"),"latest")}))}init(){const r=Object.create(null,{init:{get:()=>super.init}});return e(this,void 0,void 0,(function*(){var e;if(this.flowStatus="loading",["ready","error","success"].forEach((t=>this.addEventListener(t,(()=>{this.flowStatus=t})))),yield null===(e=r.init)||void 0===e?void 0:e.call(this),t(this,I,"f").subscribe(t(this,A,"m",B).bind(this)),t(this,I,"f").update({isDebug:this.debug}),t(this,A,"m",S).call(this),yield t(this,A,"m",P).call(this))return void this.loggerWrapper.error("This SDK version does not support your flows version","Make sure to upgrade your flows to the latest version or use an older SDK version");const s=yield this.getConfig();if("isMissingConfig"in s&&s.isMissingConfig)return void this.loggerWrapper.error("Cannot get config file","Make sure that your projectId & flowId are correct");t(this,A,"m",q).call(this);const{executionId:o,stepId:n,token:a,code:l,exchangeError:d,redirectAuthCallbackUrl:c,redirectAuthBackupCallbackUri:h,redirectAuthCodeChallenge:f,redirectAuthInitiator:g,ssoQueryParams:p}=u(this.flowId,this.loggerWrapper);window.addEventListener("popstate",t(this,U,"f").popstate),window.addEventListener("components-context",t(this,U,"f").componentsContext),t(this,j,"f").subscribe(t(this,A,"m",N).bind(this)),t(this,j,"f").update(Object.assign({projectId:this.projectId,flowId:this.flowId,baseUrl:this.baseUrl,tenant:this.tenantId,redirectUrl:this.redirectUrl,locale:this.locale,stepId:n,executionId:o,token:a,code:l,exchangeError:d,redirectAuthCallbackUrl:c,redirectAuthBackupCallbackUri:h,redirectAuthCodeChallenge:f,redirectAuthInitiator:g},p)),i(this,y,!0,"f")}))}disconnectedCallback(){t(this,j,"f").unsubscribeAll(),t(this,I,"f").unsubscribeAll(),t(this,A,"m",T).call(this),window.removeEventListener("popstate",t(this,U,"f").popstate),window.removeEventListener("components-context",t(this,U,"f").componentsContext)}attributeChangedCallback(e,i,r){if(this.shadowRoot.isConnected&&t(this,y,"f")&&i!==r&&x.observedAttributes.includes(e)){t(this,A,"m",S).call(this);const s=null===i;t(this,j,"f").update((({stepId:t,executionId:i})=>{let o=t,n=i;return s||(n=null,o=null,l()),{[d(e)]:r,stepId:o,executionId:n}})),t(this,I,"f").update({isDebug:this.debug})}}}x=K,y=new WeakMap,j=new WeakMap,I=new WeakMap,E=new WeakMap,L=new WeakMap,U=new WeakMap,M=new WeakMap,A=new WeakSet,O=function(){this.shadowRoot.appendChild(b.content.cloneNode(!0)),this.slotElement=document.createElement("slot"),this.slotElement.classList.add("hidden"),this.rootElement.appendChild(this.slotElement)},S=function(){const t=["base-url","tenant","locale","debug","redirect-url","auto-focus","store-last-authenticated-user","refresh-cookie-name","keep-last-authenticated-user-after-logout","preview","storage-prefix","form","client","validate-on-blur","style-id"];x.observedAttributes.forEach((e=>{if(!t.includes(e)&&!this[d(e)])throw Error(`${e} cannot be empty`)}))},W=function(){const{stepId:e,executionId:i}=c(this.flowId);t(this,j,"f").update({stepId:e,executionId:i})},D=function(t,i){this.sdk=n(Object.assign(Object.assign({persistTokens:!0,preview:this.preview,storagePrefix:this.storagePrefix,storeLastAuthenticatedUser:this.storeLastAuthenticatedUser,keepLastAuthenticatedUserAfterLogout:this.keepLastAuthenticatedUserAfterLogout,refreshCookieName:this.refreshCookieName},x.sdkConfigOverrides),{projectId:t,baseUrl:i})),["start","next"].forEach((t=>{const i=this.sdk.flow[t];this.sdk.flow[t]=(...t)=>e(this,void 0,void 0,(function*(){try{return yield i(...t)}catch(t){return{error:{errorCode:k,errorDescription:t.toString()}}}}))}))},N=function(i,r,s){return e(this,void 0,void 0,(function*(){const{projectId:e,baseUrl:r}=i;if(s("projectId")||s("baseUrl")){if(!e)return;t(this,A,"m",D).call(this,e,r)}t(this,M,"f").call(this,i)}))},P=function(){return e(this,void 0,void 0,(function*(){const e=yield this.getConfig();return"isMissingConfig"in e&&e.isMissingConfig&&(yield t(this,A,"m",R).call(this))}))},R=function(){return e(this,void 0,void 0,(function*(){const t=h({projectId:this.projectId,filename:w,assetsFolder:C,baseUrl:this.baseStaticUrl});try{return yield f(t,"json"),!0}catch(t){return!1}}))},F=function(e){i(this,E,Object.assign(Object.assign({},t(this,E,"f")),e.detail),"f")},T=function(){var e;null===(e=t(this,L,"f"))||void 0===e||e.remove(),i(this,L,null,"f")},B=function(r){return e(this,arguments,void 0,(function*({isDebug:e}){e?(i(this,L,document.createElement("descope-debugger"),"f"),Object.assign(t(this,L,"f").style,{position:"fixed",top:"0",right:"0",height:"100vh",width:"100vw",pointerEvents:"none",zIndex:99999}),yield import("../debugger-wc.js"),document.body.appendChild(t(this,L,"f"))):t(this,A,"m",T).call(this)}))},V=function(e,i){var r;e&&this.debug&&(null===(r=t(this,L,"f"))||void 0===r||r.updateData({title:e,description:i}))},q=function(){this.rootElement.onkeydown=t=>{var e,i,r;const s=!!(null===(e=this.shadowRoot.activeElement)||void 0===e?void 0:e.getAttribute("href")),o=a.includes(null!==(r=null===(i=this.shadowRoot.activeElement)||void 0===i?void 0:i.localName)&&void 0!==r?r:"");if("Enter"!==t.key||s||o)return;t.preventDefault();const n=this.rootElement.querySelectorAll("descope-button");if(1===n.length&&"false"!==n[0].getAttribute("auto-submit"))return void n[0].click();const u=Array.from(n).filter((t=>"true"===t.getAttribute("auto-submit")));if(1===u.length)return void u[0].click();const l=Array.from(n).filter((t=>"button"===t.getAttribute("data-type")));if(1===l.length)"false"!==l[0].getAttribute("auto-submit")&&l[0].click();else if(0===l.length){const t=Array.from(n).filter((t=>"sso"===t.getAttribute("data-type")));1===t.length&&"false"!==t[0].getAttribute("auto-submit")&&t[0].click()}}},K.sdkConfigOverrides={baseHeaders:{"x-descope-sdk-name":"web-component","x-descope-sdk-version":"3.36.0"}};export{K as default};
2
2
  //# sourceMappingURL=BaseDescopeWc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\nimport initTemplate from './initTemplate';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #initShadowDom() {\n this.shadowRoot.appendChild(initTemplate.content.cloneNode(true));\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n async init() {\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","appendChild","initTemplate","content","cloneNode","slotElement","document","createElement","classList","add","rootElement","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","import","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","baseHeaders"],"mappings":"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"}
1
+ {"version":3,"file":"BaseDescopeWc.js","sources":["../../../src/lib/descope-wc/BaseDescopeWc.ts"],"sourcesContent":["import { compose } from '@descope/sdk-helpers';\n// eslint-disable-next-line import/no-duplicates\nimport { staticResourcesMixin } from '@descope/sdk-mixins/static-resources-mixin';\n// eslint-disable-next-line import/no-duplicates\nimport { themeMixin } from '@descope/sdk-mixins/theme-mixin';\nimport createSdk from '@descope/web-js-sdk';\nimport {\n CONFIG_FILENAME,\n ELEMENTS_TO_IGNORE_ENTER_KEY_ON,\n FETCH_EXCEPTION_ERROR_CODE,\n PREV_VER_ASSETS_FOLDER,\n} from '../constants';\nimport {\n camelCase,\n clearRunIdsFromUrl,\n fetchContent,\n getContentUrl,\n getRunIdsFromUrl,\n handleUrlParams,\n State,\n} from '../helpers';\nimport {\n extractNestedAttribute,\n transformFlowInputFormData,\n} from '../helpers/flowInputs';\nimport { IsChanged } from '../helpers/state';\nimport { formMountMixin } from '../mixins';\nimport {\n AutoFocusOptions,\n DebuggerMessage,\n DebugState,\n DescopeUI,\n FlowConfig,\n FlowState,\n FlowStateUpdateFn,\n FlowStatus,\n ProjectConfiguration,\n SdkConfig,\n} from '../types';\nimport initTemplate from './initTemplate';\n\n// this is replaced in build time\ndeclare const BUILD_VERSION: string;\n\nconst BaseClass = compose(\n themeMixin,\n staticResourcesMixin,\n formMountMixin,\n)(HTMLElement);\n\n// this base class is responsible for WC initialization\nclass BaseDescopeWc extends BaseClass {\n static get observedAttributes() {\n return [\n 'project-id',\n 'flow-id',\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'storage-prefix',\n 'preview',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'validate-on-blur',\n 'style-id',\n ];\n }\n\n // this is a way for extending the sdk config from outside\n static sdkConfigOverrides: Partial<SdkConfig> = {\n baseHeaders: {\n 'x-descope-sdk-name': 'web-component',\n 'x-descope-sdk-version': BUILD_VERSION,\n },\n };\n\n #init = false;\n\n flowStatus: FlowStatus = 'initial';\n\n loggerWrapper = {\n error: (message: string, description = '') => {\n this.logger.error(message, description, new Error());\n this.#updateDebuggerMessages(message, description);\n },\n warn: (message: string, description = '') => {\n this.logger.warn(message, description);\n },\n info: (message: string, description = '', state: any = {}) => {\n this.logger.info(message, description, state);\n },\n debug: (message: string, description = '') => {\n this.logger.debug(message, description);\n },\n };\n\n #flowState = new State<FlowState>();\n\n #debugState = new State<DebugState>();\n\n #componentsContext = {};\n\n getComponentsContext = () => this.#componentsContext;\n\n nextRequestStatus = new State<{ isLoading: boolean }>({ isLoading: false });\n\n rootElement: HTMLDivElement;\n\n contentRootElement: HTMLDivElement;\n\n slotElement: HTMLSlotElement;\n\n #debuggerEle: HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n #eventsCbRefs = {\n popstate: this.#syncStateIdFromUrl.bind(this),\n componentsContext: this.#handleComponentsContext.bind(this),\n };\n\n sdk: ReturnType<typeof createSdk>;\n\n #updateExecState: FlowStateUpdateFn;\n\n descopeUI: Promise<DescopeUI>;\n\n constructor(updateExecState: FlowStateUpdateFn) {\n super();\n this.#updateExecState = updateExecState;\n\n this.#initShadowDom();\n }\n\n #initShadowDom() {\n this.shadowRoot.appendChild(initTemplate.content.cloneNode(true));\n this.slotElement = document.createElement('slot');\n this.slotElement.classList.add('hidden');\n this.rootElement.appendChild(this.slotElement);\n }\n\n get flowId() {\n return this.getAttribute('flow-id');\n }\n\n get client() {\n try {\n return (JSON.parse(this.getAttribute('client')) || {}) as Record<\n string,\n any\n >;\n } catch (e) {\n return {};\n }\n }\n\n get tenantId() {\n return this.getAttribute('tenant') || undefined;\n }\n\n get redirectUrl() {\n return this.getAttribute('redirect-url') || undefined;\n }\n\n get debug() {\n return this.getAttribute('debug') === 'true';\n }\n\n get locale() {\n return this.getAttribute('locale') || undefined;\n }\n\n get autoFocus(): AutoFocusOptions {\n const res = this.getAttribute('auto-focus') ?? 'true';\n if (res === 'skipFirstScreen') {\n return res;\n }\n return res === 'true';\n }\n\n get validateOnBlur() {\n return this.getAttribute('validate-on-blur') === 'true';\n }\n\n get storeLastAuthenticatedUser() {\n const res = this.getAttribute('store-last-authenticated-user') ?? 'true';\n return res === 'true';\n }\n\n get refreshCookieName() {\n return this.getAttribute('refresh-cookie-name') || '';\n }\n\n get keepLastAuthenticatedUserAfterLogout() {\n const res = this.getAttribute('keep-last-authenticated-user-after-logout');\n return res === 'true';\n }\n\n get storagePrefix() {\n return this.getAttribute('storage-prefix') || '';\n }\n\n get preview() {\n return !!this.getAttribute('preview');\n }\n\n get formConfig() {\n return transformFlowInputFormData(this.form);\n }\n\n get form() {\n return this.getAttribute('form');\n }\n\n get formConfigValues() {\n return extractNestedAttribute(this.formConfig, 'value');\n }\n\n #validateAttrs() {\n const optionalAttributes = [\n 'base-url',\n 'tenant',\n 'locale',\n 'debug',\n 'redirect-url',\n 'auto-focus',\n 'store-last-authenticated-user',\n 'refresh-cookie-name',\n 'keep-last-authenticated-user-after-logout',\n 'preview',\n 'storage-prefix',\n 'form',\n 'client',\n 'validate-on-blur',\n 'style-id',\n ];\n\n BaseDescopeWc.observedAttributes.forEach((attr: string) => {\n if (!optionalAttributes.includes(attr) && !this[camelCase(attr)])\n throw Error(`${attr} cannot be empty`);\n });\n }\n\n #syncStateIdFromUrl() {\n const { stepId, executionId } = getRunIdsFromUrl(this.flowId);\n this.#flowState.update({ stepId, executionId });\n }\n\n #createSdk(projectId: string, baseUrl: string) {\n this.sdk = createSdk({\n // Use persist tokens options in order to add existing tokens in outgoing requests (if they exists)\n persistTokens: true,\n preview: this.preview,\n storagePrefix: this.storagePrefix,\n storeLastAuthenticatedUser: this.storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout:\n this.keepLastAuthenticatedUserAfterLogout,\n refreshCookieName: this.refreshCookieName,\n ...BaseDescopeWc.sdkConfigOverrides,\n projectId,\n baseUrl,\n });\n\n // we are wrapping the next & start function so we can indicate the request status\n ['start', 'next'].forEach((key) => {\n const origFn = this.sdk.flow[key];\n\n this.sdk.flow[key] = async (...args: Parameters<typeof origFn>) => {\n try {\n const resp = await origFn(...args);\n return resp;\n } catch (e) {\n // return a generic error object in case of an error\n return {\n error: {\n errorCode: FETCH_EXCEPTION_ERROR_CODE,\n errorDescription: e.toString(),\n },\n };\n }\n };\n });\n }\n\n async #onFlowChange(\n currentState: FlowState,\n _prevState: FlowState,\n isChanged: IsChanged<FlowState>,\n ) {\n const { projectId, baseUrl } = currentState;\n\n const shouldCreateSdkInstance =\n isChanged('projectId') || isChanged('baseUrl');\n\n if (shouldCreateSdkInstance) {\n if (!projectId) return;\n // Initialize the sdk when got a new project id\n this.#createSdk(projectId, baseUrl);\n }\n\n // update runtime state\n this.#updateExecState(currentState);\n }\n\n async #getIsFlowsVersionMismatch() {\n const config = await this.getConfig();\n\n return (\n 'isMissingConfig' in config &&\n config.isMissingConfig &&\n (await this.#isPrevVerConfig())\n );\n }\n\n // we are not using fetchStaticResource here\n // because we do not want to use the fallbacks mechanism\n async #isPrevVerConfig() {\n const prevVerConfigUrl = getContentUrl({\n projectId: this.projectId,\n filename: CONFIG_FILENAME,\n assetsFolder: PREV_VER_ASSETS_FOLDER,\n baseUrl: this.baseStaticUrl,\n });\n try {\n await fetchContent(prevVerConfigUrl, 'json');\n return true;\n } catch (e) {\n return false;\n }\n }\n\n getConfig = async () => (await this.config) || { isMissingConfig: true };\n\n #handleComponentsContext(e: CustomEvent) {\n this.#componentsContext = { ...this.#componentsContext, ...e.detail };\n }\n\n get isRestartOnError() {\n return this.getAttribute('restart-on-error') === 'true';\n }\n\n async getExecutionContext() {\n const config = await this.getConfig();\n return 'executionContext' in config ? config.executionContext : undefined;\n }\n\n #disableDebugger() {\n this.#debuggerEle?.remove();\n this.#debuggerEle = null;\n }\n\n async #handleDebugMode({ isDebug }) {\n if (isDebug) {\n this.#debuggerEle = document.createElement(\n 'descope-debugger',\n ) as HTMLElement & {\n updateData: (data: DebuggerMessage | DebuggerMessage[]) => void;\n };\n\n Object.assign(this.#debuggerEle.style, {\n position: 'fixed',\n top: '0',\n right: '0',\n height: '100vh',\n width: '100vw',\n pointerEvents: 'none',\n zIndex: 99999,\n });\n\n // we are importing the debugger dynamically so we won't load it when it's not needed\n await import('../debugger-wc');\n\n document.body.appendChild(this.#debuggerEle);\n } else {\n this.#disableDebugger();\n }\n }\n\n #updateDebuggerMessages(title: string, description: string) {\n if (title && this.debug)\n this.#debuggerEle?.updateData({ title, description });\n }\n\n async getProjectConfig(): Promise<ProjectConfiguration> {\n const config = await this.getConfig();\n return 'projectConfig' in config ? config.projectConfig : undefined;\n }\n\n async getFlowConfig(): Promise<FlowConfig> {\n const projectConfig = await this.getProjectConfig();\n\n const flowConfig =\n projectConfig?.flows?.[this.flowId] || ({} as FlowConfig);\n flowConfig.version ??= 0;\n return flowConfig;\n }\n\n async getTargetLocales() {\n const flowConfig = await this.getFlowConfig();\n return (flowConfig?.targetLocales || []).map((locale: string) =>\n locale.toLowerCase(),\n );\n }\n\n #handleKeyPress() {\n // we want to simulate submit when the user presses Enter\n this.rootElement.onkeydown = (e) => {\n // we do not want to submit the form if the focus is on a link element\n const isLinkEleFocused =\n !!this.shadowRoot.activeElement?.getAttribute('href');\n const isIgnoredElementFocused = ELEMENTS_TO_IGNORE_ENTER_KEY_ON.includes(\n this.shadowRoot.activeElement?.localName ?? '',\n );\n\n if (e.key !== 'Enter' || isLinkEleFocused || isIgnoredElementFocused)\n return;\n\n e.preventDefault();\n const buttons: NodeListOf<HTMLButtonElement> =\n this.rootElement.querySelectorAll('descope-button');\n\n // in case there is a single button on the page, click on it\n if (\n buttons.length === 1 &&\n buttons[0].getAttribute('auto-submit') !== 'false'\n ) {\n buttons[0].click();\n return;\n }\n\n const autoSubmitButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('auto-submit') === 'true',\n );\n if (autoSubmitButtons.length === 1) {\n autoSubmitButtons[0].click();\n return;\n }\n\n const genericButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'button',\n );\n\n // in case there is a single \"generic\" button on the page, click on it\n if (genericButtons.length === 1) {\n if (genericButtons[0].getAttribute('auto-submit') !== 'false') {\n genericButtons[0].click();\n }\n } else if (genericButtons.length === 0) {\n const ssoButtons = Array.from(buttons).filter(\n (button) => button.getAttribute('data-type') === 'sso',\n );\n\n // in case there is a single \"sso\" button on the page, click on it\n if (ssoButtons.length === 1) {\n if (ssoButtons[0].getAttribute('auto-submit') !== 'false') {\n ssoButtons[0].click();\n }\n }\n }\n };\n }\n\n async getComponentsVersion() {\n const config = await this.getConfig();\n const version =\n 'projectConfig' in config ? config.projectConfig?.componentsVersion : {};\n\n if (version) return version;\n\n this.logger.error('Did not get components version, using latest version');\n\n return 'latest';\n }\n\n static descopeUI: any;\n\n async init() {\n this.flowStatus = 'loading';\n ['ready', 'error', 'success'].forEach((status: FlowStatus) =>\n this.addEventListener(status, () => {\n this.flowStatus = status;\n }),\n );\n\n await super.init?.();\n this.#debugState.subscribe(this.#handleDebugMode.bind(this));\n this.#debugState.update({ isDebug: this.debug });\n\n this.#validateAttrs();\n\n if (await this.#getIsFlowsVersionMismatch()) {\n this.loggerWrapper.error(\n 'This SDK version does not support your flows version',\n 'Make sure to upgrade your flows to the latest version or use an older SDK version',\n );\n\n return;\n }\n\n const config = await this.getConfig();\n if ('isMissingConfig' in config && config.isMissingConfig) {\n this.loggerWrapper.error(\n 'Cannot get config file',\n 'Make sure that your projectId & flowId are correct',\n );\n\n return;\n }\n\n this.#handleKeyPress();\n\n const {\n executionId,\n stepId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ssoQueryParams,\n } = handleUrlParams(this.flowId, this.loggerWrapper);\n\n // we want to update the state when user clicks on back in the browser\n window.addEventListener('popstate', this.#eventsCbRefs.popstate);\n\n // adding event to listen to events coming from components (e.g. recaptcha risk token) that want to add data to the context\n // this data will be sent to the server on the next request\n window.addEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n\n this.#flowState.subscribe(this.#onFlowChange.bind(this));\n\n this.#flowState.update({\n projectId: this.projectId,\n flowId: this.flowId,\n baseUrl: this.baseUrl,\n tenant: this.tenantId,\n redirectUrl: this.redirectUrl,\n locale: this.locale,\n stepId,\n executionId,\n token,\n code,\n exchangeError,\n redirectAuthCallbackUrl,\n redirectAuthBackupCallbackUri,\n redirectAuthCodeChallenge,\n redirectAuthInitiator,\n ...ssoQueryParams,\n });\n\n this.#init = true;\n }\n\n disconnectedCallback() {\n this.#flowState.unsubscribeAll();\n this.#debugState.unsubscribeAll();\n this.#disableDebugger();\n window.removeEventListener('popstate', this.#eventsCbRefs.popstate);\n window.removeEventListener(\n 'components-context',\n this.#eventsCbRefs.componentsContext,\n );\n }\n\n attributeChangedCallback(\n attrName: string,\n oldValue: string,\n newValue: string,\n ) {\n if (!this.shadowRoot.isConnected || !this.#init) return;\n\n if (\n oldValue !== newValue &&\n BaseDescopeWc.observedAttributes.includes(attrName)\n ) {\n this.#validateAttrs();\n\n const isInitialRun = oldValue === null;\n\n this.#flowState.update(({ stepId, executionId }) => {\n let newStepId = stepId;\n let newExecutionId = executionId;\n\n // If not initial run and we got a new project/flow, we want to restart the step\n if (!isInitialRun) {\n newExecutionId = null;\n newStepId = null;\n clearRunIdsFromUrl();\n }\n\n return {\n [camelCase(attrName)]: newValue,\n stepId: newStepId,\n executionId: newExecutionId,\n };\n });\n\n this.#debugState.update({ isDebug: this.debug });\n }\n }\n}\n\nexport default BaseDescopeWc;\n"],"names":["BaseClass","compose","themeMixin","staticResourcesMixin","formMountMixin","HTMLElement","BaseDescopeWc","observedAttributes","constructor","updateExecState","super","_BaseDescopeWc_init","set","this","flowStatus","loggerWrapper","error","message","description","logger","Error","__classPrivateFieldGet","call","warn","info","state","debug","_BaseDescopeWc_flowState","State","_BaseDescopeWc_debugState","_BaseDescopeWc_componentsContext","getComponentsContext","nextRequestStatus","isLoading","_BaseDescopeWc_debuggerEle","_BaseDescopeWc_eventsCbRefs","popstate","_BaseDescopeWc_instances","_BaseDescopeWc_syncStateIdFromUrl","bind","componentsContext","_BaseDescopeWc_handleComponentsContext","_BaseDescopeWc_updateExecState","getConfig","config","isMissingConfig","__classPrivateFieldSet","_BaseDescopeWc_initShadowDom","flowId","getAttribute","client","JSON","parse","e","tenantId","undefined","redirectUrl","locale","autoFocus","res","_b","validateOnBlur","storeLastAuthenticatedUser","refreshCookieName","keepLastAuthenticatedUserAfterLogout","storagePrefix","preview","formConfig","transformFlowInputFormData","form","formConfigValues","extractNestedAttribute","isRestartOnError","getExecutionContext","executionContext","getProjectConfig","projectConfig","getFlowConfig","flowConfig","flows","_c","version","getTargetLocales","targetLocales","map","toLowerCase","getComponentsVersion","componentsVersion","init","forEach","status","addEventListener","_super","subscribe","_BaseDescopeWc_handleDebugMode","update","isDebug","_BaseDescopeWc_validateAttrs","_BaseDescopeWc_getIsFlowsVersionMismatch","_BaseDescopeWc_handleKeyPress","executionId","stepId","token","code","exchangeError","redirectAuthCallbackUrl","redirectAuthBackupCallbackUri","redirectAuthCodeChallenge","redirectAuthInitiator","ssoQueryParams","handleUrlParams","window","_BaseDescopeWc_onFlowChange","Object","assign","projectId","baseUrl","tenant","disconnectedCallback","unsubscribeAll","_BaseDescopeWc_disableDebugger","removeEventListener","attributeChangedCallback","attrName","oldValue","newValue","shadowRoot","isConnected","_a","includes","isInitialRun","newStepId","newExecutionId","clearRunIdsFromUrl","camelCase","appendChild","initTemplate","content","cloneNode","slotElement","document","createElement","classList","add","rootElement","optionalAttributes","attr","getRunIdsFromUrl","_BaseDescopeWc_createSdk","sdk","createSdk","persistTokens","sdkConfigOverrides","key","origFn","flow","args","__awaiter","errorCode","FETCH_EXCEPTION_ERROR_CODE","errorDescription","toString","currentState","_prevState","isChanged","_BaseDescopeWc_isPrevVerConfig","prevVerConfigUrl","getContentUrl","filename","CONFIG_FILENAME","assetsFolder","PREV_VER_ASSETS_FOLDER","baseStaticUrl","fetchContent","detail","remove","arguments","style","position","top","right","height","width","pointerEvents","zIndex","import","body","_BaseDescopeWc_updateDebuggerMessages","title","updateData","onkeydown","isLinkEleFocused","activeElement","isIgnoredElementFocused","ELEMENTS_TO_IGNORE_ENTER_KEY_ON","localName","_d","preventDefault","buttons","querySelectorAll","length","click","autoSubmitButtons","Array","from","filter","button","genericButtons","ssoButtons","baseHeaders"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -529,9 +529,9 @@ declare const BaseClass: {
529
529
  focus(options?: FocusOptions): void;
530
530
  };
531
531
  } & (new (...params: any[]) => {
532
- "__#27127@#lastBaseUrl"?: string;
533
- "__#27127@#workingBaseUrl"?: string;
534
- "__#27127@#getResourceUrls"(filename: string): (URL & {
532
+ "__#27145@#lastBaseUrl"?: string;
533
+ "__#27145@#workingBaseUrl"?: string;
534
+ "__#27145@#getResourceUrls"(filename: string): (URL & {
535
535
  baseUrl: string;
536
536
  }) | (URL & {
537
537
  baseUrl: string;
@@ -869,39 +869,39 @@ declare const BaseClass: {
869
869
  blur(): void;
870
870
  focus(options?: FocusOptions): void;
871
871
  readonly projectId: string;
872
- "__#27126@#handleError"(attrName: string, newValue: string): void;
872
+ "__#27144@#handleError"(attrName: string, newValue: string): void;
873
873
  init(): Promise<void>;
874
- "__#27125@#observeMappings": {};
874
+ "__#27143@#observeMappings": {};
875
875
  observeAttribute(attrName: string, onAttrChange: (attrName: string, value: string) => void): () => any;
876
876
  observeAttributes(attrs: string[], cb: (attrName: string, value: string) => void): () => void;
877
- "__#27124@#isInit": boolean;
878
- "__#27123@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
879
- "__#27123@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
877
+ "__#27142@#isInit": boolean;
878
+ "__#27141@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
879
+ "__#27141@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
880
880
  get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
881
881
  set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
882
882
  onLogEvent: ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void);
883
883
  }) & (new (...params: any[]) => {
884
- "__#27138@#globalStyleTag": HTMLStyleElement;
884
+ "__#27156@#globalStyleTag": HTMLStyleElement;
885
885
  readonly theme: _descope_sdk_mixins_static_resources_mixin.ThemeOptions;
886
886
  readonly styleId: string;
887
- "__#27138@#_themeResource": Promise<void | Record<string, any>>;
888
- "__#27138@#fetchTheme"(): Promise<Record<string, any>>;
889
- readonly "__#27138@#themeResource": Promise<void | Record<string, any>>;
890
- "__#27138@#loadGlobalStyle"(): Promise<void>;
891
- "__#27138@#loadComponentsStyle"(): Promise<void>;
892
- "__#27138@#getFontsConfig"(): Promise<Record<string, {
887
+ "__#27156@#_themeResource": Promise<void | Record<string, any>>;
888
+ "__#27156@#fetchTheme"(): Promise<Record<string, any>>;
889
+ readonly "__#27156@#themeResource": Promise<void | Record<string, any>>;
890
+ "__#27156@#loadGlobalStyle"(): Promise<void>;
891
+ "__#27156@#loadComponentsStyle"(): Promise<void>;
892
+ "__#27156@#getFontsConfig"(): Promise<Record<string, {
893
893
  url?: string;
894
894
  }>>;
895
- "__#27138@#loadFonts"(): Promise<void>;
896
- "__#27138@#applyTheme"(): Promise<void>;
897
- "__#27138@#onThemeChange": () => void;
898
- "__#27138@#loadTheme"(): void;
899
- "__#27138@#toggleOsThemeChangeListener": (listen: boolean) => void;
895
+ "__#27156@#loadFonts"(): Promise<void>;
896
+ "__#27156@#applyTheme"(): Promise<void>;
897
+ "__#27156@#onThemeChange": () => void;
898
+ "__#27156@#loadTheme"(): void;
899
+ "__#27156@#toggleOsThemeChangeListener": (listen: boolean) => void;
900
900
  init(): Promise<void>;
901
- "__#27125@#observeMappings": {};
901
+ "__#27143@#observeMappings": {};
902
902
  observeAttribute: ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any) & ((attrName: string, onAttrChange: (attrName: string, value: string) => void) => () => any);
903
903
  observeAttributes: ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void) & ((attrs: string[], cb: (attrName: string, value: string) => void) => () => void);
904
- "__#27124@#isInit": boolean;
904
+ "__#27142@#isInit": boolean;
905
905
  connectedCallback: (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
906
906
  accessKey: string;
907
907
  readonly accessKeyLabel: string;
@@ -1228,24 +1228,24 @@ declare const BaseClass: {
1228
1228
  tabIndex: number;
1229
1229
  blur(): void;
1230
1230
  focus(options?: FocusOptions): void;
1231
- "__#27123@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
1232
- "__#27123@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
1231
+ "__#27141@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
1232
+ "__#27141@#wrapLogger": ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger) & ((logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>) => _descope_sdk_mixins_static_resources_mixin.Logger);
1233
1233
  get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
1234
1234
  set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
1235
1235
  onLogEvent: ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void) & ((logLevel: "error" | "warn" | "info" | "debug", data: any[]) => void);
1236
1236
  contentRootElement: HTMLElement;
1237
1237
  rootElement: HTMLElement;
1238
1238
  readonly config: Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1239
- "__#27129@#configCacheClear": (() => void) & (() => void);
1240
- "__#27129@#_configResource": Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1241
- "__#27129@#fetchConfig": (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>) & (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>);
1242
- "__#27128@#callbacks": Map<string, () => void> & Map<string, () => void>;
1239
+ "__#27147@#configCacheClear": (() => void) & (() => void);
1240
+ "__#27147@#_configResource": Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1241
+ "__#27147@#fetchConfig": (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>) & (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>);
1242
+ "__#27146@#callbacks": Map<string, () => void> & Map<string, () => void>;
1243
1243
  onReset: ((sectionId: string, callback: () => void | Promise<void>) => () => void) & ((sectionId: string, callback: () => void | Promise<void>) => () => void);
1244
1244
  reset: ((...sectionIds: string[]) => Promise<void>) & ((...sectionIds: string[]) => Promise<void>);
1245
- "__#27126@#handleError": ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void);
1246
- "__#27127@#lastBaseUrl"?: string;
1247
- "__#27127@#workingBaseUrl"?: string;
1248
- "__#27127@#getResourceUrls": ((filename: string) => (URL & {
1245
+ "__#27144@#handleError": ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void) & ((attrName: string, newValue: string) => void);
1246
+ "__#27145@#lastBaseUrl"?: string;
1247
+ "__#27145@#workingBaseUrl"?: string;
1248
+ "__#27145@#getResourceUrls": ((filename: string) => (URL & {
1249
1249
  baseUrl: string;
1250
1250
  }) | (URL & {
1251
1251
  baseUrl: string;
@@ -1271,18 +1271,18 @@ declare const BaseClass: {
1271
1271
  readonly baseStaticUrl: string;
1272
1272
  readonly baseUrl: string;
1273
1273
  readonly projectId: string;
1274
- "__#27132@#errorCbsSym": symbol;
1275
- "__#27132@#loadCbsSym": symbol;
1276
- "__#27132@#getComponentsVersion"(): Promise<string>;
1277
- "__#27132@#exposeAlternateEvents"(scriptEle: HTMLScriptElement): void;
1278
- "__#27132@#handleFallbackScript"(errorCbs: ((error: string) => void)[], loadCbs: (() => void)[], elemId: string, scriptUrl: string): Promise<void>;
1279
- "__#27132@#registerEvents"(scriptEle: HTMLScriptElement): void;
1280
- "__#27132@#getDescopeUiLoadingScript"(): Promise<HTMLElement>;
1281
- "__#27132@#descopeUi": Promise<any>;
1274
+ "__#27150@#errorCbsSym": symbol;
1275
+ "__#27150@#loadCbsSym": symbol;
1276
+ "__#27150@#getComponentsVersion"(): Promise<string>;
1277
+ "__#27150@#exposeAlternateEvents"(scriptEle: HTMLScriptElement): void;
1278
+ "__#27150@#handleFallbackScript"(errorCbs: ((error: string) => void)[], loadCbs: (() => void)[], elemId: string, scriptUrl: string): Promise<void>;
1279
+ "__#27150@#registerEvents"(scriptEle: HTMLScriptElement): void;
1280
+ "__#27150@#getDescopeUiLoadingScript"(): Promise<HTMLElement>;
1281
+ "__#27150@#descopeUi": Promise<any>;
1282
1282
  readonly descopeUi: Promise<any>;
1283
- "__#27132@#loadDescopeUiComponent"(componentName: string): Promise<any>;
1283
+ "__#27150@#loadDescopeUiComponent"(componentName: string): Promise<any>;
1284
1284
  loadDescopeUiComponents(templateOrComponentNames: string[] | HTMLTemplateElement): Promise<any[]>;
1285
- "__#27132@#getDescopeUi"(): Promise<unknown>;
1285
+ "__#27150@#getDescopeUi"(): Promise<unknown>;
1286
1286
  readonly baseCdnUrl: string;
1287
1287
  }) & {
1288
1288
  new (): HTMLElement;
@@ -1318,6 +1318,7 @@ declare class BaseDescopeWc extends BaseClass {
1318
1318
  get autoFocus(): AutoFocusOptions;
1319
1319
  get validateOnBlur(): boolean;
1320
1320
  get storeLastAuthenticatedUser(): boolean;
1321
+ get refreshCookieName(): string;
1321
1322
  get keepLastAuthenticatedUserAfterLogout(): boolean;
1322
1323
  get storagePrefix(): string;
1323
1324
  get preview(): boolean;