PageSourceSearch

https://projects.dev/_next/static/immutable/chunks/42o8u1yxaec0p.js

js projects.dev collected 2026-10-02 02:24:40 UTC 34,842 bytes, 3 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,57215,e=>{"use strict";var t=e.i(47167),a=e.i(71645),r=e.i(18566);function n(){return false}function i(e){return RegExp(`/${e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}(?=[/?#]|$)`)}function l(e){return e.startsWith("http://")||e.startsWith("https://")||e.startsWith("/")?e:`/${e}`}function o(e){(0,a.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.si)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]);let r=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(!r.current){let a=function(e={},t){var a;if(!("u">typeof window)||null===e.route)return null;window.si||(window.si=function(...e){window.siq=window.siq||[],window.siq.push(e)});let{beforeSend:r,src:i,dataset:o}=function(e,t){var a,r;let i=e;if(t)try{i={...null==(a=JSON.parse(t))?void 0:a.speedInsights,...e}}catch{}let o={sdkn:"@vercel/speed-insights"+(i.framework?`/${i.framework}`:""),sdkv:"2.0.0"};return i.sampleRate&&(o.sampleRate=i.sampleRate.toString()),i.route&&(o.route=i.route),n()&&!1===i.debug&&(o.debug="false"),i.dsn&&(o.dsn=i.dsn),i.endpoint?o.endpoint=l(i.endpoint):i.basePath&&(o.endpoint=l(`${i.basePath}/speed-insights/vitals`)),{src:(r=i).scriptSrc?l(r.scriptSrc):n()?"https://va.vercel-scripts.com/v1/speed-insights/script.debug.js":r.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":r.basePath?l(`${r.basePath}/speed-insights/script.js`):"/_vercel/speed-insights/script.js",beforeSend:i.beforeSend,dataset:o}}(e,t);if(document.head.querySelector(`script[src*="${i}"]`))return null;r&&(null==(a=window.si)||a.call(window,"beforeSend",r));let s=document.createElement("script");for(let[e,t]of(s.src=i,s.defer=!0,Object.entries(o)))s.dataset[e]=t;return s.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${i}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(s),{setRoute:e=>{s.dataset.route=e??void 0}}}({framework:e.framework??"react",basePath:e.basePath??function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...e},e.configString??function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}());a&&(r.current=a.setRoute)}},[e]),(0,a.useEffect)(()=>{r.current&&e.route&&r.current(e.route)},[e.route]),null}function s(e){let n=(()=>{let e=(0,r.useParams)(),t=(0,r.useSearchParams)()||new URLSearchParams,a=(0,r.usePathname)();if(!e)return null;let n=Object.keys(e).length?e:Object.fromEntries(t.entries());if(!a||!n)return a;let l=a;try{let e=Object.entries(n);for(let[t,a]of e)if(!Array.isArray(a)){let e=i(a);e.test(l)&&(l=l.replace(e,`/[${t}]`))}for(let[t,a]of e)if(Array.isArray(a)){let e=i(a.join("/"));e.test(l)&&(l=l.replace(e,`/[...${t}]`))}return l}catch{return a}})();return a.default.createElement(o,{route:n,...e,framework:"next",basePath:function(){if(void 0!==t.default&&void 0!==t.default.env)return t.default.env.NEXT_PUBLIC_VERCEL_OBSERVABILITY_BASEPATH}
1(),configString:function(){if(void 0!==t.default&&void 0!==t.default.env)return'{"analytics":{"scriptSrc":"8940cd369852f4f8/script.js","viewEndpoint":"8940cd369852f4f8/view","eventEndpoint":"8940cd369852f4f8/event","sessionEndpoint":"8940cd369852f4f8/session"},"speedInsights":{"scriptSrc":"58796ea71cba81f3/script.js","endpoint":"58796ea71cba81f3/vitals"}}'}()})}e.s(["SpeedInsights",0,function(e){return a.default.createElement(a.Suspense,{fallback:null},a.default.createElement(s,{...e}))}])},8341,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={cancelIdleCallback:function(){return l},requestIdleCallback:function(){return i}};for(var n in r)Object.defineProperty(a,n,{enumerable:!0,get:r[n]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},l="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},19083,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={ESCAPE_REGEX:function(){return l},htmlEscapeAttributeString:function(){return u},htmlEscapeJsonString:function(){return d}};for(var n in r)Object.defineProperty(a,n,{enumerable:!0,get:r[n]});let i={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},l=/[&><\u2028\u2029]/g,o={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;"},s=/[&"'<>]/g;function d(e){return e.replace(l,e=>i[e])}function u(e){return e.replace(s,e=>o[e])}},79520,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var r={default:function(){return j},handleClientScriptLoad:function(){return b},initScriptLoader:function(){return g}};for(var n in r)Object.defineProperty(a,n,{enumerable:!0,get:r[n]});let i=e.r(55682),l=e.r(90809),o=e.r(43476),s=i._(e.r(74080)),d=l._(e.r(71645)),u=e.r(42732),c=e.r(22737),f=e.r(8341),m=e.r(19083),h=new Map,p=new Set,_=e=>{let{src:t,id:a,onLoad:r=()=>{},onReady:n=null,dangerouslySetInnerHTML:i,children:l="",strategy:o="afterInteractive",onError:d,stylesheets:u}=e,f=a||t;if(f&&p.has(f))return;if(h.has(t)){p.add(f),h.get(t).then(r,d);return}let m=()=>{n&&n(),p.add(f)},_=document.createElement("script"),b=new Promise((e,t)=>{_.addEventListener("load",function(t){e(),r&&r.call(this,t),m()}),_.addEventListener("error",function(e){t(e)})}).catch(function(e){d&&d(e)});i?(_.innerHTML=i.__html||"",m()):l?(_.textContent="string"==typeof l?l:Array.isArray(l)?l.join(""):"",m()):t&&(_.src=t,h.set(t,b)),(0,c.setAttributesFromProps)(_,e),"worker"===o&&_.setAttribute("type","text/partytown"),_.setAttribute("data-nscript",o),u&&(e=>{if(s.default.preinit)return e.forEach(e=>{s.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let a=document.createElement("link");a.type="text/css",a.rel="stylesheet",a.href=e,t.appendChild(a)})}})(u),document.body.appendChild(_)};function b(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>_(e))}):_(e)}function g(e){e.forEach(b),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");p.add(t)})}function v(e){let{id:t,src:a="",onLoad:r=()=>{},onReady:n=null,strategy:i="afterInteractive",onError:l,stylesheets:c,...h}=e,{updateScripts:b,scripts:g,getIsSsr:v,appDir:j,nonce:y}=(0,d.useContext)(u.HeadManagerContext);y=h.nonce||y;let w=(0,d.useRef)(!1);(0,d.useEffect)(()=>{let e=t||a;w.current||(n&&e&&p.has(e)&&n(),w.current=!0)},[n,t,a]);let x=(0,d.useRef)(!1);if((0,d.useEffect)(()=>{if(!x.current){if("afterInteractive"===i)_(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>_(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>_(e))}));x.current=!0}}
1,[e,i]),("beforeInteractive"===i||"worker"===i)&&(b?(g[i]=(g[i]||[]).concat([{id:t,src:a,onLoad:r,onReady:n,onError:l,...h,nonce:y}]),b(g)):v&&v()?p.add(t||a):v&&!v()&&_({...e,nonce:y})),j){if(c&&c.forEach(e=>{s.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!a)return h.dangerouslySetInnerHTML&&(h.children=h.dangerouslySetInnerHTML.__html,delete h.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:y,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,m.htmlEscapeJsonString)(JSON.stringify([0,{...h,id:t}]))})`}});else return s.default.preload(a,h.integrity?{as:"script",integrity:h.integrity,nonce:y,crossOrigin:h.crossOrigin}:{as:"script",nonce:y,crossOrigin:h.crossOrigin}),(0,o.jsx)("script",{nonce:y,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,m.htmlEscapeJsonString)(JSON.stringify([a,{...h,id:t}]))})`}});"afterInteractive"===i&&a&&s.default.preload(a,h.integrity?{as:"script",integrity:h.integrity,nonce:y,crossOrigin:h.crossOrigin}:{as:"script",nonce:y,crossOrigin:h.crossOrigin})}return null}Object.defineProperty(v,"__nextScript",{value:!0});let j=v;("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},3303,(e,t,a)=>{t.exports=e.r(79520)},19415,e=>{e.v({container:"page-module__WK-0Ja__container",empty:"page-module__WK-0Ja__empty",error:"page-module__WK-0Ja__error",header:"page-module__WK-0Ja__header",loading:"page-module__WK-0Ja__loading",main:"page-module__WK-0Ja__main",submitButton:"page-module__WK-0Ja__submitButton",tagline:"page-module__WK-0Ja__tagline",title:"page-module__WK-0Ja__title",titleLine1:"page-module__WK-0Ja__titleLine1",titleLine2:"page-module__WK-0Ja__titleLine2"})},284,e=>{e.v({container:"AnimatedBackground-module__jHobAa__container",fallback:"AnimatedBackground-module__jHobAa__fallback"})},95295,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(284);let n=null;e.s(["AnimatedBackground",0,function(){let i=(0,a.useRef)(null),l=(0,a.useRef)(null),o=(0,a.useRef)(null);return(0,a.useEffect)(()=>{if(null===o.current&&(o.current=function(){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches||window.devicePixelRatio<1)return!1;let e=document.createElement("canvas");return!!(e.getContext("webgl")||e.getContext("experimental-webgl"))}()),!o.current||!i.current)return;let t=!1,a=()=>{(!n&&(n=e.A(21558)),n).then(({NouveauBloomWave:e})=>{t||(l.current=new e)})};return"requestIdleCallback"in window?window.requestIdleCallback(a,{timeout:3e3}):setTimeout(a,1e3),()=>{t=!0,l.current&&(l.current.dispose(),l.current=null)}},[]),(0,t.jsx)("div",{ref:i,className:`${r.default.container} ${r.default.fallback}`,"data-js-target":"nouveau-bloom-wave","data-position-x":"500","data-position-y":"400","data-blur":"0","data-camera-zoom":"1.5","data-wave-rotation":"-85","data-color-offset":"0","data-dither-gradient":"2","data-dither-scale":"3","data-dither-full":"true"})}])},68559,e=>{"use strict";var t=e.i(43476),a=e.i(71645),r=e.i(93873),n=e.i(10360);function i({projectId:e,upvotes:a,hasVoted:r,error:l,onVote:o}){return(0,t.jsxs)("div",{className:n.default.container,children:[(0,t.jsxs)("button",{className:`${n.default.button} ${r?n.default.voted:""}`,onClick:()=>!r&&o(e),disabled:r,"aria-label":r?`Voted (${a} votes)`:`Upvote (${a} votes)`,children:[(0,t.jsx)("svg",{className:n.default.arrow,width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,t.jsx)("path",{d:"M6 2L10 7H2L6 2Z",fill:"currentColor"})}),(0,t.jsx)("span",{className:n.default.count,children:a})]}),l&&(0,t.jsx)("span",{className:n.default.warning,role:"alert",children:l})]})}var l=e.i(85149),o=e.i(87068);function s({projectName:e}){let a=`${l.PRODUCTION_ORIGIN}/vote/${encodeURIComponent(e)}`,r=`Check out "${e}" on the Stripe Projects Leaderboard!`,n=`https://x.com/intent/tweet?text=${encodeURIComponent(r)}&url=${encodeURIComponent(a)}`,i=`https://www.linkedin.com/feed/?shareActive=true&text=${encodeURIComponent(`${r}
2
3${a}`)}`;return(0,t.jsxs)("div",{className:o.default.wrapper,children:[(0,t.jsx)("a",{href:n,target:"_blank",rel:"noopener noreferrer",className:o.default.link,"aria-label":"Share on X",title:"Share on X",suppressHydrationWarning:!0,children:(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"
3currentColor",children:(0,t.jsx)("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})})}),(0,t.jsx)("a",{href:i,target:"_blank",rel:"noopener noreferrer",className:o.default.link,"aria-label":"Share on LinkedIn",title:"Share on LinkedIn",suppressHydrationWarning:!0,children:(0,t.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,t.jsx)("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"})})})]})}var d=e.i(43502);function u({projects:e,votedIds:a,voteError:r,onVote:n,hackathons:l,hackathonFilter:o,onHackathonFilterChange:c}){return(0,t.jsxs)("div",{className:d.default.tableWrapper,children:[l.length>0&&(0,t.jsxs)("div",{className:d.default.filterBar,children:[(0,t.jsx)("label",{className:d.default.filterLabel,htmlFor:"hackathon-filter",children:"Filter by hackathon:"}),(0,t.jsxs)("select",{id:"hackathon-filter",className:d.default.filterSelect,value:o??"",onChange:e=>c(e.target.value||null),children:[(0,t.jsx)("option",{value:"",children:"All Projects"}),l.map(({code:e,name:a})=>(0,t.jsx)("option",{value:e,children:a},e))]})]}),0===e.length?(0,t.jsx)("p",{className:d.default.emptyFilter,children:"No projects found for this hackathon yet."}):(0,t.jsxs)("table",{className:d.default.table,children:[(0,t.jsx)("thead",{children:(0,t.jsxs)("tr",{children:[(0,t.jsx)("th",{className:d.default.thRank,children:"#"}),(0,t.jsx)("th",{className:d.default.thName,children:"Project"}),(0,t.jsx)("th",{className:d.default.thUser,children:"User"}),(0,t.jsx)("th",{className:d.default.thLink,children:"Repo"}),(0,t.jsx)("th",{className:d.default.thLink,children:"Stack"}),(0,t.jsx)("th",{className:d.default.thVotes,children:"Votes"}),(0,t.jsx)("th",{className:d.default.thShare,children:"Share"})]})}),(0,t.jsx)("tbody",{children:e.map((e,l)=>{let o=`project-${e.project_id.slice(0,12)}`,u=[d.default.goldCoin,d.default.silverCoin,d.default.bronzeCoin],c=[d.default.row,l<10&&d.default.rowTop10,9===l&&d.default.rowTop10Divider].filter(Boolean).join(" ");return(0,t.jsxs)("tr",{id:o,className:c,children:[(0,t.jsx)("td",{className:d.default.rank,children:l<3?(0,t.jsx)("span",{className:`${d.default.coinBadge} ${u[l]}`,children:l+1}):l+1}),(0,t.jsxs)("td",{className:d.default.name,children:[(0,t.jsx)("a",{href:e.project_url,target:"_blank",rel:"noopener noreferrer",className:d.default.projectLink,children:e.project_name}),(0,t.jsxs)("span",{className:d.default.userMobile,children:["by ",e.user_name]}),e.description&&(0,t.jsx)("span",{className:d.default.description,children:e.description})]}),(0,t.jsx)("td",{className:d.default.user,children:e.user_name}),(0,t.jsx)("td",{className:d.default.link,children:(0,t.jsx)("a",{href:e.project_repo_url,target:"_blank",rel:"noopener noreferrer",title:e.project_repo_url,children:"Repo"})}),(0,t.jsx)("td",{className:d.default.link,children:(0,t.jsx)("a",{href:e.project_stack_url,target:"_blank",rel:"noopener noreferrer",title:e.project_stack_url,children:"Stack"})}),(0,t.jsx)("td",{className:d.default.votes,children:(0,t.jsx)(i,{projectId:e.id,upvotes:e.upvotes,hasVoted:a.has(e.id),error:r?.projectId===e.id?r.message:void 0,onVote:n})}),(0,t.jsx)("td",{className:d.default.share,children:(0,t.jsx)(s,{projectName:e.project_name})})]},e.id)})})]})]})}var c=e.i(92802),f=e.i(5364),m=e.i(76461),h=e.i(13286),p=e.i(40929),_=e.i(35717);function b(e){return(0,h.isClerkAPIResponseError)(e)&&e.errors.length>0?e.errors[0]?.longMessage||e.errors[0]?.message||"Authentication request failed. Please try again.":"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message?e.message:"Authentication request failed. Please try again."}function g(e){if((0,h.isClerkAPIResponseError)(e))return 429===e.status||e.errors.some(e=>{let t=e.code?.toLowerCase()||"",a=`${e.message??""} ${e.longMessage??""}`.toLowerCase();return t.includes("too_many")||t.includes("rate_limit")||a.includes("too many")||a.includes("rate limit")});if("object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message){let t=e.message.toLowerCase();return t.includes("too many")||t.includes("rate limit")}return!1}function v(e,t){return Promise.race([e,new Promise((e,a)=>setTimeout(()=>a(Error("Authentication request timed out. Please try again.")),t))])}function j({onClose:e,onSubmitted:r,startAtForm:n,defaultHackathonCode:i}){let[l,o]=(0,a.useState)("email"),[s,d]=(0,a.useState)(""),[u,y]=(0,a.useState)(""),[w,x]=(0,a.useState)(""),[S,P]=(0,a.useState)(!1),[k,C]=(0,a.useState)(!1),[N,L]=(0,a.useState)(!1),{isLoaded:I,user:E}
3=(0,m.useUser)(),{signIn:T}=(0,c.useSignIn)(),{signUp:O}=(0,f.useSignUp)(),[A,R]=(0,a.useState)(""),[B,M]=(0,a.useState)(""),[V,$]=(0,a.useState)(""),[q,U]=(0,a.useState)(""),[Y,J]=(0,a.useState)(""),[H,G]=(0,a.useState)(i??""),[W,F]=(0,a.useState)(null),[z,D]=(0,a.useState)(!!n),[K,X]=(0,a.useState)(!1);async function Z(e){if(!O)return x("Authentication is still loading. Please try again."),!1;if(!O.createdSessionId)return x("Account setup did not create a session. Please request a new verification code and try again."),!1;let{error:t}=await O.finalize();return t?(x(b(t)),!1):(d(e),o("form"),!0)}async function Q(e,t){if(!O)return x("Authentication is still loading. Please try again."),!1;let{error:a}=await O.create({transfer:!0});if(a)return x(b(a)),!1;if("complete"===O.status)return Z(e);if("missing_requirements"===O.status){let a=[...O.missingFields];if(1===a.length&&"password"===a[0]){let a=function(){let e="ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%^&*()-_=+",t=new Uint32Array(24);if("u">typeof globalThis&&globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else for(let a=0;a<t.length;a+=1)t[a]=Math.floor(Math.random()*e.length);let a="Aa1!";for(let r of t)a+=e[r%e.length];return a}(),{error:r}=await O.password({password:a});if(r)return x(b(r)),!1;
3if(O.createdSessionId)return Z(e);if(O.unverifiedFields.includes("email_address")){let{error:a}=await O.verifications.verifyEmailCode({code:t});if(!a&&O.createdSessionId)return Z(e);let{error:r}=await O.verifications.sendEmailCode();return r?x(b(r)):(L(!0),y(""),o("verify"),x("We sent one more verification code to finish account setup. Enter that new code.")),!1}}return a.includes("password")?x("Clerk still requires a password for first-time sign-up. Disable password in Clerk sign-up settings to keep this email-code flow passwordless."):x("Additional account setup is required before you can submit. Please complete sign-up and try again."),!1}return x("Additional account setup is required before you can submit. Please complete sign-up and try again."),!1}async function ee(){if(S)return;if(!T)return void x("Authentication is still loading. Please try again.");x(""),P(!0);let e=(0,p.normalizeEmail)(s);if(!e){x("Email is required"),P(!1);return}try{let t=await fetch("/api/auth/otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e})}),a=await t.json().catch(()=>({}));if(!t.ok)return void(429===t.status?x(a.error||"Too many verification requests. Please wait and try again."):x(a.error||"Failed to send verification code"));if(d(e),a.devBypass)return void o("form");let{error:r}=await v(T.create({identifier:e,signUpIfMissing:!0}),15e3);if(r){console.error("[SubmitProjectModal] signIn.create failed:",r),x(b(r));return}let{error:n}=await v(T.emailCode.sendCode(),15e3);if(n)return void(g(n)?x("Too many verification requests. Please wait and try again."):x(b(n)));L(!1),o("verify")}catch(e){if(g(e))return void x("Too many verification requests. Please wait and try again.");if(e instanceof TypeError&&e.message.includes("fetch"))return void x("Unable to reach the authentication service. Please check your connection and try again.");x(b(e))}finally{P(!1)}}async function et(){if(k)return;if(!T)return void x("Authentication is still loading. Please try again.");x(""),C(!0);let e=(0,p.normalizeEmail)(s),t=u.trim();if(!e){x("Email is required"),C(!1);return}if(!/^[0-9]{6}$/.test(t)){x("Enter the 6-digit verification code from your email."),C(!1);return}if(N){if(!O){x("Authentication is still loading. Please try again."),C(!1);return}try{let{error:a}=await O.verifications.verifyEmailCode({code:t});if(a){if(g(a))return void x("Too many verification attempts. Please wait and try again.");x(b(a));return}if("complete"!==O.status)return void x("Verification did not complete. Please request a new code and try again.");await Z(e)&&L(!1)}catch(e){if(g(e))return void x("Too many verification attempts. Please wait and try again.");x(b(e))}finally{C(!1)}return}try{let{error:a}=await T.emailCode.verifyCode({code:t});if(a){if((0,h.isClerkAPIResponseError)(a)&&a.errors.some(e=>"sign_up_if_missing_transfer"===e.code))return void await Q(e,t);if(g(a))return void x("Too many verification attempts. Please wait and try again.");x(b(a));return}if("complete"!==T.status)return void x("Verification did not complete. Please try again.");let{error:r}=await T.finalize();if(r)return void x(b(r));d(e),o("form")}catch(e){if(g(e))return void x("Too many verification attempts. Please wait and try again.");x(b(e))}finally{C(!1)}}async function ea(){if(!I||!E)return void x("Session is still being established. Please wait a moment and try again.");x(""),o("submitting");let e=await fetch("/api/validate-repo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({repoUrl:V})}),t=await e.json();if(!e.ok){x(t.error),o("form");return}F(t);let a=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectUrl:B,projectRepoUrl:V,projectStackUrl:q,userName:A,stripeAccountId:Y,hackathonCode:H.trim()||void 0,email:s})});if(!a.ok){x((await a.json()).error),o("form");return}o("success"),r()}return(0,a.useEffect)(()=>{if(n&&I){if(E){let e=E.primaryEmailAddress?.emailAddress;e&&d((0,p.normalizeEmail)(e)),o("form")}D(!1)}},[n,I,E]),(0,a.useEffect)(()=>{let e=!O;if(T&&!e)return void X(!1);let t=setTimeout(()=>
3{if(!T||!O){let e=[!T?"signIn":null,!O?"signUp":null].filter(Boolean).join(", ");console.error(`[SubmitProjectModal] Clerk failed to load completely — missing ${e} after 5s. This usually means the Clerk publishable key is misconfigured or the /__clerk proxy is not reachable from this domain.`),X(!0)}},5e3);return()=>clearTimeout(t)},[T,O]),(0,t.jsx)("div",{className:_.default.overlay,onClick:e,children:(0,t.jsxs)("div",{className:_.default.modal,onClick:e=>e.stopPropagation(),children:[(0,t.jsx)("button",{className:_.default.closeButton,onClick:e,"aria-label":"Close",children:"×"}),(0,t.jsx)("h2",{className:_.default.heading,children:"Submit Your Project"}),z&&(0,t.jsx)("p",{className:_.default.description,children:"Loading..."}),w&&(0,t.jsx)("div",{className:_.default.error,children:w}),K&&"email"===l&&!z&&(0,t.jsx)("div",{className:_.default.error,children:"Authentication is temporarily unavailable. Please try again later."}),"email"===l&&!z&&(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),ee()},className:_.default.form,children:[(0,t.jsx)("p",{className:_.default.description,children:"Enter the email address you used with Stripe Projects to verify your identity."}),(0,t.jsxs)("label",{className:_.default.label,children:["Email",(0,t.jsx)("input",{type:"email",required:!0,value:s,onChange:e=>d(e.target.value),className:_.default.input,placeholder:"[email protected]",autoFocus:!0,disabled:S})]}),(0,t.jsx)("button",{type:"submit",className:_.default.primaryButton,disabled:S||!T||K,children:S?"Sending...":"Send Verification Code"})]}),"verify"===l&&(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),et()},className:_.default.form,children:[(0,t.jsxs)("p",{className:_.default.description,children:[N?"We sent another verification email to ":"We sent a verification email to ",(0,t.jsx)("strong",{children:s}),". Enter the 6-digit code below."]}),(0,t.jsxs)("label",{className:_.default.label,children:["Verification Code",(0,t.jsx)("input",{type:"text",required:!0,value:u,onChange:e=>y(e.target.value),className:_.default.input,placeholder:"123456",maxLength:6,pattern:"[0-9]{6}",autoFocus:!0,disabled:k})]}),(0,t.jsx)("button",{type:"submit",className:_.default.primaryButton,disabled:k||!T,children:k?"Verifying...":"Verify"}),(0,t.jsx)("button",{type:"button",className:_.default.secondaryButton,onClick:()=>{y(""),L(!1),o("email")},disabled:k,children:"Use a different email"})]}),("form"===l||"submitting"===l)&&(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),ea()},className:_.default.form,children:[(0,t.jsxs)("p",{className:_.default.description,children:["Verified as ",(0,t.jsx)("strong",{children:s}),". Fill out your project details below."]}),(0,t.jsxs)("label",{className:_.default.label,children:["Name / Username",(0,t.jsx)("input",{type:"text",required:!0,value:A,onChange:e=>R(e.target.value),className:_.default.input,placeholder:"your-handle"})]}),(0,t.jsxs)("label",{className:_.default.label,children:["Stripe Account ID",(0,t.jsx)("input",{type:"text",required:!0,value:Y,onChange:e=>J(e.target.value),className:_.default.input,placeholder:"acct_1234567890abcdef",pattern:"^acct_[a-zA-Z0-9]{16}$",title:"Must start with acct_ followed by 16 alphanumeric characters (21 characters total)",maxLength:21})]}),(0,t.jsxs)("label",{className:_.default.label,children:["Deployed Project URL",(0,t.jsx)("input",{type:"url",required:!0,value:B,onChange:e=>M(e.target.value),className:_.default.input,placeholder:"https://my-project.vercel.app"})]}),(0,t.jsxs)("label",{className:_.default.label,children:["Public Repo URL",(0,t.jsx)("input",{type:"url",required:!0,value:V,onChange:e=>$(e.target.value),className:_.default.input,placeholder:"https://github.com/user/repo"})]}),(0,t.jsxs)("label",{className:_.default.label,children:["Stack URL",(0,t.jsx)("input",{type:"url",required:!0,value:q,onChange:e=>U(e.target.value),className:_.default.input,placeholder:"https://projects.dev/stack/..."}),(0,t.jsxs)("span",{className:_.default.hint,children:["Get this by running ",(0,t.jsx)("code",{children:"stripe projects share"})]})]}),(0,t.jsxs)("label",{className:_.default.label,children:["Hackathon code (optional)",(0,t.jsx)("input",{type:"text",value:H,onChange:e=>G(e.target.value),className:_.default.input,placeholder:"my-hack-2026"}),(0,t.jsx)("span",{className:_.default.hint,children:"If participating in a hackathon, enter the code here"})]}),(0,t.jsx)("button",{type:"submit",className:_.default.primaryButton,disabled:"submitting"===l,children:"submitting"===l?"Validating & Submitting...":"Submit Project"})]}),"success"===l&&(0,t.jsxs)("div",{className:_.default.successMessage,children:[(0,t.jsx)("div",{className:_.default.successIcon,children:"✓"}),(0,t.jsx)("h3",{children:"Project Submitted!"}),(0,t.jsxs)("p",{children:[(0,t.jsx)("strong",{children:W?.projectName})," has been added to the leaderboard. Share it and get votes!"]}),(0,t.jsx)("button",{className:_.default.primaryButton,onClick:e,children:"Close"})]})]})})}var y=e.i(3303);let w=(0,a.forwardRef)(function({onError:e,onToken:r},n){let i=(0,a.useRef)(null),l=(0,a.useRef)(null),o=(0,a.useRef)(e),s=(0,a.useRef)(r);o.current=e,s.current=r;let d=(0,a.useCallback)(()=>{!l.current&&i.current&&window.turnstile&&(l.current=window.turnstile.render(i.current,{action:"vote",appearance:"interaction-only",callback:e=>s.current(e),"error-callback":()=>
3o.current(),execution:"execute","expired-callback":()=>o.current(),sitekey:"0x4AAAAAAFJpV7Qh1vaz49KJ"}))},[]);return(0,a.useImperativeHandle)(n,()=>({execute:()=>(d(),!!l.current&&!!window.turnstile&&(window.turnstile.execute(l.current),!0)),reset(){l.current&&window.turnstile&&window.turnstile.reset(l.current)}}),[d]),(0,a.useEffect)(()=>(d(),()=>{l.current&&window.turnstile&&window.turnstile.remove(l.current)}),[d]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.default,{src:"https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",strategy:"afterInteractive",onLoad:d}),(0,t.jsx)("div",{ref:i})]})});var x=e.i(19415);e.s(["LeaderboardClient",0,function({initialProjects:n,hackathons:i}){let{isLoaded:o,isSignedIn:s}=(0,r.useAuth)(),[d,c]=(0,a.useState)(n),[f,m]=(0,a.useState)(new Set),[h,p]=(0,a.useState)(!1),[_,b]=(0,a.useState)(!1),[g,v]=(0,a.useState)(null),[y,S]=(0,a.useState)(null),[P,k]=(0,a.useState)(),C=(0,a.useRef)(null),N=(0,a.useRef)(!0),L=(0,a.useRef)(null),I=(0,a.useRef)(!1),E=(0,a.useRef)(null);(0,a.useEffect)(()=>{let e=localStorage.getItem("voted_project_ids");if(e)try{m(new Set(JSON.parse(e)))}catch{}},[]);let T=(0,a.useCallback)(async t=>{if(l.IS_LOCAL_DEV){let a=parseInt(new URLSearchParams(window.location.search).get("mock")||"",10);if(a>0){if(!C.current){let{generateMockProjects:t}=await e.A(22471);C.current=t(a)}c(t?C.current.filter(e=>e.hackathon_code===t):C.current);return}}try{let e=new URLSearchParams;t&&e.set("hackathon",t);let a=e.toString(),r=await fetch(`/api/leaderboard${a?`?${a}`:""}`),n=await r.json();c(n.projects??[])}catch(e){console.error("Failed to fetch leaderboard:",e)}},[]);(0,a.useEffect)(()=>{if(N.current){N.current=!1,l.IS_LOCAL_DEV&&new URLSearchParams(window.location.search).get("mock")&&T(y);return}T(y)},[T,y]),(0,a.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get("hackathon-code");e&&i.some(t=>t.code===e)&&(k(e),n.some(t=>t.hackathon_code===e)&&S(e))},[n,i]);let O=(0,a.useRef)(!1);(0,a.useEffect)(()=>{if(O.current)return;let e=new URLSearchParams(window.location.search).get("upvote-project");
3if(!e)return;O.current=!0;let t=new URL(window.location.href);t.searchParams.delete("upvote-project"),window.history.replaceState({},"",t.toString());let a=d.find(t=>t.project_name.toLowerCase()===e.toLowerCase());if(!a)return;let r=`project-${a.project_id.slice(0,12)}`;setTimeout(()=>{document.getElementById(r)?.scrollIntoView({behavior:"smooth",block:"center"})},100)},[d,f]);let A=async(e,t)=>{v(null);try{let a=await fetch("/api/vote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:e,turnstileToken:t})});if(a.ok){let t=new Set(f).add(e);m(t),c(t=>t.map(t=>t.id===e?{...t,upvotes:t.upvotes+1}:t).sort((e,t)=>t.upvotes-e.upvotes)),localStorage.setItem("voted_project_ids",JSON.stringify([...t]))}else{let t=await a.json();v({projectId:e,message:409===a.status?"Only one vote per project.":t.error||"Vote failed. Please try again."})}}catch{v({projectId:e,message:"Vote failed. Please check your connection and try again."})}finally{I.current=!1,E.current?.reset()}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("header",{className:x.default.header,children:[(0,t.jsxs)("h1",{className:x.default.title,children:[(0,t.jsx)("span",{className:x.default.titleLine1,children:"STRIPE PROJECTS"}),(0,t.jsx)("span",{className:x.default.titleLine2,children:"LEADERBOARD"})]}),(0,t.jsx)("button",{className:x.default.submitButton,onClick:()=>{b(!!(o&&s)),p(!0)},children:"Submit Your Project"})]}),(0,t.jsxs)("div",{className:x.default.container,children:[(0,t.jsx)("p",{className:x.default.tagline,children:"Discover, upvote, and share the projects developers have built with Stripe Projects."}),(0,t.jsx)(w,{ref:E,onError:()=>{let e=L.current;L.current=null,E.current?.reset(),e&&v({projectId:e,message:"Could not verify this vote. Please try again."})},onToken:e=>{let t=L.current;L.current=null,t&&(I.current=!0,A(t,e))}}),0!==d.length||y?(0,t.jsx)(u,{projects:d,votedIds:f,voteError:g,onVote:e=>{L.current||I.current||(L.current=e,v(null),E.current?.execute()||(L.current=null,v({projectId:e,message:"Vote verification is still loading. Please try again."})))},hackathons:i,hackathonFilter:y,onHackathonFilterChange:S}):(0,t.jsx)("div",{className:x.default.empty,children:"No projects yet. Be the first to submit!"})]}),h&&(0,t.jsx)(j,{onClose:()=>{p(!1),b(!1)},onSubmitted:()=>T(y),startAtForm:_,defaultHackathonCode:P})]})}],68559)},87068,e=>{e.v({link:"ShareButtons-module__iQZDeW__link",wrapper:"ShareButtons-module__iQZDeW__wrapper"})},43502,e=>{e.v({bronzeCoin:"LeaderboardTable-module__YfO5da__bronzeCoin",coinBadge:"LeaderboardTable-module__YfO5da__coinBadge",description:"LeaderboardTable-module__YfO5da__description",emptyFilter:"LeaderboardTable-module__YfO5da__emptyFilter",filterBar:"LeaderboardTable-module__YfO5da__filterBar",filterLabel:"LeaderboardTable-module__YfO5da__filterLabel",filterSelect:"LeaderboardTable-module__YfO5da__filterSelect",goldCoin:"LeaderboardTable-module__YfO5da__goldCoin",link:"LeaderboardTable-module__YfO5da__link",name:"LeaderboardTable-module__YfO5da__name",projectLink:"LeaderboardTable-module__YfO5da__projectLink",rank:"LeaderboardTable-module__YfO5da__rank",row:"LeaderboardTable-module__YfO5da__row",rowTop10:"LeaderboardTable-module__YfO5da__rowTop10",rowTop10Divider:"LeaderboardTable-module__YfO5da__rowTop10Divider",share:"LeaderboardTable-module__YfO5da__share",silverCoin:"LeaderboardTable-module__YfO5da__silverCoin",table:"LeaderboardTable-module__YfO5da__table",tableWrapper:"LeaderboardTable-module__YfO5da__tableWrapper",thLink:"LeaderboardTable-module__YfO5da__thLink",thName:"LeaderboardTable-module__YfO5da__thName",thRank:"LeaderboardTable-module__YfO5da__thRank",thShare:"LeaderboardTable-module__YfO5da__thShare",thUser:"LeaderboardTable-module__YfO5da__thUser",thVotes:"LeaderboardTable-module__YfO5da__thVotes",user:"LeaderboardTable-module__YfO5da__user",userMobile:"LeaderboardTable-module__YfO5da__userMobile",votes:"LeaderboardTable-module__YfO5da__votes"})},35717,e=>{e.v({closeButton:"SubmitProjectModal-module__IoPaGa__closeButton",description:"SubmitProjectModal-module__IoPaGa__description",error:"SubmitProjectMod
3al-module__IoPaGa__error",form:"SubmitProjectModal-module__IoPaGa__form",heading:"SubmitProjectModal-module__IoPaGa__heading",hint:"SubmitProjectModal-module__IoPaGa__hint",input:"SubmitProjectModal-module__IoPaGa__input",label:"SubmitProjectModal-module__IoPaGa__label",modal:"SubmitProjectModal-module__IoPaGa__modal",overlay:"SubmitProjectModal-module__IoPaGa__overlay",primaryButton:"SubmitProjectModal-module__IoPaGa__primaryButton",secondaryButton:"SubmitProjectModal-module__IoPaGa__secondaryButton",successIcon:"SubmitProjectModal-module__IoPaGa__successIcon",successMessage:"SubmitProjectModal-module__IoPaGa__successMessage"})},10360,e=>{e.v({arrow:"VoteButton-module__lnIh1G__arrow",button:"VoteButton-module__lnIh1G__button",container:"VoteButton-module__lnIh1G__container",count:"VoteButton-module__lnIh1G__count",voted:"VoteButton-module__lnIh1G__voted",warning:"VoteButton-module__lnIh1G__warning"})}]);

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.