@iann29/rastro 0.1.0-alpha.5 → 0.1.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -29
- package/agent/integration.md +17 -15
- package/agent/manifest.json +7 -5
- package/agent/manifest.schema.json +8 -5
- package/dist/client/federation.d.ts +34 -8
- package/dist/client/federation.d.ts.map +1 -1
- package/dist/client/federation.js +17 -3
- package/dist/client/federation.js.map +1 -1
- package/dist/client/index.d.ts +418 -21
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +191 -41
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +2 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +63 -7
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/affiliates.d.ts.map +1 -1
- package/dist/component/affiliates.js +6 -2
- package/dist/component/affiliates.js.map +1 -1
- package/dist/component/cardinality.d.ts.map +1 -1
- package/dist/component/cardinality.js.map +1 -1
- package/dist/component/constants.d.ts +7 -1
- package/dist/component/constants.d.ts.map +1 -1
- package/dist/component/constants.js +13 -1
- package/dist/component/constants.js.map +1 -1
- package/dist/component/diagnostics.d.ts.map +1 -1
- package/dist/component/diagnostics.js.map +1 -1
- package/dist/component/eventStore.d.ts +2 -1
- package/dist/component/eventStore.d.ts.map +1 -1
- package/dist/component/eventStore.js +13 -10
- package/dist/component/eventStore.js.map +1 -1
- package/dist/component/funnels.d.ts.map +1 -1
- package/dist/component/funnels.js +5 -3
- package/dist/component/funnels.js.map +1 -1
- package/dist/component/geo.d.ts.map +1 -1
- package/dist/component/geo.js +3 -2
- package/dist/component/geo.js.map +1 -1
- package/dist/component/goals.d.ts.map +1 -1
- package/dist/component/goals.js +8 -5
- package/dist/component/goals.js.map +1 -1
- package/dist/component/guards.d.ts.map +1 -1
- package/dist/component/guards.js.map +1 -1
- package/dist/component/http.d.ts.map +1 -1
- package/dist/component/http.js +51 -17
- package/dist/component/http.js.map +1 -1
- package/dist/component/ingest.d.ts +2 -1
- package/dist/component/ingest.d.ts.map +1 -1
- package/dist/component/ingest.js +143 -23
- package/dist/component/ingest.js.map +1 -1
- package/dist/component/live.d.ts.map +1 -1
- package/dist/component/live.js +1 -3
- package/dist/component/live.js.map +1 -1
- package/dist/component/reports.d.ts +60 -3
- package/dist/component/reports.d.ts.map +1 -1
- package/dist/component/reports.js +215 -49
- package/dist/component/reports.js.map +1 -1
- package/dist/component/retention.d.ts +4 -4
- package/dist/component/retention.d.ts.map +1 -1
- package/dist/component/retention.js +54 -22
- package/dist/component/retention.js.map +1 -1
- package/dist/component/sanitize.d.ts +11 -0
- package/dist/component/sanitize.d.ts.map +1 -1
- package/dist/component/sanitize.js +58 -11
- package/dist/component/sanitize.js.map +1 -1
- package/dist/component/schema.d.ts +47 -5
- package/dist/component/schema.js +21 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/component/sites.d.ts.map +1 -1
- package/dist/component/sites.js +6 -6
- package/dist/component/sites.js.map +1 -1
- package/dist/component/validators.d.ts +14 -9
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +5 -1
- package/dist/component/validators.js.map +1 -1
- package/dist/component/visitors.d.ts.map +1 -1
- package/dist/component/visitors.js.map +1 -1
- package/dist/component/vitals.d.ts +41 -0
- package/dist/component/vitals.d.ts.map +1 -0
- package/dist/component/vitals.js +115 -0
- package/dist/component/vitals.js.map +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/tracker/generated.d.ts +8 -4
- package/dist/tracker/generated.d.ts.map +1 -1
- package/dist/tracker/generated.js +8 -4
- package/dist/tracker/generated.js.map +1 -1
- package/dist/tracker/tracker.d.ts.map +1 -1
- package/dist/tracker/tracker.js +3 -1
- package/dist/tracker/tracker.js.map +1 -1
- package/dist/tracker/vitals.d.ts +10 -0
- package/dist/tracker/vitals.d.ts.map +1 -0
- package/dist/tracker/vitals.js +140 -0
- package/dist/tracker/vitals.js.map +1 -0
- package/dist/tracker.min.js +1 -1
- package/dist/vitals.min.js +1 -0
- package/docs/benchmarks/2026-08-20-realistic.md +71 -71
- package/docs/benchmarks/2026-08-21-formal-certification.md +50 -30
- package/docs/benchmarks/2026-08-30-alpha6-recertification.md +206 -0
- package/docs/upgrading.md +46 -8
- package/llms.txt +5 -1
- package/package.json +17 -3
- package/scripts/benchmark-ingest.mjs +101 -48
- package/src/component/_generated/api.ts +2 -0
- package/src/component/_generated/component.ts +69 -4
- package/src/component/affiliates.ts +20 -5
- package/src/component/cardinality.ts +8 -7
- package/src/component/constants.ts +13 -1
- package/src/component/diagnostics.ts +3 -2
- package/src/component/eventStore.ts +53 -46
- package/src/component/funnels.ts +19 -16
- package/src/component/geo.ts +16 -14
- package/src/component/goals.ts +29 -21
- package/src/component/guards.ts +3 -1
- package/src/component/http.ts +93 -54
- package/src/component/ingest.ts +320 -127
- package/src/component/live.ts +5 -4
- package/src/component/reports.ts +563 -219
- package/src/component/retention.ts +221 -98
- package/src/component/sanitize.ts +99 -29
- package/src/component/schema.ts +31 -5
- package/src/component/sites.ts +22 -11
- package/src/component/validators.ts +16 -7
- package/src/component/visitors.ts +16 -5
- package/src/component/vitals.ts +146 -0
package/dist/client/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { FunctionArgs, FunctionReturnType, GenericActionCtx, GenericDataModel, GenericMutationCtx, GenericQueryCtx } from "convex/server";
|
|
2
2
|
import { type Infer } from "convex/values";
|
|
3
3
|
import type { ComponentApi } from "../component/_generated/component.js";
|
|
4
|
-
import { eventPropertiesValidator, eventTypeValidator, funnelStepValidator, goalMatchTypeValidator, ingestContextValidator, ingestResultValidator, trackerEventValidator } from "../component/validators.js";
|
|
4
|
+
import { eventPropertiesValidator, eventTypeValidator, funnelStepValidator, goalMatchTypeValidator, ingestContextValidator, ingestResultValidator, trackerEventValidator, vitalMetricValidator } from "../component/validators.js";
|
|
5
5
|
import { type FederatedAnalyticsAuthorizerOptions, type FederatedAnalyticsConnectionStatus, type FederatedSiteSummary } from "./federation.js";
|
|
6
|
-
export { eventPropertiesValidator, eventTypeValidator, funnelStepValidator, goalMatchTypeValidator, ingestContextValidator, ingestResultValidator, trackerEventValidator, };
|
|
6
|
+
export { eventPropertiesValidator, eventTypeValidator, funnelStepValidator, goalMatchTypeValidator, ingestContextValidator, ingestResultValidator, trackerEventValidator, vitalMetricValidator, };
|
|
7
7
|
export type { EventProperties, EventType, FunnelStep, IngestContext, TrackerEvent, } from "../component/validators.js";
|
|
8
|
-
export {
|
|
8
|
+
export { VITAL_METRICS, VITAL_THRESHOLDS } from "../component/vitals.js";
|
|
9
|
+
export type { VitalMetric } from "../component/vitals.js";
|
|
10
|
+
export { FEDERATED_ANALYTICS_CLAIMS, FEDERATED_ANALYTICS_CONNECTOR_MANIFEST, FEDERATED_ANALYTICS_ERROR_CODES, FEDERATED_ANALYTICS_READ_PERMISSION, FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES, FEDERATED_ANALYTICS_REQUIRED_FUNCTIONS, } from "./federation.js";
|
|
9
11
|
export type { FederatedAnalyticsCapability, FederatedAnalyticsAuthorizerOptions, FederatedAnalyticsConnection, FederatedAnalyticsConnectionStatus, FederatedAnalyticsErrorCode, FederatedAnalyticsIdentity, FederatedAnalyticsManifest, FederatedSiteSummary, ResolveFederatedAnalyticsConnection, } from "./federation.js";
|
|
10
12
|
export type CreateSiteInput = FunctionArgs<ComponentApi["sites"]["create"]>;
|
|
11
13
|
export type CreateSiteOutput = FunctionReturnType<ComponentApi["sites"]["create"]>;
|
|
@@ -38,6 +40,8 @@ export type FunnelsReportInput = FunctionArgs<ComponentApi["reports"]["funnelsRe
|
|
|
38
40
|
export type FunnelsReport = Infer<typeof hostFunnelsReportValidator>;
|
|
39
41
|
export type AffiliatesReportInput = FunctionArgs<ComponentApi["reports"]["affiliatesReport"]>;
|
|
40
42
|
export type AffiliatesReport = Infer<typeof hostAffiliatesReportValidator>;
|
|
43
|
+
export type VitalsReportInput = FunctionArgs<ComponentApi["reports"]["vitalsReport"]>;
|
|
44
|
+
export type VitalsReport = Infer<typeof hostVitalsReportValidator>;
|
|
41
45
|
export type UpsertGoalInput = FunctionArgs<ComponentApi["goals"]["upsert"]>;
|
|
42
46
|
export type UpsertGoalOutput = FunctionReturnType<ComponentApi["goals"]["upsert"]>;
|
|
43
47
|
export type Goal = FunctionReturnType<ComponentApi["goals"]["list"]>[number];
|
|
@@ -68,7 +72,7 @@ export type DataCoverage = {
|
|
|
68
72
|
from: number;
|
|
69
73
|
to: number;
|
|
70
74
|
datasets: Array<{
|
|
71
|
-
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates";
|
|
75
|
+
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals";
|
|
72
76
|
coverage: CoverageStatus;
|
|
73
77
|
}>;
|
|
74
78
|
};
|
|
@@ -101,7 +105,7 @@ export type RetentionStatus = {
|
|
|
101
105
|
}>;
|
|
102
106
|
backlog: number;
|
|
103
107
|
};
|
|
104
|
-
export type RetentionKind = "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
108
|
+
export type RetentionKind = "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "vitalRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
105
109
|
export type RunRetentionPolicyInput = {
|
|
106
110
|
siteId: string;
|
|
107
111
|
kind: RetentionKind;
|
|
@@ -347,7 +351,7 @@ export declare class Rastro {
|
|
|
347
351
|
siteId: string;
|
|
348
352
|
target?: string;
|
|
349
353
|
timestamp: number;
|
|
350
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
354
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
351
355
|
visitorId: string;
|
|
352
356
|
}>;
|
|
353
357
|
pageStatus?: "SplitRecommended" | "SplitRequired" | null;
|
|
@@ -402,7 +406,7 @@ export declare class Rastro {
|
|
|
402
406
|
siteId: string;
|
|
403
407
|
target?: string;
|
|
404
408
|
timestamp: number;
|
|
405
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
409
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
406
410
|
visitorId: string;
|
|
407
411
|
}[]>;
|
|
408
412
|
goalsReport(ctx: QueryCtx | MutationCtx | ActionCtx, args: GoalsReportInput): Promise<{
|
|
@@ -517,6 +521,57 @@ export declare class Rastro {
|
|
|
517
521
|
};
|
|
518
522
|
truncated: boolean;
|
|
519
523
|
}>;
|
|
524
|
+
vitalsReport(ctx: QueryCtx | MutationCtx | ActionCtx, args: VitalsReportInput): Promise<{
|
|
525
|
+
metadata: {
|
|
526
|
+
basis: "dailyRollup" | "boundedLegacy";
|
|
527
|
+
coverage: {
|
|
528
|
+
availableFrom: number | null;
|
|
529
|
+
availableThrough: number | null;
|
|
530
|
+
generation: number | null;
|
|
531
|
+
retainedBefore: number | null;
|
|
532
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
533
|
+
};
|
|
534
|
+
range: {
|
|
535
|
+
boundary: "inclusive";
|
|
536
|
+
from: number;
|
|
537
|
+
timezone: "UTC";
|
|
538
|
+
to: number;
|
|
539
|
+
};
|
|
540
|
+
};
|
|
541
|
+
metrics: Array<{
|
|
542
|
+
average: number;
|
|
543
|
+
count: number;
|
|
544
|
+
devices: Array<{
|
|
545
|
+
average: number;
|
|
546
|
+
count: number;
|
|
547
|
+
device: string;
|
|
548
|
+
good: number;
|
|
549
|
+
needsImprovement: number;
|
|
550
|
+
p75: number;
|
|
551
|
+
poor: number;
|
|
552
|
+
}>;
|
|
553
|
+
good: number;
|
|
554
|
+
metric: "LCP" | "CLS" | "INP" | "FCP" | "TTFB";
|
|
555
|
+
needsImprovement: number;
|
|
556
|
+
p75: number;
|
|
557
|
+
pages: Array<{
|
|
558
|
+
average: number;
|
|
559
|
+
count: number;
|
|
560
|
+
good: number;
|
|
561
|
+
needsImprovement: number;
|
|
562
|
+
p75: number;
|
|
563
|
+
page: string;
|
|
564
|
+
poor: number;
|
|
565
|
+
}>;
|
|
566
|
+
poor: number;
|
|
567
|
+
timeSeries: Array<{
|
|
568
|
+
count: number;
|
|
569
|
+
p75: number;
|
|
570
|
+
timestamp: number;
|
|
571
|
+
}>;
|
|
572
|
+
}>;
|
|
573
|
+
truncated: boolean;
|
|
574
|
+
}>;
|
|
520
575
|
upsertGoal(ctx: MutationCtx, args: UpsertGoalInput): Promise<string>;
|
|
521
576
|
listGoals(ctx: QueryCtx | MutationCtx | ActionCtx, siteId: string): Promise<{
|
|
522
577
|
_creationTime: number;
|
|
@@ -578,7 +633,7 @@ export declare class Rastro {
|
|
|
578
633
|
retainedBefore: number | null;
|
|
579
634
|
state: "complete" | "partial" | "retained" | "unavailable";
|
|
580
635
|
};
|
|
581
|
-
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates";
|
|
636
|
+
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals";
|
|
582
637
|
}>;
|
|
583
638
|
from: number;
|
|
584
639
|
siteId: string;
|
|
@@ -591,7 +646,7 @@ export declare class Rastro {
|
|
|
591
646
|
jobs: Array<{
|
|
592
647
|
before: number;
|
|
593
648
|
deleted: number;
|
|
594
|
-
kind: "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
649
|
+
kind: "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "vitalRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
595
650
|
scheduledAt: number | null;
|
|
596
651
|
status: "pending" | "running" | "complete";
|
|
597
652
|
updatedAt: number;
|
|
@@ -611,7 +666,7 @@ export declare class Rastro {
|
|
|
611
666
|
hasMore: boolean;
|
|
612
667
|
}>;
|
|
613
668
|
}
|
|
614
|
-
export type AnalyticsOperation = "site.create" | "site.update" | "site.get" | "site.list" | "ingest" | "conversion.track" | "visitor.link" | "report.overview" | "report.live" | "report.sessions" | "report.sessionJourney" | "report.conversions" | "report.visitorJourney" | "report.goals" | "report.funnels" | "report.affiliates" | "goal.upsert" | "goal.list" | "goal.remove" | "funnel.upsert" | "funnel.list" | "funnel.remove" | "affiliate.upsert" | "affiliate.list" | "affiliate.remove" | "retention.cleanup" | "retention.policy" | "retention.status" | "coverage.read";
|
|
669
|
+
export type AnalyticsOperation = "site.create" | "site.update" | "site.get" | "site.list" | "ingest" | "conversion.track" | "visitor.link" | "report.overview" | "report.live" | "report.sessions" | "report.sessionJourney" | "report.conversions" | "report.visitorJourney" | "report.goals" | "report.funnels" | "report.affiliates" | "report.vitals" | "goal.upsert" | "goal.list" | "goal.remove" | "funnel.upsert" | "funnel.list" | "funnel.remove" | "affiliate.upsert" | "affiliate.list" | "affiliate.remove" | "retention.cleanup" | "retention.policy" | "retention.status" | "coverage.read";
|
|
615
670
|
export type AnalyticsAuthorizationRequest = {
|
|
616
671
|
operation: AnalyticsOperation;
|
|
617
672
|
siteIds: string[];
|
|
@@ -1416,6 +1471,235 @@ declare const hostAffiliatesReportValidator: import("convex/values").VObject<{
|
|
|
1416
1471
|
}, "required", "basis" | "exact">;
|
|
1417
1472
|
}, "required", "basis" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to" | "uniqueVisitors" | "uniqueVisitors.basis" | "uniqueVisitors.exact">;
|
|
1418
1473
|
}, "required", "affiliates" | "metadata" | "metadata.basis" | "metadata.coverage" | "metadata.coverage.availableFrom" | "metadata.coverage.availableThrough" | "metadata.coverage.generation" | "metadata.coverage.retainedBefore" | "metadata.coverage.state" | "metadata.range" | "metadata.range.boundary" | "metadata.range.from" | "metadata.range.timezone" | "metadata.range.to" | "metadata.uniqueVisitors" | "metadata.uniqueVisitors.basis" | "metadata.uniqueVisitors.exact" | "truncated">;
|
|
1474
|
+
declare const hostVitalsReportValidator: import("convex/values").VObject<{
|
|
1475
|
+
metadata: {
|
|
1476
|
+
basis: "boundedLegacy" | "dailyRollup";
|
|
1477
|
+
coverage: {
|
|
1478
|
+
availableFrom: number | null;
|
|
1479
|
+
availableThrough: number | null;
|
|
1480
|
+
generation: number | null;
|
|
1481
|
+
retainedBefore: number | null;
|
|
1482
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
1483
|
+
};
|
|
1484
|
+
range: {
|
|
1485
|
+
boundary: "inclusive";
|
|
1486
|
+
from: number;
|
|
1487
|
+
timezone: "UTC";
|
|
1488
|
+
to: number;
|
|
1489
|
+
};
|
|
1490
|
+
};
|
|
1491
|
+
metrics: {
|
|
1492
|
+
average: number;
|
|
1493
|
+
count: number;
|
|
1494
|
+
devices: {
|
|
1495
|
+
average: number;
|
|
1496
|
+
count: number;
|
|
1497
|
+
device: string;
|
|
1498
|
+
good: number;
|
|
1499
|
+
needsImprovement: number;
|
|
1500
|
+
p75: number;
|
|
1501
|
+
poor: number;
|
|
1502
|
+
}[];
|
|
1503
|
+
good: number;
|
|
1504
|
+
metric: "CLS" | "FCP" | "INP" | "LCP" | "TTFB";
|
|
1505
|
+
needsImprovement: number;
|
|
1506
|
+
p75: number;
|
|
1507
|
+
pages: {
|
|
1508
|
+
average: number;
|
|
1509
|
+
count: number;
|
|
1510
|
+
good: number;
|
|
1511
|
+
needsImprovement: number;
|
|
1512
|
+
p75: number;
|
|
1513
|
+
page: string;
|
|
1514
|
+
poor: number;
|
|
1515
|
+
}[];
|
|
1516
|
+
poor: number;
|
|
1517
|
+
timeSeries: {
|
|
1518
|
+
count: number;
|
|
1519
|
+
p75: number;
|
|
1520
|
+
timestamp: number;
|
|
1521
|
+
}[];
|
|
1522
|
+
}[];
|
|
1523
|
+
truncated: boolean;
|
|
1524
|
+
}, {
|
|
1525
|
+
metrics: import("convex/values").VArray<{
|
|
1526
|
+
average: number;
|
|
1527
|
+
count: number;
|
|
1528
|
+
devices: {
|
|
1529
|
+
average: number;
|
|
1530
|
+
count: number;
|
|
1531
|
+
device: string;
|
|
1532
|
+
good: number;
|
|
1533
|
+
needsImprovement: number;
|
|
1534
|
+
p75: number;
|
|
1535
|
+
poor: number;
|
|
1536
|
+
}[];
|
|
1537
|
+
good: number;
|
|
1538
|
+
metric: "CLS" | "FCP" | "INP" | "LCP" | "TTFB";
|
|
1539
|
+
needsImprovement: number;
|
|
1540
|
+
p75: number;
|
|
1541
|
+
pages: {
|
|
1542
|
+
average: number;
|
|
1543
|
+
count: number;
|
|
1544
|
+
good: number;
|
|
1545
|
+
needsImprovement: number;
|
|
1546
|
+
p75: number;
|
|
1547
|
+
page: string;
|
|
1548
|
+
poor: number;
|
|
1549
|
+
}[];
|
|
1550
|
+
poor: number;
|
|
1551
|
+
timeSeries: {
|
|
1552
|
+
count: number;
|
|
1553
|
+
p75: number;
|
|
1554
|
+
timestamp: number;
|
|
1555
|
+
}[];
|
|
1556
|
+
}[], import("convex/values").VObject<{
|
|
1557
|
+
average: number;
|
|
1558
|
+
count: number;
|
|
1559
|
+
devices: {
|
|
1560
|
+
average: number;
|
|
1561
|
+
count: number;
|
|
1562
|
+
device: string;
|
|
1563
|
+
good: number;
|
|
1564
|
+
needsImprovement: number;
|
|
1565
|
+
p75: number;
|
|
1566
|
+
poor: number;
|
|
1567
|
+
}[];
|
|
1568
|
+
good: number;
|
|
1569
|
+
metric: "CLS" | "FCP" | "INP" | "LCP" | "TTFB";
|
|
1570
|
+
needsImprovement: number;
|
|
1571
|
+
p75: number;
|
|
1572
|
+
pages: {
|
|
1573
|
+
average: number;
|
|
1574
|
+
count: number;
|
|
1575
|
+
good: number;
|
|
1576
|
+
needsImprovement: number;
|
|
1577
|
+
p75: number;
|
|
1578
|
+
page: string;
|
|
1579
|
+
poor: number;
|
|
1580
|
+
}[];
|
|
1581
|
+
poor: number;
|
|
1582
|
+
timeSeries: {
|
|
1583
|
+
count: number;
|
|
1584
|
+
p75: number;
|
|
1585
|
+
timestamp: number;
|
|
1586
|
+
}[];
|
|
1587
|
+
}, {
|
|
1588
|
+
count: import("convex/values").VFloat64<number, "required">;
|
|
1589
|
+
p75: import("convex/values").VFloat64<number, "required">;
|
|
1590
|
+
average: import("convex/values").VFloat64<number, "required">;
|
|
1591
|
+
good: import("convex/values").VFloat64<number, "required">;
|
|
1592
|
+
needsImprovement: import("convex/values").VFloat64<number, "required">;
|
|
1593
|
+
poor: import("convex/values").VFloat64<number, "required">;
|
|
1594
|
+
metric: import("convex/values").VUnion<"CLS" | "FCP" | "INP" | "LCP" | "TTFB", [import("convex/values").VLiteral<"LCP", "required">, import("convex/values").VLiteral<"CLS", "required">, import("convex/values").VLiteral<"INP", "required">, import("convex/values").VLiteral<"FCP", "required">, import("convex/values").VLiteral<"TTFB", "required">], "required", never>;
|
|
1595
|
+
devices: import("convex/values").VArray<{
|
|
1596
|
+
average: number;
|
|
1597
|
+
count: number;
|
|
1598
|
+
device: string;
|
|
1599
|
+
good: number;
|
|
1600
|
+
needsImprovement: number;
|
|
1601
|
+
p75: number;
|
|
1602
|
+
poor: number;
|
|
1603
|
+
}[], import("convex/values").VObject<{
|
|
1604
|
+
average: number;
|
|
1605
|
+
count: number;
|
|
1606
|
+
device: string;
|
|
1607
|
+
good: number;
|
|
1608
|
+
needsImprovement: number;
|
|
1609
|
+
p75: number;
|
|
1610
|
+
poor: number;
|
|
1611
|
+
}, {
|
|
1612
|
+
count: import("convex/values").VFloat64<number, "required">;
|
|
1613
|
+
p75: import("convex/values").VFloat64<number, "required">;
|
|
1614
|
+
average: import("convex/values").VFloat64<number, "required">;
|
|
1615
|
+
good: import("convex/values").VFloat64<number, "required">;
|
|
1616
|
+
needsImprovement: import("convex/values").VFloat64<number, "required">;
|
|
1617
|
+
poor: import("convex/values").VFloat64<number, "required">;
|
|
1618
|
+
device: import("convex/values").VString<string, "required">;
|
|
1619
|
+
}, "required", "average" | "count" | "device" | "good" | "needsImprovement" | "p75" | "poor">, "required">;
|
|
1620
|
+
pages: import("convex/values").VArray<{
|
|
1621
|
+
average: number;
|
|
1622
|
+
count: number;
|
|
1623
|
+
good: number;
|
|
1624
|
+
needsImprovement: number;
|
|
1625
|
+
p75: number;
|
|
1626
|
+
page: string;
|
|
1627
|
+
poor: number;
|
|
1628
|
+
}[], import("convex/values").VObject<{
|
|
1629
|
+
average: number;
|
|
1630
|
+
count: number;
|
|
1631
|
+
good: number;
|
|
1632
|
+
needsImprovement: number;
|
|
1633
|
+
p75: number;
|
|
1634
|
+
page: string;
|
|
1635
|
+
poor: number;
|
|
1636
|
+
}, {
|
|
1637
|
+
count: import("convex/values").VFloat64<number, "required">;
|
|
1638
|
+
p75: import("convex/values").VFloat64<number, "required">;
|
|
1639
|
+
average: import("convex/values").VFloat64<number, "required">;
|
|
1640
|
+
good: import("convex/values").VFloat64<number, "required">;
|
|
1641
|
+
needsImprovement: import("convex/values").VFloat64<number, "required">;
|
|
1642
|
+
poor: import("convex/values").VFloat64<number, "required">;
|
|
1643
|
+
page: import("convex/values").VString<string, "required">;
|
|
1644
|
+
}, "required", "average" | "count" | "good" | "needsImprovement" | "p75" | "page" | "poor">, "required">;
|
|
1645
|
+
timeSeries: import("convex/values").VArray<{
|
|
1646
|
+
count: number;
|
|
1647
|
+
p75: number;
|
|
1648
|
+
timestamp: number;
|
|
1649
|
+
}[], import("convex/values").VObject<{
|
|
1650
|
+
count: number;
|
|
1651
|
+
p75: number;
|
|
1652
|
+
timestamp: number;
|
|
1653
|
+
}, {
|
|
1654
|
+
timestamp: import("convex/values").VFloat64<number, "required">;
|
|
1655
|
+
count: import("convex/values").VFloat64<number, "required">;
|
|
1656
|
+
p75: import("convex/values").VFloat64<number, "required">;
|
|
1657
|
+
}, "required", "count" | "p75" | "timestamp">, "required">;
|
|
1658
|
+
}, "required", "average" | "count" | "devices" | "good" | "metric" | "needsImprovement" | "p75" | "pages" | "poor" | "timeSeries">, "required">;
|
|
1659
|
+
truncated: import("convex/values").VBoolean<boolean, "required">;
|
|
1660
|
+
metadata: import("convex/values").VObject<{
|
|
1661
|
+
basis: "boundedLegacy" | "dailyRollup";
|
|
1662
|
+
coverage: {
|
|
1663
|
+
availableFrom: number | null;
|
|
1664
|
+
availableThrough: number | null;
|
|
1665
|
+
generation: number | null;
|
|
1666
|
+
retainedBefore: number | null;
|
|
1667
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
1668
|
+
};
|
|
1669
|
+
range: {
|
|
1670
|
+
boundary: "inclusive";
|
|
1671
|
+
from: number;
|
|
1672
|
+
timezone: "UTC";
|
|
1673
|
+
to: number;
|
|
1674
|
+
};
|
|
1675
|
+
}, {
|
|
1676
|
+
basis: import("convex/values").VUnion<"boundedLegacy" | "dailyRollup", [import("convex/values").VLiteral<"dailyRollup", "required">, import("convex/values").VLiteral<"boundedLegacy", "required">], "required", never>;
|
|
1677
|
+
coverage: import("convex/values").VObject<{
|
|
1678
|
+
availableFrom: number | null;
|
|
1679
|
+
availableThrough: number | null;
|
|
1680
|
+
generation: number | null;
|
|
1681
|
+
retainedBefore: number | null;
|
|
1682
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
1683
|
+
}, {
|
|
1684
|
+
state: import("convex/values").VUnion<"complete" | "partial" | "retained" | "unavailable", [import("convex/values").VLiteral<"complete", "required">, import("convex/values").VLiteral<"partial", "required">, import("convex/values").VLiteral<"retained", "required">, import("convex/values").VLiteral<"unavailable", "required">], "required", never>;
|
|
1685
|
+
generation: import("convex/values").VUnion<number | null, [import("convex/values").VFloat64<number, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
1686
|
+
availableFrom: import("convex/values").VUnion<number | null, [import("convex/values").VFloat64<number, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
1687
|
+
availableThrough: import("convex/values").VUnion<number | null, [import("convex/values").VFloat64<number, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
1688
|
+
retainedBefore: import("convex/values").VUnion<number | null, [import("convex/values").VFloat64<number, "required">, import("convex/values").VNull<null, "required">], "required", never>;
|
|
1689
|
+
}, "required", "availableFrom" | "availableThrough" | "generation" | "retainedBefore" | "state">;
|
|
1690
|
+
range: import("convex/values").VObject<{
|
|
1691
|
+
boundary: "inclusive";
|
|
1692
|
+
from: number;
|
|
1693
|
+
timezone: "UTC";
|
|
1694
|
+
to: number;
|
|
1695
|
+
}, {
|
|
1696
|
+
from: import("convex/values").VFloat64<number, "required">;
|
|
1697
|
+
to: import("convex/values").VFloat64<number, "required">;
|
|
1698
|
+
boundary: import("convex/values").VLiteral<"inclusive", "required">;
|
|
1699
|
+
timezone: import("convex/values").VLiteral<"UTC", "required">;
|
|
1700
|
+
}, "required", "boundary" | "from" | "timezone" | "to">;
|
|
1701
|
+
}, "required", "basis" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to">;
|
|
1702
|
+
}, "required", "metadata" | "metadata.basis" | "metadata.coverage" | "metadata.coverage.availableFrom" | "metadata.coverage.availableThrough" | "metadata.coverage.generation" | "metadata.coverage.retainedBefore" | "metadata.coverage.state" | "metadata.range" | "metadata.range.boundary" | "metadata.range.from" | "metadata.range.timezone" | "metadata.range.to" | "metrics" | "truncated">;
|
|
1419
1703
|
export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
1420
1704
|
authorize: AnalyticsAuthorizer;
|
|
1421
1705
|
}): {
|
|
@@ -1493,7 +1777,8 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1493
1777
|
sessionId: string;
|
|
1494
1778
|
target?: string | undefined;
|
|
1495
1779
|
timestamp: number;
|
|
1496
|
-
type: "click" | "conversion" | "custom" | "heartbeat" | "outbound" | "pageview";
|
|
1780
|
+
type: "click" | "conversion" | "custom" | "heartbeat" | "outbound" | "pageview" | "vital";
|
|
1781
|
+
value?: number | undefined;
|
|
1497
1782
|
visitorId: string;
|
|
1498
1783
|
}[];
|
|
1499
1784
|
origin: string;
|
|
@@ -1756,7 +2041,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1756
2041
|
siteId: string;
|
|
1757
2042
|
target?: string;
|
|
1758
2043
|
timestamp: number;
|
|
1759
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
2044
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
1760
2045
|
visitorId: string;
|
|
1761
2046
|
}>;
|
|
1762
2047
|
pageStatus?: "SplitRecommended" | "SplitRequired" | null;
|
|
@@ -1829,7 +2114,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1829
2114
|
siteId: string;
|
|
1830
2115
|
target?: string;
|
|
1831
2116
|
timestamp: number;
|
|
1832
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
2117
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
1833
2118
|
visitorId: string;
|
|
1834
2119
|
}[]>>;
|
|
1835
2120
|
goalsReport: import("convex/server").RegisteredQuery<"public", {
|
|
@@ -1956,6 +2241,61 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1956
2241
|
};
|
|
1957
2242
|
truncated: boolean;
|
|
1958
2243
|
}>>;
|
|
2244
|
+
vitalsReport: import("convex/server").RegisteredQuery<"public", {
|
|
2245
|
+
from: number;
|
|
2246
|
+
siteId: string;
|
|
2247
|
+
to: number;
|
|
2248
|
+
}, Promise<{
|
|
2249
|
+
metadata: {
|
|
2250
|
+
basis: "dailyRollup" | "boundedLegacy";
|
|
2251
|
+
coverage: {
|
|
2252
|
+
availableFrom: number | null;
|
|
2253
|
+
availableThrough: number | null;
|
|
2254
|
+
generation: number | null;
|
|
2255
|
+
retainedBefore: number | null;
|
|
2256
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
2257
|
+
};
|
|
2258
|
+
range: {
|
|
2259
|
+
boundary: "inclusive";
|
|
2260
|
+
from: number;
|
|
2261
|
+
timezone: "UTC";
|
|
2262
|
+
to: number;
|
|
2263
|
+
};
|
|
2264
|
+
};
|
|
2265
|
+
metrics: Array<{
|
|
2266
|
+
average: number;
|
|
2267
|
+
count: number;
|
|
2268
|
+
devices: Array<{
|
|
2269
|
+
average: number;
|
|
2270
|
+
count: number;
|
|
2271
|
+
device: string;
|
|
2272
|
+
good: number;
|
|
2273
|
+
needsImprovement: number;
|
|
2274
|
+
p75: number;
|
|
2275
|
+
poor: number;
|
|
2276
|
+
}>;
|
|
2277
|
+
good: number;
|
|
2278
|
+
metric: "LCP" | "CLS" | "INP" | "FCP" | "TTFB";
|
|
2279
|
+
needsImprovement: number;
|
|
2280
|
+
p75: number;
|
|
2281
|
+
pages: Array<{
|
|
2282
|
+
average: number;
|
|
2283
|
+
count: number;
|
|
2284
|
+
good: number;
|
|
2285
|
+
needsImprovement: number;
|
|
2286
|
+
p75: number;
|
|
2287
|
+
page: string;
|
|
2288
|
+
poor: number;
|
|
2289
|
+
}>;
|
|
2290
|
+
poor: number;
|
|
2291
|
+
timeSeries: Array<{
|
|
2292
|
+
count: number;
|
|
2293
|
+
p75: number;
|
|
2294
|
+
timestamp: number;
|
|
2295
|
+
}>;
|
|
2296
|
+
}>;
|
|
2297
|
+
truncated: boolean;
|
|
2298
|
+
}>>;
|
|
1959
2299
|
dataCoverage: import("convex/server").RegisteredQuery<"public", {
|
|
1960
2300
|
from: number;
|
|
1961
2301
|
siteId: string;
|
|
@@ -1969,7 +2309,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1969
2309
|
retainedBefore: number | null;
|
|
1970
2310
|
state: "complete" | "partial" | "retained" | "unavailable";
|
|
1971
2311
|
};
|
|
1972
|
-
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates";
|
|
2312
|
+
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals";
|
|
1973
2313
|
}>;
|
|
1974
2314
|
from: number;
|
|
1975
2315
|
siteId: string;
|
|
@@ -1982,7 +2322,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
1982
2322
|
jobs: Array<{
|
|
1983
2323
|
before: number;
|
|
1984
2324
|
deleted: number;
|
|
1985
|
-
kind: "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
2325
|
+
kind: "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "vitalRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
|
|
1986
2326
|
scheduledAt: number | null;
|
|
1987
2327
|
status: "pending" | "running" | "complete";
|
|
1988
2328
|
updatedAt: number;
|
|
@@ -2009,7 +2349,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2009
2349
|
}, Promise<null>>;
|
|
2010
2350
|
runRetentionPolicy: import("convex/server").RegisteredMutation<"public", {
|
|
2011
2351
|
batchSize?: number | undefined;
|
|
2012
|
-
kind: "affiliateRollups" | "affiliateStats" | "aggregateDay" | "aggregateHour" | "attributions" | "conversions" | "events" | "funnelProgress" | "funnelRollups" | "funnelSteps" | "goalCompletions" | "goalRollups" | "ingestWindows" | "liveSessions" | "sessions" | "siteIngestWindows";
|
|
2352
|
+
kind: "affiliateRollups" | "affiliateStats" | "aggregateDay" | "aggregateHour" | "attributions" | "conversions" | "events" | "funnelProgress" | "funnelRollups" | "funnelSteps" | "goalCompletions" | "goalRollups" | "ingestWindows" | "liveSessions" | "sessions" | "siteIngestWindows" | "vitalRollups";
|
|
2013
2353
|
siteId: string;
|
|
2014
2354
|
}, Promise<{
|
|
2015
2355
|
before: number;
|
|
@@ -2110,7 +2450,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
|
|
|
2110
2450
|
cleanupAnalytics: import("convex/server").RegisteredMutation<"public", {
|
|
2111
2451
|
batchSize?: number | undefined;
|
|
2112
2452
|
before: number;
|
|
2113
|
-
kind: "affiliateRollups" | "affiliateStats" | "aggregateDay" | "aggregateHour" | "attributions" | "conversions" | "events" | "funnelProgress" | "funnelRollups" | "funnelSteps" | "goalCompletions" | "goalRollups" | "ingestWindows" | "liveSessions" | "sessions" | "siteIngestWindows";
|
|
2453
|
+
kind: "affiliateRollups" | "affiliateStats" | "aggregateDay" | "aggregateHour" | "attributions" | "conversions" | "events" | "funnelProgress" | "funnelRollups" | "funnelSteps" | "goalCompletions" | "goalRollups" | "ingestWindows" | "liveSessions" | "sessions" | "siteIngestWindows" | "vitalRollups";
|
|
2114
2454
|
siteId: string;
|
|
2115
2455
|
}, Promise<{
|
|
2116
2456
|
before: number;
|
|
@@ -2138,8 +2478,9 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2138
2478
|
funnelsReport: "funnelsReport";
|
|
2139
2479
|
affiliatesReport: "affiliatesReport";
|
|
2140
2480
|
dataCoverage: "dataCoverage";
|
|
2481
|
+
vitalsReport: "vitalsReport";
|
|
2141
2482
|
};
|
|
2142
|
-
capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney")[];
|
|
2483
|
+
capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[];
|
|
2143
2484
|
limits: {
|
|
2144
2485
|
maxSitesPerRequest: 10;
|
|
2145
2486
|
maxSitesPerConnection: 10;
|
|
@@ -2379,7 +2720,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2379
2720
|
siteId: string;
|
|
2380
2721
|
target?: string;
|
|
2381
2722
|
timestamp: number;
|
|
2382
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
2723
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
2383
2724
|
visitorId: string;
|
|
2384
2725
|
}>;
|
|
2385
2726
|
pageStatus?: "SplitRecommended" | "SplitRequired" | null;
|
|
@@ -2452,7 +2793,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2452
2793
|
siteId: string;
|
|
2453
2794
|
target?: string;
|
|
2454
2795
|
timestamp: number;
|
|
2455
|
-
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound";
|
|
2796
|
+
type: "pageview" | "click" | "custom" | "conversion" | "heartbeat" | "outbound" | "vital";
|
|
2456
2797
|
visitorId: string;
|
|
2457
2798
|
}[]>>;
|
|
2458
2799
|
goalsReport: import("convex/server").RegisteredQuery<"public", {
|
|
@@ -2579,6 +2920,61 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2579
2920
|
};
|
|
2580
2921
|
truncated: boolean;
|
|
2581
2922
|
}>>;
|
|
2923
|
+
vitalsReport: import("convex/server").RegisteredQuery<"public", {
|
|
2924
|
+
from: number;
|
|
2925
|
+
siteId: string;
|
|
2926
|
+
to: number;
|
|
2927
|
+
}, Promise<{
|
|
2928
|
+
metadata: {
|
|
2929
|
+
basis: "dailyRollup" | "boundedLegacy";
|
|
2930
|
+
coverage: {
|
|
2931
|
+
availableFrom: number | null;
|
|
2932
|
+
availableThrough: number | null;
|
|
2933
|
+
generation: number | null;
|
|
2934
|
+
retainedBefore: number | null;
|
|
2935
|
+
state: "complete" | "partial" | "retained" | "unavailable";
|
|
2936
|
+
};
|
|
2937
|
+
range: {
|
|
2938
|
+
boundary: "inclusive";
|
|
2939
|
+
from: number;
|
|
2940
|
+
timezone: "UTC";
|
|
2941
|
+
to: number;
|
|
2942
|
+
};
|
|
2943
|
+
};
|
|
2944
|
+
metrics: Array<{
|
|
2945
|
+
average: number;
|
|
2946
|
+
count: number;
|
|
2947
|
+
devices: Array<{
|
|
2948
|
+
average: number;
|
|
2949
|
+
count: number;
|
|
2950
|
+
device: string;
|
|
2951
|
+
good: number;
|
|
2952
|
+
needsImprovement: number;
|
|
2953
|
+
p75: number;
|
|
2954
|
+
poor: number;
|
|
2955
|
+
}>;
|
|
2956
|
+
good: number;
|
|
2957
|
+
metric: "LCP" | "CLS" | "INP" | "FCP" | "TTFB";
|
|
2958
|
+
needsImprovement: number;
|
|
2959
|
+
p75: number;
|
|
2960
|
+
pages: Array<{
|
|
2961
|
+
average: number;
|
|
2962
|
+
count: number;
|
|
2963
|
+
good: number;
|
|
2964
|
+
needsImprovement: number;
|
|
2965
|
+
p75: number;
|
|
2966
|
+
page: string;
|
|
2967
|
+
poor: number;
|
|
2968
|
+
}>;
|
|
2969
|
+
poor: number;
|
|
2970
|
+
timeSeries: Array<{
|
|
2971
|
+
count: number;
|
|
2972
|
+
p75: number;
|
|
2973
|
+
timestamp: number;
|
|
2974
|
+
}>;
|
|
2975
|
+
}>;
|
|
2976
|
+
truncated: boolean;
|
|
2977
|
+
}>>;
|
|
2582
2978
|
dataCoverage: import("convex/server").RegisteredQuery<"public", {
|
|
2583
2979
|
from: number;
|
|
2584
2980
|
siteId: string;
|
|
@@ -2592,7 +2988,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2592
2988
|
retainedBefore: number | null;
|
|
2593
2989
|
state: "complete" | "partial" | "retained" | "unavailable";
|
|
2594
2990
|
};
|
|
2595
|
-
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates";
|
|
2991
|
+
dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals";
|
|
2596
2992
|
}>;
|
|
2597
2993
|
from: number;
|
|
2598
2994
|
siteId: string;
|
|
@@ -2602,6 +2998,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
|
|
|
2602
2998
|
export declare function componentHttpPaths(prefix?: string): {
|
|
2603
2999
|
readonly events: `${string}/events`;
|
|
2604
3000
|
readonly tracker: `${string}/tracker.js`;
|
|
3001
|
+
readonly vitals: `${string}/vitals.js`;
|
|
2605
3002
|
readonly health: `${string}/health`;
|
|
2606
3003
|
};
|
|
2607
3004
|
type QueryCtx = Pick<GenericQueryCtx<GenericDataModel>, "runQuery">;
|