ó
    ùÚ ju'  ã                  óp  • % S r SSKJr  SSKrSSKrSSKJr  SSKJrJ	r	J
r
JrJr  SSKJrJr  SSKJrJr  Sr " S	 S
\5      r " S S\5      r " S S5      r " S S5      rS"S jrSqS\S'   S#S$S jjrS%S jr " S S\5      r " S S\5      r " S S5      r " S S5      r Sq!S\S'   S#S&S  jjr"S'S! jr#g)(z2Salesforce lower-org deploy validation (Phase 3b).é    )ÚannotationsN)ÚPath)ÚAnyÚDictÚListÚOptionalÚProtocol)Ú	BaseModelÚField)ÚSettingsÚget_settings)ÚprodÚ
productionc                  óT   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   \" \S9rS	\S
'   Srg)ÚDeployResulté   ÚboolÚsuccessÚ
check_onlyÚstrÚstatusÚmessage©Údefault_factoryúDict[str, Any]Údetails© N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   Údictr   Ú__static_attributes__r   ó    Ú8/var/www/html/gaurav/packages/integrations/salesforce.pyr   r      s&   ‡ ØƒMØÓØƒKØƒLÙ#°DÑ9€Gˆ^Ö9r%   r   c                  ó   • \ rS rSrSS jrSrg)ÚSalesforceDeployeré   c             ƒ  ó   #   • g 7f©Nr   ©ÚselfÚ
source_dirÚjira_keys      r&   Údeploy_validateÚ"SalesforceDeployer.deploy_validate   s   é € ÐY\ùó   ‚r   N©r.   r   r/   r   Úreturnr   )r   r   r    r!   r0   r$   r   r%   r&   r(   r(      s   † ß\r%   r(   c                  ó,   • \ rS rSrSrSS jrSS jrSrg)	ÚMockSalesforceDeployeré   z0Always-succeeding deployer for local/dev and CI.c                ó   • / U l         g r+   ©Úcalls©r-   s    r&   Ú__init__ÚMockSalesforceDeployer.__init__    ó	   € Ø.0ˆ�
r%   c          
   ƒ  ó�   #   • U R                   R                  [        U5      US.5        [        SSSSU 3S[        U5      S.S9$ 7f)N)r.   r/   TÚ	SucceededzMock deploy validate OK for Úmock)Úproviderr.   ©r   r   r   r   r   )r:   Úappendr   r   r,   s      r&   r0   Ú&MockSalesforceDeployer.deploy_validate#   sL   é € Ø�
‰
×Ñ¬¨Z«ÀhÑOÔPÜØØØØ2°8°*Ð=Ø!'´s¸:³ÑGñ
ð 	
ùs   ‚AAr9   N©r4   ÚNoner3   ©r   r   r    r!   Ú__doc__r<   r0   r$   r   r%   r&   r6   r6      s   † Ù:ô1÷
r%   r6   c                  ó0   • \ rS rSrSrSSS jjrS	S jrSrg)
ÚCliSalesforceDeployeré.   zMRun `sf project deploy start` against a lower-org alias (dry-run by default).Nc                ó4   • U=(       d
    [        5       U l        g r+   ©r   Úsettings©r-   rO   s     r&   r<   ÚCliSalesforceDeployer.__init__1   ó   € Ø ×2¤L£Nˆ�r%   c             ƒ  ó   #   • U R                   R                  =(       d    SR                  5       nU(       d  [        S5      e[	        U5      (       a  [        SU S35      eUR                  5       (       d  [        SU 35      e[        U R                   R                  5      nSSSS	S
[        U5      SUS/	nU(       a  UR                  S5        [        R                  " U[        R                  R                  [        R                  R                  S.6I S h  v•N nUR                  5       I S h  v•N u  pxU=(       d    SR                  SSS9n	U=(       d    SR                  SSS9n
0 n U	R                  5       (       a  [         R"                  " U	5      O0 nUR'                  S5      n[)        UR'                  S5      [*        5      (       a  UR'                  S5      O0 nUR'                  S5      nUc  UR,                  S:H  =(       a    US;   nUR'                  S5      =(       d#    UR'                  S5      =(       d    U(       a  SOSnUR'                  S5      =(       d4    UR'                  S5      =(       d    U(       d  U
R                  5       OSU 3n[/        [        U5      U[        U5      [        U5      S S S UUR,                  UU=(       d    UU
(       a  U
S S OSS!.S"9$  GNÐ GN»! [         R$                   a    SU	0n GNpf = f7f)#NÚ z=SALESFORCE_ORG_ALIAS is required when SALESFORCE_PROVIDER=cliz5Refusing Salesforce deploy to production-like alias 'ú' (v1 allows lower orgs only)zDeploy source dir missing: ÚsfÚprojectÚdeployÚstartz--source-dirú--target-orgú--jsonz	--dry-run©ÚstdoutÚstderrr%   úutf-8Úreplace©ÚerrorsÚ
raw_stdoutr   Úresultr   r   )r   Ú0NÚdeployStatusr@   ÚFailedÚerrorMessager   zDeploy validate completed for iÐ  Úcli)rB   Ú	org_aliasÚ
returncodeÚ	sf_statusrd   r^   rC   )rO   Úsalesforce_org_aliasÚstripÚ
ValueErrorÚ_looks_like_productionÚexistsr   Úsalesforce_deploy_check_onlyr   rD   ÚasyncioÚcreate_subprocess_execÚ
subprocessÚPIPEÚcommunicateÚdecodeÚjsonÚloadsÚJSONDecodeErrorÚgetÚ
isinstancer#   rk   r   )r-   r.   r/   Úaliasr   ÚcmdÚprocÚstdout_bÚstderr_br]   r^   ÚpayloadÚstatus_codeÚresult_blockÚsuccess_flagÚdeploy_statusr   s                    r&   r0   Ú%CliSalesforceDeployer.deploy_validate4   sÎ  é € Ø—‘×3Ñ3×9°r×@Ñ@ÓBˆÞÜÐ\Ó]Ð]Ü! %×(Ñ(ÜØGÈÀwð O.ð .óð ð × Ñ ×"Ñ"ÜÐ:¸:¸,ÐGÓHÐHä˜$Ÿ-™-×DÑDÓEˆ
àØØØØÜ�
‹OØØØð

ˆö Ø�J‰J�{Ô#ä×3Ò3ØÜ×%Ñ%×*Ñ*Ü×%Ñ%×*Ñ*ò
÷ 
ˆð
 $(×#3Ñ#3Ó#5×5ÑˆØ—/˜c×)Ñ)¨'¸)Ð)ÐDˆØ—/˜c×)Ñ)¨'¸)Ð)ÐDˆà"$ˆð	-Ø,2¯L©L¯N©N”d—j’j Ô(ÀˆGð —k‘k (Ó+ˆÜ0:¸7¿;¹;ÀxÓ;PÔRV×0WÑ0W�w—{‘{ 8Ô,Ð]_ˆØ#×'Ñ'¨	Ó2ˆØÑØŸ?™?¨aÑ/×Q°KÀ>Ñ4QˆLð ×Ñ˜XÓ&÷ ;Ø×Ñ Ó/÷;æ+‘°ð 	ð ×Ñ˜^Ó,÷ eØ�{‰{˜9Ó%÷eæ&2�—‘”Ð:XÐYaÐXbÐ8cð 	ô Ü˜Ó&Ø!Ü�}Ó%Ü˜“L  $Ð'à!Ø"Ø"Ÿo™oØ(Ø&×1¨'Þ+1˜&  $™-°rññ
ð 	
òA
ò
 6øô ×#Ñ#ó 	-Ø# VÐ,‹Gð	-üsI   ‚DLÄK)ÄLÄ1K,Ä2:LÅ--K/ ÆELË,LË/LÌLÌ
LÌL©rO   r+   ©rO   úOptional[Settings]r4   rG   r3   rH   r   r%   r&   rK   rK   .   s   † ÙWö3÷H
r%   rK   c                ó–   ^• U R                  5       R                  SS5      R                  SS5      m[        U4S j[         5       5      $ )NÚ-rT   Ú_c              3  ó*   >#   • U H	  oT;   v •  M     g 7fr+   r   )Ú.0ÚmarkerÚlowereds     €r&   Ú	<genexpr>Ú)_looks_like_production.<locals>.<genexpr>�   s   øé € ÐCÑ/B V˜Ö Ò/Bùs   ƒ)Úlowerr`   ÚanyÚ_PROD_ALIAS_MARKERS)r~   r’   s    @r&   rp   rp      s:   ø€ Ø�k‰k‹m×#Ñ# C¨Ó,×4Ñ4°S¸"Ó=€GÜÔCÕ/BÓCÓCÐCr%   z Optional[MockSalesforceDeployer]Ú_mock_singletonc                óŒ   • U =(       d
    [        5       n U R                  S:X  a  [        U 5      $ [        c
  [	        5       q[        $ ©Nri   )r   Úsalesforce_providerrK   r˜   r6   r‰   s    r&   Úget_salesforce_deployerrœ   ‡   s;   € à×)œ<›>€HØ×#Ñ# uÓ,Ü$ XÓ.Ð.ÜÑÜ0Ó2ˆÜÐr%   c                 ó"   • [        5       q[        $ r+   )r6   r˜   r   r%   r&   Úreset_mock_salesforcerž   ‘   s   € ä,Ó.€OÜÐr%   c                  óv   • \ rS rSr% S\S'   SrS\S'   SrS\S'   \" \S9r	S	\S
'   \" \
S9rS\S'   SrS\S'   Srg)ÚApexTestResulté—   r   r   r   ÚintÚ	tests_runÚtests_passedr   z	List[str]Úfailuresr   r   rT   r   r   r   N)r   r   r    r!   r"   r£   r¤   r   Úlistr¥   r#   r   r   r$   r   r%   r&   r    r    —   sC   ‡ ØƒMØ€IˆsÓØ€L�#ÓÙ°Ñ5€HˆiÓ5Ù#°DÑ9€Gˆ^Ó9Ø€GˆSÖr%   r    c                  ó4   • \ rS rSrSS.       SS jjrSrg)ÚApexTestRunneré    N©Úclass_namesc             ƒ  ó   #   • g 7fr+   r   ©r-   r.   r/   r«   s       r&   Ú	run_testsÚApexTestRunner.run_tests¡   s   é € àùr2   r   ©r.   r   r/   r   r«   zOptional[List[str]]r4   r    )r   r   r    r!   r®   r$   r   r%   r&   r¨   r¨       s/   † àUYñØ!ðØ-0ðØ?Rðà	÷ð r%   r¨   c                  óB   • \ rS rSrSrSS jrSS.       S	S jjrSrg)
ÚMockApexTestRunneré¦   z,No-op Apex test runner for local/dev and CI.c                ó   • / U l         g r+   r9   r;   s    r&   r<   ÚMockApexTestRunner.__init__©   r>   r%   Nrª   c          	   ƒ  óŠ   #   • U R                   R                  [        U5      X#=(       d    / S.5        [        SSS/ SSS0S9$ 7f)N)r.   r/   r«   Tr   z2Mock Apex tests skipped (no test classes in stubs)rB   rA   ©r   r£   r¤   r¥   r   r   )r:   rD   r   r    r­   s       r&   r®   ÚMockApexTestRunner.run_tests¬   sQ   é € ð 	�
‰
×ÑÜ˜z›?¸×QbÐ`bÑcô	
ô ØØØØØHØ Ð(ñ
ð 	
ùs   ‚AAr9   rF   r°   ©r   r   r    r!   rI   r<   r®   r$   r   r%   r&   r²   r²   ¦   s;   † Ù6ô1ð VZñ
Ø!ð
Ø-0ð
Ø?Rð
à	÷
ð 
r%   r²   c                  óF   • \ rS rSrSrSS	S jjrSS.       S
S jjrSrg)ÚCliApexTestRunneré¼   z1Run `sf apex run test` against a lower-org alias.Nc                ó4   • U=(       d
    [        5       U l        g r+   rN   rP   s     r&   r<   ÚCliApexTestRunner.__init__¿   rR   r%   rª   c             ƒ  ó„  #   • U R                   R                  =(       d    SR                  5       nU(       d  [        S5      e[	        U5      (       a  [        SU S35      eU(       d  [        SSS/ SSSS	.S
9$ SSSSSSR                  U5      SUSSSS/n[        R                  " U[        R                  R                  [        R                  R                  S.6I S h  v•N nUR                  5       I S h  v•N u  pxU=(       d    SR                  SSS9n	U=(       d    SR                  SSS9n
0 n U	R                  5       (       a  [        R                  " U	5      O0 n[!        UR#                  S5      [$        5      (       a  UR#                  S5      O0 n[!        UR#                  S5      [$        5      (       a  UR#                  S5      O0 n['        UR#                  S5      =(       d    UR#                  S5      =(       d    S5      n['        UR#                  S 5      =(       d    UR#                  S!5      =(       d    S5      nUR#                  S"5      =(       d    UR#                  S#5      =(       d    / n/ n[!        U[(        5      (       a€  U Hz  n[!        U[$        5      (       aH  UR+                  UR#                  S$S%5       S&UR#                  S'UR#                  S(S)5      5       35        M`  UR+                  [-        U5      5        M|     UR.                  S:H  =(       a    U(       + =(       a    Xï:H  nUS:X  a  U(       d  UR.                  S:H  n[        [1        U5      UUUU
R                  5       =(       d    S*U 3SUUR.                  U=(       d    US+.S
9$  GN» GN¦! [        R                   a    SU	0n GN[f = f7f),NrT   z<SALESFORCE_ORG_ALIAS is required when APEX_TEST_PROVIDER=cliz1Refusing Apex test run on production-like alias 'rU   Tr   zNo Apex test classes to runri   )rB   Úskippedr·   rV   ÚapexÚrunÚtestz--testsÚ,rZ   z--result-formatry   z--synchronousr[   r\   r%   r_   r`   ra   rc   rd   ÚsummaryÚtestsRanÚtestsRunÚpassingÚpassedr¥   ÚtestsÚnameÚunknownz: r   ÚoutcomeÚfailedzApex tests completed for )rB   rj   rk   rd   )rO   rm   rn   ro   rp   r    Újoinrs   rt   ru   rv   rw   rx   ry   rz   r{   r}   r|   r#   r¢   r¦   rD   r   rk   r   )r-   r.   r/   r«   r~   r   r€   r�   r‚   r]   r^   rƒ   r…   rÅ   r£   r¤   Úfailures_rawr¥   Úitemr†   s                       r&   r®   ÚCliApexTestRunner.run_testsÂ   sO  é € ð —‘×3Ñ3×9°r×@Ñ@ÓBˆÞÜÐ[Ó\Ð\Ü! %×(Ñ(ÜØCÀEÀ7ð K.ð .óð ö Ü!ØØØØØ5Ø%*°tÑ<ñð ð ØØØØØ�H‰H�[Ó!ØØØØØØð
ˆô ×3Ò3ØÜ×%Ñ%×*Ñ*Ü×%Ñ%×*Ñ*ò
÷ 
ˆð
 $(×#3Ñ#3Ó#5×5ÑˆØ—/˜c×)Ñ)¨'¸)Ð)ÐDˆØ—/˜c×)Ñ)¨'¸)Ð)ÐDˆà"$ˆð	-Ø,2¯L©L¯N©N”d—j’j Ô(ÀˆGô 1;¸7¿;¹;ÀxÓ;PÔRV×0WÑ0W�w—{‘{ 8Ô,Ð]_ˆÜ1;¸L×<LÑ<LÈYÓ<WÔY]×1^Ñ1^�,×"Ñ" 9Ô-ÐdfˆÜ˜Ÿ™ JÓ/×O°7·;±;¸zÓ3J×OÈaÓPˆ	Ü˜7Ÿ;™; yÓ1×O°W·[±[ÀÓ5J×OÈaÓPˆØ#×'Ñ'¨
Ó3×V°|×7GÑ7GÈÓ7P×VÐTVˆØ ˆÜ�l¤D×)Ñ)Û$�Ü˜d¤D×)Ñ)Ø—O‘OØŸ8™8 F¨IÓ6Ð7°r¸$¿(¹(À9ÈdÏhÉhÐW`ÐbjÓNkÓ:lÐ9mÐnöð —O‘O¤C¨£IÖ.ñ %ð —‘¨!Ñ+×Z°H´×ZÀÑAZˆØ˜‹>¦(ØŸ?™?¨aÑ/ˆLäÜ˜Ó&ØØ%ØØ—L‘L“N×LÐ(AÀ(ÀÐ&Là!Ø"Ø"Ÿo™oØ&×1¨'ñ	ñ
ð 	
òE
ò
 6øô ×#Ñ#ó 	-Ø# VÐ,‹Gð	-üsI   ‚CO Ã NÃ!O Ã8NÃ9:O Ä4-N! Å!H;O ÎO Î!N=Î9O Î<N=Î=O r‰   r+   rŠ   r°   r¹   r   r%   r&   r»   r»   ¼   sA   † Ù;ö3ð VZñQ
Ø!ðQ
Ø-0ðQ
Ø?RðQ
à	÷Q
ð Q
r%   r»   zOptional[MockApexTestRunner]Ú_apex_mock_singletonc                óŒ   • U =(       d
    [        5       n U R                  S:X  a  [        U 5      $ [        c
  [	        5       q[        $ rš   )r   Úapex_test_providerr»   rÓ   r²   r‰   s    r&   Úget_apex_test_runnerrÖ     s<   € à×)œ<›>€HØ×"Ñ" eÓ+Ü  Ó*Ð*ÜÑ#Ü1Ó3ÐÜÐr%   c                 ó"   • [        5       q[        $ r+   )r²   rÓ   r   r%   r&   Úreset_mock_apex_testsrØ   #  s   € ä-Ó/ÐÜÐr%   )r~   r   r4   r   r+   )rO   r‹   r4   r(   )r4   r6   )rO   r‹   r4   r¨   )r4   r²   )$rI   Ú
__future__r   rs   ry   Úpathlibr   Útypingr   r   r   r   r	   Úpydanticr
   r   Úpackages.configr   r   r—   r   r(   r6   rK   rp   r˜   r"   rœ   rž   r    r¨   r²   r»   rÓ   rÖ   rØ   r   r%   r&   Ú<module>rÞ      s»   ðÚ 8å "ã Û Ý ß 6Õ 6ç %ç 2à,Ð ô:�9ô :ô]˜ô ]÷
ñ 
÷"N
ñ N
ôbDð
 59€Ð1Ó 8öôô�Yô ô�Xô ÷
ñ 
÷,W
ñ W
ðt 6:Ð Ð2Ó 9ö õ r%   