
    %h                    Z    S SK Jr  S SKJr  S SKrSSKJr  SS jr	 " S S\\
\
4   5      rg)	    )annotationsN   )CallbackDictc                @   ^  [        U 4S jU 4S jU 4S jST < 35      $ )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                &   > U R                  T5      $ N)
_get_valuexkeys    S/var/www/auris/envauris/lib/python3.13/site-packages/werkzeug/datastructures/csp.py<lambda>csp_property.<locals>.<lambda>       !,,s#    c                (   > U R                  TU5      $ r   )
_set_value)r   vr   s     r   r   r      s    Q\\#q)r   c                &   > U R                  T5      $ r   )
_del_valuer
   s    r   r   r      r   r   zaccessor for )property)r   s   `r   csp_propertyr   	   s%    
 #)#
w	 r   c                  
  ^  \ rS rSr% Sr\" S5      rS\S'   \" S5      rS\S'   \" S5      r	S\S	'   \" S
5      r
S\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S5      rS\S'   \" S 5      rS\S!'   \" S"5      rS\S#'   \" S$5      rS\S%'   \" S&5      rS\S&'   \" S'5      rS\S('   \" S)5      rS\S*'   \" S+5      rS\S,'   \" S-5      rS\S.'   \" S/5      rS\S0'   \" S15      rS\S2'   \" S35      rS\S4'     S=     S>U 4S5 jjjr S?S6 jr!S@S7 jr"SAS8 jr#SBS9 jr$SBS: jr%SBS; jr&S<r'U =r($ )CContentSecurityPolicy   a.  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_srcc                6   > [         TU ]  X5        US LU l        g r   )super__init__provided)selfvalues	on_update	__class__s      r   r8   ContentSecurityPolicy.__init__A   s    
 	+d*r   c                $    U R                  U5      $ )+Used internally by the accessor properties.)getr:   r   s     r   r	    ContentSecurityPolicy._get_valueI   s    xx}r   c                8    Uc  U R                  US5        gX U'   gr@   N)pop)r:   r   values      r   r    ContentSecurityPolicy._set_valueM   s    =HHS$Ir   c                    X;   a  X	 ggrE    rB   s     r   r    ContentSecurityPolicy._del_valueT   s    ;	 r   c                    SSK Jn  U" U 5      $ )z6Convert the stored values into a cache control header.   )dump_csp_header)httprN   )r:   rN   s     r   	to_headerContentSecurityPolicy.to_headerY   s    *t$$r   c                "    U R                  5       $ r   )rP   )r:   s    r   __str__ContentSecurityPolicy.__str___   s    ~~r   c                    SR                  S [        U R                  5       5       5       5      nS[        U 5      R                   SU S3$ )N c              3  6   #    U  H  u  pU S U< 3v   M     g7f)=NrJ   ).0kr   s      r   	<genexpr>1ContentSecurityPolicy.__repr__.<locals>.<genexpr>c   s     H3G41QCq,3Gs   <>)joinsorteditemstype__name__)r:   kv_strs     r   __repr__ContentSecurityPolicy.__repr__b   sA    H6$**,3GHH4:&&'q22r   )r9   )rJ   N)r;   z>cabc.Mapping[str, str] | cabc.Iterable[tuple[str, str]] | Noner<   z3cabc.Callable[[ContentSecurityPolicy], None] | NonereturnNone)r   strrg   r   )r   ri   rG   r   rg   rh   )r   ri   rg   rh   )rg   ri   ))rc   
__module____qualname____firstlineno____doc__r   r   __annotations__r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r8   r	   r   r   rP   rS   re   __static_attributes____classcell__)r=   s   @r   r   r      s     (
3Hj3(5Iz5*=9K9*=9K9'
3Hj3*=9K9"./@"AOZA(5Iz5&y1GZ1+N;L*;(5Iz5*=9K9),7J
7+N;L*;+N;L*;(5Iz5),7J
7&y1GZ1),7J
7"./@"AOZA"./@"AOZA(5Iz5!-.>!?NJ?!-.>!?NJ?),7J
7 RTIM+N+ G+ 
	+ +
% 3 3r   r   )r   ri   rg   zt.Any)
__future__r   collections.abcabccabctypingt
structuresr   r   ri   r   rJ   r   r   <module>rx      s-    "   $
N3Lc2 N3r   