1(function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._posthogChunkIds=e._posthogChunkIds||{},e._posthogChunkIds[t]=`453a9e42-82d9-4f7d-86e7-37f6cd9fa0b1`)}catch{}})();import{r as e}from"./rolldown-runtime-Dp6oDxSW.js";import{n as t,t as n}from"./jsx-runtime-BN_2YB3D.js";import{t as r}from"./useRouter-B8jh9_Ku.js";import{r as i}from"./utils-Czoftbae.js";import{a,c as o,o as s,r as c,s as l,t as u}from"./schemas-BccRhYrg.js";import{i as d,n as f,t as p}from"./ui-errors-CuNcm-kI.js";import{t as m}from"./posthog-fLUD6yMO.js";import{c as h,h as g,l as _,t as v}from"./api-DyYVlJgZ.js";import{n as y,t as ee}from"./ConvexAuthState-BzCFmu20.js";import{t as b}from"./button-rXysb33J.js";import{r as x,t as S}from"./alert-B3UGYAza.js";import{r as te,t as C}from"./card-DEyN_RMp.js";import{r as w,s as T,t as E}from"./dialog-Cuz6jjfR.js";function D(e=0){if(!globalThis.window)return;let t=window.history.state;Number.isFinite(t?.__TSR_index)||window.history.replaceState({...t,__TSR_index:Number.isFinite(e)?e:0},``)}var O=e(t(),1),k=n(),A=`promo`,j=`bounty_pending_promo`,M=86400,ne=/^[a-z0-9_]{1,64}$/;function N(e){if(e===null)return null;let t=e.trim().toLowerCase();return ne.test(t)?t:null}function re(e){let t=`${j}=`,n=e.split(`;`).map(e=>e.trim()).find(e=>e.startsWith(t));if(!n)return null;try{return N(decodeURIComponent(n.slice(t.length)))}catch{return null}}function ie(e,t){return`${j}=${encodeURIComponent(e)}; Path=/; Max-Age=${M}; SameSite=Lax${t?`; Secure`:``}`}function ae(e){return`${j}=; Path=/; Max-Age=0; SameSite=Lax${e?`; Secure`:``}`}function oe(){if(!globalThis.window)return;let e=new URL(window.location.href),t=e.searchParams.get(A);if(t===null)return;let n=N(t),r=e.protocol===`https:`;document.cookie=n?ie(n,r):ae(r),e.searchParams.delete(A),window.history.replaceState(window.history.state,``,`${e.pathname}${e.search}${e.hash}`)}var P=i(),se=`bounty-client-version-reload`,ce=`bounty-client-preload-error-reload`,le=`bounty-client-preload-recovery`,ue=36e5,de=3e5,fe=l({buildId:o().min(1)}),pe=l({attemptId:o().min(1),startedAt:s().finite(),pathname:o().min(1),buildId:o().min(1),targetBuildId:o().min(1),strategy:u([`current_build_reload`,`latest_build_reload`])}),F=!1;function me(){return F}function he(){F=!0}var ge=`bounty-dom-conflict-reload`,_e=3e5;function ve(e){if(!globalThis.window||F||e.name!==`NotFoundError`||!/\b(removeChild|insertBefore)\b/.test(e.message))return!1;try{let e=Number(sessionStorage.getItem(ge));if(Date.now()-e<_e)return!1;sessionStorage.setItem(ge,String(Date.now()))}catch{return!1}return F=!0,queueMicrotask(()=>window.location.reload()),!0}function ye(e){if(!globalThis.window)return;let t=!1,n,r,i,a=!1,o;try{let e=sessionStorage.getItem(le),t=e===null?void 0:pe.safeParse(JSON.parse(e));t?.success&&Date.now()-t.data.startedAt<=de?o=t.data:e!==null&&sessionStorage.removeItem(le)}catch{try{sessionStorage.removeItem(le)}catch{}}try{sessionStorage.getItem(se)===`d087e50456e9525d83113791d549fe32ba2f1cd7`&&sessionStorage.removeItem(se)}catch{}let s=()=>r||(r=fetch(`/version.json`,{cache:`no-store`,headers:{Accept:`application/json`}}).then(async e=>{if(!e.ok)return!1;let r=fe.safeParse(await e.json());return r.success?r.data.buildId!==`d087e50456e9525d83113791d549fe32ba2f1cd7`&&(t=!0,n=r.data.buildId,!0):!1}).catch(()=>!1).finally(()=>{r=void 0}),r),c=e=>{if(i===e)return!0;try{return sessionStorage.getItem(se)===e}catch{return!1}},l=(e,t)=>{if(!c(e)){i=e;try{sessionStorage.setItem(se,e)}catch{}F=!0,window.location.assign(t)}};e.subscribe(`onBeforeNavigate`,e=>{!t||!n||!e.pathChanged||l(n,e.toLocation.href)});let u=()=>{document.visibilityState===`visible`&&s()},f=e=>{if(e.persisted){if(F){window.location.reload();return}t=!1,n=void 0,i=void 0,s()}},p=()=>{let e=o;if(o=void 0,e)try{sessionStorage.removeItem(le)}catch{}return e},h=(e,t,r,i=window.location.pathname)=>{m(d,`client_preload_recovery_result`,{source:`vite_preload_error`,surface:`browser`,pathname:e.pathname,build_id:e.buildId,latest_build_id:n,target_build_id:e.targetBuildId,strategy:e.strategy,attempt_id:e.attemptId,outcome:t,reason:r,result_build_id:`d087e50456e9525d83113791d549fe32ba2f1cd7`,result_pathname:i,elapsed_ms:Math.max(0,Date.now()-e.startedAt)})},g=(e,t)=>{if(e===`current_build_reload`)try{if(sessionStorage.getItem(ce)===`d087e50456e9525d83113791d549fe32ba2f1cd7`)return!1}catch{return!1}let r={attemptId:globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`,startedAt:Date.now(),pathname:window.location.pathname,buildId:`d087e50456e9525d83113791d549fe32ba2f1cd7`,targetBuildId:t,strategy:e};try{sessionStorage.setItem(le,JSON.stringify(r))}catch{return!1}if(e===`current_build_reload`)try{sessionStorage.setItem(ce,`d087e50456e9525d83113791d549fe32ba2f1cd7`)}
1catch{try{sessionStorage.removeItem(le)}catch{}return!1}return m(d,`client_preload_recovery_started`,{source:`vite_preload_error`,surface:`browser`,pathname:window.location.pathname,build_id:`d087e50456e9525d83113791d549fe32ba2f1cd7`,latest_build_id:n,strategy:e,attempt_id:r.attemptId,target_build_id:t}),!0},_=()=>{if(!F){if(o){if(Date.now()-o.startedAt>de)p();else{let e=p();e&&(a=!0,h(e,`failed`,`preload_error`));return}}if(!a){if(t&&n){if(c(n))return;g(`latest_build_reload`,n)&&l(n,window.location.href);return}g(`current_build_reload`,`d087e50456e9525d83113791d549fe32ba2f1cd7`)&&(F=!0,window.location.reload())}}},v=(e=window.location.pathname)=>{if(!o)return;if(Date.now()-o.startedAt>de){p();return}let t=p();t&&(a=!0,h(t,`failed`,`route_error`,e))};return e.subscribe(`onRendered`,t=>{if(F||!o)return;if(Date.now()-o.startedAt>de){p();return}let n=e.state;if(`globalNotFound`in n&&n.globalNotFound===!0||n.matches.some(e=>`globalNotFound`in e&&e.globalNotFound===!0||e.status!==`success`)){v(t.toLocation.pathname);return}let r=p();r&&h(r,`recovered`,`route_rendered`,t.toLocation.pathname)}),document.addEventListener(`visibilitychange`,u),window.addEventListener(`pageshow`,f),window.addEventListener(`vite:preloadError`,_),window.setInterval(()=>void s(),ue),s(),()=>F?!0:(v(),!1)}var be=e=>{throw TypeError(e)},xe=(e,t,n)=>t.has(e)||be(`Cannot `+n),I=(e,t,n)=>(xe(e,t,`read from private field`),n?n.call(e):t.get(e)),L=(e,t,n)=>t.has(e)?be(`Cannot add the same private member more than once`):t instanceof WeakSet?t.add(e):t.set(e,n),R=(e,t,n,r)=>(xe(e,t,`write to private field`),r?r.call(e,n):t.set(e,n),n),z=(e,t,n)=>(xe(e,t,`access private method`),n),Se=class extends Error{constructor(){super(...arguments),this.status=500,this.name=`NoClientIdProvidedException`,this.message=`Missing Client ID. Pass it to the constructor (createClient("client_01HXRMBQ9BJ3E7QSTQ9X2PHVB7"))`}};function Ce(e,t){if(!t.has(`code`))return!1;let{pathname:n}=window.location,r=new URL(e).pathname;return n===r||n===`${r}/`}function we(){let e={};function t(t,n){e[t]=n}function n(t){return e[t]}function r(t){delete e[t]}function i(){e={}}return{setItem:t,getItem:n,removeItem:r,reset:i}}var B=we();async function Te(){let e=Ee();return{codeVerifier:e,codeChallenge:await De(e)}}function Ee(){return Oe(crypto.getRandomValues(new Uint32Array(96)))}async function De(e){return Oe(await ke(e))}function Oe(e){return btoa(Array.from(new Uint8Array(e),e=>String.fromCharCode(e)).join(``)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function ke(e){let t=new TextEncoder().encode(e);return crypto.subtle.digest(`SHA-256`,t)}function Ae(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=`=`.repeat((4-t.length%4)%4);return atob(t+n)}function je(e){let t=e.split(`.`);if(t.length!==3)throw Error(`Invalid JWT format`);try{return{header:JSON.parse(Ae(t[0])),payload:JSON.parse(Ae(t[1]))}}catch(e){throw Error(`Failed to decode JWT: ${e instanceof Error?e.message:String(e)}`)}}var V={codeVerifier:`workos:code-verifier`,user:`workos:user`,accessToken:`workos:access-token`,refreshToken:`workos:refresh-token`,expiresAt:`workos:expires-at`,authenticationMethod:`workos:authentication-method`};function Me(e){return je(e).payload}function Ne(e){return`${V.refreshToken}:${e}`}function Pe(e,{devMode:t=!1,clientId:n}){let{user:r,accessToken:i,refreshToken:a,authenticationMethod:o}=e;B.setItem(V.user,r),B.setItem(V.accessToken,i),B.setItem(V.authenticationMethod,o),(t?window.localStorage:B).setItem(Ne(n),a);let{exp:s,iat:c}=Me(i),l=s-c,u=Date.now()+l*1e3;B.setItem(V.expiresAt,u)}function Fe({devMode:e=!1,clientId:t}){B.removeItem(V.user),B.removeItem(V.accessToken),B.removeItem(V.authenticationMethod);let n=e?window.localStorage:B;n.removeItem(Ne(t)),n.removeItem(V.refreshToken)}function Ie({devMode:e=!1,clientId:t}){let n=e?window.localStorage:B,r=n.getItem(Ne(t))??n.getItem(V.refreshToken);return typeof r==`string`?r:void 0}function Le(e){let t=new URLSearchParams,n=Object.keys(e).sort();for(let r of n){let n=e[r];n&&t.append(r,n)}return t.toString()}var Re=class extends Error{},H=class extends Re{constructor(e,t={}){super(e,t.cause==null?void 0:{cause:t.cause}),this.name=`RefreshError`,this.status=t.status,this.error=t.error,this.isTransient=t.isTransient??!1}},ze=class extends Re{},Be=class extends Re{constructor(){super(...arguments),this.message=`No access token available`}},Ve=class extends H{constructor(e=`Timed out waiting to refresh the session.`,t){super(e,{cause:t?.cause,isTransient:!0}),this.name=`RefreshTimeoutError`}},He=class extends Re{constructor(){super(...arguments),this.message=`SignOut() called without an active session. Provide a returnTo URL to redirect anyway.`}},Ue=class e{constructor(){this.locked=new Map,this.addToLocked=(e,t)=>{let n=this.locked.get(e);n===void 0?t===void 0?this.locked.set(e,[]):this.locked.set(e,[t]):t!==void 0&&(n.unshift(t),this.locked.set(e,n))},this.isLocked=e=>this.locked.has(e),this.lock=e=>new Promise((t,n)=>{this.isLocked(e)?this.addToLocked(e,t):(this.addToLocked(e),t())}),this.unlock=e=>{let t=this.locked.get(e);if(t===void 0||t.length===0){this.locked.delete(e);return}let n=t.pop();this.locked.set(e,t),n!==void 0&&setTimeout(n,0)}}static getInstance(){return e.instance===void 0&&(e.instance=new e),e.instance}};function U(){return Ue.getInstance()}var We=`browser-tabs-lock-key`,Ge={key:async e=>{throw Error(`Unsupported`)},getItem:async e=>{throw Error(`Unsupported`)},clear:async()=>window.localStorage.clear(),removeItem:async e=>{throw Error(`Unsupported`)},setItem:async(e,t)=>{throw Error(`Unsupported`)},keySync:e=>window.localStorage.key(e),getItemSync:e=>window.localStorage.getItem(e),clearSync:()=>window.localStorage.clear(),removeItemSync:e=>window.localStorage.removeItem(e),setItemSync:(e,t)=>window.localStorage.setItem(e,t)};function Ke(e){return new Promise(t=>setTimeout(t,e))}function qe(e){let t=``;for(let n=0;n<e;n++){let e=Math.floor(Math.random()*61);t+=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz`[e]}return t}function Je(){return Date.now().toString()+qe(15)}var Ye=class e{constructor(t){this.acquiredIatSet=new Set,this.storageHandler=void 0,this.id=Je(),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),this.storageHandler=t,e.waiters===void 0&&(e.waiters=[])}async acquireLock(t,n=5e3){let r=Date.now()+qe(4),i=Date.now()+n,a=`${We}-${t}`,o=this.storageHandler===void 0?Ge:this.storageHandler;for(;Date.now()<i;){if(await Ke(30),o.getItemSync(a)===null){let e=`${this.id}-${t}-${r}`;await Ke(Math.floor(Math.random()*25)),o.setItemSync(a,JSON.stringify({id:this.id,iat:r,timeoutKey:e,timeAcquired:Date.now(),timeRefreshed:Date.now()})),await Ke(30);let n=o.getItemSync(a);if(n!==null){let e=JSON.parse(n);if(e.id===this.id&&e.iat===r)return this.acquiredIatSet.add(r),this.refreshLockWhileAcquired(a,r),!0}}else e.lockCorrector(this.storageHandler===void 0?Ge:this.storageHandler),await this.waitForSomethingToChange(i);r=Date.now()+qe(4)}return!1}async refreshLockWhileAcquired(e,t){setTimeout(async()=>
1{if(await U().lock(t),!this.acquiredIatSet.has(t)){U().unlock(t);return}let n=this.storageHandler===void 0?Ge:this.storageHandler,r=n.getItemSync(e);if(r!==null){let i=JSON.parse(r);i.timeRefreshed=Date.now(),n.setItemSync(e,JSON.stringify(i)),U().unlock(t)}else{U().unlock(t);return}this.refreshLockWhileAcquired(e,t)},1e3)}async waitForSomethingToChange(t){await new Promise(n=>{let r=!1,i=Date.now(),a=!1;function o(){if(a||=(window.removeEventListener(`storage`,o),e.removeFromWaiting(o),clearTimeout(s),!0),!r){r=!0;let e=50-(Date.now()-i);e>0?setTimeout(n,e):n(null)}}window.addEventListener(`storage`,o),e.addToWaiting(o);let s=setTimeout(o,Math.max(0,t-Date.now()))})}static addToWaiting(t){this.removeFromWaiting(t),e.waiters!==void 0&&e.waiters.push(t)}static removeFromWaiting(t){e.waiters!==void 0&&(e.waiters=e.waiters.filter(e=>e!==t))}static notifyWaiters(){e.waiters!==void 0&&[...e.waiters].forEach(e=>e())}async releaseLock(e){return await this.releaseLock__private__(e)}async releaseLock__private__(t){let n=this.storageHandler===void 0?Ge:this.storageHandler,r=`${We}-${t}`,i=n.getItemSync(r);if(i===null)return;let a=JSON.parse(i);a.id===this.id&&(await U().lock(a.iat),this.acquiredIatSet.delete(a.iat),n.removeItemSync(r),U().unlock(a.iat),e.notifyWaiters())}static lockCorrector(t){let n=Date.now()-5e3,r=t,i=[],a=0;for(;;){let e=r.keySync(a);if(e===null)break;i.push(e),a++}let o=!1;for(let e=0;e<i.length;e++){let t=i[e];if(t.includes(We)){let e=r.getItemSync(t);if(e!==null){let i=JSON.parse(e);(i.timeRefreshed===void 0&&i.timeAcquired<n||i.timeRefreshed!==void 0&&i.timeRefreshed<n)&&(r.removeItemSync(t),o=!0)}}}o&&e.notifyWaiters()}};Ye.waiters=void 0;var Xe=Ye,Ze=1e4;function Qe(e,t,{timeout:n=Ze}={}){if(!e)throw TypeError(`lockName is required and must be a non-empty string.`);return`locks`in navigator?$e(e,t,n):et(e,t,n)}async function $e(e,t,n){try{return await navigator.locks.request(e,{signal:AbortSignal.timeout(n)},t)}catch(t){if(t instanceof DOMException)switch(t.name){case`TimeoutError`:case`AbortError`:throw new tt(`AcquisitionTimeoutError`,e,`Native`)}throw t}}async function et(e,t,n){let r=new Xe;try{if(await r.acquireLock(e,n))return await t();throw new tt(`AcquisitionTimeoutError`,e,`Vendor`)}finally{await r.releaseLock(e)}}var tt=class extends Error{constructor(e,t,n){super(`Lock acquisition timed out for "${t}" (${n})`),this.name=e,this.lockName=t}},nt=e=>({object:e.object,id:e.id,email:e.email,emailVerified:e.email_verified,firstName:e.first_name,profilePictureUrl:e.profile_picture_url,lastName:e.last_name,lastSignInAt:e.last_sign_in_at,externalId:e.external_id,createdAt:e.created_at,updatedAt:e.updated_at}),rt=e=>{let{user:t,organization_id:n,access_token:r,refresh_token:i,authentication_method:a,impersonator:o,...s}=e;return{user:nt(t),organizationId:n,accessToken:r,refreshToken:i,authenticationMethod:a,impersonator:o,...s}},it=`api.workos.com`,at=new Set([408,429,500,502,503,504]),ot,st,ct,lt,ut,dt=class{constructor({clientId:e,hostname:t=it,port:n,https:r=!0}){L(this,ct),L(this,ot),L(this,st),R(this,ot,`${r?`https`:`http`}://${t}${n?`:${n}`:``}`),R(this,st,e)}async authenticateWithRefreshToken({refreshToken:e,organizationId:t,useCookie:n}){let r=await z(this,ct,ut).call(this,`/user_management/authenticate`,{useCookie:n,body:{client_id:I(this,st),grant_type:`refresh_token`,...!n&&{refresh_token:e},organization_id:t}});if(r.ok)return rt(await r.json());let{status:i}=r,a=await z(this,ct,lt).call(this,r);throw new H(a.error_description,{status:i,error:a.error,isTransient:at.has(i)})}async authenticateWithCode({code:e,codeVerifier:t,useCookie:n}){let r=await z(this,ct,ut).call(this,`/user_management/authenticate`,{useCookie:n,body:{code:e,client_id:I(this,st),grant_type:`authorization_code`,code_verifier:t}});if(r.ok)return rt(await r.json());throw new ze((await r.json()).error_description)}getAuthorizationUrl({connectionId:e,context:t,domainHint:n,loginHint:r,organizationId:i,provider:a=`authkit`,redirectUri:o,state:s,screenHint:c,passwordResetToken:l,invitationToken:u,codeChallenge:d,codeChallengeMethod:f}){if(!a&&!e&&!i)throw TypeError(`Incomplete arguments. Need to specify either a 'connectionId', 'organizationId', or 'provider'.`);if(a!==`authkit`&&c)throw TypeError(`'screenHint' is only supported for 'authkit' provider`);t&&console.warn("`context` is deprecated. We previously required initiate login endpoints to return the\n`context` query parameter when getting the authorization URL. This is no longer necessary.");let p=Le({connection_id:e,organization_id:i,domain_hint:n,login_hint:r,provider:a,client_id:I(this,st),redirect_uri:o,response_type:`code`,state:s,screen_hint:c,invitation_token:u,password_reset_token:l,code_challenge:d,code_challenge_method:f});return`${I(this,ot)}/user_management/authorize?${p}`}getLogoutUrl({sessionId:e,returnTo:t}){let n=new URL(`/user_management/sessions/logout`,I(this,ot));return n.searchParams.set(`session_id`,e),t&&n.searchParams.set(`return_to`,t),n}};ot=new WeakMap,st=new WeakMap,ct=new WeakSet,lt=async function(e){try{return await e.json()}catch{return{}}},ut=function(e,{body:t,useCookie:n}){return fetch(new URL(e,I(this,ot)),{method:`POST`,...n&&{credentials:`include`},headers:{Accept:`application/json, text/plain, */*`,"Content-Type":`application/json`},body:JSON.stringify(t)})};var ft=`workos_organization_id`;function pt(e){return`workos-org-id:${e}`}var mt=`WORKOS_REFRESH_SESSION`;function ht(e){let t=document.cookie.match(/(?:^|;\s*)workos-has-session=([^;]*)/);if(!t)return!1;let n=t[1];return n===`1`||n.split(`.`).includes(e)}var W,gt,G,K,_t,q,vt,yt,bt,xt,St,J,Ct,wt,Y,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt=class{constructor(e,{apiH
1ostname:t,https:n,port:r,redirectUri:i=window.origin,devMode:a=location.hostname===`localhost`||location.hostname===`127.0.0.1`,onBeforeAutoRefresh:o=()=>!document.hidden,onRedirectCallback:s=e=>{},onRefresh:c,onRefreshFailure:l,refreshBufferInterval:u=10}={}){if(L(this,J),L(this,W),L(this,gt),L(this,G),L(this,K),L(this,_t),L(this,q),L(this,vt),L(this,yt),L(this,bt),L(this,xt),L(this,St),!e)throw new Se;R(this,G,e),R(this,K,new dt({clientId:e,hostname:t,port:r,https:n})),R(this,q,a),R(this,_t,i),R(this,W,{tag:`INITIAL`}),R(this,vt,o),R(this,yt,s),R(this,bt,c),R(this,xt,l),R(this,St,u)}async initialize(){if(I(this,W).tag!==`INITIAL`)return;let e=new URLSearchParams(window.location.search);if(Ce(I(this,_t),e))await z(this,J,Ct).call(this);else if(ht(I(this,G))||Ie({devMode:I(this,q),clientId:I(this,G)}))try{await z(this,J,Tt).call(this),z(this,J,Y).call(this)}catch{z(this,J,wt).call(this)}}async getSignInUrl(e={}){return await z(this,J,Ot).call(this,{...e})}async getSignUpUrl(e={}){return await z(this,J,Ot).call(this,{...e,screenHint:`sign-up`})}async signIn(e={}){let t=await z(this,J,Ot).call(this,{...e});window.location.assign(t)}async signUp(e={}){let t=await z(this,J,Ot).call(this,{...e,screenHint:`sign-up`});window.location.assign(t)}signOut(e={navigate:!0}){let{navigate:t=!0,returnTo:n}=e,r=B.getItem(V.accessToken);if(typeof r!=`string`){if(t)throw new He;return Promise.reject(new He)}let{sid:i}=Me(r),a=I(this,K).getLogoutUrl({sessionId:i,returnTo:n});if(a){if(Fe({devMode:I(this,q),clientId:I(this,G)}),sessionStorage.removeItem(pt(I(this,G))),sessionStorage.removeItem(ft),t)window.location.assign(a);else return new Promise(async e=>{fetch(a,{mode:`no-cors`,credentials:`include`}).catch(e=>{console.warn(`AuthKit: Failed to send logout request`,e)}).finally(e)})}}async getAccessToken(e){if(e?.forceRefresh||z(this,J,Dt).call(this))try{await z(this,J,Tt).call(this)}catch(t){if(t instanceof Ve){let t=e?.forceRefresh?void 0:z(this,J,At).call(this);if(t)return t;try{await z(this,J,Tt).call(this)}catch(e){throw e instanceof Ve?e:e instanceof H?e.isTransient?e:new Be:e}}else if(t instanceof H){if(t.isTransient){let n=e?.forceRefresh?void 0:z(this,J,At).call(this);if(n)return n;throw t}throw new Be}else throw t}let t=z(this,J,kt).call(this);if(!t)throw new Be;return t}getUser(){return B.getItem(V.user)||null}dispose(){clearTimeout(I(this,gt)),B.reset()}async switchToOrganization({organizationId:e,signInOpts:t={}}){try{await z(this,J,Tt).call(this,{organizationId:e})}catch(n){if(n instanceof Ve)console.warn(`Couldn't switch organization: lock acquisition timed out.`);else if(n instanceof H){if(n.isTransient)throw n;this.signIn({...t,organizationId:e})}else throw n}}};W=new WeakMap,gt=new WeakMap,G=new WeakMap,K=new WeakMap,_t=new WeakMap,q=new WeakMap,vt=new WeakMap,yt=new WeakMap,bt=new WeakMap,xt=new WeakMap,St=new WeakMap,J=new WeakSet,Ct=async function(){if(I(this,W).tag!==`INITIAL`)return;let e=new URL(window.location.href),t=e.searchParams.get(`code`),n=e.searchParams.get(`state`),r;if(n)try{r=JSON.parse(n)}catch{console.warn("AuthKit: ignoring malformed `state` parameter")}let i=window.sessionStorage.getItem(V.codeVerifier);if(t){if(i)try{R(this,W,{tag:`AUTHENTICATING`,response:I(this,K).authenticateWithCode({code:t,codeVerifier:i,useCookie:I(this,J,jt)})});let e=await I(this,W).response;e&&(R(this,W,{tag:`AUTHENTICATED`}),z(this,J,Y).call(this),Pe(e,{devMode:I(this,q),clientId:I(this,G)}),z(this,J,Mt).call(this,e),I(this,yt).call(this,{state:r,...e}))}catch(e){R(this,W,{tag:`ERROR`}),console.error(e)}else R(this,W,{tag:`ERROR`}),console.error(`Couldn't exchange code. 2 3An authorization_code was supplied for a login which did not originate at the application. This could happen for various reasons: 4 5* This could have been an attempted Login CSRF attack. You were not affected. 6* The developer may not have configured a Login Initiation endpoint.`)}let a=new URL(window.location.toString());a.searchParams.delete(`code`),a.searchParams.delete(`state`),window.sessionStorage.removeItem(V.codeVerifier),window.history.replaceState({},``,a)},wt=function(){I(this,W).tag===`AUTHENTICATED`&&z(this,J,Y).call(this)},Y=async function(){R(this,gt,setTimeout(()=>{z(this,J,Dt).call(this)&&I(this,vt).call(this)?z(this,J,Tt).call(this).catch(e=>{console.debug(e)}).finally(()=>z(this,J,Y).call(this)):z(this,J,Y).call(this)},1e3))},Tt=async function({organizationId:e}={}){if(I(this,W).tag===`AUTHENTICATING`){await I(this,W).response;return}let t=I(this,W);R(this,W,{tag:`AUTHENTICATING`,response:z(this,J,Et).call(this,{organizationId:e,beginningState:t})}),await I(this,W).response},Et=async function({organizationId:e,beginningState:t}){try{return await Qe(mt,async()=>
6{if(e)sessionStorage.setItem(pt(I(this,G)),e);else{let t=z(this,J,kt).call(this);e=t?Me(t)?.org_id:sessionStorage.getItem(pt(I(this,G)))??sessionStorage.getItem(ft)??void 0}let t=await I(this,K).authenticateWithRefreshToken({refreshToken:Ie({devMode:I(this,q),clientId:I(this,G)}),organizationId:e,useCookie:I(this,J,jt)});return R(this,W,{tag:`AUTHENTICATED`}),Pe(t,{devMode:I(this,q),clientId:I(this,G)}),z(this,J,Mt).call(this,t),t})}catch(e){throw e instanceof tt&&e.name===`AcquisitionTimeoutError`?(console.warn(`Couldn't acquire refresh lock.`),R(this,W,t),new Ve(void 0,{cause:e})):(t.tag!==`INITIAL`&&console.debug(e),e instanceof H&&!e.isTransient?(Fe({devMode:I(this,q),clientId:I(this,G)}),sessionStorage.removeItem(pt(I(this,G))),sessionStorage.removeItem(ft),t.tag!==`INITIAL`&&I(this,xt)&&I(this,xt).call(this,{signIn:this.signIn.bind(this)}),R(this,W,{tag:`ERROR`})):R(this,W,{tag:`AUTHENTICATED`}),e)}},Dt=function(){switch(I(this,W).tag){case`INITIAL`:case`AUTHENTICATING`:return!0;case`ERROR`:return!1;case`AUTHENTICATED`:let e=B.getItem(V.accessToken),t=B.getItem(V.expiresAt);return!e||!t||t-I(this,St)*1e3<Date.now()}},Ot=async function({context:e,invitationToken:t,loginHint:n,organizationId:r,passwordResetToken:i,state:a,screenHint:o}){let{codeVerifier:s,codeChallenge:c}=await Te();return window.sessionStorage.setItem(V.codeVerifier,s),I(this,K).getAuthorizationUrl({codeChallenge:c,codeChallengeMethod:`S256`,context:e,invitationToken:t,loginHint:n,organizationId:r,passwordResetToken:i,redirectUri:I(this,_t),screenHint:o,state:a?JSON.stringify(a):void 0})},kt=function(){return B.getItem(V.accessToken)},At=function(){let e=z(this,J,kt).call(this),t=B.getItem(V.expiresAt);return e&&t&&t>Date.now()?e:void 0},jt=function(){return!I(this,q)},Mt=async function(e){if(I(this,bt)){let{refreshToken:t,...n}=e;I(this,bt).call(this,n)}};async function Pt(e,t={}){let n=new Nt(e,t);return await n.initialize(),n}var Ft=Object.defineProperty,It=Object.defineProperties,Lt=Object.getOwnPropertyDescriptors,Rt=Object.getOwnPropertySymbols,zt=Object.prototype.hasOwnProperty,Bt=Object.prototype.propertyIsEnumerable,Vt=(e,t,n)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ht=(e,t)=>{for(var n in t||={})zt.call(t,n)&&Vt(e,n,t[n]);if(Rt)for(var n of Rt(t))Bt.call(t,n)&&Vt(e,n,t[n]);return e},Ut=(e,t)=>It(e,Lt(t)),Wt=(e,t,n)=>new Promise((r,i)=>{var a=e=>{try{s(n.next(e))}catch(e){i(e)}},o=e=>{try{s(n.throw(e))}catch(e){i(e)}},s=e=>e.done?r(e.value):Promise.resolve(e.value).then(a,o);s((n=n.apply(e,t)).next())}),Gt={isLoading:!0,user:null,role:null,roles:null,organizationId:null,permissions:[],featureFlags:[],impersonator:null,authenticationMethod:null},Kt=O.createContext(Gt);function qt(){let e=O.useContext(Kt);if(e===Gt)throw Error(`useAuth must be used within an AuthKitProvider`);return e}function Jt(e){let{clientId:t,devMode:n,apiHostname:r,https:i,port:a,redirectUri:o,children:s,onRefresh:c,onRefreshFailure:l,onRedirectCallback:u,refreshBufferInterval:d}=e,[f,p]=O.useState(Xt),[m,h]=O.useState(Gt),g=O.useCallback(e=>{let{user:t,accessToken:n,organizationId:r=null,impersonator:i=null,authenticationMethod:a=null}=e,{role:o=null,roles:s=null,permissions:l=[],feature_flags:u=[]}=Me(n);h(e=>{let n=Ut(Ht({},e),{user:t,organizationId:r,role:o,roles:s,permissions:l,featureFlags:u,impersonator:i,authenticationMethod:a});return Yt(e,n)?e:n}),c?.(e)},[f]);return O.useEffect(()=>{function e(){let e=!1,s=setTimeout(()=>{Pt(t,{apiHostname:r,port:a,https:i,redirectUri:o,devMode:n,onRedirectCallback:u,onRefresh:g,onRefreshFailure:l,refreshBufferInterval:d}).then(t=>Wt(this,null,function*(){if(e)return;let n=t.getUser();p({getAccessToken:t.getAccessToken.bind(t),getUser:t.getUser.bind(t),signIn:t.signIn.bind(t),signUp:t.signUp.bind(t),signOut:t.signOut.bind(t),switchToOrganization:t.switchToOrganization.bind(t),getSignInUrl:t.getSignInUrl.bind(t),getSignUpUrl:t.getSignUpUrl.bind(t)}),h(e=>Ut(Ht({},e),{isLoading:!1,user:n}))})).catch(t=>{e||(console.error(t),h(e=>Ut(Ht({},e),{isLoading:!1,user:null})))})});return()=>{e=!0,clearTimeout(s)}}return p(Xt),h(Gt),e()},[t,r,i,a,o,d]),O.createElement(Kt.Provider,{value:Ht(Ht({},f),m)},s)}function Yt(e,t){return e.user?.updatedAt===t.user?.updatedAt&&e.organizationId===t.organizationId&&e.role===t.role&&e.roles===t.roles&&e.permissions.length===t.permissions.length&&e.permissions.every((e,n)=>e===t.permissions[n])&&e.featureFlags.length===t.featureFlags.length&&e.featureFlags.every((e,n)=>e===t.featureFlags[n])&&e.impersonator?.email===t.impersonator?.email&&e.impersonator?.reason===t.impersonator?.reason&&e.authenticationMethod===t.authenticationMethod}var Xt={signIn:()=>Wt(void 0,null,function*(){}),signUp:()=>Wt(void 0,null,function*(){}),getUser:()=>null,getAccessToken:()=>Promise.reject(new Be),switchToOrganization:()=>Promise.resolve(),signOut:()=>Wt(void 0,null,function*(){}),getSignInUrl:()=>Wt(void 0,null,function*(){return``}),getSignUpUrl:()=>Wt(void 0,null,function*(){return``})},Zt;function Qt(e){Zt=e}function $t(){return Zt}var en=(0,O.createContext)({get client(){return $t()},bootstrap:void 0});function tn(e,t,n){if(n===void 0&&(n=new WeakMap),e===t)return!0;
6if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(n.has(e)&&n.get(e)===t)return!0;n.set(e,t);var r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(var a=0,o=r;a<o.length;a++){var s=o[a];if(!i.includes(s)||!tn(e[s],t[s],n))return!1}return!0}function nn(e){var t=e.children,n=e.client,r=e.apiKey,i=e.options,a=(0,O.useRef)(null),o=(0,O.useMemo)(function(){if(n)return r&&console.warn("[PostHog.js] You have provided both `client` and `apiKey` to `PostHogProvider`. `apiKey` will be ignored in favour of `client`."),i&&console.warn("[PostHog.js] You have provided both `client` and `options` to `PostHogProvider`. `options` will be ignored in favour of `client`."),n;var e=$t();return r||console.warn("[PostHog.js] No `apiKey` or `client` were provided to `PostHogProvider`. Using default global `window.posthog` instance. You must initialize it manually. This is not recommended behavior."),e},[n,r,JSON.stringify(i)]);return(0,O.useEffect)(function(){if(!(n||!r)){var e=$t(),t=a.current;t?(r!==t.apiKey&&console.warn("[PostHog.js] You have provided a different `apiKey` to `PostHogProvider` than the one that was already initialized. This is not supported by our provider and we'll keep using the previous key. If you need to toggle between API Keys you need to control the `client` yourself and pass it in as a prop rather than an `apiKey` prop."),i&&!tn(i,t.options)&&e.set_config(i),a.current={apiKey:r,options:i??{}}):(e.__loaded&&console.warn("[PostHog.js] `posthog` was already loaded elsewhere. This may cause issues."),e.init(r,i),a.current={apiKey:r,options:i??{}})}},[n,r,JSON.stringify(i)]),O.createElement(en.Provider,{value:{client:o,bootstrap:i?.bootstrap??n?.config?.bootstrap}},t)}var rn=function(e){return typeof e==`function`},an=function(e){return e===void 0},on=function(){return(0,O.useContext)(en).client},sn=function(e,t){return sn=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},sn(e,t)};function cn(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);sn(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var ln=function(e){var t=Object.prototype.toString.call(e);return e instanceof Error||t===`[object Error]`||t===`[object Exception]`||t===`[object DOMException]`||t===`[object DOMError]`},un=function(e,t){for(var n=new WeakSet,r=e;!n.has(r);){if(n.add(r),!ln(r.cause)){an(r.cause)||(t.cause=r.cause),r.cause=t;return}r=r.cause}},dn=function(e,t){if(!t)return e;var n=Error(ln(e)?e.message:`Primitive value captured as exception: ${String(e)}`);return n.name=`React ErrorBoundary ${ln(e)?e.name:`Error`}`,n.stack=t,ln(e)?(un(e,n),e):n},fn={componentStack:null,exceptionEvent:null,error:null},pn={INVALID_FALLBACK:`[PostHog.js][PostHogErrorBoundary] Invalid fallback prop, provide a valid React element or a function that returns a valid React element.`};(function(e){cn(t,e);function t(t){var n=e.call(this,t)||this;return n.state=fn,n}return t.prototype.componentDidCatch=function(e,t){var n=this.props.additionalProperties,r;rn(n)?r=n(e,t):typeof n==`object`&&(r=n);var i=this.context.client,a=t.componentStack,o=i.captureException(dn(e,a),r);this.setState({error:e,componentStack:a??null,exceptionEvent:o})},t.prototype.render=function(){var e=this.props,t=e.children,n=e.fallback,r=this.state;if(r.componentStack==null)return rn(t)?t():t;var i=rn(n)?O.createElement(n,{error:r.error,componentStack:r.componentStack,exceptionEvent:r.exceptionEvent}):n;return O.isValidElement(i)?i:(console.warn(pn.INVALID_FALLBACK),O.createElement(O.Fragment,null))},t.contextType=en,t})(O.Component),Qt(d);async function mn({getAccessToken:e,forceRefreshToken:t,onFailure:n}){try{return await e(t?{forceRefresh:!0}:void 0)}catch(e){return e instanceof Be||n(e instanceof Error?e:Error(`WorkOS access token request failed`),{forceRefreshToken:t}),null}}function hn(e){let t=(0,P.c)(15),{authAttempt:n,children:r,client:i,onTokenFailure:a}=e,o=qt(),s=o.user?.id??null,c;t[0]!==o.getAccessToken||t[1]!==n||t[2]!==a||t[3]!==s?(c=async e=>{let{forceRefreshToken:t}=e;return s?mn({getAccessToken:o.getAccessToken,forceRefreshToken:t,onFailure:(e,t)=>
6{a(e,{authAttempt:n,...t})}}):null},t[0]=o.getAccessToken,t[1]=n,t[2]=a,t[3]=s,t[4]=c):c=t[4];let l=c,u=!o.isLoading&&s!==null,d;t[5]!==o.isLoading||t[6]!==l||t[7]!==u?(d={isLoading:o.isLoading,isAuthenticated:u,fetchAccessToken:l},t[5]=o.isLoading,t[6]=l,t[7]=u,t[8]=d):d=t[8];let f=d,p;t[9]===f?p=t[10]:(p=()=>f,t[9]=f,t[10]=p);let m=p,h;return t[11]!==r||t[12]!==i||t[13]!==m?(h=(0,k.jsx)(ee,{client:i,useAuth:m,children:r}),t[11]=r,t[12]=i,t[13]=m,t[14]=h):h=t[14],h}var gn=/^guest_[0-9a-f]{64}$/,X={belongsToAnotherUser:`GUEST_SESSION_BELONGS_TO_ANOTHER_USER`,expired:`GUEST_SESSION_EXPIRED`,inactive:`GUEST_SESSION_INACTIVE`,invalidToken:`GUEST_SESSION_INVALID_TOKEN`,notFound:`GUEST_SESSION_NOT_FOUND`},Z=`bounty.guest_token`,_n=`bounty:guest-token-change`,Q=null,vn=class extends Error{constructor(){super(`Guest sessions require browser storage`),this.name=`GuestSessionStorageUnavailableError`}},yn=class extends Error{constructor(){super(`Guest session is being transferred to your account`),this.name=`GuestSessionClaimedError`}},bn=v.guestSessions,xn=l({data:l({code:u([X.belongsToAnotherUser,X.expired,X.inactive,X.invalidToken,X.notFound])})});function Sn(e){let t=xn.safeParse(e);return t.success?t.data.data.code:null}function Cn(e){return e instanceof yn||Sn(e)===X.inactive}function wn(e){return e!==null&&gn.test(e)}function $(){if(wn(Q))return Q;for(let e of[`localStorage`,`sessionStorage`])try{let t=window[e].getItem(Z);if(wn(t))return Q=t,t}catch{}return null}function Tn(e){let t=t=>{t.key===Z&&(Q=null,e())};return window.addEventListener(`storage`,t),window.addEventListener(_n,e),()=>{window.removeEventListener(`storage`,t),window.removeEventListener(_n,e)}}function En(){return null}function Dn(){let e=new Uint8Array(32);return crypto.getRandomValues(e),`guest_${Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}`}function On(e){for(let t of[`localStorage`,`sessionStorage`])try{let n=window[t];if(n.setItem(Z,e),n.getItem(Z)!==e)continue;return Q=e,window.dispatchEvent(new Event(_n)),e}catch{}return null}function kn(){return $()||On(Dn())}function An(e){let t=!1;Q===e&&(Q=null,t=!0);for(let n of[`localStorage`,`sessionStorage`])try{let r=window[n];r.getItem(Z)===e&&(r.removeItem(Z),t=!0)}catch{}t&&window.dispatchEvent(new Event(_n))}async function jn(e,t,n,r){try{let i={guest_token:t};r&&(i.draft_resolution=r),n&&(i.active_thread_id=n);let a=await e.mutation(bn.claimGuestSession,i);return a.state===`claimed`&&An(t),a}catch(e){let n=e instanceof Error?Sn(e):null;if(n===X.inactive||n===X.expired||n===X.notFound||n===X.belongsToAnotherUser)return An(t),{state:`unavailable`};throw e}}async function Mn(e,t,n){let r=await jn(e,t,n);return r.state===`unavailable`?{state:`resolved`,draftId:null}:r.state===`conflict`?{state:`choice`,pendingChoice:{guestToken:t,activeThreadId:n,conflict:r}}:{state:`resolved`,draftId:r.draft_id}}async function Nn(e,t,n){let r=await jn(e,t.guestToken,t.activeThreadId,n);return r.state===`unavailable`?{state:`resolved`,draftId:null}:r.state===`conflict`?{state:`choice`,pendingChoice:{...t,conflict:r}}:{state:`resolved`,draftId:r.draft_id}}var Pn=`bounty-guest-claim-intent`,Fn=l({nonce:o().min(1),guestToken:o().refine(wn),activeThreadId:o().nullable()});function In(e,t){let n=crypto.randomUUID();try{return window.sessionStorage.setItem(Pn,JSON.stringify({nonce:n,guestToken:e,activeThreadId:t})),n}catch{return null}}function Ln(e){let t=null;try{t=window.sessionStorage.getItem(Pn)}catch{return null}if(!t)return null;try{let n=Fn.safeParse(JSON.parse(t));return!n.success||n.data.nonce!==e?null:{guestToken:n.data.guestToken,activeThreadId:n.data.activeThreadId}}catch{return null}}function Rn(e){try{let t=window.sessionStorage.getItem(Pn);if(!t)return;let n=Fn.safeParse(JSON.parse(t));n.success&&n.data.nonce===e&&window.sessionStorage.removeItem(Pn)}catch{}}function zn(e){let t=(0,P.c)(12),{isRetrying:n,onRetry:r,title:i,description:a}=e,o=i===void 0?`We couldn't restore your draft`:i,s=a===void 0?`Your work is still safe. Try again to finish signing in.`:a,c;t[0]===o?c=t[1]:(c=(0,k.jsx)(`h1`,{className:`font-display text-2xl font-normal text-foreground`,children:o}),t[0]=o,t[1]=c);let l;t[2]===s?l=t[3]:(l=(0,k.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:s}),t[2]=s,t[3]=l);let u=n?`Trying againâ¦`:`Try again`,d;t[4]!==n||t[5]!==r||t[6]!==u?(d=(0,k.jsx)(b,{type:`button`,disabled:n,onClick:r,className:`mt-5`,children:u}),t[4]=n,t[5]=r,t[6]=u,t[7]=d):d=t[7];let f;return t[8]!==c||t[9]!==l||t[10]!==d?(f=(0,k.jsx)(`main`,{className:`flex min-h-screen items-center justify-center bg-background px-5`,children:(0,k.jsxs)(`section`,{className:`w-full max-w-sm text-center`,children:[c,l,d]})}
6),t[8]=c,t[9]=l,t[10]=d,t[11]=f):f=t[11],f}function Bn(e){let t=(0,P.c)(23),{pendingChoice:n,isResolving:r,error:i,onChoose:a}=e,{browser_draft:o,account_draft:s}=n.conflict,c=o.updated_at>s.updated_at,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,k.jsx)(`h1`,{className:`font-display mb-4 text-center text-2xl font-normal text-foreground`,children:`Choose a draft`}),t[0]=l):l=t[0];let u;t[1]===a?u=t[2]:(u=()=>a(`guest`),t[1]=a,t[2]=u);let d;t[3]!==o||t[4]!==c||t[5]!==r||t[6]!==u?(d=(0,k.jsx)(Vn,{eyebrow:`This browser`,draft:o,isNewest:c,isResolving:r,buttonLabel:`Use browser draft`,onChoose:u}),t[3]=o,t[4]=c,t[5]=r,t[6]=u,t[7]=d):d=t[7];let f=!c,p;t[8]===a?p=t[9]:(p=()=>a(`account`),t[8]=a,t[9]=p);let m;t[10]!==s||t[11]!==r||t[12]!==f||t[13]!==p?(m=(0,k.jsx)(Vn,{eyebrow:`Your account`,draft:s,isNewest:f,isResolving:r,buttonLabel:`Keep account draft`,onChoose:p}),t[10]=s,t[11]=r,t[12]=f,t[13]=p,t[14]=m):m=t[14];let h;t[15]!==d||t[16]!==m?(h=(0,k.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[d,m]}),t[15]=d,t[16]=m,t[17]=h):h=t[17];let g;t[18]===i?g=t[19]:(g=i?(0,k.jsx)(S,{variant:`destructive`,className:`mx-auto mt-4 max-w-md text-center`,children:(0,k.jsx)(x,{children:i})}):null,t[18]=i,t[19]=g);let _;return t[20]!==h||t[21]!==g?(_=(0,k.jsx)(`main`,{className:`flex min-h-screen items-center justify-center bg-background px-5 py-8`,children:(0,k.jsxs)(`section`,{className:`w-full max-w-xl`,children:[l,h,g]})}),t[20]=h,t[21]=g,t[22]=_):_=t[22],_}function Vn(e){let t=(0,P.c)(23),{eyebrow:n,draft:r,isNewest:i,isResolving:a,buttonLabel:o,onChoose:s}=e,c;t[0]===n?c=t[1]:(c=(0,k.jsx)(`div`,{className:`text-sm font-medium text-foreground`,children:n}),t[0]=n,t[1]=c);let l;t[2]===i?l=t[3]:(l=i?(0,k.jsx)(`span`,{className:`rounded-full bg-primary/10 px-2.5 py-1 text-xs font-semibold text-primary-deep`,children:`Most recent`}):null,t[2]=i,t[3]=l);let u;t[4]!==c||t[5]!==l?(u=(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[c,l]}),t[4]=c,t[5]=l,t[6]=u):u=t[6];let d=r.description_preview||`Untitled bounty draft`,f;t[7]===d?f=t[8]:(f=(0,k.jsx)(`p`,{className:`mt-4 min-h-15 line-clamp-3 text-sm leading-5 text-foreground`,children:d}),t[7]=d,t[8]=f);let p;t[9]===r.updated_at?p=t[10]:(p=new Date(r.updated_at).toLocaleDateString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`}),t[9]=r.updated_at,t[10]=p);let m;t[11]===p?m=t[12]:(m=(0,k.jsx)(`div`,{className:`mt-3 text-xs text-muted-foreground`,children:p}),t[11]=p,t[12]=m);let h=i?`default`:`outline`,g=a?`Saving your choiceâ¦`:o,_;t[13]!==a||t[14]!==s||t[15]!==h||t[16]!==g?(_=(0,k.jsx)(b,{type:`button`,variant:h,disabled:a,onClick:s,className:`mt-4 w-full`,children:g}),t[13]=a,t[14]=s,t[15]=h,t[16]=g,t[17]=_):_=t[17];let v;return t[18]!==_||t[19]!==u||t[20]!==f||t[21]!==m?(v=(0,k.jsx)(C,{size:`sm`,children:(0,k.jsxs)(te,{children:[u,f,m,_]})}),t[18]=_,t[19]=u,t[20]=f,t[21]=m,t[22]=v):v=t[22],v}var Hn=`bounty-post-auth-intent`,Un=36e5,Wn=l({description:o(),visibility:u([`public`,`private`]),explore_opted_in:c().optional(),verification:o(),category:o(),amount_input:o(),delivery_window_ms:s()}),Gn=l({step:u([`details`,`review`]).optional(),assistantThreadId:o().nullable(),draft:Wn.nullable().optional(),hasTrackedBountyFormStarted:c().optional(),continuation:l({action:a(`submit_review`),guestDraftId:o().min(1),expiresAt:s()}).nullable().optional()});function Kn(e){let t=e.continuation;return{step:e.step??`details`,assistantThreadId:e.assistantThreadId,draft:e.draft?{...e.draft,explore_opted_in:e.draft.explore_opted_in??!1}:null,hasTrackedBountyFormStarted:e.hasTrackedBountyFormStarted??!1,continuation:t&&t.expiresAt>Date.now()?t:null}}function qn(e,t){let n;try{n=e===void 0?window.sessionStorage:e}catch(e){return t?.(e instanceof Error?e:Error(`Post-auth storage unavailable`),`storage`),null}if(!n)return null;let r;try{r=n.getItem(Hn),n.removeItem(Hn)}catch(e){return t?.(e instanceof Error?e:Error(`Post-auth storage unavailable`),`storage`),null}if(!r)return null;try{let e=Gn.safeParse(JSON.parse(r));
6return e.success||t?.(Error(`Stored post-auth intent is invalid`),`invalid`),e.success?Kn(e.data):null}catch(e){return t?.(e instanceof Error?e:Error(`Stored post-auth intent is invalid`),`invalid`),null}}function Jn(e){try{return window.sessionStorage.setItem(Hn,JSON.stringify(e)),!0}catch{return!1}}function Yn({guestToken:e,initialGuestToken:t,isAuthenticated:n,isAuthLoading:r,status:i}){return{guestReadToken:!n&&!r&&e!==null&&i?.state===`active`?e:null,guestSessionState:i?.state??null,isGuestReady:!r&&(n||e===null||e!==t||i!==void 0)}}function Xn(e){return e?.state===`expired`}function Zn(e){let t=h(bn.provisionGuestSessionV2),n=(0,O.useSyncExternalStore)(Tn,$,En),[r]=(0,O.useState)($),i=_(bn.getGuestSessionStatus,!e.isAuthenticated&&!e.isAuthLoading&&n?{guest_token:n}:`skip`),a=(0,O.useRef)(null),{guestReadToken:o,guestSessionState:s,isGuestReady:c}=Yn({guestToken:n,initialGuestToken:r,isAuthenticated:e.isAuthenticated,isAuthLoading:e.isAuthLoading,status:i});return{guestToken:n,guestReadToken:o,guestSessionState:s,isGuestReady:c,requireGuestToken:(0,O.useCallback)(async()=>{if(e.isAuthenticated)return null;let n=async e=>{let n=e,r=!1;try{let e=await t({guest_token:n});if(e.state===`claimed`)throw new yn;r=Xn(e)}catch(e){let t=e instanceof Error?Sn(e):null;if(t!==X.expired&&t!==X.notFound)throw e;r=!0}if(r){An(n);let r=kn();if(!r)throw new vn;if(n=r,a.current?.tokens.has(e)&&a.current.tokens.add(n),(await t({guest_token:n})).state!==`active`)throw An(n),Error(`Replacement guest session is not active`)}return n};for(let e=0;e<3;e+=1){let e=$()??kn();if(!e)throw new vn;let t=a.current?.tokens.has(e)?a.current:null,r=t??{tokens:new Set([e]),promise:n(e)};t||(a.current=r);let i;try{i=await r.promise}finally{a.current===r&&(a.current=null)}if(i!==null&&$()===i)return i}throw Error(`Guest session changed while it was being prepared`)},[e.isAuthenticated,t])}}function Qn(){return`${window.location.pathname}${window.location.search}${window.location.hash}`}var $n=l({returnTo:o().optional(),guestClaimNonce:o().optional()}),er=o().min(1);function tr(e){return e.flatMap(e=>{let t=er.safeParse(e);return t.success?[t.data]:[]}).join(` `)}function nr(e){if(!e||e.length===0)return`/`;try{let t=new URL(e,window.location.origin);return t.origin===window.location.origin?`${t.pathname}${t.search}${t.hash}`:`/`}catch{return`/`}}function rr({returnTarget:e,currentPath:t,isOnCallback:n}){let r=e?.nextPath??(n?`/`:t);return e?.guestClaimNonce?{returnTo:r,guestClaimNonce:e.guestClaimNonce}:{returnTo:r}}function ir(){return re(document.cookie)}function ar(){document.cookie=ae(window.location.protocol===`https:`)}function or(e){let t={BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,TSS_DEV_SERVER:`false`,TSS_DEV_SSR_STYLES_BASEPATH:`/`,TSS_DEV_SSR_STYLES_ENABLED:`true`,TSS_DISABLE_CSRF_MIDDLEWARE_WARNING:`false`,TSS_INLINE_CSS_ENABLED:`false`,TSS_ROUTER_BASEPATH:``,TSS_SERVER_FN_BASE:`/_serverFn/`,VITE_CONVEX_URL:`https://veracious-monitor-325.convex.cloud`,VITE_PUBLIC_POSTHOG_API_HOST:`https://v.trybounty.ai`,VITE_PUBLIC_POSTHOG_PROJECT_TOKEN:`phc_Cvq8qwYzdJtVPYYJ1TdTpAzYjql4rJjRf1NWfjNh6Up`,VITE_PUBLIC_POSTHOG_UI_HOST:`https://us.posthog.com`,VITE_STRIPE_PUBLISHABLE_KEY:`pk_live_51RbPAzB72X7kWvQmw4LZu1Ug5gGCBWpaPRRApzDvyM2upEB5udVjBQL1Kkhk8zjJnDYVIQdATARxV54tlNMgxeQg000X6jII8e`,VITE_TURNSTILE_SITE_KEY:`0x4AAAAAAEV2mzAa8GEVDJaQ`,VITE_WORKERS_CI_BRANCH:`main`,VITE_WORKOS_CLIENT_ID:`client_01KH9NZHA2JDH6XBCZPSV0NNR1`,VITE_WORKOS_REDIRECT_URI:`https://trybounty.ai/callback`}[e];if(!t||t.trim().length===0)throw Error(`Missing required environment variable: ${e}`);return t}var sr=or(`VITE_WORKOS_CLIENT_ID`),cr=or(`VITE_WORKOS_REDIRECT_URI`),lr=(0,O.createContext)({isAuthLoading:!0,isCompletingAuthTransition:!1,isAuthenticated:!1,userId:null,email:null,displayName:null,avatarUrl:null,isPromotionSyncPending:!1,guestToken:null,guestReadToken:null,guestSessionState:null,isGuestReady:!1,requireGuestToken:async()=>null,signIn:async()=>{},signOut:async()=>{}}),ur=1e3,dr=30;function fr({auth:e,guestSession:t,posthogInstance:n,isPromotionSyncPending:r,isCompletingAuthTransition:i,signIn:a}){let o=tr([e.user?.firstName,e.user?.lastName]);return{isAuthLoading:e.isLoading,isCompletingAuthTransition:i,isAuthenticated:e.user!==null,userId:e.user?.id??null,email:e.user?.email??null,displayName:o.length>0?o:e.user?.email??null,avatarUrl:e.user?.profilePictureUrl??null,isPromotionSyncPending:r,guestToken:t.guestToken,guestReadToken:t.guestReadToken,guestSessionState:t.guestSessionState,isGuestReady:t.isGuestReady,requireGuestToken:t.requireGuestToken,signIn:a,signOut:async()=>{m(n,`user_signed_out`,{},{send_instantly:!0});try{n.reset()}catch{}let t=`${window.location.origin}/`;try{await e.signOut({returnTo:t})}catch(e){if(e instanceof Re&&e.message===`SignOut() called without an active session. Provide a returnTo URL to redirect anyway.`){window.location.assign(t);return}throw e}}}}function pr(e){let t=(0,P.c)(36),{children:n,isCompletingAuthTransition:r}=e,i=qt(),a=y(),o=h(v.promotions.redeemPromotion),s=on(),c;t[0]!==a.isAuthenticated||t[1]!==a.isLoading?(c={isAuthenticated:a.isAuthenticated,isAuthLoading:a.isLoading},t[0]=a.isAuthenticated,t[1]=a.isLoading,t[2]=c):c=t[2];let l=Zn(c),u=(0,O.useRef)(null),d=(0,O.useRef)(null),[p,_]=(0,O.useState)(mr),ee=(0,O.useRef)(p),b;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{ee.current=!1,_(!1)},t[3]=b):b=t[3];let x=b,S;t[4]!==i||t[5]!==s?(S=async e=>{m(s,`sign_in_clicked`,{},{send_instantly:!0});let t=window.navigator.userAgent;if(/LinkedInApp/i.test(t)&&/iPhone|iPad|iPod/i.test(t)){window.location.assign(`x-safari-${window.location.href}`);return}let n=$(),r=e?.claimGuestWork&&n?In(n,e.claimGuestWork.activeThreadI
6d):null;if(e?.claimGuestWork&&n&&!r)throw Error(`Browser storage is required to continue safely`);let a=Qn(),o=r?{returnTo:a,guestClaimNonce:r}:{returnTo:a};await i.signIn({state:o}),he()},t[4]=i,t[5]=s,t[6]=S):S=t[6];let te=S,C;t[7]!==i.user?.email||t[8]!==i.user?.firstName||t[9]!==i.user?.id||t[10]!==i.user?.lastName||t[11]!==s?(C=()=>{let e=i.user?.id??null,t=i.user?.email??null,n=tr([i.user?.firstName,i.user?.lastName]),r={email:t,name:n.length>0?n:void 0};if(e&&e!==u.current){try{s.identify(e,r),s.alias(`https://api.workos.com/user_management/${sr}|${e}`)}catch{}m(s,`user_signed_in`),u.current=e}e||(u.current=null)},t[7]=i.user?.email,t[8]=i.user?.firstName,t[9]=i.user?.id,t[10]=i.user?.lastName,t[11]=s,t[12]=C):C=t[12];let w;t[13]!==i.user||t[14]!==s?(w=[i.user,s],t[13]=i.user,t[14]=s,t[15]=w):w=t[15],(0,O.useEffect)(C,w);let T;t[16]!==i.user?.id||t[17]!==a.isAuthenticated||t[18]!==s||t[19]!==o?(T=()=>{let e=i.user?.id;if(!e||!a.isAuthenticated){e||(d.current=null);return}let t=ir();if(!t){ee.current&&f(Error(`Pending promotion cookie is unavailable`),{source:`promotion_cookie_unavailable`}),queueMicrotask(x);return}let n=`${e}:${t.toLowerCase()}`;if(d.current===n)return;d.current=n;let r=!1,c,l=async e=>{try{let n=await o({key:t});if(r)return;if(n.status===`pending_user_sync`&&e<dr){c=window.setTimeout(()=>{l(e+1)},ur);return}if(n.status===`pending_user_sync`){m(s,`promotion_redemption_failed`,{promotion_key:t.toLowerCase(),reason:`user_sync_timeout`}),f(Error(`Promotion redemption timed out waiting for user sync`),{source:`promotion_redemption`,context:{promotion_key:t.toLowerCase()}}),x();return}m(s,`promotion_redeemed`,{promotion_key:t.toLowerCase()}),ar(),x()}catch(e){let n=e;if(r)return;let i=n instanceof g;m(s,`promotion_redemption_failed`,{promotion_key:t.toLowerCase(),reason:i?String(n.data):`unexpected_error`}),i&&ar(),f(n,{source:`promotion_redemption`,context:{promotion_key:t.toLowerCase()}}),x()}};return l(1),()=>{r=!0,d.current===n&&(d.current=null),c!==void 0&&window.clearTimeout(c)}},t[16]=i.user?.id,t[17]=a.isAuthenticated,t[18]=s,t[19]=o,t[20]=T):T=t[20];let E=i.user?.id,D;t[21]!==a.isAuthenticated||t[22]!==s||t[23]!==o||t[24]!==E?(D=[E,a.isAuthenticated,x,s,o],t[21]=a.isAuthenticated,t[22]=s,t[23]=o,t[24]=E,t[25]=D):D=t[25],(0,O.useEffect)(T,D);let A;t[26]!==i||t[27]!==l||t[28]!==r||t[29]!==p||t[30]!==s||t[31]!==te?(A=fr({auth:i,guestSession:l,posthogInstance:s,isPromotionSyncPending:p,isCompletingAuthTransition:r,signIn:te}),t[26]=i,t[27]=l,t[28]=r,t[29]=p,t[30]=s,t[31]=te,t[32]=A):A=t[32];let j=A,M;return t[33]!==n||t[34]!==j?(M=(0,k.jsx)(lr.Provider,{value:j,children:n}),t[33]=n,t[34]=j,t[35]=M):M=t[35],M}function mr(){return!!ir()}function hr({children:e,convex:t}){let n=r(),i=(0,O.useCallback)((e,t,n={})=>{f(e,{source:t,context:n})},[]),[a,o]=(0,O.useState)(null),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(null),[d,m]=(0,O.useState)(null),[h,g]=(0,O.useState)(!1),[_,v]=(0,O.useState)(null),[y,ee]=(0,O.useState)(null),[b,x]=(0,O.useState)(!1),[S,te]=(0,O.useState)(0),C=(0,O.useRef)(0),w=(0,O.useRef)(null),T=(0,O.useRef)(null),E=(0,O.useRef)(!1),A=(0,O.useRef)(null),j=(0,O.useRef)(null),M=(0,O.useCallback)((e,t)=>{E.current||(E.current=!0,f(e,{source:`convex_auth_token`,context:{auth_attempt:t.authAttempt,force_refresh:t.forceRefreshToken}}))},[]),ne=(0,O.useCallback)(()=>{E.current&&(E.current=!1,te(e=>e+1))},[]),N=(0,O.useCallback)((e,t=!1,r=null)=>{ee(null),x(!0);let a=t?qn(void 0,(e,t)=>{i(e,`post_auth_intent_${t}`)}):null,o=a?{...a,continuation:a.continuation&&r?{...a.continuation,guestDraftId:r}:null}:null;n.navigate({href:e,replace:!0,ignoreBlocker:!0,state:e=>o?{...e,postAuthIntent:o}:e}).then(()=>{T.current=null,v(null),x(!1)}).catch(n=>{o&&Jn(o),i(n,`post_auth_navigation`,{next_path:e}),ee({nextPath:e,includePostAuthIntent:t,resolvedPostDraftId:r}),x(!1)})},[i,n]),re=(0,O.useCallback)(async e=>{let n=await Mn(t,e.guestToken,e.activeThreadId);if(n.state===`resolved`)return o(null),n;let r=n.pendingChoice;return $()===r.guestToken?(o(r),u(null),n):{state:`resolved`,draftId:null}},[t]),ie=(0,O.useCallback)(async e=>{if(!(!a||s)){c(!0),u(null);try{let n=await Nn(t,a,e);if(n.state===`choice`)o(n.pendingChoice);else{let t=A.current;t&&Rn(t);let r=j.current??`/`;A.current=null,j.current=null,o(null),N(r,!0,e===`guest`?n.draftId:null)}}catch(e){u(p(e,{source:`guest_draft_choice`,message:`We couldn't save that choice. Please try again.`}))}finally{c(!1)}}},[t,s,N,a]),ae=(0,O.useCallback)(async({intent:e,nextPath:t,nonce:n})=>{A.current=n,j.current=t,g(!0);try{let r=await re(e);m(null),r.state===`resolved`&&(Rn(n),A.current=null,j.current=null,N(t,!0,r.draftId))}catch(r){f(r,{source:`guest_claim_after_authentication`}),m({intent:e,nextPath:t,nonce:n})}finally{g(!1)}},[N,re]),oe=(0,O.useCallback)(e=>{if(w.current===e.id)return;if(w.current=e.id,!e.guestClaimNonce){N(e.nextPath,!0,null);return}let t=Ln(e.guestClaimNonce);if(!t||$()!==t.guestToken){i(Error(`Guest claim intent unavailable after authentication`),`guest_claim_intent_unavailable`),Rn(e.guestClaimNonce),N(e.nextPath,!0,null);return}ae({intent:t,nextPath:e.nextPath,nonce:e.guestClaimNonce})},[i,ae,N]);return(0,k.jsx)(Jt,{clientId:sr,redirectUri:cr,devMode:!0,onRedirectCallback:e=>{let t=n.history.location.state.__TSR_index;queueMicrotask(()=>D(t));let r=$n.safeParse(e?.state).data,i=nr(r?.returnTo),a=r?.guestClaimNonce??null;T.current={nextPath:i,guestClaimNonce:a},C.current+=1,v({id:C.current,nextPath:i,guestClaimNonce:a})},onRefreshFailure:({signIn:e})=>{e({state:rr({returnTarget:T.current,currentPath:Qn(),isOnCallback:window.location.pathname===`/callback`})}).then(he,e=>{i(e,`workos_refresh_reauthentication`)})},onRefresh:ne,children:(0,k.jsxs)(hn,{authAttempt:S,client:t,onTokenFailure:M,children:[(0,k.jsx)(pr,{isCompletingAuthTransition:_!==null,children:e}),(0,k.jsx)(gr,{transition:_,onReady:oe}),(0,k.jsx)(_r,{pendingAuthNavigation:y,isAuthNavigationInFlight:b,retryAuthNavigation:()=>{y&&N(y.nextPath,y.includePostAuthIntent,y.resolvedPostDraftId)},pendingGuestClaimRetry:d,isGuestClaimInFlight:h,retryGuestClaim:ae,pendingGuestDraftChoice:a,isResolvingGuestDraft:s,guestDraftChoiceError:l,chooseGuestDraft:ie})]})})}function gr(e){let t=(0,P.c)(6),{transition:n,onReady:r}=e,i=y(),a,o;return t[0]!==i.isAuthenticated||t[1]!==i.isRefreshing||t[2]!==r||t[3]!==n?(a=()=>{!n||!i.isAuthenticated||i.isRefreshing||r(n)},o=[i.isAuthenticated,i.isRefreshing,r,n],t[0]=i.isAuthenticated,t[1]=i.isRefreshing,t[2]=r,t[3]=n,t[4]=a,t[5]=o):(a=t[4],o=t[5]),(0,O.useEffect)(a,o),null}function _r(e){let t=(0,P.c)(20),{pendingAuthNavigation:n,isAuthNavigationInFlight:r,retryAuthNavigation:i,pendingGuestClaimRetry:a,isGuestClaimInFlight:o,retryGuestClaim:s,pendingGuestDraftChoice:c,isResolvingGuestDraft:l,guestDraftChoiceError:u,chooseGuestDraft:d}=e,f=null;if(n){let e;t[0]!==r||t[1]!==i?(e=(0,k.jsx)(zn,{title:`We couldn't finish signing you in`,description:`Please try again.`,isRetrying:r,onRetry:i}),t[0]=r,t[1]=i,t[2]=e):e=t[2],f=e}else if(a){let e;t[3]!==a||t[4]!==s?(e=()=>{s({...a})}
6,t[3]=a,t[4]=s,t[5]=e):e=t[5];let n;t[6]!==o||t[7]!==e?(n=(0,k.jsx)(zn,{isRetrying:o,onRetry:e}),t[6]=o,t[7]=e,t[8]=n):n=t[8],f=n}else if(c){let e;t[9]===d?e=t[10]:(e=e=>{d(e)},t[9]=d,t[10]=e);let n;t[11]!==u||t[12]!==l||t[13]!==c||t[14]!==e?(n=(0,k.jsx)(Bn,{pendingChoice:c,isResolving:l,error:u,onChoose:e}),t[11]=u,t[12]=l,t[13]=c,t[14]=e,t[15]=n):n=t[15],f=n}else if(o){let e;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,k.jsx)(`main`,{className:`flex min-h-screen items-center justify-center bg-background px-5`,children:(0,k.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Restoring your draft...`})}),t[16]=e):e=t[16],f=e}if(!f)return null;let p;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,k.jsx)(T,{className:`sr-only`,children:`Complete authentication`}),t[17]=p):p=t[17];let m;return t[18]===f?m=t[19]:(m=(0,k.jsx)(E,{open:!0,children:(0,k.jsxs)(w,{showCloseButton:!1,variant:`fullscreen`,children:[p,f]})}),t[18]=f,t[19]=m),m}function vr(){return(0,O.useContext)(lr)}export{Gn as a,Cn as c,on as d,ye as f,D as g,oe as h,Kn as i,wn as l,ve as m,vr as n,Jn as o,me as p,Un as r,vn as s,hr as t,nn as u}; 7//# chunkId=453a9e42-82d9-4f7d-86e7-37f6cd9fa0b1
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.