§
    ®eîiM  ã                   ó¾   — d Z ddlmZmZmZ ddlmZ deeef         deeef         fd„Zdeeef         deeef         fd	„Z	d
eeef         dedeeef         fd„Z
dS )zQ
Normalization helpers for v2 API payloads to avoid relying on Pydantic aliases.
é    )ÚAnyÚDictÚListé   )ÚDocumentMetadataÚmdÚreturnc                 óô  — i dd“dd“dd“dd“d	d
“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“i d#d$“d%d&“d'd(“d)d*“d+d,“d-d.“d/d0“d1d2“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“¥dEdFi¥}i }|                       ¦   «         D ] \  }}|                     ||¦  «        }|||<   Œ!t          |                     d4¦  «        t          ¦  «        r*	 t	          |d4         ¦  «        |d4<   n# t
          $ r Y nw xY w|S )Gz{
    Convert API v2 camelCase metadata keys to snake_case expected by DocumentMetadata.
    Leaves unknown keys as-is.
    ÚogTitleÚog_titleÚogDescriptionÚog_descriptionÚogUrlÚog_urlÚogImageÚog_imageÚogAudioÚog_audioÚogDeterminerÚog_determinerÚogLocaleÚ	og_localeÚogLocaleAlternateÚog_locale_alternateÚ
ogSiteNameÚog_site_nameÚogVideoÚog_videoÚdcTermsCreatedÚdc_terms_createdÚdcDateCreatedÚdc_date_createdÚdcDateÚdc_dateÚdcTermsTypeÚdc_terms_typeÚdcTypeÚdc_typeÚdcTermsAudienceÚdc_terms_audienceÚdcTermsSubjectÚdc_terms_subjectÚ	dcSubjectÚ
dc_subjectÚdcDescriptionÚdc_descriptionÚdcTermsKeywordsÚdc_terms_keywordsÚmodifiedTimeÚmodified_timeÚpublishedTimeÚpublished_timeÚ
articleTagÚarticle_tagÚarticleSectionÚarticle_sectionÚ	sourceURLÚ
source_urlÚ
statusCodeÚstatus_codeÚscrapeIdÚ	scrape_idÚnumPagesÚ	num_pagesÚcontentTypeÚcontent_typeÚ	proxyUsedÚ
proxy_usedÚ
cacheStateÚcache_stateÚcachedAtÚ	cached_atÚcreditsUsedÚcredits_usedÚconcurrencyLimitedÚconcurrency_limitedÚconcurrencyQueueDurationMsÚconcurrency_queue_duration_ms)ÚitemsÚgetÚ
isinstanceÚstrÚintÚ
ValueError)r   ÚmappingÚoutÚkÚvÚsnakes         ú`/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/firecrawl/v2/utils/normalize.pyÚ_map_metadata_keysr]   	   s{  € ð
'à�:ð'ð 	Ð)ð'ð 	�ð	'ð
 	�:ð'ð 	�:ð'ð 	˜ð'ð 	�Kð'ð 	Ð2ð'ð 	�nð'ð 	�:ð'ð 	Ð,ð'ð 	Ð*ð'ð 	�)ð'ð  	�ð!'ð" 	�)ð#'ð$ 	Ð.ð%'ð& 	Ð,ð''ð 'ð( 	�\ð)'ð* 	Ð)ð+'ð, 	Ð.ð-'ð. 	˜ð/'ð0 	Ð)ð1'ð2 	�mð3'ð4 	Ð+ð5'ð8 	�\ð9'ð: 	�mð;'ð< 	�Kð='ð> 	�Kð?'ð@ 	�~ðA'ðB 	�\ðC'ðD 	�mðE'ðF 	�KðG'ðH 	�~ðI'ðJ 	Ð3ðK'ð 'ðL 	%Ð&EðM'ð '€GðR €CØ—’‘
”
ð ð ‰ˆˆ1Ø—’˜A˜qÑ!Ô!ˆØˆˆE‰
ˆ
õ �#—'’'˜-Ñ(Ô(­#Ñ.Ô.ð ð	Ý!$ S¨Ô%7Ñ!8Ô!8ˆC�ÑÐøÝð 	ð 	ð 	ØˆDð	øøøð €Js   ÃC( Ã(
C5Ã4C5Údocc                 ó  — t          | ¦  «        }d|v rd|vr|                     d¦  «        |d<   d|v rd|vr|                     d¦  «        |d<   |                     d¦  «        }t          |t           ¦  «        r=t	          |¦  «        }	 t          j        |¦  «        |d<   n# t          $ r ||d<   Y nw xY w|                     d¦  «        }t          |t           ¦  «        r d|v rd|vr|                     d¦  «        |d<   |S )	a  
    Normalize a raw Document dict from the API into the Python SDK's expected shape:
    - Convert top-level keys rawHtml->raw_html, changeTracking->change_tracking
    - Convert metadata keys from camelCase to snake_case
    - Convert branding.colorScheme to branding.color_scheme
    ÚrawHtmlÚraw_htmlÚchangeTrackingÚchange_trackingÚmetadataÚbrandingÚcolorSchemeÚcolor_scheme)ÚdictÚpoprR   rS   r]   r   Úmodel_validateÚ	Exception)r^   Ú
normalizedr   Úmappedre   s        r\   Únormalize_document_inputrn   G   s7  € õ �c‘”€Jà�JÐÐ :°ZÐ#?Ð#?Ø!+§¢°	Ñ!:Ô!:ˆ
�:Ñà˜:Ð%Ð%Ð*;À:Ð*MÐ*MØ(2¯ªÐ7GÑ(HÔ(Hˆ
Ð$Ñ%à	�Š˜
Ñ	#Ô	#€BÝ�"•dÑÔð ,Ý# BÑ'Ô'ˆð	,Ý%5Ô%DÀVÑ%LÔ%LˆJ�zÑ"Ð"øÝð 	,ð 	,ð 	,Ø%+ˆJ�zÑ"Ð"Ð"ð	,øøøð �~Š~˜jÑ)Ô)€HÝ�(�DÑ!Ô!ð CØ˜HÐ$Ð$¨¸xÐ)GÐ)GØ'/§|¢|°MÑ'BÔ'BˆH�^Ñ$àÐs   Â
B" Â"B4Â3B4ÚresultÚresult_typec                 óº   — |dk    rddddœ}n|dk    rddi}n|dk    ri }ni }i }|                       ¦   «         D ] \  }}|                     ||¦  «        }|||<   Œ!|S )	NÚimagesÚ	image_urlÚimage_widthÚimage_height)ÚimageUrlÚ
imageWidthÚimageHeightÚnewsrv   Úweb)rQ   rR   )ro   rp   rW   rX   rY   rZ   r[   s          r\   Ú_map_search_result_keysr{   h   s›   € Ø�hÒÐà#Ø'Ø)ð
ð 
ˆˆð
 
˜Ò	Ð	à˜ð
ˆˆð 
˜Ò	Ð	Øˆˆàˆà€CØ—’‘”ð ð ‰ˆˆ1Ø—’˜A˜qÑ!Ô!ˆØˆˆE‰
ˆ
à€Jó    N)Ú__doc__Útypingr   r   r   Útypesr   rT   r]   rn   r{   © r|   r\   ú<module>r�      së   ððð ð #Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $ð;˜4  S œ>ð ;¨d°3¸°8¬nð ;ð ;ð ;ð ;ð| $ s¨C x¤.ð °T¸#¸s¸(´^ð ð ð ð ðB D¨¨c¨¤Nð Àð ÈÈcÐSVÈhÌð ð ð ð ð ð r|   