@junobuild/analytics
Version:
Tracker for Juno analytics
230 lines (228 loc) • 7.02 kB
TypeScript
import type {ActorMethod} from '@dfinity/agent';
import type {IDL} from '@dfinity/candid';
import type {Principal} from '@dfinity/principal';
export interface AnalyticKey {
key: string;
collected_at: bigint;
}
export interface AnalyticsBrowsersPageViews {
safari: number;
opera: number;
others: number;
firefox: number;
chrome: number;
}
export interface AnalyticsClientsPageViews {
browsers: AnalyticsBrowsersPageViews;
devices: AnalyticsDevicesPageViews;
}
export interface AnalyticsDevicesPageViews {
desktop: number;
others: number;
mobile: number;
}
export interface AnalyticsMetricsPageViews {
bounce_rate: number;
average_page_views_per_session: number;
daily_total_page_views: Array<[CalendarDate, number]>;
total_page_views: number;
unique_page_views: bigint;
unique_sessions: bigint;
}
export interface AnalyticsTop10PageViews {
referrers: Array<[string, number]>;
pages: Array<[string, number]>;
}
export interface AnalyticsTrackEvents {
total: Array<[string, number]>;
}
export interface AnalyticsWebVitalsPageMetrics {
cls: [] | [number];
fcp: [] | [number];
inp: [] | [number];
lcp: [] | [number];
ttfb: [] | [number];
}
export interface AnalyticsWebVitalsPerformanceMetrics {
overall: AnalyticsWebVitalsPageMetrics;
pages: Array<[string, AnalyticsWebVitalsPageMetrics]>;
}
export interface CalendarDate {
day: number;
month: number;
year: number;
}
export interface Controller {
updated_at: bigint;
metadata: Array<[string, string]>;
created_at: bigint;
scope: ControllerScope;
expires_at: [] | [bigint];
}
export type ControllerScope = {Write: null} | {Admin: null};
export interface DelSatelliteConfig {
version: [] | [bigint];
}
export interface DeleteControllersArgs {
controllers: Array<Principal>;
}
export interface DepositCyclesArgs {
cycles: bigint;
destination_id: Principal;
}
export interface GetAnalytics {
to: [] | [bigint];
from: [] | [bigint];
satellite_id: [] | [Principal];
}
export interface MemorySize {
stable: bigint;
heap: bigint;
}
export type NavigationType =
| {Navigate: null}
| {Restore: null}
| {Reload: null}
| {BackForward: null}
| {BackForwardCache: null}
| {Prerender: null};
export interface OrbiterSatelliteConfig {
updated_at: bigint;
features: [] | [OrbiterSatelliteFeatures];
created_at: bigint;
version: [] | [bigint];
}
export interface OrbiterSatelliteFeatures {
performance_metrics: boolean;
track_events: boolean;
page_views: boolean;
}
export interface PageView {
title: string;
updated_at: bigint;
referrer: [] | [string];
time_zone: string;
session_id: string;
href: string;
created_at: bigint;
satellite_id: Principal;
device: PageViewDevice;
version: [] | [bigint];
user_agent: [] | [string];
}
export interface PageViewDevice {
inner_height: number;
inner_width: number;
}
export type PerformanceData = {WebVitalsMetric: WebVitalsMetric};
export interface PerformanceMetric {
updated_at: bigint;
session_id: string;
data: PerformanceData;
href: string;
metric_name: PerformanceMetricName;
created_at: bigint;
satellite_id: Principal;
version: [] | [bigint];
}
export type PerformanceMetricName =
| {CLS: null}
| {FCP: null}
| {INP: null}
| {LCP: null}
| {TTFB: null};
export type Result = {Ok: PageView} | {Err: string};
export type Result_1 = {Ok: null} | {Err: Array<[AnalyticKey, string]>};
export type Result_2 = {Ok: PerformanceMetric} | {Err: string};
export type Result_3 = {Ok: TrackEvent} | {Err: string};
export interface SetController {
metadata: Array<[string, string]>;
scope: ControllerScope;
expires_at: [] | [bigint];
}
export interface SetControllersArgs {
controller: SetController;
controllers: Array<Principal>;
}
export interface SetPageView {
title: string;
updated_at: [] | [bigint];
referrer: [] | [string];
time_zone: string;
session_id: string;
href: string;
satellite_id: Principal;
device: PageViewDevice;
version: [] | [bigint];
user_agent: [] | [string];
}
export interface SetPerformanceMetric {
session_id: string;
data: PerformanceData;
href: string;
metric_name: PerformanceMetricName;
satellite_id: Principal;
version: [] | [bigint];
user_agent: [] | [string];
}
export interface SetSatelliteConfig {
features: [] | [OrbiterSatelliteFeatures];
version: [] | [bigint];
}
export interface SetTrackEvent {
updated_at: [] | [bigint];
session_id: string;
metadata: [] | [Array<[string, string]>];
name: string;
satellite_id: Principal;
version: [] | [bigint];
user_agent: [] | [string];
}
export interface TrackEvent {
updated_at: bigint;
session_id: string;
metadata: [] | [Array<[string, string]>];
name: string;
created_at: bigint;
satellite_id: Principal;
version: [] | [bigint];
}
export interface WebVitalsMetric {
id: string;
value: number;
navigation_type: [] | [NavigationType];
delta: number;
}
export interface _SERVICE {
del_controllers: ActorMethod<[DeleteControllersArgs], Array<[Principal, Controller]>>;
del_satellite_config: ActorMethod<[Principal, DelSatelliteConfig], undefined>;
deposit_cycles: ActorMethod<[DepositCyclesArgs], undefined>;
get_page_views: ActorMethod<[GetAnalytics], Array<[AnalyticKey, PageView]>>;
get_page_views_analytics_clients: ActorMethod<[GetAnalytics], AnalyticsClientsPageViews>;
get_page_views_analytics_metrics: ActorMethod<[GetAnalytics], AnalyticsMetricsPageViews>;
get_page_views_analytics_top_10: ActorMethod<[GetAnalytics], AnalyticsTop10PageViews>;
get_performance_metrics: ActorMethod<[GetAnalytics], Array<[AnalyticKey, PerformanceMetric]>>;
get_performance_metrics_analytics_web_vitals: ActorMethod<
[GetAnalytics],
AnalyticsWebVitalsPerformanceMetrics
>;
get_track_events: ActorMethod<[GetAnalytics], Array<[AnalyticKey, TrackEvent]>>;
get_track_events_analytics: ActorMethod<[GetAnalytics], AnalyticsTrackEvents>;
list_controllers: ActorMethod<[], Array<[Principal, Controller]>>;
list_satellite_configs: ActorMethod<[], Array<[Principal, OrbiterSatelliteConfig]>>;
memory_size: ActorMethod<[], MemorySize>;
set_controllers: ActorMethod<[SetControllersArgs], Array<[Principal, Controller]>>;
set_page_view: ActorMethod<[AnalyticKey, SetPageView], Result>;
set_page_views: ActorMethod<[Array<[AnalyticKey, SetPageView]>], Result_1>;
set_performance_metric: ActorMethod<[AnalyticKey, SetPerformanceMetric], Result_2>;
set_performance_metrics: ActorMethod<[Array<[AnalyticKey, SetPerformanceMetric]>], Result_1>;
set_satellite_configs: ActorMethod<
[Array<[Principal, SetSatelliteConfig]>],
Array<[Principal, OrbiterSatelliteConfig]>
>;
set_track_event: ActorMethod<[AnalyticKey, SetTrackEvent], Result_3>;
set_track_events: ActorMethod<[Array<[AnalyticKey, SetTrackEvent]>], Result_1>;
version: ActorMethod<[], string>;
}
export declare const idlFactory: IDL.InterfaceFactory;
export declare const init: (args: {IDL: typeof IDL}) => IDL.Type[];