type HeaderField = record { text; text; }; type HttpRequest = record { method : text; url : text; headers : vec HeaderField; body : blob; certificate_version : opt nat16; }; type HttpResponse = record { status_code : nat16; headers : vec HeaderField; body : blob; upgrade : opt bool; }; type StreamingCallbackHttpResponse = record { body : blob; token : opt Token; }; type Token = record {}; type StreamingStrategy = variant { Callback : record { callback : func(Token) -> (StreamingCallbackHttpResponse) query; token : Token; }; }; type AnalyticsConfig = variant { Plausible : record { domain : opt text; hash_mode : opt bool; track_localhost : opt bool; api_host : opt text; }; }; type DummyAuthConfig = record { // Prompts user for a index value (0 - 255) when set to true, // this is used in e2e to have multiple dummy auth identities. prompt_for_index : bool; }; type InternetIdentityFrontendInit = record { backend_canister_id : principal; backend_origin : text; related_origins : opt vec text; fetch_root_key : opt bool; analytics_config : opt opt AnalyticsConfig; dummy_auth : opt opt DummyAuthConfig; dev_csp : opt bool; }; service : (InternetIdentityFrontendInit) -> { http_request : (request : HttpRequest) -> (HttpResponse) query; };