Ë
    -Œ:j4$  ã                   óv  — d Z ddlZddlmZmZmZ ddlZddlmZ ddl	m
Z
 ddlmZmZmZ ddlmZ  e ee
«      d	   «      Z ej$                  d
eD � ci c]  } | | “Œ c} e¬«      Z ee«      Z ej$                  deD �ci c]  }||“Œ c}e¬«      Zdee   dee
   fd„Z ed¬«      Zej5                  dg d¢¬«      	 dEdeddfd„«       Zej5                  ddg¬«      	 dEdee ej8                  d¬«      f   deddfd„«       Zej5                  dg d¢¬«      	 	 	 	 	 dFdeee    ej<                  dd ¬«      f   d!eedz   ej<                  d"¬«      f   d#eedz   ej<                  d$d%¬«      f   d&eee   dz   ej<                  d'd(¬«      f   d)eedz   ej<                  d*¬«      f   deddfd+„«       Zej5                  d,g d-¢¬«      	 	 	 	 	 dFdee ej8                  d.¬«      f   d!eedz   ej<                  d/¬«      f   deee   dz   ej<                  dd0¬«      f   d&eee   dz   ej<                  d'd1¬«      f   d)eedz   ej<                  d2¬«      f   deddfd3„«       Z ej5                  d4d5g¬«      	 dEdee ej8                  d6¬«      f   deddfd7„«       Z!ej5                  d8d9g¬«      	 dEdee ej8                  d:¬«      f   deddfd;„«       Z"ej5                  d<d=d>g¬«      	 	 dGdee ej8                  d?¬«      f   d@ee# ej<                  dAdBdC¬«      f   deddfdD„«       Z$yc c} w c c}w )HaÚ  Contains commands to manage webhooks on the Hugging Face Hub.

Usage:
    # list all webhooks
    hf webhooks ls

    # show details of a single webhook
    hf webhooks info <webhook_id>

    # create a new webhook
    hf webhooks create --url https://example.com/hook --watch model:bert-base-uncased

    # create a webhook watching multiple items and domains
    hf webhooks create --url https://example.com/hook --watch org:HuggingFace --watch model:gpt2 --domain repo

    # update a webhook
    hf webhooks update <webhook_id> --url https://new-url.com/hook

    # enable / disable a webhook
    hf webhooks enable <webhook_id>
    hf webhooks disable <webhook_id>

    # delete a webhook
    hf webhooks delete <webhook_id>
é    N)Ú	AnnotatedÚget_argsÚget_type_hints)ÚWEBHOOK_DOMAIN_T)ÚWebhookWatchedItemé   )ÚTokenOptÚ
get_hf_apiÚtyper_factory)ÚoutÚtypeÚWatchedItemType)r   ÚWebhookDomainÚvaluesÚreturnc           	      óT  — g }t        t        «      }| D ]‘  }d|vr+t        j                  d|› ddj	                  |«      › d�«      ‚|j                  dd«      \  }}||vr+t        j                  d|› ddj	                  |«      › d�«      ‚|j                  t        ||¬«      «       Œ“ |S )	aY  Parse 'type:name' strings into WebhookWatchedItem objects.

    Args:
        values: List of strings in the format 'type:name'
            (e.g., 'model:bert-base-uncased', 'org:HuggingFace').

    Returns:
        List of WebhookWatchedItem objects.

    Raises:
        typer.BadParameter: If any value doesn't match the expected format.
    ú:zCExpected format 'type:name' (e.g. 'model:bert-base-uncased'), got 'z'. Valid types: z, ú.r   zInvalid type ')r   Úname)ÚtupleÚ_WATCHED_TYPESÚtyperÚBadParameterÚjoinÚsplitÚappendr   )r   ÚitemsÚvalid_typesÚvÚkindr   s         ú^/var/www/html/tokenscope/api/venv/lib/python3.12/site-packages/huggingface_hub/cli/webhooks.pyÚ_parse_watchr"   @   sÆ   € ð €EÜœÓ'€KØò 	?ˆØ�a‰<Ü×$Ñ$ØUÐVWÐUXð Y!Ø!%§¡¨;Ó!7Ð 8¸ð;óð ð —W‘W˜S !“_‰
ˆˆdØ�{Ñ"Ü×$Ñ$ ~°d°VÐ;KÈDÏIÉIÐVaÓLbÐKcÐcdÐ%eÓfÐfØ�‰Ô'¨T¸Ô=Õ>ð	?ð €Ló    zManage webhooks on the Hub.)Úhelpz	list | ls)zhf webhooks lszhf webhooks ls --format jsonzhf webhooks ls --format quiet)ÚexamplesÚtokenc                 óp  — t        | ¬«      }|j                  «       D ��cg c]o  }|j                  |j                  xs d|j                  |j
                  xs g |j                  xs g D �cg c]  }|j                  › d|j                  › �‘Œ c}dœ‘Œq }}}t        j                  |«       yc c}w c c}}w )z'List all webhooks for the current user.©r&   z(job)r   )ÚidÚurlÚdisabledÚdomainsÚwatchedN)r
   Úlist_webhooksr)   r*   r+   r,   r-   r   r   r   Útable)r&   ÚapiÚwÚwiÚresultss        r!   Úwebhooks_lsr4   _   s¡   € ô ˜5Ô
!€Cð ×"Ñ"Ó$÷	ð ð —$‘$Ø—5‘5Ò#˜GØŸ
™
Ø—y‘y’ BØ:;¿)¹)º/ÀrÖK°2˜2Ÿ7™7˜) 1 R§W¡W IÒ.ÒKó	
ð	€Gñ 	ô ‡I�IˆgÕùò	 Lùó	s    AB2Á+"B-ÂB2Â-B2Úinfozhf webhooks info abc123Ú
webhook_idzThe ID of the webhook.c                 óh   — t        |¬«      }|j                  | «      }t        j                  |«       y)z'Show full details for a single webhook.r(   N)r
   Úget_webhookr   Údict©r6   r&   r0   Úwebhooks       r!   Úwebhooks_infor<   y   s(   € ô ˜5Ô
!€CØ�o‰o˜jÓ)€GÜ‡H�HˆWÕr#   Úcreate)zQhf webhooks create --url https://example.com/hook --watch model:bert-base-uncasedzjhf webhooks create --url https://example.com/hook --watch org:HuggingFace --watch model:gpt2 --domain repozJhf webhooks create --job-id 687f911eaea852de79c4a50a --watch user:julien-cÚwatchz--watchzRItem to watch, in 'type:name' format (e.g. 'model:bert-base-uncased'). Repeatable.r*   zBURL to send webhook payloads to. Mutually exclusive with --job-id.Újob_idz--job-idz]ID of a Job to trigger (from job.id) instead of pinging a URL. Mutually exclusive with --url.Údomainz--domainzNDomain to watch: 'repo' or 'discussions'. Repeatable. Defaults to all domains.Úsecretz.Optional secret used to sign webhook payloads.c                 óJ  — |�|�t        j                  d«      ‚|€|€t        j                  d«      ‚t        |¬«      }t        | «      }|r|D �cg c]  }|j                  ‘Œ c}nd}	|j                  ||||	|¬«      }
t        j                  d|
j                  ¬«       yc c}w )z|Create a new webhook.

    Provide either --url (to ping a remote server) or --job-id (to trigger a Job), but not both.
    Nz+Provide either --url or --job-id, not both.z!Provide either --url or --job-id.r(   )r*   r?   r-   r,   rA   zWebhook created©r)   )	r   r   r
   r"   ÚvalueÚcreate_webhookr   Úresultr)   )r>   r*   r?   r@   rA   r&   r0   Úwatched_itemsÚdr,   r;   s              r!   Úwebhooks_createrI   ‰   s�   € ðX €˜6Ð-Ü× Ñ Ð!NÓOÐOØ
€{�v�~Ü× Ñ Ð!DÓEÐEÜ
˜5Ô
!€CÜ  Ó'€MÙ+1 Ö'˜1ˆq�w‹wÓ'°t€GØ× Ñ  S°ÀÐX_ÐhnÐ Óo€GÜ‡J�JÐ  W§Z¡ZÖ0ùò (s   ÁB Úupdate)z8hf webhooks update abc123 --url https://new-url.com/hookz:hf webhooks update abc123 --watch model:gpt2 --domain repoz,hf webhooks update abc123 --secret newsecretz The ID of the webhook to update.z$New URL to send webhook payloads to.ziNew list of items to watch, in 'type:name' format. Repeatable. Replaces the entire existing watched list.zBNew list of domains to watch: 'repo' or 'discussions'. Repeatable.z)New secret used to sign webhook payloads.c                 óî   — t        |¬«      }|rt        |«      nd}|r|D �cg c]  }|j                  ‘Œ c}nd}	|j                  | |||	|¬«      }
t	        j
                  d|
j                  ¬«       yc c}w )z>Update an existing webhook. Only provided options are changed.r(   N)r*   r-   r,   rA   zWebhook updatedrC   )r
   r"   rD   Úupdate_webhookr   rF   r)   )r6   r*   r>   r@   rA   r&   r0   rG   rH   r,   r;   s              r!   Úwebhooks_updaterM   À   sj   € ôL ˜5Ô
!€CÙ+0”L Ô'°d€MÙ+1 Ö'˜1ˆq�w‹wÓ'°t€GØ× Ñ  °¸mÐU\ÐekÐ Ól€GÜ‡J�JÐ  W§Z¡ZÖ0ùò (s   ¢A2Úenablezhf webhooks enable abc123z The ID of the webhook to enable.c                 ó€   — t        |¬«      }|j                  | «      }t        j                  d|j                  ¬«       y)zEnable a disabled webhook.r(   zWebhook enabledrC   N)r
   Úenable_webhookr   rF   r)   r:   s       r!   Úwebhooks_enablerQ   í   s1   € ô ˜5Ô
!€CØ× Ñ  Ó,€GÜ‡J�JÐ  W§Z¡ZÖ0r#   Údisablezhf webhooks disable abc123z!The ID of the webhook to disable.c                 ó€   — t        |¬«      }|j                  | «      }t        j                  d|j                  ¬«       y)zDisable an active webhook.r(   zWebhook disabledrC   N)r
   Údisable_webhookr   rF   r)   r:   s       r!   Úwebhooks_disablerU   ý   s1   € ô ˜5Ô
!€CØ×!Ñ! *Ó-€GÜ‡J�JÐ! g§j¡jÖ1r#   Údeletezhf webhooks delete abc123zhf webhooks delete abc123 --yesz The ID of the webhook to delete.Úyesz--yesz-yzSkip confirmation prompt.c                 ó¢   — t        j                  d| › d�|¬«       t        |¬«      }|j                  | «       t        j                  d| ¬«       y)zDelete a webhook permanently.z)Are you sure you want to delete webhook 'z'?)rW   r(   zWebhook deletedrC   N)r   Úconfirmr
   Údelete_webhookrF   )r6   rW   r&   r0   s       r!   Úwebhooks_deleter[     sD   € ô( ‡K�KÐ;¸J¸<ÀrÐJÐPSÕTÜ
˜5Ô
!€CØ×Ñ�zÔ"Ü‡J�JÐ  ZÖ0r#   )N)NNNNN)FN)%Ú__doc__ÚenumÚtypingr   r   r   r   Úhuggingface_hub.constantsr   Úhuggingface_hub.hf_apir   Ú
_cli_utilsr	   r
   r   Ú_outputr   r   ÚEnumÚstrr   Ú_DOMAIN_TYPESr   Úlistr"   Úwebhooks_cliÚcommandr4   ÚArgumentr<   ÚOptionrI   rM   rQ   rU   Úboolr[   )ÚtrH   s   00r!   ú<module>rm      sH  ðñó4 ß 6Ñ 6ã å 6Ý 5÷ñ õ
 ñ ™.Ð);Ó<¸VÑDÓE€Ø�$—)‘)Ð-¸nÖ/M¸°°1±Ò/MÐTWÔX€áÐ)Ó*€Ø�—	‘	˜/¸-Ö+H°Q¨A¨q©DÒ+HÈsÔS€ð˜˜c™ð  tÐ,>Ñ'?ó ñ8 Ð"?Ô@€ð ×ÑØòð ó ð ñØðà	òóðð$ ×ÑØ
à!ðð ó ð ñØ˜#˜~˜uŸ~™~Ð3KÔLÐLÑMðàðð 
òóðð ×ÑØòð ó ð& 	ð 	ð 	ð 	Øñ=,1ØØˆS‰	Øˆ�‰ØØeô	
ð	ñð,1ð 
Øˆd‰
Øˆ�‰Ð^Ô_ð	añ
ð,1ð Øˆd‰
Øˆ�‰ØØpô	
ð	ñð,1ð& Øˆ]Ñ˜dÑ"Øˆ�‰ØØaô	
ð	ñð',1ð4 Øˆd‰
Øˆ�‰ÐJÔKð	Mñð5,1ð< ð=,1ð> 
ò?,1óð,1ð^ ×ÑØòð ó ð 	ð 	ð 	ð 	Øñ7"1Ø˜#˜~˜uŸ~™~Ð3UÔVÐVÑWð"1à	Øˆd‰
Øˆ�‰Ð@ÔAð	Cñ
ð"1ð ØˆS‰	�DÑØˆ�‰ØðIô	
ð	ñ	ð"1ð  Øˆ]Ñ˜dÑ"Øˆ�‰ØØUô	
ð	ñð!"1ð. Øˆd‰
Øˆ�‰ÐEÔFð	Hñð/"1ð6 ð7"1ð8 
ò9"1óð"1ðJ ×ÑØà#ðð ó ð ñ1Ø˜#˜~˜uŸ~™~Ð3UÔVÐVÑWð1àð1ð 
ò1óð1ð ×ÑØà$ðð ó ð ñ2Ø˜#˜~˜uŸ~™~Ð3VÔWÐWÑXð2àð2ð 
ò2óð2ð ×ÑØà#Ø)ðð ó ð  	Øñ1Ø˜#˜~˜uŸ~™~Ð3UÔVÐVÑWð1à	ØØˆ�‰ØØØ,ô	
ð	ñ
ð1ð ð1ð 
ò1óñ1ùòu 0Nùò ,Is   Á
L1
Á?
L6
