
    @OOf"                         d dl Z d dlmZ d dlmZ d dlZd dlmZ d dlZ	d dl
Z	d dlZ	d dlZ	 G d d      Z G d de      Z G d	 d
e      Z G d d      Z G d dej"                        Zy)    N)Sequence)
NamedTuple)calc_coordsc                   <    e Zd Zej                  ddedefd       Zy)	Completerforwardreturnc                     t               N)NotImplementedError)selfr   s     l/var/www/premiumrankchecker/venv/lib/python3.12/site-packages/mitmproxy/tools/console/commander/commander.pycyclezCompleter.cycle   s    !##    NT)__name__
__module____qualname__abcabstractmethodboolstrr    r   r   r   r      s(    $T $S $ $r   r   c                   8    e Zd Zdedee   ddfdZddedefdZy)	ListCompleterstartoptionsr	   Nc                     || _         g | _        |D ]/  }|j                  |      s| j                  j                  |       1 | j                  j	                          d| _        y )N)r   r   
startswithappendsortpos)r   r   r   os       r   __init__zListCompleter.__init__   sX    
 
"$ 	'A||E"##A&	' 	r   r   c                 &   | j                   s| j                  S | j                  dk(  r"|rdnt        | j                         dz
  | _        n0|rdnd}| j                  |z   t        | j                         z  | _        | j                   | j                     S )Nr   r      )r   r   r#   len)r   r   deltas      r   r   zListCompleter.cycle"   sq    ||::88r>#qT\\):Q)>DH AbE5(C,==DH||DHH%%r   r   )r   r   r   r   r   r%   r   r   r   r   r   r   r      s:     # 
	&T &S &r   r   c                   P    e Zd ZU eed<   eej                  j                     ed<   y)CompletionState	completerparsedN)	r   r   r   r   __annotations__r   	mitmproxycommandParseResultr   r   r   r+   r+   -   s    Y&&2233r   r+   c                       e Zd Zddej                  j
                  deddfdZede	fd       Z
e
j                  dd       Z
deddfd	Zd
 ZddZddZddeddfdZddZddZdeddfdZy)CommandBuffermasterr   r	   Nc                 b    || _         || _        t        | j                        | _        d | _        y r   )r4   textr(   _cursor
completion)r   r4   r   s      r   r%   zCommandBuffer.__init__3   s&    	499~26r   c                     | j                   S r   )r7   r   s    r   cursorzCommandBuffer.cursor:   s    ||r   c                     |dk  rd| _         y |t        | j                        kD  rt        | j                        | _         y || _         y Nr   )r7   r(   r6   )r   xs     r   r;   zCommandBuffer.cursor>   s6    q5DLTYYtyy>DLDLr   r6   c                 f    || _         t        | j                         | _        | j                          y r   )r6   r(   r7   render)r   r6   s     r   set_textzCommandBuffer.set_textG   s!    	499~r   c                    | j                   j                  j                  | j                        \  }}g }|s|j	                  d       |S |D ]  }|j
                  rc|j                  t        j                  j                  k(  r|j	                  d|j                  f       T|j	                  d|j                  f       r|j                  s|j	                  d|j                  f        |rX|d   j                  t        j                  j                  k7  r|j	                  d       |D ]  }|j	                  d| df        |S )	N)r6    commander_commandr6   commander_invalidr   )r6    commander_hintrF   )r4   commandsparse_partialr6   r!   validtyper/   typesCmdvalueSpace)r   parts	remainingretpparams         r   r@   zCommandBuffer.renderL   s   ;;//==diiHy JJ|$" 
  ?77vv!4!44

$7#AB

FAGG#45WWJJ 3QWW=>? 9>>Y__%:%::JJ}-& @EJJ 0UG1+>?@ 
r   c                 ,    | j                   dz
  | _         y Nr'   r;   r:   s    r   leftzCommandBuffer.lefte       kkAor   c                 ,    | j                   dz   | _         y rV   rW   r:   s    r   rightzCommandBuffer.righth   rY   r   r   c           
      t   | j                   s| j                  j                  j                  | j                  d | j
                         \  }}|rN|d   j                  t        j                  j                  k7  r$|d   j                  }|d   j                  }|d d }n|r|d   j                  }d}|}ny t        j                  j                  j                  |d       }|rAt        t        ||j                  | j                  j                  ||            |      | _         | j                   r| j                   j                  j!                  |      }dj#                  | j                   j$                  D 	cg c]  }	|	j                   c}	      |z   }
|
| _        t'        | j                        | _        y y c c}	w )Nr   r   rC   )r,   r-   )r8   r4   rH   rI   r6   r;   rK   r/   rL   rO   rN   CommandTypesgetr+   r   r,   r   joinr-   r(   )r   r   rP   rQ   type_to_completecycle_prefixr-   ctnxtibufs              r   cycle_completionzCommandBuffer.cycle_completionk   se   #{{33AA		-DKK( E9 r9??+@+@@#(9>> $Rys#,Q<#4#4 !--112BDIB"1+$ KK002BL "# ??//++11':C''DOO,B,BCq177CDsJCDIdii.DK	 Cs   5F5c                     | j                   dk(  ry | j                  d | j                   dz
   | j                  | j                   d  z   | _        | j                   dz
  | _         d | _        y )Nr   r'   )r;   r6   r8   r:   s    r   	backspacezCommandBuffer.backspace   sV    ;;!II/a0499T[[]3KK	kkAor   c                     | j                   t        | j                        k(  ry | j                  d | j                    | j                  | j                   dz   d  z   | _        d | _        y rV   )r;   r(   r6   r8   r:   s    r   deletezCommandBuffer.delete   sO    ;;#dii.(IIm,tyyq9J/KK	r   kc                 $   |dk(  r+| j                   d| j                   j                         dk(  ry| j                   d| j                   |z   | j                   | j                  d z   | _         | xj                  t        |      z  c_        d| _        y)z-
        Inserts text at the cursor.
        rF   r   rC   N)r6   r;   stripr(   r8   )r   rk   s     r   insertzCommandBuffer.insert   su     8		!dkk288:b@IIm,q0499T[[]3KK	s1vr   )rC   r	   Nr   )r   r   r   r/   r4   Masterr   r%   propertyintr;   setterrA   r@   rX   r[   r   rf   rh   rj   rn   r   r   r   r3   r3   2   s    7y//66 7s 7D 7    ]] S T 
2&&) ) )@  r   r3   c                        e Zd ZdZdej
                  j                  deddf fdZddZ	ddZ
ddej                  fd	Zdeeef   fd
ZdefdZ xZS )CommandEditz: r4   r6   r	   Nc                     t         |   t        j                  | j                               || _        d| _        d| _        t        ||      | _	        | j                          y )NFrC   )superr%   urwidTextleaderr4   active_filter
filter_strr3   cbufupdate)r   r4   r6   	__class__s      r   r%   zCommandEdit.__init__   sJ    DKK01"!&$/	r   c                 J
   |dk(  r| j                   j                          n|dk(  s|dk(  rd| j                   _        n|dk(  s|dk(  r0t        | j                   j                        | j                   _        n|dk(  rL| j                   j                  j                  dd| j                   j                        | j                   _        nJ|d	k(  rt| j                   j                  j                  d| j                   j                  d
z         }|dk(  rt        | j                   j                        }|| j                   _        n|dk(  r| j                   j                  }| j                   j                  j                  dd| j                   j                  d
z
        }|dk(  r0| j                   j                  | j                   j                  d  }d}nX| j                   j                  | j                   j                  d  }| j                   j                  d| }| d| }|||z
  z
  d
z   }| j                   j                  |       || j                   _        n|dk(  rj| j                   j                          | j                   j                  dk(  rd| _	        | j                  j                  j                  dd       d| _        nM|dk(  s|dk(  r| j                   j                          n'|dk(  s|dk(  r| j                   j                          n|dk(  s|dk(  r| j                  du r\d| _	        | j                   j                  | _        | j                  j                  j                  d| j                   j                         | j                  j                  j!                  d      }	t#        | j                  |	      | _         nK|dk(  s|dk(  r| j                   j                  }
| j                  j                  j!                  d      }	|	dk(  r{|
| j                  k(  rt#        | j                  |
      | _         nd| _	        | j                  j                  j                  dd       d| _        t#        | j                  d      | _         nt#        | j                  |	      | _         nj|dk(  r| j                   j%                  d       nI|dk(  r| j                   j%                          n)t        |      d
k(  r| j                   j'                  |       | j)                          y )Nrj   zctrl ahomer   zctrl eendzmeta brF   zmeta fr'   r   zctrl wrh   rC   Fzcommands.history.filterrX   zctrl br[   zctrl fupzctrl pTzcommands.history.prevdownzctrl nzcommands.history.nextz	shift tabtab)r}   rj   r;   r(   r6   rfindfindrA   rh   r{   r4   rH   callr|   rX   r[   executer3   rf   rn   r~   )r   sizekeyr#   prev_cursornew_text
cursor_pos	txt_after
txt_beforecmdprev_cmds              r   keypresszCommandEdit.keypress   s   (?IIH_v DIIH_u"499>>2DIIH_#yy~~33CDII<L<LMDIIH_))..%%c499+;+;a+?@Cby$))..)"DIIH_))**K))..&&sAtyy/?/?!/CDCby99>>$))*:*:*<=
 IINN499+;+;+=>	!YY^^Ac2
(\9+6(K#,=>B
IIx()DIIKII!yy~~#%*"$$))*CRH"$F]cXoIINNG^shIIOOD[C8O!!U*%)""&))..$$))*CTYY^^T++&&../FGC%dkk37DIF]cXoyy~~H++&&../FGCbyt. -dkk8 DDI).D&KK((--.GL&(DO -dkk2 >DI)$++s;	KII&&u-E\II&&(X]IIS!r   c                     | j                   j                  | j                  | j                  j	                         g       y r   )_wrA   rz   r}   r@   r:   s    r   r~   zCommandEdit.update   s*    $++tyy'7'7'9:;r   c                     |\  }| j                   j                  |f      }t        j                  |      }| j	                  |f      |_        |S r   )r   r@   rx   CompositeCanvasget_cursor_coordsr;   )r   r   focusmaxcolcanvs        r   r@   zCommandEdit.render   sF    	ww~~vi($$T*,,fY7r   c                     | j                   j                  t        | j                        z   }| j                  j                  |d         }t        | j                  j                         d   ||      \  }}||fS r=   )r}   r;   r(   rz   r   get_line_translationr   get_text)r   r   rS   transr>   ys         r   r   zCommandEdit.get_cursor_coords   sd    IIs4;;//,,T!W5477++-a0%;1!tr   c                 .    | j                   j                  S r   )r}   r6   r:   s    r   get_edit_textzCommandEdit.get_edit_text  s    yy~~r   ro   )F)r   r   r   rz   r/   r4   rp   r   r%   r   r~   rx   Canvasr@   tuplerr   r   r   __classcell__)r   s   @r   ru   ru      sj    Fy//66 c d @D<5<< sCx s r   ru   )r   collections.abcr   typingr   rx   urwid.text_layoutr   mitmproxy.commandr/   mitmproxy.flowmitmproxy.mastermitmproxy.typesr   r   r+   r3   
WidgetWrapru   r   r   r   <module>r      sc    
 $   )    $ $&I &24j 4
q qh^%"" ^r   