
    /h                    f    d dl mZ d dlmZ d dlZddlmZ dd	Z	 G d
 dee
e
f                   ZdS )    )annotationsN   )CallbackDictkeystrreturnt.Anyc                @     t           fd fd fdd           S )zReturn a new property object for a content security policy header.
    Useful if you want to add support for a csp extension in a
    subclass.
    c                .    |                                S N)
_get_valuexr   s    N/var/www/html/venv/lib/python3.11/site-packages/werkzeug/datastructures/csp.py<lambda>zcsp_property.<locals>.<lambda>       !,,s##     c                0    |                      |          S r   )
_set_value)r   vr   s     r   r   zcsp_property.<locals>.<lambda>   s    Q\\#q)) r   c                .    |                                S r   )
_del_valuer   s    r   r   zcsp_property.<locals>.<lambda>   r   r   zaccessor for )property)r   s   `r   csp_propertyr   	   sF    
 ####))))####	  r   c                  |    e Zd ZU dZ ed          Zded<    ed          Zded<    ed          Zded<    ed	          Z	ded
<    ed          Z
ded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded<    ed          Zded <    ed!          Zded"<    ed#          Zded$<    ed%          Zded%<    ed&          Zded'<    ed(          Zded)<    ed*          Zded+<    ed,          Zded-<    ed.          Zded/<    ed0          Zded1<    ed2          Zded3<   	 	 dFdG fd<ZdHd?Z dIdAZ!dJdBZ"dKdCZ#dKdDZ$dKdEZ% xZ&S )LContentSecurityPolicyaV  Subclass of a dict that stores values for a Content Security Policy
    header. It has accessors for all the level 3 policies.

    Because the csp directives in the HTTP header use dashes the
    python descriptors use underscores for that.

    To get a header of the :class:`ContentSecuirtyPolicy` object again
    you can convert the object into a string or call the
    :meth:`to_header` method.  If you plan to subclass it and add your
    own items have a look at the sourcecode for that class.

    .. versionadded:: 1.0.0
       Support for Content Security Policy headers was added.

    zbase-uri
str | Nonebase_uriz	child-src	child_srczconnect-srcconnect_srczdefault-srcdefault_srczfont-srcfont_srczform-actionform_actionzframe-ancestorsframe_ancestorsz	frame-src	frame_srczimg-srcimg_srczmanifest-srcmanifest_srcz	media-src	media_srcznavigate-tonavigate_toz
object-src
object_srczprefetch-srcprefetch_srczplugin-typesplugin_typesz	report-to	report_toz
report-uri
report_urisandboxz
script-src
script_srczscript-src-attrscript_src_attrzscript-src-elemscript_src_elemz	style-src	style_srczstyle-src-attrstyle_src_attrzstyle-src-elemstyle_src_elemz
worker-src
worker_src Nvalues>cabc.Mapping[str, str] | cabc.Iterable[tuple[str, str]] | None	on_update3cabc.Callable[[ContentSecurityPolicy], None] | Noner   Nonec                ^    t                                          ||           |d u| _        d S r   )super__init__provided)selfr8   r:   	__class__s      r   r?   zContentSecurityPolicy.__init__A   s/    
 	+++d*r   r   r   c                ,    |                      |          S )+Used internally by the accessor properties.)getrA   r   s     r   r   z ContentSecurityPolicy._get_valueI   s    xx}}r   valuec                D    ||                      |d           dS || |<   dS rD   N)pop)rA   r   rG   s      r   r   z ContentSecurityPolicy._set_valueM   s.    =HHS$DIIIr   c                    || v r| |= dS dS rI   r7   rF   s     r   r   z ContentSecurityPolicy._del_valueT   s    $;;S			 ;r   c                $    ddl m}  ||           S )z6Convert the stored values into a cache control header.   )dump_csp_header)httprN   )rA   rN   s     r   	to_headerzContentSecurityPolicy.to_headerY   s$    ******t$$$r   c                *    |                                  S r   )rP   )rA   s    r   __str__zContentSecurityPolicy.__str___   s    ~~r   c                    d                     d t          |                                           D                       }dt          |           j         d| dS )N c              3  *   K   | ]\  }}| d |V  dS )=Nr7   ).0kr   s      r   	<genexpr>z1ContentSecurityPolicy.__repr__.<locals>.<genexpr>c   s0      HH41aQ,,,,HHHHHHr   <>)joinsorteditemstype__name__)rA   kv_strs     r   __repr__zContentSecurityPolicy.__repr__b   sT    HH6$**,,3G3GHHHHH24::&222222r   )r7   N)r8   r9   r:   r;   r   r<   )r   r   r   r   )r   r   rG   r   r   r<   )r   r   r   r<   )r   r   )'r`   
__module____qualname____doc__r   r   __annotations__r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r?   r   r   r   rP   rR   rb   __classcell__)rB   s   @r   r   r      sz           (<
33H3333(L55I5555*l=99K9999*l=99K9999'<
33H3333*l=99K9999".,/@"A"AOAAAA(L55I5555&,y11G1111+|N;;L;;;;(L55I5555*l=99K9999)\,77J7777+|N;;L;;;;+|N;;L;;;;(L55I5555)\,77J7777&,y11G1111)\,77J7777".,/@"A"AOAAAA".,/@"A"AOAAAA(L55I5555!-.>!?!?N????!-.>!?!?N????)\,77J7777 RTIM+ + + + + + +         
% % % %       3 3 3 3 3 3 3 3r   r   )r   r   r   r	   )
__future__r   collections.abcabccabctypingt
structuresr   r   r   r   r7   r   r   <module>ro      s    " " " " " "           $ $ $ $ $ $
 
 
 
N3 N3 N3 N3 N3Lc2 N3 N3 N3 N3 N3r   