{"version":3,"sources":["jsdelivr-header.js","/npm/@memberstack/dom@2.0.13/lib/index.js"],"names":[],"mappings":"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","file":"/npm/@memberstack/dom@2.0.13/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@memberstack/dom@2.0.13/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar __async = (__this, __arguments, generator) => {\n  return new Promise((resolve, reject) => {\n    var fulfilled = (value) => {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var rejected = (value) => {\n      try {\n        step(generator.throw(value));\n      } catch (e) {\n        reject(e);\n      }\n    };\n    var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n    step((generator = generator.apply(__this, __arguments)).next());\n  });\n};\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n  ErrorCodes: () => ErrorCodes,\n  default: () => src_default,\n  formatErrorForUser: () => formatErrorForUser,\n  getErrorCategory: () => getErrorCategory,\n  getErrorCode: () => getErrorCode,\n  getErrorDocsUrl: () => getErrorDocsUrl,\n  getErrorMessage: () => getErrorMessage,\n  getErrorReport: () => getErrorReport,\n  getErrorSuggestions: () => getErrorSuggestions,\n  isErrorCode: () => isErrorCode,\n  isMemberstackError: () => isMemberstackError\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/utils/defaultMessageBox.ts\nvar closeIcon;\nif (typeof window !== \"undefined\") {\n  closeIcon = document.createElement(\"div\");\n  closeIcon.setAttribute(\"id\", \"ms-status-close\");\n  closeIcon.setAttribute(\"data-ms-message-close\", \"\");\n  closeIcon.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\" fill=\"white\"/></svg>`;\n}\nvar addSuccessBox = () => {\n  const successStatusIcon = document.createElement(\"div\");\n  successStatusIcon.setAttribute(\"id\", \"ms-status-icon\");\n  successStatusIcon.innerHTML = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"#62d37f\"/><path d=\"M10 0C4.48 0 0 4.48 0 10s4.48 10 10 10 10-4.48 10-10S15.52 0 10 0Zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8Zm4.59-12.42L8 12.17 5.41 9.59 4 11l4 4 8-8-1.41-1.42Z\" fill=\"#fff\"/></svg>`;\n  const successHTML = `<div data-ms-message class=\"ms-error-message\">\n\t\t${successStatusIcon.outerHTML}\n\t\t<div id=\"ms-message\" data-ms-message-text></div>\n\t\t${closeIcon.outerHTML}\n\t\t</div>`;\n  const successdiv = document.createElement(\"div\");\n  successdiv.setAttribute(\"data-ms-message\", \"success\");\n  successdiv.innerHTML = successHTML;\n  successdiv.style.display = \"none\";\n  document.body.appendChild(successdiv);\n};\nvar addErrorBox = () => {\n  const errorStatusIcon = document.createElement(\"div\");\n  errorStatusIcon.setAttribute(\"id\", \"ms-status-icon\");\n  errorStatusIcon.innerHTML = `<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM11 15H9V13H11V15ZM11 11H9V5H11V11Z\" fill=\"#E40023\"/></svg>`;\n  const errorHTML = `<div data-ms-message class=\"ms-error-message\">\n\t\t${errorStatusIcon.outerHTML}\n\t\t<div id=\"ms-message\" data-ms-message-text></div>\n\t\t${closeIcon.outerHTML}\n\t\t</div>`;\n  const errordiv = document.createElement(\"div\");\n  errordiv.setAttribute(\"data-ms-message\", \"error\");\n  errordiv.innerHTML = errorHTML;\n  errordiv.style.display = \"none\";\n  document.body.appendChild(errordiv);\n};\nvar initCSS = () => {\n  const cssEl = document.createElement(\"style\");\n  const css = `\n\t\t@keyframes fadeIn {\n\t\t\t0% {\n\t\t\t\topacity: 0;\n\t\t\t}\n\t\t\t100% {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t\t.ms-error-message { \n\t\t\t\tposition: fixed;\n\t\t\t\tleft: 50%;\n\t\t\t\tbottom: 3%;\n\t\t\t\ttransform: translate(-50%, -50%);\n\t\t\t\tmargin: 0 auto;\n\t\t\t\tz-index: 10000000; \n\t\t\t\tdisplay: flex; \n\t\t\t\talign-items: center;\n\t\t\t\tpadding: 12px 16px;\n\t\t\t\tborder-radius: 8px; \n\t\t\t\tbackground-color: #0A0A0A; \n\t\t\t\tcolor: #fff; \n\t\t\t\tfont-size: 16.8px; \n\t\t\t\tline-height: 28px; \n\t\t\t\tfont-weight: 500; \n\t\t\t\ttransform-origin: center;\n\t\t\t\tanimation: fadeIn 0.2s ease-in;\n\t\t\t\t-webkit-animation: fadeIn 0.2s ease-in;\n\t\t\t\t-moz-animation: fadeIn 0.2s ease-in;\n\t\t\t\t-o-animation: fadeIn 0.2s ease-in;\n\t\t\t\t-ms-animation: fadeIn 0.2s ease-in;\n\t\t\t}\n\t\t\t@media screen and (max-width: 768px) {\n\t\t\t\t.ms-error-message {\n\t\t\t\t\tbottom: 12px;\n\t\t\t\t\twidth: calc(100% - 24px);\n\t\t\t\t\tmax-width: none;\n\t\t\t\t\tpadding: 10px 12px;\n\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\tline-height: 20px;\n\t\t\t\t}\n\t\t\t}\n\t\t\t#ms-status-icon {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t\tmargin-right: 12px;\n\t\t\t\t}\n\t\t\t\t#ms-status-close {\n\t\t\t\t\tmargin-left: 20px;\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t\t}\n\t\t\t\t\t#ms-status-close svg {\n\t\t\t\t\t\theight: 12px;\n\t\t\t\t\t}`;\n  cssEl.setAttribute(\"data-ms-style\", \"\");\n  cssEl.appendChild(document.createTextNode(css));\n  document.head.appendChild(cssEl);\n};\n\n// src/config/cdn.ts\nvar MAJOR_VERSION = true ? \"1\" : \"1\";\nvar API_ENDPOINT = \"https://client.memberstack.com\";\nvar isDev = API_ENDPOINT.includes(\"dev-client\");\nvar isLocal = API_ENDPOINT.includes(\"localhost\");\nvar CDN_BASE_URL = \"https://static.memberstack.com/scripts/v2\";\nvar LOCAL_PREBUILT_UI_URL = \"http://localhost:5500/packages/prebuilt-uis/public/build/main-dom.js\";\nvar getLocalOverride = () => {\n  if (typeof window !== \"undefined\" && window.__MS_PREBUILT_UI_URL__) {\n    return window.__MS_PREBUILT_UI_URL__;\n  }\n  return null;\n};\nvar getPrebuiltUIUrl = () => {\n  const localOverride = getLocalOverride();\n  if (localOverride) {\n    return localOverride;\n  }\n  if (isLocal) {\n    return LOCAL_PREBUILT_UI_URL;\n  }\n  if (isDev) {\n    return `${CDN_BASE_URL}/dev/prebuilt-uis/v${MAJOR_VERSION}.js`;\n  }\n  return `${CDN_BASE_URL}/prebuilt-uis/v${MAJOR_VERSION}.js`;\n};\n\n// src/methods/dom/methods.ts\nif (typeof Node !== \"undefined\" && !Node.prototype.getRootNode) {\n  Node.prototype.getRootNode = function() {\n    let node = this;\n    while (node.parentNode) {\n      node = node.parentNode;\n    }\n    return node;\n  };\n}\nvar prebuiltUILoaded = false;\nvar prebuiltUILoadPromise = null;\nvar loadPrebuiltUI = (retries = 2) => __async(void 0, null, function* () {\n  if (prebuiltUILoaded)\n    return;\n  if (prebuiltUILoadPromise) {\n    return prebuiltUILoadPromise;\n  }\n  prebuiltUILoadPromise = new Promise((resolve, reject) => {\n    if (typeof customElements !== \"undefined\" && customElements.get(\"memberstack-prebuilt-ui\")) {\n      prebuiltUILoaded = true;\n      resolve();\n      return;\n    }\n    const script = document.createElement(\"script\");\n    script.src = getPrebuiltUIUrl();\n    script.async = true;\n    script.onload = () => __async(void 0, null, function* () {\n      yield new Promise((r) => setTimeout(r, 0));\n      if (typeof customElements !== \"undefined\" && customElements.get(\"memberstack-prebuilt-ui\")) {\n        prebuiltUILoaded = true;\n        resolve();\n      } else {\n        prebuiltUILoadPromise = null;\n        script.remove();\n        if (retries > 0) {\n          yield new Promise((r) => setTimeout(r, 1e3));\n          try {\n            yield loadPrebuiltUI(retries - 1);\n            resolve();\n          } catch (e) {\n            reject(e);\n          }\n        } else {\n          reject(new Error(\n            \"Failed to load Memberstack modals: the script loaded but the modal component was not registered. This typically happens when the browser blocks the script body (CORS/ORB). If developing locally, set window.__MS_PREBUILT_UI_URL__ to a locally-served copy of the modal script.\"\n          ));\n        }\n      }\n    });\n    script.onerror = () => __async(void 0, null, function* () {\n      prebuiltUILoadPromise = null;\n      script.remove();\n      if (retries > 0) {\n        yield new Promise((r) => setTimeout(r, 1e3));\n        try {\n          yield loadPrebuiltUI(retries - 1);\n          resolve();\n        } catch (e) {\n          reject(e);\n        }\n      } else {\n        reject(new Error(\n          \"Failed to load Memberstack modals after multiple attempts. Check your internet connection and browser console for CORS/network errors. For local development, set window.__MS_PREBUILT_UI_URL__ to a locally-served copy.\"\n        ));\n      }\n    });\n    document.head.appendChild(script);\n  });\n  return prebuiltUILoadPromise;\n});\nvar preloadModals = () => {\n  return loadPrebuiltUI();\n};\nvar initDefaultMessageBox = () => {\n  initCSS();\n  addSuccessBox();\n  addErrorBox();\n};\nvar showMessage = (msg, isError, scopeElement) => __async(void 0, null, function* () {\n  if (!msg)\n    return;\n  yield new Promise((resolve) => {\n    if (document.readyState !== \"loading\") {\n      resolve(true);\n    } else {\n      document.addEventListener(\"DOMContentLoaded\", function(event) {\n        resolve(true);\n      });\n    }\n  });\n  if (!document.querySelector(\"[data-ms-message='success']\")) {\n    initDefaultMessageBox();\n  }\n  const selector = isError ? \"[data-ms-message='error']\" : \"[data-ms-message='success']\";\n  let messageBox = null;\n  if (scopeElement) {\n    messageBox = scopeElement.querySelector(selector);\n  }\n  if (!messageBox) {\n    messageBox = document.querySelector(selector);\n  }\n  if (!messageBox)\n    return;\n  const messageTextBox = messageBox.querySelector(\"[data-ms-message-text]\");\n  if (messageTextBox) {\n    messageTextBox.textContent = msg;\n  }\n  messageBox.style.display = \"block\";\n  const closeBtn = messageBox.querySelector(\"[data-ms-message-close]\");\n  closeBtn == null ? void 0 : closeBtn.addEventListener(\"click\", () => {\n    messageBox.style.display = \"none\";\n  });\n  setTimeout(() => {\n    messageBox.style.display = \"none\";\n  }, 7e3);\n});\nvar showLoader = (element) => {\n  if (element) {\n    element.style.display = \"block\";\n    return;\n  }\n  const customLoader = document.querySelector(\"[data-ms-loader]\");\n  if (customLoader) {\n    customLoader.style.display = \"block\";\n    return;\n  }\n  if (document.querySelector(\"[data-ms-modal-loader]\")) {\n    return;\n  }\n  if (!document.getElementById(\"ms-loader-styles\")) {\n    const style = document.createElement(\"style\");\n    style.id = \"ms-loader-styles\";\n    style.textContent = `\n      @keyframes ms-spin {\n        0% { transform: rotate(0deg); }\n        100% { transform: rotate(360deg); }\n      }\n    `;\n    document.head.appendChild(style);\n  }\n  const div = document.createElement(\"div\");\n  div.setAttribute(\"data-ms-modal-loader\", \"true\");\n  div.style.cssText = \"position: fixed; inset: 0; display: flex; justify-content: center; align-items: center; z-index: 2147483647; pointer-events: none;\";\n  const svg = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n  svg.setAttribute(\"width\", \"40\");\n  svg.setAttribute(\"height\", \"40\");\n  svg.setAttribute(\"viewBox\", \"0 0 50 50\");\n  svg.style.cssText = \"animation: ms-spin 0.6s linear infinite;\";\n  const path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n  path.setAttribute(\"fill\", \"#007ace\");\n  path.setAttribute(\"d\", \"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\");\n  svg.appendChild(path);\n  div.appendChild(svg);\n  if (document.readyState !== \"loading\") {\n    document.body.appendChild(div);\n  } else {\n    document.addEventListener(\"DOMContentLoaded\", function(event) {\n      document.body.appendChild(div);\n    });\n  }\n};\nvar hideLoader = (element) => {\n  var _a;\n  if (element) {\n    element.style.display = \"none\";\n    return;\n  }\n  const customLoader = document.querySelector(\"[data-ms-loader]\");\n  if (customLoader) {\n    customLoader.style.display = \"none\";\n    return;\n  }\n  (_a = document.querySelector(\"[data-ms-modal-loader]\")) == null ? void 0 : _a.remove();\n};\nvar modal = null;\nvar resolveModal;\nvar openModal = (_0, ..._1) => __async(void 0, [_0, ..._1], function* (type, params = {}) {\n  const isInspector = type.toLowerCase() === \"inspector\";\n  const needsLoading = !prebuiltUILoaded;\n  const showLoaderForThisCall = !isInspector && needsLoading;\n  if (showLoaderForThisCall) {\n    showLoader();\n  }\n  try {\n    yield loadPrebuiltUI();\n  } catch (error) {\n    if (showLoaderForThisCall) {\n      hideLoader();\n    }\n    console.warn(\n      \"[Memberstack] Modal failed to load.\",\n      error instanceof Error ? error.message : error,\n      \"\\nHint: Set window.__MS_PREBUILT_UI_URL__ to override the CDN URL during local development.\"\n    );\n    throw error;\n  } finally {\n    if (showLoaderForThisCall) {\n      hideLoader();\n    }\n  }\n  if (modal) {\n    try {\n      modal.remove();\n    } catch (e) {\n    }\n    if (resolveModal) {\n      resolveModal({ type: \"CLOSED\" });\n    }\n    modal = null;\n    resolveModal = void 0;\n  }\n  const modalPromise = new Promise((resolve) => {\n    resolveModal = resolve;\n  });\n  const element = document.createElement(\"memberstack-prebuilt-ui\");\n  element.display = type.toLowerCase();\n  element.params = params;\n  element.onSuccess = resolveModal;\n  if (!isInspector) {\n    modal = element;\n  }\n  document.body.appendChild(element);\n  return modalPromise;\n});\nvar hideModal = () => {\n  try {\n    modal == null ? void 0 : modal.remove();\n  } catch (e) {\n  }\n  if (resolveModal) {\n    resolveModal({ type: \"CLOSED\" });\n  }\n  modal = null;\n  resolveModal = void 0;\n};\n\n// src/utils/cookies.ts\nvar import_js_cookie = __toESM(require(\"js-cookie\"));\nvar memberAuthTokenName = \"_ms-mid\";\nfunction isLocalStorageAvailable() {\n  try {\n    localStorage.setItem(\"test\", \"test\");\n    localStorage.removeItem(\"test\");\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nvar localStorageAvailable = isLocalStorageAvailable();\nvar useCookies = false;\nvar setCookieOnRootDomain = false;\nvar apiDomain = \"\";\nvar setUseCookies = (setCookieOnRoot) => {\n  useCookies = true;\n  if (setCookieOnRoot)\n    setCookieOnRootDomain = true;\n};\nvar setApiDomain = (domain) => {\n  try {\n    if (domain.startsWith(\"http://\") || domain.startsWith(\"https://\")) {\n      const url = new URL(domain);\n      apiDomain = url.hostname;\n    } else {\n      apiDomain = domain;\n    }\n  } catch (e) {\n    apiDomain = domain;\n  }\n};\nvar extractDomainFromHostname = (hostname) => {\n  var _a, _b;\n  const hostnameParts = hostname.split(\".\");\n  const isCountryCodeTLD = hostnameParts.length >= 4 && ((_b = (_a = hostnameParts[hostnameParts.length - 2]) == null ? void 0 : _a.length) != null ? _b : 0) <= 3;\n  if (isCountryCodeTLD) {\n    return hostnameParts.slice(-3).join(\".\");\n  } else {\n    return hostnameParts.slice(-2).join(\".\");\n  }\n};\nvar useCookiesValid = () => {\n  if (!useCookies)\n    return false;\n  if (setCookieOnRootDomain) {\n    const apiDomainHost = extractDomainFromHostname(apiDomain);\n    const currentHost = extractDomainFromHostname(window.location.hostname);\n    return apiDomainHost === currentHost;\n  }\n  return true;\n};\nvar setMemberToken = (token, expires) => {\n  if (localStorageAvailable && useCookiesValid() === false) {\n    localStorage.setItem(memberAuthTokenName, token);\n  } else {\n    const domain = extractDomainFromHostname(window.location.hostname);\n    const isSecure = typeof window !== \"undefined\" && window.location.protocol === \"https:\";\n    import_js_cookie.default.set(memberAuthTokenName, token, __spreadValues(__spreadValues({\n      expires: expires && Number(expires) || 14,\n      sameSite: \"strict\"\n    }, isSecure && { secure: true }), setCookieOnRootDomain && { domain }));\n  }\n};\nvar removeMemberToken = () => {\n  if (localStorageAvailable) {\n    localStorage.removeItem(memberAuthTokenName);\n  }\n  const domain = extractDomainFromHostname(window.location.hostname);\n  const isSecure = typeof window !== \"undefined\" && window.location.protocol === \"https:\";\n  import_js_cookie.default.set(memberAuthTokenName, \"\", __spreadValues(__spreadValues({\n    expires: -1,\n    sameSite: \"strict\"\n  }, isSecure && { secure: true }), setCookieOnRootDomain && { domain }));\n};\nvar getMemberToken = () => {\n  if (localStorageAvailable) {\n    const memAuthToken = localStorage.getItem(memberAuthTokenName);\n    if (memAuthToken)\n      return memAuthToken;\n  }\n  return import_js_cookie.default.get(memberAuthTokenName);\n};\nvar setMemberTokenIfAvailable = () => {\n  if (typeof window !== \"undefined\") {\n    const urlParams = new URLSearchParams(window.location.search);\n    const memberToken = urlParams.get(\"memberToken\");\n    if (memberToken) {\n      setMemberToken(memberToken);\n      urlParams.delete(\"memberToken\");\n      const newSearch = urlParams.toString();\n      const newUrl = newSearch ? `${window.location.pathname}?${newSearch}${window.location.hash}` : `${window.location.pathname}${window.location.hash}`;\n      window.history.replaceState({}, \"\", newUrl);\n    }\n  }\n};\nvar getSessionId = () => {\n  if (typeof window === \"undefined\")\n    return null;\n  const sessionId = window.localStorage.getItem(\"ms_session_id\");\n  if (!sessionId || sessionId.length > 26) {\n    window.localStorage.removeItem(\"ms_session_id\");\n    return null;\n  }\n  return sessionId;\n};\nvar setSessionId = (sessionId) => {\n  if (typeof window !== \"undefined\") {\n    window.localStorage.setItem(\"ms_session_id\", sessionId);\n  } else {\n    console.warn(\"setSessionId: window is not defined\");\n  }\n};\nvar removeSessionId = () => {\n  if (typeof window !== \"undefined\") {\n    window.localStorage.removeItem(\"ms_session_id\");\n  } else {\n    console.warn(\"removeSessionId: window is not defined\");\n  }\n};\n\n// src/methods/requests/requests.ts\nvar import_axios = __toESM(require(\"axios\"));\n\n// src/constants/endpoints.ts\nvar endpoints = {\n  API: \"https://client.memberstack.com\"\n};\n\n// src/methods/requests/requests.ts\nvar FALLBACK_SESSION_KEY = \"ms_custom_domain_fallback\";\nvar createRequestHandler = ({\n  publicKey,\n  appId,\n  token,\n  customEndpoint,\n  canonicalEndpoint,\n  enableCustomDomainFallback\n}) => {\n  const fallbackEligible = Boolean(\n    enableCustomDomainFallback && customEndpoint && canonicalEndpoint && customEndpoint !== canonicalEndpoint\n  );\n  let degraded = false;\n  if (fallbackEligible && typeof window !== \"undefined\") {\n    try {\n      degraded = window.sessionStorage.getItem(FALLBACK_SESSION_KEY) === \"1\";\n    } catch (e) {\n    }\n  }\n  const getActiveEndpoint = () => (degraded ? canonicalEndpoint : customEndpoint) || canonicalEndpoint || customEndpoint;\n  const markDegraded = () => {\n    if (degraded)\n      return;\n    degraded = true;\n    if (typeof window !== \"undefined\") {\n      try {\n        window.sessionStorage.setItem(FALLBACK_SESSION_KEY, \"1\");\n      } catch (e) {\n      }\n    }\n    console.warn(\n      \"[Memberstack] Custom domain unreachable; using the default Memberstack endpoint for the rest of this session.\"\n    );\n  };\n  const warnIfWrongKeyMode = (error) => {\n    if (error && typeof error === \"object\" && \"code\" in error && error.code === \"generic-message\" && \"message\" in error && typeof error.message === \"string\" && error.message.toLowerCase().includes(\"disabled\") && !(publicKey == null ? void 0 : publicKey.includes(\"_sb_\"))) {\n      console.warn(\n        \"[Memberstack] You're using a Live Mode key (pk_...). If your app hasn't been published yet, use the Test Mode key (pk_sb_...) from Dev Tools in your Memberstack dashboard.\"\n      );\n    }\n  };\n  return {\n    sendRequest: (data, options) => __async(void 0, null, function* () {\n      var _a, _b;\n      const { url } = data;\n      const memberToken = getMemberToken();\n      const sessionToken = getSessionId();\n      const authHeader = [\n        (_b = (_a = data.headers) == null ? void 0 : _a[\"Authorization\"]) == null ? void 0 : _b.replace(\"Bearer \", \"\"),\n        memberToken,\n        options == null ? void 0 : options.token\n      ].find((x) => x);\n      let networkError;\n      const attempt = (endpoint) => __async(void 0, null, function* () {\n        var _a2, _b2, _c, _d, _e, _f;\n        try {\n          const res = yield (0, import_axios.default)({\n            method: data.method,\n            data: data.data,\n            url: `${endpoint}${url}`,\n            headers: __spreadProps(__spreadValues(__spreadValues(__spreadProps(__spreadValues(__spreadValues(__spreadValues({}, authHeader && { authorization: `Bearer ${authHeader}` }), publicKey && { [\"X-API-Key\" /* API_KEY */]: publicKey }), appId && { [\"X-APP-ID\" /* APP_ID */]: appId }), {\n              [\"X-User-Agent\" /* USER_AGENT */]: \"@memberstack/client@1.2.0\"\n            }), data.contentType && { \"Content-Type\": data.contentType }), sessionToken && {\n              [\"X-Session-ID\" /* SESSION_ID */]: sessionToken\n            }), {\n              \"referring-path\": window.location.pathname\n            }),\n            withCredentials: true\n          });\n          if ((_a2 = res == null ? void 0 : res.headers) == null ? void 0 : _a2[\"ms-mid\"]) {\n            token = res.headers[\"ms-mid\"];\n          }\n          if ((_b2 = res == null ? void 0 : res.data) == null ? void 0 : _b2.error) {\n            if (res.data.error.name === \"JsonWebTokenError\") {\n              throw {\n                code: \"client/invalid-token\",\n                message: \"An invalid token has been provided. Please make sure the token is valid.\"\n              };\n            }\n            warnIfWrongKeyMode(res.data.error);\n            throw (_c = res.data) == null ? void 0 : _c.error;\n          }\n          return { ok: true, value: res == null ? void 0 : res.data };\n        } catch (e) {\n          const error = e;\n          if (!error.response) {\n            if (networkError === void 0)\n              networkError = e;\n            return { ok: false };\n          }\n          const thrownError = ((_e = (_d = error.response) == null ? void 0 : _d.data) == null ? void 0 : _e.error) || ((_f = error.response) == null ? void 0 : _f.data);\n          warnIfWrongKeyMode(thrownError);\n          throw thrownError;\n        }\n      });\n      const first = yield attempt(getActiveEndpoint() || endpoints.API);\n      if (first.ok)\n        return first.value;\n      if (fallbackEligible && !degraded) {\n        let retry;\n        try {\n          retry = yield attempt(canonicalEndpoint);\n        } catch (appErr) {\n          markDegraded();\n          throw appErr;\n        }\n        if (retry.ok) {\n          markDegraded();\n          return retry.value;\n        }\n      }\n      throw {\n        code: \"network-error\",\n        message: (networkError == null ? void 0 : networkError.message) || \"Network request failed. Please check your internet connection.\"\n      };\n    }),\n    sendRequestWithFetch: (data, options) => __async(void 0, null, function* () {\n      var _a;\n      const { url, method, data: bodyData, headers, contentType } = data;\n      const memberToken = getMemberToken();\n      const authHeader = [\n        (_a = headers == null ? void 0 : headers[\"Authorization\"]) == null ? void 0 : _a.replace(\"Bearer \", \"\"),\n        memberToken,\n        options == null ? void 0 : options.token\n      ].find((x) => x);\n      const fetchHeaders = __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, authHeader && { Authorization: `Bearer ${authHeader}` }), publicKey && { [\"X-API-Key\" /* API_KEY */]: publicKey }), appId && { [\"X-APP-ID\" /* APP_ID */]: appId }), {\n        [\"X-User-Agent\" /* USER_AGENT */]: \"@memberstack/client@1.2.0\",\n        \"Content-Type\": \"application/json\",\n        Referer: window.location.href\n      });\n      let networkError;\n      const attempt = (endpoint) => __async(void 0, null, function* () {\n        var _a2;\n        let response;\n        try {\n          response = yield fetch(`${endpoint}${url}`, {\n            method,\n            headers: fetchHeaders,\n            body: bodyData ? JSON.stringify(bodyData) : void 0,\n            credentials: \"include\",\n            keepalive: true\n          });\n        } catch (e) {\n          if (networkError === void 0)\n            networkError = e;\n          return { ok: false };\n        }\n        const contentTypeHeader = response.headers.get(\"content-type\");\n        let result;\n        if (contentTypeHeader == null ? void 0 : contentTypeHeader.includes(\"application/json\")) {\n          result = yield response.json();\n        } else if (contentTypeHeader == null ? void 0 : contentTypeHeader.includes(\"text\")) {\n          result = yield response.text();\n        } else if (response.status === 204) {\n          result = null;\n        } else {\n          result = yield response.text();\n        }\n        if (response.headers.get(\"ms-mid\")) {\n          token = response.headers.get(\"ms-mid\");\n        }\n        if (!response.ok) {\n          if (((_a2 = result == null ? void 0 : result.error) == null ? void 0 : _a2.name) === \"JsonWebTokenError\") {\n            throw {\n              code: \"client/invalid-token\",\n              message: \"An invalid token has been provided. Please make sure the token is valid.\"\n            };\n          }\n          warnIfWrongKeyMode((result == null ? void 0 : result.error) || result);\n          throw (result == null ? void 0 : result.error) || result;\n        }\n        return { ok: true, value: result };\n      });\n      const first = yield attempt(getActiveEndpoint() || endpoints.API);\n      if (first.ok)\n        return first.value;\n      if (fallbackEligible && !degraded) {\n        let retry;\n        try {\n          retry = yield attempt(canonicalEndpoint);\n        } catch (appErr) {\n          markDegraded();\n          throw appErr;\n        }\n        if (retry.ok) {\n          markDegraded();\n          return retry.value;\n        }\n      }\n      throw {\n        code: \"network-error\",\n        message: (networkError == null ? void 0 : networkError.message) || \"Network request failed. Please check your internet connection.\"\n      };\n    })\n  };\n};\n\n// src/auth/index.ts\nvar createObservable = () => {\n  const observer = /* @__PURE__ */ new Map();\n  return {\n    subscribe: (key, fn) => {\n      if (typeof fn !== \"function\")\n        return;\n      return observer.set(key, fn);\n    },\n    unsubscribe: (key) => {\n      return observer.delete(key);\n    },\n    notify: (data) => {\n      [...observer.values()].forEach((fn) => {\n        try {\n          fn(data);\n        } catch (err) {\n          console.error(\"[Memberstack] onAuthChange subscriber threw:\", err);\n        }\n      });\n    }\n  };\n};\nvar observable = createObservable();\nvar getPersistedMember = () => {\n  try {\n    const stored = localStorage == null ? void 0 : localStorage.getItem(\"_ms-mem\");\n    return stored ? JSON.parse(stored) : null;\n  } catch (e) {\n    return null;\n  }\n};\nvar setPersistedMember = (member) => {\n  if (member) {\n    const data = JSON.stringify(member);\n    if (data)\n      localStorage == null ? void 0 : localStorage.setItem(\"_ms-mem\", data);\n    observable.notify(member);\n  }\n};\nvar updatePersistedMember = (member) => {\n  if (member) {\n    const data = JSON.stringify(member);\n    if (data)\n      localStorage == null ? void 0 : localStorage.setItem(\"_ms-mem\", data);\n  } else {\n    localStorage == null ? void 0 : localStorage.removeItem(\"_ms-mem\");\n    removeMemberToken();\n  }\n};\nvar unsetPersistedMember = () => {\n  localStorage == null ? void 0 : localStorage.removeItem(\"_ms-mem\");\n  removeMemberToken();\n  removeSessionId();\n  observable.notify(null);\n};\nvar nextSubscriberId = 0;\nvar onAuthChange = (cb) => {\n  const id = nextSubscriberId++;\n  observable.subscribe(id, cb);\n  return {\n    unsubscribe: () => observable.unsubscribe(id)\n  };\n};\n\n// src/methods/requests/index.ts\nfunction getSessionDurationDays(unixTimestampMillis) {\n  const now = Date.now();\n  const differenceMillis = unixTimestampMillis - now;\n  return Math.ceil(differenceMillis / (24 * 60 * 60 * 1e3));\n}\nvar addHeaders = (options) => {\n  const opts = options;\n  return __spreadValues({}, (opts == null ? void 0 : opts.token) && {\n    Authorization: `Bearer ${opts.token}`\n  });\n};\nvar promiseResolve;\nvar promiseReject;\nvar receiveMessage = (event) => {\n  var _a;\n  const { data, origin } = event;\n  if (API_ENDPOINT2 !== origin)\n    return;\n  if ((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.member) {\n    const sessionDurationDays = getSessionDurationDays(data.data.tokens.expires);\n    setPersistedMember(data.data.member);\n    setMemberToken(data.data.tokens.accessToken, sessionDurationDays);\n  }\n  if (data == null ? void 0 : data.error) {\n    promiseReject == null ? void 0 : promiseReject(data.error);\n  }\n  promiseResolve == null ? void 0 : promiseResolve(data);\n};\nvar windowObjectReference = null;\nvar previousUrl = null;\nvar openSignInWindow = (url, name) => __async(void 0, null, function* () {\n  window.removeEventListener(\"message\", receiveMessage);\n  const dualScreenLeft = window.screenLeft !== void 0 ? window.screenLeft : window.screenX;\n  const dualScreenTop = window.screenTop !== void 0 ? window.screenTop : window.screenY;\n  const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;\n  const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;\n  const systemZoom = width / window.screen.availWidth;\n  const left = (width - 600) / 2 / systemZoom + dualScreenLeft;\n  const top = (height - 700) / 2 / systemZoom + dualScreenTop;\n  const strWindowFeatures = `toolbar=no, menubar=no, width=${600 / systemZoom}, height=${700 / systemZoom}, top=${top}, left=${left}`;\n  if (windowObjectReference === null || windowObjectReference.closed) {\n    windowObjectReference = window.open(url, name, strWindowFeatures);\n  } else if (previousUrl !== url) {\n    windowObjectReference = window.open(url, name, strWindowFeatures);\n    windowObjectReference == null ? void 0 : windowObjectReference.focus();\n  } else {\n    windowObjectReference == null ? void 0 : windowObjectReference.focus();\n  }\n  window.addEventListener(\"message\", (event) => receiveMessage(event), false);\n  previousUrl = url;\n  window.addEventListener(\"beforeunload\", () => {\n    windowObjectReference == null ? void 0 : windowObjectReference.close();\n  });\n  return new Promise((resolve, reject) => {\n    promiseResolve = resolve;\n    promiseReject = reject;\n  });\n});\nfunction getBrowser() {\n  const userAgent = navigator.userAgent;\n  if (/Edg/i.test(userAgent))\n    return \"EDGE\";\n  if (/Trident/i.test(userAgent) || /MSIE/i.test(userAgent))\n    return \"INTERNET_EXPLORER\";\n  if (/Safari/i.test(userAgent) && !/Chrome/i.test(userAgent))\n    return \"SAFARI\";\n  if (/Firefox/i.test(userAgent))\n    return \"FIREFOX\";\n  if (/Chrome/i.test(userAgent) && !/Edg/i.test(userAgent))\n    return \"CHROME\";\n  if (/OPR/i.test(userAgent) || /Opera/i.test(userAgent))\n    return \"OPERA\";\n  return \"OTHER\";\n}\nfunction getOS() {\n  const userAgent = navigator.userAgent;\n  if (/Windows/i.test(userAgent))\n    return \"WINDOWS\";\n  if (/Macintosh|Mac OS X/i.test(userAgent))\n    return \"MACOS\";\n  if (/Android/i.test(userAgent))\n    return \"ANDROID\";\n  if (/iPhone|iPad|iPod/i.test(userAgent))\n    return \"IOS\";\n  if (/Linux/i.test(userAgent))\n    return \"LINUX\";\n  return \"OTHER\";\n}\nfunction getScreenSize() {\n  const width = window.innerWidth;\n  if (width <= 768)\n    return \"PHONE\";\n  if (width <= 1024)\n    return \"TABLET\";\n  return \"DESKTOP\";\n}\nfunction getUTMParams() {\n  const params = new URLSearchParams(window.location.search);\n  const utmParams = {};\n  const utmKeys = [\"utm_source\", \"utm_medium\", \"utm_campaign\", \"utm_term\", \"utm_content\"];\n  utmKeys.forEach((key) => {\n    if (params.has(key)) {\n      utmParams[key] = params.get(key);\n    }\n  });\n  return utmParams;\n}\nfunction getConversionData() {\n  return {\n    browser: getBrowser(),\n    os: getOS(),\n    screenSize: getScreenSize(),\n    sessionId: getSessionId(),\n    utmParams: getUTMParams()\n  };\n}\nvar API_ENDPOINT2;\nvar initRequest = ({\n  publicKey,\n  appId,\n  token,\n  domain,\n  canonicalDomain,\n  enableCustomDomainFallback\n  //sessionDurationDays\n}) => {\n  const { sendRequest, sendRequestWithFetch } = createRequestHandler({\n    publicKey,\n    token,\n    customEndpoint: domain,\n    canonicalEndpoint: canonicalDomain,\n    enableCustomDomainFallback,\n    appId\n  });\n  API_ENDPOINT2 = domain;\n  return {\n    _Event(params) {\n      return __async(this, null, function* () {\n        const payload = __spreadValues(__spreadValues({}, params.data), getConversionData());\n        return sendRequestWithFetch({\n          method: \"POST\" /* POST */,\n          url: `/event`,\n          data: payload\n        });\n      });\n    },\n    /**\n     * Permanently deletes the current member's account.\n     * This action cannot be undone. The member will be logged out after deletion.\n     *\n     * @returns Promise resolving to deletion confirmation\n     *\n     * @example\n     * ```typescript\n     * // Confirm with user before calling\n     * if (confirm('Are you sure? This cannot be undone.')) {\n     *   await memberstack.deleteMember();\n     *   window.location.href = '/goodbye';\n     * }\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    deleteMember() {\n      return __async(this, null, function* () {\n        const data = yield sendRequest({\n          method: \"DELETE\" /* DELETE */,\n          url: `/member`\n        });\n        unsetPersistedMember();\n        return data;\n      });\n    },\n    /**\n     * Sends a typing indicator to a comments channel.\n     * Used internally to show when a member is actively composing a post.\n     *\n     * @internal\n     * @param params - The typing indicator parameters\n     * @param params.channelKey - The key/identifier of the channel\n     * @returns Promise that resolves when the typing indicator is sent\n     */\n    postIsTyping(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/posts/typing`,\n          data: {\n            channelKey: params.channelKey\n          }\n        });\n      });\n    },\n    /**\n     * Retrieves information about a comments channel.\n     * Returns channel metadata and configuration.\n     *\n     * @internal\n     * @param params - The channel info parameters\n     * @param params.channelKey - The key/identifier of the channel\n     * @returns Promise resolving to the channel information\n     */\n    getChannelInfo(params) {\n      return __async(this, null, function* () {\n        const queryParams = new URLSearchParams({\n          channelKey: params.channelKey\n        });\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/comments/channels/info?${queryParams}`\n        });\n      });\n    },\n    /**\n     * Manages a member's notification subscription to a comments channel.\n     * Allows members to subscribe or unsubscribe from channel notifications.\n     *\n     * @internal\n     * @param params - The subscription parameters\n     * @param params.channelKey - The key/identifier of the channel\n     * @param params.action - The subscription action: 'NONE' to unsubscribe, 'THREADS_ONLY' to receive thread notifications\n     * @returns Promise that resolves when the subscription is updated\n     */\n    subscribeToChannel(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/channels/manage-subscription`,\n          data: {\n            channelKey: params.channelKey,\n            action: params.action\n          }\n        });\n      });\n    },\n    /**\n     * Retrieves posts from a comments channel.\n     * Use this to display comments or discussion threads on your site.\n     *\n     * @param params - Query parameters\n     * @param params.channelKey - The key identifying the channel to fetch posts from\n     * @param params.order - Sort order: 'newest' or 'oldest'\n     * @param params.after - Cursor for pagination (post ID to start after)\n     * @param params.limit - Maximum number of posts to return\n     * @returns Promise resolving to an array of posts\n     *\n     * @example\n     * ```typescript\n     * const { data } = await memberstack.getPosts({\n     *   channelKey: 'blog-comments',\n     *   order: 'newest',\n     *   limit: 20\n     * });\n     * data.posts.forEach(post => console.log(post.content));\n     * ```\n     */\n    getPosts(params) {\n      return __async(this, null, function* () {\n        const queryParams = new URLSearchParams(__spreadValues(__spreadValues(__spreadValues({\n          channelKey: params.channelKey\n        }, params.after && {\n          after: params.after\n        }), params.order && {\n          order: params.order\n        }), params.limit && {\n          limit: params.limit.toString()\n        }));\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/comments/posts?${queryParams}`\n        });\n      });\n    },\n    /**\n     * Retrieves threads (replies) for a specific post.\n     *\n     * @param params - Query parameters\n     * @param params.postId - The ID of the parent post\n     * @param params.order - Sort order: 'newest' or 'oldest'\n     * @param params.after - Cursor for pagination (thread ID to start after)\n     * @param params.limit - Maximum number of threads to return\n     * @returns Promise resolving to an array of threads\n     *\n     * @example\n     * ```typescript\n     * const { data } = await memberstack.getThreads({\n     *   postId: 'post_abc123',\n     *   order: 'oldest',\n     *   limit: 50\n     * });\n     * data.threads.forEach(thread => console.log(thread.content));\n     * ```\n     */\n    getThreads(params) {\n      return __async(this, null, function* () {\n        const queryParams = new URLSearchParams(__spreadValues(__spreadValues(__spreadValues({\n          postId: params.postId\n        }, params.after && {\n          after: params.after\n        }), params.order && {\n          order: params.order\n        }), params.limit && {\n          limit: params.limit.toString()\n        }));\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/comments/threads?${queryParams}`\n        });\n      });\n    },\n    /**\n     * Creates a new post in a comments channel.\n     *\n     * @param params - Post data\n     * @param params.channelKey - The key of the channel to post in\n     * @param params.content - The content of the post (supports markdown)\n     * @returns Promise resolving to the created post\n     *\n     * @example\n     * ```typescript\n     * const { data: post } = await memberstack.createPost({\n     *   channelKey: 'blog-comments',\n     *   content: 'Great article! Thanks for sharing.'\n     * });\n     * console.log('Posted:', post.id);\n     * ```\n     */\n    createPost(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/posts`,\n          data: {\n            channelKey: params.channelKey,\n            content: params.content,\n            _url: window.location.origin + window.location.pathname\n          }\n        });\n      });\n    },\n    /**\n     * Updates an existing post's content.\n     * Only the post author can update their post.\n     *\n     * @param params - Update data\n     * @param params.postId - The ID of the post to update\n     * @param params.content - The new content for the post\n     * @returns Promise resolving to the updated post\n     *\n     * @example\n     * ```typescript\n     * const { data: post } = await memberstack.updatePost({\n     *   postId: 'post_abc123',\n     *   content: 'Updated: Great article with corrections!'\n     * });\n     * ```\n     */\n    updatePost(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"PATCH\" /* PATCH */,\n          url: `/comments/posts/${params.postId}/update`,\n          data: {\n            content: params.content\n          }\n        });\n      });\n    },\n    /**\n     * Votes on a post (upvote, downvote, or remove vote).\n     *\n     * @param params - Vote data\n     * @param params.postId - The ID of the post to vote on\n     * @param params.vote - Vote type: 'UP', 'DOWN', or 'NONE' to remove vote\n     * @returns Promise resolving when the vote is recorded\n     *\n     * @example\n     * ```typescript\n     * // Upvote a post\n     * await memberstack.postVote({\n     *   postId: 'post_abc123',\n     *   vote: 'UP'\n     * });\n     *\n     * // Remove vote\n     * await memberstack.postVote({\n     *   postId: 'post_abc123',\n     *   vote: 'NONE'\n     * });\n     * ```\n     */\n    postVote(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/posts/${params.postId}/vote`,\n          data: {\n            vote: params.vote\n          }\n        });\n      });\n    },\n    /**\n     * Deletes a post.\n     * Only the post author can delete their post.\n     *\n     * @param params - Delete parameters\n     * @param params.postId - The ID of the post to delete\n     * @returns Promise resolving when the post is deleted\n     *\n     * @example\n     * ```typescript\n     * await memberstack.deletePost({\n     *   postId: 'post_abc123'\n     * });\n     * ```\n     */\n    deletePost(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"DELETE\" /* DELETE */,\n          url: `/comments/posts/${params.postId}`\n        });\n      });\n    },\n    /**\n     * Creates a reply thread on a post.\n     *\n     * @param params - Thread data\n     * @param params.postId - The ID of the post to reply to\n     * @param params.content - The content of the reply (supports markdown)\n     * @returns Promise resolving to the created thread\n     *\n     * @example\n     * ```typescript\n     * const { data: thread } = await memberstack.createThread({\n     *   postId: 'post_abc123',\n     *   content: 'I agree with this point!'\n     * });\n     * ```\n     */\n    createThread(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/threads`,\n          data: {\n            postId: params.postId,\n            content: params.content\n          }\n        });\n      });\n    },\n    /**\n     * Updates an existing thread's content.\n     * Only the thread author can update their thread.\n     *\n     * @param params - Update data\n     * @param params.threadId - The ID of the thread to update\n     * @param params.content - The new content for the thread\n     * @returns Promise resolving to the updated thread\n     *\n     * @example\n     * ```typescript\n     * const { data: thread } = await memberstack.updateThread({\n     *   threadId: 'thread_xyz789',\n     *   content: 'Updated reply with more details.'\n     * });\n     * ```\n     */\n    updateThread(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"PATCH\" /* PATCH */,\n          url: `/comments/threads/${params.threadId}/update`,\n          data: {\n            content: params.content\n          }\n        });\n      });\n    },\n    /**\n     * Votes on a thread (upvote, downvote, or remove vote).\n     *\n     * @param params - Vote data\n     * @param params.threadId - The ID of the thread to vote on\n     * @param params.vote - Vote type: 'UP', 'DOWN', or 'NONE' to remove vote\n     * @returns Promise resolving when the vote is recorded\n     *\n     * @example\n     * ```typescript\n     * await memberstack.threadVote({\n     *   threadId: 'thread_xyz789',\n     *   vote: 'UP'\n     * });\n     * ```\n     */\n    threadVote(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/comments/threads/${params.threadId}/vote`,\n          data: {\n            vote: params.vote\n          }\n        });\n      });\n    },\n    /**\n     * Deletes a thread.\n     * Only the thread author can delete their thread.\n     *\n     * @param params - Delete parameters\n     * @param params.threadId - The ID of the thread to delete\n     * @returns Promise resolving when the thread is deleted\n     *\n     * @example\n     * ```typescript\n     * await memberstack.deleteThread({\n     *   threadId: 'thread_xyz789'\n     * });\n     * ```\n     */\n    deleteThread(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"DELETE\" /* DELETE */,\n          url: `/comments/threads/${params.threadId}`\n        });\n      });\n    },\n    /**\n     * Retrieves gated/secure content by its content ID.\n     * Use this to fetch content that requires specific plan access.\n     *\n     * @param params - Content parameters\n     * @param params.contentId - The ID of the secure content block to retrieve\n     * @returns Promise resolving to the secure content data\n     *\n     * @example\n     * ```typescript\n     * const { data: content } = await memberstack.getSecureContent({\n     *   contentId: 'cnt_abc123'\n     * });\n     * document.getElementById('premium-content').innerHTML = content.content;\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Protected Content Documentation}\n     */\n    getSecureContent(params) {\n      return __async(this, null, function* () {\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: \"/secure-content\",\n          data: {\n            contentId: params.contentId\n          }\n        });\n        return data;\n      });\n    },\n    /**\n     * Signs up a new member using an OAuth provider (e.g., Google, Facebook).\n     * Opens a popup window for the OAuth flow. On success, the member is created and logged in.\n     *\n     * @param params - Signup parameters\n     * @param params.provider - The OAuth provider to use ('google', 'facebook', etc.)\n     * @param params.customFields - Optional custom field values to set during signup\n     * @param params.plans - Optional array of plan objects to assign on signup\n     * @param params.inviteToken - Optional team invite token\n     * @returns Promise resolving to the authenticated member data\n     *\n     * @example Sign up with Google\n     * ```typescript\n     * const { data } = await memberstack.signupWithProvider({\n     *   provider: 'google'\n     * });\n     * console.log('Signed up:', data.member.auth.email);\n     * ```\n     *\n     * @example Sign up with custom fields\n     * ```typescript\n     * await memberstack.signupWithProvider({\n     *   provider: 'google',\n     *   customFields: { role: 'developer' },\n     *   plans: [{ planId: 'pln_free' }]\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    signupWithProvider(params) {\n      return __async(this, null, function* () {\n        const customFields = encodeURIComponent(params.customFields ? JSON.stringify(params.customFields) : \"{}\");\n        const plans = encodeURIComponent(params.plans ? JSON.stringify(params.plans) : \"[]\");\n        const conversionData = getConversionData();\n        const queryParams = new URLSearchParams(__spreadProps(__spreadValues(__spreadProps(__spreadValues(__spreadValues({\n          provider: params.provider,\n          customFields,\n          plans,\n          appId: appId != null ? appId : \"\"\n        }, publicKey && {\n          publicKey\n        }), params.inviteToken && {\n          inviteToken: params.inviteToken\n        }), {\n          url: window.location.pathname,\n          origin: window.location.hostname\n        }), conversionData.sessionId && { sessionId: conversionData.sessionId }), {\n          browser: conversionData.browser,\n          os: conversionData.os,\n          screenSize: conversionData.screenSize\n        }));\n        return openSignInWindow(`${domain}/auth-provider/signup?${queryParams}`, \"signup\");\n      });\n    },\n    /**\n     * Logs in an existing member using an OAuth provider (e.g., Google, Facebook).\n     * Opens a popup window for the OAuth flow. Member must already have an account linked to this provider.\n     *\n     * @param params - Login parameters\n     * @param params.provider - The OAuth provider to use ('google', 'facebook', etc.)\n     * @param params.allowSignup - If true, creates a new account if one doesn't exist (default: false)\n     * @returns Promise resolving to the authenticated member data\n     *\n     * @example Log in with Google\n     * ```typescript\n     * const { data } = await memberstack.loginWithProvider({\n     *   provider: 'google'\n     * });\n     * console.log('Logged in:', data.member.auth.email);\n     * ```\n     *\n     * @example Allow signup if account doesn't exist\n     * ```typescript\n     * const { data } = await memberstack.loginWithProvider({\n     *   provider: 'google',\n     *   allowSignup: true\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    loginWithProvider(params) {\n      return __async(this, null, function* () {\n        const allowSignup = encodeURIComponent(params.allowSignup === true ? \"true\" : \"false\");\n        const queryParams = new URLSearchParams(__spreadProps(__spreadValues({\n          provider: params.provider,\n          appId: appId != null ? appId : \"\"\n        }, publicKey && {\n          publicKey\n        }), {\n          origin: window.location.hostname,\n          allowSignup\n        }));\n        return openSignInWindow(`${domain}/auth-provider/login?${queryParams}`, \"login\");\n      });\n    },\n    /**\n     * Connects an OAuth provider to the current member's account.\n     * Allows the member to use additional OAuth providers for login.\n     * Member must be logged in to use this method.\n     *\n     * @param params - Provider parameters\n     * @param params.provider - The OAuth provider to connect ('google', 'facebook', etc.)\n     * @returns Promise resolving to the connection result\n     *\n     * @example Connect Google to existing account\n     * ```typescript\n     * await memberstack.connectProvider({\n     *   provider: 'google'\n     * });\n     * // Member can now log in with either email/password or Google\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    connectProvider(params) {\n      return __async(this, null, function* () {\n        const memberToken = getMemberToken();\n        const queryParams = new URLSearchParams(__spreadProps(__spreadValues(__spreadValues({\n          provider: params.provider,\n          appId: appId != null ? appId : \"\"\n        }, publicKey && {\n          publicKey\n        }), memberToken && { member: memberToken }), {\n          origin: window.location.hostname\n        }));\n        return openSignInWindow(`${domain}/auth-provider/connect?${queryParams}`, \"connect\");\n      });\n    },\n    /**\n     * Disconnects an OAuth provider from the current member's account.\n     * After disconnecting, the member can no longer use this provider to log in.\n     * Member must be logged in and have another login method available.\n     *\n     * @param params - Provider parameters\n     * @param params.provider - The OAuth provider to disconnect ('google', 'facebook', etc.)\n     * @returns Promise resolving to the disconnection result\n     *\n     * @example Disconnect Google from account\n     * ```typescript\n     * await memberstack.disconnectProvider({\n     *   provider: 'google'\n     * });\n     * // Member must now use email/password or another connected provider\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    disconnectProvider(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: \"/member/disconnect-provider\",\n          data: {\n            provider: params.provider\n          }\n        });\n      });\n    },\n    /**\n     * Retrieves both app configuration and current member data in a single request.\n     * Used internally for initial page load to efficiently fetch all required data.\n     * Also handles session tracking and conversion data.\n     *\n     * @internal\n     * @param params - Optional parameters\n     * @param params.trackPageView - Whether to track this as a page view for analytics (default: false)\n     * @returns Promise resolving to both app and member data\n     */\n    getAppAndMember(params) {\n      return __async(this, null, function* () {\n        var _a2, _b;\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/app-member`,\n          data: {\n            data: {\n              includeSSOText: window == null ? void 0 : window.ssoUI,\n              trackPageView: params == null ? void 0 : params.trackPageView,\n              sessionData: __spreadValues({}, getConversionData())\n            }\n          }\n        });\n        try {\n          const backendSessionId = (_b = (_a2 = data.data) == null ? void 0 : _a2.sessionData) == null ? void 0 : _b.sessionId;\n          const storedSessionId = getSessionId();\n          if (storedSessionId !== backendSessionId)\n            setSessionId(backendSessionId);\n        } catch (e) {\n        }\n        return data;\n      });\n    },\n    /**\n     * Records a page view (and mints/reuses the session) via the lightweight\n     * `/page-view` endpoint — no app+member payload, so SPA route changes stay cheap.\n     * This is what the automatic page-view tracker calls. Webflow does NOT use this; it\n     * tracks page views through `getAppAndMember({ trackPageView: true })` since it\n     * fetches app+member on every load anyway.\n     *\n     * @internal\n     */\n    trackPageView() {\n      return __async(this, null, function* () {\n        var _a2, _b;\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/page-view`,\n          data: {\n            data: {\n              sessionData: __spreadValues({}, getConversionData())\n            }\n          }\n        });\n        try {\n          const backendSessionId = (_b = (_a2 = data == null ? void 0 : data.data) == null ? void 0 : _a2.sessionData) == null ? void 0 : _b.sessionId;\n          const storedSessionId = getSessionId();\n          if (backendSessionId && storedSessionId !== backendSessionId)\n            setSessionId(backendSessionId);\n        } catch (e) {\n        }\n      });\n    },\n    /**\n     * Retrieves your Memberstack app configuration.\n     * Returns app settings including authentication options, branding, and enabled features.\n     *\n     * @returns Promise resolving to the app configuration\n     *\n     * @example\n     * ```typescript\n     * const { data: app } = await memberstack.getApp();\n     * console.log('App name:', app.name);\n     * console.log('OAuth providers:', app.authProviders);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/quick-start | Quick Start Documentation}\n     */\n    getApp() {\n      return __async(this, null, function* () {\n        var _a2;\n        const queryParams = new URLSearchParams({\n          includeSSOText: String((_a2 = window == null ? void 0 : window.ssoUI) != null ? _a2 : \"\")\n        });\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/app?${queryParams}`\n        });\n      });\n    },\n    /**\n     * Authenticates a member using their email and password.\n     * On success, the member's session is automatically stored and they become the current user.\n     *\n     * @param params - Login credentials\n     * @param params.email - The member's email address\n     * @param params.password - The member's password\n     * @returns Promise resolving to the authenticated member data and tokens\n     * @throws When credentials are invalid or account doesn't exist\n     *\n     * @example\n     * ```typescript\n     * try {\n     *   const { data } = await memberstack.loginMemberEmailPassword({\n     *     email: 'user@example.com',\n     *     password: 'securePassword123'\n     *   });\n     *   console.log('Logged in:', data.member.auth.email);\n     * } catch (error) {\n     *   console.error('Login failed:', error.message);\n     * }\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    loginMemberEmailPassword(params, options) {\n      return __async(this, null, function* () {\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/login`,\n          data: {\n            email: params.email,\n            password: params.password,\n            options\n          }\n        });\n        const sessionDurationDays = getSessionDurationDays(data.data.tokens.expires);\n        setPersistedMember(data.data.member);\n        setMemberToken(data.data.tokens.accessToken, sessionDurationDays);\n        return data;\n      });\n    },\n    /**\n     * Sends a passwordless login code to an existing member's email.\n     * The member will receive a one-time code they can use to log in without a password.\n     *\n     * @param params - Email parameters\n     * @param params.email - The member's email address\n     * @returns Promise resolving to success confirmation\n     * @throws When the email is not associated with an existing member\n     *\n     * @example\n     * ```typescript\n     * // Step 1: Send the code\n     * await memberstack.sendMemberLoginPasswordlessEmail({\n     *   email: 'user@example.com'\n     * });\n     * // User receives email with code\n     *\n     * // Step 2: Complete login with the code (see loginMemberPasswordless)\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    sendMemberLoginPasswordlessEmail(params, options) {\n      return __async(this, null, function* () {\n        return yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/passwordless/login/send`,\n          data: {\n            email: params.email\n          }\n        });\n      });\n    },\n    /**\n     * Sends a passwordless signup code to a new member's email.\n     * Use this for registration flows where you don't want to collect passwords.\n     *\n     * @param params - Email parameters\n     * @param params.email - The new member's email address\n     * @returns Promise resolving to success confirmation\n     *\n     * @example\n     * ```typescript\n     * // Step 1: Send the signup code\n     * await memberstack.sendMemberSignupPasswordlessEmail({\n     *   email: 'newuser@example.com'\n     * });\n     *\n     * // Step 2: Complete signup with the code (see signupMemberPasswordless)\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    sendMemberSignupPasswordlessEmail(params, options) {\n      return __async(this, null, function* () {\n        return yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/passwordless/signup/send`,\n          data: {\n            email: params.email\n          }\n        });\n      });\n    },\n    /**\n     * Completes passwordless login using the code sent via email.\n     * On success, the member is logged in and their session is stored.\n     *\n     * @param params - Login credentials\n     * @param params.email - The member's email address\n     * @param params.passwordlessToken - The one-time code from the email\n     * @returns Promise resolving to the authenticated member data and tokens\n     * @throws When the code is invalid or expired\n     *\n     * @example Complete passwordless login flow\n     * ```typescript\n     * // After user enters the code from their email\n     * const { data } = await memberstack.loginMemberPasswordless({\n     *   email: 'user@example.com',\n     *   passwordlessToken: '123456' // Code from email\n     * });\n     * console.log('Logged in:', data.member.auth.email);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    loginMemberPasswordless(params, options) {\n      return __async(this, null, function* () {\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/passwordless/login`,\n          data: {\n            passwordlessToken: params.passwordlessToken,\n            email: params.email,\n            options\n          }\n        });\n        const sessionDurationDays = getSessionDurationDays(data.data.tokens.expires);\n        setPersistedMember(data.data.member);\n        setMemberToken(data.data.tokens.accessToken, sessionDurationDays);\n        return data;\n      });\n    },\n    /**\n     * Retrieves details for a specific plan by ID.\n     * Returns plan information including name, description, and pricing.\n     *\n     * @param params - Plan parameters\n     * @param params.planId - The ID of the plan to retrieve\n     * @returns Promise resolving to the plan details\n     *\n     * @example\n     * ```typescript\n     * const { data: plan } = await memberstack.getPlan({\n     *   planId: 'pln_pro123'\n     * });\n     * console.log('Plan:', plan.name);\n     * console.log('Prices:', plan.prices);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    getPlan(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/app/plans/${params.planId}`\n        });\n      });\n    },\n    /**\n     * Retrieves all plans configured for your Memberstack app.\n     * Returns both free and paid plans with their pricing information.\n     *\n     * @returns Promise resolving to an array of plans\n     *\n     * @example List all plans\n     * ```typescript\n     * const { data: plans } = await memberstack.getPlans();\n     *\n     * plans.forEach(plan => {\n     *   console.log(plan.name, plan.id);\n     *   plan.prices?.forEach(price => {\n     *     console.log(`  ${price.name}: ${price.amount} ${price.currency}`);\n     *   });\n     * });\n     * ```\n     *\n     * @example Build a pricing page\n     * ```typescript\n     * const { data: plans } = await memberstack.getPlans();\n     *\n     * const pricingHtml = plans.map(plan => `\n     *   <div class=\"plan\">\n     *     <h3>${plan.name}</h3>\n     *     <p>${plan.description}</p>\n     *   </div>\n     * `).join('');\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    getPlans() {\n      return __async(this, null, function* () {\n        const { data } = yield sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/app`\n        });\n        return {\n          data: data.plans\n        };\n      });\n    },\n    /**\n     * Retrieves URL restriction groups configured for your app.\n     * These define which URLs require specific plans or authentication to access.\n     *\n     * @returns Promise resolving to an array of content access groups\n     *\n     * @example\n     * ```typescript\n     * const { data: groups } = await memberstack.getRestrictedUrlGroups();\n     *\n     * groups.forEach(group => {\n     *   console.log('Group:', group.name);\n     *   console.log('Required plans:', group.plans.map(p => p.id));\n     *   console.log('URLs:', group.urls);\n     * });\n     * ```\n     */\n    getRestrictedUrlGroups() {\n      return __async(this, null, function* () {\n        const { data } = yield sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/app`\n        });\n        return {\n          data: data.contentGroups\n        };\n      });\n    },\n    /**\n     * Retrieves the currently authenticated member's data.\n     * Returns `null` if no user is logged in.\n     *\n     * @param options - Optional configuration\n     * @param options.useCache - If true, returns cached member data instead of fetching from server\n     * @returns Promise resolving to the current member's data, or null if not authenticated\n     *\n     * @example Check if user is logged in\n     * ```typescript\n     * const { data: member } = await memberstack.getCurrentMember();\n     *\n     * if (member) {\n     *   console.log('Logged in as:', member.auth.email);\n     *   console.log('Plans:', member.planConnections);\n     * } else {\n     *   console.log('Not logged in');\n     * }\n     * ```\n     *\n     * @example Access member properties\n     * ```typescript\n     * const { data: member } = await memberstack.getCurrentMember();\n     *\n     * if (member) {\n     *   const email = member.auth.email;\n     *   const isVerified = member.verified;\n     *   const customFields = member.customFields;\n     *   const hasPro = member.planConnections.some(p => p.planId === 'pln_pro');\n     * }\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    getCurrentMember(options) {\n      return __async(this, null, function* () {\n        const memberToken = getMemberToken();\n        if (!memberToken)\n          return { data: null };\n        const getMemberRequest = sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/member`,\n          headers: addHeaders(options)\n        });\n        function setMember() {\n          return __async(this, null, function* () {\n            const data = yield getMemberRequest;\n            updatePersistedMember(data.data);\n          });\n        }\n        setMember();\n        if ((options == null ? void 0 : options.useCache) === true) {\n          const member = getPersistedMember();\n          return { data: member };\n        } else {\n          return getMemberRequest;\n        }\n      });\n    },\n    /**\n     * Retrieves the current member's JSON data store.\n     * This is a flexible key-value store for storing arbitrary member data.\n     *\n     * @returns Promise resolving to the member's JSON data object\n     *\n     * @example\n     * ```typescript\n     * const { data: json } = await memberstack.getMemberJSON();\n     * console.log('Preferences:', json.preferences);\n     * console.log('Last visited:', json.lastVisitedPage);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member JSON Documentation}\n     */\n    getMemberJSON(options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/member/json`,\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Updates the current member's JSON data store.\n     * You can store any JSON-serializable data. This completely replaces the existing JSON.\n     *\n     * @param params - JSON data to store\n     * @param params.json - Object containing the data to store\n     * @returns Promise resolving to the updated JSON data\n     *\n     * @example Store user preferences\n     * ```typescript\n     * await memberstack.updateMemberJSON({\n     *   json: {\n     *     preferences: { theme: 'dark', notifications: true },\n     *     lastVisitedPage: '/dashboard',\n     *     onboardingComplete: true\n     *   }\n     * });\n     * ```\n     *\n     * @example Store app-specific data\n     * ```typescript\n     * await memberstack.updateMemberJSON({\n     *   json: {\n     *     savedItems: ['item1', 'item2'],\n     *     progress: { level: 5, score: 1200 }\n     *   }\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member JSON Documentation}\n     */\n    updateMemberJSON(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/json`,\n          data: {\n            json: params.json\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Adds a free plan to the current member.\n     * For paid plans, use `purchasePlansWithCheckout()` instead.\n     *\n     * @param params - Plan parameters\n     * @param params.planId - The ID of the free plan to add\n     * @returns Promise resolving to the updated member data with the new plan\n     *\n     * @example Add a free tier plan\n     * ```typescript\n     * const { data } = await memberstack.addPlan({\n     *   planId: 'pln_free_tier'\n     * });\n     * console.log('Plan added, redirect:', data.redirect);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    addPlan(params, options) {\n      return __async(this, null, function* () {\n        var _a2;\n        const result = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/plans/add`,\n          data: {\n            planId: params.planId\n          },\n          headers: addHeaders(options)\n        });\n        if ((_a2 = result == null ? void 0 : result.data) == null ? void 0 : _a2.member) {\n          setPersistedMember(result.data.member);\n        }\n        return result;\n      });\n    },\n    /**\n     * Initiates a Stripe checkout session for purchasing a paid plan.\n     * By default, redirects the user to Stripe's hosted checkout page.\n     *\n     * @param params - Checkout configuration\n     * @param params.priceId - The Memberstack price ID to purchase (e.g., 'prc_monthly_pro')\n     * @param params.successUrl - URL to redirect to after successful payment (relative or absolute)\n     * @param params.cancelUrl - URL to redirect to if user cancels checkout (relative or absolute)\n     * @param params.couponId - Optional Stripe coupon ID to apply\n     * @param params.autoRedirect - Set to `false` to get the checkout URL without redirecting\n     * @returns Promise resolving to checkout data (includes URL if autoRedirect is false)\n     *\n     * @example Start checkout for a plan\n     * ```typescript\n     * await memberstack.purchasePlansWithCheckout({\n     *   priceId: 'prc_monthly_pro',\n     *   successUrl: '/welcome',\n     *   cancelUrl: '/pricing'\n     * });\n     * // User is redirected to Stripe checkout\n     * ```\n     *\n     * @example Get checkout URL without redirecting\n     * ```typescript\n     * const { data } = await memberstack.purchasePlansWithCheckout({\n     *   priceId: 'prc_monthly_pro',\n     *   successUrl: '/welcome',\n     *   cancelUrl: '/pricing',\n     *   autoRedirect: false\n     * });\n     * console.log('Checkout URL:', data.url);\n     * ```\n     *\n     * @example Apply a coupon\n     * ```typescript\n     * await memberstack.purchasePlansWithCheckout({\n     *   priceId: 'prc_annual_pro',\n     *   couponId: 'SAVE20',\n     *   successUrl: '/welcome',\n     *   cancelUrl: '/pricing'\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    purchasePlansWithCheckout(params, options) {\n      return __async(this, null, function* () {\n        function getRedirectURL(URL2) {\n          let redirectUrl = window.location.href;\n          const urlParam = URL2;\n          if (urlParam) {\n            if (urlParam.indexOf(\"http://\") === 0 || urlParam.indexOf(\"https://\") === 0) {\n              redirectUrl = urlParam;\n            } else {\n              redirectUrl = window.location.origin + urlParam;\n            }\n          }\n          return redirectUrl;\n        }\n        const success_url = params.successUrl ? getRedirectURL(params.successUrl) : void 0;\n        const cancel_url = params.cancelUrl ? getRedirectURL(params.cancelUrl) : window.location.href;\n        const request = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/plans/create-checkout-session`,\n          data: {\n            priceId: params.priceId,\n            couponId: params.couponId,\n            metadataForCheckout: params.metadataForCheckout,\n            //window.location requires dom\n            success_url,\n            cancel_url,\n            origin_url: window.location.href,\n            conversionData: __spreadValues({\n              url: window.location.pathname\n            }, getConversionData())\n          },\n          headers: addHeaders(options)\n        });\n        if (params.autoRedirect === false) {\n          return request;\n        }\n        window.location.href = request.data.url;\n        return request;\n      });\n    },\n    /**\n     * Opens the Stripe Customer Portal for the current member.\n     * The portal allows members to manage their subscriptions, update payment methods, and view invoices.\n     * By default, redirects the user to the Stripe-hosted portal.\n     *\n     * @param params - Portal configuration\n     * @param params.returnUrl - URL to redirect to when member exits the portal (relative or absolute)\n     * @param params.priceIds - Optional array of price IDs to show for plan switching\n     * @param params.autoRedirect - Set to `false` to get the portal URL without redirecting\n     * @returns Promise resolving to portal data (includes URL if autoRedirect is false)\n     *\n     * @example Open customer portal\n     * ```typescript\n     * await memberstack.launchStripeCustomerPortal({\n     *   returnUrl: '/account'\n     * });\n     * // User is redirected to Stripe Customer Portal\n     * ```\n     *\n     * @example Get portal URL without redirecting\n     * ```typescript\n     * const { data } = await memberstack.launchStripeCustomerPortal({\n     *   returnUrl: '/account',\n     *   autoRedirect: false\n     * });\n     * console.log('Portal URL:', data.url);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    launchStripeCustomerPortal(params, options) {\n      return __async(this, null, function* () {\n        function getRedirectURL(URL2) {\n          let redirectUrl = window.location.href;\n          const urlParam = URL2;\n          if (urlParam) {\n            if (urlParam.indexOf(\"http://\") === 0 || urlParam.indexOf(\"https://\") === 0) {\n              redirectUrl = urlParam;\n            } else {\n              redirectUrl = window.location.origin + urlParam;\n            }\n          }\n          return redirectUrl;\n        }\n        const returnUrl = (params == null ? void 0 : params.returnUrl) ? getRedirectURL(params.returnUrl) : void 0;\n        const request = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/create-billing-portal-session`,\n          data: __spreadValues({\n            //window.location requires dom\n            return_url: returnUrl,\n            origin_url: window.location.href\n          }, params && {\n            priceIds: params.priceIds,\n            configuration: params.configuration\n          }),\n          headers: addHeaders(options)\n        });\n        if ((params == null ? void 0 : params.autoRedirect) === false) {\n          return request;\n        }\n        window.location.href = request.data.url;\n        return request;\n      });\n    },\n    /**\n     * Removes a plan from the current member.\n     * For paid plans, this will cancel the subscription.\n     *\n     * @param params - Plan parameters\n     * @param params.planId - The ID of the plan to remove\n     * @returns Promise resolving to the updated member data\n     *\n     * @example Remove a plan\n     * ```typescript\n     * await memberstack.removePlan({\n     *   planId: 'pln_premium'\n     * });\n     * // Plan removed/subscription cancelled\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/plan-management | Plan Management Documentation}\n     */\n    removePlan(params, options) {\n      return __async(this, null, function* () {\n        var _a2;\n        const result = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/plans/remove`,\n          data: {\n            planId: params.planId\n          },\n          headers: addHeaders(options)\n        });\n        if ((_a2 = result == null ? void 0 : result.data) == null ? void 0 : _a2.member) {\n          setPersistedMember(result.data.member);\n        }\n        return result;\n      });\n    },\n    /**\n     * Updates the current member's custom fields.\n     * Only updates the fields you specify; other fields remain unchanged.\n     *\n     * @param params - Update data\n     * @param params.customFields - Object containing custom field key-value pairs to update\n     * @returns Promise resolving to the updated member data\n     *\n     * @example Update custom fields\n     * ```typescript\n     * const { data: member } = await memberstack.updateMember({\n     *   customFields: {\n     *     firstName: 'Jane',\n     *     company: 'Acme Inc',\n     *     preferences: { theme: 'dark' }\n     *   }\n     * });\n     * console.log('Updated:', member.customFields);\n     * ```\n     *\n     * @example Update a single field\n     * ```typescript\n     * await memberstack.updateMember({\n     *   customFields: {\n     *     lastLoginPage: window.location.pathname\n     *   }\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    updateMember(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member`,\n          data: __spreadValues({}, params.customFields && { customFields: params.customFields }),\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Updates the current member's authentication credentials (email and/or password).\n     * Requires the current password to verify the member's identity.\n     *\n     * @param params - Auth update parameters\n     * @param params.email - New email address (optional)\n     * @param params.oldPassword - Current password (required for password changes)\n     * @param params.newPassword - New password (optional)\n     * @returns Promise resolving to the updated member data\n     * @throws When the old password is incorrect\n     *\n     * @example Change email\n     * ```typescript\n     * await memberstack.updateMemberAuth({\n     *   email: 'newemail@example.com',\n     *   oldPassword: 'currentPassword'\n     * });\n     * ```\n     *\n     * @example Change password\n     * ```typescript\n     * await memberstack.updateMemberAuth({\n     *   oldPassword: 'currentPassword',\n     *   newPassword: 'newSecurePassword123'\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    updateMemberAuth(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member-auth`,\n          data: __spreadValues(__spreadValues(__spreadValues({}, params.email && { email: params.email }), params.oldPassword && { oldPassword: params.oldPassword }), params.newPassword && { newPassword: params.newPassword }),\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Sets a password for a member who signed up via passwordless or OAuth.\n     * Use this when a member wants to add password-based login to their account.\n     *\n     * @param params - Password parameters\n     * @param params.password - The password to set\n     * @returns Promise resolving to the updated member data\n     *\n     * @example\n     * ```typescript\n     * // For members who signed up via Google OAuth or passwordless\n     * await memberstack.setPassword({\n     *   password: 'newSecurePassword123'\n     * });\n     * // Member can now log in with email/password\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    setPassword(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/set-password`,\n          data: {\n            password: params.password\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Completes passwordless signup using the code sent via email.\n     * Creates a new member account without requiring a password.\n     *\n     * @param params - Signup details\n     * @param params.email - The new member's email address\n     * @param params.passwordlessToken - The one-time code from the signup email\n     * @param params.customFields - Optional custom field values defined in your Memberstack dashboard\n     * @param params.plans - Optional array of plan IDs to assign on signup (for free plans)\n     * @param params.metaData - Optional metadata to store with the member\n     * @returns Promise resolving to the new member data and tokens\n     * @throws When the code is invalid, expired, or email is already in use\n     *\n     * @example Complete passwordless signup flow\n     * ```typescript\n     * // Step 1: Send signup code (see sendMemberSignupPasswordlessEmail)\n     * // Step 2: User enters code, complete signup:\n     * const { data } = await memberstack.signupMemberPasswordless({\n     *   email: 'newuser@example.com',\n     *   passwordlessToken: '123456',\n     *   customFields: { firstName: 'Jane' }\n     * });\n     * console.log('Welcome!', data.member.id);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    signupMemberPasswordless(params, options) {\n      return __async(this, null, function* () {\n        var _a2, _b, _c;\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/signup?isPasswordless=true`,\n          data: __spreadValues(__spreadProps(__spreadValues({\n            email: params.email,\n            customFields: params.customFields,\n            passwordlessToken: params.passwordlessToken,\n            metaData: params.metaData,\n            // Forward captcha + team-invite tokens like signupMemberEmailPassword\n            // does — otherwise captcha-protected apps and team-invite signups\n            // cannot complete via the passwordless flow.\n            captchaToken: params.captchaToken,\n            inviteToken: params.inviteToken\n          }, params.plans && { plans: params.plans }), {\n            //internal use only\n            origin_domain: window.location.origin,\n            conversionData: __spreadValues(__spreadProps(__spreadValues({}, (_a2 = params == null ? void 0 : params.conversionData) != null ? _a2 : {}), {\n              url: window.location.pathname\n            }), getConversionData()),\n            options\n          }), ((_b = window.Rewardful) == null ? void 0 : _b.referral) && {\n            rewardfulData: {\n              referral: window.Rewardful.referral,\n              coupon: (_c = window.Rewardful.coupon) == null ? void 0 : _c.id\n            }\n          })\n        });\n        const sessionDurationDays = getSessionDurationDays(data.data.tokens.expires);\n        setPersistedMember(data.data.member);\n        setMemberToken(data.data.tokens.accessToken, sessionDurationDays);\n        return data;\n      });\n    },\n    /**\n     * Creates a new member account with email and password.\n     * On success, the member is automatically logged in and their session is stored.\n     *\n     * @param params - Signup details\n     * @param params.email - The new member's email address\n     * @param params.password - The new member's password (minimum 8 characters recommended)\n     * @param params.customFields - Optional custom field values defined in your Memberstack dashboard\n     * @param params.plans - Optional array of plan IDs to assign on signup (for free plans)\n     * @param params.metaData - Optional metadata to store with the member\n     * @param params.inviteToken - Optional team invite token for team signups\n     * @returns Promise resolving to the new member data and tokens\n     * @throws When email is already in use or validation fails\n     *\n     * @example Basic signup\n     * ```typescript\n     * const { data } = await memberstack.signupMemberEmailPassword({\n     *   email: 'newuser@example.com',\n     *   password: 'securePassword123'\n     * });\n     * console.log('Welcome!', data.member.id);\n     * ```\n     *\n     * @example Signup with custom fields and a free plan\n     * ```typescript\n     * const { data } = await memberstack.signupMemberEmailPassword({\n     *   email: 'newuser@example.com',\n     *   password: 'securePassword123',\n     *   customFields: {\n     *     firstName: 'Jane',\n     *     lastName: 'Doe',\n     *     company: 'Acme Inc'\n     *   },\n     *   plans: [{ planId: 'pln_free_tier' }]\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Signup Documentation}\n     */\n    signupMemberEmailPassword(params, options) {\n      return __async(this, null, function* () {\n        var _a2, _b, _c;\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/signup`,\n          data: __spreadValues(__spreadProps(__spreadValues({\n            email: params.email,\n            password: params.password,\n            customFields: params.customFields,\n            metaData: params.metaData,\n            captchaToken: params.captchaToken,\n            inviteToken: params.inviteToken\n          }, params.plans && { plans: params.plans }), {\n            //internal use only\n            origin_domain: window.location.origin,\n            conversionData: __spreadValues(__spreadProps(__spreadValues({}, (_a2 = params == null ? void 0 : params.conversionData) != null ? _a2 : {}), {\n              url: window.location.pathname\n            }), getConversionData()),\n            options\n          }), ((_b = window.Rewardful) == null ? void 0 : _b.referral) && {\n            rewardfulData: {\n              referral: window.Rewardful.referral,\n              coupon: (_c = window.Rewardful.coupon) == null ? void 0 : _c.id\n            }\n          })\n        });\n        const sessionDurationDays = getSessionDurationDays(data.data.tokens.expires);\n        setPersistedMember(data.data.member);\n        setMemberToken(data.data.tokens.accessToken, sessionDurationDays);\n        return data;\n      });\n    },\n    /**\n     * Joins a team using an invite token.\n     * The invite token is typically sent by a team admin via email.\n     *\n     * @param params - Join parameters\n     * @param params.inviteToken - The invite token received from the team admin\n     * @returns Promise resolving when the member has joined the team\n     *\n     * @example\n     * ```typescript\n     * // Extract token from URL (e.g., /join?token=abc123)\n     * const token = new URLSearchParams(window.location.search).get('token');\n     *\n     * await memberstack.joinTeam({\n     *   inviteToken: token\n     * });\n     * console.log('Successfully joined the team!');\n     * ```\n     */\n    joinTeam(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/team/join`,\n          data: {\n            inviteToken: params.inviteToken\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Retrieves information about a team the current member belongs to.\n     *\n     * @param params - Team parameters\n     * @param params.teamId - The ID of the team to retrieve\n     * @returns Promise resolving to the team details\n     *\n     * @example\n     * ```typescript\n     * const team = await memberstack.getTeam({\n     *   teamId: 'team_abc123'\n     * });\n     * console.log('Team members:', team);\n     * ```\n     */\n    getTeam(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/member/team/${params.teamId}`,\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Removes a member from a team.\n     * Only team admins can remove other members.\n     *\n     * @param params - Removal parameters\n     * @param params.teamId - The ID of the team\n     * @param params.memberId - The ID of the member to remove\n     * @returns Promise resolving when the member has been removed\n     *\n     * @example\n     * ```typescript\n     * await memberstack.removeMemberFromTeam({\n     *   teamId: 'team_abc123',\n     *   memberId: 'mem_xyz789'\n     * });\n     * console.log('Member removed from team');\n     * ```\n     */\n    removeMemberFromTeam(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/team/remove-member`,\n          data: {\n            teamId: params.teamId,\n            memberId: params.memberId\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Generates an invite token for a team.\n     * The token can be shared with users to invite them to join the team.\n     *\n     * @param params - Token parameters\n     * @param params.teamId - The ID of the team to generate an invite for\n     * @returns Promise resolving to the generated invite token\n     *\n     * @example\n     * ```typescript\n     * const invite = await memberstack.generateInviteToken({\n     *   teamId: 'team_abc123'\n     * });\n     * // Share the invite link with new team members\n     * const inviteUrl = `${window.location.origin}/join?token=${invite.token}`;\n     * ```\n     */\n    generateInviteToken(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/team/generate-invite-link`,\n          data: {\n            teamId: params.teamId\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Updates or removes the current member's profile image.\n     * Pass a File to upload a new image, or null to remove the existing image.\n     *\n     * @param params - Image parameters\n     * @param params.profileImage - The image file to upload, or null to remove\n     * @returns Promise resolving to the new profile image URL (or null if removed)\n     *\n     * @example Upload from file input\n     * ```typescript\n     * const input = document.querySelector('input[type=\"file\"]');\n     * const file = input.files[0];\n     *\n     * const { data } = await memberstack.updateMemberProfileImage({\n     *   profileImage: file\n     * });\n     * console.log('New image URL:', data.profileImage);\n     * ```\n     *\n     * @example Remove profile image\n     * ```typescript\n     * const { data } = await memberstack.updateMemberProfileImage({\n     *   profileImage: null\n     * });\n     * console.log('Image removed:', data.profileImage === null);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    updateMemberProfileImage(params) {\n      return __async(this, null, function* () {\n        if (params.profileImage === null) {\n          return sendRequest({\n            method: \"DELETE\" /* DELETE */,\n            url: `/member/profile-image`\n          });\n        }\n        const formData = new FormData();\n        formData.append(\"profileImage\", params.profileImage);\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/profile-image`,\n          data: formData,\n          contentType: \"multipart/form-data\"\n        });\n      });\n    },\n    /**\n     * Removes the current member's profile image.\n     * After deletion, the member's profileImage field will be null.\n     *\n     * @returns Promise resolving to confirmation that the image was removed\n     *\n     * @example\n     * ```typescript\n     * await memberstack.deleteMemberProfileImage();\n     * console.log('Profile image removed');\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Profile Documentation}\n     */\n    deleteMemberProfileImage() {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"DELETE\" /* DELETE */,\n          url: `/member/profile-image`\n        });\n      });\n    },\n    /**\n     * Sends a verification email to the current member.\n     * Use this when email verification is enabled in your Memberstack settings.\n     *\n     * @returns Promise resolving to success confirmation\n     *\n     * @example\n     * ```typescript\n     * await memberstack.sendMemberVerificationEmail();\n     * // Show message: \"Verification email sent! Check your inbox.\"\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Member Verification Documentation}\n     */\n    sendMemberVerificationEmail() {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/send-email-verification`,\n          data: {\n            //internal use only\n            origin_domain: window.location.origin\n          }\n        });\n      });\n    },\n    /**\n     * Sends a password reset email to a member.\n     * The email contains a link with a token that can be used to reset their password.\n     *\n     * @param params - Email parameters\n     * @param params.email - The member's email address\n     * @returns Promise resolving to success confirmation\n     *\n     * @example\n     * ```typescript\n     * await memberstack.sendMemberResetPasswordEmail({\n     *   email: 'user@example.com'\n     * });\n     * // Show confirmation: \"Check your email for reset instructions\"\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Password Reset Documentation}\n     */\n    sendMemberResetPasswordEmail(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/send-reset-password-email`,\n          data: {\n            email: params.email\n          }\n        });\n      });\n    },\n    /**\n     * Completes the password reset process using the token from the reset email.\n     * Typically called from a password reset page that receives the token via URL parameter.\n     *\n     * @param params - Reset parameters\n     * @param params.token - The reset token from the email link\n     * @param params.newPassword - The new password to set\n     * @returns Promise resolving to success confirmation\n     * @throws When the token is invalid or expired\n     *\n     * @example\n     * ```typescript\n     * // Get token from URL: /reset-password?token=abc123\n     * const token = new URLSearchParams(window.location.search).get('token');\n     *\n     * await memberstack.resetMemberPassword({\n     *   token,\n     *   newPassword: 'newSecurePassword123'\n     * });\n     * // Password updated, redirect to login\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Password Reset Documentation}\n     */\n    resetMemberPassword(params) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/auth/reset-password`,\n          data: {\n            token: params.token,\n            newPassword: params.newPassword\n          }\n        });\n      });\n    },\n    /**\n     * Signs out the currently authenticated member.\n     * Clears the local session and invalidates the server-side session.\n     *\n     * @returns Promise resolving to logout confirmation (may include a redirect URL)\n     *\n     * @example\n     * ```typescript\n     * await memberstack.logout();\n     * // User is now logged out\n     * window.location.href = '/login';\n     * ```\n     *\n     * @example With redirect handling\n     * ```typescript\n     * const { data } = await memberstack.logout();\n     * if (data.redirect) {\n     *   window.location.href = data.redirect;\n     * }\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/core-authentication | Authentication Documentation}\n     */\n    logout(options) {\n      return __async(this, null, function* () {\n        const data = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/member/logout`,\n          headers: addHeaders(options)\n        });\n        unsetPersistedMember();\n        return data;\n      });\n    },\n    // Data Tables Methods\n    /**\n     * Retrieves all data tables configured for your app.\n     * Returns the list of tables and their schemas.\n     *\n     * @returns Promise resolving to an array of data tables\n     *\n     * @example\n     * ```typescript\n     * const { data } = await memberstack.getDataTables();\n     * data.tables.forEach(table => {\n     *   console.log('Table:', table.name, table.key);\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    getDataTables(options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/v1/data-tables`,\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Retrieves a specific data table's schema and configuration.\n     *\n     * @param params - Table parameters\n     * @param params.table - The table key/identifier\n     * @returns Promise resolving to the table schema\n     *\n     * @example\n     * ```typescript\n     * const { data: table } = await memberstack.getDataTable({\n     *   table: 'posts'\n     * });\n     * console.log('Fields:', table.fields.map(f => f.name));\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    getDataTable(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"GET\" /* GET */,\n          url: `/v1/data-tables/${params.table || params.tableKey}`,\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Retrieves records from a data table with optional filtering and pagination.\n     *\n     * @param params - Query parameters\n     * @param params.table - The table key/identifier\n     * @param params.limit - Maximum number of records to return\n     * @param params.after - Cursor for pagination (record ID to start after)\n     * @param params.sortBy - Field to sort by\n     * @param params.sortDirection - Sort direction ('asc' or 'desc')\n     * @param params.createdAfter - Filter records created after this date\n     * @param params.createdBefore - Filter records created before this date\n     * @returns Promise resolving to records array with pagination info\n     *\n     * @example List records with pagination\n     * ```typescript\n     * const { data } = await memberstack.getDataRecords({\n     *   table: 'posts',\n     *   limit: 10,\n     *   sortBy: 'createdAt',\n     *   sortDirection: 'desc'\n     * });\n     * console.log('Records:', data.records);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    getDataRecords(params, options) {\n      return __async(this, null, function* () {\n        var _a2;\n        const query = {};\n        if (params.createdAfter || params.createdBefore) {\n          query.where = {\n            createdAt: __spreadValues(__spreadValues({}, params.createdAfter && { gte: params.createdAfter }), params.createdBefore && { lte: params.createdBefore })\n          };\n        }\n        if (params.sortBy) {\n          query.orderBy = {\n            [params.sortBy]: params.sortDirection || \"asc\"\n          };\n        }\n        if (params.limit) {\n          query.take = params.limit;\n        }\n        if (params.after) {\n          query.after = params.after;\n        }\n        const res = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/v1/data-records/query`,\n          data: {\n            table: params.table || params.tableKey,\n            query: {\n              findMany: query\n            }\n          },\n          headers: addHeaders(options)\n        });\n        if ((_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.records) {\n          return {\n            data: __spreadValues({\n              records: res.data.records\n            }, res.data.pagination && { pagination: res.data.pagination })\n          };\n        }\n        return res;\n      });\n    },\n    /**\n     * Creates a new record in a data table.\n     *\n     * @param params - Record parameters\n     * @param params.table - The table key/identifier\n     * @param params.data - The record data as key-value pairs\n     * @param params.memberId - Optional member ID to associate with the record\n     * @returns Promise resolving to the created record\n     *\n     * @example Create a new post\n     * ```typescript\n     * const { data: record } = await memberstack.createDataRecord({\n     *   table: 'posts',\n     *   data: {\n     *     title: 'My First Post',\n     *     content: 'Hello world!',\n     *     published: true\n     *   }\n     * });\n     * console.log('Created record:', record.id);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    createDataRecord(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/v1/data-records`,\n          data: __spreadValues({\n            table: params.table,\n            data: params.data\n          }, params.memberId && { memberId: params.memberId }),\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Retrieves a single record by ID from a data table.\n     *\n     * @param params - Record parameters\n     * @param params.table - The table key/identifier\n     * @param params.recordId - The ID of the record to retrieve\n     * @param params.include - Optional relations to include. Required to fetch\n     *   many-to-many relations (`REFERENCE_MANY` / `MEMBER_REFERENCE_MANY`),\n     *   which the API only serves for single-record reads.\n     * @returns Promise resolving to the record data\n     *\n     * @example Get a specific post\n     * ```typescript\n     * const { data: record } = await memberstack.getDataRecord({\n     *   table: 'posts',\n     *   recordId: 'rec_abc123'\n     * });\n     * console.log('Post:', record.title);\n     * ```\n     *\n     * @example Get a record with paginated many-to-many includes\n     * ```typescript\n     * const { data: record } = await memberstack.getDataRecord({\n     *   table: 'articles',\n     *   recordId: 'rec_article_123',\n     *   include: { tags: { take: 10 }, likedBy: { take: 25 } }\n     * });\n     * console.log(record.data.tags.records, record.data.tags.pagination.hasMore);\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    getDataRecord(params, options) {\n      return __async(this, null, function* () {\n        var _a2;\n        const res = yield sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/v1/data-records/query`,\n          data: {\n            table: params.table,\n            query: {\n              findUnique: __spreadValues({\n                where: { id: params.recordId }\n              }, params.include ? { include: params.include } : {})\n            }\n          },\n          headers: addHeaders(options)\n        });\n        if ((_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.record) {\n          return { data: res.data.record };\n        }\n        return res;\n      });\n    },\n    /**\n     * Updates an existing record in a data table.\n     *\n     * @param params - Update parameters\n     * @param params.recordId - The ID of the record to update\n     * @param params.data - The fields to update as key-value pairs\n     * @returns Promise resolving to the updated record\n     *\n     * @example Update a post\n     * ```typescript\n     * const { data: record } = await memberstack.updateDataRecord({\n     *   recordId: 'rec_abc123',\n     *   data: {\n     *     title: 'Updated Title',\n     *     published: false\n     *   }\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    updateDataRecord(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"PUT\" /* PUT */,\n          url: `/v1/data-records/${params.recordId}`,\n          data: {\n            data: params.data\n          },\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Deletes a record from a data table.\n     *\n     * @param params - Delete parameters\n     * @param params.recordId - The ID of the record to delete\n     * @returns Promise resolving to deletion confirmation\n     *\n     * @example Delete a post\n     * ```typescript\n     * await memberstack.deleteDataRecord({\n     *   recordId: 'rec_abc123'\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    deleteDataRecord(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"DELETE\" /* DELETE */,\n          url: `/v1/data-records/${params.recordId}`,\n          headers: addHeaders(options)\n        });\n      });\n    },\n    /**\n     * Queries records from a data table with advanced filtering.\n     * Provides more control than getDataRecords for complex queries.\n     *\n     * @param params - Query parameters\n     * @param params.table - The table key/identifier\n     * @param params.query - Query object with where, orderBy, take, skip options\n     * @returns Promise resolving to matching records\n     *\n     * @example Query with filters\n     * ```typescript\n     * const { data } = await memberstack.queryDataRecords({\n     *   table: 'posts',\n     *   query: {\n     *     where: {\n     *       published: { equals: true },\n     *       category: { equals: 'tech' }\n     *     },\n     *     orderBy: { createdAt: 'desc' },\n     *     take: 10\n     *   }\n     * });\n     * ```\n     *\n     * @example Query with member filter\n     * ```typescript\n     * const { data } = await memberstack.queryDataRecords({\n     *   table: 'comments',\n     *   query: {\n     *     where: {\n     *       memberId: { equals: 'mem_xyz789' }\n     *     }\n     *   }\n     * });\n     * ```\n     *\n     * @see {@link https://developers.memberstack.com/dom-package/member-journey | Data Tables Documentation}\n     */\n    queryDataRecords(params, options) {\n      return __async(this, null, function* () {\n        return sendRequest({\n          method: \"POST\" /* POST */,\n          url: `/v1/data-records/query`,\n          data: {\n            table: params.table || params.tableKey,\n            query: {\n              findMany: params.query\n            }\n          },\n          headers: addHeaders(options)\n        });\n      });\n    }\n  };\n};\n\n// src/utils/debug.ts\nvar debugEnabled = false;\nfunction setDebugMode(enabled) {\n  debugEnabled = enabled;\n  if (enabled && typeof window !== \"undefined\") {\n    console.log(\n      \"%c[Memberstack] Debug mode enabled\",\n      \"color: #6366f1; font-weight: bold;\"\n    );\n  }\n  if (!enabled && typeof window !== \"undefined\") {\n    delete window.__MEMBERSTACK_DEBUG__;\n  }\n}\nfunction debugLog(message, ...args) {\n  if (debugEnabled) {\n    console.log(\n      `%c[Memberstack] ${message}`,\n      \"color: #6366f1;\",\n      ...args\n    );\n  }\n}\nfunction initDevToolsIntegration(state) {\n  if (typeof window !== \"undefined\" && debugEnabled) {\n    window.__MEMBERSTACK_DEBUG__ = {\n      version: state.version,\n      config: {\n        publicKey: state.config.publicKey,\n        appId: state.config.appId\n      },\n      getMember: state.getMember,\n      isAuthenticated: () => state.getMember() !== null,\n      timestamp: (/* @__PURE__ */ new Date()).toISOString()\n    };\n    debugLog(\"DevTools integration initialized. Access via window.__MEMBERSTACK_DEBUG__\");\n  }\n}\n\n// src/analytics/autoPageViews.ts\nvar installed = false;\nvar lastKey = \"\";\nfunction installAutoPageViews(onChange, opts = {}) {\n  if (typeof window === \"undefined\" || typeof history === \"undefined\")\n    return () => {\n    };\n  if (installed)\n    return () => {\n    };\n  installed = true;\n  const key = () => window.location.pathname + (opts.hashMode ? window.location.hash : \"\");\n  lastKey = key();\n  const fireIfChanged = () => {\n    const next = key();\n    if (next === lastKey)\n      return;\n    lastKey = next;\n    onChange();\n  };\n  const origPush = history.pushState;\n  const origReplace = history.replaceState;\n  const patchedPush = function(...args) {\n    const result = origPush.apply(this, args);\n    fireIfChanged();\n    return result;\n  };\n  const patchedReplace = function(...args) {\n    const result = origReplace.apply(this, args);\n    fireIfChanged();\n    return result;\n  };\n  history.pushState = patchedPush;\n  history.replaceState = patchedReplace;\n  window.addEventListener(\"popstate\", fireIfChanged);\n  if (opts.hashMode)\n    window.addEventListener(\"hashchange\", fireIfChanged);\n  return () => {\n    if (history.pushState === patchedPush)\n      history.pushState = origPush;\n    if (history.replaceState === patchedReplace)\n      history.replaceState = origReplace;\n    window.removeEventListener(\"popstate\", fireIfChanged);\n    if (opts.hashMode)\n      window.removeEventListener(\"hashchange\", fireIfChanged);\n    installed = false;\n    lastKey = \"\";\n  };\n}\n\n// src/methods/index.ts\nvar SDK_VERSION = \"1.2.0\";\nvar initialized = false;\nvar teardownAutoPageViews;\nvar captchaReadyPromise = new Promise((resolve) => {\n  if (typeof window !== \"undefined\") {\n    window._hcaptchaReady = resolve;\n  }\n});\nvar methods = {\n  openModal,\n  hideModal,\n  preloadModals,\n  _hideLoader: hideLoader,\n  _showLoader: showLoader,\n  _showMessage: showMessage,\n  getMemberCookie: getMemberToken,\n  onAuthChange,\n  _captchaReady: captchaReadyPromise\n};\nfunction init(props) {\n  if (props.debug) {\n    setDebugMode(true);\n    debugLog(`Initializing Memberstack SDK v${SDK_VERSION}`);\n    debugLog(\"Config:\", {\n      publicKey: props.publicKey ? `${props.publicKey.slice(0, 10)}...` : void 0,\n      appId: props.appId,\n      useCookies: props.useCookies,\n      domain: props.domain\n    });\n  }\n  if (initialized && props.debug) {\n    console.warn(\n      \"[Memberstack] init() called multiple times. Previous instance will be replaced. This is usually unintentional \\u2014 call init() once at app startup.\"\n    );\n  }\n  if (props.sessionDurationDays !== void 0) {\n    console.warn(\n      \"[Memberstack] sessionDurationDays is deprecated and no longer used. Session duration is now controlled server-side. You can safely remove this option.\"\n    );\n  }\n  const wasInitialized = initialized;\n  initialized = true;\n  const canonicalDomain = endpoints.API || \"https://client.memberstack.com\";\n  const apiDomain2 = props.domain || canonicalDomain;\n  setApiDomain(apiDomain2);\n  if (props.useCookies)\n    setUseCookies(props.setCookieOnRootDomain);\n  setMemberTokenIfAvailable();\n  const requests = initRequest({\n    publicKey: props.publicKey,\n    appId: props.appId,\n    token: getMemberToken(),\n    domain: apiDomain2,\n    canonicalDomain,\n    enableCustomDomainFallback: props.enableCustomDomainFallback\n  });\n  const trackPageView = () => __async(this, null, function* () {\n    var _a;\n    try {\n      yield (_a = requests.trackPageView) == null ? void 0 : _a.call(requests);\n    } catch (e) {\n    }\n  });\n  const allMethods = Object.assign(methods, requests, { destroy, trackPageView });\n  if (typeof window !== \"undefined\") {\n    window.$memberstackDom = allMethods;\n    if (props.debug) {\n      initDevToolsIntegration({\n        config: { publicKey: props.publicKey, appId: props.appId },\n        getMember: () => getPersistedMember(),\n        version: SDK_VERSION\n      });\n    }\n    teardownAutoPageViews == null ? void 0 : teardownAutoPageViews();\n    teardownAutoPageViews = void 0;\n    if (props.autoTrackPageViews !== false && typeof requests.trackPageView === \"function\") {\n      if (!wasInitialized)\n        void trackPageView();\n      teardownAutoPageViews = installAutoPageViews(() => void trackPageView(), {\n        hashMode: props.hashMode\n      });\n    }\n  }\n  if (props.debug) {\n    debugLog(\"SDK initialized successfully\");\n  }\n  return allMethods;\n}\nfunction destroy() {\n  unsetPersistedMember();\n  initialized = false;\n  teardownAutoPageViews == null ? void 0 : teardownAutoPageViews();\n  teardownAutoPageViews = void 0;\n  if (typeof window !== \"undefined\") {\n    delete window.$memberstackDom;\n    delete window.__MEMBERSTACK_DEBUG__;\n  }\n}\nvar methods_default = { init: (props) => init(props) };\n\n// src/utils/errors.ts\nvar ErrorCodes = {\n  // ============================================\n  // AUTHENTICATION ERRORS\n  // ============================================\n  /** Email or password is incorrect */\n  INVALID_CREDENTIALS: \"invalid-credentials\",\n  /** Authentication token is invalid or expired */\n  INVALID_TOKEN: \"client/invalid-token\",\n  /** No member found with this identifier */\n  MEMBER_NOT_FOUND: \"member-not-found\",\n  /** Password reset code is invalid or expired */\n  INVALID_RESET_CODE: \"invalid-reset-code\",\n  /** Passwordless verification code is invalid or expired */\n  INVALID_PASSWORDLESS_CODE: \"invalid-passwordless-login-code\",\n  /** Must be logged in to perform this action */\n  LOGIN_REQUIRED: \"login-required\",\n  // ============================================\n  // ACCOUNT & SOCIAL LOGIN ERRORS\n  // ============================================\n  /** An account with this email already exists */\n  EMAIL_ALREADY_EXISTS: \"email-already-in-use\",\n  /** Account uses social login - use social provider to sign in */\n  USE_SOCIAL_LOGIN: \"use-social-login\",\n  /** Account uses email/password - use email to sign in */\n  USE_EMAIL_LOGIN: \"use-email-login\",\n  /** No password set for this account */\n  NO_PASSWORD_SET: \"no-password-set\",\n  /** Social account already connected */\n  ACCOUNT_ALREADY_CONNECTED: \"account-already-connected\",\n  /** Social account not connected to this member */\n  ACCOUNT_NOT_CONNECTED: \"account-not-connected\",\n  /** Failed to connect social account */\n  ACCOUNT_CONNECT_FAILED: \"account-connect-failed\",\n  /** Must be logged in to connect accounts */\n  ACCOUNT_CONNECT_REQUIRES_LOGIN: \"account-connect-requires-login\",\n  /** Set password before disconnecting last provider */\n  ACCOUNT_SET_PASSWORD_FIRST: \"account-set-password-before-disconnect\",\n  /** No account found with these credentials */\n  ACCOUNT_NOT_FOUND: \"account-not-found\",\n  // ============================================\n  // VALIDATION ERRORS\n  // ============================================\n  /** Email format is invalid */\n  INVALID_EMAIL: \"invalid-email\",\n  /** Password is incorrect */\n  INVALID_PASSWORD: \"invalid-password\",\n  /** Password must be at least 8 characters */\n  PASSWORD_TOO_SHORT: \"invalid-password-too-short\",\n  /** A required field is missing */\n  REQUIRED_FIELD_MISSING: \"required-field-missing\",\n  /** CAPTCHA verification failed */\n  INVALID_CAPTCHA: \"invalid-captcha\",\n  // ============================================\n  // PLAN & SUBSCRIPTION ERRORS\n  // ============================================\n  /** Plan does not exist */\n  PLAN_NOT_FOUND: \"plan-not-found\",\n  /** Member does not have this plan */\n  NO_PLAN_FOUND: \"no-plan-found\",\n  /** Member already has this plan */\n  ALREADY_HAS_PLAN: \"already-have-plan\",\n  /** Plan requires payment */\n  PLAN_NOT_FREE: \"plan-not-free\",\n  /** Plan member limit reached */\n  PLAN_MEMBER_LIMIT_REACHED: \"plan-member-limit-reached\",\n  /** Plan restricted to admin assignment only */\n  PLAN_RESTRICTED_TO_ADMIN: \"plan-restricted-to-admin\",\n  /** Email domain not permitted for this plan */\n  DOMAIN_NOT_PERMITTED: \"domain-not-permitted\",\n  /** Pricing option no longer available */\n  PRICE_NOT_AVAILABLE: \"price-no-longer-available\",\n  // ============================================\n  // TEAM ERRORS\n  // ============================================\n  /** Team has reached its seat limit */\n  TEAM_FULL: \"team-full\",\n  /** Can only belong to one active team */\n  ONE_ACTIVE_TEAM_ONLY: \"can-only-have-one-active-team\",\n  /** Remove team members before making this change */\n  CANNOT_CHANGE_TEAM: \"cannot-change-team-account\",\n  // ============================================\n  // FILE UPLOAD ERRORS\n  // ============================================\n  /** Only PNG, JPG, JPEG files supported */\n  INVALID_FILE_TYPE: \"invalid-file-type\",\n  /** File exceeds 1MB size limit */\n  FILE_TOO_LARGE: \"file-size-too-large\",\n  // ============================================\n  // DATA TABLES ERRORS\n  // ============================================\n  /** Data table not found */\n  DATA_TABLE_NOT_FOUND: \"data-table-not-found\",\n  /** Data record not found */\n  DATA_RECORD_NOT_FOUND: \"data-record-not-found\",\n  /** Invalid table key format */\n  INVALID_TABLE_KEY: \"invalid-table-key\",\n  /** Value must be unique */\n  UNIQUE_CONSTRAINT_VIOLATION: \"unique-constraint-violation\",\n  /** Maximum fields reached for table */\n  FIELD_LIMIT_EXCEEDED: \"field-limit-exceeded\",\n  /** Field type not supported */\n  INVALID_FIELD_TYPE: \"invalid-field-type\",\n  /** Field value doesn't match expected type */\n  INVALID_FIELD_VALUE: \"invalid-field-value\",\n  // ============================================\n  // PERMISSION ERRORS\n  // ============================================\n  /** No permission to access this resource */\n  ACCESS_DENIED: \"access-denied\",\n  // ============================================\n  // ENVIRONMENT & LIMIT ERRORS\n  // ============================================\n  /** Application not found */\n  APP_NOT_FOUND: \"app-not-found\",\n  /** Sandbox mode limited to 50 members */\n  TEST_MODE_LIMIT_REACHED: \"test-mode-member-limit-reached\",\n  // ============================================\n  // CLIENT-SIDE ERRORS (not from API)\n  // ============================================\n  /** Network request failed */\n  NETWORK_ERROR: \"network-error\",\n  /** Unknown error occurred */\n  UNKNOWN_ERROR: \"unknown-error\"\n};\nvar ErrorMetadata = {\n  // Authentication\n  [ErrorCodes.INVALID_CREDENTIALS]: {\n    message: \"Invalid email or password. Please check your credentials and try again.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Verify the email address is spelled correctly\",\n      \"Check if Caps Lock is enabled when entering the password\",\n      \"Use sendMemberResetPasswordEmail() if you forgot your password\",\n      \"Check if the account was created with a social login provider instead\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/login\"\n  },\n  [ErrorCodes.EMAIL_ALREADY_EXISTS]: {\n    message: \"An account with this email already exists.\",\n    category: \"conflict\",\n    suggestions: [\n      \"Use loginMemberEmailPassword() to sign in instead\",\n      \"Use sendMemberResetPasswordEmail() if you forgot your password\",\n      \"Check if the account was created with social login\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/login\"\n  },\n  [ErrorCodes.USE_SOCIAL_LOGIN]: {\n    message: \"This account uses social login. Please sign in with your social provider.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Use loginWithProvider() with the appropriate provider\",\n      \"Check which social providers are connected to this account\",\n      \"If you want to add email/password login, use setPassword() after logging in\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  [ErrorCodes.USE_EMAIL_LOGIN]: {\n    message: \"This account uses email/password login. Please sign in with your email.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Use loginMemberEmailPassword() instead of social login\",\n      \"Use sendMemberResetPasswordEmail() if you forgot your password\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/login\"\n  },\n  [ErrorCodes.NO_PASSWORD_SET]: {\n    message: \"No password is set for this account. Please set a password first.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Use sendMemberResetPasswordEmail() to set a password\",\n      \"Check your email for the password reset instructions\",\n      \"If you signed up with social login, you may need to add a password\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/password-reset\"\n  },\n  [ErrorCodes.LOGIN_REQUIRED]: {\n    message: \"Authentication required. Please log in to access this resource.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Call loginMemberEmailPassword() or loginWithProvider() first\",\n      \"Check if the member's session has expired\",\n      \"Verify the authentication token is being sent in requests\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication\"\n  },\n  [ErrorCodes.INVALID_RESET_CODE]: {\n    message: \"The password reset code is invalid or has expired.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Request a new password reset email using sendMemberResetPasswordEmail()\",\n      \"Reset codes expire after 1 hour - check if the code has expired\",\n      \"Ensure you're using the most recent reset code if multiple were requested\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/password-reset\"\n  },\n  [ErrorCodes.INVALID_PASSWORDLESS_CODE]: {\n    message: \"The verification code is invalid or has expired.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Request a new verification code using sendMemberLoginPasswordlessEmail()\",\n      \"Verification codes expire after 10 minutes\",\n      \"Check for typos when entering the code\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/passwordless\"\n  },\n  // Validation\n  [ErrorCodes.INVALID_EMAIL]: {\n    message: \"The email address format is invalid.\",\n    category: \"validation\",\n    suggestions: [\n      \"Ensure the email follows the format: name@domain.com\",\n      \"Check for accidental spaces before or after the email\",\n      \"Verify special characters are properly encoded\"\n    ]\n  },\n  [ErrorCodes.PASSWORD_TOO_SHORT]: {\n    message: \"Password must be at least 8 characters.\",\n    category: \"validation\",\n    suggestions: [\n      \"Use a password with 8 or more characters\",\n      \"Consider using a mix of letters, numbers, and symbols for better security\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/signup\"\n  },\n  // Plans\n  [ErrorCodes.PLAN_NOT_FOUND]: {\n    message: \"The specified plan does not exist.\",\n    category: \"not_found\",\n    suggestions: [\n      \"Use getPlans() to list all available plans\",\n      \"Verify the plan ID is correct\",\n      \"Check if the plan exists in the current environment (SANDBOX vs LIVE)\",\n      \"Ensure the plan has been published\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.ALREADY_HAS_PLAN]: {\n    message: \"This member already has this plan.\",\n    category: \"conflict\",\n    suggestions: [\n      \"Use getCurrentMember() to check the member's current plans\",\n      \"Use removePlan() if you need to remove and re-add the plan\",\n      \"Consider updating the plan instead of adding it again\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.PLAN_NOT_FREE]: {\n    message: \"This plan requires payment information.\",\n    category: \"payment\",\n    suggestions: [\n      \"Use purchasePlansWithCheckout() for paid plans\",\n      \"Collect payment information before adding the plan\",\n      \"Check if a free trial is available for this plan\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/payments\"\n  },\n  // Data Tables\n  [ErrorCodes.DATA_TABLE_NOT_FOUND]: {\n    message: \"The specified data table does not exist.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Verify the table ID or key is correct\",\n      \"Check if the table exists in the dashboard\",\n      \"Ensure you have permission to access this table\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  [ErrorCodes.DATA_RECORD_NOT_FOUND]: {\n    message: \"The specified record was not found in the table.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Verify the record ID is correct\",\n      \"Check if the record was deleted\",\n      \"Query the table to find available records\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  // Environment\n  [ErrorCodes.APP_NOT_FOUND]: {\n    message: \"Application not found. Check your public key.\",\n    category: \"not_found\",\n    suggestions: [\n      \"Verify your public key is correct in your Memberstack configuration\",\n      \"Check if you're using the correct environment (SANDBOX vs LIVE)\",\n      \"Ensure the app exists in your Memberstack dashboard\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/getting-started\"\n  },\n  [ErrorCodes.TEST_MODE_LIMIT_REACHED]: {\n    message: \"Sandbox mode is limited to 50 members for testing.\",\n    category: \"limit\",\n    suggestions: [\n      \"Delete unused test members to continue testing\",\n      \"Switch to LIVE mode for production use\",\n      \"Use the dashboard to bulk delete test members\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dashboard/environments\"\n  },\n  // Files\n  [ErrorCodes.INVALID_FILE_TYPE]: {\n    message: \"Invalid file type. Only PNG, JPG, and JPEG images are supported.\",\n    category: \"validation\",\n    suggestions: [\n      \"Convert your image to PNG, JPG, or JPEG format\",\n      \"Check the file extension matches the actual file type\",\n      \"Use an image converter tool if needed\"\n    ]\n  },\n  [ErrorCodes.FILE_TOO_LARGE]: {\n    message: \"File size exceeds the 1MB limit.\",\n    category: \"validation\",\n    suggestions: [\n      \"Compress the image to reduce file size\",\n      \"Use a lower resolution version of the image\",\n      \"Try an online image compression tool\"\n    ]\n  },\n  // Teams\n  [ErrorCodes.TEAM_FULL]: {\n    message: \"This team has reached its seat limit.\",\n    category: \"limit\",\n    suggestions: [\n      \"Contact the team owner to add more seats\",\n      \"Remove inactive team members to free up space\",\n      \"Upgrade the team's plan for more seats\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/teams\"\n  },\n  // Client-side\n  [ErrorCodes.NETWORK_ERROR]: {\n    message: \"Network request failed. Please check your connection.\",\n    category: \"network\",\n    suggestions: [\n      \"Check your internet connection\",\n      \"Try refreshing the page\",\n      \"If the problem persists, contact support\"\n    ]\n  },\n  [ErrorCodes.INVALID_TOKEN]: {\n    message: \"Your session has expired. Please log in again.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Call logout() then log in again\",\n      \"Check if cookies are enabled in your browser\",\n      \"Clear your browser cache and try again\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication\"\n  },\n  // Authentication — additional\n  [ErrorCodes.MEMBER_NOT_FOUND]: {\n    message: \"No member found with this identifier.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Verify the email address is correct\",\n      \"The member may not have signed up yet \\u2014 use signupMemberEmailPassword()\",\n      \"Check if the member exists in the correct environment (SANDBOX vs LIVE)\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/login\"\n  },\n  // Account & Social Login — additional\n  [ErrorCodes.ACCOUNT_NOT_FOUND]: {\n    message: \"No account found with these credentials.\",\n    category: \"authentication\",\n    suggestions: [\n      \"The member may need to sign up first\",\n      \"Check if the account was created with a different auth method (email vs social)\",\n      \"Verify the correct environment (SANDBOX vs LIVE)\"\n    ]\n  },\n  [ErrorCodes.ACCOUNT_ALREADY_CONNECTED]: {\n    message: \"This social account is already connected.\",\n    category: \"conflict\",\n    suggestions: [\n      \"Use disconnectProvider() first if you need to reconnect\",\n      \"Check the member's connected providers with getCurrentMember()\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  [ErrorCodes.ACCOUNT_NOT_CONNECTED]: {\n    message: \"This social account is not connected to the member.\",\n    category: \"not_found\",\n    suggestions: [\n      \"Use connectProvider() to connect the social account first\",\n      \"Check the member's connected providers with getCurrentMember()\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  [ErrorCodes.ACCOUNT_CONNECT_FAILED]: {\n    message: \"Failed to connect the social account.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Try the connection again \\u2014 this may be a temporary issue\",\n      \"Ensure the social provider is enabled in your Memberstack dashboard\",\n      \"Check that the OAuth redirect URLs are configured correctly\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  [ErrorCodes.ACCOUNT_CONNECT_REQUIRES_LOGIN]: {\n    message: \"You must be logged in to connect a social account.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Call loginMemberEmailPassword() or loginWithProvider() first\",\n      \"Use getCurrentMember() to verify the member is authenticated\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  [ErrorCodes.ACCOUNT_SET_PASSWORD_FIRST]: {\n    message: \"Set a password before disconnecting your last login provider.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Use setPassword() to add a password before disconnecting\",\n      \"This prevents the member from being locked out of their account\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/authentication/social-login\"\n  },\n  // Validation — additional\n  [ErrorCodes.INVALID_PASSWORD]: {\n    message: \"The password is incorrect.\",\n    category: \"authentication\",\n    suggestions: [\n      \"Check that the current password is entered correctly\",\n      \"Use sendMemberResetPasswordEmail() to reset the password\"\n    ]\n  },\n  [ErrorCodes.REQUIRED_FIELD_MISSING]: {\n    message: \"A required field is missing.\",\n    category: \"validation\",\n    suggestions: [\n      \"Check that all required parameters are provided\",\n      \"Review the method documentation for required fields\",\n      \"Custom fields marked as required in the dashboard must be included on signup\"\n    ]\n  },\n  [ErrorCodes.INVALID_CAPTCHA]: {\n    message: \"CAPTCHA verification failed.\",\n    category: \"validation\",\n    suggestions: [\n      \"Ensure the CAPTCHA token is passed as captchaToken in the request\",\n      \"The token may have expired \\u2014 request a new CAPTCHA challenge\",\n      \"Check that CAPTCHA is correctly configured in your Memberstack dashboard\"\n    ]\n  },\n  // Plans — additional\n  [ErrorCodes.NO_PLAN_FOUND]: {\n    message: \"The member does not have this plan.\",\n    category: \"not_found\",\n    suggestions: [\n      \"Use getCurrentMember() to check the member's current plans\",\n      \"Verify the plan ID is correct\",\n      \"The plan may have been removed or expired\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.PLAN_MEMBER_LIMIT_REACHED]: {\n    message: \"This plan has reached its member limit.\",\n    category: \"limit\",\n    suggestions: [\n      \"Contact the app owner to increase the plan's member limit\",\n      \"Check if a different plan is available\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.PLAN_RESTRICTED_TO_ADMIN]: {\n    message: \"This plan can only be assigned by an admin.\",\n    category: \"authorization\",\n    suggestions: [\n      \"Plans with this restriction cannot be self-assigned by members\",\n      \"Use the Admin API or dashboard to assign this plan\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.DOMAIN_NOT_PERMITTED]: {\n    message: \"Your email domain is not permitted for this plan.\",\n    category: \"authorization\",\n    suggestions: [\n      \"This plan restricts signup to specific email domains\",\n      \"Check the plan's domain restrictions in your Memberstack dashboard\",\n      \"Use an email address with an allowed domain\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/plans\"\n  },\n  [ErrorCodes.PRICE_NOT_AVAILABLE]: {\n    message: \"This pricing option is no longer available.\",\n    category: \"not_found\",\n    suggestions: [\n      \"Use getPlans() to see currently available pricing options\",\n      \"The price may have been archived or deactivated\",\n      \"Check your Stripe dashboard for the price status\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/payments\"\n  },\n  // Teams — additional\n  [ErrorCodes.ONE_ACTIVE_TEAM_ONLY]: {\n    message: \"A member can only belong to one active team.\",\n    category: \"conflict\",\n    suggestions: [\n      \"Remove the member from their current team first using removeMemberFromTeam()\",\n      \"Check the member's current team with getTeam()\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/teams\"\n  },\n  [ErrorCodes.CANNOT_CHANGE_TEAM]: {\n    message: \"Cannot change team while it has active members.\",\n    category: \"conflict\",\n    suggestions: [\n      \"Remove all team members before making this change\",\n      \"Use removeMemberFromTeam() to remove members first\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/teams\"\n  },\n  // Data Tables — additional\n  [ErrorCodes.INVALID_TABLE_KEY]: {\n    message: \"The table key format is invalid.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Table keys should be lowercase alphanumeric with hyphens\",\n      \"Use getDataTables() to list available tables and their keys\",\n      \"Check the table key in your Memberstack dashboard\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  [ErrorCodes.UNIQUE_CONSTRAINT_VIOLATION]: {\n    message: \"A record with this value already exists (unique constraint).\",\n    category: \"data_tables\",\n    suggestions: [\n      \"The field has a unique constraint \\u2014 use a different value\",\n      \"Use queryDataRecords() to check for existing records before creating\",\n      \"If updating, use updateDataRecord() instead of createDataRecord()\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  [ErrorCodes.FIELD_LIMIT_EXCEEDED]: {\n    message: \"Maximum number of fields reached for this table.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Remove unused fields before adding new ones\",\n      \"Consider using a separate table for additional data\",\n      \"Check your plan's field limits in the dashboard\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  [ErrorCodes.INVALID_FIELD_TYPE]: {\n    message: \"This field type is not supported.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Check the supported field types in the documentation\",\n      \"Use getDataTable() to see the table schema and field types\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  [ErrorCodes.INVALID_FIELD_VALUE]: {\n    message: \"The field value does not match the expected type.\",\n    category: \"data_tables\",\n    suggestions: [\n      \"Check the field type \\u2014 e.g., number fields require numeric values\",\n      \"Use getDataTable() to see the expected field types\",\n      \"Ensure dates are in ISO 8601 format for date fields\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/data-tables\"\n  },\n  // Permissions\n  [ErrorCodes.ACCESS_DENIED]: {\n    message: \"You do not have permission to access this resource.\",\n    category: \"authorization\",\n    suggestions: [\n      \"Check that the member has the required plan or permissions\",\n      \"Verify the content group configuration in the dashboard\",\n      \"Use getCurrentMember() to check the member's permissions array\"\n    ],\n    docsUrl: \"https://docs.memberstack.com/dom/content-protection\"\n  },\n  // Catch-all\n  [ErrorCodes.UNKNOWN_ERROR]: {\n    message: \"An unexpected error occurred.\",\n    category: \"unknown\",\n    suggestions: [\n      \"Try the request again\",\n      \"Check the Memberstack status page for any ongoing issues\",\n      \"If the problem persists, contact support with the error details\"\n    ]\n  }\n};\nfunction normalizeErrorCode(code) {\n  return code.toLowerCase().replace(/_/g, \"-\");\n}\nfunction getMetadataForCode(code) {\n  if (ErrorMetadata[code]) {\n    return ErrorMetadata[code];\n  }\n  const normalized = normalizeErrorCode(code);\n  for (const key of Object.keys(ErrorMetadata)) {\n    if (normalizeErrorCode(key) === normalized) {\n      return ErrorMetadata[key];\n    }\n  }\n  return void 0;\n}\nvar knownErrorCodes = new Set(Object.values(ErrorCodes));\nfunction isMemberstackError(error) {\n  if (typeof error !== \"object\" || error === null || !(\"code\" in error) || !(\"message\" in error) || typeof error.code !== \"string\" || typeof error.message !== \"string\") {\n    return false;\n  }\n  const code = error.code;\n  if (knownErrorCodes.has(code) || knownErrorCodes.has(normalizeErrorCode(code))) {\n    return true;\n  }\n  return code.includes(\"-\") || code.includes(\"/\");\n}\nfunction getErrorMessage(error, defaultMessage = \"An unexpected error occurred\") {\n  if (isMemberstackError(error)) {\n    return error.message;\n  }\n  if (error instanceof Error) {\n    return error.message;\n  }\n  if (typeof error === \"string\") {\n    return error;\n  }\n  return defaultMessage;\n}\nfunction getErrorCode(error) {\n  if (isMemberstackError(error)) {\n    return error.code;\n  }\n  return void 0;\n}\nfunction isErrorCode(error, code) {\n  if (!isMemberstackError(error)) {\n    return false;\n  }\n  if (error.code === code) {\n    return true;\n  }\n  return error.code.toLowerCase().replace(/_/g, \"-\") === code.toLowerCase().replace(/_/g, \"-\");\n}\nfunction getErrorSuggestions(error) {\n  if (!isMemberstackError(error)) {\n    return [];\n  }\n  if (error.suggestions && error.suggestions.length > 0) {\n    return error.suggestions;\n  }\n  const metadata = getMetadataForCode(error.code);\n  return (metadata == null ? void 0 : metadata.suggestions) || [];\n}\nfunction getErrorDocsUrl(error) {\n  if (!isMemberstackError(error)) {\n    return void 0;\n  }\n  if (error.docsUrl) {\n    return error.docsUrl;\n  }\n  const metadata = getMetadataForCode(error.code);\n  return metadata == null ? void 0 : metadata.docsUrl;\n}\nfunction getErrorCategory(error) {\n  if (!isMemberstackError(error)) {\n    return \"unknown\";\n  }\n  if (error.category) {\n    return error.category;\n  }\n  const metadata = getMetadataForCode(error.code);\n  return (metadata == null ? void 0 : metadata.category) || \"unknown\";\n}\nfunction formatErrorForUser(error) {\n  if (!isMemberstackError(error)) {\n    return \"An unexpected error occurred. Please try again.\";\n  }\n  const metadata = getMetadataForCode(error.code);\n  if (metadata) {\n    return metadata.message;\n  }\n  return \"Something went wrong. Please try again or contact support.\";\n}\nfunction getErrorReport(error) {\n  if (!isMemberstackError(error)) {\n    return {\n      code: void 0,\n      message: error instanceof Error ? error.message : \"Unknown error\",\n      category: \"unknown\",\n      statusCode: void 0,\n      suggestions: [],\n      docsUrl: void 0\n    };\n  }\n  return {\n    code: error.code,\n    message: error.message,\n    category: getErrorCategory(error),\n    statusCode: error.statusCode,\n    suggestions: getErrorSuggestions(error),\n    docsUrl: getErrorDocsUrl(error)\n  };\n}\n\n// src/index.ts\nvar src_default = { init: methods_default.init };\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  ErrorCodes,\n  formatErrorForUser,\n  getErrorCategory,\n  getErrorCode,\n  getErrorDocsUrl,\n  getErrorMessage,\n  getErrorReport,\n  getErrorSuggestions,\n  isErrorCode,\n  isMemberstackError\n});\n"]}