| "use strict"; |
| var __create = Object.create; |
| var __defProp = Object.defineProperty; |
| var __getOwnPropDesc = Object.getOwnPropertyDescriptor; |
| var __getOwnPropNames = Object.getOwnPropertyNames; |
| var __getProtoOf = Object.getPrototypeOf; |
| var __hasOwnProp = Object.prototype.hasOwnProperty; |
| var __typeError = (msg) => { |
| throw TypeError(msg); |
| }; |
| var __export = (target, all) => { |
| for (var name in all) |
| __defProp(target, name, { get: all[name], enumerable: true }); |
| }; |
| var __copyProps = (to, from, except, desc) => { |
| if (from && typeof from === "object" || typeof from === "function") { |
| for (let key of __getOwnPropNames(from)) |
| if (!__hasOwnProp.call(to, key) && key !== except) |
| __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); |
| } |
| return to; |
| }; |
| var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( |
| |
| |
| |
| |
| isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, |
| mod |
| )); |
| var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); |
| var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg); |
| var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); |
| var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); |
| var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); |
| var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); |
|
|
| |
| var src_exports = {}; |
| __export(src_exports, { |
| APIKeys: () => APIKeys, |
| AuthenticateWithRedirectCallback: () => AuthenticateWithRedirectCallback, |
| ClerkDegraded: () => ClerkDegraded, |
| ClerkFailed: () => ClerkFailed, |
| ClerkLoaded: () => ClerkLoaded, |
| ClerkLoading: () => ClerkLoading, |
| ClerkProvider: () => ClerkProvider, |
| CreateOrganization: () => CreateOrganization, |
| GoogleOneTap: () => GoogleOneTap, |
| OrganizationList: () => OrganizationList, |
| OrganizationProfile: () => OrganizationProfile, |
| OrganizationSwitcher: () => OrganizationSwitcher, |
| PricingTable: () => PricingTable, |
| Protect: () => Protect, |
| RedirectToCreateOrganization: () => RedirectToCreateOrganization, |
| RedirectToOrganizationProfile: () => RedirectToOrganizationProfile, |
| RedirectToSignIn: () => RedirectToSignIn, |
| RedirectToSignUp: () => RedirectToSignUp, |
| RedirectToTasks: () => RedirectToTasks, |
| RedirectToUserProfile: () => RedirectToUserProfile, |
| SignIn: () => SignIn, |
| SignInButton: () => SignInButton, |
| SignInWithMetamaskButton: () => SignInWithMetamaskButton, |
| SignOutButton: () => SignOutButton, |
| SignUp: () => SignUp, |
| SignUpButton: () => SignUpButton, |
| SignedIn: () => SignedIn, |
| SignedOut: () => SignedOut, |
| TaskChooseOrganization: () => TaskChooseOrganization, |
| UserButton: () => UserButton, |
| UserProfile: () => UserProfile, |
| Waitlist: () => Waitlist, |
| __experimental_CheckoutProvider: () => import_react20.__experimental_CheckoutProvider, |
| __experimental_PaymentElement: () => import_react20.__experimental_PaymentElement, |
| __experimental_PaymentElementProvider: () => import_react20.__experimental_PaymentElementProvider, |
| __experimental_useCheckout: () => import_react20.__experimental_useCheckout, |
| __experimental_usePaymentElement: () => import_react20.__experimental_usePaymentElement, |
| useAuth: () => useAuth, |
| useClerk: () => import_react20.useClerk, |
| useEmailLink: () => useEmailLink, |
| useOrganization: () => import_react20.useOrganization, |
| useOrganizationList: () => import_react20.useOrganizationList, |
| useReverification: () => import_react20.useReverification, |
| useSession: () => import_react20.useSession, |
| useSessionList: () => import_react20.useSessionList, |
| useSignIn: () => useSignIn, |
| useSignUp: () => useSignUp, |
| useUser: () => import_react20.useUser |
| }); |
| module.exports = __toCommonJS(src_exports); |
|
|
| |
| if (typeof window !== "undefined" && !window.global) { |
| window.global = typeof global === "undefined" ? window : global; |
| } |
|
|
| |
| var import_loadClerkJsScript2 = require("@clerk/shared/loadClerkJsScript"); |
|
|
| |
| var import_error = require("@clerk/shared/error"); |
| var errorThrower = (0, import_error.buildErrorThrower)({ packageName: "@clerk/clerk-react" }); |
| function setErrorThrowerOptions(options) { |
| errorThrower.setMessages(options).setPackageName(options); |
| } |
|
|
| |
| var import_utils3 = require("@clerk/shared/utils"); |
| var import_react13 = __toESM(require("react")); |
|
|
| |
| var multipleClerkProvidersError = "You've added multiple <ClerkProvider> components in your React component tree. Wrap your components in a single <ClerkProvider>."; |
| var multipleChildrenInButtonComponent = (name) => `You've passed multiple children components to <${name}/>. You can only pass a single child component or text.`; |
| var invalidStateError = "Invalid state. Feel free to submit a bug or reach out to support here: https://clerk.com/support"; |
| var unsupportedNonBrowserDomainOrProxyUrlFunction = "Unsupported usage of isSatellite, domain or proxyUrl. The usage of isSatellite, domain or proxyUrl as function is not supported in non-browser environments."; |
| var userProfilePageRenderedError = "<UserProfile.Page /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`."; |
| var userProfileLinkRenderedError = "<UserProfile.Link /> component needs to be a direct child of `<UserProfile />` or `<UserButton />`."; |
| var organizationProfilePageRenderedError = "<OrganizationProfile.Page /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`."; |
| var organizationProfileLinkRenderedError = "<OrganizationProfile.Link /> component needs to be a direct child of `<OrganizationProfile />` or `<OrganizationSwitcher />`."; |
| var customPagesIgnoredComponent = (componentName) => `<${componentName} /> can only accept <${componentName}.Page /> and <${componentName}.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`; |
| var customPageWrongProps = (componentName) => `Missing props. <${componentName}.Page /> component requires the following props: url, label, labelIcon, alongside with children to be rendered inside the page.`; |
| var customLinkWrongProps = (componentName) => `Missing props. <${componentName}.Link /> component requires the following props: url, label and labelIcon.`; |
| var userButtonIgnoredComponent = `<UserButton /> can only accept <UserButton.UserProfilePage />, <UserButton.UserProfileLink /> and <UserButton.MenuItems /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component.`; |
| var customMenuItemsIgnoredComponent = "<UserButton.MenuItems /> component can only accept <UserButton.Action /> and <UserButton.Link /> as its children. Any other provided component will be ignored. Additionally, please ensure that the component is rendered in a client component."; |
| var userButtonMenuItemsRenderedError = "<UserButton.MenuItems /> component needs to be a direct child of `<UserButton />`."; |
| var userButtonMenuActionRenderedError = "<UserButton.Action /> component needs to be a direct child of `<UserButton.MenuItems />`."; |
| var userButtonMenuLinkRenderedError = "<UserButton.Link /> component needs to be a direct child of `<UserButton.MenuItems />`."; |
| var userButtonMenuItemLinkWrongProps = "Missing props. <UserButton.Link /> component requires the following props: href, label and labelIcon."; |
| var userButtonMenuItemsActionWrongsProps = "Missing props. <UserButton.Action /> component requires the following props: label."; |
|
|
| |
| var import_react = __toESM(require("react")); |
| var assertSingleChild = (children) => (name) => { |
| try { |
| return import_react.default.Children.only(children); |
| } catch { |
| return errorThrower.throw(multipleChildrenInButtonComponent(name)); |
| } |
| }; |
| var normalizeWithDefaultValue = (children, defaultText) => { |
| if (!children) { |
| children = defaultText; |
| } |
| if (typeof children === "string") { |
| children = import_react.default.createElement("button", null, children); |
| } |
| return children; |
| }; |
| var safeExecute = (cb) => (...args) => { |
| if (cb && typeof cb === "function") { |
| return cb(...args); |
| } |
| }; |
|
|
| |
| function isConstructor(f) { |
| return typeof f === "function"; |
| } |
|
|
| |
| var import_react2 = __toESM(require("react")); |
| var counts = new Map(); |
| function useMaxAllowedInstancesGuard(name, error, maxCount = 1) { |
| import_react2.default.useEffect(() => { |
| const count = counts.get(name) || 0; |
| if (count == maxCount) { |
| return errorThrower.throw(error); |
| } |
| counts.set(name, count + 1); |
| return () => { |
| counts.set(name, (counts.get(name) || 1) - 1); |
| }; |
| }, []); |
| } |
| function withMaxAllowedInstancesGuard(WrappedComponent, name, error) { |
| const displayName = WrappedComponent.displayName || WrappedComponent.name || name || "Component"; |
| const Hoc = (props) => { |
| useMaxAllowedInstancesGuard(name, error); |
| return import_react2.default.createElement(WrappedComponent, { ...props }); |
| }; |
| Hoc.displayName = `withMaxAllowedInstancesGuard(${displayName})`; |
| return Hoc; |
| } |
|
|
| |
| var import_react3 = require("react"); |
| var import_react_dom = require("react-dom"); |
| var useCustomElementPortal = (elements) => { |
| const [nodeMap, setNodeMap] = (0, import_react3.useState)( new Map()); |
| return elements.map((el) => ({ |
| id: el.id, |
| mount: (node) => setNodeMap((prev) => new Map(prev).set(String(el.id), node)), |
| unmount: () => setNodeMap((prev) => { |
| const newMap = new Map(prev); |
| newMap.set(String(el.id), null); |
| return newMap; |
| }), |
| portal: () => { |
| const node = nodeMap.get(String(el.id)); |
| return node ? (0, import_react_dom.createPortal)(el.component, node) : null; |
| } |
| })); |
| }; |
|
|
| |
| var import_utils = require("@clerk/shared/utils"); |
| var import_react5 = __toESM(require("react")); |
|
|
| |
| var import_react4 = __toESM(require("react")); |
| var isThatComponent = (v, component) => { |
| return !!v && import_react4.default.isValidElement(v) && (v == null ? void 0 : v.type) === component; |
| }; |
|
|
| |
| var useUserProfileCustomPages = (children, options) => { |
| const reorderItemsLabels = ["account", "security"]; |
| return useCustomPages( |
| { |
| children, |
| reorderItemsLabels, |
| LinkComponent: UserProfileLink, |
| PageComponent: UserProfilePage, |
| MenuItemsComponent: MenuItems, |
| componentName: "UserProfile" |
| }, |
| options |
| ); |
| }; |
| var useOrganizationProfileCustomPages = (children, options) => { |
| const reorderItemsLabels = ["general", "members"]; |
| return useCustomPages( |
| { |
| children, |
| reorderItemsLabels, |
| LinkComponent: OrganizationProfileLink, |
| PageComponent: OrganizationProfilePage, |
| componentName: "OrganizationProfile" |
| }, |
| options |
| ); |
| }; |
| var useSanitizedChildren = (children) => { |
| const sanitizedChildren = []; |
| const excludedComponents = [ |
| OrganizationProfileLink, |
| OrganizationProfilePage, |
| MenuItems, |
| UserProfilePage, |
| UserProfileLink |
| ]; |
| import_react5.default.Children.forEach(children, (child) => { |
| if (!excludedComponents.some((component) => isThatComponent(child, component))) { |
| sanitizedChildren.push(child); |
| } |
| }); |
| return sanitizedChildren; |
| }; |
| var useCustomPages = (params, options) => { |
| const { children, LinkComponent, PageComponent, MenuItemsComponent, reorderItemsLabels, componentName } = params; |
| const { allowForAnyChildren = false } = options || {}; |
| const validChildren = []; |
| import_react5.default.Children.forEach(children, (child) => { |
| if (!isThatComponent(child, PageComponent) && !isThatComponent(child, LinkComponent) && !isThatComponent(child, MenuItemsComponent)) { |
| if (child && !allowForAnyChildren) { |
| (0, import_utils.logErrorInDevMode)(customPagesIgnoredComponent(componentName)); |
| } |
| return; |
| } |
| const { props } = child; |
| const { children: children2, label, url, labelIcon } = props; |
| if (isThatComponent(child, PageComponent)) { |
| if (isReorderItem(props, reorderItemsLabels)) { |
| validChildren.push({ label }); |
| } else if (isCustomPage(props)) { |
| validChildren.push({ label, labelIcon, children: children2, url }); |
| } else { |
| (0, import_utils.logErrorInDevMode)(customPageWrongProps(componentName)); |
| return; |
| } |
| } |
| if (isThatComponent(child, LinkComponent)) { |
| if (isExternalLink(props)) { |
| validChildren.push({ label, labelIcon, url }); |
| } else { |
| (0, import_utils.logErrorInDevMode)(customLinkWrongProps(componentName)); |
| return; |
| } |
| } |
| }); |
| const customPageContents = []; |
| const customPageLabelIcons = []; |
| const customLinkLabelIcons = []; |
| validChildren.forEach((cp, index) => { |
| if (isCustomPage(cp)) { |
| customPageContents.push({ component: cp.children, id: index }); |
| customPageLabelIcons.push({ component: cp.labelIcon, id: index }); |
| return; |
| } |
| if (isExternalLink(cp)) { |
| customLinkLabelIcons.push({ component: cp.labelIcon, id: index }); |
| } |
| }); |
| const customPageContentsPortals = useCustomElementPortal(customPageContents); |
| const customPageLabelIconsPortals = useCustomElementPortal(customPageLabelIcons); |
| const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons); |
| const customPages = []; |
| const customPagesPortals = []; |
| validChildren.forEach((cp, index) => { |
| if (isReorderItem(cp, reorderItemsLabels)) { |
| customPages.push({ label: cp.label }); |
| return; |
| } |
| if (isCustomPage(cp)) { |
| const { |
| portal: contentPortal, |
| mount, |
| unmount |
| } = customPageContentsPortals.find((p) => p.id === index); |
| const { |
| portal: labelPortal, |
| mount: mountIcon, |
| unmount: unmountIcon |
| } = customPageLabelIconsPortals.find((p) => p.id === index); |
| customPages.push({ label: cp.label, url: cp.url, mount, unmount, mountIcon, unmountIcon }); |
| customPagesPortals.push(contentPortal); |
| customPagesPortals.push(labelPortal); |
| return; |
| } |
| if (isExternalLink(cp)) { |
| const { |
| portal: labelPortal, |
| mount: mountIcon, |
| unmount: unmountIcon |
| } = customLinkLabelIconsPortals.find((p) => p.id === index); |
| customPages.push({ label: cp.label, url: cp.url, mountIcon, unmountIcon }); |
| customPagesPortals.push(labelPortal); |
| return; |
| } |
| }); |
| return { customPages, customPagesPortals }; |
| }; |
| var isReorderItem = (childProps, validItems) => { |
| const { children, label, url, labelIcon } = childProps; |
| return !children && !url && !labelIcon && validItems.some((v) => v === label); |
| }; |
| var isCustomPage = (childProps) => { |
| const { children, label, url, labelIcon } = childProps; |
| return !!children && !!url && !!labelIcon && !!label; |
| }; |
| var isExternalLink = (childProps) => { |
| const { children, label, url, labelIcon } = childProps; |
| return !children && !!url && !!labelIcon && !!label; |
| }; |
|
|
| |
| var import_utils2 = require("@clerk/shared/utils"); |
| var import_react6 = __toESM(require("react")); |
| var useUserButtonCustomMenuItems = (children, options) => { |
| var _a; |
| const reorderItemsLabels = ["manageAccount", "signOut"]; |
| return useCustomMenuItems({ |
| children, |
| reorderItemsLabels, |
| MenuItemsComponent: MenuItems, |
| MenuActionComponent: MenuAction, |
| MenuLinkComponent: MenuLink, |
| UserProfileLinkComponent: UserProfileLink, |
| UserProfilePageComponent: UserProfilePage, |
| allowForAnyChildren: (_a = options == null ? void 0 : options.allowForAnyChildren) != null ? _a : false |
| }); |
| }; |
| var useCustomMenuItems = ({ |
| children, |
| MenuItemsComponent, |
| MenuActionComponent, |
| MenuLinkComponent, |
| UserProfileLinkComponent, |
| UserProfilePageComponent, |
| reorderItemsLabels, |
| allowForAnyChildren = false |
| }) => { |
| const validChildren = []; |
| const customMenuItems = []; |
| const customMenuItemsPortals = []; |
| import_react6.default.Children.forEach(children, (child) => { |
| if (!isThatComponent(child, MenuItemsComponent) && !isThatComponent(child, UserProfileLinkComponent) && !isThatComponent(child, UserProfilePageComponent)) { |
| if (child && !allowForAnyChildren) { |
| (0, import_utils2.logErrorInDevMode)(userButtonIgnoredComponent); |
| } |
| return; |
| } |
| if (isThatComponent(child, UserProfileLinkComponent) || isThatComponent(child, UserProfilePageComponent)) { |
| return; |
| } |
| const { props } = child; |
| import_react6.default.Children.forEach(props.children, (child2) => { |
| if (!isThatComponent(child2, MenuActionComponent) && !isThatComponent(child2, MenuLinkComponent)) { |
| if (child2) { |
| (0, import_utils2.logErrorInDevMode)(customMenuItemsIgnoredComponent); |
| } |
| return; |
| } |
| const { props: props2 } = child2; |
| const { label, labelIcon, href, onClick, open } = props2; |
| if (isThatComponent(child2, MenuActionComponent)) { |
| if (isReorderItem2(props2, reorderItemsLabels)) { |
| validChildren.push({ label }); |
| } else if (isCustomMenuItem(props2)) { |
| const baseItem = { |
| label, |
| labelIcon |
| }; |
| if (onClick !== void 0) { |
| validChildren.push({ |
| ...baseItem, |
| onClick |
| }); |
| } else if (open !== void 0) { |
| validChildren.push({ |
| ...baseItem, |
| open: open.startsWith("/") ? open : `/${open}` |
| }); |
| } else { |
| (0, import_utils2.logErrorInDevMode)("Custom menu item must have either onClick or open property"); |
| return; |
| } |
| } else { |
| (0, import_utils2.logErrorInDevMode)(userButtonMenuItemsActionWrongsProps); |
| return; |
| } |
| } |
| if (isThatComponent(child2, MenuLinkComponent)) { |
| if (isExternalLink2(props2)) { |
| validChildren.push({ label, labelIcon, href }); |
| } else { |
| (0, import_utils2.logErrorInDevMode)(userButtonMenuItemLinkWrongProps); |
| return; |
| } |
| } |
| }); |
| }); |
| const customMenuItemLabelIcons = []; |
| const customLinkLabelIcons = []; |
| validChildren.forEach((mi, index) => { |
| if (isCustomMenuItem(mi)) { |
| customMenuItemLabelIcons.push({ component: mi.labelIcon, id: index }); |
| } |
| if (isExternalLink2(mi)) { |
| customLinkLabelIcons.push({ component: mi.labelIcon, id: index }); |
| } |
| }); |
| const customMenuItemLabelIconsPortals = useCustomElementPortal(customMenuItemLabelIcons); |
| const customLinkLabelIconsPortals = useCustomElementPortal(customLinkLabelIcons); |
| validChildren.forEach((mi, index) => { |
| if (isReorderItem2(mi, reorderItemsLabels)) { |
| customMenuItems.push({ |
| label: mi.label |
| }); |
| } |
| if (isCustomMenuItem(mi)) { |
| const { |
| portal: iconPortal, |
| mount: mountIcon, |
| unmount: unmountIcon |
| } = customMenuItemLabelIconsPortals.find((p) => p.id === index); |
| const menuItem = { |
| label: mi.label, |
| mountIcon, |
| unmountIcon |
| }; |
| if ("onClick" in mi) { |
| menuItem.onClick = mi.onClick; |
| } else if ("open" in mi) { |
| menuItem.open = mi.open; |
| } |
| customMenuItems.push(menuItem); |
| customMenuItemsPortals.push(iconPortal); |
| } |
| if (isExternalLink2(mi)) { |
| const { |
| portal: iconPortal, |
| mount: mountIcon, |
| unmount: unmountIcon |
| } = customLinkLabelIconsPortals.find((p) => p.id === index); |
| customMenuItems.push({ |
| label: mi.label, |
| href: mi.href, |
| mountIcon, |
| unmountIcon |
| }); |
| customMenuItemsPortals.push(iconPortal); |
| } |
| }); |
| return { customMenuItems, customMenuItemsPortals }; |
| }; |
| var isReorderItem2 = (childProps, validItems) => { |
| const { children, label, onClick, labelIcon } = childProps; |
| return !children && !onClick && !labelIcon && validItems.some((v) => v === label); |
| }; |
| var isCustomMenuItem = (childProps) => { |
| const { label, labelIcon, onClick, open } = childProps; |
| return !!labelIcon && !!label && (typeof onClick === "function" || typeof open === "string"); |
| }; |
| var isExternalLink2 = (childProps) => { |
| const { label, href, labelIcon } = childProps; |
| return !!href && !!labelIcon && !!label; |
| }; |
|
|
| |
| var import_react7 = require("react"); |
| var createAwaitableMutationObserver = (globalOptions) => { |
| const isReady = globalOptions == null ? void 0 : globalOptions.isReady; |
| return (options) => new Promise((resolve, reject) => { |
| const { root = document == null ? void 0 : document.body, selector, timeout = 0 } = options; |
| if (!root) { |
| reject(new Error("No root element provided")); |
| return; |
| } |
| let elementToWatch = root; |
| if (selector) { |
| elementToWatch = root == null ? void 0 : root.querySelector(selector); |
| } |
| if (isReady(elementToWatch, selector)) { |
| resolve(); |
| return; |
| } |
| const observer = new MutationObserver((mutationsList) => { |
| for (const mutation of mutationsList) { |
| if (!elementToWatch && selector) { |
| elementToWatch = root == null ? void 0 : root.querySelector(selector); |
| } |
| if (globalOptions.childList && mutation.type === "childList" || globalOptions.attributes && mutation.type === "attributes") { |
| if (isReady(elementToWatch, selector)) { |
| observer.disconnect(); |
| resolve(); |
| return; |
| } |
| } |
| } |
| }); |
| observer.observe(root, globalOptions); |
| if (timeout > 0) { |
| setTimeout(() => { |
| observer.disconnect(); |
| reject(new Error(`Timeout waiting for ${selector}`)); |
| }, timeout); |
| } |
| }); |
| }; |
| var waitForElementChildren = createAwaitableMutationObserver({ |
| childList: true, |
| subtree: true, |
| isReady: (el, selector) => { |
| var _a; |
| return !!(el == null ? void 0 : el.childElementCount) && ((_a = el == null ? void 0 : el.matches) == null ? void 0 : _a.call(el, selector)) && el.childElementCount > 0; |
| } |
| }); |
| function useWaitForComponentMount(component, options) { |
| const watcherRef = (0, import_react7.useRef)(); |
| const [status, setStatus] = (0, import_react7.useState)("rendering"); |
| (0, import_react7.useEffect)(() => { |
| if (!component) { |
| throw new Error("Clerk: no component name provided, unable to detect mount."); |
| } |
| if (typeof window !== "undefined" && !watcherRef.current) { |
| const defaultSelector = `[data-clerk-component="${component}"]`; |
| const selector = options == null ? void 0 : options.selector; |
| watcherRef.current = waitForElementChildren({ |
| selector: selector ? ( |
| |
| defaultSelector + selector |
| ) : defaultSelector |
| }).then(() => { |
| setStatus("rendered"); |
| }).catch(() => { |
| setStatus("error"); |
| }); |
| } |
| }, [component, options == null ? void 0 : options.selector]); |
| return status; |
| } |
|
|
| |
| var import_object = require("@clerk/shared/object"); |
| var import_react8 = require("@clerk/shared/react"); |
| var import_react9 = __toESM(require("react")); |
| var isMountProps = (props) => { |
| return "mount" in props; |
| }; |
| var isOpenProps = (props) => { |
| return "open" in props; |
| }; |
| var stripMenuItemIconHandlers = (menuItems) => { |
| return menuItems == null ? void 0 : menuItems.map(({ mountIcon, unmountIcon, ...rest }) => rest); |
| }; |
| var ClerkHostRenderer = class extends import_react9.default.PureComponent { |
| constructor() { |
| super(...arguments); |
| this.rootRef = import_react9.default.createRef(); |
| } |
| componentDidUpdate(_prevProps) { |
| var _a, _b, _c, _d; |
| if (!isMountProps(_prevProps) || !isMountProps(this.props)) { |
| return; |
| } |
| const prevProps = (0, import_object.without)(_prevProps.props, "customPages", "customMenuItems", "children"); |
| const newProps = (0, import_object.without)(this.props.props, "customPages", "customMenuItems", "children"); |
| const customPagesChanged = ((_a = prevProps.customPages) == null ? void 0 : _a.length) !== ((_b = newProps.customPages) == null ? void 0 : _b.length); |
| const customMenuItemsChanged = ((_c = prevProps.customMenuItems) == null ? void 0 : _c.length) !== ((_d = newProps.customMenuItems) == null ? void 0 : _d.length); |
| const prevMenuItemsWithoutHandlers = stripMenuItemIconHandlers(_prevProps.props.customMenuItems); |
| const newMenuItemsWithoutHandlers = stripMenuItemIconHandlers(this.props.props.customMenuItems); |
| if (!(0, import_react8.isDeeplyEqual)(prevProps, newProps) || !(0, import_react8.isDeeplyEqual)(prevMenuItemsWithoutHandlers, newMenuItemsWithoutHandlers) || customPagesChanged || customMenuItemsChanged) { |
| if (this.rootRef.current) { |
| this.props.updateProps({ node: this.rootRef.current, props: this.props.props }); |
| } |
| } |
| } |
| componentDidMount() { |
| if (this.rootRef.current) { |
| if (isMountProps(this.props)) { |
| this.props.mount(this.rootRef.current, this.props.props); |
| } |
| if (isOpenProps(this.props)) { |
| this.props.open(this.props.props); |
| } |
| } |
| } |
| componentWillUnmount() { |
| if (this.rootRef.current) { |
| if (isMountProps(this.props)) { |
| this.props.unmount(this.rootRef.current); |
| } |
| if (isOpenProps(this.props)) { |
| this.props.close(); |
| } |
| } |
| } |
| render() { |
| const { hideRootHtmlElement = false } = this.props; |
| const rootAttributes = { |
| ref: this.rootRef, |
| ...this.props.rootProps, |
| ...this.props.component && { "data-clerk-component": this.props.component } |
| }; |
| return import_react9.default.createElement(import_react9.default.Fragment, null, !hideRootHtmlElement && import_react9.default.createElement("div", { ...rootAttributes }), this.props.children); |
| } |
| }; |
|
|
| |
| var import_react12 = __toESM(require("react")); |
|
|
| |
| var import_react10 = require("@clerk/shared/react"); |
| var IsomorphicClerkContext = import_react10.ClerkInstanceContext; |
| var useIsomorphicClerkContext = import_react10.useClerkInstanceContext; |
|
|
| |
| var import_react11 = require("@clerk/shared/react"); |
| var useAssertWrappedByClerkProvider = (source) => { |
| (0, import_react11.useAssertWrappedByClerkProvider)(() => { |
| errorThrower.throwMissingClerkProviderError({ source }); |
| }); |
| }; |
|
|
| |
| var withClerk = (Component, displayNameOrOptions) => { |
| const passedDisplayedName = typeof displayNameOrOptions === "string" ? displayNameOrOptions : displayNameOrOptions == null ? void 0 : displayNameOrOptions.component; |
| const displayName = passedDisplayedName || Component.displayName || Component.name || "Component"; |
| Component.displayName = displayName; |
| const options = typeof displayNameOrOptions === "string" ? void 0 : displayNameOrOptions; |
| const HOC = (props) => { |
| useAssertWrappedByClerkProvider(displayName || "withClerk"); |
| const clerk = useIsomorphicClerkContext(); |
| if (!clerk.loaded && !(options == null ? void 0 : options.renderWhileLoading)) { |
| return null; |
| } |
| return import_react12.default.createElement( |
| Component, |
| { |
| ...props, |
| component: displayName, |
| clerk |
| } |
| ); |
| }; |
| HOC.displayName = `withClerk(${displayName})`; |
| return HOC; |
| }; |
|
|
| |
| var CustomPortalsRenderer = (props) => { |
| var _a, _b; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, (_a = props == null ? void 0 : props.customPagesPortals) == null ? void 0 : _a.map((portal, index) => (0, import_react13.createElement)(portal, { key: index })), (_b = props == null ? void 0 : props.customMenuItemsPortals) == null ? void 0 : _b.map((portal, index) => (0, import_react13.createElement)(portal, { key: index }))); |
| }; |
| var SignIn = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountSignIn, |
| unmount: clerk.unmountSignIn, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "SignIn", renderWhileLoading: true } |
| ); |
| var SignUp = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountSignUp, |
| unmount: clerk.unmountSignUp, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "SignUp", renderWhileLoading: true } |
| ); |
| function UserProfilePage({ children }) { |
| (0, import_utils3.logErrorInDevMode)(userProfilePageRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| function UserProfileLink({ children }) { |
| (0, import_utils3.logErrorInDevMode)(userProfileLinkRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| var _UserProfile = withClerk( |
| ({ |
| clerk, |
| component, |
| fallback, |
| ...props |
| }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountUserProfile, |
| unmount: clerk.unmountUserProfile, |
| updateProps: clerk.__unstable__updateProps, |
| props: { ...props, customPages }, |
| rootProps: rendererRootProps |
| }, |
| import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals }) |
| )); |
| }, |
| { component: "UserProfile", renderWhileLoading: true } |
| ); |
| var UserProfile = Object.assign(_UserProfile, { |
| Page: UserProfilePage, |
| Link: UserProfileLink |
| }); |
| var UserButtonContext = (0, import_react13.createContext)({ |
| mount: () => { |
| }, |
| unmount: () => { |
| }, |
| updateProps: () => { |
| } |
| }); |
| var _UserButton = withClerk( |
| ({ |
| clerk, |
| component, |
| fallback, |
| ...props |
| }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| const { customPages, customPagesPortals } = useUserProfileCustomPages(props.children, { |
| allowForAnyChildren: !!props.__experimental_asProvider |
| }); |
| const userProfileProps = Object.assign(props.userProfileProps || {}, { customPages }); |
| const { customMenuItems, customMenuItemsPortals } = useUserButtonCustomMenuItems(props.children, { |
| allowForAnyChildren: !!props.__experimental_asProvider |
| }); |
| const sanitizedChildren = useSanitizedChildren(props.children); |
| const passableProps = { |
| mount: clerk.mountUserButton, |
| unmount: clerk.unmountUserButton, |
| updateProps: clerk.__unstable__updateProps, |
| props: { ...props, userProfileProps, customMenuItems } |
| }; |
| const portalProps = { |
| customPagesPortals, |
| customMenuItemsPortals |
| }; |
| return import_react13.default.createElement(UserButtonContext.Provider, { value: passableProps }, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| ...passableProps, |
| hideRootHtmlElement: !!props.__experimental_asProvider, |
| rootProps: rendererRootProps |
| }, |
| props.__experimental_asProvider ? sanitizedChildren : null, |
| import_react13.default.createElement(CustomPortalsRenderer, { ...portalProps }) |
| )); |
| }, |
| { component: "UserButton", renderWhileLoading: true } |
| ); |
| function MenuItems({ children }) { |
| (0, import_utils3.logErrorInDevMode)(userButtonMenuItemsRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| function MenuAction({ children }) { |
| (0, import_utils3.logErrorInDevMode)(userButtonMenuActionRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| function MenuLink({ children }) { |
| (0, import_utils3.logErrorInDevMode)(userButtonMenuLinkRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| function UserButtonOutlet(outletProps) { |
| const providerProps = (0, import_react13.useContext)(UserButtonContext); |
| const portalProps = { |
| ...providerProps, |
| props: { |
| ...providerProps.props, |
| ...outletProps |
| } |
| }; |
| return import_react13.default.createElement(ClerkHostRenderer, { ...portalProps }); |
| } |
| var UserButton = Object.assign(_UserButton, { |
| UserProfilePage, |
| UserProfileLink, |
| MenuItems, |
| Action: MenuAction, |
| Link: MenuLink, |
| __experimental_Outlet: UserButtonOutlet |
| }); |
| function OrganizationProfilePage({ children }) { |
| (0, import_utils3.logErrorInDevMode)(organizationProfilePageRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| function OrganizationProfileLink({ children }) { |
| (0, import_utils3.logErrorInDevMode)(organizationProfileLinkRenderedError); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, children); |
| } |
| var _OrganizationProfile = withClerk( |
| ({ |
| clerk, |
| component, |
| fallback, |
| ...props |
| }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children); |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountOrganizationProfile, |
| unmount: clerk.unmountOrganizationProfile, |
| updateProps: clerk.__unstable__updateProps, |
| props: { ...props, customPages }, |
| rootProps: rendererRootProps |
| }, |
| import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals }) |
| )); |
| }, |
| { component: "OrganizationProfile", renderWhileLoading: true } |
| ); |
| var OrganizationProfile = Object.assign(_OrganizationProfile, { |
| Page: OrganizationProfilePage, |
| Link: OrganizationProfileLink |
| }); |
| var CreateOrganization = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountCreateOrganization, |
| unmount: clerk.unmountCreateOrganization, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "CreateOrganization", renderWhileLoading: true } |
| ); |
| var OrganizationSwitcherContext = (0, import_react13.createContext)({ |
| mount: () => { |
| }, |
| unmount: () => { |
| }, |
| updateProps: () => { |
| } |
| }); |
| var _OrganizationSwitcher = withClerk( |
| ({ |
| clerk, |
| component, |
| fallback, |
| ...props |
| }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| const { customPages, customPagesPortals } = useOrganizationProfileCustomPages(props.children, { |
| allowForAnyChildren: !!props.__experimental_asProvider |
| }); |
| const organizationProfileProps = Object.assign(props.organizationProfileProps || {}, { customPages }); |
| const sanitizedChildren = useSanitizedChildren(props.children); |
| const passableProps = { |
| mount: clerk.mountOrganizationSwitcher, |
| unmount: clerk.unmountOrganizationSwitcher, |
| updateProps: clerk.__unstable__updateProps, |
| props: { ...props, organizationProfileProps }, |
| rootProps: rendererRootProps, |
| component |
| }; |
| clerk.__experimental_prefetchOrganizationSwitcher(); |
| return import_react13.default.createElement(OrganizationSwitcherContext.Provider, { value: passableProps }, import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| ...passableProps, |
| hideRootHtmlElement: !!props.__experimental_asProvider |
| }, |
| props.__experimental_asProvider ? sanitizedChildren : null, |
| import_react13.default.createElement(CustomPortalsRenderer, { customPagesPortals }) |
| ))); |
| }, |
| { component: "OrganizationSwitcher", renderWhileLoading: true } |
| ); |
| function OrganizationSwitcherOutlet(outletProps) { |
| const providerProps = (0, import_react13.useContext)(OrganizationSwitcherContext); |
| const portalProps = { |
| ...providerProps, |
| props: { |
| ...providerProps.props, |
| ...outletProps |
| } |
| }; |
| return import_react13.default.createElement(ClerkHostRenderer, { ...portalProps }); |
| } |
| var OrganizationSwitcher = Object.assign(_OrganizationSwitcher, { |
| OrganizationProfilePage, |
| OrganizationProfileLink, |
| __experimental_Outlet: OrganizationSwitcherOutlet |
| }); |
| var OrganizationList = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountOrganizationList, |
| unmount: clerk.unmountOrganizationList, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "OrganizationList", renderWhileLoading: true } |
| ); |
| var GoogleOneTap = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| open: clerk.openGoogleOneTap, |
| close: clerk.closeGoogleOneTap, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "GoogleOneTap", renderWhileLoading: true } |
| ); |
| var Waitlist = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountWaitlist, |
| unmount: clerk.unmountWaitlist, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "Waitlist", renderWhileLoading: true } |
| ); |
| var PricingTable = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component, { |
| |
| selector: '[data-component-status="ready"]' |
| }); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountPricingTable, |
| unmount: clerk.unmountPricingTable, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "PricingTable", renderWhileLoading: true } |
| ); |
| var APIKeys = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountApiKeys, |
| unmount: clerk.unmountApiKeys, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "ApiKeys", renderWhileLoading: true } |
| ); |
| var TaskChooseOrganization = withClerk( |
| ({ clerk, component, fallback, ...props }) => { |
| const mountingStatus = useWaitForComponentMount(component); |
| const shouldShowFallback = mountingStatus === "rendering" || !clerk.loaded; |
| const rendererRootProps = { |
| ...shouldShowFallback && fallback && { style: { display: "none" } } |
| }; |
| return import_react13.default.createElement(import_react13.default.Fragment, null, shouldShowFallback && fallback, clerk.loaded && import_react13.default.createElement( |
| ClerkHostRenderer, |
| { |
| component, |
| mount: clerk.mountTaskChooseOrganization, |
| unmount: clerk.unmountTaskChooseOrganization, |
| updateProps: clerk.__unstable__updateProps, |
| props, |
| rootProps: rendererRootProps |
| } |
| )); |
| }, |
| { component: "TaskChooseOrganization", renderWhileLoading: true } |
| ); |
|
|
| |
| var import_deprecated = require("@clerk/shared/deprecated"); |
| var import_react21 = __toESM(require("react")); |
|
|
| |
| var import_react14 = require("@clerk/shared/react"); |
|
|
| |
| var import_authorization = require("@clerk/shared/authorization"); |
| var import_telemetry = require("@clerk/shared/telemetry"); |
| var import_react16 = require("react"); |
|
|
| |
| var import_react15 = require("@clerk/shared/react"); |
| var [AuthContext, useAuthContext] = (0, import_react15.createContextAndHook)("AuthContext"); |
|
|
| |
| var clerkLoaded = (isomorphicClerk) => { |
| return new Promise((resolve) => { |
| const handler = (status) => { |
| if (["ready", "degraded"].includes(status)) { |
| resolve(); |
| isomorphicClerk.off("status", handler); |
| } |
| }; |
| isomorphicClerk.on("status", handler, { notify: true }); |
| }); |
| }; |
| var createGetToken = (isomorphicClerk) => { |
| return async (options) => { |
| await clerkLoaded(isomorphicClerk); |
| if (!isomorphicClerk.session) { |
| return null; |
| } |
| return isomorphicClerk.session.getToken(options); |
| }; |
| }; |
| var createSignOut = (isomorphicClerk) => { |
| return async (...args) => { |
| await clerkLoaded(isomorphicClerk); |
| return isomorphicClerk.signOut(...args); |
| }; |
| }; |
|
|
| |
| var useAuth = (initialAuthStateOrOptions = {}) => { |
| var _a; |
| useAssertWrappedByClerkProvider("useAuth"); |
| const { treatPendingAsSignedOut, ...rest } = initialAuthStateOrOptions != null ? initialAuthStateOrOptions : {}; |
| const initialAuthState = rest; |
| const authContextFromHook = useAuthContext(); |
| let authContext = authContextFromHook; |
| if (authContext.sessionId === void 0 && authContext.userId === void 0) { |
| authContext = initialAuthState != null ? initialAuthState : {}; |
| } |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| const getToken = (0, import_react16.useCallback)(createGetToken(isomorphicClerk), [isomorphicClerk]); |
| const signOut = (0, import_react16.useCallback)(createSignOut(isomorphicClerk), [isomorphicClerk]); |
| (_a = isomorphicClerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry.eventMethodCalled)("useAuth", { treatPendingAsSignedOut })); |
| return useDerivedAuth( |
| { |
| ...authContext, |
| getToken, |
| signOut |
| }, |
| { |
| treatPendingAsSignedOut |
| } |
| ); |
| }; |
| function useDerivedAuth(authObject, { treatPendingAsSignedOut = true } = {}) { |
| const { userId, orgId, orgRole, has, signOut, getToken, orgPermissions, factorVerificationAge, sessionClaims } = authObject != null ? authObject : {}; |
| const derivedHas = (0, import_react16.useCallback)( |
| (params) => { |
| if (has) { |
| return has(params); |
| } |
| return (0, import_authorization.createCheckAuthorization)({ |
| userId, |
| orgId, |
| orgRole, |
| orgPermissions, |
| factorVerificationAge, |
| features: (sessionClaims == null ? void 0 : sessionClaims.fea) || "", |
| plans: (sessionClaims == null ? void 0 : sessionClaims.pla) || "" |
| })(params); |
| }, |
| [has, userId, orgId, orgRole, orgPermissions, factorVerificationAge] |
| ); |
| const payload = (0, import_authorization.resolveAuthState)({ |
| authObject: { |
| ...authObject, |
| getToken, |
| signOut, |
| has: derivedHas |
| }, |
| options: { |
| treatPendingAsSignedOut |
| } |
| }); |
| if (!payload) { |
| return errorThrower.throw(invalidStateError); |
| } |
| return payload; |
| } |
|
|
| |
| var import_react17 = __toESM(require("react")); |
| function useEmailLink(resource) { |
| const { startEmailLinkFlow, cancelEmailLinkFlow } = import_react17.default.useMemo(() => resource.createEmailLinkFlow(), [resource]); |
| import_react17.default.useEffect(() => { |
| return cancelEmailLinkFlow; |
| }, []); |
| return { |
| startEmailLinkFlow, |
| cancelEmailLinkFlow |
| }; |
| } |
|
|
| |
| var import_react18 = require("@clerk/shared/react"); |
| var import_telemetry2 = require("@clerk/shared/telemetry"); |
| var useSignIn = () => { |
| var _a; |
| useAssertWrappedByClerkProvider("useSignIn"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| const client = (0, import_react18.useClientContext)(); |
| (_a = isomorphicClerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry2.eventMethodCalled)("useSignIn")); |
| if (!client) { |
| return { isLoaded: false, signIn: void 0, setActive: void 0 }; |
| } |
| return { |
| isLoaded: true, |
| signIn: client.signIn, |
| setActive: isomorphicClerk.setActive |
| }; |
| }; |
|
|
| |
| var import_react19 = require("@clerk/shared/react"); |
| var import_telemetry3 = require("@clerk/shared/telemetry"); |
| var useSignUp = () => { |
| var _a; |
| useAssertWrappedByClerkProvider("useSignUp"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| const client = (0, import_react19.useClientContext)(); |
| (_a = isomorphicClerk.telemetry) == null ? void 0 : _a.record((0, import_telemetry3.eventMethodCalled)("useSignUp")); |
| if (!client) { |
| return { isLoaded: false, signUp: void 0, setActive: void 0 }; |
| } |
| return { |
| isLoaded: true, |
| signUp: client.signUp, |
| setActive: isomorphicClerk.setActive |
| }; |
| }; |
|
|
| |
| var import_react20 = require("@clerk/shared/react"); |
|
|
| |
| var SignedIn = ({ children, treatPendingAsSignedOut }) => { |
| useAssertWrappedByClerkProvider("SignedIn"); |
| const { userId } = useAuth({ treatPendingAsSignedOut }); |
| if (userId) { |
| return children; |
| } |
| return null; |
| }; |
| var SignedOut = ({ children, treatPendingAsSignedOut }) => { |
| useAssertWrappedByClerkProvider("SignedOut"); |
| const { userId } = useAuth({ treatPendingAsSignedOut }); |
| if (userId === null) { |
| return children; |
| } |
| return null; |
| }; |
| var ClerkLoaded = ({ children }) => { |
| useAssertWrappedByClerkProvider("ClerkLoaded"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| if (!isomorphicClerk.loaded) { |
| return null; |
| } |
| return children; |
| }; |
| var ClerkLoading = ({ children }) => { |
| useAssertWrappedByClerkProvider("ClerkLoading"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| if (isomorphicClerk.status !== "loading") { |
| return null; |
| } |
| return children; |
| }; |
| var ClerkFailed = ({ children }) => { |
| useAssertWrappedByClerkProvider("ClerkFailed"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| if (isomorphicClerk.status !== "error") { |
| return null; |
| } |
| return children; |
| }; |
| var ClerkDegraded = ({ children }) => { |
| useAssertWrappedByClerkProvider("ClerkDegraded"); |
| const isomorphicClerk = useIsomorphicClerkContext(); |
| if (isomorphicClerk.status !== "degraded") { |
| return null; |
| } |
| return children; |
| }; |
| var Protect = ({ children, fallback, treatPendingAsSignedOut, ...restAuthorizedParams }) => { |
| useAssertWrappedByClerkProvider("Protect"); |
| const { isLoaded, has, userId } = useAuth({ treatPendingAsSignedOut }); |
| if (!isLoaded) { |
| return null; |
| } |
| const unauthorized = fallback != null ? fallback : null; |
| const authorized = children; |
| if (!userId) { |
| return unauthorized; |
| } |
| if (typeof restAuthorizedParams.condition === "function") { |
| if (restAuthorizedParams.condition(has)) { |
| return authorized; |
| } |
| return unauthorized; |
| } |
| if (restAuthorizedParams.role || restAuthorizedParams.permission || restAuthorizedParams.feature || restAuthorizedParams.plan) { |
| if (has(restAuthorizedParams)) { |
| return authorized; |
| } |
| return unauthorized; |
| } |
| return authorized; |
| }; |
| var RedirectToSignIn = withClerk(({ clerk, ...props }) => { |
| const { client, session } = clerk; |
| const hasSignedInSessions = client.signedInSessions ? client.signedInSessions.length > 0 : ( |
| |
| client.activeSessions && client.activeSessions.length > 0 |
| ); |
| import_react21.default.useEffect(() => { |
| if (session === null && hasSignedInSessions) { |
| void clerk.redirectToAfterSignOut(); |
| } else { |
| void clerk.redirectToSignIn(props); |
| } |
| }, []); |
| return null; |
| }, "RedirectToSignIn"); |
| var RedirectToSignUp = withClerk(({ clerk, ...props }) => { |
| import_react21.default.useEffect(() => { |
| void clerk.redirectToSignUp(props); |
| }, []); |
| return null; |
| }, "RedirectToSignUp"); |
| var RedirectToTasks = withClerk(({ clerk, ...props }) => { |
| import_react21.default.useEffect(() => { |
| void clerk.redirectToTasks(props); |
| }, []); |
| return null; |
| }, "RedirectToTasks"); |
| var RedirectToUserProfile = withClerk(({ clerk }) => { |
| import_react21.default.useEffect(() => { |
| (0, import_deprecated.deprecated)("RedirectToUserProfile", "Use the `redirectToUserProfile()` method instead."); |
| void clerk.redirectToUserProfile(); |
| }, []); |
| return null; |
| }, "RedirectToUserProfile"); |
| var RedirectToOrganizationProfile = withClerk(({ clerk }) => { |
| import_react21.default.useEffect(() => { |
| (0, import_deprecated.deprecated)("RedirectToOrganizationProfile", "Use the `redirectToOrganizationProfile()` method instead."); |
| void clerk.redirectToOrganizationProfile(); |
| }, []); |
| return null; |
| }, "RedirectToOrganizationProfile"); |
| var RedirectToCreateOrganization = withClerk(({ clerk }) => { |
| import_react21.default.useEffect(() => { |
| (0, import_deprecated.deprecated)("RedirectToCreateOrganization", "Use the `redirectToCreateOrganization()` method instead."); |
| void clerk.redirectToCreateOrganization(); |
| }, []); |
| return null; |
| }, "RedirectToCreateOrganization"); |
| var AuthenticateWithRedirectCallback = withClerk( |
| ({ clerk, ...handleRedirectCallbackParams }) => { |
| import_react21.default.useEffect(() => { |
| void clerk.handleRedirectCallback(handleRedirectCallbackParams); |
| }, []); |
| return null; |
| }, |
| "AuthenticateWithRedirectCallback" |
| ); |
|
|
| |
| var import_react22 = __toESM(require("react")); |
| var SignInButton = withClerk( |
| ({ clerk, children, ...props }) => { |
| const { |
| signUpFallbackRedirectUrl, |
| forceRedirectUrl, |
| fallbackRedirectUrl, |
| signUpForceRedirectUrl, |
| mode, |
| initialValues, |
| withSignUp, |
| oauthFlow, |
| ...rest |
| } = props; |
| children = normalizeWithDefaultValue(children, "Sign in"); |
| const child = assertSingleChild(children)("SignInButton"); |
| const clickHandler = () => { |
| const opts = { |
| forceRedirectUrl, |
| fallbackRedirectUrl, |
| signUpFallbackRedirectUrl, |
| signUpForceRedirectUrl, |
| initialValues, |
| withSignUp, |
| oauthFlow |
| }; |
| if (mode === "modal") { |
| return clerk.openSignIn({ ...opts, appearance: props.appearance }); |
| } |
| return clerk.redirectToSignIn({ |
| ...opts, |
| signInFallbackRedirectUrl: fallbackRedirectUrl, |
| signInForceRedirectUrl: forceRedirectUrl |
| }); |
| }; |
| const wrappedChildClickHandler = async (e) => { |
| if (child && typeof child === "object" && "props" in child) { |
| await safeExecute(child.props.onClick)(e); |
| } |
| return clickHandler(); |
| }; |
| const childProps = { ...rest, onClick: wrappedChildClickHandler }; |
| return import_react22.default.cloneElement(child, childProps); |
| }, |
| { component: "SignInButton", renderWhileLoading: true } |
| ); |
|
|
| |
| var import_react23 = __toESM(require("react")); |
| var SignInWithMetamaskButton = withClerk( |
| ({ clerk, children, ...props }) => { |
| const { redirectUrl, ...rest } = props; |
| children = normalizeWithDefaultValue(children, "Sign in with Metamask"); |
| const child = assertSingleChild(children)("SignInWithMetamaskButton"); |
| const clickHandler = async () => { |
| async function authenticate() { |
| await clerk.authenticateWithMetamask({ redirectUrl: redirectUrl || void 0 }); |
| } |
| void authenticate(); |
| }; |
| const wrappedChildClickHandler = async (e) => { |
| await safeExecute(child.props.onClick)(e); |
| return clickHandler(); |
| }; |
| const childProps = { ...rest, onClick: wrappedChildClickHandler }; |
| return import_react23.default.cloneElement(child, childProps); |
| }, |
| { component: "SignInWithMetamask", renderWhileLoading: true } |
| ); |
|
|
| |
| var import_react24 = __toESM(require("react")); |
| var SignOutButton = withClerk( |
| ({ clerk, children, ...props }) => { |
| const { redirectUrl = "/", signOutOptions, ...rest } = props; |
| children = normalizeWithDefaultValue(children, "Sign out"); |
| const child = assertSingleChild(children)("SignOutButton"); |
| const clickHandler = () => clerk.signOut({ redirectUrl, ...signOutOptions }); |
| const wrappedChildClickHandler = async (e) => { |
| await safeExecute(child.props.onClick)(e); |
| return clickHandler(); |
| }; |
| const childProps = { ...rest, onClick: wrappedChildClickHandler }; |
| return import_react24.default.cloneElement(child, childProps); |
| }, |
| { component: "SignOutButton", renderWhileLoading: true } |
| ); |
|
|
| |
| var import_react25 = __toESM(require("react")); |
| var SignUpButton = withClerk( |
| ({ clerk, children, ...props }) => { |
| const { |
| fallbackRedirectUrl, |
| forceRedirectUrl, |
| signInFallbackRedirectUrl, |
| signInForceRedirectUrl, |
| mode, |
| initialValues, |
| oauthFlow, |
| ...rest |
| } = props; |
| children = normalizeWithDefaultValue(children, "Sign up"); |
| const child = assertSingleChild(children)("SignUpButton"); |
| const clickHandler = () => { |
| const opts = { |
| fallbackRedirectUrl, |
| forceRedirectUrl, |
| signInFallbackRedirectUrl, |
| signInForceRedirectUrl, |
| initialValues, |
| oauthFlow |
| }; |
| if (mode === "modal") { |
| return clerk.openSignUp({ |
| ...opts, |
| appearance: props.appearance, |
| unsafeMetadata: props.unsafeMetadata |
| }); |
| } |
| return clerk.redirectToSignUp({ |
| ...opts, |
| signUpFallbackRedirectUrl: fallbackRedirectUrl, |
| signUpForceRedirectUrl: forceRedirectUrl |
| }); |
| }; |
| const wrappedChildClickHandler = async (e) => { |
| if (child && typeof child === "object" && "props" in child) { |
| await safeExecute(child.props.onClick)(e); |
| } |
| return clickHandler(); |
| }; |
| const childProps = { ...rest, onClick: wrappedChildClickHandler }; |
| return import_react25.default.cloneElement(child, childProps); |
| }, |
| { component: "SignUpButton", renderWhileLoading: true } |
| ); |
|
|
| |
| var import_keys = require("@clerk/shared/keys"); |
| var import_react28 = __toESM(require("react")); |
|
|
| |
| var import_deriveState = require("@clerk/shared/deriveState"); |
| var import_react26 = require("@clerk/shared/react"); |
| var import_react27 = __toESM(require("react")); |
|
|
| |
| var import_browser2 = require("@clerk/shared/browser"); |
| var import_clerkEventBus = require("@clerk/shared/clerkEventBus"); |
| var import_loadClerkJsScript = require("@clerk/shared/loadClerkJsScript"); |
| var import_utils10 = require("@clerk/shared/utils"); |
|
|
| |
| var import_browser = require("@clerk/shared/browser"); |
| var defaultErrors = () => ({ |
| fields: { |
| firstName: null, |
| lastName: null, |
| emailAddress: null, |
| identifier: null, |
| phoneNumber: null, |
| password: null, |
| username: null, |
| code: null, |
| captcha: null, |
| legalAccepted: null |
| }, |
| raw: null, |
| global: null |
| }); |
| var StateProxy = class { |
| constructor(isomorphicClerk) { |
| this.isomorphicClerk = isomorphicClerk; |
| this.signInSignalProxy = this.buildSignInProxy(); |
| this.signUpSignalProxy = this.buildSignUpProxy(); |
| } |
| signInSignal() { |
| return this.signInSignalProxy; |
| } |
| signUpSignal() { |
| return this.signUpSignalProxy; |
| } |
| buildSignInProxy() { |
| const target = () => this.client.signIn.__internal_future; |
| return { |
| errors: defaultErrors(), |
| fetchStatus: "idle", |
| signIn: { |
| status: "needs_identifier", |
| availableStrategies: [], |
| isTransferable: false, |
| create: this.gateMethod(target, "create"), |
| password: this.gateMethod(target, "password"), |
| sso: this.gateMethod(target, "sso"), |
| finalize: this.gateMethod(target, "finalize"), |
| emailCode: this.wrapMethods(() => target().emailCode, ["sendCode", "verifyCode"]), |
| resetPasswordEmailCode: this.wrapMethods(() => target().resetPasswordEmailCode, [ |
| "sendCode", |
| "verifyCode", |
| "submitPassword" |
| ]), |
| phoneCode: this.wrapMethods(() => target().phoneCode, ["sendCode", "verifyCode"]), |
| mfa: this.wrapMethods(() => target().mfa, [ |
| "sendPhoneCode", |
| "verifyPhoneCode", |
| "verifyTOTP", |
| "verifyBackupCode" |
| ]) |
| } |
| }; |
| } |
| buildSignUpProxy() { |
| const gateProperty = this.gateProperty.bind(this); |
| const gateMethod = this.gateMethod.bind(this); |
| const wrapMethods = this.wrapMethods.bind(this); |
| const target = () => this.client.signUp.__internal_future; |
| return { |
| errors: defaultErrors(), |
| fetchStatus: "idle", |
| signUp: { |
| get status() { |
| return gateProperty(target, "status", "missing_requirements"); |
| }, |
| get unverifiedFields() { |
| return gateProperty(target, "unverifiedFields", []); |
| }, |
| get isTransferable() { |
| return gateProperty(target, "isTransferable", false); |
| }, |
| create: gateMethod(target, "create"), |
| update: gateMethod(target, "update"), |
| sso: gateMethod(target, "sso"), |
| password: gateMethod(target, "password"), |
| finalize: gateMethod(target, "finalize"), |
| verifications: wrapMethods(() => target().verifications, [ |
| "sendEmailCode", |
| "verifyEmailCode", |
| "sendPhoneCode", |
| "verifyPhoneCode" |
| ]) |
| } |
| }; |
| } |
| __internal_effect(_) { |
| throw new Error("__internal_effect called before Clerk is loaded"); |
| } |
| __internal_computed(_) { |
| throw new Error("__internal_computed called before Clerk is loaded"); |
| } |
| get client() { |
| const c = this.isomorphicClerk.client; |
| if (!c) { |
| throw new Error("Clerk client not ready"); |
| } |
| return c; |
| } |
| gateProperty(getTarget, key, defaultValue) { |
| return (() => { |
| if (!(0, import_browser.inBrowser)() || !this.isomorphicClerk.loaded) { |
| return defaultValue; |
| } |
| const t = getTarget(); |
| return t[key]; |
| })(); |
| } |
| gateMethod(getTarget, key) { |
| return async (...args) => { |
| if (!(0, import_browser.inBrowser)()) { |
| return errorThrower.throw(`Attempted to call a method (${key}) that is not supported on the server.`); |
| } |
| if (!this.isomorphicClerk.loaded) { |
| await new Promise((resolve) => this.isomorphicClerk.addOnLoaded(resolve)); |
| } |
| const t = getTarget(); |
| return t[key].apply(t, args); |
| }; |
| } |
| wrapMethods(getTarget, keys) { |
| return Object.fromEntries(keys.map((k) => [k, this.gateMethod(getTarget, k)])); |
| } |
| }; |
|
|
| |
| if (typeof globalThis.__BUILD_DISABLE_RHC__ === "undefined") { |
| globalThis.__BUILD_DISABLE_RHC__ = false; |
| } |
| var SDK_METADATA = { |
| name: "@clerk/clerk-react", |
| version: "5.47.0", |
| environment: process.env.NODE_ENV |
| }; |
| var _status, _domain, _proxyUrl, _publishableKey, _eventBus, _stateProxy, _instance, _IsomorphicClerk_instances, waitForClerkJS_fn; |
| var _IsomorphicClerk = class _IsomorphicClerk { |
| constructor(options) { |
| __privateAdd(this, _IsomorphicClerk_instances); |
| this.clerkjs = null; |
| this.preopenOneTap = null; |
| this.preopenUserVerification = null; |
| this.preopenSignIn = null; |
| this.preopenCheckout = null; |
| this.preopenPlanDetails = null; |
| this.preopenSubscriptionDetails = null; |
| this.preopenSignUp = null; |
| this.preopenUserProfile = null; |
| this.preopenOrganizationProfile = null; |
| this.preopenCreateOrganization = null; |
| this.preOpenWaitlist = null; |
| this.premountSignInNodes = new Map(); |
| this.premountSignUpNodes = new Map(); |
| this.premountUserProfileNodes = new Map(); |
| this.premountUserButtonNodes = new Map(); |
| this.premountOrganizationProfileNodes = new Map(); |
| this.premountCreateOrganizationNodes = new Map(); |
| this.premountOrganizationSwitcherNodes = new Map(); |
| this.premountOrganizationListNodes = new Map(); |
| this.premountMethodCalls = new Map(); |
| this.premountWaitlistNodes = new Map(); |
| this.premountPricingTableNodes = new Map(); |
| this.premountApiKeysNodes = new Map(); |
| this.premountOAuthConsentNodes = new Map(); |
| this.premountTaskChooseOrganizationNodes = new Map(); |
| |
| this.premountAddListenerCalls = new Map(); |
| this.loadedListeners = []; |
| __privateAdd(this, _status, "loading"); |
| __privateAdd(this, _domain); |
| __privateAdd(this, _proxyUrl); |
| __privateAdd(this, _publishableKey); |
| __privateAdd(this, _eventBus, (0, import_clerkEventBus.createClerkEventBus)()); |
| __privateAdd(this, _stateProxy); |
| this.buildSignInUrl = (opts) => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildSignInUrl(opts)) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildSignInUrl", callback); |
| } |
| }; |
| this.buildSignUpUrl = (opts) => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildSignUpUrl(opts)) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildSignUpUrl", callback); |
| } |
| }; |
| this.buildAfterSignInUrl = (...args) => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildAfterSignInUrl(...args)) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildAfterSignInUrl", callback); |
| } |
| }; |
| this.buildAfterSignUpUrl = (...args) => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildAfterSignUpUrl(...args)) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildAfterSignUpUrl", callback); |
| } |
| }; |
| this.buildAfterSignOutUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildAfterSignOutUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildAfterSignOutUrl", callback); |
| } |
| }; |
| this.buildNewSubscriptionRedirectUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildNewSubscriptionRedirectUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildNewSubscriptionRedirectUrl", callback); |
| } |
| }; |
| this.buildAfterMultiSessionSingleSignOutUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildAfterMultiSessionSingleSignOutUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildAfterMultiSessionSingleSignOutUrl", callback); |
| } |
| }; |
| this.buildUserProfileUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildUserProfileUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildUserProfileUrl", callback); |
| } |
| }; |
| this.buildCreateOrganizationUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildCreateOrganizationUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildCreateOrganizationUrl", callback); |
| } |
| }; |
| this.buildOrganizationProfileUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildOrganizationProfileUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildOrganizationProfileUrl", callback); |
| } |
| }; |
| this.buildWaitlistUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildWaitlistUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildWaitlistUrl", callback); |
| } |
| }; |
| this.buildTasksUrl = () => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildTasksUrl()) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildTasksUrl", callback); |
| } |
| }; |
| this.buildUrlWithAuth = (to) => { |
| const callback = () => { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.buildUrlWithAuth(to)) || ""; |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("buildUrlWithAuth", callback); |
| } |
| }; |
| this.handleUnauthenticated = async () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.handleUnauthenticated(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| void callback(); |
| } else { |
| this.premountMethodCalls.set("handleUnauthenticated", callback); |
| } |
| }; |
| this.on = (...args) => { |
| var _a; |
| if ((_a = this.clerkjs) == null ? void 0 : _a.on) { |
| return this.clerkjs.on(...args); |
| } else { |
| __privateGet(this, _eventBus).on(...args); |
| } |
| }; |
| this.off = (...args) => { |
| var _a; |
| if ((_a = this.clerkjs) == null ? void 0 : _a.off) { |
| return this.clerkjs.off(...args); |
| } else { |
| __privateGet(this, _eventBus).off(...args); |
| } |
| }; |
| |
| |
| |
| this.addOnLoaded = (cb) => { |
| this.loadedListeners.push(cb); |
| if (this.loaded) { |
| this.emitLoaded(); |
| } |
| }; |
| |
| |
| |
| this.emitLoaded = () => { |
| this.loadedListeners.forEach((cb) => cb()); |
| this.loadedListeners = []; |
| }; |
| this.beforeLoad = (clerkjs) => { |
| if (!clerkjs) { |
| throw new Error("Failed to hydrate latest Clerk JS"); |
| } |
| }; |
| this.hydrateClerkJS = (clerkjs) => { |
| var _a; |
| if (!clerkjs) { |
| throw new Error("Failed to hydrate latest Clerk JS"); |
| } |
| this.clerkjs = clerkjs; |
| this.premountMethodCalls.forEach((cb) => cb()); |
| this.premountAddListenerCalls.forEach((listenerHandlers, listener) => { |
| listenerHandlers.nativeUnsubscribe = clerkjs.addListener(listener); |
| }); |
| (_a = __privateGet(this, _eventBus).internal.retrieveListeners("status")) == null ? void 0 : _a.forEach((listener) => { |
| this.on("status", listener, { notify: true }); |
| }); |
| if (this.preopenSignIn !== null) { |
| clerkjs.openSignIn(this.preopenSignIn); |
| } |
| if (this.preopenCheckout !== null) { |
| clerkjs.__internal_openCheckout(this.preopenCheckout); |
| } |
| if (this.preopenPlanDetails !== null) { |
| clerkjs.__internal_openPlanDetails(this.preopenPlanDetails); |
| } |
| if (this.preopenSubscriptionDetails !== null) { |
| clerkjs.__internal_openSubscriptionDetails(this.preopenSubscriptionDetails); |
| } |
| if (this.preopenSignUp !== null) { |
| clerkjs.openSignUp(this.preopenSignUp); |
| } |
| if (this.preopenUserProfile !== null) { |
| clerkjs.openUserProfile(this.preopenUserProfile); |
| } |
| if (this.preopenUserVerification !== null) { |
| clerkjs.__internal_openReverification(this.preopenUserVerification); |
| } |
| if (this.preopenOneTap !== null) { |
| clerkjs.openGoogleOneTap(this.preopenOneTap); |
| } |
| if (this.preopenOrganizationProfile !== null) { |
| clerkjs.openOrganizationProfile(this.preopenOrganizationProfile); |
| } |
| if (this.preopenCreateOrganization !== null) { |
| clerkjs.openCreateOrganization(this.preopenCreateOrganization); |
| } |
| if (this.preOpenWaitlist !== null) { |
| clerkjs.openWaitlist(this.preOpenWaitlist); |
| } |
| this.premountSignInNodes.forEach((props, node) => { |
| clerkjs.mountSignIn(node, props); |
| }); |
| this.premountSignUpNodes.forEach((props, node) => { |
| clerkjs.mountSignUp(node, props); |
| }); |
| this.premountUserProfileNodes.forEach((props, node) => { |
| clerkjs.mountUserProfile(node, props); |
| }); |
| this.premountUserButtonNodes.forEach((props, node) => { |
| clerkjs.mountUserButton(node, props); |
| }); |
| this.premountOrganizationListNodes.forEach((props, node) => { |
| clerkjs.mountOrganizationList(node, props); |
| }); |
| this.premountWaitlistNodes.forEach((props, node) => { |
| clerkjs.mountWaitlist(node, props); |
| }); |
| this.premountPricingTableNodes.forEach((props, node) => { |
| clerkjs.mountPricingTable(node, props); |
| }); |
| this.premountApiKeysNodes.forEach((props, node) => { |
| clerkjs.mountApiKeys(node, props); |
| }); |
| this.premountOAuthConsentNodes.forEach((props, node) => { |
| clerkjs.__internal_mountOAuthConsent(node, props); |
| }); |
| this.premountTaskChooseOrganizationNodes.forEach((props, node) => { |
| clerkjs.mountTaskChooseOrganization(node, props); |
| }); |
| if (typeof this.clerkjs.status === "undefined") { |
| __privateGet(this, _eventBus).emit(import_clerkEventBus.clerkEvents.Status, "ready"); |
| } |
| this.emitLoaded(); |
| return this.clerkjs; |
| }; |
| this.__experimental_checkout = (...args) => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.__experimental_checkout(...args); |
| }; |
| this.__unstable__updateProps = async (props) => { |
| const clerkjs = await __privateMethod(this, _IsomorphicClerk_instances, waitForClerkJS_fn).call(this); |
| if (clerkjs && "__unstable__updateProps" in clerkjs) { |
| return clerkjs.__unstable__updateProps(props); |
| } |
| }; |
| |
| |
| |
| this.setActive = (params) => { |
| if (this.clerkjs) { |
| return this.clerkjs.setActive(params); |
| } else { |
| return Promise.reject(); |
| } |
| }; |
| this.openSignIn = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openSignIn(props); |
| } else { |
| this.preopenSignIn = props; |
| } |
| }; |
| this.closeSignIn = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeSignIn(); |
| } else { |
| this.preopenSignIn = null; |
| } |
| }; |
| this.__internal_openCheckout = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_openCheckout(props); |
| } else { |
| this.preopenCheckout = props; |
| } |
| }; |
| this.__internal_closeCheckout = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_closeCheckout(); |
| } else { |
| this.preopenCheckout = null; |
| } |
| }; |
| this.__internal_openPlanDetails = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_openPlanDetails(props); |
| } else { |
| this.preopenPlanDetails = props; |
| } |
| }; |
| this.__internal_closePlanDetails = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_closePlanDetails(); |
| } else { |
| this.preopenPlanDetails = null; |
| } |
| }; |
| this.__internal_openSubscriptionDetails = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_openSubscriptionDetails(props); |
| } else { |
| this.preopenSubscriptionDetails = props != null ? props : null; |
| } |
| }; |
| this.__internal_closeSubscriptionDetails = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_closeSubscriptionDetails(); |
| } else { |
| this.preopenSubscriptionDetails = null; |
| } |
| }; |
| this.__internal_openReverification = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_openReverification(props); |
| } else { |
| this.preopenUserVerification = props; |
| } |
| }; |
| this.__internal_closeReverification = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_closeReverification(); |
| } else { |
| this.preopenUserVerification = null; |
| } |
| }; |
| this.openGoogleOneTap = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openGoogleOneTap(props); |
| } else { |
| this.preopenOneTap = props; |
| } |
| }; |
| this.closeGoogleOneTap = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeGoogleOneTap(); |
| } else { |
| this.preopenOneTap = null; |
| } |
| }; |
| this.openUserProfile = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openUserProfile(props); |
| } else { |
| this.preopenUserProfile = props; |
| } |
| }; |
| this.closeUserProfile = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeUserProfile(); |
| } else { |
| this.preopenUserProfile = null; |
| } |
| }; |
| this.openOrganizationProfile = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openOrganizationProfile(props); |
| } else { |
| this.preopenOrganizationProfile = props; |
| } |
| }; |
| this.closeOrganizationProfile = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeOrganizationProfile(); |
| } else { |
| this.preopenOrganizationProfile = null; |
| } |
| }; |
| this.openCreateOrganization = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openCreateOrganization(props); |
| } else { |
| this.preopenCreateOrganization = props; |
| } |
| }; |
| this.closeCreateOrganization = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeCreateOrganization(); |
| } else { |
| this.preopenCreateOrganization = null; |
| } |
| }; |
| this.openWaitlist = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openWaitlist(props); |
| } else { |
| this.preOpenWaitlist = props; |
| } |
| }; |
| this.closeWaitlist = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeWaitlist(); |
| } else { |
| this.preOpenWaitlist = null; |
| } |
| }; |
| this.openSignUp = (props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.openSignUp(props); |
| } else { |
| this.preopenSignUp = props; |
| } |
| }; |
| this.closeSignUp = () => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.closeSignUp(); |
| } else { |
| this.preopenSignUp = null; |
| } |
| }; |
| this.mountSignIn = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountSignIn(node, props); |
| } else { |
| this.premountSignInNodes.set(node, props); |
| } |
| }; |
| this.unmountSignIn = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountSignIn(node); |
| } else { |
| this.premountSignInNodes.delete(node); |
| } |
| }; |
| this.mountSignUp = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountSignUp(node, props); |
| } else { |
| this.premountSignUpNodes.set(node, props); |
| } |
| }; |
| this.unmountSignUp = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountSignUp(node); |
| } else { |
| this.premountSignUpNodes.delete(node); |
| } |
| }; |
| this.mountUserProfile = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountUserProfile(node, props); |
| } else { |
| this.premountUserProfileNodes.set(node, props); |
| } |
| }; |
| this.unmountUserProfile = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountUserProfile(node); |
| } else { |
| this.premountUserProfileNodes.delete(node); |
| } |
| }; |
| this.mountOrganizationProfile = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountOrganizationProfile(node, props); |
| } else { |
| this.premountOrganizationProfileNodes.set(node, props); |
| } |
| }; |
| this.unmountOrganizationProfile = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountOrganizationProfile(node); |
| } else { |
| this.premountOrganizationProfileNodes.delete(node); |
| } |
| }; |
| this.mountCreateOrganization = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountCreateOrganization(node, props); |
| } else { |
| this.premountCreateOrganizationNodes.set(node, props); |
| } |
| }; |
| this.unmountCreateOrganization = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountCreateOrganization(node); |
| } else { |
| this.premountCreateOrganizationNodes.delete(node); |
| } |
| }; |
| this.mountOrganizationSwitcher = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountOrganizationSwitcher(node, props); |
| } else { |
| this.premountOrganizationSwitcherNodes.set(node, props); |
| } |
| }; |
| this.unmountOrganizationSwitcher = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountOrganizationSwitcher(node); |
| } else { |
| this.premountOrganizationSwitcherNodes.delete(node); |
| } |
| }; |
| this.__experimental_prefetchOrganizationSwitcher = () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.__experimental_prefetchOrganizationSwitcher(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| void callback(); |
| } else { |
| this.premountMethodCalls.set("__experimental_prefetchOrganizationSwitcher", callback); |
| } |
| }; |
| this.mountOrganizationList = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountOrganizationList(node, props); |
| } else { |
| this.premountOrganizationListNodes.set(node, props); |
| } |
| }; |
| this.unmountOrganizationList = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountOrganizationList(node); |
| } else { |
| this.premountOrganizationListNodes.delete(node); |
| } |
| }; |
| this.mountUserButton = (node, userButtonProps) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountUserButton(node, userButtonProps); |
| } else { |
| this.premountUserButtonNodes.set(node, userButtonProps); |
| } |
| }; |
| this.unmountUserButton = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountUserButton(node); |
| } else { |
| this.premountUserButtonNodes.delete(node); |
| } |
| }; |
| this.mountWaitlist = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountWaitlist(node, props); |
| } else { |
| this.premountWaitlistNodes.set(node, props); |
| } |
| }; |
| this.unmountWaitlist = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountWaitlist(node); |
| } else { |
| this.premountWaitlistNodes.delete(node); |
| } |
| }; |
| this.mountPricingTable = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountPricingTable(node, props); |
| } else { |
| this.premountPricingTableNodes.set(node, props); |
| } |
| }; |
| this.unmountPricingTable = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountPricingTable(node); |
| } else { |
| this.premountPricingTableNodes.delete(node); |
| } |
| }; |
| this.mountApiKeys = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountApiKeys(node, props); |
| } else { |
| this.premountApiKeysNodes.set(node, props); |
| } |
| }; |
| this.unmountApiKeys = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountApiKeys(node); |
| } else { |
| this.premountApiKeysNodes.delete(node); |
| } |
| }; |
| this.__internal_mountOAuthConsent = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_mountOAuthConsent(node, props); |
| } else { |
| this.premountOAuthConsentNodes.set(node, props); |
| } |
| }; |
| this.__internal_unmountOAuthConsent = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.__internal_unmountOAuthConsent(node); |
| } else { |
| this.premountOAuthConsentNodes.delete(node); |
| } |
| }; |
| this.mountTaskChooseOrganization = (node, props) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.mountTaskChooseOrganization(node, props); |
| } else { |
| this.premountTaskChooseOrganizationNodes.set(node, props); |
| } |
| }; |
| this.unmountTaskChooseOrganization = (node) => { |
| if (this.clerkjs && this.loaded) { |
| this.clerkjs.unmountTaskChooseOrganization(node); |
| } else { |
| this.premountTaskChooseOrganizationNodes.delete(node); |
| } |
| }; |
| this.addListener = (listener) => { |
| if (this.clerkjs) { |
| return this.clerkjs.addListener(listener); |
| } else { |
| const unsubscribe = () => { |
| var _a; |
| const listenerHandlers = this.premountAddListenerCalls.get(listener); |
| if (listenerHandlers) { |
| (_a = listenerHandlers.nativeUnsubscribe) == null ? void 0 : _a.call(listenerHandlers); |
| this.premountAddListenerCalls.delete(listener); |
| } |
| }; |
| this.premountAddListenerCalls.set(listener, { unsubscribe, nativeUnsubscribe: void 0 }); |
| return unsubscribe; |
| } |
| }; |
| this.navigate = (to) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.navigate(to); |
| }; |
| if (this.clerkjs && this.loaded) { |
| void callback(); |
| } else { |
| this.premountMethodCalls.set("navigate", callback); |
| } |
| }; |
| this.redirectWithAuth = async (...args) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectWithAuth(...args); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectWithAuth", callback); |
| return; |
| } |
| }; |
| this.redirectToSignIn = async (opts) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToSignIn(opts); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToSignIn", callback); |
| return; |
| } |
| }; |
| this.redirectToSignUp = async (opts) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToSignUp(opts); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToSignUp", callback); |
| return; |
| } |
| }; |
| this.redirectToUserProfile = async () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToUserProfile(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToUserProfile", callback); |
| return; |
| } |
| }; |
| this.redirectToAfterSignUp = () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToAfterSignUp(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToAfterSignUp", callback); |
| } |
| }; |
| this.redirectToAfterSignIn = () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToAfterSignIn(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToAfterSignIn", callback); |
| } |
| }; |
| this.redirectToAfterSignOut = () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToAfterSignOut(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToAfterSignOut", callback); |
| } |
| }; |
| this.redirectToOrganizationProfile = async () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToOrganizationProfile(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToOrganizationProfile", callback); |
| return; |
| } |
| }; |
| this.redirectToCreateOrganization = async () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToCreateOrganization(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToCreateOrganization", callback); |
| return; |
| } |
| }; |
| this.redirectToWaitlist = async () => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToWaitlist(); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToWaitlist", callback); |
| return; |
| } |
| }; |
| this.redirectToTasks = async (opts) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.redirectToTasks(opts); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("redirectToTasks", callback); |
| return; |
| } |
| }; |
| this.handleRedirectCallback = async (params) => { |
| var _a; |
| const callback = () => { |
| var _a2; |
| return (_a2 = this.clerkjs) == null ? void 0 : _a2.handleRedirectCallback(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| void ((_a = callback()) == null ? void 0 : _a.catch(() => { |
| })); |
| } else { |
| this.premountMethodCalls.set("handleRedirectCallback", callback); |
| } |
| }; |
| this.handleGoogleOneTapCallback = async (signInOrUp, params) => { |
| var _a; |
| const callback = () => { |
| var _a2; |
| return (_a2 = this.clerkjs) == null ? void 0 : _a2.handleGoogleOneTapCallback(signInOrUp, params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| void ((_a = callback()) == null ? void 0 : _a.catch(() => { |
| })); |
| } else { |
| this.premountMethodCalls.set("handleGoogleOneTapCallback", callback); |
| } |
| }; |
| this.handleEmailLinkVerification = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.handleEmailLinkVerification(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("handleEmailLinkVerification", callback); |
| } |
| }; |
| this.authenticateWithMetamask = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.authenticateWithMetamask(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("authenticateWithMetamask", callback); |
| } |
| }; |
| this.authenticateWithCoinbaseWallet = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.authenticateWithCoinbaseWallet(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("authenticateWithCoinbaseWallet", callback); |
| } |
| }; |
| this.authenticateWithBase = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.authenticateWithBase(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("authenticateWithBase", callback); |
| } |
| }; |
| this.authenticateWithOKXWallet = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.authenticateWithOKXWallet(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("authenticateWithOKXWallet", callback); |
| } |
| }; |
| this.authenticateWithWeb3 = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.authenticateWithWeb3(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("authenticateWithWeb3", callback); |
| } |
| }; |
| this.authenticateWithGoogleOneTap = async (params) => { |
| const clerkjs = await __privateMethod(this, _IsomorphicClerk_instances, waitForClerkJS_fn).call(this); |
| return clerkjs.authenticateWithGoogleOneTap(params); |
| }; |
| this.__internal_loadStripeJs = async () => { |
| const clerkjs = await __privateMethod(this, _IsomorphicClerk_instances, waitForClerkJS_fn).call(this); |
| return clerkjs.__internal_loadStripeJs(); |
| }; |
| this.createOrganization = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.createOrganization(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("createOrganization", callback); |
| } |
| }; |
| this.getOrganization = async (organizationId) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.getOrganization(organizationId); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("getOrganization", callback); |
| } |
| }; |
| this.joinWaitlist = async (params) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.joinWaitlist(params); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("joinWaitlist", callback); |
| } |
| }; |
| this.signOut = async (...args) => { |
| const callback = () => { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.signOut(...args); |
| }; |
| if (this.clerkjs && this.loaded) { |
| return callback(); |
| } else { |
| this.premountMethodCalls.set("signOut", callback); |
| } |
| }; |
| const { Clerk = null, publishableKey } = options || {}; |
| __privateSet(this, _publishableKey, publishableKey); |
| __privateSet(this, _proxyUrl, options == null ? void 0 : options.proxyUrl); |
| __privateSet(this, _domain, options == null ? void 0 : options.domain); |
| this.options = options; |
| this.Clerk = Clerk; |
| this.mode = (0, import_browser2.inBrowser)() ? "browser" : "server"; |
| __privateSet(this, _stateProxy, new StateProxy(this)); |
| if (!this.options.sdkMetadata) { |
| this.options.sdkMetadata = SDK_METADATA; |
| } |
| __privateGet(this, _eventBus).emit(import_clerkEventBus.clerkEvents.Status, "loading"); |
| __privateGet(this, _eventBus).prioritizedOn(import_clerkEventBus.clerkEvents.Status, (status) => __privateSet(this, _status, status)); |
| if (__privateGet(this, _publishableKey)) { |
| void this.loadClerkJS(); |
| } |
| } |
| get publishableKey() { |
| return __privateGet(this, _publishableKey); |
| } |
| get loaded() { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.loaded) || false; |
| } |
| get status() { |
| var _a; |
| if (!this.clerkjs) { |
| return __privateGet(this, _status); |
| } |
| return ((_a = this.clerkjs) == null ? void 0 : _a.status) || |
| |
| |
| |
| |
| |
| (this.clerkjs.loaded ? "ready" : "loading"); |
| } |
| static getOrCreateInstance(options) { |
| if (!(0, import_browser2.inBrowser)() || !__privateGet(this, _instance) || options.Clerk && __privateGet(this, _instance).Clerk !== options.Clerk || |
| __privateGet(this, _instance).publishableKey !== options.publishableKey) { |
| __privateSet(this, _instance, new _IsomorphicClerk(options)); |
| } |
| return __privateGet(this, _instance); |
| } |
| static clearInstance() { |
| __privateSet(this, _instance, null); |
| } |
| get domain() { |
| if (typeof window !== "undefined" && window.location) { |
| return (0, import_utils10.handleValueOrFn)(__privateGet(this, _domain), new URL(window.location.href), ""); |
| } |
| if (typeof __privateGet(this, _domain) === "function") { |
| return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction); |
| } |
| return __privateGet(this, _domain) || ""; |
| } |
| get proxyUrl() { |
| if (typeof window !== "undefined" && window.location) { |
| return (0, import_utils10.handleValueOrFn)(__privateGet(this, _proxyUrl), new URL(window.location.href), ""); |
| } |
| if (typeof __privateGet(this, _proxyUrl) === "function") { |
| return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction); |
| } |
| return __privateGet(this, _proxyUrl) || ""; |
| } |
| |
| |
| |
| |
| |
| __internal_getOption(key) { |
| var _a, _b; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.__internal_getOption) ? (_b = this.clerkjs) == null ? void 0 : _b.__internal_getOption(key) : this.options[key]; |
| } |
| get sdkMetadata() { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.sdkMetadata) || this.options.sdkMetadata || void 0; |
| } |
| get instanceType() { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.instanceType; |
| } |
| get frontendApi() { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.frontendApi) || ""; |
| } |
| get isStandardBrowser() { |
| var _a; |
| return ((_a = this.clerkjs) == null ? void 0 : _a.isStandardBrowser) || this.options.standardBrowser || false; |
| } |
| get isSatellite() { |
| if (typeof window !== "undefined" && window.location) { |
| return (0, import_utils10.handleValueOrFn)(this.options.isSatellite, new URL(window.location.href), false); |
| } |
| if (typeof this.options.isSatellite === "function") { |
| return errorThrower.throw(unsupportedNonBrowserDomainOrProxyUrlFunction); |
| } |
| return false; |
| } |
| async loadClerkJS() { |
| var _a; |
| if (this.mode !== "browser" || this.loaded) { |
| return; |
| } |
| if (typeof window !== "undefined") { |
| window.__clerk_publishable_key = __privateGet(this, _publishableKey); |
| window.__clerk_proxy_url = this.proxyUrl; |
| window.__clerk_domain = this.domain; |
| } |
| try { |
| if (this.Clerk) { |
| let c; |
| if (isConstructor(this.Clerk)) { |
| c = new this.Clerk(__privateGet(this, _publishableKey), { |
| proxyUrl: this.proxyUrl, |
| domain: this.domain |
| }); |
| this.beforeLoad(c); |
| await c.load(this.options); |
| } else { |
| c = this.Clerk; |
| if (!c.loaded) { |
| this.beforeLoad(c); |
| await c.load(this.options); |
| } |
| } |
| global.Clerk = c; |
| } else if (!__BUILD_DISABLE_RHC__) { |
| if (!global.Clerk) { |
| await (0, import_loadClerkJsScript.loadClerkJsScript)({ |
| ...this.options, |
| publishableKey: __privateGet(this, _publishableKey), |
| proxyUrl: this.proxyUrl, |
| domain: this.domain, |
| nonce: this.options.nonce |
| }); |
| } |
| if (!global.Clerk) { |
| throw new Error("Failed to download latest ClerkJS. Contact support@clerk.com."); |
| } |
| this.beforeLoad(global.Clerk); |
| await global.Clerk.load(this.options); |
| } |
| if ((_a = global.Clerk) == null ? void 0 : _a.loaded) { |
| return this.hydrateClerkJS(global.Clerk); |
| } |
| return; |
| } catch (err) { |
| const error = err; |
| __privateGet(this, _eventBus).emit(import_clerkEventBus.clerkEvents.Status, "error"); |
| console.error(error.stack || error.message || error); |
| return; |
| } |
| } |
| get version() { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.version; |
| } |
| get client() { |
| if (this.clerkjs) { |
| return this.clerkjs.client; |
| } else { |
| return void 0; |
| } |
| } |
| get session() { |
| if (this.clerkjs) { |
| return this.clerkjs.session; |
| } else { |
| return void 0; |
| } |
| } |
| get user() { |
| if (this.clerkjs) { |
| return this.clerkjs.user; |
| } else { |
| return void 0; |
| } |
| } |
| get organization() { |
| if (this.clerkjs) { |
| return this.clerkjs.organization; |
| } else { |
| return void 0; |
| } |
| } |
| get telemetry() { |
| if (this.clerkjs) { |
| return this.clerkjs.telemetry; |
| } else { |
| return void 0; |
| } |
| } |
| get __unstable__environment() { |
| if (this.clerkjs) { |
| return this.clerkjs.__unstable__environment; |
| } else { |
| return void 0; |
| } |
| } |
| get isSignedIn() { |
| if (this.clerkjs) { |
| return this.clerkjs.isSignedIn; |
| } else { |
| return false; |
| } |
| } |
| get billing() { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.billing; |
| } |
| get __internal_state() { |
| return this.loaded && this.clerkjs ? this.clerkjs.__internal_state : __privateGet(this, _stateProxy); |
| } |
| get apiKeys() { |
| var _a; |
| return (_a = this.clerkjs) == null ? void 0 : _a.apiKeys; |
| } |
| __unstable__setEnvironment(...args) { |
| if (this.clerkjs && "__unstable__setEnvironment" in this.clerkjs) { |
| this.clerkjs.__unstable__setEnvironment(args); |
| } else { |
| return void 0; |
| } |
| } |
| }; |
| _status = new WeakMap(); |
| _domain = new WeakMap(); |
| _proxyUrl = new WeakMap(); |
| _publishableKey = new WeakMap(); |
| _eventBus = new WeakMap(); |
| _stateProxy = new WeakMap(); |
| _instance = new WeakMap(); |
| _IsomorphicClerk_instances = new WeakSet(); |
| waitForClerkJS_fn = function() { |
| return new Promise((resolve) => { |
| this.addOnLoaded(() => resolve(this.clerkjs)); |
| }); |
| }; |
| __privateAdd(_IsomorphicClerk, _instance); |
| var IsomorphicClerk = _IsomorphicClerk; |
|
|
| |
| function ClerkContextProvider(props) { |
| const { isomorphicClerkOptions, initialState, children } = props; |
| const { isomorphicClerk: clerk, clerkStatus } = useLoadedIsomorphicClerk(isomorphicClerkOptions); |
| const [state, setState] = import_react27.default.useState({ |
| client: clerk.client, |
| session: clerk.session, |
| user: clerk.user, |
| organization: clerk.organization |
| }); |
| import_react27.default.useEffect(() => { |
| return clerk.addListener((e) => setState({ ...e })); |
| }, []); |
| const derivedState = (0, import_deriveState.deriveState)(clerk.loaded, state, initialState); |
| const clerkCtx = import_react27.default.useMemo( |
| () => ({ value: clerk }), |
| [ |
| |
| clerkStatus |
| ] |
| ); |
| const clientCtx = import_react27.default.useMemo(() => ({ value: state.client }), [state.client]); |
| const { |
| sessionId, |
| sessionStatus, |
| sessionClaims, |
| session, |
| userId, |
| user, |
| orgId, |
| actor, |
| organization, |
| orgRole, |
| orgSlug, |
| orgPermissions, |
| factorVerificationAge |
| } = derivedState; |
| const authCtx = import_react27.default.useMemo(() => { |
| const value = { |
| sessionId, |
| sessionStatus, |
| sessionClaims, |
| userId, |
| actor, |
| orgId, |
| orgRole, |
| orgSlug, |
| orgPermissions, |
| factorVerificationAge |
| }; |
| return { value }; |
| }, [sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, factorVerificationAge, sessionClaims == null ? void 0 : sessionClaims.__raw]); |
| const sessionCtx = import_react27.default.useMemo(() => ({ value: session }), [sessionId, session]); |
| const userCtx = import_react27.default.useMemo(() => ({ value: user }), [userId, user]); |
| const organizationCtx = import_react27.default.useMemo(() => { |
| const value = { |
| organization |
| }; |
| return { value }; |
| }, [orgId, organization]); |
| return ( |
| |
| import_react27.default.createElement(IsomorphicClerkContext.Provider, { value: clerkCtx }, import_react27.default.createElement(import_react26.ClientContext.Provider, { value: clientCtx }, import_react27.default.createElement(import_react26.SessionContext.Provider, { value: sessionCtx }, import_react27.default.createElement(import_react26.OrganizationProvider, { ...organizationCtx.value }, import_react27.default.createElement(AuthContext.Provider, { value: authCtx }, import_react27.default.createElement(import_react26.UserContext.Provider, { value: userCtx }, import_react27.default.createElement( |
| import_react26.__experimental_CheckoutProvider, |
| { |
| value: void 0 |
| }, |
| children |
| ))))))) |
| ); |
| } |
| var useLoadedIsomorphicClerk = (options) => { |
| const isomorphicClerkRef = import_react27.default.useRef(IsomorphicClerk.getOrCreateInstance(options)); |
| const [clerkStatus, setClerkStatus] = import_react27.default.useState(isomorphicClerkRef.current.status); |
| import_react27.default.useEffect(() => { |
| void isomorphicClerkRef.current.__unstable__updateProps({ appearance: options.appearance }); |
| }, [options.appearance]); |
| import_react27.default.useEffect(() => { |
| void isomorphicClerkRef.current.__unstable__updateProps({ options }); |
| }, [options.localization]); |
| import_react27.default.useEffect(() => { |
| isomorphicClerkRef.current.on("status", setClerkStatus); |
| return () => { |
| if (isomorphicClerkRef.current) { |
| isomorphicClerkRef.current.off("status", setClerkStatus); |
| } |
| IsomorphicClerk.clearInstance(); |
| }; |
| }, []); |
| return { isomorphicClerk: isomorphicClerkRef.current, clerkStatus }; |
| }; |
|
|
| |
| function ClerkProviderBase(props) { |
| const { initialState, children, __internal_bypassMissingPublishableKey, ...restIsomorphicClerkOptions } = props; |
| const { publishableKey = "", Clerk: userInitialisedClerk } = restIsomorphicClerkOptions; |
| if (!userInitialisedClerk && !__internal_bypassMissingPublishableKey) { |
| if (!publishableKey) { |
| errorThrower.throwMissingPublishableKeyError(); |
| } else if (publishableKey && !(0, import_keys.isPublishableKey)(publishableKey)) { |
| errorThrower.throwInvalidPublishableKeyError({ key: publishableKey }); |
| } |
| } |
| return import_react28.default.createElement( |
| ClerkContextProvider, |
| { |
| initialState, |
| isomorphicClerkOptions: restIsomorphicClerkOptions |
| }, |
| children |
| ); |
| } |
| var ClerkProvider = withMaxAllowedInstancesGuard(ClerkProviderBase, "ClerkProvider", multipleClerkProvidersError); |
| ClerkProvider.displayName = "ClerkProvider"; |
|
|
| |
| setErrorThrowerOptions({ packageName: "@clerk/clerk-react" }); |
| (0, import_loadClerkJsScript2.setClerkJsLoadingErrorPackageName)("@clerk/clerk-react"); |
| |
| 0 && (module.exports = { |
| APIKeys, |
| AuthenticateWithRedirectCallback, |
| ClerkDegraded, |
| ClerkFailed, |
| ClerkLoaded, |
| ClerkLoading, |
| ClerkProvider, |
| CreateOrganization, |
| GoogleOneTap, |
| OrganizationList, |
| OrganizationProfile, |
| OrganizationSwitcher, |
| PricingTable, |
| Protect, |
| RedirectToCreateOrganization, |
| RedirectToOrganizationProfile, |
| RedirectToSignIn, |
| RedirectToSignUp, |
| RedirectToTasks, |
| RedirectToUserProfile, |
| SignIn, |
| SignInButton, |
| SignInWithMetamaskButton, |
| SignOutButton, |
| SignUp, |
| SignUpButton, |
| SignedIn, |
| SignedOut, |
| TaskChooseOrganization, |
| UserButton, |
| UserProfile, |
| Waitlist, |
| __experimental_CheckoutProvider, |
| __experimental_PaymentElement, |
| __experimental_PaymentElementProvider, |
| __experimental_useCheckout, |
| __experimental_usePaymentElement, |
| useAuth, |
| useClerk, |
| useEmailLink, |
| useOrganization, |
| useOrganizationList, |
| useReverification, |
| useSession, |
| useSessionList, |
| useSignIn, |
| useSignUp, |
| useUser |
| }); |
| |