ó
    EñiQ#  ã                  óÎ  • % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
rS SKJrJrJrJrJrJrJrJr  S SKJr  S SKJr  S SKJrJr  SSKJr  SS	KJrJ r   SS
K!J"r"J#r#J$r$J%r%  \RL                  " \'5      r(S\)S'   \$" 5       r*S\)S'   \#" \*S9r+S\)S'   \"" SSS9r,\"" SSS9r-\R\                  R_                  SSS9r0\Rb                  " S5      r2S,S jr3S-S jr4S.S jr5S.S jr6S/S jr7S0S jr8 " S S\5      r9 " S S \5      r: " S! S"\5      r;\\9\:\;4   r<S1S# jr=        S2S$ jr>S3S% jr?\" SS&9S4S' j5       r@S5S( jrAS6S) jrB\R†                  S*.       S7S+ jjrDg)8é    )ÚannotationsN)ÚAnyÚDictÚTupleÚUnionÚMappingÚOptionalÚ
NamedTupleÚcast)ÚPath)Ú	lru_cache)ÚLiteralÚassert_neveré   )Úerrors)ÚTargetÚcheck_target)Úenv_to_boolÚget_bin_dirÚget_env_dirÚmaybe_decodezlogging.LoggerÚlogr   ÚENV_DIR)Úenv_dirÚBINARIES_DIRÚPYRIGHT_PYTHON_GLOBAL_NODET)ÚdefaultÚPYRIGHT_PYTHON_NODEJS_WHEELÚPYRIGHT_PYTHON_NODE_VERSIONz\d+\.\d+\.\d+c                 óN   • [         R                  " 5       R                  5       S:H  $ )NÚwindows)ÚplatformÚsystemÚlower© ó    ÚI/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pyright/node.pyÚ_is_windowsr(      s   € Ü�?Š?Ó×"Ñ"Ó$¨	Ñ1Ð1r&   c                ó2   • [        5       (       d  gU S:X  a  gg)NÚ Únodez.exez.cmd)r(   ©Útargets    r'   Ú_postfix_for_targetr.   #   s   € Ü�=‰=Øà�ÓØØr&   c                ót  • [         R                  SU 5        [        U 5      n[         R                  SU5        UR                  5       (       a"  [        (       d  [         R                  SU5        O [         R                  SU5        [        5         UR                  5       (       d  [        R                  " XS9eU$ )NzChecking for nodeenv %s binaryzUsing %s path for binaryz2Binary at %s exists, skipping nodeenv installationz7Installing nodeenv as a binary at %s could not be found)Úpathr-   )r   ÚdebugÚ_get_nodeenv_pathÚexistsÚNODE_VERSIONÚ_install_node_envr   ÚBinaryNotFound©r-   r0   s     r'   Ú_ensure_node_envr8   ,   s~   € Ü‡I�IÐ.°Ô7ä˜VÓ$€DÜ‡I�IÐ(¨$Ô/à‡{�{‡}�}Ÿ\š\Ü�	‰	ÐFÈÕMä�	‰	ÐKÈTÔRÜÔà�;‰;�=‰=Ü×#Ò#¨Ñ=Ð=Ø€Kr&   c                óD   • [         R                  U [        U 5      -   5      $ ©N)r   Újoinpathr.   r,   s    r'   r2   r2   =   s   € Ü× Ñ  Ô*=¸fÓ*EÑ!EÓFÐFr&   c                óF  • [         R                  SU 5        U [        U 5      -   n[        R                  " U5      nUbN  [         R                  SU5        [        U5      nUR                  5       (       a  [         R                  SU5        U$ [         R                  SU 5        g )Nz%Checking for global target binary: %szFound global binary at: %szGlobal binary exists at: %sz"Global target binary: %s not found)r   r1   r.   ÚshutilÚwhichr   r3   )r-   r0   r>   s      r'   Ú_get_global_binaryr?   A   s~   € Ü‡I�IÐ5°vÔ>àÔ'¨Ó/Ñ/€Dä�LŠL˜Ó€EØÑÜ�	‰	Ð.°Ô6ä�E‹{ˆØ�;‰;�=‰=Ü�I‰IÐ3°UÔ;ØˆKä‡I�IÐ2°FÔ;Ør&   c                 ó¨  • [         R                  S[        5        [        R                  SS/n [
        (       a(  [         R                  S[
         35        U S[
        S/-  n U R                  [        [        5      5        [         R                  SU 5         [        R                  " U SS	9  g ! [        R                   a  n[        S
5      UeS nAff = f)NzInstalling nodeenv to %sz-mÚnodeenvz#Using user specified node version: z--nodez--forcezRunning command with args: %sT)ÚcheckzTnodeenv failed; for more reliable node.js binaries try `pip install pyright[nodejs]`)r   r1   r   ÚsysÚ
executabler4   ÚappendÚstrÚ
subprocessÚrunÚCalledProcessErrorÚRuntimeError)ÚargsÚexcs     r'   r5   r5   S   s¦   € Ü‡I�IÐ(¬'Ô2Ü�N‰N˜D )Ð,€Dß‚|Ü�	‰	Ð7¼°~ÐFÔGØ�œ<¨Ð3Ñ3ˆØ‡K�K””G“ÔÜ‡I�IÐ-¨tÔ4ðÜ�Š�t 4Ó(øÜ×(Ñ(ó ÜØbó
àð	ûðús   ÂB, Â,CÃ CÃCc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚGlobalStrategyéd   zLiteral['global']Útyper   r0   r%   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r%   r&   r'   rN   rN   d   s   ‡ Ø
ÓØ
†Jr&   rN   c                  ó    • \ rS rSr% S\S'   Srg)ÚNodeJSWheelStrategyéi   zLiteral['nodejs_wheel']rP   r%   NrQ   r%   r&   r'   rY   rY   i   s   ‡ Ø
!Ö!r&   rY   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚNodeenvStrategyém   zLiteral['nodeenv']rP   r   r0   r%   NrQ   r%   r&   r'   r\   r\   m   s   ‡ Ø
ÓØ
†Jr&   r\   c                óV  • [         (       a>  [        R                  R                  S5      b  [        R                  S5        [        SS9$ [        (       a.  [        U 5      nUb   [        R                  SU 5        [        SUS9$ [        R                  S5        [        S[        U 5      S9$ )	NÚnodejs_wheelz1Using nodejs_wheel package for resolving binaries)rP   zUsing global %s binaryÚglobal)rP   r0   z!Installing binaries using nodeenvrA   )ÚUSE_NODEJS_WHEELÚ	importlibÚutilÚ	find_specr   r1   rY   ÚUSE_GLOBAL_NODEr?   rN   r\   r8   r7   s     r'   Ú_resolve_strategyrf   u   s†   € ßÒÜ�>‰>×#Ñ# NÓ3Ñ?Ü�I‰IÐIÔJÜ&¨NÑ;Ð;ç‚Ü! &Ó)ˆØÑÜ�I‰IÐ.°Ô7Ü! x°dÑ;Ð;ä‡I�IÐ1Ô2Ü 	Ô0@ÀÓ0HÑIÐIr&   c                óŽ  • [        U 5        [        U 5      nUR                  S:X  aO  [        UR                  5      /UQn[
        R                  SU5        [        S[        R                  " U40 UD65      $ UR                  S:X  aZ  SS K
nU S:X  a  [        SUR                  " U4SS0UD65      $ U S	:X  a  [        SUR                  " U4SS0UD65      $ [        U 5        g UR                  S
:X  aË  UR                  SS 5      =(       d    [        R                   R#                  5       nUR%                  ['        5       5        UR%                  [)        XcR                  R*                  S9S9  [        UR                  5      /UQn[
        R                  SU5        [        S[        R                  " U4SU0UD65      $ [        U5        g )Nr`   z)Running global node command with args: %szEsubprocess.CompletedProcess[str] | subprocess.CompletedProcess[bytes]r_   r   r+   Úreturn_completed_processTÚnpmrA   Úenv)rj   Ú
target_bin)ÚPATHz%Running nodeenv command with args: %s)r   rf   rP   rF   r0   r   r1   r   rG   rH   r_   r+   ri   r   ÚpopÚosÚenvironÚcopyÚupdateÚget_env_variablesÚ_update_path_envÚparent)r-   rK   ÚkwargsÚstrategyÚ	node_argsr_   rj   s          r'   rH   rH   …   s•  € ô �Ôä  Ó(€HØ‡}�}˜Ó Ü˜Ÿ™Ó'Ð/¨$Ð/ˆ	Ü�	‰	Ð=¸yÔIÜØSÜ�NŠN˜9Ñ/¨Ñ/ó
ð 	
ð 
�‰˜.Ó	(Ûà�VÓÜØWØ×!Ò! $ÑPÀÐPÈÑPóð ð �u‹_ÜØWØ× Ò  ÑOÀÐOÈÑOóð ô
 ˜Õ Ø	�‰˜)Ó	#Ø�j‰j˜ Ó%×:¬¯©¯©Ó):ˆØ�
‰
Ô$Ó&Ô'ð
 	�
‰
Ô(¨S¿]¹]×=QÑ=QÑRˆ
ÑSÜ˜Ÿ™Ó'Ð/¨$Ð/ˆ	Ü�	‰	Ð9¸9ÔEÜØSÜ�NŠN˜9Ñ8¨#Ð8°Ñ8ó
ð 	
ô
 	�XÕr&   c                ó¨  • [        U S[        R                  [        R                  S9n[	        UR
                  5      n[        R                  U5      nU(       d2  [        U[        R                  S9  [        R                  " SU  S35      e[        S UR                  S5      R                  S5       5       5      n[         R#                  S	X5        U$ )
Nz	--version©ÚstdoutÚstderr©ÚfilezCould not find version from `z --version`, see output abovec              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr:   )Úint)Ú.0Úvalues     r'   Ú	<genexpr>Úversion.<locals>.<genexpr>»   s   é € ÐCÒ)B ”�U—�Ò)Bùs   ‚r   Ú.ú!Version check for %s returning %s)rH   rG   ÚPIPEÚSTDOUTr   rz   Ú
VERSION_REÚsearchÚprintrC   r{   r   ÚVersionCheckFailedÚtupleÚgroupÚsplitr   r1   )r-   ÚprocÚoutputÚmatchÚinfos        r'   Úversionr“   ³   sž   € Üˆv�{¬:¯?©?Ä:×CTÑCTÑU€DÜ˜$Ÿ+™+Ó&€FÜ×Ñ˜fÓ%€EÞÜˆfœ3Ÿ:™:Ò&Ü×'Ò'Ð*GÈÀxÐOlÐ(mÓnÐnäÑC¨¯©°Q«×)=Ñ)=¸cÔ)BÓCÓC€DÜ‡I�IÐ1°6Ô@Ø€Kr&   )Úmaxsizec           	     óò  • [        SSU S[        R                  [        R                  S9n[	        UR
                  5      nUR                  S:w  a2  [        U[        R                  S9  [        R                  " SU  S35      e[        R                  U5      nU(       d2  [        U[        R                  S9  [        R                  " S	U  S
35      eUR                  S5      n[        R!                  SX5        U$ )z/Return the latest version for the given packageri   r’   r“   ry   r   r|   zVersion check for z failed, see output above.zCould not find version for z, see output abover…   )rH   rG   r†   r‡   r   rz   Ú
returncoderŠ   rC   r{   r   r‹   rˆ   r‰   r�   r   r1   )Úpackager�   rz   r‘   r�   s        r'   Úlatestr˜   À   sÎ   € ô ØØØØÜ�‰Ü× Ñ ñ€Dô ˜$Ÿ+™+Ó&€Fà‡�˜!ÓÜˆfœ3Ÿ:™:Ò&Ü×'Ò'Ð*<¸W¸IÐE_Ð(`ÓaÐaä×Ñ˜fÓ%€EÞÜˆfœ3Ÿ:™:Ò&Ü×'Ò'Ð*EÀgÀYÐN`Ð(aÓbÐbà�K‰K˜‹N€EÜ‡I�IÐ1°7ÔBØ€Lr&   c                 óh   • [        [        S-  S-  5      [        [        5      [        [        5      S.$ )zDReturn the environmental variables that should be passed to a binaryÚlibÚnode_modules)Ú	NODE_PATHÚNPM_CONFIG_PREFIXÚnpm_config_prefix)rF   r   r%   r&   r'   rr   rr   Û   s-   € ô
 œ 5™¨>Ñ9Ó:Ü ¤›\Ü ¤›\ñð r&   c                óä   • U R                  5       (       d  g [        R                  " U R                  5       5      nUR                  S5      $ ! [         a    [
        R                  SU SS9   gf = f)z˜Given a path to a `package.json` file, parse it and returns the `version` property

Returns `None` if the version could not be resolved for any reason.
Nz0Ignoring error while reading/parsing the %s fileT)Úexc_infor“   )r3   ÚjsonÚloadsÚ	read_textÚ	Exceptionr   r1   Úget)ÚpkgÚdatas     r'   Úget_pkg_versionr¨   æ   sd   € ð
 �:‰:�<‰<ØðÜ�zŠz˜#Ÿ-™-›/Ó*ˆð �8‰8�IÓÐøô ó ä�	‰	ÐDÀcÐTXˆ	ÑYÙðús   ˜$A ÁA/Á.A/)Úsepc                ó8  • U c  [        [        R                  5      n [        R	                  SU5        UR                  5       (       d   SU S35       eU R                  SS5      =(       d     [        R                  R                  SS5      nU(       aX  [        R	                  SU5        UR                  U5      (       a  UR                  5        U 3nO0UR                  5        U U 3nO[        UR                  5       5      n[        R	                  SU5        U$ )z�Returns a modified version of the `PATH` environment variable that has been updated
to include the location of the downloaded Node binaries.
z$Attempting to prepend %s to the PATHzTarget directory z does not existrl   r*   zFound PATH contents: %sz#Using PATH environment variable: %s)
Údictrn   ro   r   r1   r3   r¥   Ú
startswithÚabsoluterF   )rj   rk   r©   r0   s       r'   rs   rs   ø   sî   € ð �{Ü”2—:‘:Óˆä‡I�IÐ4°jÔAØ×Ñ×ÑÐOÐ"3°J°<¸Ð OÓOÐà�7‰7�6˜2Ó×<¤"§*¡*§.¡.°¸Ó"<€DÞÜ�	‰	Ð+¨TÔ2ð �?‰?˜3×ÑØ ×)Ñ)Ó+Ð,¨T¨FÐ3‰Dà ×)Ñ)Ó+Ð,¨S¨E°$°Ð8‰Dô �:×&Ñ&Ó(Ó)ˆä‡I�IÐ3°TÔ:Ø€Kr&   )ÚreturnÚbool)r-   r   r®   rF   )r-   r   r®   r   )r-   r   r®   zOptional[Path])r®   ÚNone)r-   r   r®   ÚStrategy)r-   r   rK   rF   ru   r   r®   zOUnion['subprocess.CompletedProcess[bytes]', 'subprocess.CompletedProcess[str]'])r-   r   r®   zTuple[int, ...])r—   rF   r®   rF   )r®   zDict[str, Any])r¦   r   r®   z
str | None)rj   zMapping[str, str] | Nonerk   r   r©   rF   r®   rF   )EÚ
__future__r   rn   ÚrerC   r¡   r=   Úloggingr"   rG   Úimportlib.utilrb   Útypingr   r   r   r   r   r	   r
   r   Úpathlibr   Ú	functoolsr   Útyping_extensionsr   r   r*   r   Útypesr   r   Úutilsr   r   r   r   Ú	getLoggerrR   r   rV   r   r   re   ra   ro   r¥   r4   Úcompilerˆ   r(   r.   r8   r2   r?   r5   rN   rY   r\   r±   rf   rH   r“   r˜   rr   r¨   Úpathseprs   r%   r&   r'   Ú<module>r¿      s‘  ðÞ "ã 	Û 	Û 
Û Û Û Û Û Û ß O× OÓ OÝ Ý ß 3å ß 'ß FÓ Fà×'Ò'¨Ó1€€^Ó 1á“€ˆÓ Ù ¨Ñ1€ˆdÓ 1ÙÐ:ÀDÑI€ÙÐ<ÀdÑKÐ Ø�z‰z�~‰~Ð;ÀTˆ~ÐJ€Ø�ZŠZÐ(Ó)€
ô2ôôô"Gôô$ô"�Zô ô
"˜*ô "ô�jô ð
 �Ð!4°oÐEÑF€ôJð +Øð+Øð+Ø*-ð+àTô+ô\
ñ �4Ñóó ðô4ôð, �z‰zñ	à	!ðð ðð 
ð	ð
 	ör&   