
    3~h
                        d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ  ej(                  dej*                        Z G d d      Zy)    )annotationsN)	Awaitable)Callable)iscoroutinefunction)markcoroutinefunction)settings)MiddlewareNotUsed)HttpRequest)HttpResponse)HttpResponseBase)django_browser_reload_scriptz</body>)flagsc                  D    e Zd ZdZdZ	 	 	 	 ddZ	 	 	 	 ddZd	dZd
dZy)BrowserReloadMiddlewareTc                    t         j                  s
t               || _        t	        | j                        | _        | j
                  rt        |        y y N)r   DEBUGr	   get_responser   
async_moder   )selfr   s     i/var/www/peopleoo.sandbox-dev.co.uk/venv/lib/python3.12/site-packages/django_browser_reload/middleware.py__init__z BrowserReloadMiddleware.__init__   sD     ~~#%%(-d.?.?@?? "$'     c                    | j                   r| j                  |      S | j                  |      }t        |t              sJ | j                  |       |S r   )r   	__acall__r   
isinstancer   maybe_inject)r   requestresponses      r   __call__z BrowserReloadMiddleware.__call__*   sN     ??>>'**$$W-($4555(#r   c                   K   | j                  |      }t        |t              rJ | d {   }| j                  |       |S 7 wr   )r   r   r   r   )r   r   resultr   s       r   r   z!BrowserReloadMiddleware.__acall__5   sF     ""7+f&6777<(#  s   )AAAc                `   t         j                  r[t        |dd      sN|j                  j	                  dd      s2|j                  j	                  dd      j                  dd      d   d	k7  ry t        |t              sJ |j                  j                  |j                        }d}t        j                  |      D ]  }d
} |sy |d j                          }|d   }||j                         d  }|t               z   |z   |z   |_        d|j                  v rt!        |j                        |d<   y y )N	streamingFzcontent-encoding zcontent-type;   r   z	text/htmlTzcontent-length)r   r   getattrheadersgetsplitr   r   contentdecodecharsetinsert_before_refinditerstartendr   len)r   r   r,   foundmatchheadtagtails           r   r   z$BrowserReloadMiddleware.maybe_inject<   s#   xe4##$6;##NB7==c1EaHKW(L111""))(*:*:;%..w7 	EE	'Ahuyy{}%">"@@3FMx///),X-=-=)>H%& 0r   N)r   z`Callable[[HttpRequest], HttpResponseBase] | Callable[[HttpRequest], Awaitable[HttpResponseBase]]returnNone)r   r
   r9   z.HttpResponseBase | Awaitable[HttpResponseBase])r   r
   r9   r   )r   r   r9   r:   )	__name__
__module____qualname__sync_capableasync_capabler   r    r   r    r   r   r   r      sE    LM(C( 
($	"		7	?r   r   )
__future__r   retypingr   r   asgiref.syncr   r   django.confr   django.core.exceptionsr	   django.httpr
   r   django.http.responser   django_browser_reload.jinjar   compile
IGNORECASEr/   r   r@   r   r   <module>rL      sL    " 	   , .   4 # $ 1 D2::j> @? @?r   