{"version":3,"sources":["../src/polyfills.ts","../src/index.ts","../src/components/SignInButton.tsx","../src/components/SignInWithMetamaskButton.tsx","../src/components/SignOutButton.tsx","../src/components/SignUpButton.tsx","../src/contexts/ClerkProvider.tsx","../src/contexts/ClerkContextProvider.tsx","../src/isomorphicClerk.ts","../src/stateProxy.ts"],"sourcesContent":["/**\n * Vite does not define `global` by default\n * One workaround is to use the `define` config prop\n * https://vitejs.dev/config/#define\n * We are solving this in the SDK level to reduce setup steps.\n */\nif (typeof window !== 'undefined' && !window.global) {\n  window.global = typeof global === 'undefined' ? window : global;\n}\n\nexport {};\n","import './polyfills';\n\nimport { setClerkJsLoadingErrorPackageName } from '@clerk/shared/loadClerkJsScript';\n\nimport { setErrorThrowerOptions } from './errors/errorThrower';\n\nexport * from './components';\nexport * from './contexts';\n\nexport * from './hooks';\nexport type { BrowserClerk, ClerkProp, HeadlessBrowserClerk, ClerkProviderProps } from './types';\n\nsetErrorThrowerOptions({ packageName: PACKAGE_NAME });\nsetClerkJsLoadingErrorPackageName(PACKAGE_NAME);\n","import type { SignInButtonProps, SignInProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignInButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<React.PropsWithChildren<SignInButtonProps>>) => {\n    const {\n      // @ts-expect-error - appearance is a valid prop for SignInProps & SignInButtonPropsModal\n      appearance,\n      signUpFallbackRedirectUrl,\n      forceRedirectUrl,\n      fallbackRedirectUrl,\n      signUpForceRedirectUrl,\n      mode,\n      initialValues,\n      withSignUp,\n      oauthFlow,\n      ...rest\n    } = props;\n    children = normalizeWithDefaultValue(children, 'Sign in');\n    const child = assertSingleChild(children)('SignInButton');\n\n    const clickHandler = () => {\n      const opts: SignInProps = {\n        forceRedirectUrl,\n        fallbackRedirectUrl,\n        signUpFallbackRedirectUrl,\n        signUpForceRedirectUrl,\n        initialValues,\n        withSignUp,\n        oauthFlow,\n      };\n\n      if (mode === 'modal') {\n        return clerk.openSignIn({ ...opts, appearance });\n      }\n      return clerk.redirectToSignIn({\n        ...opts,\n        signInFallbackRedirectUrl: fallbackRedirectUrl,\n        signInForceRedirectUrl: forceRedirectUrl,\n      });\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      if (child && typeof child === 'object' && 'props' in child) {\n        await safeExecute(child.props.onClick)(e);\n      }\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignInButton', renderWhileLoading: true },\n);\n","import React from 'react';\n\nimport type { SignInWithMetamaskButtonProps, WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignInWithMetamaskButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<SignInWithMetamaskButtonProps>) => {\n    const { redirectUrl, ...rest } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign in with Metamask');\n    const child = assertSingleChild(children)('SignInWithMetamaskButton');\n\n    // TODO: Properly fix this code\n    // eslint-disable-next-line @typescript-eslint/require-await\n    const clickHandler = async () => {\n      async function authenticate() {\n        await clerk.authenticateWithMetamask({ redirectUrl: redirectUrl || undefined });\n      }\n      void authenticate();\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      await safeExecute((child as any).props.onClick)(e);\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignInWithMetamask', renderWhileLoading: true },\n);\n","import type { SignOutOptions } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport type SignOutButtonProps = {\n  redirectUrl?: string;\n  signOutOptions?: SignOutOptions;\n  children?: React.ReactNode;\n};\n\nexport const SignOutButton = withClerk(\n  ({ clerk, children, ...props }: React.PropsWithChildren<WithClerkProp<SignOutButtonProps>>) => {\n    const { redirectUrl = '/', signOutOptions, ...rest } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign out');\n    const child = assertSingleChild(children)('SignOutButton');\n\n    const clickHandler = () => clerk.signOut({ redirectUrl, ...signOutOptions });\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      await safeExecute((child as any).props.onClick)(e);\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignOutButton', renderWhileLoading: true },\n);\n","import type { SignUpButtonProps, SignUpProps } from '@clerk/shared/types';\nimport React from 'react';\n\nimport type { WithClerkProp } from '../types';\nimport { assertSingleChild, normalizeWithDefaultValue, safeExecute } from '../utils';\nimport { withClerk } from './withClerk';\n\nexport const SignUpButton = withClerk(\n  ({ clerk, children, ...props }: WithClerkProp<React.PropsWithChildren<SignUpButtonProps>>) => {\n    const {\n      // @ts-expect-error - appearance is a valid prop for SignUpProps & SignUpButtonPropsModal\n      appearance,\n      // @ts-expect-error - unsafeMetadata is a valid prop for SignUpProps & SignUpButtonPropsModal\n      unsafeMetadata,\n      fallbackRedirectUrl,\n      forceRedirectUrl,\n      signInFallbackRedirectUrl,\n      signInForceRedirectUrl,\n      mode,\n      initialValues,\n      oauthFlow,\n      ...rest\n    } = props;\n\n    children = normalizeWithDefaultValue(children, 'Sign up');\n    const child = assertSingleChild(children)('SignUpButton');\n\n    const clickHandler = () => {\n      const opts: SignUpProps = {\n        fallbackRedirectUrl,\n        forceRedirectUrl,\n        signInFallbackRedirectUrl,\n        signInForceRedirectUrl,\n        initialValues,\n        oauthFlow,\n      };\n\n      if (mode === 'modal') {\n        return clerk.openSignUp({\n          ...opts,\n          appearance,\n          unsafeMetadata,\n        });\n      }\n\n      return clerk.redirectToSignUp({\n        ...opts,\n        signUpFallbackRedirectUrl: fallbackRedirectUrl,\n        signUpForceRedirectUrl: forceRedirectUrl,\n      });\n    };\n\n    const wrappedChildClickHandler: React.MouseEventHandler = async e => {\n      if (child && typeof child === 'object' && 'props' in child) {\n        await safeExecute(child.props.onClick)(e);\n      }\n      return clickHandler();\n    };\n\n    const childProps = { ...rest, onClick: wrappedChildClickHandler };\n    return React.cloneElement(child as React.ReactElement<unknown>, childProps);\n  },\n  { component: 'SignUpButton', renderWhileLoading: true },\n);\n","import { isPublishableKey } from '@clerk/shared/keys';\nimport React from 'react';\n\nimport { errorThrower } from '../errors/errorThrower';\nimport { multipleClerkProvidersError } from '../errors/messages';\nimport type { ClerkProviderProps } from '../types';\nimport { withMaxAllowedInstancesGuard } from '../utils';\nimport { ClerkContextProvider } from './ClerkContextProvider';\n\nfunction ClerkProviderBase(props: ClerkProviderProps) {\n  const { initialState, children, __internal_bypassMissingPublishableKey, ...restIsomorphicClerkOptions } = props;\n  const { publishableKey = '', Clerk: userInitialisedClerk } = restIsomorphicClerkOptions;\n\n  if (!userInitialisedClerk && !__internal_bypassMissingPublishableKey) {\n    if (!publishableKey) {\n      errorThrower.throwMissingPublishableKeyError();\n    } else if (publishableKey && !isPublishableKey(publishableKey)) {\n      errorThrower.throwInvalidPublishableKeyError({ key: publishableKey });\n    }\n  }\n\n  return (\n    <ClerkContextProvider\n      initialState={initialState}\n      isomorphicClerkOptions={restIsomorphicClerkOptions}\n    >\n      {children}\n    </ClerkContextProvider>\n  );\n}\n\nconst ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, 'ClerkProvider', multipleClerkProvidersError);\n\nClerkProvider.displayName = 'ClerkProvider';\n\nexport { ClerkProvider };\n","import { deriveState } from '@clerk/shared/deriveState';\nimport {\n  __experimental_CheckoutProvider as CheckoutProvider,\n  ClientContext,\n  OrganizationProvider,\n  SessionContext,\n  UserContext,\n} from '@clerk/shared/react';\nimport type { ClientResource, InitialState, Resources } from '@clerk/shared/types';\nimport React from 'react';\n\nimport { IsomorphicClerk } from '../isomorphicClerk';\nimport type { IsomorphicClerkOptions } from '../types';\nimport { AuthContext } from './AuthContext';\nimport { IsomorphicClerkContext } from './IsomorphicClerkContext';\n\ntype ClerkContextProvider = {\n  isomorphicClerkOptions: IsomorphicClerkOptions;\n  initialState: InitialState | undefined;\n  children: React.ReactNode;\n};\n\nexport type ClerkContextProviderState = Resources;\n\nexport function ClerkContextProvider(props: ClerkContextProvider) {\n  const { isomorphicClerkOptions, initialState, children } = props;\n  const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions);\n\n  const [state, setState] = React.useState<ClerkContextProviderState>({\n    client: clerk.client as ClientResource,\n    session: clerk.session,\n    user: clerk.user,\n    organization: clerk.organization,\n  });\n\n  React.useEffect(() => {\n    return clerk.addListener(e => setState({ ...e }));\n  }, []);\n\n  const derivedState = deriveState(clerk.loaded, state, initialState);\n  const clerkCtx = React.useMemo(\n    () => ({ value: clerk }),\n    [\n      // Only update the clerk reference on status change\n      clerkStatus,\n    ],\n  );\n  const clientCtx = React.useMemo(() => ({ value: state.client }), [state.client]);\n\n  const {\n    sessionId,\n    sessionStatus,\n    sessionClaims,\n    session,\n    userId,\n    user,\n    orgId,\n    actor,\n    organization,\n    orgRole,\n    orgSlug,\n    orgPermissions,\n    factorVerificationAge,\n  } = derivedState;\n\n  const authCtx = React.useMemo(() => {\n    const value = {\n      sessionId,\n      sessionStatus,\n      sessionClaims,\n      userId,\n      actor,\n      orgId,\n      orgRole,\n      orgSlug,\n      orgPermissions,\n      factorVerificationAge,\n    };\n    return { value };\n  }, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims?.__raw]);\n\n  const sessionCtx = React.useMemo(() => ({ value: session }), [sessionId, session]);\n  const userCtx = React.useMemo(() => ({ value: user }), [userId, user]);\n  const organizationCtx = React.useMemo(() => {\n    const value = {\n      organization: organization,\n    };\n    return { value };\n  }, [orgId, organization]);\n\n  return (\n    // @ts-expect-error value passed is of type IsomorphicClerk where the context expects LoadedClerk\n    <IsomorphicClerkContext.Provider value={clerkCtx}>\n      <ClientContext.Provider value={clientCtx}>\n        <SessionContext.Provider value={sessionCtx}>\n          <OrganizationProvider {...organizationCtx.value}>\n            <AuthContext.Provider value={authCtx}>\n              <UserContext.Provider value={userCtx}>\n                <CheckoutProvider\n                  // @ts-expect-error - value is not used\n                  value={undefined}\n                >\n                  {children}\n                </CheckoutProvider>\n              </UserContext.Provider>\n            </AuthContext.Provider>\n          </OrganizationProvider>\n        </SessionContext.Provider>\n      </ClientContext.Provider>\n    </IsomorphicClerkContext.Provider>\n  );\n}\n\nconst useLoadedIsomorphicClerk = (options: IsomorphicClerkOptions) => {\n  const isomorphicClerkRef = React.useRef(IsomorphicClerk.getOrCreateInstance(options));\n  const [clerkStatus, setClerkStatus] = React.useState(isomorphicClerkRef.current.status);\n\n  React.useEffect(() => {\n    void isomorphicClerkRef.current.__unstable__updateProps({ appearance: options.appearance });\n  }, [options.appearance]);\n\n  React.useEffect(() => {\n    void isomorphicClerkRef.current.__unstable__updateProps({ options });\n  }, [options.localization]);\n\n  React.useEffect(() => {\n    isomorphicClerkRef.current.on('status', setClerkStatus);\n    return () => {\n      if (isomorphicClerkRef.current) {\n        isomorphicClerkRef.current.off('status', setClerkStatus);\n      }\n      IsomorphicClerk.clearInstance();\n    };\n  }, []);\n\n  return { isomorphicClerk: isomorphicClerkRef.current, clerkStatus };\n};\n","import { inBrowser } from '@clerk/shared/browser';\nimport { clerkEvents, createClerkEventBus } from '@clerk/shared/clerkEventBus';\nimport { loadClerkJsScript } from '@clerk/shared/loadClerkJsScript';\nimport type {\n  __internal_AttemptToEnableEnvironmentSettingParams,\n  __internal_AttemptToEnableEnvironmentSettingResult,\n  __internal_CheckoutProps,\n  __internal_EnableOrganizationsPromptProps,\n  __internal_OAuthConsentProps,\n  __internal_PlanDetailsProps,\n  __internal_SubscriptionDetailsProps,\n  __internal_UserVerificationModalProps,\n  __internal_UserVerificationProps,\n  APIKeysNamespace,\n  APIKeysProps,\n  AuthenticateWithBaseParams,\n  AuthenticateWithCoinbaseWalletParams,\n  AuthenticateWithGoogleOneTapParams,\n  AuthenticateWithMetamaskParams,\n  AuthenticateWithOKXWalletParams,\n  AuthenticateWithSolanaParams,\n  BillingNamespace,\n  Clerk,\n  ClerkAuthenticateWithWeb3Params,\n  ClerkOptions,\n  ClerkStatus,\n  ClientResource,\n  CreateOrganizationParams,\n  CreateOrganizationProps,\n  DomainOrProxyUrl,\n  GoogleOneTapProps,\n  HandleEmailLinkVerificationParams,\n  HandleOAuthCallbackParams,\n  JoinWaitlistParams,\n  ListenerCallback,\n  LoadedClerk,\n  OrganizationListProps,\n  OrganizationProfileProps,\n  OrganizationResource,\n  OrganizationSwitcherProps,\n  PricingTableProps,\n  RedirectOptions,\n  SetActiveParams,\n  SignInProps,\n  SignInRedirectOptions,\n  SignInResource,\n  SignUpProps,\n  SignUpRedirectOptions,\n  SignUpResource,\n  State,\n  TaskChooseOrganizationProps,\n  TaskResetPasswordProps,\n  TaskSetupMFAProps,\n  TasksRedirectOptions,\n  UnsubscribeCallback,\n  UserAvatarProps,\n  UserButtonProps,\n  UserProfileProps,\n  WaitlistProps,\n  WaitlistResource,\n  Without,\n} from '@clerk/shared/types';\nimport { handleValueOrFn } from '@clerk/shared/utils';\n\nimport { errorThrower } from './errors/errorThrower';\nimport { unsupportedNonBrowserDomainOrProxyUrlFunction } from './errors/messages';\nimport { StateProxy } from './stateProxy';\nimport type {\n  BrowserClerk,\n  BrowserClerkConstructor,\n  ClerkProp,\n  HeadlessBrowserClerk,\n  HeadlessBrowserClerkConstructor,\n  IsomorphicClerkOptions,\n} from './types';\nimport { isConstructor } from './utils';\n\nif (typeof globalThis.__BUILD_DISABLE_RHC__ === 'undefined') {\n  globalThis.__BUILD_DISABLE_RHC__ = false;\n}\n\nconst SDK_METADATA = {\n  name: PACKAGE_NAME,\n  version: PACKAGE_VERSION,\n  environment: process.env.NODE_ENV,\n};\n\nexport interface Global {\n  Clerk?: HeadlessBrowserClerk | BrowserClerk;\n}\n\ndeclare const global: Global;\n\ntype GenericFunction<TArgs = never> = (...args: TArgs[]) => unknown;\n\ntype MethodName<T> = {\n  [P in keyof T]: T[P] extends GenericFunction ? P : never;\n}[keyof T];\n\ntype MethodCallback = () => Promise<unknown> | unknown;\n\ntype WithVoidReturn<F extends (...args: any) => any> = (\n  ...args: Parameters<F>\n) => ReturnType<F> extends Promise<infer T> ? Promise<T | void> : ReturnType<F> | void;\ntype WithVoidReturnFunctions<T> = {\n  [K in keyof T]: T[K] extends (...args: any) => any ? WithVoidReturn<T[K]> : T[K];\n};\n\ntype IsomorphicLoadedClerk = Without<\n  WithVoidReturnFunctions<LoadedClerk>,\n  | 'client'\n  | '__internal_addNavigationListener'\n  | '__internal_getCachedResources'\n  | '__internal_reloadInitialResources'\n  | 'billing'\n  | 'apiKeys'\n  | '__internal_setActiveInProgress'\n> & {\n  client: ClientResource | undefined;\n  billing: BillingNamespace | undefined;\n  apiKeys: APIKeysNamespace | undefined;\n};\n\nexport class IsomorphicClerk implements IsomorphicLoadedClerk {\n  private readonly mode: 'browser' | 'server';\n  private readonly options: IsomorphicClerkOptions;\n  private readonly Clerk: ClerkProp;\n  private clerkjs: BrowserClerk | HeadlessBrowserClerk | null = null;\n  private preopenOneTap?: null | GoogleOneTapProps = null;\n  private preopenUserVerification?: null | __internal_UserVerificationProps = null;\n  private preopenEnableOrganizationsPrompt?: null | __internal_EnableOrganizationsPromptProps = null;\n  private preopenSignIn?: null | SignInProps = null;\n  private preopenCheckout?: null | __internal_CheckoutProps = null;\n  private preopenPlanDetails: null | __internal_PlanDetailsProps = null;\n  private preopenSubscriptionDetails: null | __internal_SubscriptionDetailsProps = null;\n  private preopenSignUp?: null | SignUpProps = null;\n  private preopenUserProfile?: null | UserProfileProps = null;\n  private preopenOrganizationProfile?: null | OrganizationProfileProps = null;\n  private preopenCreateOrganization?: null | CreateOrganizationProps = null;\n  private preOpenWaitlist?: null | WaitlistProps = null;\n  private premountSignInNodes = new Map<HTMLDivElement, SignInProps | undefined>();\n  private premountSignUpNodes = new Map<HTMLDivElement, SignUpProps | undefined>();\n  private premountUserAvatarNodes = new Map<HTMLDivElement, UserAvatarProps | undefined>();\n  private premountUserProfileNodes = new Map<HTMLDivElement, UserProfileProps | undefined>();\n  private premountUserButtonNodes = new Map<HTMLDivElement, UserButtonProps | undefined>();\n  private premountOrganizationProfileNodes = new Map<HTMLDivElement, OrganizationProfileProps | undefined>();\n  private premountCreateOrganizationNodes = new Map<HTMLDivElement, CreateOrganizationProps | undefined>();\n  private premountOrganizationSwitcherNodes = new Map<HTMLDivElement, OrganizationSwitcherProps | undefined>();\n  private premountOrganizationListNodes = new Map<HTMLDivElement, OrganizationListProps | undefined>();\n  private premountMethodCalls = new Map<MethodName<BrowserClerk>, MethodCallback>();\n  private premountWaitlistNodes = new Map<HTMLDivElement, WaitlistProps | undefined>();\n  private premountPricingTableNodes = new Map<HTMLDivElement, PricingTableProps | undefined>();\n  private premountAPIKeysNodes = new Map<HTMLDivElement, APIKeysProps | undefined>();\n  private premountOAuthConsentNodes = new Map<HTMLDivElement, __internal_OAuthConsentProps | undefined>();\n  private premountTaskChooseOrganizationNodes = new Map<HTMLDivElement, TaskChooseOrganizationProps | undefined>();\n  private premountTaskResetPasswordNodes = new Map<HTMLDivElement, TaskResetPasswordProps | undefined>();\n  private premountTaskSetupMFANodes = new Map<HTMLDivElement, TaskSetupMFAProps | undefined>();\n  // A separate Map of `addListener` method calls to handle multiple listeners.\n  private premountAddListenerCalls = new Map<\n    ListenerCallback,\n    {\n      unsubscribe: UnsubscribeCallback;\n      nativeUnsubscribe?: UnsubscribeCallback;\n    }\n  >();\n  private loadedListeners: Array<() => void> = [];\n\n  #status: ClerkStatus = 'loading';\n  #domain: DomainOrProxyUrl['domain'];\n  #proxyUrl: DomainOrProxyUrl['proxyUrl'];\n  #publishableKey: string;\n  #eventBus = createClerkEventBus();\n  #stateProxy: StateProxy;\n\n  get publishableKey(): string {\n    return this.#publishableKey;\n  }\n\n  get loaded(): boolean {\n    return this.clerkjs?.loaded || false;\n  }\n\n  get status(): ClerkStatus {\n    /**\n     * If clerk-js is not available the returned value can either be \"loading\" or \"error\".\n     */\n    if (!this.clerkjs) {\n      return this.#status;\n    }\n    return (\n      this.clerkjs?.status ||\n      /**\n       * Support older clerk-js versions.\n       * If clerk-js is available but `.status` is missing it we need to fallback to `.loaded`.\n       * Since \"degraded\" an \"error\" did not exist before,\n       * map \"loaded\" to \"ready\" and \"not loaded\" to \"loading\".\n       */\n      (this.clerkjs.loaded ? 'ready' : 'loading')\n    );\n  }\n\n  static #instance: IsomorphicClerk | null | undefined;\n\n  static getOrCreateInstance(options: IsomorphicClerkOptions) {\n    // During SSR: a new instance should be created for every request\n    // During CSR: use the cached instance for the whole lifetime of the app\n    // Also will recreate the instance if the provided Clerk instance changes\n    // This method should be idempotent in both scenarios\n    if (\n      !inBrowser() ||\n      !this.#instance ||\n      (options.Clerk && this.#instance.Clerk !== options.Clerk) ||\n      // Allow hot swapping PKs on the client\n      this.#instance.publishableKey !== options.publishableKey\n    ) {\n      this.#instance = new IsomorphicClerk(options);\n    }\n    return this.#instance;\n  }\n\n  static clearInstance() {\n    this.#instance = null;\n  }\n\n  get domain(): string {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use domain as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.#domain, new URL(window.location.href), '');\n    }\n    if (typeof this.#domain === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return this.#domain || '';\n  }\n\n  get proxyUrl(): string {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use proxy as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.#proxyUrl, new URL(window.location.href), '');\n    }\n    if (typeof this.#proxyUrl === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return this.#proxyUrl || '';\n  }\n\n  /**\n   * Accesses private options from the `Clerk` instance and defaults to\n   * `IsomorphicClerk` options when in SSR context.\n   *  @internal\n   */\n  public __internal_getOption<K extends keyof ClerkOptions>(key: K): ClerkOptions[K] | undefined {\n    return this.clerkjs?.__internal_getOption ? this.clerkjs?.__internal_getOption(key) : this.options[key];\n  }\n\n  constructor(options: IsomorphicClerkOptions) {\n    const { Clerk = null, publishableKey } = options || {};\n    this.#publishableKey = publishableKey;\n    this.#proxyUrl = options?.proxyUrl;\n    this.#domain = options?.domain;\n    this.options = options;\n    this.Clerk = Clerk;\n    this.mode = inBrowser() ? 'browser' : 'server';\n    this.#stateProxy = new StateProxy(this);\n\n    if (!this.options.sdkMetadata) {\n      this.options.sdkMetadata = SDK_METADATA;\n    }\n    this.#eventBus.emit(clerkEvents.Status, 'loading');\n    this.#eventBus.prioritizedOn(clerkEvents.Status, status => (this.#status = status));\n\n    if (this.#publishableKey) {\n      void this.loadClerkJS();\n    }\n  }\n\n  get sdkMetadata() {\n    return this.clerkjs?.sdkMetadata || this.options.sdkMetadata || undefined;\n  }\n\n  get instanceType() {\n    return this.clerkjs?.instanceType;\n  }\n\n  get frontendApi() {\n    return this.clerkjs?.frontendApi || '';\n  }\n\n  get isStandardBrowser() {\n    return this.clerkjs?.isStandardBrowser || this.options.standardBrowser || false;\n  }\n\n  get __internal_queryClient() {\n    // @ts-expect-error - __internal_queryClient is not typed\n    return this.clerkjs?.__internal_queryClient;\n  }\n\n  get isSatellite() {\n    // This getter can run in environments where window is not available.\n    // In those cases we should expect and use domain as a string\n    if (typeof window !== 'undefined' && window.location) {\n      return handleValueOrFn(this.options.isSatellite, new URL(window.location.href), false);\n    }\n    if (typeof this.options.isSatellite === 'function') {\n      return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction);\n    }\n    return false;\n  }\n\n  buildSignInUrl = (opts?: RedirectOptions): string | void => {\n    const callback = () => this.clerkjs?.buildSignInUrl(opts) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildSignInUrl', callback);\n    }\n  };\n\n  buildSignUpUrl = (opts?: RedirectOptions): string | void => {\n    const callback = () => this.clerkjs?.buildSignUpUrl(opts) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildSignUpUrl', callback);\n    }\n  };\n\n  buildAfterSignInUrl = (...args: Parameters<Clerk['buildAfterSignInUrl']>): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignInUrl(...args) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignInUrl', callback);\n    }\n  };\n\n  buildAfterSignUpUrl = (...args: Parameters<Clerk['buildAfterSignUpUrl']>): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignUpUrl(...args) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignUpUrl', callback);\n    }\n  };\n\n  buildAfterSignOutUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildAfterSignOutUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterSignOutUrl', callback);\n    }\n  };\n\n  buildNewSubscriptionRedirectUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildNewSubscriptionRedirectUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildNewSubscriptionRedirectUrl', callback);\n    }\n  };\n\n  buildAfterMultiSessionSingleSignOutUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildAfterMultiSessionSingleSignOutUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildAfterMultiSessionSingleSignOutUrl', callback);\n    }\n  };\n\n  buildUserProfileUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildUserProfileUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildUserProfileUrl', callback);\n    }\n  };\n\n  buildCreateOrganizationUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildCreateOrganizationUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildCreateOrganizationUrl', callback);\n    }\n  };\n\n  buildOrganizationProfileUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildOrganizationProfileUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildOrganizationProfileUrl', callback);\n    }\n  };\n\n  buildWaitlistUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildWaitlistUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildWaitlistUrl', callback);\n    }\n  };\n\n  buildTasksUrl = (): string | void => {\n    const callback = () => this.clerkjs?.buildTasksUrl() || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildTasksUrl', callback);\n    }\n  };\n\n  buildUrlWithAuth = (to: string): string | void => {\n    const callback = () => this.clerkjs?.buildUrlWithAuth(to) || '';\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('buildUrlWithAuth', callback);\n    }\n  };\n\n  handleUnauthenticated = async () => {\n    const callback = () => this.clerkjs?.handleUnauthenticated();\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('handleUnauthenticated', callback);\n    }\n  };\n\n  #waitForClerkJS(): Promise<HeadlessBrowserClerk | BrowserClerk> {\n    return new Promise<HeadlessBrowserClerk | BrowserClerk>(resolve => {\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      this.addOnLoaded(() => resolve(this.clerkjs!));\n    });\n  }\n\n  async loadClerkJS(): Promise<HeadlessBrowserClerk | BrowserClerk | undefined> {\n    if (this.mode !== 'browser' || this.loaded) {\n      return;\n    }\n\n    // Store frontendAPI value on window as a fallback. This value can be used as a\n    // fallback during ClerkJS hot loading in case ClerkJS fails to find the\n    // \"data-clerk-frontend-api\" attribute on its script tag.\n\n    // This can happen when the DOM is altered completely during client rehydration.\n    // For example, in Remix with React 18 the document changes completely via `hydrateRoot(document)`.\n\n    // For more information refer to:\n    // - https://github.com/remix-run/remix/issues/2947\n    // - https://github.com/facebook/react/issues/24430\n    if (typeof window !== 'undefined') {\n      window.__clerk_publishable_key = this.#publishableKey;\n      window.__clerk_proxy_url = this.proxyUrl;\n      window.__clerk_domain = this.domain;\n    }\n\n    try {\n      if (this.Clerk) {\n        // Set a fixed Clerk version\n        let c: ClerkProp;\n\n        if (isConstructor<BrowserClerkConstructor | HeadlessBrowserClerkConstructor>(this.Clerk)) {\n          // Construct a new Clerk object if a constructor is passed\n          c = new this.Clerk(this.#publishableKey, {\n            proxyUrl: this.proxyUrl,\n            domain: this.domain,\n          } as any);\n\n          this.beforeLoad(c);\n          await c.load(this.options);\n        } else {\n          // Otherwise use the instantiated Clerk object\n          c = this.Clerk;\n          if (!c.loaded) {\n            this.beforeLoad(c);\n            await c.load(this.options);\n          }\n        }\n\n        global.Clerk = c;\n      } else if (!__BUILD_DISABLE_RHC__) {\n        // Hot-load latest ClerkJS from Clerk CDN\n        if (!global.Clerk) {\n          await loadClerkJsScript({\n            ...this.options,\n            publishableKey: this.#publishableKey,\n            proxyUrl: this.proxyUrl,\n            domain: this.domain,\n            nonce: this.options.nonce,\n          });\n        }\n\n        if (!global.Clerk) {\n          throw new Error('Failed to download latest ClerkJS. Contact support@clerk.com.');\n        }\n\n        this.beforeLoad(global.Clerk);\n        await global.Clerk.load(this.options);\n      }\n\n      if (global.Clerk?.loaded) {\n        return this.hydrateClerkJS(global.Clerk);\n      }\n      return;\n    } catch (err) {\n      const error = err as Error;\n      this.#eventBus.emit(clerkEvents.Status, 'error');\n      console.error(error.stack || error.message || error);\n      return;\n    }\n  }\n\n  public on: Clerk['on'] = (...args) => {\n    // Support older clerk-js versions.\n    if (this.clerkjs?.on) {\n      return this.clerkjs.on(...args);\n    } else {\n      this.#eventBus.on(...args);\n    }\n  };\n\n  public off: Clerk['off'] = (...args) => {\n    // Support older clerk-js versions.\n    if (this.clerkjs?.off) {\n      return this.clerkjs.off(...args);\n    } else {\n      this.#eventBus.off(...args);\n    }\n  };\n\n  /**\n   * @deprecated Please use `addStatusListener`. This api will be removed in the next major.\n   */\n  public addOnLoaded = (cb: () => void) => {\n    this.loadedListeners.push(cb);\n    /**\n     * When IsomorphicClerk is loaded execute the callback directly\n     */\n    if (this.loaded) {\n      this.emitLoaded();\n    }\n  };\n\n  /**\n   * @deprecated Please use `__internal_setStatus`. This api will be removed in the next major.\n   */\n  public emitLoaded = () => {\n    this.loadedListeners.forEach(cb => cb());\n    this.loadedListeners = [];\n  };\n\n  private beforeLoad = (clerkjs: BrowserClerk | HeadlessBrowserClerk | undefined) => {\n    if (!clerkjs) {\n      throw new Error('Failed to hydrate latest Clerk JS');\n    }\n  };\n\n  private hydrateClerkJS = (clerkjs: BrowserClerk | HeadlessBrowserClerk | undefined) => {\n    if (!clerkjs) {\n      throw new Error('Failed to hydrate latest Clerk JS');\n    }\n\n    this.clerkjs = clerkjs;\n\n    this.premountMethodCalls.forEach(cb => cb());\n    this.premountAddListenerCalls.forEach((listenerHandlers, listener) => {\n      listenerHandlers.nativeUnsubscribe = clerkjs.addListener(listener);\n    });\n\n    this.#eventBus.internal.retrieveListeners('status')?.forEach(listener => {\n      // Since clerkjs exists it will call `this.clerkjs.on('status', listener)`\n      this.on('status', listener, { notify: true });\n    });\n\n    // @ts-expect-error - queryClientStatus is not typed\n    this.#eventBus.internal.retrieveListeners('queryClientStatus')?.forEach(listener => {\n      // Since clerkjs exists it will call `this.clerkjs.on('queryClientStatus', listener)`\n      // @ts-expect-error - queryClientStatus is not typed\n      this.on('queryClientStatus', listener, { notify: true });\n    });\n\n    if (this.preopenSignIn !== null) {\n      clerkjs.openSignIn(this.preopenSignIn);\n    }\n\n    if (this.preopenCheckout !== null) {\n      clerkjs.__internal_openCheckout(this.preopenCheckout);\n    }\n\n    if (this.preopenPlanDetails !== null) {\n      clerkjs.__internal_openPlanDetails(this.preopenPlanDetails);\n    }\n\n    if (this.preopenSubscriptionDetails !== null) {\n      clerkjs.__internal_openSubscriptionDetails(this.preopenSubscriptionDetails);\n    }\n\n    if (this.preopenSignUp !== null) {\n      clerkjs.openSignUp(this.preopenSignUp);\n    }\n\n    if (this.preopenUserProfile !== null) {\n      clerkjs.openUserProfile(this.preopenUserProfile);\n    }\n\n    if (this.preopenUserVerification !== null) {\n      clerkjs.__internal_openReverification(this.preopenUserVerification);\n    }\n\n    if (this.preopenOneTap !== null) {\n      clerkjs.openGoogleOneTap(this.preopenOneTap);\n    }\n\n    if (this.preopenOrganizationProfile !== null) {\n      clerkjs.openOrganizationProfile(this.preopenOrganizationProfile);\n    }\n\n    if (this.preopenCreateOrganization !== null) {\n      clerkjs.openCreateOrganization(this.preopenCreateOrganization);\n    }\n\n    if (this.preOpenWaitlist !== null) {\n      clerkjs.openWaitlist(this.preOpenWaitlist);\n    }\n\n    if (this.preopenEnableOrganizationsPrompt) {\n      clerkjs.__internal_openEnableOrganizationsPrompt(this.preopenEnableOrganizationsPrompt);\n    }\n\n    this.premountSignInNodes.forEach((props, node) => {\n      clerkjs.mountSignIn(node, props);\n    });\n\n    this.premountSignUpNodes.forEach((props, node) => {\n      clerkjs.mountSignUp(node, props);\n    });\n\n    this.premountUserProfileNodes.forEach((props, node) => {\n      clerkjs.mountUserProfile(node, props);\n    });\n\n    this.premountUserAvatarNodes.forEach((props, node) => {\n      clerkjs.mountUserAvatar(node, props);\n    });\n\n    this.premountUserButtonNodes.forEach((props, node) => {\n      clerkjs.mountUserButton(node, props);\n    });\n\n    this.premountOrganizationListNodes.forEach((props, node) => {\n      clerkjs.mountOrganizationList(node, props);\n    });\n\n    this.premountWaitlistNodes.forEach((props, node) => {\n      clerkjs.mountWaitlist(node, props);\n    });\n\n    this.premountPricingTableNodes.forEach((props, node) => {\n      clerkjs.mountPricingTable(node, props);\n    });\n\n    this.premountAPIKeysNodes.forEach((props, node) => {\n      clerkjs.mountAPIKeys(node, props);\n    });\n\n    this.premountOAuthConsentNodes.forEach((props, node) => {\n      clerkjs.__internal_mountOAuthConsent(node, props);\n    });\n\n    this.premountTaskChooseOrganizationNodes.forEach((props, node) => {\n      clerkjs.mountTaskChooseOrganization(node, props);\n    });\n\n    this.premountTaskResetPasswordNodes.forEach((props, node) => {\n      clerkjs.mountTaskResetPassword(node, props);\n    });\n\n    this.premountTaskSetupMFANodes.forEach((props, node) => {\n      clerkjs.mountTaskSetupMFA(node, props);\n    });\n\n    /**\n     * Only update status in case `clerk.status` is missing. In any other case, `clerk-js` should be the orchestrator.\n     */\n    if (typeof this.clerkjs.status === 'undefined') {\n      this.#eventBus.emit(clerkEvents.Status, 'ready');\n    }\n\n    this.emitLoaded();\n    return this.clerkjs;\n  };\n\n  get version() {\n    return this.clerkjs?.version;\n  }\n\n  get client(): ClientResource | undefined {\n    if (this.clerkjs) {\n      return this.clerkjs.client;\n      // TODO: add ssr condition\n    } else {\n      return undefined;\n    }\n  }\n\n  get session() {\n    if (this.clerkjs) {\n      return this.clerkjs.session;\n    } else {\n      return undefined;\n    }\n  }\n\n  get user() {\n    if (this.clerkjs) {\n      return this.clerkjs.user;\n    } else {\n      return undefined;\n    }\n  }\n\n  get organization() {\n    if (this.clerkjs) {\n      return this.clerkjs.organization;\n    } else {\n      return undefined;\n    }\n  }\n\n  get telemetry() {\n    if (this.clerkjs) {\n      return this.clerkjs.telemetry;\n    } else {\n      return undefined;\n    }\n  }\n\n  get __unstable__environment(): any {\n    if (this.clerkjs) {\n      return (this.clerkjs as any).__unstable__environment;\n      // TODO: add ssr condition\n    } else {\n      return undefined;\n    }\n  }\n\n  get isSignedIn(): boolean {\n    if (this.clerkjs) {\n      return this.clerkjs.isSignedIn;\n    } else {\n      return false;\n    }\n  }\n\n  get billing(): BillingNamespace | undefined {\n    return this.clerkjs?.billing;\n  }\n\n  get __internal_state(): State {\n    return this.loaded && this.clerkjs ? this.clerkjs.__internal_state : this.#stateProxy;\n  }\n\n  get apiKeys(): APIKeysNamespace | undefined {\n    return this.clerkjs?.apiKeys;\n  }\n\n  __experimental_checkout = (...args: Parameters<Clerk['__experimental_checkout']>) => {\n    return this.clerkjs?.__experimental_checkout(...args);\n  };\n\n  __unstable__setEnvironment(...args: any): void {\n    if (this.clerkjs && '__unstable__setEnvironment' in this.clerkjs) {\n      (this.clerkjs as any).__unstable__setEnvironment(args);\n    } else {\n      return undefined;\n    }\n  }\n\n  // TODO @userland-errors:\n  __unstable__updateProps = async (props: any): Promise<void> => {\n    const clerkjs = await this.#waitForClerkJS();\n    // Handle case where accounts has clerk-react@4 installed, but clerk-js@3 is manually loaded\n    if (clerkjs && '__unstable__updateProps' in clerkjs) {\n      return (clerkjs as any).__unstable__updateProps(props);\n    }\n  };\n\n  /**\n   * `setActive` can be used to set the active session and/or organization.\n   */\n  setActive = (params: SetActiveParams): Promise<void> => {\n    if (this.clerkjs) {\n      return this.clerkjs.setActive(params);\n    } else {\n      return Promise.reject();\n    }\n  };\n\n  openSignIn = (props?: SignInProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openSignIn(props);\n    } else {\n      this.preopenSignIn = props;\n    }\n  };\n\n  closeSignIn = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeSignIn();\n    } else {\n      this.preopenSignIn = null;\n    }\n  };\n\n  __internal_openCheckout = (props?: __internal_CheckoutProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openCheckout(props);\n    } else {\n      this.preopenCheckout = props;\n    }\n  };\n\n  __internal_closeCheckout = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeCheckout();\n    } else {\n      this.preopenCheckout = null;\n    }\n  };\n\n  __internal_openPlanDetails = (props: __internal_PlanDetailsProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openPlanDetails(props);\n    } else {\n      this.preopenPlanDetails = props;\n    }\n  };\n\n  __internal_closePlanDetails = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closePlanDetails();\n    } else {\n      this.preopenPlanDetails = null;\n    }\n  };\n\n  __internal_openSubscriptionDetails = (props?: __internal_SubscriptionDetailsProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openSubscriptionDetails(props);\n    } else {\n      this.preopenSubscriptionDetails = props ?? null;\n    }\n  };\n\n  __internal_closeSubscriptionDetails = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeSubscriptionDetails();\n    } else {\n      this.preopenSubscriptionDetails = null;\n    }\n  };\n\n  __internal_openReverification = (props?: __internal_UserVerificationModalProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openReverification(props);\n    } else {\n      this.preopenUserVerification = props;\n    }\n  };\n\n  __internal_closeReverification = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeReverification();\n    } else {\n      this.preopenUserVerification = null;\n    }\n  };\n\n  __internal_openEnableOrganizationsPrompt = (props: __internal_EnableOrganizationsPromptProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_openEnableOrganizationsPrompt(props);\n    } else {\n      this.preopenEnableOrganizationsPrompt = props;\n    }\n  };\n\n  __internal_closeEnableOrganizationsPrompt = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_closeEnableOrganizationsPrompt();\n    } else {\n      this.preopenEnableOrganizationsPrompt = null;\n    }\n  };\n\n  openGoogleOneTap = (props?: GoogleOneTapProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openGoogleOneTap(props);\n    } else {\n      this.preopenOneTap = props;\n    }\n  };\n\n  closeGoogleOneTap = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeGoogleOneTap();\n    } else {\n      this.preopenOneTap = null;\n    }\n  };\n\n  openUserProfile = (props?: UserProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openUserProfile(props);\n    } else {\n      this.preopenUserProfile = props;\n    }\n  };\n\n  closeUserProfile = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeUserProfile();\n    } else {\n      this.preopenUserProfile = null;\n    }\n  };\n\n  openOrganizationProfile = (props?: OrganizationProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openOrganizationProfile(props);\n    } else {\n      this.preopenOrganizationProfile = props;\n    }\n  };\n\n  closeOrganizationProfile = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeOrganizationProfile();\n    } else {\n      this.preopenOrganizationProfile = null;\n    }\n  };\n\n  openCreateOrganization = (props?: CreateOrganizationProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openCreateOrganization(props);\n    } else {\n      this.preopenCreateOrganization = props;\n    }\n  };\n\n  closeCreateOrganization = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeCreateOrganization();\n    } else {\n      this.preopenCreateOrganization = null;\n    }\n  };\n\n  openWaitlist = (props?: WaitlistProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openWaitlist(props);\n    } else {\n      this.preOpenWaitlist = props;\n    }\n  };\n\n  closeWaitlist = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeWaitlist();\n    } else {\n      this.preOpenWaitlist = null;\n    }\n  };\n\n  openSignUp = (props?: SignUpProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.openSignUp(props);\n    } else {\n      this.preopenSignUp = props;\n    }\n  };\n\n  closeSignUp = () => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.closeSignUp();\n    } else {\n      this.preopenSignUp = null;\n    }\n  };\n\n  mountSignIn = (node: HTMLDivElement, props?: SignInProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountSignIn(node, props);\n    } else {\n      this.premountSignInNodes.set(node, props);\n    }\n  };\n\n  unmountSignIn = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountSignIn(node);\n    } else {\n      this.premountSignInNodes.delete(node);\n    }\n  };\n\n  mountSignUp = (node: HTMLDivElement, props?: SignUpProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountSignUp(node, props);\n    } else {\n      this.premountSignUpNodes.set(node, props);\n    }\n  };\n\n  unmountSignUp = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountSignUp(node);\n    } else {\n      this.premountSignUpNodes.delete(node);\n    }\n  };\n\n  mountUserAvatar = (node: HTMLDivElement, props?: UserAvatarProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserAvatar(node, props);\n    } else {\n      this.premountUserAvatarNodes.set(node, props);\n    }\n  };\n\n  unmountUserAvatar = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserAvatar(node);\n    } else {\n      this.premountUserAvatarNodes.delete(node);\n    }\n  };\n\n  mountUserProfile = (node: HTMLDivElement, props?: UserProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserProfile(node, props);\n    } else {\n      this.premountUserProfileNodes.set(node, props);\n    }\n  };\n\n  unmountUserProfile = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserProfile(node);\n    } else {\n      this.premountUserProfileNodes.delete(node);\n    }\n  };\n\n  mountOrganizationProfile = (node: HTMLDivElement, props?: OrganizationProfileProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationProfile(node, props);\n    } else {\n      this.premountOrganizationProfileNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationProfile = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationProfile(node);\n    } else {\n      this.premountOrganizationProfileNodes.delete(node);\n    }\n  };\n\n  mountCreateOrganization = (node: HTMLDivElement, props?: CreateOrganizationProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountCreateOrganization(node, props);\n    } else {\n      this.premountCreateOrganizationNodes.set(node, props);\n    }\n  };\n\n  unmountCreateOrganization = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountCreateOrganization(node);\n    } else {\n      this.premountCreateOrganizationNodes.delete(node);\n    }\n  };\n\n  mountOrganizationSwitcher = (node: HTMLDivElement, props?: OrganizationSwitcherProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationSwitcher(node, props);\n    } else {\n      this.premountOrganizationSwitcherNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationSwitcher = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationSwitcher(node);\n    } else {\n      this.premountOrganizationSwitcherNodes.delete(node);\n    }\n  };\n\n  __experimental_prefetchOrganizationSwitcher = () => {\n    const callback = () => this.clerkjs?.__experimental_prefetchOrganizationSwitcher();\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('__experimental_prefetchOrganizationSwitcher', callback);\n    }\n  };\n\n  mountOrganizationList = (node: HTMLDivElement, props?: OrganizationListProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountOrganizationList(node, props);\n    } else {\n      this.premountOrganizationListNodes.set(node, props);\n    }\n  };\n\n  unmountOrganizationList = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountOrganizationList(node);\n    } else {\n      this.premountOrganizationListNodes.delete(node);\n    }\n  };\n\n  mountUserButton = (node: HTMLDivElement, userButtonProps?: UserButtonProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountUserButton(node, userButtonProps);\n    } else {\n      this.premountUserButtonNodes.set(node, userButtonProps);\n    }\n  };\n\n  unmountUserButton = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountUserButton(node);\n    } else {\n      this.premountUserButtonNodes.delete(node);\n    }\n  };\n\n  mountWaitlist = (node: HTMLDivElement, props?: WaitlistProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountWaitlist(node, props);\n    } else {\n      this.premountWaitlistNodes.set(node, props);\n    }\n  };\n\n  unmountWaitlist = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountWaitlist(node);\n    } else {\n      this.premountWaitlistNodes.delete(node);\n    }\n  };\n\n  mountPricingTable = (node: HTMLDivElement, props?: PricingTableProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountPricingTable(node, props);\n    } else {\n      this.premountPricingTableNodes.set(node, props);\n    }\n  };\n\n  unmountPricingTable = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountPricingTable(node);\n    } else {\n      this.premountPricingTableNodes.delete(node);\n    }\n  };\n\n  mountAPIKeys = (node: HTMLDivElement, props?: APIKeysProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountAPIKeys(node, props);\n    } else {\n      this.premountAPIKeysNodes.set(node, props);\n    }\n  };\n\n  unmountAPIKeys = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountAPIKeys(node);\n    } else {\n      this.premountAPIKeysNodes.delete(node);\n    }\n  };\n\n  __internal_mountOAuthConsent = (node: HTMLDivElement, props?: __internal_OAuthConsentProps) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_mountOAuthConsent(node, props);\n    } else {\n      this.premountOAuthConsentNodes.set(node, props);\n    }\n  };\n\n  __internal_unmountOAuthConsent = (node: HTMLDivElement) => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.__internal_unmountOAuthConsent(node);\n    } else {\n      this.premountOAuthConsentNodes.delete(node);\n    }\n  };\n\n  mountTaskChooseOrganization = (node: HTMLDivElement, props?: TaskChooseOrganizationProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskChooseOrganization(node, props);\n    } else {\n      this.premountTaskChooseOrganizationNodes.set(node, props);\n    }\n  };\n\n  unmountTaskChooseOrganization = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskChooseOrganization(node);\n    } else {\n      this.premountTaskChooseOrganizationNodes.delete(node);\n    }\n  };\n\n  mountTaskResetPassword = (node: HTMLDivElement, props?: TaskResetPasswordProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskResetPassword(node, props);\n    } else {\n      this.premountTaskResetPasswordNodes.set(node, props);\n    }\n  };\n\n  unmountTaskResetPassword = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskResetPassword(node);\n    } else {\n      this.premountTaskResetPasswordNodes.delete(node);\n    }\n  };\n\n  mountTaskSetupMFA = (node: HTMLDivElement, props?: TaskSetupMFAProps): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.mountTaskSetupMFA(node, props);\n    } else {\n      this.premountTaskSetupMFANodes.set(node, props);\n    }\n  };\n\n  unmountTaskSetupMFA = (node: HTMLDivElement): void => {\n    if (this.clerkjs && this.loaded) {\n      this.clerkjs.unmountTaskSetupMFA(node);\n    } else {\n      this.premountTaskSetupMFANodes.delete(node);\n    }\n  };\n\n  addListener = (listener: ListenerCallback): UnsubscribeCallback => {\n    if (this.clerkjs) {\n      return this.clerkjs.addListener(listener);\n    } else {\n      const unsubscribe = () => {\n        const listenerHandlers = this.premountAddListenerCalls.get(listener);\n        if (listenerHandlers) {\n          listenerHandlers.nativeUnsubscribe?.();\n          this.premountAddListenerCalls.delete(listener);\n        }\n      };\n      this.premountAddListenerCalls.set(listener, { unsubscribe, nativeUnsubscribe: undefined });\n      return unsubscribe;\n    }\n  };\n\n  navigate = (to: string) => {\n    const callback = () => this.clerkjs?.navigate(to);\n    if (this.clerkjs && this.loaded) {\n      void callback();\n    } else {\n      this.premountMethodCalls.set('navigate', callback);\n    }\n  };\n\n  redirectWithAuth = async (...args: Parameters<Clerk['redirectWithAuth']>) => {\n    const callback = () => this.clerkjs?.redirectWithAuth(...args);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectWithAuth', callback);\n      return;\n    }\n  };\n\n  redirectToSignIn = async (opts?: SignInRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToSignIn(opts as any);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToSignIn', callback);\n      return;\n    }\n  };\n\n  redirectToSignUp = async (opts?: SignUpRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToSignUp(opts as any);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToSignUp', callback);\n      return;\n    }\n  };\n\n  redirectToUserProfile = async () => {\n    const callback = () => this.clerkjs?.redirectToUserProfile();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToUserProfile', callback);\n      return;\n    }\n  };\n\n  redirectToAfterSignUp = (): void => {\n    const callback = () => this.clerkjs?.redirectToAfterSignUp();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignUp', callback);\n    }\n  };\n\n  redirectToAfterSignIn = () => {\n    const callback = () => this.clerkjs?.redirectToAfterSignIn();\n    if (this.clerkjs && this.loaded) {\n      callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignIn', callback);\n    }\n  };\n\n  redirectToAfterSignOut = () => {\n    const callback = () => this.clerkjs?.redirectToAfterSignOut();\n    if (this.clerkjs && this.loaded) {\n      callback();\n    } else {\n      this.premountMethodCalls.set('redirectToAfterSignOut', callback);\n    }\n  };\n\n  redirectToOrganizationProfile = async () => {\n    const callback = () => this.clerkjs?.redirectToOrganizationProfile();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToOrganizationProfile', callback);\n      return;\n    }\n  };\n\n  redirectToCreateOrganization = async () => {\n    const callback = () => this.clerkjs?.redirectToCreateOrganization();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToCreateOrganization', callback);\n      return;\n    }\n  };\n\n  redirectToWaitlist = async () => {\n    const callback = () => this.clerkjs?.redirectToWaitlist();\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToWaitlist', callback);\n      return;\n    }\n  };\n\n  redirectToTasks = async (opts?: TasksRedirectOptions) => {\n    const callback = () => this.clerkjs?.redirectToTasks(opts);\n    if (this.clerkjs && this.loaded) {\n      return callback();\n    } else {\n      this.premountMethodCalls.set('redirectToTasks', callback);\n      return;\n    }\n  };\n\n  handleRedirectCallback = async (params: HandleOAuthCallbackParams): Promise<void> => {\n    const callback = () => this.clerkjs?.handleRedirectCallback(params);\n    if (this.clerkjs && this.loaded) {\n      void callback()?.catch(() => {\n        // This error is caused when the host app is using React18\n        // and strictMode is enabled. This useEffects runs twice because\n        // the clerk-react ui components mounts, unmounts and mounts again\n        // so the clerk-js component loses its state because of the custom\n        // unmount callback we're using.\n        // This needs to be solved by tweaking the logic in uiComponents.tsx\n        // or by making handleRedirectCallback idempotent\n      });\n    } else {\n      this.premountMethodCalls.set('handleRedirectCallback', callback);\n    }\n  };\n\n  handleGoogleOneTapCallback = async (\n    signInOrUp: SignInResource | SignUpResource,\n    params: HandleOAuthCallbackParams,\n  ): Promise<void> => {\n    const callback = () => this.clerkjs?.handleGoogleOneTapCallback(signInOrUp, params);\n    if (this.clerkjs && this.loaded) {\n      void callback()?.catch(() => {\n        // This error is caused when the host app is using React18\n        // and strictMode is enabled. This useEffects runs twice because\n        // the clerk-react ui components mounts, unmounts and mounts again\n        // so the clerk-js component loses its state because of the custom\n        // unmount callback we're using.\n        // This needs to be solved by tweaking the logic in uiComponents.tsx\n        // or by making handleRedirectCallback idempotent\n      });\n    } else {\n      this.premountMethodCalls.set('handleGoogleOneTapCallback', callback);\n    }\n  };\n\n  handleEmailLinkVerification = async (params: HandleEmailLinkVerificationParams) => {\n    const callback = () => this.clerkjs?.handleEmailLinkVerification(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('handleEmailLinkVerification', callback);\n    }\n  };\n\n  authenticateWithMetamask = async (params?: AuthenticateWithMetamaskParams) => {\n    const callback = () => this.clerkjs?.authenticateWithMetamask(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithMetamask', callback);\n    }\n  };\n\n  authenticateWithCoinbaseWallet = async (params?: AuthenticateWithCoinbaseWalletParams) => {\n    const callback = () => this.clerkjs?.authenticateWithCoinbaseWallet(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithCoinbaseWallet', callback);\n    }\n  };\n\n  authenticateWithBase = async (params?: AuthenticateWithBaseParams) => {\n    const callback = () => this.clerkjs?.authenticateWithBase(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithBase', callback);\n    }\n  };\n\n  authenticateWithOKXWallet = async (params?: AuthenticateWithOKXWalletParams) => {\n    const callback = () => this.clerkjs?.authenticateWithOKXWallet(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithOKXWallet', callback);\n    }\n  };\n\n  authenticateWithSolana = async (params: AuthenticateWithSolanaParams) => {\n    const callback = () => this.clerkjs?.authenticateWithSolana(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithSolana', callback);\n    }\n  };\n\n  authenticateWithWeb3 = async (params: ClerkAuthenticateWithWeb3Params) => {\n    const callback = () => this.clerkjs?.authenticateWithWeb3(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('authenticateWithWeb3', callback);\n    }\n  };\n\n  authenticateWithGoogleOneTap = async (params: AuthenticateWithGoogleOneTapParams) => {\n    const clerkjs = await this.#waitForClerkJS();\n    return clerkjs.authenticateWithGoogleOneTap(params);\n  };\n\n  __internal_loadStripeJs = async () => {\n    const clerkjs = await this.#waitForClerkJS();\n    return clerkjs.__internal_loadStripeJs();\n  };\n\n  createOrganization = async (params: CreateOrganizationParams): Promise<OrganizationResource | void> => {\n    const callback = () => this.clerkjs?.createOrganization(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<OrganizationResource>;\n    } else {\n      this.premountMethodCalls.set('createOrganization', callback);\n    }\n  };\n\n  getOrganization = async (organizationId: string): Promise<OrganizationResource | void> => {\n    const callback = () => this.clerkjs?.getOrganization(organizationId);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<OrganizationResource>;\n    } else {\n      this.premountMethodCalls.set('getOrganization', callback);\n    }\n  };\n\n  joinWaitlist = async (params: JoinWaitlistParams): Promise<WaitlistResource | void> => {\n    const callback = () => this.clerkjs?.joinWaitlist(params);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<WaitlistResource>;\n    } else {\n      this.premountMethodCalls.set('joinWaitlist', callback);\n    }\n  };\n\n  signOut = async (...args: Parameters<Clerk['signOut']>) => {\n    const callback = () => this.clerkjs?.signOut(...args);\n    if (this.clerkjs && this.loaded) {\n      return callback() as Promise<void>;\n    } else {\n      this.premountMethodCalls.set('signOut', callback);\n    }\n  };\n\n  __internal_attemptToEnableEnvironmentSetting = (\n    options: __internal_AttemptToEnableEnvironmentSettingParams,\n  ): __internal_AttemptToEnableEnvironmentSettingResult | void => {\n    const callback = () => this.clerkjs?.__internal_attemptToEnableEnvironmentSetting(options);\n    if (this.clerkjs && this.loaded) {\n      return callback() as __internal_AttemptToEnableEnvironmentSettingResult;\n    } else {\n      this.premountMethodCalls.set('__internal_attemptToEnableEnvironmentSetting', callback);\n    }\n  };\n}\n","import { inBrowser } from '@clerk/shared/browser';\nimport type { SignInErrors, SignUpErrors, State } from '@clerk/shared/types';\n\nimport { errorThrower } from './errors/errorThrower';\nimport type { IsomorphicClerk } from './isomorphicClerk';\n\nconst defaultSignInErrors = (): SignInErrors => ({\n  fields: {\n    identifier: null,\n    password: null,\n    code: null,\n  },\n  raw: null,\n  global: null,\n});\n\nconst defaultSignUpErrors = (): SignUpErrors => ({\n  fields: {\n    firstName: null,\n    lastName: null,\n    emailAddress: null,\n    phoneNumber: null,\n    password: null,\n    username: null,\n    code: null,\n    captcha: null,\n    legalAccepted: null,\n  },\n  raw: null,\n  global: null,\n});\n\nexport class StateProxy implements State {\n  constructor(private isomorphicClerk: IsomorphicClerk) {}\n\n  private readonly signInSignalProxy = this.buildSignInProxy();\n  private readonly signUpSignalProxy = this.buildSignUpProxy();\n\n  signInSignal() {\n    return this.signInSignalProxy;\n  }\n  signUpSignal() {\n    return this.signUpSignalProxy;\n  }\n\n  private buildSignInProxy() {\n    const gateProperty = this.gateProperty.bind(this);\n    const target = () => this.client.signIn.__internal_future;\n\n    return {\n      errors: defaultSignInErrors(),\n      fetchStatus: 'idle' as const,\n      signIn: {\n        status: 'needs_identifier' as const,\n        availableStrategies: [],\n        isTransferable: false,\n        get id() {\n          return gateProperty(target, 'id', undefined);\n        },\n        get supportedFirstFactors() {\n          return gateProperty(target, 'supportedFirstFactors', []);\n        },\n        get supportedSecondFactors() {\n          return gateProperty(target, 'supportedSecondFactors', []);\n        },\n        get secondFactorVerification() {\n          return gateProperty(target, 'secondFactorVerification', {\n            status: null,\n            error: null,\n            expireAt: null,\n            externalVerificationRedirectURL: null,\n            nonce: null,\n            attempts: null,\n            message: null,\n            strategy: null,\n            verifiedAtClient: null,\n            verifiedFromTheSameClient: () => false,\n            __internal_toSnapshot: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n            pathRoot: '',\n            reload: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n          });\n        },\n        get identifier() {\n          return gateProperty(target, 'identifier', null);\n        },\n        get createdSessionId() {\n          return gateProperty(target, 'createdSessionId', null);\n        },\n        get userData() {\n          return gateProperty(target, 'userData', {});\n        },\n        get firstFactorVerification() {\n          return gateProperty(target, 'firstFactorVerification', {\n            status: null,\n            error: null,\n            expireAt: null,\n            externalVerificationRedirectURL: null,\n            nonce: null,\n            attempts: null,\n            message: null,\n            strategy: null,\n            verifiedAtClient: null,\n            verifiedFromTheSameClient: () => false,\n            __internal_toSnapshot: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n            pathRoot: '',\n            reload: () => {\n              throw new Error('__internal_toSnapshot called before Clerk is loaded');\n            },\n          });\n        },\n\n        create: this.gateMethod(target, 'create'),\n        password: this.gateMethod(target, 'password'),\n        sso: this.gateMethod(target, 'sso'),\n        finalize: this.gateMethod(target, 'finalize'),\n\n        emailCode: this.wrapMethods(() => target().emailCode, ['sendCode', 'verifyCode'] as const),\n        emailLink: this.wrapStruct(\n          () => target().emailLink,\n          ['sendLink', 'waitForVerification'] as const,\n          ['verification'] as const,\n          { verification: null },\n        ),\n        resetPasswordEmailCode: this.wrapMethods(() => target().resetPasswordEmailCode, [\n          'sendCode',\n          'verifyCode',\n          'submitPassword',\n        ] as const),\n        phoneCode: this.wrapMethods(() => target().phoneCode, ['sendCode', 'verifyCode'] as const),\n        mfa: this.wrapMethods(() => target().mfa, [\n          'sendPhoneCode',\n          'verifyPhoneCode',\n          'verifyTOTP',\n          'verifyBackupCode',\n        ] as const),\n        ticket: this.gateMethod(target, 'ticket'),\n        passkey: this.gateMethod(target, 'passkey'),\n        web3: this.gateMethod(target, 'web3'),\n      },\n    };\n  }\n\n  private buildSignUpProxy() {\n    const gateProperty = this.gateProperty.bind(this);\n    const gateMethod = this.gateMethod.bind(this);\n    const wrapMethods = this.wrapMethods.bind(this);\n    const target = () => this.client.signUp.__internal_future;\n\n    return {\n      errors: defaultSignUpErrors(),\n      fetchStatus: 'idle' as const,\n      signUp: {\n        get id() {\n          return gateProperty(target, 'id', undefined);\n        },\n        get requiredFields() {\n          return gateProperty(target, 'requiredFields', []);\n        },\n        get optionalFields() {\n          return gateProperty(target, 'optionalFields', []);\n        },\n        get missingFields() {\n          return gateProperty(target, 'missingFields', []);\n        },\n        get username() {\n          return gateProperty(target, 'username', null);\n        },\n        get firstName() {\n          return gateProperty(target, 'firstName', null);\n        },\n        get lastName() {\n          return gateProperty(target, 'lastName', null);\n        },\n        get emailAddress() {\n          return gateProperty(target, 'emailAddress', null);\n        },\n        get phoneNumber() {\n          return gateProperty(target, 'phoneNumber', null);\n        },\n        get web3Wallet() {\n          return gateProperty(target, 'web3Wallet', null);\n        },\n        get hasPassword() {\n          return gateProperty(target, 'hasPassword', false);\n        },\n        get unsafeMetadata() {\n          return gateProperty(target, 'unsafeMetadata', {});\n        },\n        get createdSessionId() {\n          return gateProperty(target, 'createdSessionId', null);\n        },\n        get createdUserId() {\n          return gateProperty(target, 'createdUserId', null);\n        },\n        get abandonAt() {\n          return gateProperty(target, 'abandonAt', null);\n        },\n        get legalAcceptedAt() {\n          return gateProperty(target, 'legalAcceptedAt', null);\n        },\n        get locale() {\n          return gateProperty(target, 'locale', null);\n        },\n        get status() {\n          return gateProperty(target, 'status', 'missing_requirements');\n        },\n        get unverifiedFields() {\n          return gateProperty(target, 'unverifiedFields', []);\n        },\n        get isTransferable() {\n          return gateProperty(target, 'isTransferable', false);\n        },\n\n        create: gateMethod(target, 'create'),\n        update: gateMethod(target, 'update'),\n        sso: gateMethod(target, 'sso'),\n        password: gateMethod(target, 'password'),\n        ticket: gateMethod(target, 'ticket'),\n        web3: gateMethod(target, 'web3'),\n        finalize: gateMethod(target, 'finalize'),\n\n        verifications: wrapMethods(() => target().verifications, [\n          'sendEmailCode',\n          'verifyEmailCode',\n          'sendPhoneCode',\n          'verifyPhoneCode',\n        ] as const),\n      },\n    };\n  }\n\n  __internal_effect(_: () => void): () => void {\n    throw new Error('__internal_effect called before Clerk is loaded');\n  }\n  __internal_computed<T>(_: (prev?: T) => T): () => T {\n    throw new Error('__internal_computed called before Clerk is loaded');\n  }\n\n  private get client() {\n    const c = this.isomorphicClerk.client;\n    if (!c) {\n      throw new Error('Clerk client not ready');\n    }\n    return c;\n  }\n\n  private gateProperty<T extends object, K extends keyof T>(getTarget: () => T, key: K, defaultValue: T[K]) {\n    return (() => {\n      if (!inBrowser() || !this.isomorphicClerk.loaded) {\n        return defaultValue;\n      }\n      const t = getTarget();\n      return t[key];\n    })();\n  }\n\n  private gateMethod<T extends object, K extends keyof T & string>(getTarget: () => T, key: K) {\n    type F = Extract<T[K], (...args: unknown[]) => unknown>;\n    return (async (...args: Parameters<F>): Promise<ReturnType<F>> => {\n      if (!inBrowser()) {\n        return errorThrower.throw(`Attempted to call a method (${key}) that is not supported on the server.`);\n      }\n      if (!this.isomorphicClerk.loaded) {\n        await new Promise<void>(resolve => this.isomorphicClerk.addOnLoaded(resolve));\n      }\n      const t = getTarget();\n      return (t[key] as (...args: Parameters<F>) => ReturnType<F>).apply(t, args);\n    }) as F;\n  }\n\n  private wrapMethods<T extends object, K extends readonly (keyof T & string)[]>(\n    getTarget: () => T,\n    keys: K,\n  ): Pick<T, K[number]> {\n    return Object.fromEntries(keys.map(k => [k, this.gateMethod(getTarget, k)])) as Pick<T, K[number]>;\n  }\n\n  private wrapStruct<T extends object, M extends readonly (keyof T)[], G extends readonly (keyof T)[]>(\n    getTarget: () => T,\n    methods: M,\n    getters: G,\n    fallbacks: Pick<T, G[number]>,\n  ): Pick<T, M[number] | G[number]> & {\n    [K in M[number]]: T[K] extends (...args: any[]) => any ? T[K] : never;\n  } & {\n    [K in G[number]]: T[K] extends (...args: any[]) => any ? never : T[K];\n  } {\n    const out: any = {};\n    for (const m of methods) {\n      out[m] = this.gateMethod(getTarget, m as any);\n    }\n    for (const g of getters) {\n      Object.defineProperty(out, g, {\n        get: () => this.gateProperty(getTarget, g as any, (fallbacks as any)[g]),\n        enumerable: true,\n      });\n    }\n    return out;\n  }\n}\n"],"mappings":"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","names":["React","React","React","React","React","React","React","React","inBrowser","_a","inBrowser","React","React"]}