o
    @|äaù   ã                   @   s0   d dl Z ddgZdZdd„ ZG dd„ deƒZdS )é    NÚjsminÚJavascriptMinifyz3.0.1c                 K   s2   t j}|| ƒ}|ƒ }t||fi |¤Ž ¡  | ¡ S )z=
    returns a minified version of the javascript string
    )ÚioÚStringIOr   ÚminifyÚgetvalue)ÚjsÚkwargsÚklassÚinsÚouts© r   ú@/var/www/html/env/lib/python3.10/site-packages/jsmin/__init__.pyr   #   s
   c                   @   sD   e Zd ZdZddd„Zddd„Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )r   zO
    Minify an input stream of javascript, writing
    to an output stream
    Nú'"c                 C   s   || _ || _|| _d S )N)r   r   Úquote_chars)ÚselfÚinstreamÚ	outstreamr   r   r   r   Ú__init__4   s   
zJavascriptMinify.__init__c                    s¦  |r|r||ˆ _ ˆ _dˆ _dˆ _‡ fdd„}ˆ j j}d}|ˆ _ddˆ j }}|| ˆ j }|| ˆ j }	|ˆ _|	ˆ _d}
d}d}d}g }d	}d	}|d
ƒ}|�rQ|d
ƒ}|r‡| 	|¡ ||kr†d}t
|d d… ƒD ]}|dkrr n|d
7 }qj|d dkr†d}|d |¡ƒ n¯|dv r•ˆ  |||
¡\}}
n¡|dk rÃ||v s¡|dkr¬||v s©|dkr¬d}nŠ|dv r·||kr·d}nˆ jrÂ|dkrÂ|dƒ ns|dk�r|rÎ|dƒ |dkräˆ  ||¡}d}ˆ  |||
¡\}}
nR|dkrûˆ  ||¡ |d
ƒ}||v rød}|}n;|dv �sˆ j�rˆ  ||¡ |d
ƒ}n'|dƒ n"|
�r|dƒ d}
d}|�r(d}|dƒ ||ƒ |ˆ jv �r6|}g }|dk�r=|}|dk�rG|d
7 }nd}|}|}|sQd S d S )NFÚ c                    sZ   | dv rˆ  j | 7  _ ˆ j dkˆ _ndˆ _ ˆ jo| dk ˆ _ˆ j | ¡ ˆ jr+dˆ _ d S d S )NÚreturnr   ú!)Ú
return_bufÚ	is_returnr   Úwrite)Úchar©r   r   r   r   @   s   
ÿz&JavascriptMinify.minify.<locals>.writezAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$\z{[(+-z}])+-/r   ú;é   éÿÿÿÿú\é   ú
r   ú~Tz-+ú/ú Ú
Ú*z{(,=:[?!&|;)r   r   r   r   ÚreadÚspace_stringsr   Únewlinestart_stringsÚnewlineend_stringsÚappendÚreversedÚjoinÚnewlineÚline_commentÚblock_commentÚregex_literal)r   r   r   r   r(   r)   ÚstartersÚendersr*   r+   Ú
do_newlineÚdo_spaceÚescape_slash_countÚin_quoteÚ	quote_bufÚpreviousÚprevious_non_spaceÚnext1Únext2Ú
numslashesÚcr   r   r   r   9   s®   

€
ÿ€

ÿ




µzJavascriptMinify.minifyc                 C   sª   |dksJ ‚d| _ | jj}| jj}d}|dƒ |}|rO|dks!|rO||ƒ |dkr0||dƒƒ n|dkr=||dƒƒ d}n|dkrCd}|dƒ}|rO|dks!|s!|dƒ d S )	Nr$   r   Fr    r   ú[Tú])r   r   r(   r   r   )r   r<   r=   r(   r   Úin_char_classÚnextr   r   r   r2   ¯   s&   ÷zJavascriptMinify.regex_literalc                 C   sh   ||  krdksJ ‚ J ‚| j j}|r"|dvr"|dƒ}|r"|dvs|r2|dv r2|dƒ}|r2|dv s(|S )Nr$   r"   r   )r   r(   )r   r<   r=   r(   r   r   r   r0   É   s   ÿÿzJavascriptMinify.line_commentc                 C   s’   |dksJ ‚|dksJ ‚| j j}|dƒ}|dƒ}d}|dks"|dkr4||7 }|}|dƒ}|dks"|dks"| d¡rG| j |¡ | j d¡ d S d S )Nr$   r'   r   z/*z/*!z*/
)r   r(   Ú
startswithr   r   )r   r<   r=   r(   Úcomment_bufferr   r   r   r1   Õ   s   ý
ýzJavascriptMinify.block_commentc                 C   sr   | j j}|r5|| jv s|dkr5	 |dk r |dƒ}|s	 ||fS n|| jv s-|dks-|dkr/d}	 ||fS q||fS )Nr#   r   r   r$   T)r   r(   r+   r*   )r   r;   r=   r5   r(   r   r   r   r/   ë   s$   
ø
õzJavascriptMinify.newline)NNr   )NN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r2   r0   r1   r/   r   r   r   r   r   .   s    

v)r   Ú__all__Ú__version__r   Úobjectr   r   r   r   r   Ú<module>   s
   