@descope/web-component 3.37.0 → 3.38.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 +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 '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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"}
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';\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 'nonce',\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 #loadInitStyle() {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(`\n :host {\n all: initial;\n\t\t\twidth: 100%;\n display: block;\n\t\t}\n\n\t\t#root {\n\t\t\theight: 100%;\n display: flex;\n flex-direction: column;\n\t\t}\n\n #content-root {\n transition: opacity 300ms ease-in-out;\n }\n\n\t\t#root[data-theme] {\n\t\t\tbackground-color: transparent;\n\t\t}\n\n\t\t.fade-out {\n\t\t\topacity: 0.1;\n\t\t}\n\n .hidden {\n display: none;\n }\n `);\n this.shadowRoot.adoptedStyleSheets ??= [];\n this.shadowRoot.adoptedStyleSheets = [\n ...this.shadowRoot.adoptedStyleSheets,\n sheet,\n ];\n }\n\n #initShadowDom() {\n this.#loadInitStyle();\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 'nonce',\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 #handleNonce() {\n if (this.getAttribute('nonce')) {\n // the key name \"DESCOPE_NONCE\" is in use also by the web-components-ui\n // it's used to set Vaadins style tags nonce\n (window as any).DESCOPE_NONCE = this.getAttribute('nonce');\n }\n }\n\n async init() {\n this.#handleNonce();\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 if (attrName === 'nonce') {\n this.#handleNonce();\n }\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","_BaseDescopeWc_handleNonce","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","sheet","CSSStyleSheet","replaceSync","adoptedStyleSheets","_BaseDescopeWc_loadInitStyle","slotElement","document","createElement","classList","add","rootElement","appendChild","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","DESCOPE_NONCE","baseHeaders"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -537,9 +537,9 @@ declare const BaseClass: {
537
537
  focus(options?: FocusOptions): void;
538
538
  };
539
539
  } & (new (...params: any[]) => {
540
- "__#27159@#lastBaseUrl"?: string;
541
- "__#27159@#workingBaseUrl"?: string;
542
- "__#27159@#getResourceUrls"(filename: string): (URL & {
540
+ "__#27137@#lastBaseUrl"?: string;
541
+ "__#27137@#workingBaseUrl"?: string;
542
+ "__#27137@#getResourceUrls"(filename: string): (URL & {
543
543
  baseUrl: string;
544
544
  }) | (URL & {
545
545
  baseUrl: string;
@@ -877,39 +877,39 @@ declare const BaseClass: {
877
877
  blur(): void;
878
878
  focus(options?: FocusOptions): void;
879
879
  readonly projectId: string;
880
- "__#27158@#handleError"(attrName: string, newValue: string): void;
880
+ "__#27136@#handleError"(attrName: string, newValue: string): void;
881
881
  init(): Promise<void>;
882
- "__#27157@#observeMappings": {};
882
+ "__#27135@#observeMappings": {};
883
883
  observeAttribute(attrName: string, onAttrChange: (attrName: string, value: string) => void): () => any;
884
884
  observeAttributes(attrs: string[], cb: (attrName: string, value: string) => void): () => void;
885
- "__#27156@#isInit": boolean;
886
- "__#27155@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
887
- "__#27155@#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);
885
+ "__#27134@#isInit": boolean;
886
+ "__#27133@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
887
+ "__#27133@#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);
888
888
  get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
889
889
  set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
890
890
  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);
891
891
  }) & (new (...params: any[]) => {
892
- "__#27170@#globalStyleTag": HTMLStyleElement;
892
+ "__#27148@#globalStyle": CSSStyleSheet;
893
893
  readonly theme: _descope_sdk_mixins_static_resources_mixin.ThemeOptions;
894
894
  readonly styleId: string;
895
- "__#27170@#_themeResource": Promise<void | Record<string, any>>;
896
- "__#27170@#fetchTheme"(): Promise<Record<string, any>>;
897
- readonly "__#27170@#themeResource": Promise<void | Record<string, any>>;
898
- "__#27170@#loadGlobalStyle"(): Promise<void>;
899
- "__#27170@#loadComponentsStyle"(): Promise<void>;
900
- "__#27170@#getFontsConfig"(): Promise<Record<string, {
895
+ "__#27148@#_themeResource": Promise<void | Record<string, any>>;
896
+ "__#27148@#fetchTheme"(): Promise<Record<string, any>>;
897
+ readonly "__#27148@#themeResource": Promise<void | Record<string, any>>;
898
+ "__#27148@#loadGlobalStyle"(): Promise<void>;
899
+ "__#27148@#loadComponentsStyle"(): Promise<void>;
900
+ "__#27148@#getFontsConfig"(): Promise<Record<string, {
901
901
  url?: string;
902
902
  }>>;
903
- "__#27170@#loadFonts"(): Promise<void>;
904
- "__#27170@#applyTheme"(): Promise<void>;
905
- "__#27170@#onThemeChange": () => void;
906
- "__#27170@#loadTheme"(): void;
907
- "__#27170@#toggleOsThemeChangeListener": (listen: boolean) => void;
903
+ "__#27148@#loadFonts"(): Promise<void>;
904
+ "__#27148@#applyTheme"(): Promise<void>;
905
+ "__#27148@#onThemeChange": () => void;
906
+ "__#27148@#loadTheme"(): void;
907
+ "__#27148@#toggleOsThemeChangeListener": (listen: boolean) => void;
908
908
  init(): Promise<void>;
909
- "__#27157@#observeMappings": {};
909
+ "__#27135@#observeMappings": {};
910
910
  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);
911
911
  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);
912
- "__#27156@#isInit": boolean;
912
+ "__#27134@#isInit": boolean;
913
913
  connectedCallback: (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void) & (() => void);
914
914
  accessKey: string;
915
915
  readonly accessKeyLabel: string;
@@ -1236,24 +1236,24 @@ declare const BaseClass: {
1236
1236
  tabIndex: number;
1237
1237
  blur(): void;
1238
1238
  focus(options?: FocusOptions): void;
1239
- "__#27155@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
1240
- "__#27155@#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);
1239
+ "__#27133@#logger": _descope_sdk_mixins_static_resources_mixin.Logger;
1240
+ "__#27133@#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);
1241
1241
  get logger(): _descope_sdk_mixins_static_resources_mixin.Logger;
1242
1242
  set logger(logger: Partial<_descope_sdk_mixins_static_resources_mixin.Logger>);
1243
1243
  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);
1244
1244
  contentRootElement: HTMLElement;
1245
1245
  rootElement: HTMLElement;
1246
1246
  readonly config: Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1247
- "__#27161@#configCacheClear": (() => void) & (() => void);
1248
- "__#27161@#_configResource": Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1249
- "__#27161@#fetchConfig": (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>) & (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>);
1250
- "__#27160@#callbacks": Map<string, () => void> & Map<string, () => void>;
1247
+ "__#27139@#configCacheClear": (() => void) & (() => void);
1248
+ "__#27139@#_configResource": Promise<_descope_sdk_mixins_static_resources_mixin.Config>;
1249
+ "__#27139@#fetchConfig": (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>) & (() => Promise<_descope_sdk_mixins_static_resources_mixin.Config>);
1250
+ "__#27138@#callbacks": Map<string, () => void> & Map<string, () => void>;
1251
1251
  onReset: ((sectionId: string, callback: () => void | Promise<void>) => () => void) & ((sectionId: string, callback: () => void | Promise<void>) => () => void);
1252
1252
  reset: ((...sectionIds: string[]) => Promise<void>) & ((...sectionIds: string[]) => Promise<void>);
1253
- "__#27158@#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);
1254
- "__#27159@#lastBaseUrl"?: string;
1255
- "__#27159@#workingBaseUrl"?: string;
1256
- "__#27159@#getResourceUrls": ((filename: string) => (URL & {
1253
+ "__#27136@#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);
1254
+ "__#27137@#lastBaseUrl"?: string;
1255
+ "__#27137@#workingBaseUrl"?: string;
1256
+ "__#27137@#getResourceUrls": ((filename: string) => (URL & {
1257
1257
  baseUrl: string;
1258
1258
  }) | (URL & {
1259
1259
  baseUrl: string;
@@ -1279,18 +1279,18 @@ declare const BaseClass: {
1279
1279
  readonly baseStaticUrl: string;
1280
1280
  readonly baseUrl: string;
1281
1281
  readonly projectId: string;
1282
- "__#27164@#errorCbsSym": symbol;
1283
- "__#27164@#loadCbsSym": symbol;
1284
- "__#27164@#getComponentsVersion"(): Promise<string>;
1285
- "__#27164@#exposeAlternateEvents"(scriptEle: HTMLScriptElement): void;
1286
- "__#27164@#handleFallbackScript"(errorCbs: ((error: string) => void)[], loadCbs: (() => void)[], elemId: string, scriptUrl: string): Promise<void>;
1287
- "__#27164@#registerEvents"(scriptEle: HTMLScriptElement): void;
1288
- "__#27164@#getDescopeUiLoadingScript"(): Promise<HTMLElement>;
1289
- "__#27164@#descopeUi": Promise<any>;
1282
+ "__#27142@#errorCbsSym": symbol;
1283
+ "__#27142@#loadCbsSym": symbol;
1284
+ "__#27142@#getComponentsVersion"(): Promise<string>;
1285
+ "__#27142@#exposeAlternateEvents"(scriptEle: HTMLScriptElement): void;
1286
+ "__#27142@#handleFallbackScript"(errorCbs: ((error: string) => void)[], loadCbs: (() => void)[], elemId: string, scriptUrl: string): Promise<void>;
1287
+ "__#27142@#registerEvents"(scriptEle: HTMLScriptElement): void;
1288
+ "__#27142@#getDescopeUiLoadingScript"(): Promise<HTMLElement>;
1289
+ "__#27142@#descopeUi": Promise<any>;
1290
1290
  readonly descopeUi: Promise<any>;
1291
- "__#27164@#loadDescopeUiComponent"(componentName: string): Promise<any>;
1291
+ "__#27142@#loadDescopeUiComponent"(componentName: string): Promise<any>;
1292
1292
  loadDescopeUiComponents(templateOrComponentNames: string[] | HTMLTemplateElement): Promise<any[]>;
1293
- "__#27164@#getDescopeUi"(): Promise<unknown>;
1293
+ "__#27142@#getDescopeUi"(): Promise<unknown>;
1294
1294
  readonly baseCdnUrl: string;
1295
1295
  }) & {
1296
1296
  new (): HTMLElement;