app_log_tracker library

Classes

FlushResult
InMemoryTrackStorage
Storage in-memory. Buat unit test & fallback tanpa native.
LogTracker
Entry point package. Thread aman untuk <500 event per user.
LogTrackerConfig
SqfliteTrackStorage
Storage persist pakai sqflite. Aman untuk <500 event per user, support dedup via UNIQUE(dedup_key), query by key_event/status.
TrackedHttpClient
Wrapper package:http biar auto-track tanpa ubah call site. Pakai: final client = TrackedHttpClient(tracker, http.Client());
TrackerBubble
Tombol bubble buat buka log dari dalam app (debug only).
TrackerDioInterceptor
Auto-track semua request Dio sebagai keyEvent: 'api_log'. Pasang: dio.interceptors.add(TrackerDioInterceptor(tracker)).
TrackerLogPage
Halaman debug: lihat, cari, filter, dan hapus log yang tersimpan di local. Read-only kecuali tombol hapus (dipakai saat logout / testing). Bahasa UI diatur via language (default Indonesia).
TrackerStrings
Semua string user-facing overlay. Tambah bahasa baru = tambah class.
TrackEvent
Satu event log. Bisa dari API otomatis atau custom (errorApiRegistrasi, notif_read, ...).
TrackStorage
Interface storage. Domain tidak tau sqflite / memory / hive. Implementasi default: InMemory (test) + Sqflite (persist).

Enums

TrackerLanguage
Bahasa UI halaman Track Log. Default Indonesia yang friendly, English tersedia buat consumer luar.
TrackStatus
Positive / negative case dari sebuah event.

Functions

canonicalJson(Map<String, dynamic> data) → String
JSON kanonis: sort keys rekursif biar hash stabil.
stableHash(String input) → String
djb2 — kecil, stabil antar run (String.hashCode tidak stabil).