analytics_hub 0.4.0 copy "analytics_hub: ^0.4.0" to clipboard
analytics_hub: ^0.4.0 copied to clipboard

A unified analytics abstraction for Dart/Flutter. Send events to multiple backends (Firebase, Mixpanel, etc.) through one API with a single LogEvent model and session support.

0.4.0 - 2026-02-26 #

Changed #

  • Simplified provider-specific overrides API: EventProvider now exposes a direct overrides: EventOverrides? field instead of options: EventOptions?.
  • EventOverridesApplier.apply now accepts EventOverrides? and no longer depends on EventOptions.
  • Updated core example, tests, and documentation to use EventProvider(overrides: ...) and the EventOverrides type directly.

Breaking Changes #

  • The EventOptions type has been removed from the public API.
  • Code that previously used EventProvider(options: EventOptions(overrides: ...)) must be updated to use EventProvider(overrides: EventOverrides(...)) instead.

0.3.3 - 2026-02-24 #

Changed #

  • Added AnalyticsHub.flush() to allow explicit provider flush before app shutdown.
  • Updated AnalytycsProvider contract:
    • provider interceptors are now constructor-injected (final List<EventInterceptor> interceptors);
    • added overridable flush() lifecycle method.
  • Simplified dispatch context building by removing provider context merge from EventDispatchContextBuilder.
  • Improved observability with additional logging in dispatch pipeline (AnalyticsHub, dispatcher, chain executor, overrides applier).
  • Updated tests to match context behavior without provider metadata merge and added flush coverage.
  • Updated examples/docs for provider constructor usage with explicit interceptors.

0.3.2 - 2026-02-24 #

Changed #

  • Relaxed ContextEntry inheritance restriction by changing it from abstract base class to abstract class.

0.3.1 - 2026-02-24 #

Changed #

  • Refined interception context architecture by extracting ContextEntry and introducing shared Context contract (Context, ContextEntry, EventContext, EventDispatchContext).
  • Updated dispatch context to use typed metadata context composition instead of separate hub/provider metadata maps.
  • Removed hub-level interceptor context from AnalyticsHub; dispatch context now combines event context and provider interceptor context.
  • Renamed provider metadata contract from interceptorMetadata to interceptorContext.
  • Extended/updated tests for typed context merge behavior (event context + provider context) and removed obsolete hub-context assertions.
  • Updated README docs (EN/UA), examples, and package version snippets for 0.3.1.

0.3.0 - 2026-02-24 #

Added #

  • Universal event interception pipeline with both hub-level and provider-level interceptors.
  • Typed event metadata via EventContext / EventContextEntry (one entry per type, gql_exec-style).
  • New dispatch models: ResolvedEvent, EventDispatchContext, and InterceptorResult.
  • Hub-level metadata (interceptorMetadata) and provider-level metadata (interceptorMetadata) in dispatch context.

Changed #

  • Reverted core event model to a single LogEvent approach.
  • Simplified routing and provider abstractions to log-event-only contracts.
  • Updated examples, tests, and documentation to use List<EventProvider>.
  • AnalyticsHub.sendEvent now applies EventProvider.options.overrides before dispatch.
  • Event now exposes context so metadata is created at event declaration time.
  • Internal interception implementation was decomposed into src/core/interception/* components (EventDispatcher, context builder, chain executor, overrides applier).

Removed #

  • CustomLogEvent, CustomLogEventResolver, and CustomLogEventOptions.
  • ECommerceEvent, all e-commerce event/data types, and ECommerceEventResolver.
  • Generic resolver typing from ProviderIdentifier, AnalytycsProvider, and EventProvider.

Breaking Changes #

  • Event is no longer generic and resolves only via LogEventResolver.
  • AnalytycsProvider is no longer generic and now exposes LogEventResolver.
  • ProviderIdentifier is no longer generic.
  • EventResolver contract changed from resolveEvent(Event) to resolve({required ResolvedEvent event, required EventDispatchContext context}).
  • AnalytycsProvider now supports optional interceptors and interceptorMetadata.
  • AnalyticsHub constructor now supports global interceptors and interceptorMetadata.

0.2.2 - 2026-02-23 #

Changed #

  • Added nullable property value support in LogEvent.properties: Map<String, Object?>?.
  • Added nullable property value support in LogEventOverrides.properties: Map<String, Object?>?.

0.2.1 - 2026-02-23 #

Changed #

  • Updated README examples to the Event.providers / EventProvider API.
  • Replaced legacy ProviderKey/providerKeys naming in docs with ProviderIdentifier/providers.
  • Updated installation snippets to current package versions.

0.2.0 - 2026-02-23 #

Added #

  • New provider-targeting model via EventProvider<R, O> and EventOptions.
  • Per-provider overrides for LogEvent via LogEventOptions and LogEventOverrides.
  • Typed per-provider payload overrides for CustomLogEvent<T> and ECommerceEvent<T> through CustomLogEventOptions<T> and ECommerceEventOptions<T>.

Changed #

  • Renamed provider identity API from ProviderKey to ProviderIdentifier.
  • AnalyticsHub now routes events via Event.providers and EventProvider.identifier.
  • Extended public API documentation to cover new options and routing abstractions.

Breaking Changes #

  • Event.providerKeys was removed. Implement Event.providers instead: List<EventProvider<R, O>> get providers.
  • ProviderKey<R> was renamed to ProviderIdentifier<R>.
  • AnalytycsProvider constructor parameter and field were renamed from key to identifier.
  • Event<R> now requires options type parameter: Event<R, O extends EventOptions>.
  • LogEvent now extends Event<LogEventResolver, LogEventOptions>.
  • CustomLogEvent<T> moved to custom_log_event.dart and now extends Event<CustomLogEventResolver<T>, CustomLogEventOptions<T>>.
  • ECommerceEvent now requires a payload type: ECommerceEvent<T> extends Event<ECommerceEventResolver, ECommerceEventOptions<T>>.

0.1.0 - 2026-02-11 #

Added #

  • Public API documentation (public_member_api_docs) for all core types: AnalyticsHub, events, providers, session, and resolvers.
  • Extended e-commerce event model with typed events and data classes: AddToCart, AddToWishlist, ViewCart, AddPaymentInfo, AddShippingInfo, BeginCheckout, Purchase, RemoveFromCart, SelectItem, ViewItem, ViewItemList, ViewPromotion, Refund, and ECommerceEventItem.

0.0.1 - 2026-02-10 #

Added #

  • Initial implementation of AnalyticsHub to fan-out events to multiple analytics providers.
  • Core event hierarchy: Event, LogEvent, CustomLogEvent<T>, ECommerceEvent and SelectPromotionECommerceEvent.
  • Provider abstraction: AnalytycsProvider<R>, ProviderKey<R>, HubSessionDelegate and Session for centralized session management.
0
likes
160
points
468
downloads

Publisher

unverified uploader

Weekly Downloads

A unified analytics abstraction for Dart/Flutter. Send events to multiple backends (Firebase, Mixpanel, etc.) through one API with a single LogEvent model and session support.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

logging

More

Packages that depend on analytics_hub