pulse_dev 0.1.0
pulse_dev: ^0.1.0 copied to clipboard
Pure Dart core for the Pulse Developer Intelligence SDK. Provides event models, the event pipeline, transport and storage interfaces, privacy sanitization, breadcrumb buffering, performance instrument [...]
0.1.0 #
Initial release of pulse_dev — the pure Dart core of the Pulse SDK.
Added #
Event System
PulseEvent— sealed base class with unique ID, timestamp, and event typeErrorEvent— captures DartErrorinstances with type, message, and stack traceExceptionEvent— captures DartExceptioninstances with type, message, and stack traceBreadcrumbEvent— structured breadcrumb with category, level, message, and metadataCustomEvent— arbitrary developer-defined events with typed propertiesNetworkEvent— HTTP request/response metric captureTransactionEvent— performance transaction with spans and duration measurementPulseSpan— lightweight child span within a transactionPulseEventType— enum for all event categoriesBreadcrumbLevel— severity levels for breadcrumbs (debug, info, warning, error)
Context
PulseContext— immutable application/device metadata carrier (OS, locale, app version)
Configuration
PulseConfig— immutable SDK configuration value object with DSN validation, sampling, and feature flagsPulseNetworkConfig— network monitoring configuration (headers, body capture, URL redaction)PulsePerformanceConfig— performance monitoring configuration (sampling, slow operation detection)PulseSanitizationConfig— privacy sanitization configuration (additional redacted keys, string patterns)
Event Pipeline
EventPipeline— orchestrates the full processing chain: processors → sanitizer → queue → transportEventProcessor— abstract interface for composable event enrichment and filteringSanitizingProcessor— convenience processor wrapping anyPulseSanitizerPulseEventObserver— interface for telemetry event observation (used by the debug inspector)
Privacy & Sanitization
PulseSanitizer— abstract interface for event sanitizationDefaultSanitizer— production sanitizer with recursive redaction of 20+ sensitive key patterns includingpassword,token,authorization,api_key,cookie,secret,credit_card,ssn, and more- Recursive
MapandListsanitization - Configurable additional redacted keys via
PulseSanitizationConfig - String pattern sanitization via callbacks
- Maximum payload size protection
Network Monitoring
PulseNetworkObserver— core network event capture abstraction- Configurable URL parameter redaction
- Configurable header and body capture
Performance Monitoring
PulseTransaction— abstract interface for performance transactionsActivePulseSpan— abstract interface for timing spansRealPulseTransaction— concrete transaction implementation with span tree support- Configurable sampling rate
Transport
PulseTransport— abstract interface for pluggable event deliveryPulseTransportResult— delivery status enum (success, retryableFailure, permanentFailure)NoOpTransport— default no-operation transport for development and testingInMemoryTransport— in-memory transport for unit testing
Storage & Offline Queue
PulseStorage— abstract storage interface for offline event persistenceInMemoryPulseStorage— memory-backed storage implementationEventQueue— FIFO event queue with configurable retry, exponential backoff, max size, expiration, and duplicate protection
Breadcrumbs
BreadcrumbBuffer— fixed-capacity circular ring buffer (configurable, default 100 entries)
Utilities
PulseLogger— abstract interface for SDK-internal diagnosticsNoOpLogger— default no-operation loggerClock— injectable clock interface for deterministic testingSystemClock— production wall-clock implementationIdGenerator— injectable ID generator interfaceUuidGenerator— UUID v4 implementation usingpackage:uuidkPulseSdkVersion— SDK version constantkPulseEventSchemaVersion— event schema version constantPulsePlatform— string constants for standard platform identifiers