analytics_hub_appsflyer-v0.5.0
analytics_hub_appsflyer-v0.5.0: Release 0.5.0: drop sessions, port fixes, CI, and docs overhaul (#1)
* Release 0.5.0: port zeely-mobile fixes, drop session support, add CI Port behavior fixes made in the zeely-mobile copies of these packages: - ProviderIdentifier equality/hashCode now include the runtime type so identifiers of different subclasses with the same name don't collide - AnalyticsHub.initialize initializes providers sequentially (Future.forEach) instead of concurrently - Quieter logging: sendEvent logs at fine level and the dispatch pipeline no longer logs each step - Provider constructors accept an optional interceptors parameter Remove session support (breaking): Session, HubSessionDelegate, AnalyticsHub.sessionDelegate and AnalytycsProvider.setSession are gone; apps manage user identity directly on the underlying SDKs. The getAnonymousId parameters of the Mixpanel/Appsflyer providers are removed with it. Add GitHub Actions CI modeled on basalt_dart: analyze/format/test plus publish dry-run on every push/PR, and tag-driven pub.dev publishing via OIDC (<package>-v<version> tags). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Audit cleanup: drop dead code and unnecessary dependencies - Firebase/Appsflyer providers: remove flush() overrides that existed only to log a "not supported" message — the base AnalytycsProvider flush() is already a no-op. This drops the logging dependency from all three provider packages (mixpanel no longer imported it at all). - analytics_hub core is now a pure Dart package: flutter_test dev dependency removed (tests only use package:test), so `dart test` works without a Flutter SDK. - Remove unused dev dependencies: `test` from the provider packages (their tests use flutter_test), `lints` from mixpanel (inherited from the workspace root), `test` from the root package (no tests there). - Provider tests: delete dead _TestEvent classes and registerFallbackValue setup left over from the removed setSession tests, plus the now-unused analytics_hub imports. - Core internals: remove unused DispatchTarget.providerIdentifier getter; EventDispatcher.dispatch returns the executor future directly instead of awaiting into a local. - Root README: close the unterminated yaml code fence in Quick start that swallowed the rest of the page on render. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Rename AnalytycsProvider to AnalyticsProvider, fix workspace layout Fix the long-standing typo in the provider base class name across all packages, docs, examples, and tests. No compatibility alias is kept — the packages have no external consumers yet. Also move `resolution: workspace` from pubspec_overrides.yaml into each package's pubspec.yaml (the layout basalt_dart and zeely-mobile use, and what `dart test`'s workspace validation expects) and delete the overrides files. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Fix mixpanel_flutter lower bound for pub.dev score compliance Ran pana (the tool pub.dev uses to compute package score) against all four packages. analytics_hub itself scores a clean 160/160. Found a real bug via the "compatible with dependency constraint lower bounds" check: mixpanel_flutter's declared minimum (2.0.0) allows versions up to 2.2.0 where Mixpanel.track() returns void instead of Future<void>. MixpanelEventResolver.resolve declares a Future<void> return type and returns the track() call directly, so pinning an old 2.x mixpanel_flutter breaks analysis (and would break at runtime for anyone actually on that range). Raised the lower bound to >=2.3.0, where track() became async. Verified `dart analyze` is clean and tests pass with dependencies downgraded to their lower bounds. The three provider packages can't get a full pana score yet since they depend on analytics_hub, which isn't published to pub.dev — pana (like pub.dev itself) resolves dependency_overrides are ignored for scoring, so this is a publish-order concern rather than a code issue: publish analytics_hub first, then the providers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add design spec for basalt_dart-style documentation Covers badges + workspace banners on all READMEs, a "what's inside" reference table in the core README, a packages/analytics_hub/doc/ folder with four deep-dive guides, and a root CONTRIBUTING.md — scoped down from basalt_dart's equivalent docs to this repo's size. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Add basalt_dart-style documentation Badges + "part of workspace" banners on every README (EN/UA), a "what's inside" reference table in the core README, a packages/analytics_hub/doc/ folder with four deep-dive guides (getting started, providers, interceptors & context, testing), and a root CONTRIBUTING.md — implements the design spec, which is removed now that it's realized in the actual docs. Skipped the MIT license badge from the original spec: the repo has no LICENSE file, so that badge would have been false. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Remove initialize and dispose from provider lifecycle SDK lifecycle belongs in the app — keep only flush for buffered backends. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix example formatting for CI Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>