testerpaykit library
Classes
- AnnotatedElementInfo
- Information about an annotated element for automation
- AnnotatedScreenshot
- An annotated screenshot containing both image data and widget metadata
- AnnotatedScreenshotService
- Service for capturing annotated screenshots with widget metadata
- AnnotationEvent
- Event emitted when annotations change
- AnnotationInteraction
- Record of an interaction with an annotated widget
- AnnotationInteractionTracker
- Service that tracks interactions with annotated widgets and auto-completes tasks based on completion triggers
- ApiClient
- AppMetadata
- App metadata
- AssignedTask
-
One task assigned to the calling tester, as returned by
GET /v1/testers/tasks. taskPresetId is the stable id a host app annotates a widget with (viaTesterTaskRelevant(taskId: …)); assignmentId is the per-tester row the start/complete endpoints act on. - AssignedTasks
- The tester's task list + the server-computed completed/total counts.
- AttachmentResponse
- Attachment response
- BugFix
- Information about a recently fixed bug
- BugMarker
- Marker widget for identifying widgets associated with bugs
- BugMarkerInfo
- Information about a discovered bug marker
- BugMarkerOverlay
- Visual bug marker overlay that shows bug information
- BugMarkerRenderObject
- Render object for BugMarker
- BugReportResponse
- Bug report response
- BugReportSubmitResult
- Result of submitting one bug report.
- BugReportUploadService
- Network-aware bug report upload service with offline queueing
- BuildInfo
- Information about the current build being tested
- DeviceMetadata
- Minimal device metadata (privacy-preserving)
- ErrorBudget
- Error budget for graceful failure handling
- EventTracker
- Tracks and stores events
- FeedbackResponse
- Feedback response
- FeedbackStats
- Feedback statistics
- FocusArea
- Testing focus area with guidance for testers
- FocusAreaMarkerInfo
- Information about a focus area marker
- IntegrityHelper
- Helper class for generating and verifying integrity hashes
- KnowledgeBaseAnswer
-
Answer returned by
ApiClient.askKnowledgeBase. Mirrors the/knowledge-base/queryresponse — answer string + the chunks the LLM was given for citation rendering. - KnowledgeBaseCitation
- KnowledgeFile
- Knowledge-base file with its full markdown content.
- KnowledgeFileSummary
- Knowledge-base file metadata (no content — fetch via getKnowledgeFile).
- LoginResponse
- Login response
- MetricsAggregator
- Aggregates events and sessions into metrics
- MockTestData
- Mock data generator for testing dashboard
- MyBugItem
-
One of the calling tester's own bug reports, as returned by
GET /v1/testers/me/bug-reports. Backs the in-app "Meine Bugs" list so a tester can follow what they submitted + its status. - MyBugsScreen
- NetworkCaptureEntry
- NetworkCaptureInterceptor
- NetworkCaptureService
- NotificationsResult
- Result of ApiClient.getMyNotifications — the list plus the unread badge count (server-computed, so the SDK doesn't re-count).
- PayoutBonuses
- Bonus amounts
- PayoutCalculator
- Calculator for estimating and computing payouts
- PayoutResult
- Result of a payout calculation
- PayoutRule
- Payout calculation rules
- QualityFlags
- Quality assessment flags
- QualityMultipliers
- Quality-based multipliers
- ReleaseNote
- A single "what's new" bullet point shown on the welcome sheet.
- RenderFocusAreaMarker
- RenderObject for focus area markers
- RenderTaskAnnotation
- RenderObject for task annotations
- RetestItem
- ScopedErrorBudget
- Scoped error budget that resets after a time period
- SensitiveWidgetInfo
- Information about a discovered sensitive widget
- SessionDetailsScreen
- Branded, read-only Session-Details screen — opened by tapping the "Session earnings" header in the FAB radial menu.
- SessionManager
- Manages user sessions
- SessionMetrics
- Aggregated metrics for a testing period
- SessionStats
- Session statistics
- SubmissionResponse
- Submission response
- SubmissionResult
- Result of a submission operation
- SubmissionService
- Handles submission creation and upload
- TaskAnnotation
- Annotation that links a widget to a test task
- TaskAnnotationRegistry
- Central registry for task annotations
- TaskCompletionEvent
- Event emitted when a task is auto-completed
- TaskInteractionSummary
- Summary of interactions for a task
- TaskPreset
- A preset task configuration for testers
- TaskProgress
- A snapshot of the tester's checklist progress — what the in-app "X von Y erledigt" display reads.
- TaskStats
- Task statistics
- TaskStep
- Individual task step
- TesterDashboardScreen
- Tester dashboard screen showing tasks, build info, and focus areas
- TesterDeviceResponse
-
Server-side tester-device response — returned by
POST /v1/testers/me/devicesafter the SDK upserts its device fingerprint. The id is what subsequent bug-reports + sessions reference asdevice_id. - TesterFocusArea
- Widget that marks an entire focus area in the UI
- TesterPayKit
- Main SDK class for TesterPayKit
- TesterPayKitConfig
- Configuration for TesterPayKit SDK
- TesterPayKitOnboardingScreen
- Full-screen onboarding. Push it via Navigator from the host. The screen pops itself when complete; awaiting the push gives the host a Future that resolves when onboarding is done (whether by skip or finish).
- TesterPayKitWrapper
- Wrapper widget that shows tester dashboard before the actual app
- TesterProfile
- Tester profile information
- TesterSensitive
- Marks child widget tree as containing sensitive data. Screenshots will blur or mask this region.
- TesterSensitiveRenderObject
- Marker RenderObject for sensitive widgets
- TesterSessionResponse
-
Server-side tester session response — what the API returns when
the SDK calls POST /v1/testers/sessions. The id is the canonical
session identifier from the server's
sessions.idcolumn and is what subsequent end/event/breadcrumb requests reference. - TesterTask
- A single concrete action we want the tester to perform during this run ("Scan 3 receipts and favourite one"). Rendered as a checklist row; check-state is local-only for now.
- TesterTaskRelevant
- Widget that annotates a UI element as relevant to a specific test task
- TesterUnsensitive
- Unmasks a region within a sensitive parent. Useful for showing non-sensitive data within sensitive forms.
- TesterUnsensitiveRenderObject
- Marker RenderObject for unsensitive widgets within sensitive regions
- TesterWelcomeSheet
- TestTask
- A testing task assigned to a tester
-
Drop-in NavigatorObserver that auto-records a screen view whenever
the host app pushes or replaces a page route — so TesterPayKit can
measure navigation depth WITHOUT the host instrumenting every screen
with a manual
TesterPayKit.instance.trackScreenView(...)call. - TpkNotification
-
One bug in the tester's retest queue — what
GET /v1/testers/me/retestsreturns per item. The two action endpoints (verifyRetest/reopenRetest) flip the status and don't need a separate response class. One in-widget notification (migration 038) — what the FAB "Nachrichten" inbox lists. Mirrors the JSON shape returned byGET /v1/testers/me/notifications. - TPKTalker
- ValidationConstants
- Validation thresholds and constants for quality checks
- VersionRange
- Semantic version range for task annotations
- VoiceBugExtractResponse
-
Five-field result returned by
voice-extract— the BugReportDialog drops these directly into its TextEditingControllers + frequency dropdown.transcriptis the raw Whisper text — kept for debug surfaces / future "edit raw transcript" features.preClassificationis the tester's pre-recording pick (bug / featureRequest / idea / problem / changeRequest) — usually just echoed back, but server could in theory override after LLM analysis. - WeeklySummary
- Weekly summary submission from a tester
- WelcomeBrief
- Bundle of release notes + tasks for one app version. Passed by the host to TesterPayKit.showWelcomeSheetIfNeeded.
- WidgetDiscovery
- Widget discovery service for tracking and finding widgets across the app
- WidgetDiscoveryAnalytics
- Analytics about widget discovery
- WidgetInfo
- Information about a widget captured in a screenshot
- WidgetTour
- The 3-card swipeable onboarding tour. Self-contained, no host config. Dismisses itself (pops the bottom sheet) when the tester finishes ("Los geht's") or taps "Überspringen"; the optional onDone callback fires in both cases.
Enums
- AnnotationEventType
- Type of annotation event
- BugPriority
- Bug report priority levels
- BugReportSubmitOutcome
- Outcome of a BugReportUploadService.submitBugReport call — what the SDK should tell the user. Keeps the UI honest after a 5xx / offline / dedupe situation rather than flashing a fake green ✓.
- BugSeverity
- Bug severity levels
- CompletionTrigger
- Completion trigger type for task annotations
- EventType
- Types of events captured by the SDK
- InteractionType
- Type of interaction with an annotated widget
- OutboxItemStatus
- Status of an outbox item — used by TesterPayKit.getSubmissionStatus.
- SensitiveMaskingMode
- How to mask sensitive content in screenshots
- SubmissionStatus
- Status of a weekly summary submission
- TesterStatus
- Status of a tester in the system
- TestTaskPriority
- Priority level for testing tasks
Extensions
- AnnotatedElementInfoPatterns on AnnotatedElementInfo
- Adds pattern-matching-related methods to AnnotatedElementInfo.
- AnnotationInteractionPatterns on AnnotationInteraction
- Adds pattern-matching-related methods to AnnotationInteraction.
- BugFixPatterns on BugFix
- Adds pattern-matching-related methods to BugFix.
- BuildInfoPatterns on BuildInfo
- Adds pattern-matching-related methods to BuildInfo.
- FocusAreaPatterns on FocusArea
- Adds pattern-matching-related methods to FocusArea.
- TaskAnnotationPatterns on TaskAnnotation
- Adds pattern-matching-related methods to TaskAnnotation.
- TaskInteractionSummaryPatterns on TaskInteractionSummary
- Adds pattern-matching-related methods to TaskInteractionSummary.
- TestTaskPatterns on TestTask
- Adds pattern-matching-related methods to TestTask.
- VersionRangeExtension on VersionRange
- Extension methods for VersionRange
- VersionRangePatterns on VersionRange
- Adds pattern-matching-related methods to VersionRange.
Constants
- kOnboardingDonePrefsKey → const String
- SharedPreferences key that gates whether the onboarding ever runs again on this device.
- kScreenshotConsentPrefsKey → const String
- SharedPreferences key for screenshot consent (matches the key the BugReportDialog already reads — flipping it here means the dialog skips its own inline consent prompt).
- kWidgetTourSeenPrefsKey → const String
- SharedPreferences key gating whether the first-tap widget-tour has been seen on this device. Mirrors the Expo twin's "onboarding-done" key concept. Persisted via markWidgetTourSeen.
Functions
-
hasSeenWidgetTour(
) → Future< bool> -
Whether the first-tap widget-tour has already been seen on this
device. Returns
false(= show the tour) when storage is unavailable so a broken-prefs device still gets the intro instead of crashing. Never throws. -
markWidgetTourSeen(
) → Future< void> - Persist that the first-tap widget-tour has been seen so it never shows again. Best-effort — a storage failure is swallowed (the session guard in the FAB still suppresses repeats this run).
-
showWidgetTour(
BuildContext context, {VoidCallback? onDone}) → Future< void> -
Show the WidgetTour as a modal bottom sheet. Resolves once the
tour is dismissed (either by finishing or skipping). The returned
Future completes after the sheet has popped, so a caller that just
awaits it can persist the seen-flag + open the radial menu afterwards. The optionalonDonealso fires for callers that prefer the callback over awaiting.
Exceptions / Errors
- ApiException
- API exception