Module

contracts.rules_sse

SSE contract cross-checks.

Functions

normalize_sse_url 1 str
Replace Kida expressions so route-pattern matching still works.
def normalize_sse_url(url: str) -> str
Parameters
Name Type Description
url str
Returns
str
extract_sse_swap_values 1 set[str]
Extract all sse-swap event names from source.
def extract_sse_swap_values(source: str) -> set[str]
Parameters
Name Type Description
source str
Returns
set[str]
check_sse_self_swap 1 list[ContractIssue]
Error when sse-swap appears on same element as sse-connect.
def check_sse_self_swap(template_sources: dict[str, str]) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
Returns
list[ContractIssue]
check_sse_connect_scope 2 list[ContractIssue]
Warn when sse-connect is inside broad hx-target scope without mitigation.
def check_sse_connect_scope(template_sources: dict[str, str], broad_targets: set[str]) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
broad_targets set[str]
Returns
list[ContractIssue]
check_sse_event_crossref 2 list[ContractIssue]
Cross-reference sse-swap values against SSEContract.event_types.
def check_sse_event_crossref(template_sources: dict[str, str], router: Router) -> list[ContractIssue]
Parameters
Name Type Description
template_sources dict[str, str]
router Router
Returns
list[ContractIssue]