U e@s>ddlmZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZdZe jZejddddddZdddddZ ej!ddddddZ"ddddd d!Z#ddd"d#d$d%d&Z$dS)') annotationsN) Generator)Sequence) lang_base) envcontext)PatchesT)UNSET)Var)bin_dir)Prefix) cmd_output) cmd_output_b)rmtreeZnode_env)maxsizestr)returncCs0tjdkrtjStdddDr&dStjSdS)Nwin32css|]}t|VqdSN)rZ exe_exists).0exerG/opt/hc_python/lib/python3.8/site-packages/pre_commit/languages/node.py !sz&get_default_version..)nodenpmsystem)sysplatformCDEFAULTallrrrrget_default_versions  r"r)venvrc Cstjdkr0tdd|\}}}|d}d}n tjdkrHt|}d}n|}d}d|fd |fd |fd tfd tfd tj||dfdt|tj t dfffS)NcygwinZcygpathz-wz\binlibrScriptsZNODE_VIRTUAL_ENVZNPM_CONFIG_PREFIXZnpm_config_prefixZNPM_CONFIG_USERCONFIGZnpm_config_userconfigZ NODE_PATH node_modulesPATH) rrr stripr rospathjoinpathsepr )r#_Zwin_venvZinstall_prefixlib_dirrrr get_env_patch's"  r0r zGenerator[(None, None, None)])prefixversionrc cs0t|t|}tt| dVW5QRXdSr)renvironment_dirENVIRONMENT_DIRrr0)r1r2envdirrrrin_env=sr6z str | Nonec CsZt||Ftdddd\}}}|dkr>d|W5QRSW5QRdSW5QRXdS)Nrz --versionF)checkrz`node --version` returned )r6r )r1r2retcoder.rrr health_checkDs  r9z Sequence[str]None)r1r2additional_dependenciesrc Cs|dstt|t|}tjdkr8dtj |}tj ddd|g}|t j kr`| d|gt|t||xd}t||td d |jd \}}}||}d d d |f|}t|||drt|dt|W5QRXdS)Nz package.jsonrz\\?\z -mnodeenvz --prebuiltz --clean-srcz-n)rinstallz --include=devz--include=prodz--ignore-prepublishz --no-progressz --no-saverpack)cwdr<z-gr')existsAssertionErrorrr3r4rrr*r+normpath executablerr extendr r6Z setup_cmdr Z prefix_dirr)rremove) r1r2r;r5cmdZlocal_install_cmdr.pkgr<rrrinstall_environmentMs$      rG)% __future__r contextlib functoolsr*rtypingrrZpre_commit.constants constantsrZ pre_commitrZpre_commit.envcontextrrrr Zpre_commit.languages.pythonr Zpre_commit.prefixr Zpre_commit.utilr r rr4Zbasic_run_hookZrun_hook lru_cacher"r0contextmanagerr6r9rGrrrrs4