@descope/react-sdk 2.29.5 → 2.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/cjs/components/AuthProvider/AuthProvider.js +1 -1
  2. package/dist/cjs/components/AuthProvider/AuthProvider.js.map +1 -1
  3. package/dist/cjs/components/OutboundApplications.js +1 -1
  4. package/dist/cjs/components/OutboundApplications.js.map +1 -1
  5. package/dist/cjs/components/TenantProfile.js +1 -1
  6. package/dist/cjs/components/TenantProfile.js.map +1 -1
  7. package/dist/cjs/components/UserManagement.js +1 -1
  8. package/dist/cjs/components/UserManagement.js.map +1 -1
  9. package/dist/cjs/components/UserProfile.js +1 -1
  10. package/dist/cjs/components/UserProfile.js.map +1 -1
  11. package/dist/cjs/constants.js +1 -1
  12. package/dist/esm/components/AuthProvider/AuthProvider.js +1 -1
  13. package/dist/esm/components/AuthProvider/AuthProvider.js.map +1 -1
  14. package/dist/esm/components/OutboundApplications.js +1 -1
  15. package/dist/esm/components/OutboundApplications.js.map +1 -1
  16. package/dist/esm/components/TenantProfile.js +1 -1
  17. package/dist/esm/components/TenantProfile.js.map +1 -1
  18. package/dist/esm/components/UserManagement.js +1 -1
  19. package/dist/esm/components/UserManagement.js.map +1 -1
  20. package/dist/esm/components/UserProfile.js +1 -1
  21. package/dist/esm/components/UserProfile.js.map +1 -1
  22. package/dist/esm/constants.js +1 -1
  23. package/dist/index.d.ts +39 -9
  24. package/dist/index.umd.js +2 -2
  25. package/dist/index.umd.js.map +1 -1
  26. package/dist/types/components/AccessKeyManagement.d.ts +2 -0
  27. package/dist/types/components/ApplicationsPortal.d.ts +2 -0
  28. package/dist/types/components/AuditManagement.d.ts +2 -0
  29. package/dist/types/components/OutboundApplications.d.ts +2 -0
  30. package/dist/types/components/RoleManagement.d.ts +2 -0
  31. package/dist/types/components/TenantProfile.d.ts +2 -0
  32. package/dist/types/components/UserManagement.d.ts +2 -0
  33. package/dist/types/components/UserProfile.d.ts +2 -0
  34. package/dist/types/sdk.d.ts +63 -27
  35. package/dist/types/types.d.ts +2 -0
  36. package/package.json +13 -13
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../hooks/Context.js"),s=require("../../utils.js"),r=require("./useSdk.js");function o(e){return e&&e.__esModule?e:{default:e}}var i=o(e);exports.default=({projectId:o,baseUrl:n="",baseStaticUrl:a="",baseCdnUrl:u="",sessionTokenViaCookie:c=!1,refreshTokenViaCookie:d=!1,hooks:h,persistTokens:f=!0,autoRefresh:l=!0,oidcConfig:k,storeLastAuthenticatedUser:g=!0,keepLastAuthenticatedUserAfterLogout:C=!1,refreshCookieName:S="",getExternalToken:U,customStorage:m,children:A})=>{const[L,p]=e.useState(),[b,T]=e.useState(),[j,v]=e.useState(),[I,V]=e.useState(!1),[q,x]=e.useState(!1),[E,R]=e.useState(!1),[N,_]=e.useState(!!k),F=e.useRef(!1),M=r.default({projectId:o,baseUrl:n,persistTokens:f,autoRefresh:l,sessionTokenViaCookie:c,refreshTokenViaCookie:d,hooks:h,oidcConfig:k,storeLastAuthenticatedUser:g,keepLastAuthenticatedUserAfterLogout:C,refreshCookieName:S,getExternalToken:U,customStorage:m});e.useEffect((()=>{if(M){const e=M.onSessionTokenChange(T),t=M.onUserChange(p),s=M.onIsAuthenticatedChange(V),r=M.onClaimsChange(v);return()=>{e(),t(),s(),r()}}}),[M]);const w=e.useRef(!1),y=e.useRef(!1);e.useEffect((()=>{M&&k&&!F.current&&(F.current=!0,M.oidc.finishLoginIfNeed().finally((()=>{_(!1),w.current=!0})))}),[]);const O=e.useCallback((()=>{s.isDescopeBridge()||w.current||(w.current=!0,R(!0),s.withValidation(null==M?void 0:M.refresh)(void 0,!0).then((()=>{requestAnimationFrame((()=>{setTimeout((()=>{R(!1)}),0)}))})))}),[M]),P=e.useCallback((()=>{y.current||(y.current=!0,x(!0),s.withValidation(M.me)().then((()=>{x(!1)})))}),[M]),B=e.useMemo((()=>({fetchUser:P,user:L,isUserLoading:q,isUserFetched:y.current,fetchSession:O,session:b,isAuthenticated:I,isSessionLoading:E,isOidcLoading:N,isSessionFetched:w.current,projectId:o,baseUrl:n,baseStaticUrl:a,baseCdnUrl:u,storeLastAuthenticatedUser:g,keepLastAuthenticatedUserAfterLogout:C,refreshCookieName:S,customStorage:m,setUser:p,setSession:T,setIsAuthenticated:V,claims:j,sdk:M})),[P,L,q,y.current,O,b,I,E,N,w.current,o,n,a,u,C,S,m,p,T,V,j,M]);return i.default.createElement(t.default.Provider,{value:B},A)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../hooks/Context.js"),s=require("../../utils.js"),r=require("./useSdk.js");function o(e){return e&&e.__esModule?e:{default:e}}var n=o(e);exports.default=({projectId:o,baseUrl:i="",baseStaticUrl:a="",baseCdnUrl:u="",sessionTokenViaCookie:c=!1,refreshTokenViaCookie:d=!1,hooks:f,persistTokens:h=!0,autoRefresh:l=!0,oidcConfig:k,storeLastAuthenticatedUser:g=!0,keepLastAuthenticatedUserAfterLogout:C=!1,refreshCookieName:S="",getExternalToken:U,customStorage:m,children:A})=>{const[L,p]=e.useState(),[b,T]=e.useState(),[j,v]=e.useState(),[I,V]=e.useState(!1),[q,x]=e.useState(!1),[E,R]=e.useState(!1),[N,_]=e.useState(!!k),F=e.useRef(!1),M=r.default({projectId:o,baseUrl:i,persistTokens:h,autoRefresh:l,sessionTokenViaCookie:c,refreshTokenViaCookie:d,hooks:f,oidcConfig:k,storeLastAuthenticatedUser:g,keepLastAuthenticatedUserAfterLogout:C,refreshCookieName:S,getExternalToken:U,customStorage:m});e.useEffect((()=>{if(M){const e=M.onSessionTokenChange(T),t=M.onUserChange(p),s=M.onIsAuthenticatedChange(V),r=M.onClaimsChange(v);return()=>{e(),t(),s(),r()}}}),[M]);const w=e.useRef(!1),y=e.useRef(!1);e.useEffect((()=>{M&&k&&!F.current&&(F.current=!0,M.oidc.finishLoginIfNeed().finally((()=>{_(!1),w.current=!0})))}),[]);const O=e.useCallback((()=>{if(s.isDescopeBridge())return;if(w.current)return;w.current=!0,R(!0);const e=()=>{requestAnimationFrame((()=>{setTimeout((()=>{R(!1)}),0)}))};s.withValidation(null==M?void 0:M.refresh)(void 0,!0).then(e,e)}),[M]),P=e.useCallback((()=>{if(y.current)return;y.current=!0,x(!0);const e=()=>x(!1);s.withValidation(M.me)().then(e,e)}),[M]),B=e.useMemo((()=>({fetchUser:P,user:L,isUserLoading:q,isUserFetched:y.current,fetchSession:O,session:b,isAuthenticated:I,isSessionLoading:E,isOidcLoading:N,isSessionFetched:w.current,projectId:o,baseUrl:i,baseStaticUrl:a,baseCdnUrl:u,storeLastAuthenticatedUser:g,keepLastAuthenticatedUserAfterLogout:C,refreshCookieName:S,customStorage:m,setUser:p,setSession:T,setIsAuthenticated:V,claims:j,sdk:M})),[P,L,q,y.current,O,b,I,E,N,w.current,o,i,a,u,C,S,m,p,T,V,j,M]);return n.default.createElement(t.default.Provider,{value:B},A)};
2
2
  //# sourceMappingURL=AuthProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n CookieConfig,\n OidcConfig,\n AutoRefreshConfig,\n} from '@descope/web-js-sdk';\nimport { Claims } from '@descope/core-js-sdk';\nimport { CustomStorage } from '@descope/web-component';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { isDescopeBridge, withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ntype Hooks = Parameters<typeof useSdk>[0]['hooks'];\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // allows to override the base URL that is used to fetch external script files\n baseCdnUrl?: string;\n // Default is true. If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // Default is true. If true, the SDK will automatically refresh the session token when it is about to expire.\n // Pass `{ customActivityTracking: true }` to skip refresh for idle users — you must call `sdk.markUserActive()` to signal activity.\n autoRefresh?: AutoRefreshConfig;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: CookieConfig;\n // If true, refresh token will be stored on cookie. Otherwise, the refresh token will be\n // stored on local storage and can be accessed with getRefreshToken function\n // Use this option if you need server-side access to the refresh token (e.g., in Next.js middleware)\n // to enable refreshing sessions on the server before they expire\n refreshTokenViaCookie?: CookieConfig;\n hooks?: Hooks;\n // If truthy he SDK refresh and logout functions will use the OIDC client\n // Accepts boolean or OIDC configuration\n oidcConfig?: OidcConfig;\n // Default is true. If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n // Use this option if the authentication is done via cookie, and configured with a different name\n // Currently, this is done using Descope Flows\n refreshCookieName?: string;\n // Function to get external token, for seamless migration from external system\n getExternalToken?: () => Promise<string>;\n // Custom storage object for authentication related data\n customStorage?: CustomStorage;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n baseCdnUrl = '',\n sessionTokenViaCookie = false,\n refreshTokenViaCookie = false,\n hooks = undefined,\n persistTokens = true,\n autoRefresh = true,\n oidcConfig = undefined,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n refreshCookieName = '',\n getExternalToken = undefined,\n customStorage = undefined,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n const [claims, setClaims] = useState<Claims>();\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n // if oidc config is enabled, we attempt to finish the login, so we start as loading\n const [isOidcLoading, setIsOidcLoading] = useState(!!oidcConfig);\n const isOidcFinishedLogin = useRef(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n autoRefresh,\n sessionTokenViaCookie,\n refreshTokenViaCookie,\n hooks,\n oidcConfig,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n getExternalToken,\n customStorage,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n const unsubscribeIsAuthenticated =\n sdk.onIsAuthenticatedChange(setIsAuthenticated);\n const unsubscribeClaims = sdk.onClaimsChange(setClaims);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n unsubscribeIsAuthenticated();\n unsubscribeClaims();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n // if oidc config is enabled, and we have oidc params in the url\n // we will finish the login (this should run only once)\n useEffect(() => {\n if (sdk && oidcConfig && !isOidcFinishedLogin.current) {\n isOidcFinishedLogin.current = true;\n sdk.oidc.finishLoginIfNeed().finally(() => {\n setIsOidcLoading(false);\n // We want that the session will fetched only once\n isSessionFetched.current = true;\n });\n }\n }, []);\n\n const fetchSession = useCallback(() => {\n // Don't load the session in native flows, though we'd usually not get here at all from useSession in this case\n if (isDescopeBridge()) return;\n\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)(undefined, true).then(() => {\n // Defer to a separate render pass so React doesn't batch this with\n // the setIsSessionLoading(true) above when refresh() short-circuits\n // synchronously - downstream consumers (e.g. useSession) need to\n // observe the false→true→false loading transition (#1393)\n requestAnimationFrame(() => {\n setTimeout(() => {\n setIsSessionLoading(false);\n }, 0);\n });\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["projectId","baseUrl","baseStaticUrl","baseCdnUrl","sessionTokenViaCookie","refreshTokenViaCookie","hooks","persistTokens","autoRefresh","oidcConfig","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","refreshCookieName","getExternalToken","customStorage","children","user","setUser","useState","session","setSession","claims","setClaims","isAuthenticated","setIsAuthenticated","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","isOidcLoading","setIsOidcLoading","isOidcFinishedLogin","useRef","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","unsubscribeIsAuthenticated","onIsAuthenticatedChange","unsubscribeClaims","onClaimsChange","isSessionFetched","isUserFetched","current","oidc","finishLoginIfNeed","finally","fetchSession","useCallback","isDescopeBridge","withValidation","refresh","undefined","then","requestAnimationFrame","setTimeout","fetchUser","me","value","useMemo","React","default","createElement","Context","Provider"],"mappings":"kQA8D6C,EAC3CA,YACAC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,yBAAwB,EACxBC,yBAAwB,EACxBC,QACAC,iBAAgB,EAChBC,eAAc,EACdC,aACAC,8BAA6B,EAC7BC,wCAAuC,EACvCC,oBAAoB,GACpBC,mBACAC,gBACAC,eAEA,MAAOC,EAAMC,GAAWC,EAAQA,YACzBC,EAASC,GAAcF,EAAQA,YAC/BG,EAAQC,GAAaJ,EAAQA,YAC7BK,EAAiBC,GAAsBN,EAAQA,UAAC,IAEhDO,EAAeC,GAAoBR,EAAQA,UAAC,IAC5CS,EAAkBC,GAAuBV,EAAQA,UAAC,IAGlDW,EAAeC,GAAoBZ,EAAAA,WAAWT,GAC/CsB,EAAsBC,UAAO,GAE7BC,EAAMC,EAAAA,QAAO,CACjBlC,YACAC,UACAM,gBACAC,cACAJ,wBACAC,wBACAC,QACAG,aACAC,6BACAC,uCACAC,oBACAC,mBACAC,kBAGFqB,EAAAA,WAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBjB,GACnDkB,EAAkBL,EAAIM,aAAatB,GACnCuB,EACJP,EAAIQ,wBAAwBjB,GACxBkB,EAAoBT,EAAIU,eAAerB,GAE7C,MAAO,KACLc,IACAE,IACAE,IACAE,GAAmB,CAEtB,CACe,GACf,CAACT,IAEJ,MAAMW,EAAmBZ,UAAO,GAC1Ba,EAAgBb,UAAO,GAI7BG,EAAAA,WAAU,KACJF,GAAOxB,IAAesB,EAAoBe,UAC5Cf,EAAoBe,SAAU,EAC9Bb,EAAIc,KAAKC,oBAAoBC,SAAQ,KACnCnB,GAAiB,GAEjBc,EAAiBE,SAAU,CAAI,IAElC,GACA,IAEH,MAAMI,EAAeC,EAAAA,aAAY,KAE3BC,qBAGAR,EAAiBE,UACrBF,EAAiBE,SAAU,EAE3BlB,GAAoB,GACpByB,EAAAA,eAAepB,aAAA,EAAAA,EAAKqB,QAApBD,MAA6BE,GAAW,GAAMC,MAAK,KAKjDC,uBAAsB,KACpBC,YAAW,KACT9B,GAAoB,EAAM,GACzB,EAAE,GACL,IACF,GACD,CAACK,IAEE0B,EAAYR,EAAAA,aAAY,KAExBN,EAAcC,UAClBD,EAAcC,SAAU,EAExBpB,GAAiB,GACjB2B,EAAAA,eAAepB,EAAI2B,GAAnBP,GAAyBG,MAAK,KAC5B9B,GAAiB,EAAM,IACvB,GACD,CAACO,IAEE4B,EAAQC,EAAAA,SACZ,KAAO,CACLH,YACA3C,OACAS,gBACAoB,cAAeA,EAAcC,QAC7BI,eACA/B,UACAI,kBACAI,mBACAE,gBACAe,iBAAkBA,EAAiBE,QACnC9C,YACAC,UACAC,gBACAC,aACAO,6BACAC,uCACAC,oBACAE,gBACAG,UACAG,aACAI,qBACAH,SACAY,SAEF,CACE0B,EACA3C,EACAS,EACAoB,EAAcC,QACdI,EACA/B,EACAI,EACAI,EACAE,EACAe,EAAiBE,QACjB9C,EACAC,EACAC,EACAC,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAI,EACAH,EACAY,IAGJ,OAAO8B,EAAAC,QAAAC,cAACC,UAAQC,SAAQ,CAACN,MAAOA,GAAQ9C,EAA4B"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n CookieConfig,\n OidcConfig,\n AutoRefreshConfig,\n} from '@descope/web-js-sdk';\nimport { Claims } from '@descope/core-js-sdk';\nimport { CustomStorage } from '@descope/web-component';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { isDescopeBridge, withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ntype Hooks = Parameters<typeof useSdk>[0]['hooks'];\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // allows to override the base URL that is used to fetch external script files\n baseCdnUrl?: string;\n // Default is true. If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // Default is true. If true, the SDK will automatically refresh the session token when it is about to expire.\n // Pass `{ customActivityTracking: true }` to skip refresh for idle users — you must call `sdk.markUserActive()` to signal activity.\n autoRefresh?: AutoRefreshConfig;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: CookieConfig;\n // If true, refresh token will be stored on cookie. Otherwise, the refresh token will be\n // stored on local storage and can be accessed with getRefreshToken function\n // Use this option if you need server-side access to the refresh token (e.g., in Next.js middleware)\n // to enable refreshing sessions on the server before they expire\n refreshTokenViaCookie?: CookieConfig;\n hooks?: Hooks;\n // If truthy he SDK refresh and logout functions will use the OIDC client\n // Accepts boolean or OIDC configuration\n oidcConfig?: OidcConfig;\n // Default is true. If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n // Use this option if the authentication is done via cookie, and configured with a different name\n // Currently, this is done using Descope Flows\n refreshCookieName?: string;\n // Function to get external token, for seamless migration from external system\n getExternalToken?: () => Promise<string>;\n // Custom storage object for authentication related data\n customStorage?: CustomStorage;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n baseCdnUrl = '',\n sessionTokenViaCookie = false,\n refreshTokenViaCookie = false,\n hooks = undefined,\n persistTokens = true,\n autoRefresh = true,\n oidcConfig = undefined,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n refreshCookieName = '',\n getExternalToken = undefined,\n customStorage = undefined,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n const [claims, setClaims] = useState<Claims>();\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n // if oidc config is enabled, we attempt to finish the login, so we start as loading\n const [isOidcLoading, setIsOidcLoading] = useState(!!oidcConfig);\n const isOidcFinishedLogin = useRef(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n autoRefresh,\n sessionTokenViaCookie,\n refreshTokenViaCookie,\n hooks,\n oidcConfig,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n getExternalToken,\n customStorage,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n const unsubscribeIsAuthenticated =\n sdk.onIsAuthenticatedChange(setIsAuthenticated);\n const unsubscribeClaims = sdk.onClaimsChange(setClaims);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n unsubscribeIsAuthenticated();\n unsubscribeClaims();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n // if oidc config is enabled, and we have oidc params in the url\n // we will finish the login (this should run only once)\n useEffect(() => {\n if (sdk && oidcConfig && !isOidcFinishedLogin.current) {\n isOidcFinishedLogin.current = true;\n sdk.oidc.finishLoginIfNeed().finally(() => {\n setIsOidcLoading(false);\n // We want that the session will fetched only once\n isSessionFetched.current = true;\n });\n }\n }, []);\n\n const fetchSession = useCallback(() => {\n // Don't load the session in native flows, though we'd usually not get here at all from useSession in this case\n if (isDescopeBridge()) return;\n\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n const stopSessionLoading = () => {\n // Defer to a separate render pass so React doesn't batch this with\n // the setIsSessionLoading(true) above when refresh() short-circuits\n // synchronously - downstream consumers (e.g. useSession) need to\n // observe the false→true→false loading transition (#1393)\n requestAnimationFrame(() => {\n setTimeout(() => {\n setIsSessionLoading(false);\n }, 0);\n });\n };\n // Clear the loading state on both fulfilment and rejection. A rejected\n // refresh (e.g. a transient network failure on the proactive refresh) must\n // still clear `isSessionLoading` - `isSessionFetched` is already set so\n // `fetchSession` never re-runs, and consumers (e.g. useSession) would\n // otherwise hang on \"loading\" forever despite a valid session.\n withValidation(sdk?.refresh)(undefined, true).then(\n stopSessionLoading,\n stopSessionLoading,\n );\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n // Clear the loading state on both fulfilment and rejection so a failed\n // `me()` doesn't leave `isUserLoading` stuck `true` (see fetchSession).\n const stopUserLoading = () => setIsUserLoading(false);\n withValidation(sdk.me)().then(stopUserLoading, stopUserLoading);\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["projectId","baseUrl","baseStaticUrl","baseCdnUrl","sessionTokenViaCookie","refreshTokenViaCookie","hooks","persistTokens","autoRefresh","oidcConfig","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","refreshCookieName","getExternalToken","customStorage","children","user","setUser","useState","session","setSession","claims","setClaims","isAuthenticated","setIsAuthenticated","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","isOidcLoading","setIsOidcLoading","isOidcFinishedLogin","useRef","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","unsubscribeIsAuthenticated","onIsAuthenticatedChange","unsubscribeClaims","onClaimsChange","isSessionFetched","isUserFetched","current","oidc","finishLoginIfNeed","finally","fetchSession","useCallback","isDescopeBridge","stopSessionLoading","requestAnimationFrame","setTimeout","withValidation","refresh","undefined","then","fetchUser","stopUserLoading","me","value","useMemo","React","default","createElement","Context","Provider"],"mappings":"kQA8D6C,EAC3CA,YACAC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,yBAAwB,EACxBC,yBAAwB,EACxBC,QACAC,iBAAgB,EAChBC,eAAc,EACdC,aACAC,8BAA6B,EAC7BC,wCAAuC,EACvCC,oBAAoB,GACpBC,mBACAC,gBACAC,eAEA,MAAOC,EAAMC,GAAWC,EAAQA,YACzBC,EAASC,GAAcF,EAAQA,YAC/BG,EAAQC,GAAaJ,EAAQA,YAC7BK,EAAiBC,GAAsBN,EAAQA,UAAC,IAEhDO,EAAeC,GAAoBR,EAAQA,UAAC,IAC5CS,EAAkBC,GAAuBV,EAAQA,UAAC,IAGlDW,EAAeC,GAAoBZ,EAAAA,WAAWT,GAC/CsB,EAAsBC,UAAO,GAE7BC,EAAMC,EAAAA,QAAO,CACjBlC,YACAC,UACAM,gBACAC,cACAJ,wBACAC,wBACAC,QACAG,aACAC,6BACAC,uCACAC,oBACAC,mBACAC,kBAGFqB,EAAAA,WAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBjB,GACnDkB,EAAkBL,EAAIM,aAAatB,GACnCuB,EACJP,EAAIQ,wBAAwBjB,GACxBkB,EAAoBT,EAAIU,eAAerB,GAE7C,MAAO,KACLc,IACAE,IACAE,IACAE,GAAmB,CAEtB,CACe,GACf,CAACT,IAEJ,MAAMW,EAAmBZ,UAAO,GAC1Ba,EAAgBb,UAAO,GAI7BG,EAAAA,WAAU,KACJF,GAAOxB,IAAesB,EAAoBe,UAC5Cf,EAAoBe,SAAU,EAC9Bb,EAAIc,KAAKC,oBAAoBC,SAAQ,KACnCnB,GAAiB,GAEjBc,EAAiBE,SAAU,CAAI,IAElC,GACA,IAEH,MAAMI,EAAeC,EAAAA,aAAY,KAE/B,GAAIC,oBAAmB,OAGvB,GAAIR,EAAiBE,QAAS,OAC9BF,EAAiBE,SAAU,EAE3BlB,GAAoB,GACpB,MAAMyB,EAAqB,KAKzBC,uBAAsB,KACpBC,YAAW,KACT3B,GAAoB,EAAM,GACzB,EAAE,GACL,EAOJ4B,EAAcA,eAACvB,eAAAA,EAAKwB,QAApBD,MAA6BE,GAAW,GAAMC,KAC5CN,EACAA,EACD,GACA,CAACpB,IAEE2B,EAAYT,EAAAA,aAAY,KAE5B,GAAIN,EAAcC,QAAS,OAC3BD,EAAcC,SAAU,EAExBpB,GAAiB,GAGjB,MAAMmC,EAAkB,IAAMnC,GAAiB,GAC/C8B,EAAcA,eAACvB,EAAI6B,GAAnBN,GAAyBG,KAAKE,EAAiBA,EAAgB,GAC9D,CAAC5B,IAEE8B,EAAQC,EAAAA,SACZ,KAAO,CACLJ,YACA5C,OACAS,gBACAoB,cAAeA,EAAcC,QAC7BI,eACA/B,UACAI,kBACAI,mBACAE,gBACAe,iBAAkBA,EAAiBE,QACnC9C,YACAC,UACAC,gBACAC,aACAO,6BACAC,uCACAC,oBACAE,gBACAG,UACAG,aACAI,qBACAH,SACAY,SAEF,CACE2B,EACA5C,EACAS,EACAoB,EAAcC,QACdI,EACA/B,EACAI,EACAI,EACAE,EACAe,EAAiBE,QACjB9C,EACAC,EACAC,EACAC,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAI,EACAH,EACAY,IAGJ,OAAOgC,EAAAC,QAAAC,cAACC,UAAQC,SAAQ,CAACN,MAAOA,GAAQhD,EAA4B"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const d=e.lazy((async()=>(await import("@descope/outbound-applications-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-outbound-applications-widget",Object.assign({ref:t},e)))))}))),o=l.default.forwardRef((({logger:r,theme:a,locale:o,debug:s,widgetId:u,styleId:n,onReady:i},c)=>{const[f,p]=e.useState(null);e.useImperativeHandle(c,(()=>f));const{projectId:b,baseUrl:g,baseStaticUrl:m,baseCdnUrl:w,refreshCookieName:y}=l.default.useContext(t.default);return e.useEffect((()=>{const e=f;return i&&(null==e||e.addEventListener("ready",i)),()=>{i&&(null==e||e.removeEventListener("ready",i))}}),[f,i]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{ref:p,projectId:b,widgetId:u,baseUrl:g,baseStaticUrl:m,baseCdnUrl:w,"theme.attr":a,"locale.attr":o,"debug.attr":s,"styleId.attr":n,"refreshCookieName.attr":y,"logger.prop":r}))}));exports.default=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const d=e.lazy((async()=>(await import("@descope/outbound-applications-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-outbound-applications-widget",Object.assign({ref:t},e)))))}))),o=l.default.forwardRef((({logger:r,theme:a,locale:o,debug:s,widgetId:n,styleId:u,onReady:i,client:c,form:f},p)=>{const[b,g]=e.useState(null);e.useImperativeHandle(p,(()=>b));const{projectId:m,baseUrl:w,baseStaticUrl:y,baseCdnUrl:v,refreshCookieName:I}=l.default.useContext(t.default);return e.useEffect((()=>{const e=b;return i&&(null==e||e.addEventListener("ready",i)),()=>{i&&(null==e||e.removeEventListener("ready",i))}}),[b,i]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(d,{ref:g,projectId:m,widgetId:n,baseUrl:w,baseStaticUrl:y,baseCdnUrl:v,"theme.attr":a,"locale.attr":o,"debug.attr":s,"styleId.attr":u,"refreshCookieName.attr":I,"client.attr":c,"form.attr":f,"logger.prop":r}))}));exports.default=o;
2
2
  //# sourceMappingURL=OutboundApplications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutboundApplications.js","sources":["../../../src/components/OutboundApplications.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { OutboundApplicationsProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst OutboundApplicationsWC = lazy(async () => {\n await import('@descope/outbound-applications-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-outbound-applications-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst OutboundApplications = React.forwardRef<\n HTMLElement,\n OutboundApplicationsProps\n>(({ logger, theme, locale, debug, widgetId, styleId, onReady }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<OutboundApplicationsWC\n ref={setInnerRef}\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n});\n\nexport default OutboundApplications;\n"],"names":["OutboundApplicationsWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","OutboundApplications","logger","theme","locale","debug","widgetId","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAYA,MAAMA,EAAyBC,EAAIA,MAACC,gBAC5BC,OAAO,yCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM/CK,EAAuBP,EAAAA,QAAMC,YAGjC,EAAGO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,WAAWX,KAC/D,MAAOY,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBf,GAAK,IAAMY,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDvB,EAAKF,QAAC0B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGfd,EAACF,QAAAM,cAAA0B,EAAQA,SAAC,CAAAC,SAAU,MACnB/B,EAACF,QAAAM,cAAAV,EACK,CAAAS,IAAKa,EACLG,UAAWA,EACXP,SAAUA,EACVQ,QAASA,EACTC,cAAeA,EACfC,WAAYA,EAGV,aAAcb,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BU,EAE1B,cAAef,IAIrB"}
1
+ {"version":3,"file":"OutboundApplications.js","sources":["../../../src/components/OutboundApplications.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { OutboundApplicationsProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst OutboundApplicationsWC = lazy(async () => {\n await import('@descope/outbound-applications-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-outbound-applications-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst OutboundApplications = React.forwardRef<\n HTMLElement,\n OutboundApplicationsProps\n>(\n (\n { logger, theme, locale, debug, widgetId, styleId, onReady, client, form },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<OutboundApplicationsWC\n ref={setInnerRef}\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default OutboundApplications;\n"],"names":["OutboundApplicationsWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","OutboundApplications","logger","theme","locale","debug","widgetId","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAYA,MAAMA,EAAyBC,EAAIA,MAACC,gBAC5BC,OAAO,yCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM/CK,EAAuBP,EAAKF,QAACG,YAIjC,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,UAASC,SAAQC,QACpEb,KAEA,MAAOc,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBjB,GAAK,IAAMc,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDzB,EAAKF,QAAC4B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBd,EAACF,QAAAM,cAAA4B,EAAQA,SAAC,CAAAC,SAAU,MACnBjC,EAACF,QAAAM,cAAAV,EACO,CAAAS,IAAKe,EACLG,UAAWA,EACXT,SAAUA,EACVU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EAGV,aAAcf,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeR,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const n=e.lazy((async()=>(await import("@descope/tenant-profile-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-tenant-profile-widget",Object.assign({ref:t},e)))))}))),d=l.default.forwardRef((({logger:r,theme:a,locale:d,debug:s,widgetId:o,styleId:u,tenant:f,onReady:i},c)=>{const[p,g]=e.useState(null);e.useImperativeHandle(c,(()=>p));const{projectId:b,baseUrl:m,baseStaticUrl:y,baseCdnUrl:w,refreshCookieName:I}=l.default.useContext(t.default);return e.useEffect((()=>{const e=p;return i&&(null==e||e.addEventListener("ready",i)),()=>{i&&(null==e||e.removeEventListener("ready",i))}}),[p,i]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(n,{projectId:b,widgetId:o,baseUrl:m,baseStaticUrl:y,baseCdnUrl:w,styleId:u,tenant:f,ref:g,"theme.attr":a,"locale.attr":d,"debug.attr":s,"styleId.attr":u,"tenant.attr":f,"refreshCookieName.attr":I,"logger.prop":r}))}));exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const n=e.lazy((async()=>(await import("@descope/tenant-profile-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-tenant-profile-widget",Object.assign({ref:t},e)))))}))),d=l.default.forwardRef((({logger:r,theme:a,locale:d,debug:s,widgetId:o,styleId:u,tenant:f,onReady:i,client:c,form:p},g)=>{const[m,b]=e.useState(null);e.useImperativeHandle(g,(()=>m));const{projectId:y,baseUrl:w,baseStaticUrl:I,baseCdnUrl:v,refreshCookieName:h}=l.default.useContext(t.default);return e.useEffect((()=>{const e=m;return i&&(null==e||e.addEventListener("ready",i)),()=>{i&&(null==e||e.removeEventListener("ready",i))}}),[m,i]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(n,{projectId:y,widgetId:o,baseUrl:w,baseStaticUrl:I,baseCdnUrl:v,styleId:u,tenant:f,ref:b,"theme.attr":a,"locale.attr":d,"debug.attr":s,"styleId.attr":u,"tenant.attr":f,"refreshCookieName.attr":h,"client.attr":c,"form.attr":p,"logger.prop":r}))}));exports.default=d;
2
2
  //# sourceMappingURL=TenantProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TenantProfile.js","sources":["../../../src/components/TenantProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { TenantProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\nconst TenantProfileWC = lazy(async () => {\n await import('@descope/tenant-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-tenant-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst TenantProfile = React.forwardRef<HTMLElement, TenantProfileProps>(\n (\n { logger, theme, locale, debug, widgetId, styleId, tenant, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<TenantProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n tenant={tenant}\n ref={setInnerRef}\n {...{\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'tenant.attr': tenant,\n 'refreshCookieName.attr': refreshCookieName,\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default TenantProfile;\n"],"names":["TenantProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","TenantProfile","logger","theme","locale","debug","widgetId","styleId","tenant","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAWA,MAAMA,EAAkBC,EAAIA,MAACC,gBACrBC,OAAO,kCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA+BI,cAAA,gCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMxCK,EAAgBP,EAAAA,QAAMC,YAC1B,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,SAAQC,WAC3DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDxB,EAAKF,QAAC2B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACF,QAAAM,cAAA2B,EAAQA,SAAC,CAAAC,SAAU,MACnBhC,UAAAI,cAACV,EACO,CAAA0B,UAAWA,EACXR,SAAUA,EACVS,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZV,QAASA,EACTC,OAAQA,EACRX,IAAKc,EAEH,aAAcR,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,cAAeC,EACf,yBAA0BU,EAC1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"TenantProfile.js","sources":["../../../src/components/TenantProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { TenantProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\nconst TenantProfileWC = lazy(async () => {\n await import('@descope/tenant-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-tenant-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst TenantProfile = React.forwardRef<HTMLElement, TenantProfileProps>(\n (\n {\n logger,\n theme,\n locale,\n debug,\n widgetId,\n styleId,\n tenant,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<TenantProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n tenant={tenant}\n ref={setInnerRef}\n {...{\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'tenant.attr': tenant,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default TenantProfile;\n"],"names":["TenantProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","TenantProfile","logger","theme","locale","debug","widgetId","styleId","tenant","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAWA,MAAMA,EAAkBC,EAAIA,MAACC,gBACrBC,OAAO,kCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA+BI,cAAA,gCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMxCK,EAAgBP,EAAKF,QAACG,YAC1B,EAEIO,SACAC,QACAC,SACAC,QACAC,WACAC,UACAC,SACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrD1B,EAAKF,QAAC6B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACF,QAAAM,cAAA6B,EAAQA,SAAC,CAAAC,SAAU,MACnBlC,UAAAI,cAACV,EACO,CAAA4B,UAAWA,EACXV,SAAUA,EACVW,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZZ,QAASA,EACTC,OAAQA,EACRX,IAAKgB,EAEH,aAAcV,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,cAAeC,EACf,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EACb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const n=e.lazy((async()=>(await import("@descope/user-management-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-management-widget",Object.assign({ref:t},e)))))}))),d=l.default.forwardRef((({logger:r,tenant:a,theme:d,locale:s,debug:u,widgetId:o,styleId:f,onReady:c},i)=>{const[p,g]=e.useState(null);e.useImperativeHandle(i,(()=>p));const{projectId:m,baseUrl:b,baseStaticUrl:w,baseCdnUrl:y,refreshCookieName:v}=l.default.useContext(t.default);return e.useEffect((()=>{const e=p;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("ready",c))}}),[p,c]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(n,{projectId:m,widgetId:o,tenant:a,baseUrl:b,baseStaticUrl:w,baseCdnUrl:y,ref:g,"theme.attr":d,"locale.attr":s,"debug.attr":u,"styleId.attr":f,"refreshCookieName.attr":v,"logger.prop":r}))}));exports.default=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const n=e.lazy((async()=>(await import("@descope/user-management-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-management-widget",Object.assign({ref:t},e)))))}))),d=l.default.forwardRef((({logger:r,tenant:a,theme:d,locale:s,debug:o,widgetId:u,styleId:f,onReady:c,client:i,form:m},p)=>{const[g,b]=e.useState(null);e.useImperativeHandle(p,(()=>g));const{projectId:w,baseUrl:y,baseStaticUrl:v,baseCdnUrl:I,refreshCookieName:h}=l.default.useContext(t.default);return e.useEffect((()=>{const e=g;return c&&(null==e||e.addEventListener("ready",c)),()=>{c&&(null==e||e.removeEventListener("ready",c))}}),[g,c]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(n,{projectId:w,widgetId:u,tenant:a,baseUrl:y,baseStaticUrl:v,baseCdnUrl:I,ref:b,"theme.attr":d,"locale.attr":s,"debug.attr":o,"styleId.attr":f,"refreshCookieName.attr":h,"client.attr":i,"form.attr":m,"logger.prop":r}))}));exports.default=d;
2
2
  //# sourceMappingURL=UserManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n (\n { logger, tenant, theme, locale, debug, widgetId, styleId, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","locale","debug","widgetId","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAYA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAAA,QAAMC,YAC3B,EACIO,SAAQC,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,WAC3DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDxB,EAAKF,QAAC2B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACF,QAAAM,cAAA2B,EAAQA,SAAC,CAAAC,SAAU,MACnBhC,EAAAF,QAAAM,cAACV,EAAgB,CACT0B,UAAWA,EACXP,SAAUA,EACVJ,OAAQA,EACRY,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZpB,IAAKc,EAGH,aAAcP,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BU,EAE1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n (\n {\n logger,\n tenant,\n theme,\n locale,\n debug,\n widgetId,\n styleId,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","locale","debug","widgetId","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"mOAYA,MAAMA,EAAmBC,EAAIA,MAACC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAKF,QAACG,YAC3B,EAEIO,SACAC,SACAC,QACAC,SACAC,QACAC,WACAC,UACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrD1B,EAAKF,QAAC6B,WAAWC,EAAAA,SAWnB,OATAC,EAAAA,WAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACF,QAAAM,cAAA6B,EAAQA,SAAC,CAAAC,SAAU,MACnBlC,EAAAF,QAAAM,cAACV,EAAgB,CACT4B,UAAWA,EACXT,SAAUA,EACVJ,OAAQA,EACRc,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZtB,IAAKgB,EAGH,aAAcT,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const s=e.lazy((async()=>(await import("@descope/user-profile-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-profile-widget",Object.assign({ref:t},e)))))}))),o=l.default.forwardRef((({logger:r,theme:a,locale:o,debug:d,widgetId:u,onLogout:n,styleId:i,onReady:f},c)=>{const[p,g]=e.useState(null);e.useImperativeHandle(c,(()=>p));const{projectId:b,baseUrl:m,baseStaticUrl:v,baseCdnUrl:y,refreshCookieName:E,setSession:I,setUser:w,setIsAuthenticated:h}=l.default.useContext(t.default),C=e.useCallback((e=>{n&&n(e),h(!1),I(""),w(null)}),[n,I,h,w]);return e.useEffect((()=>{if(p)return p.addEventListener("logout",C),()=>p.removeEventListener("logout",C)}),[p,C]),e.useEffect((()=>{const e=p;return f&&(null==e||e.addEventListener("ready",f)),()=>{f&&(null==e||e.removeEventListener("ready",f))}}),[p,f]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(s,{projectId:b,widgetId:u,baseUrl:m,baseStaticUrl:v,baseCdnUrl:y,styleId:i,ref:g,"theme.attr":a,"locale.attr":o,"debug.attr":d,"styleId.attr":i,"refreshCookieName.attr":E,"logger.prop":r}))}));exports.default=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../hooks/Context.js"),r=require("./withPropsMapping/index.js");function a(e){return e&&e.__esModule?e:{default:e}}var l=a(e);const s=e.lazy((async()=>(await import("@descope/user-profile-widget"),{default:r.default(l.default.forwardRef(((e,t)=>l.default.createElement("descope-user-profile-widget",Object.assign({ref:t},e)))))}))),o=l.default.forwardRef((({logger:r,theme:a,locale:o,debug:d,widgetId:n,onLogout:u,styleId:i,onReady:f,client:c,form:p},g)=>{const[m,b]=e.useState(null);e.useImperativeHandle(g,(()=>m));const{projectId:v,baseUrl:y,baseStaticUrl:E,baseCdnUrl:I,refreshCookieName:w,setSession:h,setUser:C,setIsAuthenticated:U}=l.default.useContext(t.default),j=e.useCallback((e=>{u&&u(e),U(!1),h(""),C(null)}),[u,h,U,C]);return e.useEffect((()=>{if(m)return m.addEventListener("logout",j),()=>m.removeEventListener("logout",j)}),[m,j]),e.useEffect((()=>{const e=m;return f&&(null==e||e.addEventListener("ready",f)),()=>{f&&(null==e||e.removeEventListener("ready",f))}}),[m,f]),l.default.createElement(e.Suspense,{fallback:null},l.default.createElement(s,{projectId:v,widgetId:n,baseUrl:y,baseStaticUrl:E,baseCdnUrl:I,styleId:i,ref:b,"theme.attr":a,"locale.attr":o,"debug.attr":d,"styleId.attr":i,"refreshCookieName.attr":w,"client.attr":c,"form.attr":p,"logger.prop":r}))}));exports.default=o;
2
2
  //# sourceMappingURL=UserProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n (\n { logger, theme, locale, debug, widgetId, onLogout, styleId, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n refreshCookieName,\n setSession,\n setUser,\n setIsAuthenticated,\n } = React.useContext(Context);\n\n const handleLogout = useCallback(\n (e: CustomEvent) => {\n if (onLogout) {\n onLogout(e);\n }\n // we want to clear the session and user when the logout event is triggered\n setIsAuthenticated(false);\n setSession('');\n setUser(null);\n },\n [onLogout, setSession, setIsAuthenticated, setUser],\n );\n\n useEffect(() => {\n if (innerRef) {\n innerRef.addEventListener('logout', handleLogout);\n return () => innerRef.removeEventListener('logout', handleLogout);\n }\n return undefined;\n }, [innerRef, handleLogout]);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","locale","debug","widgetId","onLogout","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","setSession","setUser","setIsAuthenticated","useContext","Context","handleLogout","useCallback","e","useEffect","addEventListener","removeEventListener","ele","Suspense","fallback"],"mappings":"mOAaA,MAAMA,EAAgBC,EAAIA,MAACC,gBACnBC,OAAO,gCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAAA,QAAMC,YACxB,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,WAAUC,UAASC,WAC7DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,WACbA,EAAUC,kBACVA,EAAiBC,WACjBA,EAAUC,QACVA,EAAOC,mBACPA,GACE3B,EAAKF,QAAC8B,WAAWC,EAAO/B,SAEtBgC,EAAeC,eAClBC,IACKnB,GACFA,EAASmB,GAGXL,GAAmB,GACnBF,EAAW,IACXC,EAAQ,KAAK,GAEf,CAACb,EAAUY,EAAYE,EAAoBD,IAoB7C,OAjBAO,EAAAA,WAAU,KACR,GAAIjB,EAEF,OADAA,EAASkB,iBAAiB,SAAUJ,GAC7B,IAAMd,EAASmB,oBAAoB,SAAUL,EAEtC,GACf,CAACd,EAAUc,IAEdG,EAAAA,WAAU,KACR,MAAMG,EAAMpB,EAGZ,OAFID,IAASqB,SAAAA,EAAKF,iBAAiB,QAASnB,IAErC,KACDA,IAASqB,SAAAA,EAAKD,oBAAoB,QAASpB,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACF,QAAAM,cAAAiC,EAAQA,SAAC,CAAAC,SAAU,MACnBtC,EAAAF,QAAAM,cAACV,EAAa,CACN0B,UAAWA,EACXR,SAAUA,EACVS,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZT,QAASA,EACTX,IAAKc,EAGH,aAAcR,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBG,EAChB,yBAA0BU,EAE1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n (\n {\n logger,\n theme,\n locale,\n debug,\n widgetId,\n onLogout,\n styleId,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n refreshCookieName,\n setSession,\n setUser,\n setIsAuthenticated,\n } = React.useContext(Context);\n\n const handleLogout = useCallback(\n (e: CustomEvent) => {\n if (onLogout) {\n onLogout(e);\n }\n // we want to clear the session and user when the logout event is triggered\n setIsAuthenticated(false);\n setSession('');\n setUser(null);\n },\n [onLogout, setSession, setIsAuthenticated, setUser],\n );\n\n useEffect(() => {\n if (innerRef) {\n innerRef.addEventListener('logout', handleLogout);\n return () => innerRef.removeEventListener('logout', handleLogout);\n }\n return undefined;\n }, [innerRef, handleLogout]);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","locale","debug","widgetId","onLogout","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","setSession","setUser","setIsAuthenticated","useContext","Context","handleLogout","useCallback","e","useEffect","addEventListener","removeEventListener","ele","Suspense","fallback"],"mappings":"mOAaA,MAAMA,EAAgBC,EAAIA,MAACC,gBACnBC,OAAO,gCAEN,CACLC,QAASC,EAAgBD,QACvBE,UAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAAA,QAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAKF,QAACG,YACxB,EAEIO,SACAC,QACAC,SACAC,QACAC,WACAC,WACAC,UACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAQA,SAAC,MAEzCC,sBAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,WACbA,EAAUC,kBACVA,EAAiBC,WACjBA,EAAUC,QACVA,EAAOC,mBACPA,GACE7B,EAAKF,QAACgC,WAAWC,EAAOjC,SAEtBkC,EAAeC,eAClBC,IACKrB,GACFA,EAASqB,GAGXL,GAAmB,GACnBF,EAAW,IACXC,EAAQ,KAAK,GAEf,CAACf,EAAUc,EAAYE,EAAoBD,IAoB7C,OAjBAO,EAAAA,WAAU,KACR,GAAIjB,EAEF,OADAA,EAASkB,iBAAiB,SAAUJ,GAC7B,IAAMd,EAASmB,oBAAoB,SAAUL,EAEtC,GACf,CAACd,EAAUc,IAEdG,EAAAA,WAAU,KACR,MAAMG,EAAMpB,EAGZ,OAFIH,IAASuB,SAAAA,EAAKF,iBAAiB,QAASrB,IAErC,KACDA,IAASuB,SAAAA,EAAKD,oBAAoB,QAAStB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACF,QAAAM,cAAAmC,EAAQA,SAAC,CAAAC,SAAU,MACnBxC,EAAAF,QAAAM,cAACV,EAAa,CACN4B,UAAWA,EACXV,SAAUA,EACVW,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZX,QAASA,EACTX,IAAKgB,EAGH,aAAcV,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBG,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- "use strict";const e="undefined"!=typeof window;exports.IS_BROWSER=e,exports.baseHeaders={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.29.5"};
1
+ "use strict";const e="undefined"!=typeof window;exports.IS_BROWSER=e,exports.baseHeaders={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.30.1"};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1,2 +1,2 @@
1
- import e,{useState as t,useRef as s,useEffect as r,useCallback as o,useMemo as n}from"react";import i from"../../hooks/Context.js";import{isDescopeBridge as a,withValidation as c}from"../../utils.js";import u from"./useSdk.js";const h=({projectId:h,baseUrl:d="",baseStaticUrl:f="",baseCdnUrl:k="",sessionTokenViaCookie:m=!1,refreshTokenViaCookie:l=!1,hooks:g,persistTokens:U=!0,autoRefresh:C=!0,oidcConfig:p,storeLastAuthenticatedUser:A=!0,keepLastAuthenticatedUserAfterLogout:L=!1,refreshCookieName:S="",getExternalToken:T,customStorage:b,children:j})=>{const[I,v]=t(),[x,N]=t(),[V,E]=t(),[F,R]=t(!1),[q,y]=t(!1),[O,P]=t(!1),[w,z]=t(!!p),B=s(!1),D=u({projectId:h,baseUrl:d,persistTokens:U,autoRefresh:C,sessionTokenViaCookie:m,refreshTokenViaCookie:l,hooks:g,oidcConfig:p,storeLastAuthenticatedUser:A,keepLastAuthenticatedUserAfterLogout:L,refreshCookieName:S,getExternalToken:T,customStorage:b});r((()=>{if(D){const e=D.onSessionTokenChange(N),t=D.onUserChange(v),s=D.onIsAuthenticatedChange(R),r=D.onClaimsChange(E);return()=>{e(),t(),s(),r()}}}),[D]);const G=s(!1),H=s(!1);r((()=>{D&&p&&!B.current&&(B.current=!0,D.oidc.finishLoginIfNeed().finally((()=>{z(!1),G.current=!0})))}),[]);const J=o((()=>{a()||G.current||(G.current=!0,P(!0),c(null==D?void 0:D.refresh)(void 0,!0).then((()=>{requestAnimationFrame((()=>{setTimeout((()=>{P(!1)}),0)}))})))}),[D]),K=o((()=>{H.current||(H.current=!0,y(!0),c(D.me)().then((()=>{y(!1)})))}),[D]),M=n((()=>({fetchUser:K,user:I,isUserLoading:q,isUserFetched:H.current,fetchSession:J,session:x,isAuthenticated:F,isSessionLoading:O,isOidcLoading:w,isSessionFetched:G.current,projectId:h,baseUrl:d,baseStaticUrl:f,baseCdnUrl:k,storeLastAuthenticatedUser:A,keepLastAuthenticatedUserAfterLogout:L,refreshCookieName:S,customStorage:b,setUser:v,setSession:N,setIsAuthenticated:R,claims:V,sdk:D})),[K,I,q,H.current,J,x,F,O,w,G.current,h,d,f,k,L,S,b,v,N,R,V,D]);return e.createElement(i.Provider,{value:M},j)};export{h as default};
1
+ import e,{useState as t,useRef as r,useEffect as s,useCallback as o,useMemo as n}from"react";import i from"../../hooks/Context.js";import{isDescopeBridge as a,withValidation as c}from"../../utils.js";import u from"./useSdk.js";const h=({projectId:h,baseUrl:d="",baseStaticUrl:f="",baseCdnUrl:k="",sessionTokenViaCookie:m=!1,refreshTokenViaCookie:l=!1,hooks:g,persistTokens:U=!0,autoRefresh:C=!0,oidcConfig:p,storeLastAuthenticatedUser:A=!0,keepLastAuthenticatedUserAfterLogout:L=!1,refreshCookieName:S="",getExternalToken:T,customStorage:b,children:j})=>{const[I,v]=t(),[x,N]=t(),[V,E]=t(),[F,R]=t(!1),[q,y]=t(!1),[O,P]=t(!1),[w,z]=t(!!p),B=r(!1),D=u({projectId:h,baseUrl:d,persistTokens:U,autoRefresh:C,sessionTokenViaCookie:m,refreshTokenViaCookie:l,hooks:g,oidcConfig:p,storeLastAuthenticatedUser:A,keepLastAuthenticatedUserAfterLogout:L,refreshCookieName:S,getExternalToken:T,customStorage:b});s((()=>{if(D){const e=D.onSessionTokenChange(N),t=D.onUserChange(v),r=D.onIsAuthenticatedChange(R),s=D.onClaimsChange(E);return()=>{e(),t(),r(),s()}}}),[D]);const G=r(!1),H=r(!1);s((()=>{D&&p&&!B.current&&(B.current=!0,D.oidc.finishLoginIfNeed().finally((()=>{z(!1),G.current=!0})))}),[]);const J=o((()=>{if(a())return;if(G.current)return;G.current=!0,P(!0);const e=()=>{requestAnimationFrame((()=>{setTimeout((()=>{P(!1)}),0)}))};c(null==D?void 0:D.refresh)(void 0,!0).then(e,e)}),[D]),K=o((()=>{if(H.current)return;H.current=!0,y(!0);const e=()=>y(!1);c(D.me)().then(e,e)}),[D]),M=n((()=>({fetchUser:K,user:I,isUserLoading:q,isUserFetched:H.current,fetchSession:J,session:x,isAuthenticated:F,isSessionLoading:O,isOidcLoading:w,isSessionFetched:G.current,projectId:h,baseUrl:d,baseStaticUrl:f,baseCdnUrl:k,storeLastAuthenticatedUser:A,keepLastAuthenticatedUserAfterLogout:L,refreshCookieName:S,customStorage:b,setUser:v,setSession:N,setIsAuthenticated:R,claims:V,sdk:D})),[K,I,q,H.current,J,x,F,O,w,G.current,h,d,f,k,L,S,b,v,N,R,V,D]);return e.createElement(i.Provider,{value:M},j)};export{h as default};
2
2
  //# sourceMappingURL=AuthProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n CookieConfig,\n OidcConfig,\n AutoRefreshConfig,\n} from '@descope/web-js-sdk';\nimport { Claims } from '@descope/core-js-sdk';\nimport { CustomStorage } from '@descope/web-component';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { isDescopeBridge, withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ntype Hooks = Parameters<typeof useSdk>[0]['hooks'];\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // allows to override the base URL that is used to fetch external script files\n baseCdnUrl?: string;\n // Default is true. If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // Default is true. If true, the SDK will automatically refresh the session token when it is about to expire.\n // Pass `{ customActivityTracking: true }` to skip refresh for idle users — you must call `sdk.markUserActive()` to signal activity.\n autoRefresh?: AutoRefreshConfig;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: CookieConfig;\n // If true, refresh token will be stored on cookie. Otherwise, the refresh token will be\n // stored on local storage and can be accessed with getRefreshToken function\n // Use this option if you need server-side access to the refresh token (e.g., in Next.js middleware)\n // to enable refreshing sessions on the server before they expire\n refreshTokenViaCookie?: CookieConfig;\n hooks?: Hooks;\n // If truthy he SDK refresh and logout functions will use the OIDC client\n // Accepts boolean or OIDC configuration\n oidcConfig?: OidcConfig;\n // Default is true. If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n // Use this option if the authentication is done via cookie, and configured with a different name\n // Currently, this is done using Descope Flows\n refreshCookieName?: string;\n // Function to get external token, for seamless migration from external system\n getExternalToken?: () => Promise<string>;\n // Custom storage object for authentication related data\n customStorage?: CustomStorage;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n baseCdnUrl = '',\n sessionTokenViaCookie = false,\n refreshTokenViaCookie = false,\n hooks = undefined,\n persistTokens = true,\n autoRefresh = true,\n oidcConfig = undefined,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n refreshCookieName = '',\n getExternalToken = undefined,\n customStorage = undefined,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n const [claims, setClaims] = useState<Claims>();\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n // if oidc config is enabled, we attempt to finish the login, so we start as loading\n const [isOidcLoading, setIsOidcLoading] = useState(!!oidcConfig);\n const isOidcFinishedLogin = useRef(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n autoRefresh,\n sessionTokenViaCookie,\n refreshTokenViaCookie,\n hooks,\n oidcConfig,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n getExternalToken,\n customStorage,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n const unsubscribeIsAuthenticated =\n sdk.onIsAuthenticatedChange(setIsAuthenticated);\n const unsubscribeClaims = sdk.onClaimsChange(setClaims);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n unsubscribeIsAuthenticated();\n unsubscribeClaims();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n // if oidc config is enabled, and we have oidc params in the url\n // we will finish the login (this should run only once)\n useEffect(() => {\n if (sdk && oidcConfig && !isOidcFinishedLogin.current) {\n isOidcFinishedLogin.current = true;\n sdk.oidc.finishLoginIfNeed().finally(() => {\n setIsOidcLoading(false);\n // We want that the session will fetched only once\n isSessionFetched.current = true;\n });\n }\n }, []);\n\n const fetchSession = useCallback(() => {\n // Don't load the session in native flows, though we'd usually not get here at all from useSession in this case\n if (isDescopeBridge()) return;\n\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n withValidation(sdk?.refresh)(undefined, true).then(() => {\n // Defer to a separate render pass so React doesn't batch this with\n // the setIsSessionLoading(true) above when refresh() short-circuits\n // synchronously - downstream consumers (e.g. useSession) need to\n // observe the false→true→false loading transition (#1393)\n requestAnimationFrame(() => {\n setTimeout(() => {\n setIsSessionLoading(false);\n }, 0);\n });\n });\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n withValidation(sdk.me)().then(() => {\n setIsUserLoading(false);\n });\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["AuthProvider","projectId","baseUrl","baseStaticUrl","baseCdnUrl","sessionTokenViaCookie","refreshTokenViaCookie","hooks","persistTokens","autoRefresh","oidcConfig","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","refreshCookieName","getExternalToken","customStorage","children","user","setUser","useState","session","setSession","claims","setClaims","isAuthenticated","setIsAuthenticated","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","isOidcLoading","setIsOidcLoading","isOidcFinishedLogin","useRef","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","unsubscribeIsAuthenticated","onIsAuthenticatedChange","unsubscribeClaims","onClaimsChange","isSessionFetched","isUserFetched","current","oidc","finishLoginIfNeed","finally","fetchSession","useCallback","isDescopeBridge","withValidation","refresh","undefined","then","requestAnimationFrame","setTimeout","fetchUser","me","value","useMemo","React","createElement","Context","Provider"],"mappings":"mOA8DA,MAAMA,EAAuC,EAC3CC,YACAC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,yBAAwB,EACxBC,yBAAwB,EACxBC,QACAC,iBAAgB,EAChBC,eAAc,EACdC,aACAC,8BAA6B,EAC7BC,wCAAuC,EACvCC,oBAAoB,GACpBC,mBACAC,gBACAC,eAEA,MAAOC,EAAMC,GAAWC,KACjBC,EAASC,GAAcF,KACvBG,EAAQC,GAAaJ,KACrBK,EAAiBC,GAAsBN,GAAS,IAEhDO,EAAeC,GAAoBR,GAAS,IAC5CS,EAAkBC,GAAuBV,GAAS,IAGlDW,EAAeC,GAAoBZ,IAAWT,GAC/CsB,EAAsBC,GAAO,GAE7BC,EAAMC,EAAO,CACjBlC,YACAC,UACAM,gBACAC,cACAJ,wBACAC,wBACAC,QACAG,aACAC,6BACAC,uCACAC,oBACAC,mBACAC,kBAGFqB,GAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBjB,GACnDkB,EAAkBL,EAAIM,aAAatB,GACnCuB,EACJP,EAAIQ,wBAAwBjB,GACxBkB,EAAoBT,EAAIU,eAAerB,GAE7C,MAAO,KACLc,IACAE,IACAE,IACAE,GAAmB,CAEtB,CACe,GACf,CAACT,IAEJ,MAAMW,EAAmBZ,GAAO,GAC1Ba,EAAgBb,GAAO,GAI7BG,GAAU,KACJF,GAAOxB,IAAesB,EAAoBe,UAC5Cf,EAAoBe,SAAU,EAC9Bb,EAAIc,KAAKC,oBAAoBC,SAAQ,KACnCnB,GAAiB,GAEjBc,EAAiBE,SAAU,CAAI,IAElC,GACA,IAEH,MAAMI,EAAeC,GAAY,KAE3BC,KAGAR,EAAiBE,UACrBF,EAAiBE,SAAU,EAE3BlB,GAAoB,GACpByB,EAAepB,aAAA,EAAAA,EAAKqB,QAApBD,MAA6BE,GAAW,GAAMC,MAAK,KAKjDC,uBAAsB,KACpBC,YAAW,KACT9B,GAAoB,EAAM,GACzB,EAAE,GACL,IACF,GACD,CAACK,IAEE0B,EAAYR,GAAY,KAExBN,EAAcC,UAClBD,EAAcC,SAAU,EAExBpB,GAAiB,GACjB2B,EAAepB,EAAI2B,GAAnBP,GAAyBG,MAAK,KAC5B9B,GAAiB,EAAM,IACvB,GACD,CAACO,IAEE4B,EAAQC,GACZ,KAAO,CACLH,YACA3C,OACAS,gBACAoB,cAAeA,EAAcC,QAC7BI,eACA/B,UACAI,kBACAI,mBACAE,gBACAe,iBAAkBA,EAAiBE,QACnC9C,YACAC,UACAC,gBACAC,aACAO,6BACAC,uCACAC,oBACAE,gBACAG,UACAG,aACAI,qBACAH,SACAY,SAEF,CACE0B,EACA3C,EACAS,EACAoB,EAAcC,QACdI,EACA/B,EACAI,EACAI,EACAE,EACAe,EAAiBE,QACjB9C,EACAC,EACAC,EACAC,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAI,EACAH,EACAY,IAGJ,OAAO8B,EAAAC,cAACC,EAAQC,SAAQ,CAACL,MAAOA,GAAQ9C,EAA4B"}
1
+ {"version":3,"file":"AuthProvider.js","sources":["../../../../src/components/AuthProvider/AuthProvider.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n CookieConfig,\n OidcConfig,\n AutoRefreshConfig,\n} from '@descope/web-js-sdk';\nimport { Claims } from '@descope/core-js-sdk';\nimport { CustomStorage } from '@descope/web-component';\nimport Context from '../../hooks/Context';\nimport { IContext, User } from '../../types';\nimport { isDescopeBridge, withValidation } from '../../utils';\nimport useSdk from './useSdk';\n\ntype Hooks = Parameters<typeof useSdk>[0]['hooks'];\n\ninterface IAuthProviderProps {\n projectId: string;\n baseUrl?: string;\n // allows to override the base URL that is used to fetch static files\n baseStaticUrl?: string;\n // allows to override the base URL that is used to fetch external script files\n baseCdnUrl?: string;\n // Default is true. If true, tokens will be stored on local storage and can accessed with getToken function\n persistTokens?: boolean;\n // Default is true. If true, the SDK will automatically refresh the session token when it is about to expire.\n // Pass `{ customActivityTracking: true }` to skip refresh for idle users — you must call `sdk.markUserActive()` to signal activity.\n autoRefresh?: AutoRefreshConfig;\n // If true, session token (jwt) will be stored on cookie. Otherwise, the session token will be\n // stored on local storage and can accessed with getSessionToken function\n // Use this option if session token will stay small (less than 1k)\n // NOTE: Session token can grow, especially in cases of using authorization, or adding custom claims\n sessionTokenViaCookie?: CookieConfig;\n // If true, refresh token will be stored on cookie. Otherwise, the refresh token will be\n // stored on local storage and can be accessed with getRefreshToken function\n // Use this option if you need server-side access to the refresh token (e.g., in Next.js middleware)\n // to enable refreshing sessions on the server before they expire\n refreshTokenViaCookie?: CookieConfig;\n hooks?: Hooks;\n // If truthy he SDK refresh and logout functions will use the OIDC client\n // Accepts boolean or OIDC configuration\n oidcConfig?: OidcConfig;\n // Default is true. If true, last authenticated user will be stored on local storage and can accessed with getUser function\n storeLastAuthenticatedUser?: boolean;\n // If true, last authenticated user will not be removed after logout\n keepLastAuthenticatedUserAfterLogout?: boolean;\n // Use this option if the authentication is done via cookie, and configured with a different name\n // Currently, this is done using Descope Flows\n refreshCookieName?: string;\n // Function to get external token, for seamless migration from external system\n getExternalToken?: () => Promise<string>;\n // Custom storage object for authentication related data\n customStorage?: CustomStorage;\n children?: React.ReactNode;\n}\n\nconst AuthProvider: FC<IAuthProviderProps> = ({\n projectId,\n baseUrl = '',\n baseStaticUrl = '',\n baseCdnUrl = '',\n sessionTokenViaCookie = false,\n refreshTokenViaCookie = false,\n hooks = undefined,\n persistTokens = true,\n autoRefresh = true,\n oidcConfig = undefined,\n storeLastAuthenticatedUser = true,\n keepLastAuthenticatedUserAfterLogout = false,\n refreshCookieName = '',\n getExternalToken = undefined,\n customStorage = undefined,\n children = undefined,\n}) => {\n const [user, setUser] = useState<User>();\n const [session, setSession] = useState<string>();\n const [claims, setClaims] = useState<Claims>();\n const [isAuthenticated, setIsAuthenticated] = useState(false);\n\n const [isUserLoading, setIsUserLoading] = useState(false);\n const [isSessionLoading, setIsSessionLoading] = useState(false);\n\n // if oidc config is enabled, we attempt to finish the login, so we start as loading\n const [isOidcLoading, setIsOidcLoading] = useState(!!oidcConfig);\n const isOidcFinishedLogin = useRef(false);\n\n const sdk = useSdk({\n projectId,\n baseUrl,\n persistTokens,\n autoRefresh,\n sessionTokenViaCookie,\n refreshTokenViaCookie,\n hooks,\n oidcConfig,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n getExternalToken,\n customStorage,\n });\n\n useEffect(() => {\n if (sdk) {\n const unsubscribeSessionToken = sdk.onSessionTokenChange(setSession);\n const unsubscribeUser = sdk.onUserChange(setUser);\n const unsubscribeIsAuthenticated =\n sdk.onIsAuthenticatedChange(setIsAuthenticated);\n const unsubscribeClaims = sdk.onClaimsChange(setClaims);\n\n return () => {\n unsubscribeSessionToken();\n unsubscribeUser();\n unsubscribeIsAuthenticated();\n unsubscribeClaims();\n };\n }\n return undefined;\n }, [sdk]);\n\n const isSessionFetched = useRef(false);\n const isUserFetched = useRef(false);\n\n // if oidc config is enabled, and we have oidc params in the url\n // we will finish the login (this should run only once)\n useEffect(() => {\n if (sdk && oidcConfig && !isOidcFinishedLogin.current) {\n isOidcFinishedLogin.current = true;\n sdk.oidc.finishLoginIfNeed().finally(() => {\n setIsOidcLoading(false);\n // We want that the session will fetched only once\n isSessionFetched.current = true;\n });\n }\n }, []);\n\n const fetchSession = useCallback(() => {\n // Don't load the session in native flows, though we'd usually not get here at all from useSession in this case\n if (isDescopeBridge()) return;\n\n // We want that the session will fetched only once\n if (isSessionFetched.current) return;\n isSessionFetched.current = true;\n\n setIsSessionLoading(true);\n const stopSessionLoading = () => {\n // Defer to a separate render pass so React doesn't batch this with\n // the setIsSessionLoading(true) above when refresh() short-circuits\n // synchronously - downstream consumers (e.g. useSession) need to\n // observe the false→true→false loading transition (#1393)\n requestAnimationFrame(() => {\n setTimeout(() => {\n setIsSessionLoading(false);\n }, 0);\n });\n };\n // Clear the loading state on both fulfilment and rejection. A rejected\n // refresh (e.g. a transient network failure on the proactive refresh) must\n // still clear `isSessionLoading` - `isSessionFetched` is already set so\n // `fetchSession` never re-runs, and consumers (e.g. useSession) would\n // otherwise hang on \"loading\" forever despite a valid session.\n withValidation(sdk?.refresh)(undefined, true).then(\n stopSessionLoading,\n stopSessionLoading,\n );\n }, [sdk]);\n\n const fetchUser = useCallback(() => {\n // We want that the user will fetched only once\n if (isUserFetched.current) return;\n isUserFetched.current = true;\n\n setIsUserLoading(true);\n // Clear the loading state on both fulfilment and rejection so a failed\n // `me()` doesn't leave `isUserLoading` stuck `true` (see fetchSession).\n const stopUserLoading = () => setIsUserLoading(false);\n withValidation(sdk.me)().then(stopUserLoading, stopUserLoading);\n }, [sdk]);\n\n const value = useMemo<IContext>(\n () => ({\n fetchUser,\n user,\n isUserLoading,\n isUserFetched: isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched: isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n storeLastAuthenticatedUser,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n }),\n [\n fetchUser,\n user,\n isUserLoading,\n isUserFetched.current,\n fetchSession,\n session,\n isAuthenticated,\n isSessionLoading,\n isOidcLoading,\n isSessionFetched.current,\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n keepLastAuthenticatedUserAfterLogout,\n refreshCookieName,\n customStorage,\n setUser,\n setSession,\n setIsAuthenticated,\n claims,\n sdk,\n ],\n );\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nexport default AuthProvider;\n"],"names":["AuthProvider","projectId","baseUrl","baseStaticUrl","baseCdnUrl","sessionTokenViaCookie","refreshTokenViaCookie","hooks","persistTokens","autoRefresh","oidcConfig","storeLastAuthenticatedUser","keepLastAuthenticatedUserAfterLogout","refreshCookieName","getExternalToken","customStorage","children","user","setUser","useState","session","setSession","claims","setClaims","isAuthenticated","setIsAuthenticated","isUserLoading","setIsUserLoading","isSessionLoading","setIsSessionLoading","isOidcLoading","setIsOidcLoading","isOidcFinishedLogin","useRef","sdk","useSdk","useEffect","unsubscribeSessionToken","onSessionTokenChange","unsubscribeUser","onUserChange","unsubscribeIsAuthenticated","onIsAuthenticatedChange","unsubscribeClaims","onClaimsChange","isSessionFetched","isUserFetched","current","oidc","finishLoginIfNeed","finally","fetchSession","useCallback","isDescopeBridge","stopSessionLoading","requestAnimationFrame","setTimeout","withValidation","refresh","undefined","then","fetchUser","stopUserLoading","me","value","useMemo","React","createElement","Context","Provider"],"mappings":"mOA8DA,MAAMA,EAAuC,EAC3CC,YACAC,UAAU,GACVC,gBAAgB,GAChBC,aAAa,GACbC,yBAAwB,EACxBC,yBAAwB,EACxBC,QACAC,iBAAgB,EAChBC,eAAc,EACdC,aACAC,8BAA6B,EAC7BC,wCAAuC,EACvCC,oBAAoB,GACpBC,mBACAC,gBACAC,eAEA,MAAOC,EAAMC,GAAWC,KACjBC,EAASC,GAAcF,KACvBG,EAAQC,GAAaJ,KACrBK,EAAiBC,GAAsBN,GAAS,IAEhDO,EAAeC,GAAoBR,GAAS,IAC5CS,EAAkBC,GAAuBV,GAAS,IAGlDW,EAAeC,GAAoBZ,IAAWT,GAC/CsB,EAAsBC,GAAO,GAE7BC,EAAMC,EAAO,CACjBlC,YACAC,UACAM,gBACAC,cACAJ,wBACAC,wBACAC,QACAG,aACAC,6BACAC,uCACAC,oBACAC,mBACAC,kBAGFqB,GAAU,KACR,GAAIF,EAAK,CACP,MAAMG,EAA0BH,EAAII,qBAAqBjB,GACnDkB,EAAkBL,EAAIM,aAAatB,GACnCuB,EACJP,EAAIQ,wBAAwBjB,GACxBkB,EAAoBT,EAAIU,eAAerB,GAE7C,MAAO,KACLc,IACAE,IACAE,IACAE,GAAmB,CAEtB,CACe,GACf,CAACT,IAEJ,MAAMW,EAAmBZ,GAAO,GAC1Ba,EAAgBb,GAAO,GAI7BG,GAAU,KACJF,GAAOxB,IAAesB,EAAoBe,UAC5Cf,EAAoBe,SAAU,EAC9Bb,EAAIc,KAAKC,oBAAoBC,SAAQ,KACnCnB,GAAiB,GAEjBc,EAAiBE,SAAU,CAAI,IAElC,GACA,IAEH,MAAMI,EAAeC,GAAY,KAE/B,GAAIC,IAAmB,OAGvB,GAAIR,EAAiBE,QAAS,OAC9BF,EAAiBE,SAAU,EAE3BlB,GAAoB,GACpB,MAAMyB,EAAqB,KAKzBC,uBAAsB,KACpBC,YAAW,KACT3B,GAAoB,EAAM,GACzB,EAAE,GACL,EAOJ4B,EAAevB,eAAAA,EAAKwB,QAApBD,MAA6BE,GAAW,GAAMC,KAC5CN,EACAA,EACD,GACA,CAACpB,IAEE2B,EAAYT,GAAY,KAE5B,GAAIN,EAAcC,QAAS,OAC3BD,EAAcC,SAAU,EAExBpB,GAAiB,GAGjB,MAAMmC,EAAkB,IAAMnC,GAAiB,GAC/C8B,EAAevB,EAAI6B,GAAnBN,GAAyBG,KAAKE,EAAiBA,EAAgB,GAC9D,CAAC5B,IAEE8B,EAAQC,GACZ,KAAO,CACLJ,YACA5C,OACAS,gBACAoB,cAAeA,EAAcC,QAC7BI,eACA/B,UACAI,kBACAI,mBACAE,gBACAe,iBAAkBA,EAAiBE,QACnC9C,YACAC,UACAC,gBACAC,aACAO,6BACAC,uCACAC,oBACAE,gBACAG,UACAG,aACAI,qBACAH,SACAY,SAEF,CACE2B,EACA5C,EACAS,EACAoB,EAAcC,QACdI,EACA/B,EACAI,EACAI,EACAE,EACAe,EAAiBE,QACjB9C,EACAC,EACAC,EACAC,EACAQ,EACAC,EACAE,EACAG,EACAG,EACAI,EACAH,EACAY,IAGJ,OAAOgC,EAAAC,cAACC,EAAQC,SAAQ,CAACL,MAAOA,GAAQhD,EAA4B"}
@@ -1,2 +1,2 @@
1
- import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as o,Suspense as l}from"react";import n from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/outbound-applications-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-outbound-applications-widget",Object.assign({ref:r},t)))))}))),i=e.forwardRef((({logger:t,theme:s,locale:i,debug:c,widgetId:p,styleId:m,onReady:u},f)=>{const[b,g]=r(null);a(f,(()=>b));const{projectId:w,baseUrl:h,baseStaticUrl:y,baseCdnUrl:C,refreshCookieName:I}=e.useContext(n);return o((()=>{const e=b;return u&&(null==e||e.addEventListener("ready",u)),()=>{u&&(null==e||e.removeEventListener("ready",u))}}),[b,u]),e.createElement(l,{fallback:null},e.createElement(d,{ref:g,projectId:w,widgetId:p,baseUrl:h,baseStaticUrl:y,baseCdnUrl:C,"theme.attr":s,"locale.attr":i,"debug.attr":c,"styleId.attr":m,"refreshCookieName.attr":I,"logger.prop":t}))}));export{i as default};
1
+ import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as o,Suspense as l}from"react";import n from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/outbound-applications-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-outbound-applications-widget",Object.assign({ref:r},t)))))}))),i=e.forwardRef((({logger:t,theme:s,locale:i,debug:c,widgetId:p,styleId:m,onReady:f,client:u,form:b},g)=>{const[w,h]=r(null);a(g,(()=>w));const{projectId:y,baseUrl:C,baseStaticUrl:I,baseCdnUrl:U,refreshCookieName:j}=e.useContext(n);return o((()=>{const e=w;return f&&(null==e||e.addEventListener("ready",f)),()=>{f&&(null==e||e.removeEventListener("ready",f))}}),[w,f]),e.createElement(l,{fallback:null},e.createElement(d,{ref:h,projectId:y,widgetId:p,baseUrl:C,baseStaticUrl:I,baseCdnUrl:U,"theme.attr":s,"locale.attr":i,"debug.attr":c,"styleId.attr":m,"refreshCookieName.attr":j,"client.attr":u,"form.attr":b,"logger.prop":t}))}));export{i as default};
2
2
  //# sourceMappingURL=OutboundApplications.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutboundApplications.js","sources":["../../../src/components/OutboundApplications.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { OutboundApplicationsProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst OutboundApplicationsWC = lazy(async () => {\n await import('@descope/outbound-applications-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-outbound-applications-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst OutboundApplications = React.forwardRef<\n HTMLElement,\n OutboundApplicationsProps\n>(({ logger, theme, locale, debug, widgetId, styleId, onReady }, ref) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<OutboundApplicationsWC\n ref={setInnerRef}\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n});\n\nexport default OutboundApplications;\n"],"names":["OutboundApplicationsWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","OutboundApplications","logger","theme","locale","debug","widgetId","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAYA,MAAMA,EAAyBC,GAAKC,gBAC5BC,OAAO,yCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM/CK,EAAuBP,EAAMC,YAGjC,EAAGO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,WAAWX,KAC/D,MAAOY,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBf,GAAK,IAAMY,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDvB,EAAMwB,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGfd,EAACI,cAAA0B,EAAS,CAAAC,SAAU,MACnB/B,EAACI,cAAAV,EACK,CAAAS,IAAKa,EACLG,UAAWA,EACXP,SAAUA,EACVQ,QAASA,EACTC,cAAeA,EACfC,WAAYA,EAGV,aAAcb,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BU,EAE1B,cAAef,IAIrB"}
1
+ {"version":3,"file":"OutboundApplications.js","sources":["../../../src/components/OutboundApplications.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { OutboundApplicationsProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst OutboundApplicationsWC = lazy(async () => {\n await import('@descope/outbound-applications-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-outbound-applications-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst OutboundApplications = React.forwardRef<\n HTMLElement,\n OutboundApplicationsProps\n>(\n (\n { logger, theme, locale, debug, widgetId, styleId, onReady, client, form },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<OutboundApplicationsWC\n ref={setInnerRef}\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default OutboundApplications;\n"],"names":["OutboundApplicationsWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","OutboundApplications","logger","theme","locale","debug","widgetId","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAYA,MAAMA,EAAyBC,GAAKC,gBAC5BC,OAAO,yCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAsCI,cAAA,uCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAM/CK,EAAuBP,EAAMC,YAIjC,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,UAASC,SAAQC,QACpEb,KAEA,MAAOc,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBjB,GAAK,IAAMc,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDzB,EAAM0B,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBd,EAACI,cAAA4B,EAAS,CAAAC,SAAU,MACnBjC,EAACI,cAAAV,EACO,CAAAS,IAAKe,EACLG,UAAWA,EACXT,SAAUA,EACVU,QAASA,EACTC,cAAeA,EACfC,WAAYA,EAGV,aAAcf,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeR,IAIrB"}
@@ -1,2 +1,2 @@
1
- import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as n,Suspense as o}from"react";import l from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/tenant-profile-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-tenant-profile-widget",Object.assign({ref:r},t)))))}))),i=e.forwardRef((({logger:t,theme:s,locale:i,debug:c,widgetId:f,styleId:p,tenant:m,onReady:g},u)=>{const[b,w]=r(null);a(u,(()=>b));const{projectId:y,baseUrl:I,baseStaticUrl:h,baseCdnUrl:C,refreshCookieName:U}=e.useContext(l);return n((()=>{const e=b;return g&&(null==e||e.addEventListener("ready",g)),()=>{g&&(null==e||e.removeEventListener("ready",g))}}),[b,g]),e.createElement(o,{fallback:null},e.createElement(d,{projectId:y,widgetId:f,baseUrl:I,baseStaticUrl:h,baseCdnUrl:C,styleId:p,tenant:m,ref:w,"theme.attr":s,"locale.attr":i,"debug.attr":c,"styleId.attr":p,"tenant.attr":m,"refreshCookieName.attr":U,"logger.prop":t}))}));export{i as default};
1
+ import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as n,Suspense as o}from"react";import l from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/tenant-profile-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-tenant-profile-widget",Object.assign({ref:r},t)))))}))),i=e.forwardRef((({logger:t,theme:s,locale:i,debug:c,widgetId:f,styleId:m,tenant:p,onReady:g,client:u,form:b},w)=>{const[y,I]=r(null);a(w,(()=>y));const{projectId:h,baseUrl:C,baseStaticUrl:U,baseCdnUrl:j,refreshCookieName:E}=e.useContext(l);return n((()=>{const e=y;return g&&(null==e||e.addEventListener("ready",g)),()=>{g&&(null==e||e.removeEventListener("ready",g))}}),[y,g]),e.createElement(o,{fallback:null},e.createElement(d,{projectId:h,widgetId:f,baseUrl:C,baseStaticUrl:U,baseCdnUrl:j,styleId:m,tenant:p,ref:I,"theme.attr":s,"locale.attr":i,"debug.attr":c,"styleId.attr":m,"tenant.attr":p,"refreshCookieName.attr":E,"client.attr":u,"form.attr":b,"logger.prop":t}))}));export{i as default};
2
2
  //# sourceMappingURL=TenantProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TenantProfile.js","sources":["../../../src/components/TenantProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { TenantProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\nconst TenantProfileWC = lazy(async () => {\n await import('@descope/tenant-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-tenant-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst TenantProfile = React.forwardRef<HTMLElement, TenantProfileProps>(\n (\n { logger, theme, locale, debug, widgetId, styleId, tenant, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<TenantProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n tenant={tenant}\n ref={setInnerRef}\n {...{\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'tenant.attr': tenant,\n 'refreshCookieName.attr': refreshCookieName,\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default TenantProfile;\n"],"names":["TenantProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","TenantProfile","logger","theme","locale","debug","widgetId","styleId","tenant","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAWA,MAAMA,EAAkBC,GAAKC,gBACrBC,OAAO,kCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAA+BI,cAAA,gCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMxCK,EAAgBP,EAAMC,YAC1B,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,SAAQC,WAC3DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDxB,EAAMyB,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACI,cAAA2B,EAAS,CAAAC,SAAU,MACnBhC,EAAAI,cAACV,EACO,CAAA0B,UAAWA,EACXR,SAAUA,EACVS,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZV,QAASA,EACTC,OAAQA,EACRX,IAAKc,EAEH,aAAcR,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,cAAeC,EACf,yBAA0BU,EAC1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"TenantProfile.js","sources":["../../../src/components/TenantProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { TenantProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\nconst TenantProfileWC = lazy(async () => {\n await import('@descope/tenant-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-tenant-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst TenantProfile = React.forwardRef<HTMLElement, TenantProfileProps>(\n (\n {\n logger,\n theme,\n locale,\n debug,\n widgetId,\n styleId,\n tenant,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<TenantProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n tenant={tenant}\n ref={setInnerRef}\n {...{\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'tenant.attr': tenant,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default TenantProfile;\n"],"names":["TenantProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","TenantProfile","logger","theme","locale","debug","widgetId","styleId","tenant","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAWA,MAAMA,EAAkBC,GAAKC,gBACrBC,OAAO,kCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAA+BI,cAAA,gCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMxCK,EAAgBP,EAAMC,YAC1B,EAEIO,SACAC,QACAC,SACAC,QACAC,WACAC,UACAC,SACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrD1B,EAAM2B,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACI,cAAA6B,EAAS,CAAAC,SAAU,MACnBlC,EAAAI,cAACV,EACO,CAAA4B,UAAWA,EACXV,SAAUA,EACVW,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZZ,QAASA,EACTC,OAAQA,EACRX,IAAKgB,EAEH,aAAcV,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,cAAeC,EACf,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EACb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as n,Suspense as o}from"react";import l from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/user-management-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-user-management-widget",Object.assign({ref:r},t)))))}))),c=e.forwardRef((({logger:t,tenant:s,theme:c,locale:i,debug:m,widgetId:f,styleId:g,onReady:p},u)=>{const[b,w]=r(null);a(u,(()=>b));const{projectId:h,baseUrl:y,baseStaticUrl:C,baseCdnUrl:I,refreshCookieName:U}=e.useContext(l);return n((()=>{const e=b;return p&&(null==e||e.addEventListener("ready",p)),()=>{p&&(null==e||e.removeEventListener("ready",p))}}),[b,p]),e.createElement(o,{fallback:null},e.createElement(d,{projectId:h,widgetId:f,tenant:s,baseUrl:y,baseStaticUrl:C,baseCdnUrl:I,ref:w,"theme.attr":c,"locale.attr":i,"debug.attr":m,"styleId.attr":g,"refreshCookieName.attr":U,"logger.prop":t}))}));export{c as default};
1
+ import e,{lazy as t,useState as r,useImperativeHandle as a,useEffect as n,Suspense as o}from"react";import l from"../hooks/Context.js";import s from"./withPropsMapping/index.js";const d=t((async()=>(await import("@descope/user-management-widget"),{default:s(e.forwardRef(((t,r)=>e.createElement("descope-user-management-widget",Object.assign({ref:r},t)))))}))),c=e.forwardRef((({logger:t,tenant:s,theme:c,locale:i,debug:m,widgetId:f,styleId:g,onReady:p,client:u,form:b},w)=>{const[h,y]=r(null);a(w,(()=>h));const{projectId:C,baseUrl:I,baseStaticUrl:U,baseCdnUrl:j,refreshCookieName:E}=e.useContext(l);return n((()=>{const e=h;return p&&(null==e||e.addEventListener("ready",p)),()=>{p&&(null==e||e.removeEventListener("ready",p))}}),[h,p]),e.createElement(o,{fallback:null},e.createElement(d,{projectId:C,widgetId:f,tenant:s,baseUrl:I,baseStaticUrl:U,baseCdnUrl:j,ref:y,"theme.attr":c,"locale.attr":i,"debug.attr":m,"styleId.attr":g,"refreshCookieName.attr":E,"client.attr":u,"form.attr":b,"logger.prop":t}))}));export{c as default};
2
2
  //# sourceMappingURL=UserManagement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n (\n { logger, tenant, theme, locale, debug, widgetId, styleId, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","locale","debug","widgetId","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAYA,MAAMA,EAAmBC,GAAKC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAMC,YAC3B,EACIO,SAAQC,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,UAASC,WAC3DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrDxB,EAAMyB,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFID,IAASa,SAAAA,EAAKC,iBAAiB,QAASd,IAErC,KACDA,IAASa,SAAAA,EAAKE,oBAAoB,QAASf,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACI,cAAA2B,EAAS,CAAAC,SAAU,MACnBhC,EAAAI,cAACV,EAAgB,CACT0B,UAAWA,EACXP,SAAUA,EACVJ,OAAQA,EACRY,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZpB,IAAKc,EAGH,aAAcP,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BU,EAE1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"UserManagement.js","sources":["../../../src/components/UserManagement.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useImperativeHandle,\n useState,\n useEffect,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserManagementProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserManagementWC = lazy(async () => {\n await import('@descope/user-management-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-management-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserManagement = React.forwardRef<HTMLElement, UserManagementProps>(\n (\n {\n logger,\n tenant,\n theme,\n locale,\n debug,\n widgetId,\n styleId,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const { projectId, baseUrl, baseStaticUrl, baseCdnUrl, refreshCookieName } =\n React.useContext(Context);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserManagementWC\n projectId={projectId}\n widgetId={widgetId}\n tenant={tenant}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserManagement;\n"],"names":["UserManagementWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserManagement","logger","tenant","theme","locale","debug","widgetId","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","useContext","Context","useEffect","ele","addEventListener","removeEventListener","Suspense","fallback"],"mappings":"kLAYA,MAAMA,EAAmBC,GAAKC,gBACtBC,OAAO,mCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAAgCI,cAAA,iCAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMzCK,EAAiBP,EAAMC,YAC3B,EAEIO,SACAC,SACAC,QACAC,SACAC,QACAC,WACAC,UACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UAAEA,EAASC,QAAEA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,kBAAEA,GACrD1B,EAAM2B,WAAWC,GAWnB,OATAC,GAAU,KACR,MAAMC,EAAMZ,EAGZ,OAFIH,IAASe,SAAAA,EAAKC,iBAAiB,QAAShB,IAErC,KACDA,IAASe,SAAAA,EAAKE,oBAAoB,QAASjB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACI,cAAA6B,EAAS,CAAAC,SAAU,MACnBlC,EAAAI,cAACV,EAAgB,CACT4B,UAAWA,EACXT,SAAUA,EACVJ,OAAQA,EACRc,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZtB,IAAKgB,EAGH,aAAcT,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBE,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- import e,{lazy as t,useState as r,useImperativeHandle as o,useCallback as a,useEffect as s,Suspense as l}from"react";import n from"../hooks/Context.js";import d from"./withPropsMapping/index.js";const i=t((async()=>(await import("@descope/user-profile-widget"),{default:d(e.forwardRef(((t,r)=>e.createElement("descope-user-profile-widget",Object.assign({ref:r},t)))))}))),c=e.forwardRef((({logger:t,theme:d,locale:c,debug:u,widgetId:f,onLogout:m,styleId:p,onReady:g},b)=>{const[w,I]=r(null);o(b,(()=>w));const{projectId:h,baseUrl:y,baseStaticUrl:E,baseCdnUrl:U,refreshCookieName:v,setSession:C,setUser:j,setIsAuthenticated:L}=e.useContext(n),k=a((e=>{m&&m(e),L(!1),C(""),j(null)}),[m,C,L,j]);return s((()=>{if(w)return w.addEventListener("logout",k),()=>w.removeEventListener("logout",k)}),[w,k]),s((()=>{const e=w;return g&&(null==e||e.addEventListener("ready",g)),()=>{g&&(null==e||e.removeEventListener("ready",g))}}),[w,g]),e.createElement(l,{fallback:null},e.createElement(i,{projectId:h,widgetId:f,baseUrl:y,baseStaticUrl:E,baseCdnUrl:U,styleId:p,ref:I,"theme.attr":d,"locale.attr":c,"debug.attr":u,"styleId.attr":p,"refreshCookieName.attr":v,"logger.prop":t}))}));export{c as default};
1
+ import e,{lazy as t,useState as r,useImperativeHandle as o,useCallback as a,useEffect as s,Suspense as l}from"react";import n from"../hooks/Context.js";import d from"./withPropsMapping/index.js";const i=t((async()=>(await import("@descope/user-profile-widget"),{default:d(e.forwardRef(((t,r)=>e.createElement("descope-user-profile-widget",Object.assign({ref:r},t)))))}))),c=e.forwardRef((({logger:t,theme:d,locale:c,debug:f,widgetId:u,onLogout:m,styleId:p,onReady:g,client:b,form:w},I)=>{const[h,y]=r(null);o(I,(()=>h));const{projectId:E,baseUrl:U,baseStaticUrl:v,baseCdnUrl:C,refreshCookieName:j,setSession:L,setUser:k,setIsAuthenticated:x}=e.useContext(n),R=a((e=>{m&&m(e),x(!1),L(""),k(null)}),[m,L,x,k]);return s((()=>{if(h)return h.addEventListener("logout",R),()=>h.removeEventListener("logout",R)}),[h,R]),s((()=>{const e=h;return g&&(null==e||e.addEventListener("ready",g)),()=>{g&&(null==e||e.removeEventListener("ready",g))}}),[h,g]),e.createElement(l,{fallback:null},e.createElement(i,{projectId:E,widgetId:u,baseUrl:U,baseStaticUrl:v,baseCdnUrl:C,styleId:p,ref:y,"theme.attr":d,"locale.attr":c,"debug.attr":f,"styleId.attr":p,"refreshCookieName.attr":j,"client.attr":b,"form.attr":w,"logger.prop":t}))}));export{c as default};
2
2
  //# sourceMappingURL=UserProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n (\n { logger, theme, locale, debug, widgetId, onLogout, styleId, onReady },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n refreshCookieName,\n setSession,\n setUser,\n setIsAuthenticated,\n } = React.useContext(Context);\n\n const handleLogout = useCallback(\n (e: CustomEvent) => {\n if (onLogout) {\n onLogout(e);\n }\n // we want to clear the session and user when the logout event is triggered\n setIsAuthenticated(false);\n setSession('');\n setUser(null);\n },\n [onLogout, setSession, setIsAuthenticated, setUser],\n );\n\n useEffect(() => {\n if (innerRef) {\n innerRef.addEventListener('logout', handleLogout);\n return () => innerRef.removeEventListener('logout', handleLogout);\n }\n return undefined;\n }, [innerRef, handleLogout]);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","locale","debug","widgetId","onLogout","styleId","onReady","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","setSession","setUser","setIsAuthenticated","useContext","Context","handleLogout","useCallback","e","useEffect","addEventListener","removeEventListener","ele","Suspense","fallback"],"mappings":"mMAaA,MAAMA,EAAgBC,GAAKC,gBACnBC,OAAO,gCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAMC,YACxB,EACIO,SAAQC,QAAOC,SAAQC,QAAOC,WAAUC,WAAUC,UAASC,WAC7DZ,KAEA,MAAOa,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBhB,GAAK,IAAMa,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,WACbA,EAAUC,kBACVA,EAAiBC,WACjBA,EAAUC,QACVA,EAAOC,mBACPA,GACE3B,EAAM4B,WAAWC,GAEfC,EAAeC,GAClBC,IACKnB,GACFA,EAASmB,GAGXL,GAAmB,GACnBF,EAAW,IACXC,EAAQ,KAAK,GAEf,CAACb,EAAUY,EAAYE,EAAoBD,IAoB7C,OAjBAO,GAAU,KACR,GAAIjB,EAEF,OADAA,EAASkB,iBAAiB,SAAUJ,GAC7B,IAAMd,EAASmB,oBAAoB,SAAUL,EAEtC,GACf,CAACd,EAAUc,IAEdG,GAAU,KACR,MAAMG,EAAMpB,EAGZ,OAFID,IAASqB,SAAAA,EAAKF,iBAAiB,QAASnB,IAErC,KACDA,IAASqB,SAAAA,EAAKD,oBAAoB,QAASpB,GAAQ,CACxD,GACA,CAACC,EAAUD,IAGjBf,EAACI,cAAAiC,EAAS,CAAAC,SAAU,MACnBtC,EAAAI,cAACV,EAAa,CACN0B,UAAWA,EACXR,SAAUA,EACVS,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZT,QAASA,EACTX,IAAKc,EAGH,aAAcR,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBG,EAChB,yBAA0BU,EAE1B,cAAehB,IAIrB"}
1
+ {"version":3,"file":"UserProfile.js","sources":["../../../src/components/UserProfile.tsx"],"sourcesContent":["import React, {\n lazy,\n Suspense,\n useCallback,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\nimport Context from '../hooks/Context';\nimport { UserProfileProps } from '../types';\nimport withPropsMapping from './withPropsMapping';\n\n// web-component code uses browser API, but can be used in SSR apps, hence the lazy loading\nconst UserProfileWC = lazy(async () => {\n await import('@descope/user-profile-widget');\n\n return {\n default: withPropsMapping(\n React.forwardRef<HTMLElement>((props, ref) => (\n\t<descope-user-profile-widget ref={ref} {...props} />\n )),\n ),\n };\n});\n\nconst UserProfile = React.forwardRef<HTMLElement, UserProfileProps>(\n (\n {\n logger,\n theme,\n locale,\n debug,\n widgetId,\n onLogout,\n styleId,\n onReady,\n client,\n form,\n },\n ref,\n ) => {\n const [innerRef, setInnerRef] = useState(null);\n\n useImperativeHandle(ref, () => innerRef);\n\n const {\n projectId,\n baseUrl,\n baseStaticUrl,\n baseCdnUrl,\n refreshCookieName,\n setSession,\n setUser,\n setIsAuthenticated,\n } = React.useContext(Context);\n\n const handleLogout = useCallback(\n (e: CustomEvent) => {\n if (onLogout) {\n onLogout(e);\n }\n // we want to clear the session and user when the logout event is triggered\n setIsAuthenticated(false);\n setSession('');\n setUser(null);\n },\n [onLogout, setSession, setIsAuthenticated, setUser],\n );\n\n useEffect(() => {\n if (innerRef) {\n innerRef.addEventListener('logout', handleLogout);\n return () => innerRef.removeEventListener('logout', handleLogout);\n }\n return undefined;\n }, [innerRef, handleLogout]);\n\n useEffect(() => {\n const ele = innerRef;\n if (onReady) ele?.addEventListener('ready', onReady);\n\n return () => {\n if (onReady) ele?.removeEventListener('ready', onReady);\n };\n }, [innerRef, onReady]);\n\n return (\n\t<Suspense fallback={null}>\n\t\t<UserProfileWC\n projectId={projectId}\n widgetId={widgetId}\n baseUrl={baseUrl}\n baseStaticUrl={baseStaticUrl}\n baseCdnUrl={baseCdnUrl}\n styleId={styleId}\n ref={setInnerRef}\n {...{\n // attributes\n 'theme.attr': theme,\n 'locale.attr': locale,\n 'debug.attr': debug,\n 'styleId.attr': styleId,\n 'refreshCookieName.attr': refreshCookieName,\n 'client.attr': client,\n 'form.attr': form,\n // props\n 'logger.prop': logger,\n }}\n />\n\t</Suspense>\n );\n },\n);\n\nexport default UserProfile;\n"],"names":["UserProfileWC","lazy","async","import","default","withPropsMapping","React","forwardRef","props","ref","createElement","Object","assign","UserProfile","logger","theme","locale","debug","widgetId","onLogout","styleId","onReady","client","form","innerRef","setInnerRef","useState","useImperativeHandle","projectId","baseUrl","baseStaticUrl","baseCdnUrl","refreshCookieName","setSession","setUser","setIsAuthenticated","useContext","Context","handleLogout","useCallback","e","useEffect","addEventListener","removeEventListener","ele","Suspense","fallback"],"mappings":"mMAaA,MAAMA,EAAgBC,GAAKC,gBACnBC,OAAO,gCAEN,CACLC,QAASC,EACPC,EAAMC,YAAwB,CAACC,EAAOC,IAC3CH,EAA6BI,cAAA,8BAAAC,OAAAC,OAAA,CAAAH,IAAKA,GAASD,WAMtCK,EAAcP,EAAMC,YACxB,EAEIO,SACAC,QACAC,SACAC,QACAC,WACAC,WACAC,UACAC,UACAC,SACAC,QAEFd,KAEA,MAAOe,EAAUC,GAAeC,EAAS,MAEzCC,EAAoBlB,GAAK,IAAMe,IAE/B,MAAMI,UACJA,EAASC,QACTA,EAAOC,cACPA,EAAaC,WACbA,EAAUC,kBACVA,EAAiBC,WACjBA,EAAUC,QACVA,EAAOC,mBACPA,GACE7B,EAAM8B,WAAWC,GAEfC,EAAeC,GAClBC,IACKrB,GACFA,EAASqB,GAGXL,GAAmB,GACnBF,EAAW,IACXC,EAAQ,KAAK,GAEf,CAACf,EAAUc,EAAYE,EAAoBD,IAoB7C,OAjBAO,GAAU,KACR,GAAIjB,EAEF,OADAA,EAASkB,iBAAiB,SAAUJ,GAC7B,IAAMd,EAASmB,oBAAoB,SAAUL,EAEtC,GACf,CAACd,EAAUc,IAEdG,GAAU,KACR,MAAMG,EAAMpB,EAGZ,OAFIH,IAASuB,SAAAA,EAAKF,iBAAiB,QAASrB,IAErC,KACDA,IAASuB,SAAAA,EAAKD,oBAAoB,QAAStB,GAAQ,CACxD,GACA,CAACG,EAAUH,IAGjBf,EAACI,cAAAmC,EAAS,CAAAC,SAAU,MACnBxC,EAAAI,cAACV,EAAa,CACN4B,UAAWA,EACXV,SAAUA,EACVW,QAASA,EACTC,cAAeA,EACfC,WAAYA,EACZX,QAASA,EACTX,IAAKgB,EAGH,aAAcV,EACd,cAAeC,EACf,aAAcC,EACd,eAAgBG,EAChB,yBAA0BY,EAC1B,cAAeV,EACf,YAAaC,EAEb,cAAeT,IAIrB"}
@@ -1,2 +1,2 @@
1
- const e={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.29.5"},d="undefined"!=typeof window;export{d as IS_BROWSER,e as baseHeaders};
1
+ const e={"x-descope-sdk-name":"react","x-descope-sdk-version":"2.30.1"},d="undefined"!=typeof window;export{d as IS_BROWSER,e as baseHeaders};
2
2
  //# sourceMappingURL=constants.js.map