PageSourceSearch

https://snwolley.ai/_next/static/chunks/3342-c07aedd62931c595.js

js snwolley.ai collected 2026-10-05 12:39:44 UTC 17,371 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3342],{20881:(e,r,a)=>{a.d(r,{BackgroundAALChecker:()=>c});var t=a(95155),n=a(12115),o=a(20063),s=a(69481),l=a(9634);function c(e){let{children:r,redirectTo:a="/auth/phone-verification",enabled:c=!0}=e,{user:i,isLoading:d}=(0,l.A)(),u=(0,o.useRouter)(),h=(0,o.usePathname)(),{data:m}=(0,s.aV)();return(0,n.useEffect)(()=>{if(!d&&i&&c&&m){let{action_required:e,current_level:r,next_level:t,verification_required:n}=m;if(h.startsWith("/dashboard")||h.startsWith("/agents")||h.startsWith("/projects")||h.startsWith("/settings")){if(n&&"aal1"===r&&"aal1"===t)return void u.push(a);switch(e){case"verify_mfa":u.push(a);break;case"reauthenticate":u.push("/auth?message=Please sign in again due to security changes");break;case"none":break;default:console.warn("Background: Unknown AAL state:",{current_level:r,next_level:t,action_required:e})}}}},[i,d,c,m,u,a,h]),(0,t.jsx)(t.Fragment,{children:r})}},29633:(e,r,a)=>{a.d(r,{A:()=>t});let t=(0,a(71847).A)("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]])},50947:(e,r,a)=>{a.d(r,{L:()=>o});var t=a(12115),n=a(46830);function o(){let[e,r]=(0,t.useState)(null);return{billingError:e,handleBillingError:(0,t.useCallback)(e=>{var a,t,o;if((0,n.Jn)())return console.log("Running in local development mode - billing checks are disabled"),!1;if(e&&(e.message||e.subscription))return r({message:e.message||"You've reached your monthly usage limit.",currentUsage:e.currentUsage||(null==(a=e.subscription)?void 0:a.current_usage),limit:e.limit||(null==(t=e.subscription)?void 0:t.limit),subscription:e.subscription||{}}),!0;if(402===e.status||e.message&&e.message.includes("Payment Required")){let a=(null==(o=e.data)?void 0:o.detail)||{},t=a.subscription||{};return r({message:a.message||"You've reached your monthly usage limit.",currentUsage:t.current_usage,limit:t.limit,subscription:t}),!0}return!1},[]),clearBillingError:(0,t.useCallback)(()=>{r(null)},[])}}},51988:(e,r,a)=>{a.d(r,{g:()=>j});var t=a(95155),n=a(12115),o=a(51834),s=a(56154),l=a(85864),c=a(14230);let i=()=>{let{isOpen:e,type:r,onClose:a}=(0,l.h)();return(0,t.jsx)(o.lG,{open:e&&"paymentRequiredDialog"===r,onOpenChange:a,children:(0,t.jsxs)(o.Cf,{className:"w-[95vw] max-w-[750px] max-h-[90vh] overflow-hidden flex flex-col p-0",children:[(0,t.jsxs)(o.c7,{className:"px-4 sm:px-6 pt-4 sm:pt-6 flex-shrink-0",children:[(0,t.jsx)(o.L3,{children:"Upgrade Required"}),(0,t.jsx)(o.rr,{children:"You've reached your plan's usage limit. Upgrade to continue enjoying our premium features."})]}),(0,t.jsx)("div",{className:"flex-1 pb-2 overflow-y-auto scrollbar-thin scrollbar-thumb-zinc-300 dark:scrollbar-thumb-zinc-700 scrollbar-track-transparent px-4 sm:px-6 min-h-0",children:(0,t.jsxs)("div",{className:"space-y-4 sm:space-y-6 pb-4",children:[(0,t.jsx)("div",{className:"flex items-start p-3 sm:p-4 bg-destructive/5 border border-destructive/50 rounded-lg",children:(0,t.jsxs)("div",{className:"flex items-start space-x-3",children:[(0,t.jsx)("div",{className:"flex-shrink-0 mt-0.5",children:(0,t.jsx)(s.A,{className:"w-4 h-4 sm:w-5 sm:h-5 text-destructive"})}),(0,t.jsxs)("div",{className:"text-xs sm:text-sm min-w-0",children:[(0,t.jsx)("p",{className:"font-medium text-destructive",children:"Usage Limit Reached"}),(0,t.jsx)("p",{className:"text-destructive break-words",children:"Your current plan has been exhausted for this billing period."})]})]})}),(0,t.jsx)("div",{className:"w-full",children:(0,t.jsx)(c.c,{insideDialog:!0,hideFree:!0,returnUrl:"".concat("https://snwolley.ai","/dashboard"),showTitleAndTabs:!1})})]})})]})})};var d=a(77755),u=a(3998),h=a(65142),m=a(76444),f=a(20508),p=a(18720),g=a(96648),y=a(9634),x=a(94221),v=a(99532),w=a(66809);function _(){let{isOpen:e,type:r,onClose:a}=(0,l.h)(),{data:s,mutate:c}=(0,d.o)(),{user:i}=(0,y.A)(),_=null==s?void 0:s.find(e=>e.personal_account),[j,N]=(0,n.useState)(""),[b,S]=(0,n.useState)(""),[E,A]=(0,n.use
1State)(!1),[C,F]=(0,n.useState)("US"),k=e&&"editProfile"===r;(0,n.useEffect)(()=>{k&&_&&(N(_.name||""),(async()=>{try{let e=(0,g.U)(),{data:r,error:a}=await e.rpc("get_account_phone",{account_id:_.account_id});!a&&r?(S(r||""),console.log("Fetched phone:",r)):(console.log("No phone data or error:",a),S(""))}catch(e){console.log("Error fetching phone:",e),S("")}})())},[k,_,i]),(0,n.useEffect)(()=>{let e=async()=>{try{let e=await w.K.detectCountry();e&&F(e)}catch(e){console.log("Country detection failed, using US as default")}};k&&e()},[k]);let U=async e=>{if(e.preventDefault(),!_||!i)return void p.oR.error("No account found");if(!j.trim())return void p.oR.error("Name is required");if(b&&!(0,v.g0)(b))return void p.oR.error("Please enter a valid phone number");let r=j!==_.name,t=b!==((null==_?void 0:_.phone)||"");if(!r&&!t){p.oR.info("No changes to save"),a();return}A(!0);try{let e=(0,g.U)();if(r){console.log("Updating account name:",{name:j,account_id:_.account_id});let{data:r,error:a}=await e.rpc("update_account",{name:j,account_id:_.account_id});if(console.log("Name update result:",{accountData:r,accountError:a}),a)throw Error("Failed to update name: ".concat(a.message))}if(t){console.log("Updating user phone:",{phone:b});let{data:r,error:a}=await e.rpc("update_account_phone",{account_id:_.account_id,new_phone:b||null});if(console.log("Phone update result:",{phoneData:r,phoneError:a}),a)throw Error("Failed to update phone: ".concat(a.message))}(r||t)&&await c(),p.oR.success("Profile updated successfully"),a()}catch(e){console.error("Error updating profile:",e),p.oR.error("Failed to update profile: "+(e instanceof Error?e.message:"Unknown error"))}finally{A(!1)}};return(0,t.jsx)(o.lG,{open:k,onOpenChange:a,children:(0,t.jsxs)(o.Cf,{className:"sm:max-w-md",children:[(0,t.jsx)(o.c7,{children:(0,t.jsxs)(o.L3,{className:"flex items-center gap-2",children:[(0,t.jsx)(f.A,{className:"h-5 w-5"}),"Edit Profile"]})}),(0,t.jsxs)("form",{onSubmit:U,className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(m.Label,{htmlFor:"name",className:"text-sm font-medium",children:"Name"}),(0,t.jsx)(h.p,{id:"name",type:"text",placeholder:"Enter your name",value:j,onChange:e=>N(e.target.value),required:!0,className:"h-10"})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(m.Label,{htmlFor:"phone",className:"text-sm font-medium",children:"Phone Number (Optional)"}),(0,t.jsx)(x.L,{value:b,onChange:e=>S(e||""),placeholder:"Enter your phone number",defaultCountry:C,disabled:E})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-3 pt-4",children:[(0,t.jsx)(u.$,{type:"button",variant:"outline",onClick:a,disabled:E,children:"Cancel"}),(0,t.jsx)(u.$,{type:"submit",disabled:E,className:"min-w-[100px]",children:E?"Saving...":"Save Changes"})]})]})]})})}let j=()=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i,{}),(0,t.jsx)(_,{})]})},69481:(e,r,a)=>{a.d(r,{Jm:()=>f,x8:()=>m,aV:()=>x,w9:()=>g,S8:()=>y,K$:()=>p});var t=a(99776),n=a(80549),o=a(14625),s=a(96648),l=a(95704);let c=new Date("2025-07-25T00:09:30.000Z");function i(){let e=l.env.NEXT_PUBLIC_PHONE_NUMBER_MANDATORY;return!!e&&"true"===e.toLowerCase()}let d={async enrollPhoneNumber(e){let r=(0,s.U)();try{let a=await r.auth.mfa.enroll({factorType:"phone",friendlyName:e.friendly_name,phone:e.phone_number});if(a.error)throw Error(a.error.message);if(!a.data)throw Error("No data returned from enrollment");return{id:a.data.id,friendly_name:e.friendly_name,phone_number:e.phone_number,qr_code:void 0,secret:void 0}}catch(e){throw console.error("❌ Enroll phone factor failed:",e),Error("Failed to enroll phone factor: ".concat(e.message))}},async createChallenge(e){let r=(0,s.U)();try{let a=await r.auth.mfa.challenge({factorId:e.factor_id});if(a.error)throw Error(a.error.message);if(!a.data)throw Error("No data returned from challenge");return{id:a.data.id,expires_at:a.data.expires_at?new Date(1e3*a.data.expires_at).toISOString():void 0}}catch(e){throw console.error("❌ Create SMS challenge failed:",e),Error("Failed to create SMS challenge: ".concat(e.message))}},async verifyChallenge(e){let r=(0,s.U)();try{let a=await r.auth.mfa.verify({factorId:e.factor_id,challengeId:e.challenge_id,code:e.code});if(a.error)throw Error(a.error.message);return{success:!0,message:"SMS code verified successfully"}}catch(e){throw console.error("❌ Verify challenge failed:",e),Error("Failed to verify SMS code: ".concat(e.message))}},async challengeAndVerify(e){let r=(0,s.U)();try{let a=await r.auth.mfa.challengeAndVerify({factorId:e.factor_id,code:e.code});if(a.error)throw Error(a.error.message);return{success:!0,message:"SMS challenge created and verified successfully"}}catch(e){throw console.error("❌ Challenge and verify SMS failed:",e),Error("Failed to challenge and verify SMS: ".concat(e.message))}},async resendSMS(e){let r=(0,s.U)();try{let a=await r.auth.mfa.challenge({factorId:e});if(a.error)throw Error(a.error.message);if(!a.data)throw Error("No data returned from challenge");return{id:a.data.id,expires_at:a.data.expires_at?new Date(1e3*a.data.expires_at).toISOString():void 0}}catch(e){throw console.error("❌ Resend SMS failed:",e),Error("Failed to resend SMS: ".concat(e.message))}},async listFactors(){let e=(0,s.U)();try{let{data:{user:r},error:a}=await e.auth.getUser();if(a)throw Error(a.message);if(!r)throw Error("User not found");let t=[];if(r.factors)for(let e of r.factors)t.push({id:e.id,friendly_name:e.friendly_name,factor_type:e.factor_type,status:e.status,phone:e.phone,created_at:e.created_at,updated_at:e.updated_at});return{factors:t}}catch(e){throw console.error("❌ List factors failed:",e),Error("Failed to list factors: ".concat(e.message))}},async unenrollFactor(e){let r=(0,s.U)();try{let a=await r.auth.mfa.unenroll({factorId:e});if(a.error)throw Error(a.error.message);return{success:!0,message:"Phone factor unenrolled successfully"}}catch(e){throw console.error("❌ Unenroll factor failed:",e),Error("Failed to unenroll phone factor: ".concat(e.message))}},async getAAL(){let e=(0,s.U)();try{var r,a,t,n;let o=await e.auth.mfa.getAuthenticatorAssuranceLevel();if(o.error)throw Error(o.error.message);let{data:{user:s},error:l}=await e.auth.getUser();if(l)throw Error(l.message);if(!s)throw Error("User not found");let d=null;if(s.created_at)try{d=new Date(s.created_at)}catch(e){console.error("Failed to parse user created_at:",e),d=new Date}let u=d&&d>=c,h=[],m=[],f=!1;
1if(s.factors)for(let e of s.factors){let r={id:e.id,friendly_name:e.friendly_name,factor_type:e.factor_type,status:e.status,phone:e.phone,created_at:e.created_at,updated_at:e.updated_at};h.push(r),"phone"===e.factor_type&&(m.push(r),"verified"===e.status&&(f=!0))}let p=null==(r=o.data)?void 0:r.currentLevel,g=null==(a=o.data)?void 0:a.nextLevel,y="none",x="";"aal1"===p&&"aal1"===g?(y="none",x="MFA is not enrolled for this account"):"aal1"===p&&"aal2"===g?(y="verify_mfa",x="MFA verification required to access full features"):"aal2"===p&&"aal2"===g?(y="none",x="MFA is verified and active"):"aal2"===p&&"aal1"===g?(y="reauthenticate",x="Session needs refresh due to MFA changes"):(y="unknown",x="Unknown AAL combination: ".concat(p," -> ").concat(g));let v=!1;u?"aal1"===p&&"aal1"===g?v=!0:"verify_mfa"===y&&(v=!0):v="verify_mfa"===y;let w=u&&i();return v=u&&v&&i(),{current_level:p,next_level:g,current_authentication_methods:(null==(n=o.data)||null==(t=n.currentAuthenticationMethods)?void 0:t.map(e=>e.method))||[],action_required:y,message:x,phone_verification_required:w,user_created_at:null==d?void 0:d.toISOString(),cutoff_date:c.toISOString(),verification_required:v,is_verified:f,factors:h}}catch(e){throw console.error("❌ Get AAL failed:",e),Error("Failed to get AAL: ".concat(e.message))}}},u={enrollPhoneNumber:async e=>await d.enrollPhoneNumber(e),createChallenge:async e=>await d.createChallenge(e),verifyChallenge:async e=>await d.verifyChallenge(e),listFactors:async()=>await d.listFactors(),unenrollFactor:async e=>await d.unenrollFactor(e),getAAL:async()=>await d.getAAL()};var h=a(9634);let m=()=>{let e=(0,t.jE)();return(0,n.n)({mutationFn:u.enrollPhoneNumber,onSuccess:()=>{e.invalidateQueries({queryKey:["phone-verification-factors"]}),e.invalidateQueries({queryKey:["mfa-aal"]})}})},f=()=>(0,n.n)({mutationFn:u.createChallenge}),p=()=>{let e=(0,t.jE)();return(0,n.n)({mutationFn:u.verifyChallenge,onSuccess:()=>{e.invalidateQueries({queryKey:["mfa-aal"]}),e.invalidateQueries({queryKey:["phone-verification-factors"]})}})},g=()=>{let{user:e}=(0,h.A)();return(0,o.I)({queryKey:["phone-verification-factors"],queryFn:u.listFactors,enabled:!!e,staleTime:1/0,retry:2})},y=()=>{let e=(0,t.jE)();return(0,n.n)({mutationFn:u.unenrollFactor,onSuccess:()=>{e.invalidateQueries({queryKey:["phone-verification-factors"]}),e.invalidateQueries({queryKey:["mfa-aal"]})}})},x=()=>{let{user:e}=(0,h.A)();return(0,o.I)({queryKey:["mfa-aal"],queryFn:u.getAAL,enabled:!!e,staleTime:1/0,retry:2})}},77755:(e,r,a)=>{a.d(r,{o:()=>o});var t=a(3467),n=a(96648);let o=e=>{let r=(0,n.U)();return(0,t.Ay)(!!r&&["accounts"],async()=>{let{data:e,error:a}=await r.rpc("get_accounts");if(a)throw Error(a.message);return e},e)}},94221:(e,r,a)=>{a.d(r,{L:()=>j});var t=a(95155),n=a(12115),o=a(74054),s=a(5917),l=a(99532),c=a(12463),i=a(3998),d=a(81172),u=a(86651),h=a(64269);function m(e){let{className:r,...a}=e;return(0,t.jsx)(d.uB,{"data-slot":"command",className:(0,h.cn)("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",r),...a})}function f(e){let{className:r,...a}=e;return(0,t.jsxs)("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[(0,t.jsx)(u.A,{className:"size-4 shrink-0 opacity-50"}),(0,t.jsx)(d.uB.Input,{"data-slot":"command-input",className:(0,h.cn)("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",r),...a})]})}function p(e){let{className:r,...a}=e;return(0,t.jsx)(d.uB.List,{"data-slot":"command-list",className:(0,h.cn)("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",r),...a})}function g(e){let{...r}=e;return(0,t.jsx)(d.uB.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...r})}function y(e){let{className:r,...a}=e;return(0,t.jsx)(d.uB.Group,{"data-slot":"command-group",className:(0,h.cn)("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",r),...a})}function x(e){let{className:r,...a}=e;return(0,t.jsx)(d.uB.Item,{"data-slot":"command-item",className:(0,h.cn)("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",r),...a})}a(51834);var v=a(65142),w=a(26333),_=a(17037);let j=n.forwardRef((e,r)=>{let{className:a,onChange:n,value:o,...s}=e;return(0,t.jsx)(l.Ay,{ref:r,className:(0,h.cn)("flex",a),flagComponent:E,
1countrySelectComponent:b,inputComponent:N,smartCaret:!1,value:o||void 0,onChange:e=>null==n?void 0:n(e||""),...s})});j.displayName="PhoneInput";let N=n.forwardRef((e,r)=>{let{className:a,...n}=e;return(0,t.jsx)(v.p,{className:(0,h.cn)("rounded-e-lg rounded-s-none",a),...n,ref:r})});N.displayName="InputComponent";let b=e=>{let{disabled:r,value:a,options:s,onChange:l}=e,c=n.useRef(null),[d,u]=n.useState(!1);return(0,t.jsxs)(w.AM,{open:d,modal:!0,onOpenChange:u,children:[(0,t.jsx)(w.Wv,{asChild:!0,children:(0,t.jsxs)(i.$,{type:"button",variant:"outline",className:(0,h.cn)("flex gap-1 rounded-e-none rounded-s-lg px-3",{"opacity-50 cursor-not-allowed":r}),disabled:r,children:[(0,t.jsx)(E,{country:a,countryName:a}),(0,t.jsx)(o.A,{className:(0,h.cn)("h-4 w-4 opacity-50",r?"hidden":"flex")})]})}),(0,t.jsx)(w.hl,{className:"w-[300px] p-0",children:(0,t.jsxs)(m,{filter:(e,r)=>{let a=r.toLowerCase();return+!!e.toLowerCase().includes(a)},children:[(0,t.jsx)(f,{placeholder:"Search country..."}),(0,t.jsx)(p,{children:(0,t.jsxs)(_.F,{ref:c,className:"h-72",children:[(0,t.jsx)(g,{children:"No country found."}),(0,t.jsx)(y,{children:s.map(e=>{let{value:r,label:n}=e;return r?(0,t.jsx)(S,{country:r,countryName:n,selectedCountry:a,onChange:l,onSelectComplete:()=>u(!1)},r):null})})]})})]})})]})},S=e=>{let{country:r,countryName:a,selectedCountry:n,onChange:o,onSelectComplete:c}=e;return(0,t.jsxs)(x,{className:"gap-2",onSelect:()=>{o(r),c()},value:"".concat(a," +").concat(l.Ko(r)," ").concat(r),children:[(0,t.jsx)(E,{country:r,countryName:a}),(0,t.jsx)("span",{className:"flex-1 text-sm",children:a}),(0,t.jsx)("span",{className:"text-sm text-foreground/50",children:"+".concat(l.Ko(r))}),(0,t.jsx)(s.A,{className:"ml-auto size-4 ".concat(r===n?"opacity-100":"opacity-0")})]})},E=e=>{let{country:r,countryName:a}=e,n=c.Ay[r];return(0,t.jsx)("span",{className:"flex h-4 w-6 overflow-hidden rounded-sm bg-foreground
1/20 [&_svg:not([class*='size-'])]:size-full",children:n&&(0,t.jsx)(n,{title:a})})}}}]);

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.