§
    >xÅj-  ã            
       ó(  — U d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZmZmZ d dlmZ  ed¬	¦  «         G d
„ d¦  «        ¦   «         Zi ej         eddd¬¦  «        “ej         eddd¬¦  «        “ej         edddd¬¦  «        “ej         edddd¬¦  «        “ej         edddd¬¦  «        “ej         eddd¬¦  «        “ej         eddd¬¦  «        “ej         ed dd!¬¦  «        “ej         ed"dd#d¬¦  «        “ej         ed$dd%d¬¦  «        “ej         ed&d'd(¬¦  «        “ej         ed)d*d+¬¦  «        “ej         edd,d-d¬¦  «        “ej          ed.d/d0d¬¦  «        “ej!         ed1d1d2d3¬¦  «        “ej"         ed4d5d6d¬¦  «        “Z#e$eef         e%d7<   d8e	d9e&fd:„Z'd;e(e	         d9efd<„Z)d=d>d?d@œZ*dAe(e
         d9efdB„Z+dCedAe(e
         d9e&fdD„Z,dCedEedFe-dGe.d9dHf
dI„Z/d8e	dEed9dHfdJ„Z0d8e	d9e&dHz  fdK„Z1d8e	dEed9dHfdL„Z2dHS )Mé    )Ú	dataclass)ÚTable)ÚText)ÚRichToolkit)ÚCustomDomainÚCustomDomainRecordÚCustomDomainStatus)ÚATTENTION_STATUSESÚ	SetupStepÚget_setup_steps)Úformat_last_updatedT)Úfrozenc                   ó<   — e Zd ZU eed<   eed<   eed<   dZeed<   dS )ÚDomainStatusMetadataÚlabelÚtitleÚdescriptionu   â�³ÚemojiN)Ú__name__Ú
__module__Ú__qualname__ÚstrÚ__annotations__r   © ó    ú]C:\Projects\Historical\venv\Lib\site-packages\fastapi_cloud_cli/commands/domains/rendering.pyr   r      s@   € € € € € € à€J€J�JØ€J€J�JØÐÐÑØ€Eˆ3ÐÐÑÐÐr   r   ÚPendingzWaiting domain verificationzeWe are checking your DNS configuration to confirm domain ownership. This usually takes a few minutes.)r   r   r   zfYour domain is missing the required DNS records. Add the records shown below to continue verification.zNeeds attentionzVerification neededzdThe DNS records were found but don't match the expected values. Double-check your provider settings.u   âš ï¸�)r   r   r   r   zDomain verification timed outzRestart domain verificationzŽWe couldn't verify the domain in time, it's possible the DNS changes may still be propagating. Please restart the domain verification process.zDomain verification revokedzeDomain ownership could no longer be verified. This may happen if DNS records were removed or changed.zSetting up domainzIssuing certificateszIYour domain is being configured and a TLS certificate is being requested.zDomain active, securing TLSzMTraffic is being routed correctly. We're finalizing TLS certificate issuance.zTLS certificate issuedzFA TLS certificate has been issued and is being applied to your domain.zDomain blocked by providerztThis domain has been restricted and domain verification cannot proceed. Please contact support for more information.zDomain setup timed outz‰The domain setup took too long to complete. This is often caused by slow DNS propagation. Please restart the domain verification process.Ú
ValidatingzValidating DNS recordsz`Add the following records to your authoritative DNS server to start sending traffic to your app.ÚMissingzDNS records missingzjYour domain is missing required DNS records. Add the records shown below to your authoritative DNS server.zDNS records invalidz^The DNS records were found but don't match the expected values. Double-check your DNS records.ÚTimeoutzRestart domain setupzXThe domain setup couldn't be validated in time. Please restart the domain setup process.ÚLivez[Your domain is fully configured, secured with TLS, and set up to route traffic to your app.õ   âœ…ÚRemovedzDNS records removedzvThe required DNS records were removed after being valid. Your domain is no longer active and needs to be set up again.ÚDOMAIN_STATUSÚdomainÚreturnc                 ó   — | j         rdS dS )NzZero-downtimeÚStandard)Úis_using_pre_validation©r%   s    r   Úget_setup_mode_labelr+   ¦   s   € ØÔ%ð Øˆàˆ:r   Údomainsc                 óÚ  — t          j        dd¬¦  «        }|                     dd¬¦  «         |                     dd¬¦  «         |                     dd¬¦  «         |                     d	d¬¦  «         |                     t	          dd
¬¦  «        t	          dd
¬¦  «        t	          dd
¬¦  «        t	          d	d
¬¦  «        ¦  «         |                     dddd¦  «         | D ]‰}|                     t	          |j        ¦  «        t	          t          |j                 j        ¦  «        t	          t          |¦  «        ¦  «        t	          t          |j        ¦  «        d¬¦  «        ¦  «         ŒŠ|S )N©r   é   F©ÚpaddingÚpad_edgeÚDomainT©Úno_wrapÚStatusz
Setup modez
Last checkÚbold©ÚstyleÚ Údim)r   ÚgridÚ
add_columnÚadd_rowr   Únamer$   Ústatusr   r+   r   Úsetup_checked_at)r,   Útabler%   s      r   Úget_custom_domains_tablerC   ­   sm  € ÝŒJ˜v°Ð6Ñ6Ô6€EØ	×Ò�X tÐÑ,Ô,Ð,Ø	×Ò�X tÐÑ,Ô,Ð,Ø	×Ò�\¨4ÐÑ0Ô0Ð0Ø	×Ò�\¨4ÐÑ0Ô0Ð0Ø	‡M‚MÝˆX˜VÐ$Ñ$Ô$ÝˆX˜VÐ$Ñ$Ô$Ýˆ\ Ð(Ñ(Ô(Ýˆ\ Ð(Ñ(Ô(ñ	ô ð ð 
‡M‚M�"�b˜"˜bÑ!Ô!Ð!àð 
ð 
ˆØ�ŠÝ�”ÑÔÝ•˜vœ}Ô-Ô3Ñ4Ô4ÝÕ% fÑ-Ô-Ñ.Ô.ÝÕ$ VÔ%<Ñ=Ô=ÀUÐKÑKÔKñ		
ô 	
ð 	
ð 	
ð €Lr   u   1ï¸�âƒ£u   2ï¸�âƒ£u   3ï¸�âƒ£)é   r/   é   Úrecordsc                 ó
  — t          | ¦  «        dk    rÛ| d         }t          dd¬¦  «        }t          j        dd¬¦  «        }|                     d	d
¬¦  «         |                     d¬¦  «         |                     d|j        ¦  «         |                     d|j        �t          |j        ¦  «        n|¦  «         |                     d|j        �t          |j        ¦  «        n|¦  «         |S t          j        dd¬¦  «        }|                     dd
¬¦  «         |                     dd¬¦  «         |                     dd¬¦  «         |                     t          dd¬¦  «        t          dd¬¦  «        t          dd¬¦  «        ¦  «         t          dd¬¦  «        }| D ]a}|                     t          |j        ¦  «        |j        �t          |j        ¦  «        n||j        �t          |j        ¦  «        n|¦  «         Œb|S )NrD   r   zGenerating; check again shortlyz
dim italicr8   r.   Fr0   r;   T)r9   r5   Úfold)ÚoverflowÚtyper?   ÚvalueÚTyper4   ÚNameÚValuer7   )	Úlenr   r   r<   r=   r>   rJ   r?   rK   )rF   ÚrecordÚ
generatingrB   s       r   Ú_get_dns_records_tablerR   Í   s   € Ý
ˆ7�|„|�qÒÐØ˜”ˆÝÐ;À<ÐPÑPÔPˆ
Ý”
 6°EÐ:Ñ:Ô:ˆØ×Ò˜u¨dÐÑ3Ô3Ð3Ø×Ò &ÐÑ)Ô)Ð)Ø�Š�f˜fœkÑ*Ô*Ð*Ø�ŠØØ!'¤Ð!8�D�”ÑÔÐ¸jñ	
ô 	
ð 	
ð 	�ŠØØ"(¤,Ð":�D�”ÑÔÐÀ
ñ	
ô 	
ð 	
ð ˆåŒJ˜v°Ð6Ñ6Ô6€EØ	×Ò�V TÐÑ*Ô*Ð*Ø	×Ò�V fÐÑ-Ô-Ð-Ø	×Ò�W vÐÑ.Ô.Ð.Ø	‡M‚MÝˆV˜6Ð"Ñ"Ô"ÝˆV˜6Ð"Ñ"Ô"ÝˆW˜FÐ#Ñ#Ô#ñô ð õ Ð7¸|ÐLÑLÔL€JØð 
ð 
ˆØ�ŠÝ�”ÑÔØ!'¤Ð!8�D�”ÑÔÐ¸jØ"(¤,Ð":�D�”ÑÔÐÀ
ñ	
ô 	
ð 	
ð 	
ð €Lr   Ústepc                 óŽ   — |s| j         S t          |¦  «        dk    rd|d         j        › d�nd}| j        dk    rd|› d�S d	|› d�S )
NrD   zthis r   z recordzthese recordsÚcombinedz8[bold]To verify ownership and route traffic[/bold], add z at your DNS provider:zAdd )r   rO   rJ   Úid)rS   rF   Úrecords_labels      r   Ú_get_concise_step_descriptionrX   ô   s„   € ð ð  ØÔÐõ -0°©L¬L¸AÒ,=Ð,=Ð(�˜”
”Ð(Ð(Ð(Ð(À?ð ð „w�*ÒÐð5Øð5ð 5ð 5ð	
ð 8�-Ð7Ð7Ð7Ð7r   ÚtoolkitÚnumberÚshow_numberNc                óÂ  — | j         dk    r"|                     d| j        › d�d¬¦  «         d S | j         dk    r| j        ng }|rdnd}|r+|                     d| j        › d�t          |         ¬¦  «         | j         dk    rd S |                     t          | |¦  «        ¦  «         |sd S |                     ¦   «          |                     t          |¦  «        ¦  «         t          d	„ |D ¦   «         ¦  «        }t          d
„ |D ¦   «         ¦  «        }|s|r|                     ¦   «          |r|                     d|¬¦  «         d}|r|                     d|¬¦  «         d S d S )NÚverifiedú[bold]z[/bold]r"   ©r   Úlockedr:   u   ðŸ’¡c              3   ód   K  — | ]+}|j         d k    o|j        pd                     d¦  «        V — Œ,dS )ÚCNAMEr:   ú.N)rJ   rK   Úendswith©Ú.0rP   s     r   ú	<genexpr>z%_render_setup_step.<locals>.<genexpr>%  sW   è è € ð ð àð 	Œ�wÒÐE F¤LÐ$6°B×#@Ò#@ÀÑ#EÔ#Eðð ð ð ð ð r   c              3   ó(   K  — | ]}|j         d v V — ŒdS )>   ÚArb   N)rJ   re   s     r   rg   z%_render_setup_step.<locals>.<genexpr>)  s)   è è € Ð!VÐ!VÀF &¤+°Ð"?Ð!VÐ!VÐ!VÐ!VÐ!VÐ!Vr   zHCopy as shown; remove the trailing dot only if your provider rejects it.z&Cloudflare: use DNS only (gray cloud).)	r@   Úprintr   rF   ÚSTEP_NUMBER_EMOJISrX   Ú
print_linerR   Úany)rS   rY   rZ   r[   rF   Ú
hint_emojiÚhas_trailing_dotÚshow_cloudflare_warnings           r   Ú_render_setup_steprq     sß  € ð „{�jÒ Ð Ø�ŠÐ2˜tœzÐ2Ð2Ð2¸%ˆÑ@Ô@Ð@Øˆà"œk¨XÒ5Ð5ˆdŒlˆl¸2€GØ"Ð.��¨€Jàð 
Ø�ŠØ(�T”ZÐ(Ð(Ð(Ý$ VÔ,ð 	ñ 	
ô 	
ð 	
ð
 „{�hÒÐØˆà‡M‚MÕ/°°gÑ>Ô>Ñ?Ô?Ð?àð Øˆà×ÒÑÔÐØ‡M‚MÕ(¨Ñ1Ô1Ñ2Ô2Ð2åð ð àðñ ô ñ ô Ðõ "Ð!VÐ!VÈgÐ!VÑ!VÔ!VÑVÔVÐàð Ð2ð Ø×ÒÑÔÐàð Ø�ŠØVØð 	ñ 	
ô 	
ð 	
ð ˆ
àð 
Ø�ŠØ4Øð 	ñ 	
ô 	
ð 	
ð 	
ð 	
ð
ð 
r   c                 óÆ   — t          | ¦  «        }t          |¦  «        dk    }t          |d¬¦  «        D ],\  }}|                     ¦   «          t	          ||||¬¦  «         Œ-d S )NrD   )Ústart)rZ   r[   )r   rO   Ú	enumeraterl   rq   )r%   rY   Ústepsr[   rZ   rS   s         r   Úrender_custom_domain_setuprv   <  s„   € õ ˜FÑ#Ô#€EÝ�e‘*”*˜q’.€KÝ! %¨qÐ1Ñ1Ô1ð 
ð 
‰ˆ�Ø×ÒÑÔÐÝØØØØ#ð		
ñ 	
ô 	
ð 	
ð 	
ð
ð 
r   c                 óJ   — | j         rd| j        › d�S | j        t          v rdS d S )NzACorrect the DNS records, then run `fastapi cloud domains restart z`.z?Correct the DNS records shown. We'll check again automatically.)Úsetup_failedr?   r@   r
   r*   s    r   Ú_get_next_actionry   L  sF   € ØÔð 
ð>Ø.4¬kð>ð >ð >ð	
ð „}Õ*Ð*Ð*ØPÐPØˆ4r   c                 óf  — | j         r`d| j        › �}|                     t          |d|› �¬¦  «        d¬¦  «         |                     ¦   «          |                     dd¬¦  «         d S t
          | j                 }|                     t          | j        d¬¦  «        d¬¦  «         |                     ¦   «          |                     d	|j        › d
|j        › �|j	        ¬¦  «         t          | |¦  «         t          | ¦  «        x}r+|                     ¦   «          |                     |¦  «         d S d S )Nzhttps://z
bold link r8   u   ðŸŒ�r_   zYour domain is live.r"   r7   r^   z[/bold]
)Úsetup_successfulr?   rj   r   rl   r$   r@   r   r   r   rv   ry   )r%   rY   ÚurlÚmetadataÚnext_actions        r   Úrender_custom_domain_detailsr   W  sN  € ð Ôð Ø&˜œÐ&Ð&ˆØ�Š•d˜3Ð&8°3Ð&8Ð&8Ð9Ñ9Ô9ÀˆÑHÔHÐHØ×ÒÑÔÐØ�ŠÐ,°EˆÑ:Ô:Ð:Øˆå˜Vœ]Ô+€HØ‡M‚M•$�v”{¨&Ð1Ñ1Ô1¸€MÑ@Ô@Ð@Ø×ÒÑÔÐØ‡M‚MØ@�”Ð@Ð@¨(Ô*>Ð@Ð@ØŒnð ñ ô ð õ ˜v wÑ/Ô/Ð/Ý& vÑ.Ô.Ð.€{ð #Ø×ÒÑÔÐØ�Š�kÑ"Ô"Ð"Ð"Ð"ð#ð #r   )3Údataclassesr   Ú
rich.tabler   Ú	rich.textr   Úrich_toolkitr   Úfastapi_cloud_cli.apir   r   r	   Ú)fastapi_cloud_cli.commands.domains._setupr
   r   r   Úfastapi_cloud_cli.utils.datesr   r   Úinternal_dcv_pendingÚinternal_dcv_missingÚinternal_dcv_invalidÚinternal_dcv_timeoutÚinternal_dcv_revokedÚexternal_dcv_pendingÚexternal_dcv_proxiedÚexternal_dcv_securedÚexternal_dcv_blockedÚexternal_dcv_timeoutÚorigin_setup_pendingÚorigin_setup_missingÚorigin_setup_invalidÚorigin_setup_timeoutÚorigin_setup_successÚorigin_setup_removedr$   Údictr   r   r+   ÚlistrC   rk   rR   rX   ÚintÚboolrq   rv   ry   r   r   r   r   ú<module>r›      sð  ðØ !Ð !Ð !Ð !Ð !Ð !Ð !à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 >Ð =Ð =Ð =Ð =Ð =ð €�$ÐÑÔðð ð ð ð ñ ô ñ ÔððGAØÔ+Ð-AÐ-AØØ+ð0ð	.ñ .ô .ðGAð Ô+Ð-AÐ-AØØ+ð4ð	.ñ .ô .ðGAð" Ô+Ð-AÐ-AØØ#ð3ð ð.ñ .ô .ð#GAð4 Ô+Ð-AÐ-AØ-Ø+ðXð ð.ñ .ô .ð5GAðF Ô+Ð-AÐ-AØ+Ø#ð/ð ð.ñ .ô .ðGGAðX Ô+Ð-AÐ-AØ!Ø$àWð	.ñ .ô .ðYGAðf Ô+Ð-AÐ-AØ+Ø$à[ð	.ñ .ô .ðgGAðt Ô+Ð-AÐ-AØ&Ø$àTð	.ñ .ô .ðuGAðB Ô+Ð-AÐ-AØ*Ø#ð;ð ð.ñ .ô .ðCGAðT Ô+Ð-AÐ-AØ&Ø+ðOð ð.ñ .ô .ðUGAðf Ô+Ð-AÐ-AØØ&ð+ð	.ñ .ô .ðgGAðv Ô+Ð-AÐ-AØØ#ð0ð	.ñ .ô .ðwGAðF Ô+Ð-AÐ-AØØ#ð-ð ð.ñ .ô .ðGGAðX Ô+Ð-AÐ-AØØ$ð$ð ð.ñ .ô .ðYGAðj Ô+Ð-AÐ-AØØð#ð ð.ñ .ô .ðkGAð| Ô+Ð-AÐ-AØØ#ð=ð ð.ñ .ô .ð}GA€ˆtÐ&Ð(<Ð<Ô=ð Gð Gñ GðT ð °#ð ð ð ð ð d¨<Ô&8ð ¸Uð ð ð ð ð4 ØØðð Ð ð$ DÐ);Ô$<ð $Àð $ð $ð $ð $ðN8Ø
ð8àÐ$Ô%ð8ð 	ð8ð 8ð 8ð 8ð$3
Ø
ð3
àð3
ð ð	3
ð
 ð3
ð 
ð3
ð 3
ð 3
ð 3
ðl
Øð
àð
ð 
ð
ð 
ð 
ð 
ð ˜\ð ¨c°D©jð ð ð ð ð#Øð#àð#ð 
ð#ð #ð #ð #ð #ð #r   