1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return u},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function u(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},18967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return x},NormalizeError:function(){return b},PageNotFoundError:function(){return v},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return a},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return u},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>s.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class v extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class x extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},33525,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return s},formatWithValidation:function(){return l},urlObjectKeys:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(98578)._(e.r(98183)),i=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",s=e.hash||"",u=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),u&&"object"==typeof u&&(u=String(a.urlQueryToSearchParams(u)));let c=e.search||u&&`?${u}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}
1${c}${s}`}let u=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return s(e)}},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(71645);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(18967),o=e.r(52817);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return v}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(98578),i=e.r(43476),s=a._(e.r(71645)),u=e.r(95057),l=e.r(8372),c=e.r(18581),f=e.r(18967),d=e.r(5550);e.r(33525);let p=e.r(88540),h=e.r(91949),m=e.r(73668),g=e.r(9396);function y(t){var r,n;let o,a,y,[v,x]=(0,s.useOptimistic)(h.IDLE_LINK_STATUS),j=(0,s.useRef)(null),{href:w,as:k,children:S,prefetch:_=null,passHref:P,replace:E,shallow:C,scroll:O,onClick:N,onMouseEnter:T,onTouchStart:R,legacyBehavior:A=!1,onNavigate:I,transitionTypes:M,ref:$,unstable_dynamicOnHover:U,...L}=t;o=S,A&&("string"==typeof o||"number"==typeof o)&&(o=(0,i.jsx)("a",{children:o}));let D=s.default.useContext(l.AppRouterContext),B=!1!==_,F=!1!==_?null===(n=_)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,z="string"==typeof(r=k||w)?r:(0,u.formatUrl)(r);if(A){if(o?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=s.default.Children.only(o)}let W=A?a&&"object"==typeof a&&a.ref:$,q=s.default.useCallback(e=>(null!==D&&(j.current=(0,h.mountLinkInstance)(e,z,D,F,B,x)),()=>{j.current&&((0,h.unmountLinkForCurrentNavigation)(j.current),j.current=null),(0,h.unmountPrefetchableInstance)(e)}),[B,z,D,F,x]),K={ref:(0,c.useMergedRef)(q,W),onClick(t){A||"function"!=typeof N||N(t),A&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,o,a,i,u){if("u">typeof window){let l,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);s.default.startTransition(()=>{f(r,o?"replace":"push",!1===a?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,u)})}}(t,z,j,E,O,I,M)},onMouseEnter(e){A||"function"!=typeof T||T(e),A&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){A||"function"!=typeof R||R(e),A&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),D&&B&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,f.isAbsoluteUrl)(z)?K.href=z:A&&!P&&("a"!==a.type||"href"in a.props)||(K.href=(0,d.addBasePath)(z)),y=A?s.default.cloneElement(a,K):(0,i.jsx)("a",{...L,...K,children:o}),(0,i.jsx)(b.Provider,{value:v,children:y})}e.r(84508);let b=(0,s.createContext)(h.IDLE_LINK_STATUS),v=()=>(0,s.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},21693,e=>{"use strict";var t=e.i(43476),r=e.i(22016),n=e.i(71645),o=e.i(20755);e.s(["default",0,function(){let[e,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=!0;try{(0,o.createClient)().auth.getSession().then(({data:t})=>{e&&a(!!t.session)}).catch(()=>{})}catch(e){}return()=>{e=!1}},[]),e?(0,t.jsx)(r.default,{href:"/account",className:"link-quiet",children:"Account"}):(0,t.jsx)(r.default,{href:"/login",className:"link-quiet",children:"Sign in"})}])},36020,e=>{"use strict";var t=e.i(43476),r=e.i(71645);let n="yunit.theme";e.s(["default",0,function(){let[e,o]=(0,r.useState)("auto");(0,r.useEffect)(()=>{try{let e=localStorage.getItem(n);("paper"===e||"night"===e||"auto"===e)&&o(e)}catch(e){}},[]);let a=(r,a)=>(0,t.jsx)("button",{type:"button",onClick:()=>(function(e){let t,r,a;o(e);try{localStorage.setItem(n,e)}catch(e){}t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches,a="auto"===e?r?"night":"paper":e,t.setAttribute("data-theme",a),t.setAttribute("data-theme-pref",e)})(r),"aria-pressed":e===r,className:"link-quiet cursor-pointer bg-transparent border-0 p-0 font-sans text-[12.5px] "+(e===r?"text-ink":""),style:e===r?{textDecoration:"underline",textDecorationColor:"var(--accent)",textUnderlineOffset:"0.22em"}:void 0,children:a});return(0,t.jsxs)("span",{className:"inline-flex items-baseline gap-3",role:"group","aria-label":"Appearance",children:[a("paper","Paper"),a("night","Night"),a("auto","Auto")]})}])},1401,e=>{"use strict";e.i(47167);var t=e.i(43476),r=e.i(71645),n=e.i(22016),o=e.i(18566),a=e.i(20755);e.s(["default",0,function(){var e;let i=(0,o.useSearchParams)(),s=(0,o.useRouter)(),u=(e=i.get("next"),"string"!=typeof e||!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")?"/auth/done":e),[l,c]=(0,r.useState)("magic"),[f,d]=(0,r.useState)(""),[p,h]=(0,r.useState)(""),[m,g]=(0,r.useState)(!1),[y,b]=(0,r.useState)(null),[v,x]=(0,r.useState)(null),j=(0,a.createClient)(),w="https://yunit.app";async function k(){g(!0),x(null);let{error:e}=await j.auth.signInWithOAuth({provider:"google",options:{redirectTo:`${w}/auth/callback?next=${encodeURIComponent(u)}`}});e&&(x(e.message),g(!1))}async function S(e){e.preventDefault(),g(!0),x(null),b(null);let{error:t}=await j.auth.signInWithOtp({email:f,options:{emailRedirectTo:`${w}/auth/callback?next=${encodeURIComponent(u)}`}});g(!1),t?x(t.message):b(`Check ${f} for a sign-in link. You can close this tab once you click it.`)}async function _(e){e.preventDefault(),g(!0),x(null);let{error:t}=await j.auth.signInWithPassword({email:f,password:p});(g(!1),t)?x(t.message):(s.push(u),s.refresh())}async function P(){g(!0),x(null),b(null);let{error:e}=await j.auth.signUp({email:f,password:p,options:{emailRedirectTo:`${w}/auth/callback?next=${encodeURIComponent(u)}`}});g(!1),e?x(e.message):b(`If ${f} is new here, a confirmation link is on its way. If you already have an account, sign in above or reset your password.`)}let E=(e,r)=>(0,t.jsx)("button",{type:"button",onClick:()=>c(e),className:"bg-transparent border-0 p-0 font-serif italic text-[16px] cursor-pointer transition-colors "+(l===e?"text-ink":"text-ink-3 hover:text-ink"),style:l===e?{textDecoration:"underline",textDecorationColor:"var(--accent)",textUnderlineOffset:"0.22em"}:{textDecoration:"underline dotted",textDecorationColor:"var(--ink-4)",textUnderlineOffset:"0.22em"},"aria-pressed":l===e,children:r});return(0,t.jsxs)("div",{className:"space-y-7",children:[(0,t.jsxs)("button",{type:"button",onClick:k,disabled:m,className:"btn-secondary btn-block",children:[(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none","aria-hidden":!0,children:[(0,t.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,t.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23z",fill:"#34A853"}),(0,t.jsx)("path",{d:"M5.84 14.1c-.22-.66-.35-1.36-.35-2.1s.13-1.44.35-2.1V7.07H2.18A11 11 0 0 0 1 12c0 1.78.43 3.46 1.18 4.93l3.66-2.83z",fill:"#FBBC05"}),(0,t.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.46 2.09 14.97 1 12 1A11 11 0 0 0 2.18 7.07l3.66 2.83C6.71 7.31 9.14 5.38 12 5.38z",fill:"#EA4335"})]}),"Continue with Google"]}),(0,t.jsxs)("p",{className:"t-aside text-[16px]",children:["Or by email, with ",E("magic","a link")," or ",E("password","a password"),"."]}),"magic"===l?(0,t.jsxs)("form",{onSubmit:S,className:"space-y-5",children:[(0,t.jsx)("input",{type:"email",required:!0,placeholder:"[email protected]",value:f,onChange:e=>d(e.target.value),className:"field","aria-label":"Email"}),(0,t.jsx)("button",{type:"submit",disabled:m||!f,className:"btn-primary",children:"Send the link"})]}):(0,t.jsxs)("form",{onSubmit:_,className:"space-y-5",children:[(0,t.jsx)("input",{type:"email",required:!0,placeholder:"[email protected]",value:f,onChange:e=>d(e.target.value),className:"field","aria-label":"Email"}),(0,t.jsx)("input",{type:"password",required:!0,placeholder:"password",value:p,onChange:e=>h(e.target.value),className:"field","aria-label":"Password"}),(0,t.jsxs)("div",{className:"flex items-center gap-4 pt-1",children:[(0,t.jsx)("button",{type:"submit",disabled:m||!f||!p,className:"btn-primary",children:"Sign in"}),(0,t.jsx)("button",{type:"button",onClick:P,disabled:m||!f||!p,className:"btn-tertiary",children:"Sign up instead"}),(0,t.jsx)(n.default,{href:"/forgot-password",className:"link-quiet font-sans text-[13px] ml-auto",children:"Forgot it?"})]})]}),y&&(0,t.jsx)("p",{className:"notice",children:y}),v&&(0,t.jsx)("p",{className:"notice notice-danger",children:v})]})}],1401)},41171,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(18566),o=e.i(20755),a=e.i(64491),i=e.i(90809);let s=[0,800,1600];e.s(["default",0,function({next:e}){let u=(0,n.useRouter)(),[l,c]=(0,r.useState)(!1);return((0,r.useEffect)(()=>
1{if((0,a.isMarkedSignedOut)())return;let t=(0,o.createClient)(),r=window.location.origin,n=null,l=[],f=!0,d=!1,p=async n=>{if(!f||d||n.source!==window||n.origin!==r)return;let o=n.data;if(!o||"yunit:auth-response"!==o.type)return;(0,i.markExtensionSeen)();let a=o.session;if(!a?.access_token)return;if(d=!0,c(!0),a.refresh_token){let{error:e}=await t.auth.setSession({access_token:a.access_token,refresh_token:a.refresh_token});if(!f)return;if(e)return void c(!1)}else{try{let e=await fetch("/api/auth/session-grant",{method:"POST",headers:{Authorization:`Bearer ${a.access_token}`}});if(!e.ok)throw Error("grant failed");let r=await e.json();if(!r?.token_hash)throw Error("no token_hash");let{error:n}=await t.auth.verifyOtp({type:"magiclink",token_hash:r.token_hash});if(n)throw n}catch{f&&c(!1);return}if(!f)return}let s=!e.startsWith("/")||e.startsWith("//")||e.startsWith("/\\")?"/account":e;u.push(s),u.refresh()};for(let e of(window.addEventListener("message",p),s))l.push(setTimeout(()=>{f&&!d&&window.postMessage({type:"yunit:auth-request"},r)},e));return n=setTimeout(()=>{f=!1,window.removeEventListener("message",p)},2600),()=>{for(let e of(f=!1,n&&clearTimeout(n),l))clearTimeout(e);window.removeEventListener("message",p)}},[u,e]),l)?(0,t.jsx)("p",{className:"text-sm text-ink-soft font-serif italic mb-6",children:"Recognizing your extension sessionâ¦"}):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.