export type EditorOption = { label: string; url: string; clipboard?: boolean; }; export type IgnitionConfig = { editor?: string | null; editorOptions?: { [editor: string]: EditorOption; } | null; remoteSitesPath: string; localSitesPath: string; theme: 'light' | 'dark' | 'auto'; enableShareButton: boolean; directorySeparator: string; shareEndpoint: string; }; export type ErrorFrameArgument = { name: string, value: string | number | boolean | object | Array | null, passed_by_reference: boolean, is_variadic: boolean, truncated: boolean, original_type: string, } export type ErrorFrame = { class?: string | null; method: string; code_snippet: { [lineNumber: string]: string }; file: string; relative_file: string; line_number: number; application_frame: boolean; arguments: Array | null; }; // The ErrorOccurrence Ignition UI needs to render. export type ErrorOccurrence = { type: 'web' | 'cli' | 'queue' | null; entry_point: string; exception_message: string; exception_class: string; application_path: string; application_version: string | null; notifier_client_name: string; language_version?: string; framework_version?: string; stage: string; context_items: { env: null | EnvContext; dumps: null | DumpContext; request: null | RequestContext; request_data: null | RequestDataContext; laravel_context: null | LaravelContext; logs: null | LogContext; queries: null | QueryContext; livewire: null | Array; view: null | ViewContext; headers: null | HeadersContext; session: null | SessionContext; cookies: null | CookiesContext; user: null | UserContext; route: null | RouteContext; git: null | GitContext; exception: null | ExceptionContext; arguments: null | ArgumentsContext; job: null | JobContext; }; custom_context_items: Array<{ name: string; items: Record; }> first_frame_class: string; first_frame_method: string; glows: Array; solutions: Array; documentation_links: Array; frames: Array; }; export type HeadersContext = Record; export type SessionContext = Record; export type CookiesContext = Record; export type RequestContext = { // PHP context url: string; ip?: string | null; method?: string | null; useragent?: string | null; // JS context referrer?: string | null; readyState?: string | null; }; export type RequestDataContext = { queryString: Record; body: null | string | Record; files: null | string | Array; // TODO: figure out what this is }; export type LaravelContext = Record; export type EnvContext = { laravel_version?: string; laravel_locale?: string; laravel_config_cached?: boolean; app_debug?: boolean; app_env?: string; php_version?: string; [key: string]: any; }; export type UserContext = { [key: string]: string | null; }; export type ArgumentsContext = Array; export type ExceptionContext = Record; export type JobContext = Record; export type GitContext = { hash: string; message: string; tag: string | null; remote: string | null; isDirty: boolean; }; export type RouteContext = { route: string | null; routeParameters: null | Record; controllerAction: string | null; middleware: Array; }; export type ViewContext = { view: string; data: Record; }; export type LivewireContext = { component_alias?: string; component_class?: string; component_id: string; data: Record; memo?: Record; updates: Array<{ payload: Record; type: string; }>; calls?: Array<{ path: string, method: string, params: Record; }> }; export type QueryContext = Array | { [key: string]: QueryDebug }; export type DumpContext = Array | { [key: string]: DumpDebug }; export type LogContext = Array | { [key: string]: LogDebug }; export type ErrorGlow = { message_level: LogLevel; meta_data: Record; microtime: number; name: string; }; export type ErrorSolution = { class: string; title: string; description: string; links: { [label: string]: string }; ai_generated?: boolean; is_runnable: boolean; action_description?: string; run_button_text?: string; execute_endpoint?: string; run_parameters?: string; }; export type FrameType = 'application' | 'vendor' | 'unknown'; export type StackFrameGroupType = { type: FrameType; relative_file: string; expanded: boolean; frames: Array; }; export type Tabname = 'stackTraceTab' | 'requestTab' | 'appTab' | 'userTab' | 'contextTab' | 'debugTab'; export type SharePostData = { tabs?: Array; selectedTabNames: Array; lineSelection: string; }; export type QueryDebug = { bindings: Array | null; microtime: number; sql: string; time: number; connection_name: string; }; export type QueryDebugWithBindings = QueryDebug & { bindings: Array; }; export type DumpDebug = { html_dump: string; file: string; line_number: number; microtime: number; }; export type LogLevel = 'debug' | 'info' | 'notice' | 'warning' | 'error' | 'critical' | 'alert' | 'emergency' | 'warn'; export type LogDebug = { context: Record; level: LogLevel; message: string; microtime: number; };