1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5608],{49469:e=>{function t(){var e=Object.create(null),t=0,r=0,i=0,n=!1;function a(t){i--,delete e[t]}this.put=function(t,r,s,o){if(n&&console.log("caching: %s = %j (@%s)",t,r,s),void 0!==s&&("number"!=typeof s||isNaN(s)||s<=0))throw Error("Cache timeout must be a positive number");if(void 0!==o&&"function"!=typeof o)throw Error("Cache timeout callback must be a function");var l=e[t];l?clearTimeout(l.timeout):i++;var u={value:r,expire:s+Date.now()};return isNaN(u.expire)||(u.timeout=setTimeout((function(){a(t),o&&o(t,r)}).bind(this),s)),e[t]=u,r},this.del=function(t){var r=!0,i=e[t];return i?(clearTimeout(i.timeout),!isNaN(i.expire)&&i.expire<Date.now()&&(r=!1)):r=!1,r&&a(t),r},this.clear=function(){for(var a in e)clearTimeout(e[a].timeout);i=0,e=Object.create(null),n&&(t=0,r=0)},this.get=function(a){var s=e[a];if(void 0!==s)if(isNaN(s.expire)||s.expire>=Date.now())return n&&t++,s.value;else n&&r++,i--,delete e[a];else n&&r++;return null},this.size=function(){return i},this.memsize=function(){var t,r=0;for(t in e)r++;return r},this.debug=function(e){n=e},this.hits=function(){return t},this.misses=function(){return r},this.keys=function(){return Object.keys(e)},this.exportJson=function(){var t={};for(var r in e){var i=e[r];t[r]={value:i.value,expire:i.expire||"NaN"}}return JSON.stringify(t)},this.importJson=function(t,r){var i=JSON.parse(t),a=Date.now(),s=r&&r.skipDuplicates;for(var o in i)if(i.hasOwnProperty(o)){if(s&&e[o]){n&&console.log("Skipping duplicate imported key '%s'",o);continue}var l=i[o],u=l.expire-a;if(u<=0){this.del(o);continue}u=u>0?u:void 0,this.put(o,l.value,u)}return this.size()}}e.exports=new t,e.exports.Cache=t},85608:(e,t,r)=>{r.r(t),r.d(t,{default:()=>x});var i=r(15383);let n=/^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i,a=e=>{if("string"!=typeof e)throw TypeError("Invalid argument expected string");let t=e.match(n);
1if(!t)throw Error(`Invalid argument not valid semver ('${e}' received)`);return t.shift(),t},s=e=>"*"===e||"x"===e||"X"===e,o=e=>{let t=parseInt(e,10);return isNaN(t)?e:t},l=(e,t)=>{let r,i;if(s(e)||s(t))return 0;let[n,a]=typeof(r=o(e))!=typeof(i=o(t))?[String(r),String(i)]:[r,i];return n>a?1:n<a?-1:0},u=(e,t)=>{for(let r=0;r<Math.max(e.length,t.length);r++){let i=l(e[r]||"0",t[r]||"0");if(0!==i)return i}return 0};var c=r(49469),f=r.n(c),h=r(31912),m=r(18159),p=r(33308);let d="latestRelease";function x({disableUpdateCheck:e=!1}){var t;let r,s,o,l,c,{t:v,i18n:g}=(0,h.Bd)(),b="2026-09-09T21:54:10.804Z",N="541b2fe9f13de9b4efbbc4d1e5fbc4c8d637734b",w="v2.3.0",k=e=>new Intl.DateTimeFormat(g.language,{year:"numeric",month:"short",day:"numeric"}).format(new Date(e)),y=f().get(d),{data:j}=(0,p.u)(y||e?null:"/api/releases");return j&&(y=j?.[0],f().put(d,y,36e5)),(0,i.jsxs)("div",{id:"version",className:"flex flex-row items-center",children:[(0,i.jsx)("span",{className:"text-xs text-theme-500 dark:text-theme-400",children:(0,i.jsxs)("a",{href:`https://github.com/gethomepage/homepage/releases/tag/${w}`,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-xs text-theme-500 dark:text-theme-400 flex flex-row items-center",children:[w," (",N.substring(0,7),", ",k(b),")"]})}),"string"==typeof w&&/^[v\d]/.test(w)&&n.test(w)?y&&(t=y.tag_name,r=a(t),s=a(w),o=r.pop(),l=s.pop(),(0!==(c=u(r,s))?c:o&&l?u(o.split("."),l.split(".")):o||l?o?-1:1:0)>0)&&(0,i.jsxs)("a",{href:y.html_url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-xs text-theme-500 dark:text-theme-400 flex flex-row items-center",children:[(0,i.jsx)(m._6F,{className:"mr-1"})," ",v("Update Available")]}):null]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.