{"version":3,"names":["settings","enabled","target","reloadMode","reload_mode","intervalMinutes","parseInt","reload_interval_minutes","forceReload","force_document_reload","bustOnForeground","bust_on_foreground","debug","debug_logging","PARAM","STORAGE_KEY","SESSION_KEY","log","console","args","i","arguments","length","push","apply","ua","navigator","userAgent","test","isHub","window","ReactNativeWebView","location","search","isStandalone","matchMedia","matches","standalone","document","referrer","isMobile","platform","maxTouchPoints","shouldRun","url","URL","href","alreadyBusted","searchParams","has","delete","history","replaceState","state","pathname","hash","bust","jobs","serviceWorker","getRegistrations","then","regs","Promise","all","map","registration","unregister","caches","keys","key","markReloaded","sessionStorage","setItem","localStorage","String","Date","now","e","shouldReload","getItem","last","reloadFresh","next","set","replace","reload","finished","finish","err","timer","setTimeout","clearTimeout","catch","addEventListener","visibilityState","event","persisted"],"sources":["theme-124-inline-common-head_tag.js"],"sourcesContent":["\n  (function () {\n    // `settings` is injected by Discourse into compiled theme JS.\n    if (!settings.enabled) {\n      return;\n    }\n\n    var target = settings.target;\n    var reloadMode = settings.reload_mode;\n    var intervalMinutes = parseInt(settings.reload_interval_minutes, 10) || 15;\n    var forceReload = settings.force_document_reload;\n    var bustOnForeground = settings.bust_on_foreground;\n    var debug = settings.debug_logging;\n\n    var PARAM = \"_dcb\";\n    var STORAGE_KEY = \"dcb:last\";\n    var SESSION_KEY = \"dcb:session\";\n\n    function log() {\n      if (!debug || typeof console === \"undefined\") {\n        return;\n      }\n      var args = [\"[cachebuster]\"];\n      for (var i = 0; i < arguments.length; i++) {\n        args.push(arguments[i]);\n      }\n      console.log.apply(console, args);\n    }\n\n    var ua = navigator.userAgent || \"\";\n    if (\n      /bot|crawler|spider|slurp|preview|facebookexternalhit|embed/i.test(ua)\n    ) {\n      log(\"skip bot\");\n      return;\n    }\n\n    var isHub =\n      typeof window.ReactNativeWebView !== \"undefined\" ||\n      /discourse_app=1/.test(location.search) ||\n      /DiscourseHub/i.test(ua);\n\n    var isStandalone =\n      (window.matchMedia &&\n        window.matchMedia(\"(display-mode: standalone)\").matches) ||\n      !!navigator.standalone ||\n      /android-app:\\/\\//.test(document.referrer || \"\");\n\n    var isMobile =\n      /iPhone|iPod|Android.+Mobile|Windows Phone/i.test(ua) ||\n      (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1) ||\n      isStandalone;\n\n    var shouldRun = false;\n    if (target === \"everywhere\") {\n      shouldRun = true;\n    } else if (target === \"hub_only\") {\n      shouldRun = isHub;\n    } else if (target === \"mobile_only\") {\n      shouldRun = isMobile;\n    } else {\n      shouldRun = isHub || isMobile;\n    }\n\n    if (!shouldRun) {\n      log(\"skip target\", {\n        target: target,\n        isHub: isHub,\n        isMobile: isMobile,\n      });\n      return;\n    }\n\n    var url = new URL(location.href);\n    var alreadyBusted = url.searchParams.has(PARAM);\n    if (alreadyBusted) {\n      url.searchParams.delete(PARAM);\n      history.replaceState(\n        history.state,\n        \"\",\n        url.pathname + url.search + url.hash\n      );\n      log(\"stripped cache-bust param\");\n    }\n\n    function bust() {\n      var jobs = [];\n\n      if (\"serviceWorker\" in navigator) {\n        jobs.push(\n          navigator.serviceWorker.getRegistrations().then(function (regs) {\n            log(\"unregistering service workers\", regs.length);\n            return Promise.all(\n              regs.map(function (registration) {\n                return registration.unregister();\n              })\n            );\n          })\n        );\n      }\n\n      if (\"caches\" in window) {\n        jobs.push(\n          caches.keys().then(function (keys) {\n            log(\"deleting caches\", keys);\n            return Promise.all(\n              keys.map(function (key) {\n                return caches.delete(key);\n              })\n            );\n          })\n        );\n      }\n\n      return Promise.all(jobs);\n    }\n\n    function markReloaded() {\n      try {\n        sessionStorage.setItem(SESSION_KEY, \"1\");\n        localStorage.setItem(STORAGE_KEY, String(Date.now()));\n      } catch (e) {}\n    }\n\n    function shouldReload() {\n      if (!forceReload || alreadyBusted) {\n        return false;\n      }\n\n      if (reloadMode === \"every_load\") {\n        return true;\n      }\n\n      if (reloadMode === \"once_per_session\") {\n        try {\n          return !sessionStorage.getItem(SESSION_KEY);\n        } catch (e) {\n          return true;\n        }\n      }\n\n      try {\n        var last = parseInt(localStorage.getItem(STORAGE_KEY) || \"0\", 10);\n        return Date.now() - last >= intervalMinutes * 60 * 1000;\n      } catch (e) {\n        return true;\n      }\n    }\n\n    function reloadFresh() {\n      markReloaded();\n      var next = new URL(location.href);\n      next.searchParams.delete(PARAM);\n      next.searchParams.set(PARAM, String(Date.now()));\n      log(\"hard reload\", next.href);\n      location.replace(next.href);\n    }\n\n    var reload = shouldReload();\n    var finished = false;\n\n    function finish(err) {\n      if (finished) {\n        return;\n      }\n      finished = true;\n      if (err) {\n        log(\"bust error\", err);\n      } else {\n        log(\"bust complete\");\n      }\n      if (reload) {\n        reloadFresh();\n      }\n    }\n\n    var timer = setTimeout(function () {\n      log(\"bust timed out\");\n      finish();\n    }, 2000);\n\n    bust()\n      .then(function () {\n        clearTimeout(timer);\n        finish();\n      })\n      .catch(function (err) {\n        clearTimeout(timer);\n        finish(err);\n      });\n\n    if (bustOnForeground) {\n      document.addEventListener(\"visibilitychange\", function () {\n        if (document.visibilityState === \"visible\") {\n          bust().catch(function (err) {\n            log(\"foreground bust error\", err);\n          });\n        }\n      });\n    }\n\n    window.addEventListener(\"pageshow\", function (event) {\n      if (event.persisted) {\n        bust().catch(function (err) {\n          log(\"pageshow bust error\", err);\n        });\n      }\n    });\n  })();\n"],"mappings":"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","ignoreList":[]}