@descope/web-component 3.47.7 → 3.47.9

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
- import{DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY as t}from"../constants/index.js";import{IS_LOCAL_STORAGE as o}from"../constants/general.js";function n(o){const n={};try{Object.assign(n,JSON.parse(localStorage.getItem(t)))}catch(t){}return(null==n?void 0:n.loginId)||o?n:{}}function e(n,e){(null==n?void 0:n.authMethod)&&(e&&!(null==n?void 0:n.loginId)||o&&localStorage.setItem(t,JSON.stringify(n)))}export{n as getLastAuth,e as setLastAuth};
1
+ import{DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY as n}from"../constants/index.js";import{getStorageItem as o,setStorageItem as t}from"./storage.js";function i(t){const i={};try{Object.assign(i,JSON.parse(o(n)))}catch(n){}return(null==i?void 0:i.loginId)||t?i:{}}function r(o,i){(null==o?void 0:o.authMethod)&&(i&&!(null==o?void 0:o.loginId)||t(n,JSON.stringify(o)))}export{i as getLastAuth,r as setLastAuth};
2
2
  //# sourceMappingURL=lastAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lastAuth.js","sources":["../../../src/lib/helpers/lastAuth.ts"],"sourcesContent":["import {\n DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY,\n IS_LOCAL_STORAGE,\n} from '../constants';\nimport { NextFnReturnPromiseValue } from '../types';\n\nexport function getLastAuth(loginId: string) {\n const lastAuth = {};\n try {\n Object.assign(\n lastAuth,\n JSON.parse(localStorage.getItem(DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY)),\n );\n } catch (e) {\n /* empty */\n }\n\n if (!(lastAuth as any)?.loginId && !loginId) {\n return {};\n }\n return lastAuth;\n}\n\n// save last auth to local storage\nexport function setLastAuth(\n lastAuth: NextFnReturnPromiseValue['data']['lastAuth'],\n forceLoginId?: boolean,\n) {\n if (!lastAuth?.authMethod) {\n return;\n }\n if (forceLoginId && !(lastAuth as any)?.loginId) {\n return;\n }\n if (IS_LOCAL_STORAGE) {\n localStorage.setItem(\n DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY,\n JSON.stringify(lastAuth),\n );\n }\n}\n"],"names":["getLastAuth","loginId","lastAuth","Object","assign","JSON","parse","localStorage","getItem","DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY","e","setLastAuth","forceLoginId","authMethod","IS_LOCAL_STORAGE","setItem","stringify"],"mappings":"uIAMM,SAAUA,EAAYC,GAC1B,MAAMC,EAAW,CAAA,EACjB,IACEC,OAAOC,OACLF,EACAG,KAAKC,MAAMC,aAAaC,QAAQC,IAEnC,CAAC,MAAOC,GAER,CAED,OAAMR,aAAA,EAAAA,EAAkBD,UAAYA,EAG7BC,EAFE,EAGX,CAGgB,SAAAS,EACdT,EACAU,IAEKV,aAAA,EAAAA,EAAUW,cAGXD,KAAkBV,aAAQ,EAARA,EAAkBD,UAGpCa,GACFP,aAAaQ,QACXN,EACAJ,KAAKW,UAAUd,IAGrB"}
1
+ {"version":3,"file":"lastAuth.js","sources":["../../../src/lib/helpers/lastAuth.ts"],"sourcesContent":["import { DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY } from '../constants';\nimport { getStorageItem, setStorageItem } from './storage';\nimport { NextFnReturnPromiseValue } from '../types';\n\nexport function getLastAuth(loginId: string) {\n const lastAuth = {};\n try {\n Object.assign(\n lastAuth,\n JSON.parse(getStorageItem(DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY)),\n );\n } catch (e) {\n /* empty */\n }\n\n if (!(lastAuth as any)?.loginId && !loginId) {\n return {};\n }\n return lastAuth;\n}\n\n// save last auth to local storage\nexport function setLastAuth(\n lastAuth: NextFnReturnPromiseValue['data']['lastAuth'],\n forceLoginId?: boolean,\n) {\n if (!lastAuth?.authMethod) {\n return;\n }\n if (forceLoginId && !(lastAuth as any)?.loginId) {\n return;\n }\n setStorageItem(DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY, JSON.stringify(lastAuth));\n}\n"],"names":["getLastAuth","loginId","lastAuth","Object","assign","JSON","parse","getStorageItem","DESCOPE_LAST_AUTH_LOCAL_STORAGE_KEY","e","setLastAuth","forceLoginId","authMethod","setStorageItem","stringify"],"mappings":"8IAIM,SAAUA,EAAYC,GAC1B,MAAMC,EAAW,CAAA,EACjB,IACEC,OAAOC,OACLF,EACAG,KAAKC,MAAMC,EAAeC,IAE7B,CAAC,MAAOC,GAER,CAED,OAAMP,aAAA,EAAAA,EAAkBD,UAAYA,EAG7BC,EAFE,EAGX,CAGgB,SAAAQ,EACdR,EACAS,IAEKT,aAAA,EAAAA,EAAUU,cAGXD,KAAkBT,aAAQ,EAARA,EAAkBD,UAGxCY,EAAeL,EAAqCH,KAAKS,UAAUZ,IACrE"}
@@ -0,0 +1,2 @@
1
+ let o;const w=(w,l)=>{o?o.setItem(w,l):void 0!==(null===window||void 0===window?void 0:window.localStorage)&&window.localStorage.setItem(w,l)},l=w=>o?o.getItem(w):void 0!==(null===window||void 0===window?void 0:window.localStorage)?window.localStorage.getItem(w):null,t=w=>{o=w};export{l as getStorageItem,t as setCustomStorage,w as setStorageItem};
2
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sources":["../../../src/lib/helpers/storage.ts"],"sourcesContent":["// Storage helper functions for web-component package\n// These functions provide a consistent interface for storage operations\n// Currently uses localStorage, but structured to support custom storage in the future\n\nimport type { CustomStorage } from '../types';\n\n// this is a singleton\n// but in order to keep the code clean\n// it was implemented in this way\nlet customStorage: CustomStorage | undefined;\n\n/**\n * Set an item in storage\n */\nexport const setStorageItem = (key: string, value: string): void => {\n if (customStorage) {\n customStorage.setItem(key, value);\n } else if (typeof window?.localStorage !== 'undefined') {\n window.localStorage.setItem(key, value);\n }\n};\n\n/**\n * Get an item from storage\n */\nexport const getStorageItem = (key: string): string | null => {\n if (customStorage) {\n return customStorage.getItem(key);\n } else if (typeof window?.localStorage !== 'undefined') {\n return window.localStorage.getItem(key);\n }\n return null;\n};\n\n/**\n * Remove an item from storage\n */\nexport const removeStorageItem = (key: string): void => {\n if (customStorage) {\n customStorage.removeItem(key);\n } else if (typeof window?.localStorage !== 'undefined') {\n window.localStorage.removeItem(key);\n }\n};\n\n/**\n * Set custom storage for the web-component package\n */\nexport const setCustomStorage = (storage: CustomStorage) => {\n customStorage = storage;\n};\n\n/**\n * Reset custom storage (for testing)\n */\nexport const resetCustomStorage = () => {\n customStorage = undefined;\n};\n"],"names":["customStorage","setStorageItem","key","value","setItem","window","localStorage","getStorageItem","getItem","setCustomStorage","storage"],"mappings":"AASA,IAAIA,QAKSC,EAAiB,CAACC,EAAaC,KACtCH,EACFA,EAAcI,QAAQF,EAAKC,QACc,KAAnB,OAANE,aAAM,IAANA,YAAM,EAANA,OAAQC,eACxBD,OAAOC,aAAaF,QAAQF,EAAKC,EAClC,EAMUI,EAAkBL,GACzBF,EACKA,EAAcQ,QAAQN,QACY,KAAnB,OAANG,aAAM,IAANA,YAAM,EAANA,OAAQC,cACjBD,OAAOC,aAAaE,QAAQN,GAE9B,KAiBIO,EAAoBC,IAC/BV,EAAgBU,CAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../src/lib/types.ts"],"sourcesContent":["/* istanbul ignore file */\n\nimport { createSdk } from '@descope/web-js-sdk';\n\nexport type SdkConfig = Parameters<typeof createSdk>[0];\nexport type Sdk = ReturnType<typeof createSdk>;\n\nexport type SdkFlowNext = Sdk['flow']['next'];\n\nexport type ComponentsDynamicAttrs = {\n attributes: Record<string, any>;\n};\n\nexport type ComponentsConfig = Record<string, any> & {\n componentsDynamicAttrs?: Record<string, ComponentsDynamicAttrs>;\n};\nexport type CssVars = Record<string, any>;\n\ntype KeepArgsByIndex<F, Indices extends readonly number[]> = F extends (\n ...args: infer A\n) => infer R\n ? (...args: PickArgsByIndex<A, Indices>) => R\n : never;\n\ntype PickArgsByIndex<\n All extends readonly any[],\n Indices extends readonly number[],\n> = {\n [K in keyof Indices]: Indices[K] extends keyof All ? All[Indices[K]] : never;\n};\n\ntype Project = {\n name: string;\n};\n\nexport enum Direction {\n backward = 'backward',\n forward = 'forward',\n}\n\nexport interface LastAuthState {\n loginId?: string;\n name?: string;\n}\n\nexport interface ScreenState {\n errorText?: string;\n errorType?: string;\n componentsConfig?: ComponentsConfig;\n cssVars?: CssVars;\n form?: Record<string, string>;\n inputs?: Record<string, string>; // Backward compatibility\n lastAuth?: LastAuthState;\n project?: Project;\n totp?: { image?: string; provisionUrl?: string };\n notp?: { image?: string; redirectUrl?: string };\n selfProvisionDomains?: unknown;\n user?: unknown;\n sso?: unknown;\n dynamicSelects?: unknown;\n keysInUse?: unknown;\n genericForm?: unknown;\n linkId?: unknown;\n sentTo?: unknown;\n clientScripts?: ClientScript[];\n}\n\nexport type SSOQueryParams = {\n oidcIdpStateId?: string;\n samlIdpStateId?: string;\n samlIdpUsername?: string;\n descopeIdpInitiated?: boolean;\n ssoAppId?: string;\n thirdPartyAppId: string;\n thirdPartyAppStateId?: string;\n applicationScopes?: string;\n} & OIDCOptions;\n\nexport type OIDCOptions = {\n oidcLoginHint?: string;\n oidcPrompt?: string;\n oidcErrorRedirectUri?: string;\n oidcResource?: string;\n};\n\nexport type Locale = {\n locale: string;\n fallback: string;\n};\n\nexport type FlowState = {\n flowId: string;\n projectId: string;\n baseUrl: string;\n tenant: string;\n stepId: string;\n stepName: string;\n executionId: string;\n action: string;\n redirectTo: string;\n redirectIsPopup: boolean;\n openInNewTabUrl?: string;\n redirectUrl: string;\n screenId: string;\n screenState: ScreenState;\n token: string;\n code: string;\n isPopup: boolean;\n exchangeError: string;\n webauthnTransactionId: string;\n webauthnOptions: string;\n redirectAuthCodeChallenge: string;\n redirectAuthCallbackUrl: string;\n redirectAuthBackupCallbackUri: string;\n redirectAuthInitiator: string;\n deferredRedirect: boolean;\n locale: string;\n samlIdpResponseUrl: string;\n samlIdpResponseSamlResponse: string;\n samlIdpResponseRelayState: string;\n nativeResponseType: string;\n nativePayload: Record<string, any>;\n reqTimestamp: number;\n} & SSOQueryParams;\n\nexport type StepState = {\n screenState: ScreenState;\n screenId: string;\n stepName: string;\n htmlFilename: string;\n htmlLocaleFilename: string;\n next: NextFn;\n direction: Direction | undefined;\n samlIdpUsername: string;\n action?: string;\n} & OIDCOptions;\n\nexport type CustomScreenState = Omit<\n ScreenState,\n 'cssVars' | 'componentsConfig' | 'inputs'\n> & {\n error?: {\n text: ScreenState['errorText'];\n type: ScreenState['errorType'];\n };\n action?: string;\n inboundAppApproveScopes?: {\n desc: string;\n id: string;\n required: boolean;\n }[];\n};\n\nexport type DebugState = {\n isDebug: boolean;\n};\n\nexport interface ScriptElement extends HTMLDivElement {\n moduleRes?: ScriptModule;\n}\n\nexport type ScriptModule = {\n stop: () => void;\n start: () => void;\n /**\n * Refreshes any tokens or state that might be needed before form submission\n * Currently implemented for reCAPTCHA to ensure we have a fresh token\n */\n refresh?: () => Promise<void>;\n};\n\nexport type ClientScript = {\n id: string;\n initArgs: Record<string, any>;\n resultKey?: string;\n};\n\nexport type NextFn = KeepArgsByIndex<SdkFlowNext, [2, 5]>;\nexport type NextFnReturnPromiseValue = Awaited<ReturnType<NextFn>>;\n\nexport type DebuggerMessage = {\n title: string;\n description?: string;\n};\n\nexport type FlowStateUpdateFn = (state: FlowState) => void;\n\ntype Operator =\n | 'equal'\n | 'not-equal'\n | 'contains'\n | 'greater-than'\n | 'greater-than-or-equal'\n | 'less-than'\n | 'less-than-or-equal'\n | 'empty'\n | 'not-empty'\n | 'is-true'\n | 'is-false'\n | 'in'\n | 'not-in'\n | 'in-range'\n | 'not-in-range'\n | 'devised-by';\n\nexport interface ClientConditionResult {\n screenId: string;\n screenName: string;\n clientScripts?: ClientScript[];\n componentsConfig?: ComponentsConfig;\n interactionId: string;\n}\n\nexport interface ClientCondition {\n operator: Operator;\n key: string;\n predicate?: string | number;\n met: ClientConditionResult;\n unmet?: ClientConditionResult;\n}\n\nexport type AutoFocusOptions = true | false | 'skipFirstScreen';\n\nexport type ThemeOptions = 'light' | 'dark' | 'os';\n\nexport type Key =\n | 'lastAuth.loginId'\n | 'idpInitiated'\n | 'externalToken'\n | 'abTestingKey';\n\ntype CheckFunction = (ctx: Context, predicate?: string | number) => boolean;\n\nexport type ConditionsMap = {\n [key in Key]: {\n [operator in Operator]?: CheckFunction;\n };\n};\n\nexport interface Context {\n loginId?: string;\n code?: string;\n token?: string;\n abTestingKey?: number;\n lastAuth?: LastAuthState;\n}\n\nexport type DescopeUI = Record<string, () => Promise<void>> & {\n componentsThemeManager: Record<string, any>;\n};\n\ntype Font = {\n family: string[];\n label: string;\n url?: string;\n};\n\ntype ThemeTemplate = {\n fonts: {\n font1: Font;\n font2: Font;\n };\n};\n\nexport type FlowConfig = {\n startScreenId?: string;\n startScreenName?: string;\n version: number;\n targetLocales?: string[];\n conditions?: ClientCondition[];\n condition?: ClientCondition;\n fingerprintEnabled?: boolean;\n fingerprintKey?: string;\n sdkScripts?: [\n {\n id: string;\n initArgs: Record<string, any>;\n resultKey?: string;\n },\n ];\n clientScripts?: ClientScript[];\n componentsConfig?: ComponentsConfig;\n};\n\nexport interface ProjectConfiguration {\n componentsVersion: string;\n cssTemplate: {\n dark: ThemeTemplate;\n light: ThemeTemplate;\n };\n flows: {\n [key: string]: FlowConfig; // dynamic key names for flows\n };\n}\n\nexport type FlowStatus = 'loading' | 'error' | 'success' | 'ready' | 'initial';\n"],"names":["Direction"],"mappings":"IAmCYA,GAAZ,SAAYA,GACVA,EAAA,SAAA,WACAA,EAAA,QAAA,SACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../src/lib/types.ts"],"sourcesContent":["/* istanbul ignore file */\n\nimport { createSdk } from '@descope/web-js-sdk';\n\nexport type SdkConfig = Parameters<typeof createSdk>[0];\nexport type Sdk = ReturnType<typeof createSdk>;\n\nexport type SdkFlowNext = Sdk['flow']['next'];\n\nexport type ComponentsDynamicAttrs = {\n attributes: Record<string, any>;\n};\n\nexport type ComponentsConfig = Record<string, any> & {\n componentsDynamicAttrs?: Record<string, ComponentsDynamicAttrs>;\n};\nexport type CssVars = Record<string, any>;\n\ntype KeepArgsByIndex<F, Indices extends readonly number[]> = F extends (\n ...args: infer A\n) => infer R\n ? (...args: PickArgsByIndex<A, Indices>) => R\n : never;\n\ntype PickArgsByIndex<\n All extends readonly any[],\n Indices extends readonly number[],\n> = {\n [K in keyof Indices]: Indices[K] extends keyof All ? All[Indices[K]] : never;\n};\n\ntype Project = {\n name: string;\n};\n\nexport enum Direction {\n backward = 'backward',\n forward = 'forward',\n}\n\nexport interface LastAuthState {\n loginId?: string;\n name?: string;\n}\n\nexport interface ScreenState {\n errorText?: string;\n errorType?: string;\n componentsConfig?: ComponentsConfig;\n cssVars?: CssVars;\n form?: Record<string, string>;\n inputs?: Record<string, string>; // Backward compatibility\n lastAuth?: LastAuthState;\n project?: Project;\n totp?: { image?: string; provisionUrl?: string };\n notp?: { image?: string; redirectUrl?: string };\n selfProvisionDomains?: unknown;\n user?: unknown;\n sso?: unknown;\n dynamicSelects?: unknown;\n keysInUse?: unknown;\n genericForm?: unknown;\n linkId?: unknown;\n sentTo?: unknown;\n clientScripts?: ClientScript[];\n}\n\nexport type SSOQueryParams = {\n oidcIdpStateId?: string;\n samlIdpStateId?: string;\n samlIdpUsername?: string;\n descopeIdpInitiated?: boolean;\n ssoAppId?: string;\n thirdPartyAppId: string;\n thirdPartyAppStateId?: string;\n applicationScopes?: string;\n} & OIDCOptions;\n\nexport type OIDCOptions = {\n oidcLoginHint?: string;\n oidcPrompt?: string;\n oidcErrorRedirectUri?: string;\n oidcResource?: string;\n};\n\nexport type Locale = {\n locale: string;\n fallback: string;\n};\n\nexport type FlowState = {\n flowId: string;\n projectId: string;\n baseUrl: string;\n tenant: string;\n stepId: string;\n stepName: string;\n executionId: string;\n action: string;\n redirectTo: string;\n redirectIsPopup: boolean;\n openInNewTabUrl?: string;\n redirectUrl: string;\n screenId: string;\n screenState: ScreenState;\n token: string;\n code: string;\n isPopup: boolean;\n exchangeError: string;\n webauthnTransactionId: string;\n webauthnOptions: string;\n redirectAuthCodeChallenge: string;\n redirectAuthCallbackUrl: string;\n redirectAuthBackupCallbackUri: string;\n redirectAuthInitiator: string;\n deferredRedirect: boolean;\n locale: string;\n samlIdpResponseUrl: string;\n samlIdpResponseSamlResponse: string;\n samlIdpResponseRelayState: string;\n nativeResponseType: string;\n nativePayload: Record<string, any>;\n reqTimestamp: number;\n} & SSOQueryParams;\n\nexport type StepState = {\n screenState: ScreenState;\n screenId: string;\n stepName: string;\n htmlFilename: string;\n htmlLocaleFilename: string;\n next: NextFn;\n direction: Direction | undefined;\n samlIdpUsername: string;\n action?: string;\n} & OIDCOptions;\n\nexport type CustomScreenState = Omit<\n ScreenState,\n 'cssVars' | 'componentsConfig' | 'inputs'\n> & {\n error?: {\n text: ScreenState['errorText'];\n type: ScreenState['errorType'];\n };\n action?: string;\n inboundAppApproveScopes?: {\n desc: string;\n id: string;\n required: boolean;\n }[];\n};\n\nexport type DebugState = {\n isDebug: boolean;\n};\n\nexport interface ScriptElement extends HTMLDivElement {\n moduleRes?: ScriptModule;\n}\n\nexport type ScriptModule = {\n stop: () => void;\n start: () => void;\n /**\n * Refreshes any tokens or state that might be needed before form submission\n * Currently implemented for reCAPTCHA to ensure we have a fresh token\n */\n refresh?: () => Promise<void>;\n};\n\nexport type ClientScript = {\n id: string;\n initArgs: Record<string, any>;\n resultKey?: string;\n};\n\nexport type NextFn = KeepArgsByIndex<SdkFlowNext, [2, 5]>;\nexport type NextFnReturnPromiseValue = Awaited<ReturnType<NextFn>>;\n\nexport type DebuggerMessage = {\n title: string;\n description?: string;\n};\n\nexport type FlowStateUpdateFn = (state: FlowState) => void;\n\ntype Operator =\n | 'equal'\n | 'not-equal'\n | 'contains'\n | 'greater-than'\n | 'greater-than-or-equal'\n | 'less-than'\n | 'less-than-or-equal'\n | 'empty'\n | 'not-empty'\n | 'is-true'\n | 'is-false'\n | 'in'\n | 'not-in'\n | 'in-range'\n | 'not-in-range'\n | 'devised-by';\n\nexport interface ClientConditionResult {\n screenId: string;\n screenName: string;\n clientScripts?: ClientScript[];\n componentsConfig?: ComponentsConfig;\n interactionId: string;\n}\n\nexport interface ClientCondition {\n operator: Operator;\n key: string;\n predicate?: string | number;\n met: ClientConditionResult;\n unmet?: ClientConditionResult;\n}\n\nexport type AutoFocusOptions = true | false | 'skipFirstScreen';\n\nexport type ThemeOptions = 'light' | 'dark' | 'os';\n\nexport type Key =\n | 'lastAuth.loginId'\n | 'idpInitiated'\n | 'externalToken'\n | 'abTestingKey';\n\ntype CheckFunction = (ctx: Context, predicate?: string | number) => boolean;\n\nexport type ConditionsMap = {\n [key in Key]: {\n [operator in Operator]?: CheckFunction;\n };\n};\n\nexport interface Context {\n loginId?: string;\n code?: string;\n token?: string;\n abTestingKey?: number;\n lastAuth?: LastAuthState;\n}\n\nexport type DescopeUI = Record<string, () => Promise<void>> & {\n componentsThemeManager: Record<string, any>;\n};\n\ntype Font = {\n family: string[];\n label: string;\n url?: string;\n};\n\ntype ThemeTemplate = {\n fonts: {\n font1: Font;\n font2: Font;\n };\n};\n\nexport type FlowConfig = {\n startScreenId?: string;\n startScreenName?: string;\n version: number;\n targetLocales?: string[];\n conditions?: ClientCondition[];\n condition?: ClientCondition;\n fingerprintEnabled?: boolean;\n fingerprintKey?: string;\n sdkScripts?: [\n {\n id: string;\n initArgs: Record<string, any>;\n resultKey?: string;\n },\n ];\n clientScripts?: ClientScript[];\n componentsConfig?: ComponentsConfig;\n};\n\nexport interface ProjectConfiguration {\n componentsVersion: string;\n cssTemplate: {\n dark: ThemeTemplate;\n light: ThemeTemplate;\n };\n flows: {\n [key: string]: FlowConfig; // dynamic key names for flows\n };\n}\n\nexport type FlowStatus = 'loading' | 'error' | 'success' | 'ready' | 'initial';\n\nexport type CustomStorage = {\n getItem: (key: string) => string | null;\n setItem: (key: string, value: string) => void;\n removeItem: (key: string) => void;\n};\n"],"names":["Direction"],"mappings":"IAmCYA,GAAZ,SAAYA,GACVA,EAAA,SAAA,WACAA,EAAA,QAAA,SACD,CAHD,CAAYA,IAAAA,EAGX,CAAA"}
package/dist/index.d.ts CHANGED
@@ -203,6 +203,11 @@ interface ProjectConfiguration {
203
203
  };
204
204
  }
205
205
  type FlowStatus = 'loading' | 'error' | 'success' | 'ready' | 'initial';
206
+ type CustomStorage = {
207
+ getItem: (key: string) => string | null;
208
+ setItem: (key: string, value: string) => void;
209
+ removeItem: (key: string) => void;
210
+ };
206
211
 
207
212
  declare const createIsChanged: <T extends Record<string, any>>(state: T, prevState: T) => (attrName: keyof T) => boolean;
208
213
 
@@ -1717,6 +1722,8 @@ declare class BaseDescopeWc extends BaseClass {
1717
1722
  };
1718
1723
  get outboundAppId(): string;
1719
1724
  get outboundAppScopes(): any;
1725
+ get customStorage(): CustomStorage | undefined;
1726
+ set customStorage(storage: CustomStorage | undefined);
1720
1727
  getConfig: () => Promise<_descope_sdk_mixins_static_resources_mixin.Config | {
1721
1728
  isMissingConfig: boolean;
1722
1729
  }>;
@@ -1782,4 +1789,4 @@ declare class DescopeWc extends BaseDescopeWc {
1782
1789
 
1783
1790
  type ILogger = Partial<DescopeWc['logger']>;
1784
1791
 
1785
- export { type AutoFocusOptions, type ILogger, type ThemeOptions, DescopeWc as default };
1792
+ export { type AutoFocusOptions, type CustomStorage, type ILogger, type ThemeOptions, DescopeWc as default };