PageSourceSearch

https://nippy.host/chunk-S6YWRTHZ.js

js nippy.host collected 2026-10-04 23:40:47 UTC 13,377 bytes, 1 lines download raw bytes

1import{c as W,e as B}from"./chunk-WS5HCER3.js";import{a as k}from"./chunk-M2EJAQYT.js";import{f as F,i as L}from"./chunk-A4HRI5ZL.js";import"./chunk-ZG5SDGH5.js";import"./chunk-UPE3WLWY.js";import{c as S}from"./chunk-QCDLTSES.js";import{i as O}from"./chunk-U57LSSKR.js";import{p as Y}from"./chunk-G7E7HOKW.js";import{a as z}from"./chunk-O7FNTD5W.js";import{m as $}from"./chunk-FFROFSHY.js";import{Bb as m,Db as c,Ja as s,Mc as N,Pb as l,Q as C,Qb as R,Rb as d,Sb as w,Va as I,W as u,X as p,Y as E,Z as T,aa as A,ha as b,jb as V,kb as _,lb as x,mb as D,mc as f,ob as v,pb as y,qa as P,qb as g,rb as o,sb as n,tb as M,zb as h}from"./chunk-NSYNN6ZG.js";import"./chunk-DAQOROHW.js";var j=(t,i)=>i.id;function G(t,i){t&1&&(o(0,"p",2),l(1,"Loading\u2026"),n())}function H(t,i){if(t&1){let e=h();o(0,"div",3)(1,"p"),l(2,"We could not load this page."),n(),o(3,"button",4),m("click",function(){u(e);let r=c();return p(r.retry())}),l(4," Try again "),n()()}}function K(t,i){t&1&&(o(0,"header",5)(1,"h1",6),l(2," There is nothing to choose here "),n(),o(3,"p",7),l(4," This account is not on hold. If you followed a link from an email, the request is already closed. "),n()(),o(5,"a",8),l(6,"Go to your sites"),n())}function X(t,i){if(t&1){let e=h();o(0,"header",9)(1,"h1",6),l(2," This account is deleted "),n(),o(3,"p",7),l(4," Its sites and files are gone, and this email address no longer signs in. When one account is left, its sites come back online. "),n()(),o(5,"button",10),m("click",function(){u(e);let r=c();return p(r.signInAgain())}),l(6," Sign in to another account "),n()}}function J(t,i){if(t&1&&(o(0,"div",12),E(),M(1,"svg",34),T(),o(2,"p",35),l(3),n()()),t&2){let e=c(),a=c(2);s(3),d(" We have your message from ",a.formatDate(e.disputedAt),". Your sites stay paused while we look at it, and we reply by email. You can still use the choices below. ")}}function Q(t,i){if(t&1&&(o(0,"span",36),l(1),n(),l(2)),t&2){let e=i.$implicit,a=i.$index,r=i.$count;s(),R(e.subdomain),s(),d("",a===r-1?"":", "," ")}}function Z(t,i){if(t&1&&(l(0),v(1,Q,3,2,null,null,j)),t&2){let e=c(),a=c(2);d(" ",a.sitesText(e.sites.length),", paused: "),s(),y(e.sites)}}function ee(t,i){t&1&&l(0," No sites. ")}function te(t,i){if(t&1&&(o(0,"div",20)(1,"dt",17),l(2,"Other account"),n(),o(3,"dd",18),l(4),n()()),t&2){let e=i.$implicit;s(4),d(" ",e.email," ")}}function ie(t,i){if(t&1&&(o(0,"span",40),l(1),n(),o(2,"span",41),l(3),n()),t&2){let e=c().$implicit,a=c(4);s(),d("Link sent to ",e.email),s(2),d(" ",a.formatRelativeTime(e.confirmSentAt),". Open that inbox and follow the link. Nothing moves until then.")}}function ne(t,i){if(t&1&&(o(0,"span",42),l(1),n(),o(2,"span",41),l(3," Send the link again."),n()),t&2){let e=c().$implicit;s(),d("We could not send the email to ",e.email,".")}}function oe(t,i){if(t&1&&(o(0,"li",38),_(1,ie,4,2)(2,ne,4,1),n()),t&2){let e=i.$implicit;s(),x(e.confirmSentAt?1:2)}}function ae(t,i){if(t&1){let e=h();o(0,"ul",37),v(1,oe,3,1,"li",38,D),n(),o(3,"button",39),m("click",function(){u(e);let r=c(3);return p(r.combine())}),l(4),n()}if(t&2){let e=c(),a=c(2);s(),y(e.others),s(2),g("disabled",a.working()!==null),s(),d(" ",a.working()==="combine"?"Sending\u2026":"Send the link again"," ")}}function le(t,i){if(t&1&&(o(0,"p",43),l(1),n()),t&2){let e=c(2);s(),w(" You asked to move this account into ",i.email,". To do that, open the email we sent to ",e.email," and confirm. To keep this account instead, use the button. ")}}function re(t,i){if(t&1){let e=h();_(0,le,2,2,"p",43),o(1,"button",44),m("click",function(){u(e);let r=c(3);return p(r.combine())}),l(2),n()}if(t&2){let e,a=c(3);x((e=a.mainElsewhere())?0:-1,e),s(),g("disabled",a.working()!==null),s(),d(" ",a.working()==="combine"?"Sending\u2026":"Combine into this account"," ")}}function se(t,i){if(t&1){let e=h();o(0,"div",29)(1,"p",45),l(2),n(),o(3,"div",46)(4,"button",47),m("click",function(){u(e);let r=c(3);return p(r.deleteAccount())}),l(5),n(),o(6,"button",48),m("click",function(){u(e);let r=c(3);return p(r.deleteArmed.set(!1))}),l(7," Cancel "),n()()()}if(t&2){let e=c(),a=c(2);s(2),d("Delete ",e.email," and everything on it?"),s(2),g("disabled",a.working()!==null),s(),d(" ",a.working()==="delete"?"Deleting\u2026":"Yes, delete this account"," "),s(),g("disabled",a.working()!==null)}}function ce(t,i){if(t&1){let e=h();o(0,"button",49),m("click",function(){u(e);let r=c(3);return p(r.deleteArmed.set(!0))}),l(1," Delete this account "),n()}if(t&2){let e=c(3);g("disabled",e.working()!==null)}}function de(t,i){if(t&1){let e=h();o(0,"label",50),l(1," Your message "),n(),o(2,"textarea",51),m("input",function(r){u(e);let U=c(3);return p(U.disputeMessage.set(r.target.value))}),n(),o(3,"div",46)(4,"button",52),m("click",function(){u(e);let r=c(3);
1return p(r.sendDispute())}),l(5),n(),o(6,"button",48),m("click",function(){u(e);let r=c(3);return p(r.disputeOpen.set(!1))}),l(7," Cancel "),n()()}if(t&2){let e=c(3);s(2),g("value",e.disputeMessage()),V("maxlength",e.disputeMax),s(2),g("disabled",!e.canSendDispute()),s(),d(" ",e.working()==="dispute"?"Sending\u2026":"Send message"," "),s(),g("disabled",e.working()!==null)}}function ue(t,i){if(t&1){let e=h();o(0,"button",39),m("click",function(){u(e);let r=c(3);return p(r.disputeOpen.set(!0))}),l(1),n()}if(t&2){let e=c(),a=c(2);g("disabled",a.working()!==null),s(),d(" ",e.status==="disputed"?"Send another message":"Write to us"," ")}}function pe(t,i){t&1&&(o(0,"div",33),l(1),n()),t&2&&(s(),d(" ",i," "))}function me(t,i){if(t&1&&(o(0,"header",11)(1,"h1",6),l(2," You have more than one Nippy account "),n(),o(3,"p",7),l(4," The Free plan allows one account for each person. Your sites are paused until one account is left. Nothing is deleted unless you choose to delete it. "),n()(),_(5,J,4,1,"div",12),o(6,"div",13)(7,"section",14)(8,"h2",15),l(9,"The accounts"),n(),o(10,"dl",16)(11,"div")(12,"dt",17),l(13,"This account"),n(),o(14,"dd",18),l(15),n(),o(16,"dd",19),_(17,Z,3,1)(18,ee,1,0),n()(),v(19,te,5,1,"div",20,D),n(),o(21,"p",21),l(22," We show only part of the other address, in case it is not yours. "),n()(),o(23,"section",22)(24,"h2",23),l(25,"Choose how to continue"),n(),o(26,"ul",24)(27,"li",25)(28,"h3",26),l(29," Keep this account and move the others into it "),n(),o(30,"p",27),l(31),n(),_(32,ae,5,2)(33,re,3,3),n(),o(34,"li",28)(35,"h3",26),l(36,"Delete this account"),n(),o(37,"p",27),l(38),n(),_(39,se,8,4,"div",29)(40,ce,2,1,"button",30),n(),o(41,"li",31)(42,"h3",26),l(43,"These accounts are not all mine"),n(),o(44,"p",27),l(45," Tell us who the other account belongs to. Your sites stay paused while we look at it, and we reply by email. "),n(),_(46,de,8,5)(47,ue,2,2,"button",32),n()(),_(48,pe,2,1,"div",33),n()()),t&2){let e,a=i,r=c(2);s(5),x(a.status==="disputed"?5:-1),s(10),d(" ",a.email," "),s(2),x(a.sites.length?17:18),s(2),y(a.others),s(12),w(" The sites on ",r.otherEmails()," move here and keep their addresses. We email a link to confirm that the account is yours. ",r.planLine()," "),s(),x(a.mainIsYou?32:33),s(6),w(" Deletes ",a.email,", its ",r.sitesText(a.sites.length)," and all the files. This cannot be undone. When one account is left, its sites come back online. "),s(),x(r.deleteArmed()?39:40),s(7),x(r.disputeOpen()?46:47),s(2),x((e=r.actionError())?48:-1,e)}}function _e(t,i){if(t&1&&_(0,me,49,11),t&2){let e,a=c();x((e=a.review())?0:-1,e)}}var xe=10,ge=1e3,q=class t{api=C(O);authStore=C(L);posthog=C(F);destroyRef=C(A);state=b("loading");review=b(null);working=b(null);actionError=b(null);deleteArmed=b(!1);disputeOpen=b(!1);disputeMessage=b("");disputeMax=ge;formatDate=W;formatRelativeTime=B;mainElsewhere=f(()=>this.review()?.others.find(i=>i.isMain)??null);otherEmails=f(()=>(this.review()?.others??[]).map(i=>i.email).join(" and "));planLine=f(()=>{let i=this.review();if(!i)return"";let e=i.requiredPlan;if(!e)return"The Free plan keeps everything online.";let a=i.freeSites===1?"1 site":`${i.freeSites} sites`;return`This account would then hold ${i.totalSites} sites. The Free plan keeps ${a} online, and the ${e.name} plan keeps ${e.sites}.`});canSendDispute=f(()=>this.disputeMessage().trim().length>=xe&&this.working()===null);constructor(){N(C(P))&&this.load()}sitesText(i){return i===1?"1 site":`${i} sites`}combine(){this.run("combine",()=>this.api.duplicateReviewControllerCombine(),()=>{this.posthog.capture("duplicate_combine_requested",{accounts:(this.review()?.others.length??0)+1})})}sendDispute(){if(!this.canSendDispute())return;let i=this.disputeMessage().trim();this.run("dispute",()=>this.api.duplicateReviewControllerDispute({message:i}),()=>{this.disputeOpen.set(!1),this.disputeMessage.set(""),this.posthog.capture("duplicate_disputed")})}deleteAccount(){this.working()===null&&(this.working.set("delete"),this.actionError.set(null),this.api.duplicateReviewControllerDeleteAccount().pipe(k(this.destroyRef)).subscribe({next:()=>{this.posthog.capture("duplicate_account_deleted"),this.working.set(null),this.state.set("deleted")},error:i=>
1{this.actionError.set(S(i,"Could not delete the account. Try again.")),this.working.set(null)}}))}signInAgain(){this.authStore.logout()}retry(){this.state.set("loading"),this.load()}load(){this.api.duplicateReviewControllerReview().pipe(k(this.destroyRef)).subscribe({next:({review:i})=>{this.show(i),i&&this.posthog.capture("duplicate_review_viewed",{status:i.status,accounts:i.others.length+1})},error:()=>this.state.set("error")})}show(i){this.review.set(i),this.state.set(i?"ready":"none")}run(i,e,a){this.working()===null&&(this.working.set(i),this.actionError.set(null),e().pipe(k(this.destroyRef)).subscribe({next:({review:r})=>{this.show(r),this.working.set(null),a()},error:r=>{this.actionError.set(S(r,"That did not work. Try again.")),this.working.set(null)}}))}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=I({type:t,selectors:[["app-duplicate-accounts-page"]],decls:7,vars:1,consts:[[1,"container-page","py-6","sm:py-12"],[1,"mx-auto","max-w-2xl"],["data-testid","loading",1,"py-16","text-center","text-sm","text-ink-muted"],["role","alert",1,"alert-bold","alert-bold--danger","px-4","py-3","text-sm"],["type","button",1,"mt-1","font-semibold","underline","underline-offset-2",3,"click"],["data-testid","none",1,"flex","flex-col","gap-2"],[1,"text-2xl","font-semibold","tracking-tight","text-ink","sm:text-3xl"],[1,"text-sm","text-ink-muted"],["app-button","","routerLink","/dashboard",1,"mt-6"],["data-testid","deleted",1,"flex","flex-col","gap-2"],["type","button","app-button","",1,"mt-6",3,"click"],[1,"mb-8","flex","flex-col","gap-2"],["role","status","data-testid","disputed",1,"alert-bold","alert-bold--warning","mb-6","flex","items-start","gap-3","px-4","py-3"],[1,"space-y-6"],["aria-labelledby","accounts",1,"card-bold","rounded-2xl","bg-white","p-5","sm:p-6"],["id","accounts",1,"text-base","font-semibold","text-ink"],[1,"mt-4","space-y-4","text-sm"],[1,"text-xs","font-semibold","text-ink-muted"],[1,"mt-1","font-medium","text-ink","[overflow-wrap:anywhere]"],["data-testid","own-sites",1,"mt-1","text-ink-muted"],["data-testid","other-account"],[1,"mt-4","text-xs","text-ink-muted"],["aria-labelledby","choices",1,"card-bold","rounded-2xl","bg-white","p-5","sm:p-6"],["id","choices",1,"text-base","font-semibold","text-ink"],[1,"mt-2","divide-y-2","divide-primary-100"],["data-testid","option-combine",1,"py-5"],[1,"text-sm","font-semibold","text-ink"],[1,"mt-1","text-sm","text-ink-muted"],["data-testid","option-delete",1,"py-5"],["role","alert","data-testid","delete-confirm",1,"alert-bold","alert-bold--danger","mt-3","px-4","py-3"],["type","button","app-button","","variant","danger-ghost","size","sm",1,"mt-3",3,"disabled"],["data-testid","option-dispute",1,"pt-5"],["type","button","app-button","","variant","secondary","size","sm",1,"mt-3",3,"disabled"],["role","alert","data-testid","action-error",1,"alert-bold","alert-bold--danger","mt-5","px-3","py-2","text-sm"],["lucideCircleAlert","","aria-hidden","true",1,"mt-0.5","h-4","w-4","shrink-0"],[1,"text-sm"],[1,"font-mono","text-xs","text-ink"],["data-testid","waiting",1,"inset-soft","mt-3","space-y-2","px-4","py-3","text-sm"],[1,"[overflow-wrap:anywhere]"],["type","button","app-button","","variant","secondary","size","sm",1,"mt-3",3,"click","disabled"],[1,"font-medium","text-ink"],[1,"text-ink-muted"],[1,"font-medium","text-rose-700"],["data-testid","main-elsewhere",1,"mt-3","text-sm","text-ink"],["type","button","app-button","","size","sm",1,"mt-3",3,"click","disabled"],[1,"text-sm","font-medium"],[1,"mt-3","flex","flex-wrap","gap-3"],["type","button","app-button","","variant","danger","size","sm",3,"click","disabled"],["type","button","app-button","","variant","ghost","size","sm",3,"click","disabled"],["type","button","app-button","","variant","danger-ghost","size","sm",1,"mt-3",3,"click","disabled"],["for","dispute-message",1,"mt-3","block","text-xs","font-semibold","text-ink"],["id","dispute-message","rows","4",1,"input-bold","mt-1","w-full","px-3","py-2","text-sm",3,"input","value"],["type","button","app-button","","size","sm",3,"click","disabled"]],template:function(e,a){if(e&1&&(o(0,"section",0)(1,"div",1),_(2,G,2,0,"p",2)(3,H,5,0,"div",3)(4,K,7,0)(5,X,7,0)(6,_e,1,1),n()()),e&2){let r;s(2),x((r=a.state())==="loading"?2:r==="error"?3:r==="none"?4:r==="deleted"?5:r==="ready"?6:-1)}},dependencies:[$,z,Y],encapsulation:2,changeDetection:0})};export{q as DuplicateAccountsPage};

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.