
    i;              	          d dl Z d dlmZmZmZmZmZ d dlmZm	Z	 d dl
mZ deeeeeef         eeee         f         f                  deeee         f         fdZded	ee         deeef         fd
Zdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         dee         fdZdeeef         deeeef                  fdZdedeeef         defdZdeeee         f         dee         fdZdeeeeeee         f         f                  deeee         f         fdZdefdZdefdZ dS )    N)OptionalDictUnionAnySequence)	parse_qslparse_qs)BoltContextqueryreturnc                    | i S t          | t                    rt          t          | d                    S t          | t                    st	          | d          rwi }|                                 D ]^\  }}t          |t                    r|||<    t          |t                    r|g||<   <t          dt          |           d|  d          |S t          dt          |            d          )NTkeep_blank_valuesitemsUnsupported type () of element in headers ()z$Unsupported type of query detected ()	
isinstancestrdictr	   hasattrr   list
ValueErrortype)r   resultnamevalues       c/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/slack_bolt/request/internals.pyparse_queryr      s   }		E3		 PHUd;;;<<<	E4	 	  PGE7$;$; P+- ;;== 	f 	fKD%%&& f$tE3'' f %wt !dd5kk!d!d\a!d!d!deeeNUNNNOOO    bodycontent_typec                 F   | si S ||dk    s|                      d          rt          j        |           S d| v rKt          t	          | d                    }|                    d          }|t          j        |          S i S t          t	          | d                    S )Nzapplication/json{payloadTr   )
startswithjsonloadsr   r   get)r!   r"   paramsr%   s       r   
parse_bodyr+      s     	 \5G%G%GDOO\_L`L`%Gz$)DDAAABBFjj++G"z'***		$$???@@@r    r%   c                     |                      d          4t          | d                   dk    rt          | d         d                   S d| v r#|                      d          }|d uo	|du p|dk    S dS )Nauthorizationsr   is_enterprise_installTtrueF)r)   lenextract_is_enterprise_install)r%   r.   s     r   r1   r1   ,   s    {{#$$0SAQ9R5S5SVW5W5W -W5E-Fq-IJJJ')) ',C D D$D0w6Kt6S6vWlpvWvw5r    c                 l   |                      d          }|0t          |t                    r|S d|v r|                     d          S |                      d          4t          | d                   dk    rt	          | d         d                   S d| v r|                      d          S t          |                      d          t
                    r%d| d         v r| d                              d          S t          |                      d          t
                    rt	          | d                   S d S )N
enterpriseidr-   r   enterprise_idteamevent)r)   r   r   r0   extract_enterprise_idr   )r%   orgs     r   r8   r8   7   s&   
++l
#
#C
c3 	!JS[[774== {{#$$0SAQ9R5S5SVW5W5W %W-=%>q%ABBB'!!{{?+++'++f%%t,, 4GFO1S1Sv""?333'++g&&-- 7$WW%56664r    c                    |                      d          du r|                      d          dk    r|                      di                                d          p(|                      di                                d          }|$t          |                              d          r|S ||                      d	          k    r|                      d
          S d S t          |           S )Nis_ext_shared_channelTr   event_callbackr7   	user_teamr6   Eteam_idr5   )r)   r   r&   r8   )r%   event_team_ids     r   extract_actor_enterprise_idrA   L   s    {{*++t33;;v"222 $KK4488EEmU\^`IaIaIeIeflImImM(S-?-?-J-J3-O-O($$I 6 666{{?3334 )))r    c                 b   |                      d          }t          |t                    r|                     d          |d         S |                      d          G|                      d          }t          |t                    r|S |rd|v r|                     d          S |                      d          4t	          | d                   dk    rt          | d         d                   S d| v r|                      d          S t          |                      d          t                    rt          | d                   S t          |                      d	          t                    r| d	         d         S t          |                      d          t                    r| d         d         S d S )
Nviewapp_installed_team_idr6   r4   r-   r   r?   r7   user)r)   r   r   r   r0   extract_team_id)r%   rC   r6   s      r   rF   rF   Z   s   ;;vD$ -$((+B"C"C"O
 +,,{{6& {{6""dC   	"K 	"ddll88D>>!{{#$$0SAQ9R5S5SVW5W5W w'78;<<<G{{9%%%'++g&&-- 1ww/000'++f%%t,, *vy))'++f%%t,, *vy))4r    c                    |                      d          du r_|                      d          dk    rE|                      di                                d          }|dk    rz|                      di                                d          }|)|                      di                                d          S t          |                              d	          r|S d S |                      di                                d          }|t          |                              d	          r|S t          |                              d
          r\||                      d          k    r|                      d          S ||                      d          k    r|                      d          S |                      di                                d          }|t          |                              d	          r|S t          |                              d
          r\||                      d          k    r|                      d          S ||                      d          k    r|                      d          S d S t          |           S )Nr;   Tr   r<   r7   app_mentionr=   r6   Tr>   r5   r?   context_enterprise_idcontext_team_id)r)   r   r&   rF   )r%   
event_typer=   event_user_team
event_teams        r   extract_actor_team_idrO   y   s[   {{*++t33;;v"222 Wb1155f==J]** $KK4488EE	$";;w3377???y>>,,S11 %$$t &kk'266::;GGO*''22377 >**))44S99 >&'++o*F*FFF&{{9555(GKK8O,P,PPP&{{+<=== Wb1155f==J%z??--c22 >%%__//44 >!W[[%A%AAA&{{9555#w{{3J'K'KKK&{{+<===47###r    c                 4   |                      d          }|0t          |t                    r|S d|v r|                     d          S d| v r|                      d          S t          |                      d          t                    rt	          | d                   S t          |                      d          t                    rt	          | d                   S t          |                      d          t                    rt	          | d                   S d S )NrE   r4   user_idr7   messageprevious_message)r)   r   r   r   extract_user_id)r%   rE   s     r   rT   rT      s    ;;vDdC   	"KT\\88D>>!G{{9%%%'++g&&-- 1ww/000'++i(($// 3wy1222'++011488 <w'9:;;;4r    c                 F   |                      d          du r||                      d          dk    rc|                      d          }|d S t          |           t          |           d S |                     d          p|                     d          S t          |           S )Nr;   Tr   r<   r7   rE   rQ   )r)   rA   rO   rT   )r%   r7   s     r   extract_actor_user_idrV      s    {{*++t33;;v"222KK((E}t*733;@UV]@^@^@ft99V$$<		)(<(<<7###r    c                 4   |                      d          }|0t          |t                    r|S d|v r|                     d          S d| v r|                      d          S t          |                      d          t                    rt	          | d                   S t          |                      d          t                    rt	          | d                   S t          |                      d          t                    rt	          | d                   S d S )Nchannelr4   
channel_idr7   itemassistant_thread)r)   r   r   r   extract_channel_id)r%   rX   s     r   r\   r\      s   kk)$$Ggs## 	%NW__;;t$$$w{{<((('++g&&-- 4!''"2333'++f%%t,, 3!'&/222'++011488 ?!'*<"=>>>4r    c                     |                      d          }||S t          |                      d          t                    rt          | d                   S t          |                      d          t                    rt          | d                   S t          |                      d          t                    rt          | d                   S t          |                      d          t                    rt          | d                   S d S )N	thread_tsr7   r[   rR   rS   )r)   r   r   extract_thread_ts)r%   r^   s     r   r_   r_      s    K((I'++g&&-- 3 !1222'++011488 > );!<==='++i(($// 5 !3444'++011488 > );!<===4r    c                 Z   |                      d          |                      d          S t          |                      d          t                    rt          | d                   S t          |                      d          t                    r| d                              d          S d S )Nfunction_execution_idr7   function_dataexecution_id)r)   r   r   extract_function_execution_idr%   s    r   rd   rd      s    {{*++7{{2333'++g&&-- ?,WW-=>>>'++o..55 <'++N;;;4r    c                     |                      d          |                      d          S t          |                      d          t                    r| d                              d          S d S )Nbot_access_tokenr7   )r)   r   r   re   s    r   !extract_function_bot_access_tokenrh      se    {{%&&2{{-...'++g&&-- 8w##$67774r    c                    t          |                     d          t                    r| d                             d          S t          |                     d          t                    r| d                             d          S d S )Nr7   inputsrb   )r   r)   r   re   s    r   extract_function_inputsrk      su    '++g&&-- .w##H---'++o..55 6'++H5554r    contextc                    t          |          | d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t	          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }|r|| d<   t          |          }	|	r|	| d	<   t          |          }
|
1|
| d
<   t          |          }||| d<   t          |          }||| d<   d|v r|d         | d<   nxd|v rt|d         }t          |          dk    rYt          |          dk    r&| j                            t                                 |d                             d          }|| d<   | S )Nr.   r5   r?   rQ   actor_enterprise_idactor_team_idactor_user_idrY   r^   ra   function_bot_access_tokenrj   response_urlresponse_urls   r   )r1   r8   rF   rT   rA   rO   rV   r\   r_   rd   rh   rk   r0   loggerdebug%debug_multiple_response_urls_detectedr)   )rl   r!   r5   r?   rQ   rn   ro   rp   rY   r^   ra   rq   rj   rs   rr   s                  r   build_contextrx     s   'DT'J'JG#$)$//M 1#0 d##G %$	d##G %$	5d;; =)<%&)$//M 1#0 )$//M 1#0 #D))J + *!$''I )(9$??(+@'($Ed$K$K!$03LG/0(.. &GH"&~"6	D	 	 _-}""=!!A%%$$%J%L%LMMM(+//??L&2GN#Nr    headersc                 z    |                      dd g          d         }|r|                    d          d         S d S )Nzcontent-typer   ;)r)   split)ry   r"   s     r   extract_content_typer}   2  sB    ")++ntf"E"Ea"HL *!!#&&q))4r    c                    i }| |                                  D ]r\  }}|                                }t          |t                    r|||<   4t          |t                    r|g||<   Pt          dt          |           d|  d          |S )Nr   r   r   )r   lowerr   r   r   r   r   )ry   normalized_headerskeyr   normalized_names        r   build_normalized_headersr   9  s    35!--// 	h 	hJC!iikkO%&& h6;"?33E3'' h7<g"?33 !fd5kk!f!f\c!f!f!fgggr    c                      dS )NzE`body` must be a raw string data when running in the HTTP server mode r   r    r   ,error_message_raw_body_required_in_http_moder   G  s    RRr    c                      	 dS )Nz`response_urls` in the body has multiple URLs in it. If you would like to use non-primary one, please manually extract the one from body['response_urls'].r   r   r    r   rw   rw   K  s    	F r    )!r'   typingr   r   r   r   r   urllib.parser   r	   slack_bolt.contextr
   r   r   r+   boolr1   r8   rA   rF   rO   rT   rV   r\   r_   rd   rh   rk   rx   r}   r   r   rw   r   r    r   <module>r      s/    7 7 7 7 7 7 7 7 7 7 7 7 7 7 , , , , , , , , * * * * * *Pxc4S>4Xc]@R;S&S TU PZ^_bdlmpdq_qZr P P P P&AS A A$sCx. A A A A"4S> htn    4S> hsm    **c3h *HSM * * * *T#s(^     >'$4S> '$hsm '$ '$ '$ '$TT#s(^     (
$4S> 
$hsm 
$ 
$ 
$ 
$S#X 8C=    (tCH~ (3-    4S> hsm    tCH~ (3-    T#s(^ c3h8P    .; .d38n . . . . .b$sHSM'9": x}    htCsHSM?Q9R4R/S&T Y]^acklocp^pYq    Sc S S S Ss      r    