
    wi                    P   d dl mZ d dlZd dlZd dlZd dlZ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 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 d dlmZ d dlmZ d dlmZ dZej        Z ej        d          d#d            Zd$dZ ej!        d%d            Z"d&dZ#d'd"Z$dS )(    )annotationsN)	Generator)Sequence)	lang_base)
envcontext)PatchesT)UNSET)Var)bin_dir)Prefix)
cmd_output)cmd_output_b)rmtreenode_env   )maxsizereturnstrc                     t           j        dk    rt          j        S t	          d dD                       rdS t          j        S )Nwin32c              3  >   K   | ]}t          j        |          V  d S N)r   
exe_exists).0exes     i/root/.openclaw/workspace/chatterbox_venv_py311/lib/python3.11/site-packages/pre_commit/languages/node.py	<genexpr>z&get_default_version.<locals>.<genexpr>!   s-      BB3Y!#&&BBBBBB    )nodenpmsystem)sysplatformCDEFAULTall r   r   get_default_versionr(      sG     |wy 
BB/BBB	B	B xyr   venvr   c                   t           j        dk    r/t          dd|           \  }}}|                                 d}d}n&t           j        dk    rt	          |           }d}n| }d}d| fd	|fd
|fdt
          fdt
          fdt          j                            | |d          fdt	          |           t          j	        t          d          fffS )Ncygwincygpathz-wz\binlibr   ScriptsNODE_VIRTUAL_ENVNPM_CONFIG_PREFIXnpm_config_prefixNPM_CONFIG_USERCONFIGnpm_config_userconfig	NODE_PATHnode_modulesPATH)r"   r#   r   stripr   r	   ospathjoinpathsepr
   )r)   _win_venvinstall_prefixlib_dirs        r   get_env_patchr@   '   s    
|x#ItT::8Q%^^--333		 	  	T"	n-	n-	 %(	 %(	bgll4.AAB	'$--S[[9: r   prefixr   versionGenerator[None]c              #     K   t          j        | t          |          }t          t	          |                    5  d V  d d d            d S # 1 swxY w Y   d S r   )r   environment_dirENVIRONMENT_DIRr   r@   )rA   rB   envdirs      r   in_envrH   =   s      &vHHF	M&))	*	*                   s   AAA
str | Nonec                    t          | |          5  t          ddd          \  }}}|dk    rd| cd d d            S 	 d d d            d S # 1 swxY w Y   d S )Nr   z	--versionF)checkr   z`node --version` returned )rH   r   )rA   rB   retcoder<   s       r   health_checkrM   D   s    		 	   $V[FFFAa<<999       
                  s   !AAAAadditional_dependenciesSequence[str]Nonec                &   |                      d          sJ t          j        | t          |          }t          j        dk    r"dt          j                            |           }t          j	        ddd|g}|t          j        k    r|                    d|g           t          |  t          | |          5  d}t          j        | |           t!          d	d
| j                  \  }}}|                     |                                          }d	dd|g|R }t          j        | |           |                      d          r"t'          |                     d                     t          j        |           d d d            d S # 1 swxY w Y   d S )Nzpackage.jsonr   z\\?\z	-mnodeenvz
--prebuiltz--clean-srcz-n)r    installz--include=devz--include=prodz--ignore-prepublishz--no-progressz	--no-saver    pack)cwdrR   z-gr5   )existsr   rE   rF   r"   r#   r8   r9   normpath
executabler$   r%   extendr   rH   	setup_cmdr   
prefix_dirr7   r   remove)	rA   rB   rN   rG   cmdlocal_install_cmdr<   pkgrR   s	            r   install_environmentr_   M   s    ==(((((&vHHF |w3))&1133>;mV
LC!)

D'?####		 	   
 	F$5666uf&2CDDD	3kk#))++&&)T3I1HIIFG,,, ==(( 	06;;~..///
	#'                 s   6CFF
F
)r   r   )r)   r   r   r   )rA   r   rB   r   r   rC   )rA   r   rB   r   r   rI   )rA   r   rB   r   rN   rO   r   rP   )%
__future__r   
contextlib	functoolsr8   r"   collections.abcr   r   pre_commit.constants	constantsr$   
pre_commitr   pre_commit.envcontextr   r   r	   r
   pre_commit.languages.pythonr   pre_commit.prefixr   pre_commit.utilr   r   r   rF   basic_run_hookrun_hook	lru_cacher(   r@   contextmanagerrH   rM   r_   r'   r   r   <module>ro      s   " " " " " "         				 



 % % % % % % $ $ $ $ $ $                         , , , , , , * * * * * * ' ' ' ' ' ' % % % % % % / / / / / / $ $ $ $ $ $ & & & & & & ( ( ( ( ( ( " " " " " "# Q	 	 	  	   ,       ! ! ! ! ! !r   