xray_inspector

Core inspector package — network, log, and key-value inspectors plus the HTTP server for remote inspection.

Core orchestration package. Contains the inspector classes, repository layer, and the HTTP/WebSocket server that broadcasts inspector data to remote UI clients.

Installation

dependencies:
  xray_inspector: ^0.0.1

What's included

  • XRayNetworkInspector — captures and stores network calls
  • XRayLogInspector — captures and stores log entries
  • XRayKeyValueInspector — base class for key-value inspectors
  • XRayInspectorServer — HTTP + WebSocket + UDP discovery server
  • XRayInspectorServerConfig — server configuration

XRayNetworkInspector

final inspector = XRayNetworkInspector(title: 'Network');
MemberTypeDescription
titleStringDisplay name (default: "Network")
idStringDerived from title, used as server route ID
callsList<XRayNetworkCall>Current captured calls (snapshot)
callsNotifierValueNotifier<List<...>>Reactive calls list
findById(id)XRayNetworkCall?Look up a call by ID
addListener(l)voidRegister a listener
removeListener(l)voidUnregister a listener
clear()voidClear all captured calls

XRayLogInspector

final inspector = XRayLogInspector(title: 'Logs');
MemberTypeDescription
titleStringDisplay name (default: "Logs")
entriesList<XRayLogInspectorEntry>Current log entries
entriesNotifierValueNotifier<List<...>>Reactive entries list
verbose(message)voidLog at verbose level
debug(message)voidLog at debug level
info(message)voidLog at info level
warning(message)voidLog at warning level
error(message)voidLog at error level
log(message, level:)voidLog with explicit level
clear()voidClear all entries

XRayKeyValueInspector

Base class used by XRaySharedPreferencesInspector and XRaySecureStorageInspector.

final inspector = XRayKeyValueInspector(source: mySource);
MemberTypeDescription
titleStringDerived from source.title
entriesNotifierValueNotifier<List<InspectorKeyValueEntry>>Reactive entries
refresh()Future<void>Re-read all entries from the source
write(key, value)Future<void>Write a value and refresh
delete(key)Future<void>Delete a key and refresh
clear()voidDelete all keys

XRayInspectorServer

final server = XRayInspectorServer(
  config: XRayInspectorServerConfig(
    inspectors: [networkInspector, logInspector],
    httpPort: 8080,
    discoveryPort: 8081,
  ),
);

await server.start();
await server.stop();

XRayKeyValueSource

Implement this interface to add any key-value store:

abstract class XRayKeyValueSource {
  String get title;
  Future<Map<String, String>> readAll();
  Future<void> write(String key, String value);
  Future<void> delete(String key);
}