{"version":3,"file":"framerauth-sdk@beta.DzQ8NF07.mjs","names":["faCore.withAuth","faCore.withLoggedIn","faCore.withLoggedOut","faStore.withNoActiveLicense","faExtensions.withIsTagged","r","g"],"sources":["https:/framerusercontent.com/modules/sWXFo56HgG8NQLZJwFDp/W4OAje9ucQKMKv6coKTW/FramerAuth.js","https:/cdn.framerauth.com/scripts/framerauth-sdk@beta.js"],"sourcesContent":["/*\n***************************\n**       FramerAuth      **\n***************************\nModifying the core functionality (core, store or extension overrides) will void your support\nPlease add custom overrides at the end of the file.\n*/// @ts-ignore\nimport*as faCore from\"https://cdn.framerauth.com/packages/overrides/core/live/latest/core.js\";// @ts-ignore\nimport*as faStore from\"https://cdn.framerauth.com/packages/overrides/store/live/latest/store.js\";// @ts-ignore\nimport*as faExtensions from\"https://cdn.framerauth.com/packages/overrides/extensions/live/latest/extensions.js\";/*\n ***************************\n **     Core overrides    **\n ***************************\n */export function withFullName(Component){return faCore.withFullName(Component);}export function withAuth(Component){return faCore.withAuth(Component);}export function withStore(Component){return faCore.withStore(Component);}export function withSignOut(Component){return faCore.withSignOut(Component);}export function withEmail(Component){return faCore.withEmail(Component);}export function withFirstName(Component){return faCore.withFirstName(Component);}export function withLoggedIn(Component){return faCore.withLoggedIn(Component);}export function withLoggedOut(Component){return faCore.withLoggedOut(Component);}/*\n ***************************\n **    Store overrides    **\n ***************************\n */export function withActiveLicense(Component){return faStore.withActiveLicense(Component);}export function withNoActiveLicense(Component){return faStore.withNoActiveLicense(Component);}export function withVariant(Component){return faStore.withVariant(Component);}export function withVariantActiveLicense(Component){return faStore.withVariantActiveLicense(Component);}/*\n ***************************\n **  Extension overrides  **\n ***************************\n */export function withDynamicGridHeight(Component){return faExtensions.withDynamicGridHeight(Component);}/*\n ***************************\n **    Legacy overrides   **\n ***************************\n */export function withIsLessonComplete(Component){return faExtensions.withIsTagged(Component,\"course:status\",\"completed\");}export function withActionCompleteLesson(Component){return faExtensions.withToggleTag(Component,\"course:status\",\"completed\");}/*\n***********************************************************\n** FramerAuth -- Make your own CUSTOM withPlan overrides **\n***********************************************************\nTo make your own overrides for withPlan, follow these 3 steps:\n1. Copy the override below and change the override name \"withPlanStandard\" to something else (e.g. withPlanPremium).\n2. Change the licenseId field inside your new override to the license ID you want to use.\n3. Start using your new override on your site. Make sure the override code is updated on your site.\n*/export function withPlanStandard(Component){// Enter your own LemonSqueezy Product Variant ID here\nconst licenseId=\"123456\"// <-- Your LemonSqueezy Product Variant ID for this override goes here (example)\n;return faStore.withPlan(Component,licenseId);}// copy until here\n/*\n**************************************************************\n** FramerAuth -- Make your own CUSTOM bookmarking overrides **\n**************************************************************\nTo make your own overrides for bookmarking, follow these 4 steps:\n1. Copy the override below and change the override name \"withComponentBookmarkBlog\" to something else (e.g. withComponentBookmarkLesson).\n2. Change the prefix field inside your new override (e.g. \"bookmark:lesson\")\n3. Repeat steps 1 & 2 for withToggleBookmarkBlog & withToggleBookmarkLesson\n3. Start using your new override on your site. Make sure the override code is updated on your site.\n*/export function withComponentBookmarkBlog(Component){const prefix=\"bookmark:blog\"// <--- Your custom prefix for this override goes here (example)\n;return faExtensions.withTags(Component,prefix);}export function withIsBookmarkedBlog(Component){const prefix=\"bookmark:blog\"// <--- Your custom prefix for this override goes here (example)\n;return faExtensions.withIsTagged(Component,prefix);}export function withToggleBookmarkBlog(Component){const prefix=\"bookmark:blog\"// <--- Your custom prefix for this override goes here (example)\n;return faExtensions.withToggleTag(Component,prefix);}\nexport const __FramerMetadata__ = {\"exports\":{\"withAuth\":{\"type\":\"reactHoc\",\"name\":\"withAuth\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withSignOut\":{\"type\":\"reactHoc\",\"name\":\"withSignOut\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLoggedOut\":{\"type\":\"reactHoc\",\"name\":\"withLoggedOut\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEmail\":{\"type\":\"reactHoc\",\"name\":\"withEmail\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withActiveLicense\":{\"type\":\"reactHoc\",\"name\":\"withActiveLicense\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFullName\":{\"type\":\"reactHoc\",\"name\":\"withFullName\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withIsLessonComplete\":{\"type\":\"reactHoc\",\"name\":\"withIsLessonComplete\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNoActiveLicense\":{\"type\":\"reactHoc\",\"name\":\"withNoActiveLicense\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withComponentBookmarkBlog\":{\"type\":\"reactHoc\",\"name\":\"withComponentBookmarkBlog\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withActionCompleteLesson\":{\"type\":\"reactHoc\",\"name\":\"withActionCompleteLesson\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withStore\":{\"type\":\"reactHoc\",\"name\":\"withStore\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDynamicGridHeight\":{\"type\":\"reactHoc\",\"name\":\"withDynamicGridHeight\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withFirstName\":{\"type\":\"reactHoc\",\"name\":\"withFirstName\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withVariant\":{\"type\":\"reactHoc\",\"name\":\"withVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withPlanStandard\":{\"type\":\"reactHoc\",\"name\":\"withPlanStandard\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withToggleBookmarkBlog\":{\"type\":\"reactHoc\",\"name\":\"withToggleBookmarkBlog\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withLoggedIn\":{\"type\":\"reactHoc\",\"name\":\"withLoggedIn\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withVariantActiveLicense\":{\"type\":\"reactHoc\",\"name\":\"withVariantActiveLicense\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withIsBookmarkedBlog\":{\"type\":\"reactHoc\",\"name\":\"withIsBookmarkedBlog\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FramerAuth.map","var R = Object.defineProperty;\nvar _ = (t, r, e) => r in t ? R(t, r, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[r] = e;\nvar i = (t, r, e) => (_(t, typeof r != \"symbol\" ? r + \"\" : r, e), e);\nclass U {\n  constructor(r) {\n    i(this, \"prefix\");\n    this.prefix = r;\n  }\n  has(r) {\n    const e = this.prefix + r;\n    return localStorage.getItem(e) != null;\n  }\n  get(r) {\n    const e = this.prefix + r;\n    return localStorage.getItem(e);\n  }\n  set(r, e) {\n    const s = this.prefix + r;\n    localStorage.setItem(s, e);\n  }\n  remove(r) {\n    const e = this.prefix + r;\n    localStorage.removeItem(e);\n  }\n}\nclass m extends Error {\n  constructor(e, s) {\n    super(e);\n    i(this, \"status\");\n    i(this, \"__isAuthError\", !0);\n    this.name = \"AuthError\", this.status = s;\n  }\n}\nfunction h(t) {\n  return typeof t == \"object\" && t !== null && \"__isAuthError\" in t;\n}\nclass T extends m {\n  constructor(e, s) {\n    super(e, s);\n    i(this, \"status\");\n    this.name = \"AuthApiError\", this.status = s;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status\n    };\n  }\n}\nclass O extends m {\n  constructor(e, s) {\n    super(e);\n    i(this, \"originalError\");\n    this.name = \"AuthUnknownError\", this.originalError = s;\n  }\n}\nclass f extends m {\n  constructor(e, s, n) {\n    super(e);\n    i(this, \"name\");\n    i(this, \"status\");\n    this.name = s, this.status = n;\n  }\n  toJSON() {\n    return {\n      name: this.name,\n      message: this.message,\n      status: this.status\n    };\n  }\n}\nclass x extends f {\n  constructor() {\n    super(\"Auth session or user missing\", \"AuthInvalidTokenResponseError\", 500);\n  }\n}\nclass p extends f {\n  constructor() {\n    super(\"Message missing\", \"AuthInvalidResetPasswordResponseError\", 500);\n  }\n}\nclass l extends f {\n  constructor(r) {\n    super(r, \"AuthInvalidCredentialsError\", 400);\n  }\n}\nclass I extends f {\n  constructor() {\n    super(\"Site missing\", \"AuthInvalidSiteResponseError\", 500);\n  }\n}\nclass J extends f {\n  constructor() {\n    super(\"User missing\", \"AuthInvalidUserResponseError\", 500);\n  }\n}\nclass N extends f {\n  constructor() {\n    super(\"License key status missing\", \"AuthInvalidValidateLicenseKeyResponseError\", 500);\n  }\n}\nclass P extends f {\n  constructor() {\n    super(\"License key invalid\", \"AuthInvalidActivateLicenseKeyResponseError\", 500);\n  }\n}\nclass j extends f {\n  constructor() {\n    super(\"User invalid\", \"AuthUpdateUserResponseError\", 500);\n  }\n}\nclass b extends f {\n  constructor() {\n    super(\"Data invalid\", \"AuthUpdateUserDataResponseError\", 500);\n  }\n}\nclass v extends f {\n  constructor(r, e) {\n    super(r, \"AuthRetryableFetchError\", e);\n  }\n}\nconst w = (t) => t.msg || t.message || t.error_description || t.error || JSON.stringify(t), $ = [502, 503, 504];\nasync function A(t) {\n  if (!G(t))\n    throw new v(w(t), 0);\n  if ($.includes(t.status))\n    throw new v(w(t), t.status);\n  let r;\n  try {\n    r = await t.json();\n  } catch (e) {\n    throw new O(w(e), e);\n  }\n  throw new T(w(r), t.status || 500);\n}\nconst K = (t, r, e, s) => {\n  const n = { method: t, headers: (r == null ? void 0 : r.headers) || {} };\n  return t === \"GET\" ? n : (n.headers = { \"Content-Type\": \"application/json;charset=UTF-8\", ...r == null ? void 0 : r.headers }, n.body = JSON.stringify(s), { ...n, ...e });\n};\nasync function d(t, r, e, s) {\n  var c;\n  const n = { ...s == null ? void 0 : s.headers };\n  s != null && s.jwt && (n.Authorization = `Bearer ${s.jwt}`);\n  const a = (c = s == null ? void 0 : s.query) != null ? c : {};\n  s != null && s.redirectTo && (a.redirect_to = s.redirectTo);\n  const o = Object.keys(a).length ? \"?\" + new URLSearchParams(a).toString() : \"\", u = await Y(\n    t,\n    r,\n    e + o,\n    { headers: n, noResolveJson: s == null ? void 0 : s.noResolveJson },\n    {},\n    s == null ? void 0 : s.body\n  );\n  return s != null && s.xform ? s == null ? void 0 : s.xform(u) : { data: { ...u }, error: null };\n}\nasync function Y(t, r, e, s, n, a) {\n  const o = K(r, s, n, a);\n  let u;\n  try {\n    u = await t(e, o);\n  } catch (c) {\n    throw console.error(c), new v(w(c), 0);\n  }\n  if (u.ok || await A(u), s != null && s.noResolveJson)\n    return u;\n  try {\n    return await u.json();\n  } catch (c) {\n    await A(c);\n  }\n}\nfunction E(t) {\n  var s;\n  let r = null;\n  M(t == null ? void 0 : t.session) && (r = { ...t.session });\n  const e = (s = t.user) != null ? s : t;\n  return { data: { session: r, user: e }, error: null };\n}\nfunction L(t) {\n  var e;\n  return { data: { message: (e = t.message) != null ? e : t }, error: null };\n}\nfunction q(t) {\n  var e;\n  return { data: { message: (e = t.message) != null ? e : t }, error: null };\n}\nfunction z(t) {\n  var e;\n  return { data: { site: (e = t.site) != null ? e : t }, error: null };\n}\nfunction k(t) {\n  var e;\n  return { data: { user: (e = t.user) != null ? e : t }, error: null };\n}\nfunction C(t) {\n  var e;\n  return { data: { valid: (e = t.valid) != null ? e : t }, error: null };\n}\nfunction D(t) {\n  var e;\n  return { data: { message: (e = t.message) != null ? e : t }, error: null };\n}\nfunction F(t) {\n  return { data: t != null ? t : t, error: null };\n}\nfunction M(t) {\n  return (t == null ? void 0 : t.access_token) && (t == null ? void 0 : t.expires_in);\n}\nconst G = (t) => typeof t == \"object\" && t !== null && \"status\" in t && \"ok\" in t && \"json\" in t && typeof t.json == \"function\";\nclass H {\n  constructor(r) {\n    i(this, \"store\");\n    i(this, \"url\");\n    i(this, \"headers\");\n    i(this, \"setSite\", (r) => {\n      this.store.set(\"site\", r);\n    });\n    i(this, \"setUser\", (r) => {\n      this.store.set(\"user\", r);\n    });\n    i(this, \"setSession\", (r) => {\n      this.store.set(\"session\", r);\n    });\n    // TODO: This should be async for when we support refresh tokens.\n    i(this, \"getAccessToken\", () => {\n      if (!this.store.has(\"session\"))\n        return null;\n      const e = this.store.get(\"session\");\n      if (!e)\n        return null;\n      let s;\n      try {\n        s = JSON.parse(e);\n      } catch (a) {\n        return null;\n      }\n      const n = Math.floor(Date.now() / 1e3);\n      return s.expires_at && n > s.expires_at ? (this.store.remove(\"session\"), this.store.remove(\"user\"), null) : s.access_token;\n    });\n    i(this, \"getExpiresIn\", () => {\n      var e;\n      if (this.store.has(\"session\")) {\n        const s = this.store.get(\"session\");\n        if (s)\n          return (e = JSON.parse(s)) == null ? void 0 : e.expires_in;\n      }\n    });\n    i(this, \"getSite\", async (r = { cache: !0 }) => {\n      var n, a;\n      let e;\n      const s = this.store.get(\"site\");\n      return s && (r != null && r.cache) ? e = { data: { site: JSON.parse(s) }, error: null } : e = await this.fetchSite(), e.error && (e.error.status === 400 ? console.log(\n        `%cFramerAuth: Site not configured!\n\n%cPlease add your SITE_ID to the configuration script.\n%cError: ${((n = e.error) == null ? void 0 : n.message) || \"Unknown error\"}`,\n        \"color: orange; font-size: 16px;\",\n        \"color: inherit; font-size: 12px;\",\n        \"color: inherit; font-size: 12px;\"\n      ) : console.log(\n        `%cFramerAuth: Unable to load site data!\n\n%cNavigating to Homepage.\n%cError: ${((a = e.error) == null ? void 0 : a.message) || \"Site data not found\"}`,\n        \"color: red; font-size: 16px;\",\n        \"color: inherit; font-size: 12px;\",\n        \"color: inherit; font-size: 12px;\"\n      )), e;\n    });\n    i(this, \"getUser\", async (r = { cache: !0 }) => {\n      let e;\n      const s = Math.floor(Date.now() / 1e3), n = this.store.get(\"session\") || \"\";\n      if (!n)\n        e = { data: { user: null }, error: new m(\"Authorization token required.\", 401) };\n      else {\n        const a = JSON.parse(n), o = this.store.get(\"user\");\n        a.expires_at && s > a.expires_at ? (e = { data: { user: null }, error: new m(\"Token has expired.\", 401) }, this.store.remove(\"session\"), this.store.remove(\"user\")) : o && (r != null && r.cache) ? e = { data: { user: JSON.parse(o) }, error: null } : e = await this.fetchUser();\n      }\n      return e;\n    });\n    i(this, \"validateLicenseKey\", async (r) => {\n      try {\n        let e;\n        if (!r.license_key)\n          throw new l(\n            \"You must provide a license_key\"\n          );\n        const { license_key: s } = r;\n        e = await d(fetch, \"POST\", `${this.url}/validate`, {\n          headers: this.headers,\n          body: {\n            license_key: s\n          },\n          xform: C\n        });\n        const { data: n, error: a } = e;\n        return a ? { data: { valid: null }, error: a } : !n || n.valid === null ? { data: { valid: null }, error: new N() } : { data: { valid: n.valid }, error: null };\n      } catch (e) {\n        if (h(e))\n          return { data: { valid: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"activateLicenseKey\", async (r) => {\n      try {\n        let e;\n        const s = this.getAccessToken();\n        if (!s)\n          throw new l(\n            \"You must provide a token\"\n          );\n        if (!r.license_key)\n          throw new l(\n            \"You must provide a license_key\"\n          );\n        const { license_key: n } = r;\n        e = await d(fetch, \"POST\", `${this.url}/me/license-keys/activate`, {\n          headers: this.headers,\n          body: {\n            license_key: n\n          },\n          xform: D,\n          jwt: s\n        });\n        const { data: a, error: o } = e;\n        return o ? { data: { message: null }, error: o } : !a || a.message === null ? { data: { message: null }, error: new P() } : (await this.getUser({ cache: !1 }), { data: { message: a.message }, error: null });\n      } catch (e) {\n        if (h(e))\n          return { data: { message: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"signUp\", async (r) => {\n      var e;\n      try {\n        let s;\n        if (!r.email)\n          throw new l(\n            \"You must provide an email\"\n          );\n        if (!r.password)\n          throw new l(\n            \"You must provide a password\"\n          );\n        const { email: n, password: a, options: o } = r;\n        s = await d(fetch, \"POST\", `${this.url}/sign-up`, {\n          headers: this.headers,\n          redirectTo: o == null ? void 0 : o.emailRedirectTo,\n          body: {\n            email: n,\n            password: a,\n            data: (e = o == null ? void 0 : o.data) != null ? e : {}\n          },\n          xform: E\n        });\n        const { data: u, error: c } = s;\n        if (c)\n          return { data: { user: null, session: null }, error: c };\n        if (!u)\n          return { data: { user: null, session: null }, error: new x() };\n        const g = u.session, S = u.user;\n        return g && (this.setUser(JSON.stringify(S)), this.setSession(JSON.stringify(g))), { data: { user: S, session: g }, error: null };\n      } catch (s) {\n        if (h(s))\n          return { data: { user: null, session: null }, error: s };\n        throw s;\n      }\n    });\n    i(this, \"signInWithPassword\", async (r) => {\n      try {\n        if (!r.email)\n          throw new l(\n            \"You must provide an email\"\n          );\n        if (!r.password)\n          throw new l(\n            \"You must provide a password\"\n          );\n        let e;\n        const { email: s, password: n } = r;\n        e = await d(fetch, \"POST\", `${this.url}/token`, {\n          headers: this.headers,\n          body: {\n            email: s,\n            password: n\n          },\n          xform: E\n        });\n        const { data: a, error: o } = e;\n        return o ? { data: { user: null, session: null }, error: o } : !a || !a.session || !a.user ? { data: { user: null, session: null }, error: new x() } : (a.session && (this.setUser(JSON.stringify(a.user)), this.setSession(JSON.stringify(a.session))), { data: { user: a.user, session: a.session }, error: o });\n      } catch (e) {\n        if (h(e))\n          return { data: { user: null, session: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"resetPasswordForEmail\", async (r) => {\n      try {\n        if (!r.email)\n          throw new l(\n            \"You must provide an email\"\n          );\n        let e;\n        const { email: s } = r;\n        e = await d(fetch, \"POST\", `${this.url}/password/reset`, {\n          headers: this.headers,\n          body: {\n            email: s\n          },\n          xform: L\n        });\n        const { data: n, error: a } = e;\n        return a ? { data: { message: null }, error: a } : !n || !n.message ? { data: { message: null }, error: new p() } : { data: { message: n.message }, error: a };\n      } catch (e) {\n        if (h(e))\n          return { data: { message: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"updatePasswordForEmail\", async (r) => {\n      try {\n        if (!r.email)\n          throw new l(\n            \"You must provide an email\"\n          );\n        if (!r.code)\n          throw new l(\n            \"Reset token required\"\n          );\n        if (!r.email)\n          throw new l(\n            \"You must provide a new password\"\n          );\n        let e;\n        const { email: s, code: n, password: a } = r;\n        e = await d(fetch, \"POST\", `${this.url}/password/update`, {\n          headers: this.headers,\n          body: {\n            email: s,\n            code: n,\n            password: a\n          },\n          xform: q\n        });\n        const { data: o, error: u } = e;\n        return u ? { data: { message: null }, error: u } : !o || !o.message ? { data: { message: null }, error: new p() } : { data: { message: o.message }, error: u };\n      } catch (e) {\n        if (h(e))\n          return { data: { message: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"signOut\", async (r = null) => (this.store.remove(\"session\"), this.store.remove(\"user\"), r && window.location.replace(r), { error: null }));\n    i(this, \"fetchSite\", async () => {\n      try {\n        let r;\n        r = await d(fetch, \"GET\", `${this.url}/site`, {\n          headers: this.headers,\n          xform: z\n        });\n        const { data: e, error: s } = r;\n        return s ? { data: { site: null }, error: s } : !e || !e.site ? { data: { site: null }, error: new I() } : (e.site && this.setSite(JSON.stringify(e.site)), { data: { site: e.site }, error: null });\n      } catch (r) {\n        if (h(r))\n          return { data: { site: null }, error: r };\n        throw r;\n      }\n    });\n    i(this, \"fetchUser\", async () => {\n      try {\n        let r;\n        const e = this.getAccessToken();\n        if (!e)\n          throw new l(\n            \"You must provide a token\"\n          );\n        r = await d(fetch, \"GET\", `${this.url}/me`, {\n          headers: this.headers,\n          xform: k,\n          jwt: e\n        });\n        const { data: s, error: n } = r;\n        return n ? { data: { user: null }, error: n } : !s || !s.user ? { data: { user: null }, error: new J() } : (s.user && this.setUser(JSON.stringify(s.user)), { data: { user: s.user }, error: null });\n      } catch (r) {\n        if (h(r))\n          return { data: { user: null }, error: r };\n        throw r;\n      }\n    });\n    i(this, \"updateUser\", async (r) => {\n      try {\n        const e = this.getAccessToken();\n        if (!e)\n          throw new l(\n            \"You must provide a token\"\n          );\n        let s;\n        s = await d(fetch, \"PUT\", `${this.url}/me`, {\n          headers: this.headers,\n          body: r || {},\n          xform: k,\n          jwt: e\n        });\n        const { data: n, error: a } = s;\n        if (a)\n          return { data: { user: null }, error: a };\n        if (!n || n.user === null)\n          return { data: { user: null }, error: new j() };\n        const { data: { user: o } } = await this.getUser({ cache: !1 });\n        return o && this.setUser(JSON.stringify(o)), { data: n, error: null };\n      } catch (e) {\n        if (h(e))\n          return { data: { user: null }, error: e };\n        throw e;\n      }\n    });\n    i(this, \"patchUserData\", async (r) => {\n      try {\n        const e = this.getAccessToken();\n        if (!e)\n          throw new l(\n            \"You must provide a token\"\n          );\n        let s;\n        s = await d(fetch, \"PATCH\", `${this.url}/me/data`, {\n          headers: this.headers,\n          body: r || {},\n          xform: F,\n          jwt: e\n        });\n        const { data: n, error: a } = s;\n        if (a)\n          return { data: null, error: a };\n        if (!n || n.valid === null)\n          return { data: null, error: new b() };\n        const { data: { user: o } } = await this.getUser({ cache: !0 });\n        return o && (o.data = n, this.setUser(JSON.stringify(o))), { data: n, error: null };\n      } catch (e) {\n        if (h(e))\n          return { data: null, error: e };\n        throw e;\n      }\n    });\n    if (this.store = new U(\"fa-\"), this.url = \"https://api.framerauth.com/v1\", r)\n      this.headers = { \"Content-Type\": \"application/json\", \"x-site-id\": r };\n    else {\n      this.headers = {}, console.error(\"Unable to initialize the Auth module, ensure you have added the framer-auth.js file to the beginning of the body.\");\n      return;\n    }\n  }\n}\nconsole.log(\"Framer Auth - Module v0.0.0\");\nconst y = new U(\"fa-\"), V = (y == null ? void 0 : y.get(\"site-id\")) || null, B = new H(V);\nexport {\n  B as auth\n};\n"],"mappings":"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"}