analytics_hub 0.4.0
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:
EventProvidernow exposes a directoverrides: EventOverrides?field instead ofoptions: EventOptions?. EventOverridesApplier.applynow acceptsEventOverrides?and no longer depends onEventOptions.- Updated core example, tests, and documentation to use
EventProvider(overrides: ...)and theEventOverridestype directly.
Breaking Changes #
- The
EventOptionstype has been removed from the public API. - Code that previously used
EventProvider(options: EventOptions(overrides: ...))must be updated to useEventProvider(overrides: EventOverrides(...))instead.
0.3.3 - 2026-02-24 #
Changed #
- Added
AnalyticsHub.flush()to allow explicit provider flush before app shutdown. - Updated
AnalytycsProvidercontract:- provider interceptors are now constructor-injected (
final List<EventInterceptor> interceptors); - added overridable
flush()lifecycle method.
- provider interceptors are now constructor-injected (
- 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
flushcoverage. - Updated examples/docs for provider constructor usage with explicit
interceptors.
0.3.2 - 2026-02-24 #
Changed #
- Relaxed
ContextEntryinheritance restriction by changing it fromabstract base classtoabstract class.
0.3.1 - 2026-02-24 #
Changed #
- Refined interception context architecture by extracting
ContextEntryand introducing sharedContextcontract (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
interceptorMetadatatointerceptorContext. - 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, andInterceptorResult. - Hub-level metadata (
interceptorMetadata) and provider-level metadata (interceptorMetadata) in dispatch context.
Changed #
- Reverted core event model to a single
LogEventapproach. - Simplified routing and provider abstractions to log-event-only contracts.
- Updated examples, tests, and documentation to use
List<EventProvider>. AnalyticsHub.sendEventnow appliesEventProvider.options.overridesbefore dispatch.Eventnow exposescontextso 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, andCustomLogEventOptions.ECommerceEvent, all e-commerce event/data types, andECommerceEventResolver.- Generic resolver typing from
ProviderIdentifier,AnalytycsProvider, andEventProvider.
Breaking Changes #
Eventis no longer generic and resolves only viaLogEventResolver.AnalytycsProvideris no longer generic and now exposesLogEventResolver.ProviderIdentifieris no longer generic.EventResolvercontract changed fromresolveEvent(Event)toresolve({required ResolvedEvent event, required EventDispatchContext context}).AnalytycsProvidernow supports optionalinterceptorsandinterceptorMetadata.AnalyticsHubconstructor now supports globalinterceptorsandinterceptorMetadata.
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/EventProviderAPI. - Replaced legacy
ProviderKey/providerKeysnaming in docs withProviderIdentifier/providers. - Updated installation snippets to current package versions.
0.2.0 - 2026-02-23 #
Added #
- New provider-targeting model via
EventProvider<R, O>andEventOptions. - Per-provider overrides for
LogEventviaLogEventOptionsandLogEventOverrides. - Typed per-provider payload overrides for
CustomLogEvent<T>andECommerceEvent<T>throughCustomLogEventOptions<T>andECommerceEventOptions<T>.
Changed #
- Renamed provider identity API from
ProviderKeytoProviderIdentifier. AnalyticsHubnow routes events viaEvent.providersandEventProvider.identifier.- Extended public API documentation to cover new options and routing abstractions.
Breaking Changes #
Event.providerKeyswas removed. ImplementEvent.providersinstead:List<EventProvider<R, O>> get providers.ProviderKey<R>was renamed toProviderIdentifier<R>.AnalytycsProviderconstructor parameter and field were renamed fromkeytoidentifier.Event<R>now requires options type parameter:Event<R, O extends EventOptions>.LogEventnow extendsEvent<LogEventResolver, LogEventOptions>.CustomLogEvent<T>moved tocustom_log_event.dartand now extendsEvent<CustomLogEventResolver<T>, CustomLogEventOptions<T>>.ECommerceEventnow 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, andECommerceEventItem.
0.0.1 - 2026-02-10 #
Added #
- Initial implementation of
AnalyticsHubto fan-out events to multiple analytics providers. - Core event hierarchy:
Event,LogEvent,CustomLogEvent<T>,ECommerceEventandSelectPromotionECommerceEvent. - Provider abstraction:
AnalytycsProvider<R>,ProviderKey<R>,HubSessionDelegateandSessionfor centralized session management.