@iann29/rastro 0.1.0-alpha.10 → 0.1.0-alpha.12

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.
Files changed (89) hide show
  1. package/README.md +215 -46
  2. package/agent/integration.md +186 -46
  3. package/agent/manifest.json +28 -10
  4. package/agent/manifest.schema.json +41 -8
  5. package/dist/client/federation.d.ts +156 -11
  6. package/dist/client/federation.d.ts.map +1 -1
  7. package/dist/client/federation.js +82 -4
  8. package/dist/client/federation.js.map +1 -1
  9. package/dist/client/index.d.ts +306 -97
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +116 -13
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/component/_generated/api.d.ts +6 -0
  14. package/dist/component/_generated/api.d.ts.map +1 -1
  15. package/dist/component/_generated/api.js.map +1 -1
  16. package/dist/component/_generated/component.d.ts +26 -13
  17. package/dist/component/_generated/component.d.ts.map +1 -1
  18. package/dist/component/constants.d.ts +3 -0
  19. package/dist/component/constants.d.ts.map +1 -1
  20. package/dist/component/constants.js +6 -0
  21. package/dist/component/constants.js.map +1 -1
  22. package/dist/component/coverage.d.ts +8 -0
  23. package/dist/component/coverage.d.ts.map +1 -1
  24. package/dist/component/coverage.js +32 -6
  25. package/dist/component/coverage.js.map +1 -1
  26. package/dist/component/geo.d.ts +2 -0
  27. package/dist/component/geo.d.ts.map +1 -1
  28. package/dist/component/geo.js +56 -19
  29. package/dist/component/geo.js.map +1 -1
  30. package/dist/component/http.d.ts.map +1 -1
  31. package/dist/component/http.js +47 -27
  32. package/dist/component/http.js.map +1 -1
  33. package/dist/component/ingest.d.ts.map +1 -1
  34. package/dist/component/ingest.js +149 -295
  35. package/dist/component/ingest.js.map +1 -1
  36. package/dist/component/localTime.d.ts +25 -0
  37. package/dist/component/localTime.d.ts.map +1 -0
  38. package/dist/component/localTime.js +126 -0
  39. package/dist/component/localTime.js.map +1 -0
  40. package/dist/component/reports.d.ts +20 -13
  41. package/dist/component/reports.d.ts.map +1 -1
  42. package/dist/component/reports.js +158 -38
  43. package/dist/component/reports.js.map +1 -1
  44. package/dist/component/retention.js +26 -8
  45. package/dist/component/retention.js.map +1 -1
  46. package/dist/component/rollupStore.d.ts +320 -0
  47. package/dist/component/rollupStore.d.ts.map +1 -0
  48. package/dist/component/rollupStore.js +596 -0
  49. package/dist/component/rollupStore.js.map +1 -0
  50. package/dist/component/rollups.d.ts +20 -0
  51. package/dist/component/rollups.d.ts.map +1 -0
  52. package/dist/component/rollups.js +73 -0
  53. package/dist/component/rollups.js.map +1 -0
  54. package/dist/component/schema.d.ts +311 -5
  55. package/dist/component/schema.js +9 -0
  56. package/dist/component/schema.js.map +1 -1
  57. package/dist/component/sites.d.ts +12 -0
  58. package/dist/component/sites.d.ts.map +1 -1
  59. package/dist/component/sites.js +30 -0
  60. package/dist/component/sites.js.map +1 -1
  61. package/dist/component/validators.d.ts +24 -5
  62. package/dist/component/validators.d.ts.map +1 -1
  63. package/dist/component/validators.js +16 -1
  64. package/dist/component/validators.js.map +1 -1
  65. package/dist/tracker/generated.d.ts +3 -0
  66. package/dist/tracker/generated.d.ts.map +1 -1
  67. package/dist/tracker/generated.js +3 -0
  68. package/dist/tracker/generated.js.map +1 -1
  69. package/docs/federation-setup.md +93 -26
  70. package/docs/federation.md +120 -30
  71. package/docs/upgrading.md +103 -17
  72. package/llms.txt +6 -5
  73. package/package.json +2 -1
  74. package/src/component/_generated/api.ts +6 -0
  75. package/src/component/_generated/component.ts +27 -12
  76. package/src/component/constants.ts +6 -0
  77. package/src/component/coverage.ts +41 -6
  78. package/src/component/geo.ts +82 -28
  79. package/src/component/http.ts +60 -26
  80. package/src/component/ingest.ts +226 -425
  81. package/src/component/localTime.ts +167 -0
  82. package/src/component/reports.ts +222 -39
  83. package/src/component/retention.ts +25 -7
  84. package/src/component/rollupStore.ts +799 -0
  85. package/src/component/rollups.ts +82 -0
  86. package/src/component/schema.ts +17 -0
  87. package/src/component/sites.ts +32 -0
  88. package/src/component/validators.ts +20 -1
  89. package/src/tracker/generated.ts +12 -0
@@ -7,9 +7,10 @@ export { eventPropertiesValidator, eventTypeValidator, funnelStepValidator, goal
7
7
  export type { EventProperties, EventType, FunnelStep, IngestContext, TrackerEvent, } from "../component/validators.js";
8
8
  export { VITAL_METRICS, VITAL_THRESHOLDS } from "../component/vitals.js";
9
9
  export { normalizeRoute } from "../component/sanitize.js";
10
+ export { localDayStart, nextLocalDayStart, previousLocalDayStart, } from "../component/localTime.js";
10
11
  export type { VitalMetric } from "../component/vitals.js";
11
- 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";
12
- export type { FederatedAnalyticsCapability, FederatedAnalyticsAuthorizerOptions, FederatedAnalyticsConnection, FederatedAnalyticsConnectionStatus, FederatedAnalyticsErrorCode, FederatedAnalyticsIdentity, FederatedAnalyticsManifest, FederatedSiteSummary, ResolveFederatedAnalyticsConnection, } from "./federation.js";
12
+ export { effectiveFederatedPermissions, FEDERATED_ANALYTICS_CLAIMS, FEDERATED_ANALYTICS_CONFIGURE_FUNCTIONS, FEDERATED_ANALYTICS_CONFIGURE_PERMISSION, FEDERATED_ANALYTICS_CONNECTOR_MANIFEST, FEDERATED_ANALYTICS_ERROR_CODES, FEDERATED_ANALYTICS_PERMISSIONS, FEDERATED_ANALYTICS_READ_PERMISSION, FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES, FEDERATED_ANALYTICS_REQUIRED_FUNCTIONS, federatedAnalyticsPermissionValidator, } from "./federation.js";
13
+ export type { FederatedAnalyticsCapability, FederatedAnalyticsAuthorizerOptions, FederatedAnalyticsConnection, FederatedAnalyticsConnectionStatus, FederatedAnalyticsErrorCode, FederatedAnalyticsIdentity, FederatedAnalyticsManifest, FederatedAnalyticsPermission, FederatedSiteSummary, ResolveFederatedAnalyticsConnection, } from "./federation.js";
13
14
  export type CreateSiteInput = FunctionArgs<ComponentApi["sites"]["create"]>;
14
15
  export type CreateSiteOutput = FunctionReturnType<ComponentApi["sites"]["create"]>;
15
16
  export type UpdateSiteInput = FunctionArgs<ComponentApi["sites"]["update"]>;
@@ -75,7 +76,7 @@ export type DataCoverage = {
75
76
  from: number;
76
77
  to: number;
77
78
  datasets: Array<{
78
- dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
79
+ dataset: "overviewHour" | "overviewDay" | "overviewLocalDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
79
80
  coverage: CoverageStatus;
80
81
  }>;
81
82
  };
@@ -132,6 +133,11 @@ export declare class Rastro {
132
133
  timezone?: string;
133
134
  updatedAt: number;
134
135
  } | null>;
136
+ /** The calendar days a site's daily overview answers in; see `sites.localDays`. */
137
+ localDays(ctx: QueryCtx | MutationCtx | ActionCtx, siteId: string): Promise<{
138
+ since: number;
139
+ timezone: string;
140
+ } | null>;
135
141
  listSites(ctx: QueryCtx | MutationCtx | ActionCtx, args: ListSitesInput): Promise<{
136
142
  _creationTime: number;
137
143
  _id: string;
@@ -165,14 +171,14 @@ export declare class Rastro {
165
171
  interval: "hour" | "day";
166
172
  metadata: {
167
173
  breakdowns: {
168
- topBrowsers: "eventVolume";
169
- topCampaigns: "eventVolume";
170
- topCountries: "eventVolume";
171
- topDevices: "eventVolume";
174
+ topBrowsers: "pageviews" | "sessions" | "eventVolume";
175
+ topCampaigns: "pageviews" | "sessions" | "eventVolume";
176
+ topCountries: "pageviews" | "sessions" | "eventVolume";
177
+ topDevices: "pageviews" | "sessions" | "eventVolume";
172
178
  topEvents: "eventVolume";
173
179
  topGoals: "goalCompletionVolume";
174
- topPages: "eventVolume";
175
- topSources: "eventVolume";
180
+ topPages: "pageviews" | "sessions" | "eventVolume";
181
+ topSources: "pageviews" | "sessions" | "eventVolume";
176
182
  };
177
183
  coverage: {
178
184
  availableFrom: number | null;
@@ -181,6 +187,7 @@ export declare class Rastro {
181
187
  retainedBefore: number | null;
182
188
  state: "complete" | "partial" | "retained" | "unavailable";
183
189
  };
190
+ engagement: "counted" | "unavailable";
184
191
  features: {
185
192
  botDetection: "userAgent";
186
193
  errorInsights: "unsupported";
@@ -190,7 +197,7 @@ export declare class Rastro {
190
197
  range: {
191
198
  boundary: "inclusive";
192
199
  from: number;
193
- timezone: "UTC";
200
+ timezone: string;
194
201
  to: number;
195
202
  };
196
203
  visitors: {
@@ -203,9 +210,12 @@ export declare class Rastro {
203
210
  };
204
211
  timeSeries: Array<{
205
212
  clicks: number;
213
+ continuedSessions: number;
206
214
  conversions: number;
207
215
  customEvents: number;
216
+ durationMs: number;
208
217
  events: number;
218
+ newVisitors: number;
209
219
  outboundClicks: number;
210
220
  pageviews: number;
211
221
  revenueCents: number;
@@ -256,9 +266,12 @@ export declare class Rastro {
256
266
  }>;
257
267
  totals: {
258
268
  clicks: number;
269
+ continuedSessions: number;
259
270
  conversions: number;
260
271
  customEvents: number;
272
+ durationMs: number;
261
273
  events: number;
274
+ newVisitors: number;
262
275
  outboundClicks: number;
263
276
  pageviews: number;
264
277
  revenueCents: number;
@@ -441,7 +454,7 @@ export declare class Rastro {
441
454
  range: {
442
455
  boundary: "inclusive";
443
456
  from: number;
444
- timezone: "UTC";
457
+ timezone: string;
445
458
  to: number;
446
459
  };
447
460
  };
@@ -466,7 +479,7 @@ export declare class Rastro {
466
479
  range: {
467
480
  boundary: "inclusive";
468
481
  from: number;
469
- timezone: "UTC";
482
+ timezone: string;
470
483
  to: number;
471
484
  };
472
485
  };
@@ -516,7 +529,7 @@ export declare class Rastro {
516
529
  range: {
517
530
  boundary: "inclusive";
518
531
  from: number;
519
- timezone: "UTC";
532
+ timezone: string;
520
533
  to: number;
521
534
  };
522
535
  uniqueVisitors: {
@@ -539,7 +552,7 @@ export declare class Rastro {
539
552
  range: {
540
553
  boundary: "inclusive";
541
554
  from: number;
542
- timezone: "UTC";
555
+ timezone: string;
543
556
  to: number;
544
557
  };
545
558
  };
@@ -596,7 +609,7 @@ export declare class Rastro {
596
609
  range: {
597
610
  boundary: "inclusive";
598
611
  from: number;
599
- timezone: "UTC";
612
+ timezone: string;
600
613
  to: number;
601
614
  };
602
615
  visitors: {
@@ -696,7 +709,7 @@ export declare class Rastro {
696
709
  retainedBefore: number | null;
697
710
  state: "complete" | "partial" | "retained" | "unavailable";
698
711
  };
699
- dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
712
+ dataset: "overviewHour" | "overviewDay" | "overviewLocalDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
700
713
  }>;
701
714
  from: number;
702
715
  siteId: string;
@@ -743,14 +756,14 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
743
756
  interval: "day" | "hour";
744
757
  metadata: {
745
758
  breakdowns: {
746
- topBrowsers: "eventVolume";
747
- topCampaigns: "eventVolume";
748
- topCountries: "eventVolume";
749
- topDevices: "eventVolume";
759
+ topBrowsers: "eventVolume" | "pageviews" | "sessions";
760
+ topCampaigns: "eventVolume" | "pageviews" | "sessions";
761
+ topCountries: "eventVolume" | "pageviews" | "sessions";
762
+ topDevices: "eventVolume" | "pageviews" | "sessions";
750
763
  topEvents: "eventVolume";
751
764
  topGoals: "goalCompletionVolume";
752
- topPages: "eventVolume";
753
- topSources: "eventVolume";
765
+ topPages: "eventVolume" | "pageviews" | "sessions";
766
+ topSources: "eventVolume" | "pageviews" | "sessions";
754
767
  };
755
768
  coverage: {
756
769
  availableFrom: number | null;
@@ -759,6 +772,7 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
759
772
  retainedBefore: number | null;
760
773
  state: "complete" | "partial" | "retained" | "unavailable";
761
774
  };
775
+ engagement: "counted" | "unavailable";
762
776
  features: {
763
777
  botDetection: "userAgent";
764
778
  errorInsights: "unsupported";
@@ -768,7 +782,7 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
768
782
  range: {
769
783
  boundary: "inclusive";
770
784
  from: number;
771
- timezone: "UTC";
785
+ timezone: string;
772
786
  to: number;
773
787
  };
774
788
  visitors: {
@@ -781,9 +795,12 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
781
795
  };
782
796
  timeSeries: {
783
797
  clicks: number;
798
+ continuedSessions: number;
784
799
  conversions: number;
785
800
  customEvents: number;
801
+ durationMs: number;
786
802
  events: number;
803
+ newVisitors: number;
787
804
  outboundClicks: number;
788
805
  pageviews: number;
789
806
  revenueCents: number;
@@ -834,9 +851,12 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
834
851
  }[];
835
852
  totals: {
836
853
  clicks: number;
854
+ continuedSessions: number;
837
855
  conversions: number;
838
856
  customEvents: number;
857
+ durationMs: number;
839
858
  events: number;
859
+ newVisitors: number;
840
860
  outboundClicks: number;
841
861
  pageviews: number;
842
862
  revenueCents: number;
@@ -850,9 +870,12 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
850
870
  currency: import("convex/values").VString<string, "required">;
851
871
  totals: import("convex/values").VObject<{
852
872
  clicks: number;
873
+ continuedSessions: number;
853
874
  conversions: number;
854
875
  customEvents: number;
876
+ durationMs: number;
855
877
  events: number;
878
+ newVisitors: number;
856
879
  outboundClicks: number;
857
880
  pageviews: number;
858
881
  revenueCents: number;
@@ -868,12 +891,18 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
868
891
  visitors: import("convex/values").VFloat64<number, "required">;
869
892
  conversions: import("convex/values").VFloat64<number, "required">;
870
893
  revenueCents: import("convex/values").VFloat64<number, "required">;
871
- }, "required", "clicks" | "conversions" | "customEvents" | "events" | "outboundClicks" | "pageviews" | "revenueCents" | "sessions" | "visitors">;
894
+ durationMs: import("convex/values").VFloat64<number, "required">;
895
+ continuedSessions: import("convex/values").VFloat64<number, "required">;
896
+ newVisitors: import("convex/values").VFloat64<number, "required">;
897
+ }, "required", "clicks" | "continuedSessions" | "conversions" | "customEvents" | "durationMs" | "events" | "newVisitors" | "outboundClicks" | "pageviews" | "revenueCents" | "sessions" | "visitors">;
872
898
  timeSeries: import("convex/values").VArray<{
873
899
  clicks: number;
900
+ continuedSessions: number;
874
901
  conversions: number;
875
902
  customEvents: number;
903
+ durationMs: number;
876
904
  events: number;
905
+ newVisitors: number;
877
906
  outboundClicks: number;
878
907
  pageviews: number;
879
908
  revenueCents: number;
@@ -882,9 +911,12 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
882
911
  visitors: number;
883
912
  }[], import("convex/values").VObject<{
884
913
  clicks: number;
914
+ continuedSessions: number;
885
915
  conversions: number;
886
916
  customEvents: number;
917
+ durationMs: number;
887
918
  events: number;
919
+ newVisitors: number;
888
920
  outboundClicks: number;
889
921
  pageviews: number;
890
922
  revenueCents: number;
@@ -901,8 +933,11 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
901
933
  visitors: import("convex/values").VFloat64<number, "required">;
902
934
  conversions: import("convex/values").VFloat64<number, "required">;
903
935
  revenueCents: import("convex/values").VFloat64<number, "required">;
936
+ durationMs: import("convex/values").VFloat64<number, "required">;
937
+ continuedSessions: import("convex/values").VFloat64<number, "required">;
938
+ newVisitors: import("convex/values").VFloat64<number, "required">;
904
939
  timestamp: import("convex/values").VFloat64<number, "required">;
905
- }, "required", "clicks" | "conversions" | "customEvents" | "events" | "outboundClicks" | "pageviews" | "revenueCents" | "sessions" | "timestamp" | "visitors">, "required">;
940
+ }, "required", "clicks" | "continuedSessions" | "conversions" | "customEvents" | "durationMs" | "events" | "newVisitors" | "outboundClicks" | "pageviews" | "revenueCents" | "sessions" | "timestamp" | "visitors">, "required">;
906
941
  topSources: import("convex/values").VArray<{
907
942
  count: number;
908
943
  revenueCents: number;
@@ -1009,14 +1044,14 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1009
1044
  }, "required", "count" | "revenueCents" | "value">, "required">;
1010
1045
  metadata: import("convex/values").VObject<{
1011
1046
  breakdowns: {
1012
- topBrowsers: "eventVolume";
1013
- topCampaigns: "eventVolume";
1014
- topCountries: "eventVolume";
1015
- topDevices: "eventVolume";
1047
+ topBrowsers: "eventVolume" | "pageviews" | "sessions";
1048
+ topCampaigns: "eventVolume" | "pageviews" | "sessions";
1049
+ topCountries: "eventVolume" | "pageviews" | "sessions";
1050
+ topDevices: "eventVolume" | "pageviews" | "sessions";
1016
1051
  topEvents: "eventVolume";
1017
1052
  topGoals: "goalCompletionVolume";
1018
- topPages: "eventVolume";
1019
- topSources: "eventVolume";
1053
+ topPages: "eventVolume" | "pageviews" | "sessions";
1054
+ topSources: "eventVolume" | "pageviews" | "sessions";
1020
1055
  };
1021
1056
  coverage: {
1022
1057
  availableFrom: number | null;
@@ -1025,6 +1060,7 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1025
1060
  retainedBefore: number | null;
1026
1061
  state: "complete" | "partial" | "retained" | "unavailable";
1027
1062
  };
1063
+ engagement: "counted" | "unavailable";
1028
1064
  features: {
1029
1065
  botDetection: "userAgent";
1030
1066
  errorInsights: "unsupported";
@@ -1034,7 +1070,7 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1034
1070
  range: {
1035
1071
  boundary: "inclusive";
1036
1072
  from: number;
1037
- timezone: "UTC";
1073
+ timezone: string;
1038
1074
  to: number;
1039
1075
  };
1040
1076
  visitors: {
@@ -1059,24 +1095,25 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1059
1095
  precision: import("convex/values").VUnion<number | null, [import("convex/values").VFloat64<number, "required">, import("convex/values").VNull<null, "required">], "required", never>;
1060
1096
  }, "required", "basis" | "exact" | "legacyIncomplete" | "precision" | "sketchVersion">;
1061
1097
  breakdowns: import("convex/values").VObject<{
1062
- topBrowsers: "eventVolume";
1063
- topCampaigns: "eventVolume";
1064
- topCountries: "eventVolume";
1065
- topDevices: "eventVolume";
1098
+ topBrowsers: "eventVolume" | "pageviews" | "sessions";
1099
+ topCampaigns: "eventVolume" | "pageviews" | "sessions";
1100
+ topCountries: "eventVolume" | "pageviews" | "sessions";
1101
+ topDevices: "eventVolume" | "pageviews" | "sessions";
1066
1102
  topEvents: "eventVolume";
1067
1103
  topGoals: "goalCompletionVolume";
1068
- topPages: "eventVolume";
1069
- topSources: "eventVolume";
1104
+ topPages: "eventVolume" | "pageviews" | "sessions";
1105
+ topSources: "eventVolume" | "pageviews" | "sessions";
1070
1106
  }, {
1071
- topSources: import("convex/values").VLiteral<"eventVolume", "required">;
1072
- topCampaigns: import("convex/values").VLiteral<"eventVolume", "required">;
1073
- topPages: import("convex/values").VLiteral<"eventVolume", "required">;
1074
- topCountries: import("convex/values").VLiteral<"eventVolume", "required">;
1075
- topDevices: import("convex/values").VLiteral<"eventVolume", "required">;
1076
- topBrowsers: import("convex/values").VLiteral<"eventVolume", "required">;
1107
+ topSources: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1108
+ topCampaigns: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1109
+ topPages: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1110
+ topCountries: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1111
+ topDevices: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1112
+ topBrowsers: import("convex/values").VUnion<"eventVolume" | "pageviews" | "sessions", [import("convex/values").VLiteral<"pageviews", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"eventVolume", "required">], "required", never>;
1077
1113
  topEvents: import("convex/values").VLiteral<"eventVolume", "required">;
1078
1114
  topGoals: import("convex/values").VLiteral<"goalCompletionVolume", "required">;
1079
1115
  }, "required", "topBrowsers" | "topCampaigns" | "topCountries" | "topDevices" | "topEvents" | "topGoals" | "topPages" | "topSources">;
1116
+ engagement: import("convex/values").VUnion<"counted" | "unavailable", [import("convex/values").VLiteral<"counted", "required">, import("convex/values").VLiteral<"unavailable", "required">], "required", never>;
1080
1117
  coverage: import("convex/values").VObject<{
1081
1118
  availableFrom: number | null;
1082
1119
  availableThrough: number | null;
@@ -1093,13 +1130,13 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1093
1130
  range: import("convex/values").VObject<{
1094
1131
  boundary: "inclusive";
1095
1132
  from: number;
1096
- timezone: "UTC";
1133
+ timezone: string;
1097
1134
  to: number;
1098
1135
  }, {
1099
1136
  from: import("convex/values").VFloat64<number, "required">;
1100
1137
  to: import("convex/values").VFloat64<number, "required">;
1101
1138
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1102
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1139
+ timezone: import("convex/values").VString<string, "required">;
1103
1140
  }, "required", "boundary" | "from" | "timezone" | "to">;
1104
1141
  features: import("convex/values").VObject<{
1105
1142
  botDetection: "userAgent";
@@ -1112,8 +1149,8 @@ declare const hostOverviewValidator: import("convex/values").VObject<{
1112
1149
  outboundLinks: import("convex/values").VLiteral<"eventVolume", "required">;
1113
1150
  botDetection: import("convex/values").VLiteral<"userAgent", "required">;
1114
1151
  }, "required", "botDetection" | "errorInsights" | "outboundLinks" | "sessionReplay">;
1115
- }, "required", "breakdowns" | "breakdowns.topBrowsers" | "breakdowns.topCampaigns" | "breakdowns.topCountries" | "breakdowns.topDevices" | "breakdowns.topEvents" | "breakdowns.topGoals" | "breakdowns.topPages" | "breakdowns.topSources" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "features" | "features.botDetection" | "features.errorInsights" | "features.outboundLinks" | "features.sessionReplay" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to" | "visitors" | "visitors.basis" | "visitors.exact" | "visitors.legacyIncomplete" | "visitors.precision" | "visitors.sketchVersion">;
1116
- }, "required", "currency" | "from" | "interval" | "metadata" | "metadata.breakdowns" | "metadata.breakdowns.topBrowsers" | "metadata.breakdowns.topCampaigns" | "metadata.breakdowns.topCountries" | "metadata.breakdowns.topDevices" | "metadata.breakdowns.topEvents" | "metadata.breakdowns.topGoals" | "metadata.breakdowns.topPages" | "metadata.breakdowns.topSources" | "metadata.coverage" | "metadata.coverage.availableFrom" | "metadata.coverage.availableThrough" | "metadata.coverage.generation" | "metadata.coverage.retainedBefore" | "metadata.coverage.state" | "metadata.features" | "metadata.features.botDetection" | "metadata.features.errorInsights" | "metadata.features.outboundLinks" | "metadata.features.sessionReplay" | "metadata.range" | "metadata.range.boundary" | "metadata.range.from" | "metadata.range.timezone" | "metadata.range.to" | "metadata.visitors" | "metadata.visitors.basis" | "metadata.visitors.exact" | "metadata.visitors.legacyIncomplete" | "metadata.visitors.precision" | "metadata.visitors.sketchVersion" | "timeSeries" | "to" | "topBrowsers" | "topCampaigns" | "topCountries" | "topDevices" | "topEvents" | "topGoals" | "topPages" | "topSources" | "totals" | "totals.clicks" | "totals.conversions" | "totals.customEvents" | "totals.events" | "totals.outboundClicks" | "totals.pageviews" | "totals.revenueCents" | "totals.sessions" | "totals.visitors">;
1152
+ }, "required", "breakdowns" | "breakdowns.topBrowsers" | "breakdowns.topCampaigns" | "breakdowns.topCountries" | "breakdowns.topDevices" | "breakdowns.topEvents" | "breakdowns.topGoals" | "breakdowns.topPages" | "breakdowns.topSources" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "engagement" | "features" | "features.botDetection" | "features.errorInsights" | "features.outboundLinks" | "features.sessionReplay" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to" | "visitors" | "visitors.basis" | "visitors.exact" | "visitors.legacyIncomplete" | "visitors.precision" | "visitors.sketchVersion">;
1153
+ }, "required", "currency" | "from" | "interval" | "metadata" | "metadata.breakdowns" | "metadata.breakdowns.topBrowsers" | "metadata.breakdowns.topCampaigns" | "metadata.breakdowns.topCountries" | "metadata.breakdowns.topDevices" | "metadata.breakdowns.topEvents" | "metadata.breakdowns.topGoals" | "metadata.breakdowns.topPages" | "metadata.breakdowns.topSources" | "metadata.coverage" | "metadata.coverage.availableFrom" | "metadata.coverage.availableThrough" | "metadata.coverage.generation" | "metadata.coverage.retainedBefore" | "metadata.coverage.state" | "metadata.engagement" | "metadata.features" | "metadata.features.botDetection" | "metadata.features.errorInsights" | "metadata.features.outboundLinks" | "metadata.features.sessionReplay" | "metadata.range" | "metadata.range.boundary" | "metadata.range.from" | "metadata.range.timezone" | "metadata.range.to" | "metadata.visitors" | "metadata.visitors.basis" | "metadata.visitors.exact" | "metadata.visitors.legacyIncomplete" | "metadata.visitors.precision" | "metadata.visitors.sketchVersion" | "timeSeries" | "to" | "topBrowsers" | "topCampaigns" | "topCountries" | "topDevices" | "topEvents" | "topGoals" | "topPages" | "topSources" | "totals" | "totals.clicks" | "totals.continuedSessions" | "totals.conversions" | "totals.customEvents" | "totals.durationMs" | "totals.events" | "totals.newVisitors" | "totals.outboundClicks" | "totals.pageviews" | "totals.revenueCents" | "totals.sessions" | "totals.visitors">;
1117
1154
  declare const hostGoalsReportValidator: import("convex/values").VObject<{
1118
1155
  goals: {
1119
1156
  _creationTime: number;
@@ -1141,7 +1178,7 @@ declare const hostGoalsReportValidator: import("convex/values").VObject<{
1141
1178
  range: {
1142
1179
  boundary: "inclusive";
1143
1180
  from: number;
1144
- timezone: "UTC";
1181
+ timezone: string;
1145
1182
  to: number;
1146
1183
  };
1147
1184
  };
@@ -1200,7 +1237,7 @@ declare const hostGoalsReportValidator: import("convex/values").VObject<{
1200
1237
  range: {
1201
1238
  boundary: "inclusive";
1202
1239
  from: number;
1203
- timezone: "UTC";
1240
+ timezone: string;
1204
1241
  to: number;
1205
1242
  };
1206
1243
  }, {
@@ -1221,13 +1258,13 @@ declare const hostGoalsReportValidator: import("convex/values").VObject<{
1221
1258
  range: import("convex/values").VObject<{
1222
1259
  boundary: "inclusive";
1223
1260
  from: number;
1224
- timezone: "UTC";
1261
+ timezone: string;
1225
1262
  to: number;
1226
1263
  }, {
1227
1264
  from: import("convex/values").VFloat64<number, "required">;
1228
1265
  to: import("convex/values").VFloat64<number, "required">;
1229
1266
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1230
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1267
+ timezone: import("convex/values").VString<string, "required">;
1231
1268
  }, "required", "boundary" | "from" | "timezone" | "to">;
1232
1269
  }, "required", "basis" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to">;
1233
1270
  }, "required", "goals" | "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" | "truncated">;
@@ -1250,7 +1287,7 @@ declare const hostFunnelsReportValidator: import("convex/values").VArray<{
1250
1287
  range: {
1251
1288
  boundary: "inclusive";
1252
1289
  from: number;
1253
- timezone: "UTC";
1290
+ timezone: string;
1254
1291
  to: number;
1255
1292
  };
1256
1293
  };
@@ -1288,7 +1325,7 @@ declare const hostFunnelsReportValidator: import("convex/values").VArray<{
1288
1325
  range: {
1289
1326
  boundary: "inclusive";
1290
1327
  from: number;
1291
- timezone: "UTC";
1328
+ timezone: string;
1292
1329
  to: number;
1293
1330
  };
1294
1331
  };
@@ -1359,7 +1396,7 @@ declare const hostFunnelsReportValidator: import("convex/values").VArray<{
1359
1396
  range: {
1360
1397
  boundary: "inclusive";
1361
1398
  from: number;
1362
- timezone: "UTC";
1399
+ timezone: string;
1363
1400
  to: number;
1364
1401
  };
1365
1402
  }, {
@@ -1380,13 +1417,13 @@ declare const hostFunnelsReportValidator: import("convex/values").VArray<{
1380
1417
  range: import("convex/values").VObject<{
1381
1418
  boundary: "inclusive";
1382
1419
  from: number;
1383
- timezone: "UTC";
1420
+ timezone: string;
1384
1421
  to: number;
1385
1422
  }, {
1386
1423
  from: import("convex/values").VFloat64<number, "required">;
1387
1424
  to: import("convex/values").VFloat64<number, "required">;
1388
1425
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1389
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1426
+ timezone: import("convex/values").VString<string, "required">;
1390
1427
  }, "required", "boundary" | "from" | "timezone" | "to">;
1391
1428
  }, "required", "basis" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to">;
1392
1429
  }, "required", "_creationTime" | "_id" | "active" | "conversionWindowMs" | "createdAt" | "key" | "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" | "name" | "siteId" | "steps" | "stepsReport" | "truncated" | "updatedAt">, "required">;
@@ -1420,7 +1457,7 @@ declare const hostAffiliatesReportValidator: import("convex/values").VObject<{
1420
1457
  range: {
1421
1458
  boundary: "inclusive";
1422
1459
  from: number;
1423
- timezone: "UTC";
1460
+ timezone: string;
1424
1461
  to: number;
1425
1462
  };
1426
1463
  uniqueVisitors: {
@@ -1492,7 +1529,7 @@ declare const hostAffiliatesReportValidator: import("convex/values").VObject<{
1492
1529
  range: {
1493
1530
  boundary: "inclusive";
1494
1531
  from: number;
1495
- timezone: "UTC";
1532
+ timezone: string;
1496
1533
  to: number;
1497
1534
  };
1498
1535
  uniqueVisitors: {
@@ -1517,13 +1554,13 @@ declare const hostAffiliatesReportValidator: import("convex/values").VObject<{
1517
1554
  range: import("convex/values").VObject<{
1518
1555
  boundary: "inclusive";
1519
1556
  from: number;
1520
- timezone: "UTC";
1557
+ timezone: string;
1521
1558
  to: number;
1522
1559
  }, {
1523
1560
  from: import("convex/values").VFloat64<number, "required">;
1524
1561
  to: import("convex/values").VFloat64<number, "required">;
1525
1562
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1526
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1563
+ timezone: import("convex/values").VString<string, "required">;
1527
1564
  }, "required", "boundary" | "from" | "timezone" | "to">;
1528
1565
  uniqueVisitors: import("convex/values").VObject<{
1529
1566
  basis: "estimatedUnique" | "exactLegacy";
@@ -1547,7 +1584,7 @@ declare const hostVitalsReportValidator: import("convex/values").VObject<{
1547
1584
  range: {
1548
1585
  boundary: "inclusive";
1549
1586
  from: number;
1550
- timezone: "UTC";
1587
+ timezone: string;
1551
1588
  to: number;
1552
1589
  };
1553
1590
  };
@@ -1732,7 +1769,7 @@ declare const hostVitalsReportValidator: import("convex/values").VObject<{
1732
1769
  range: {
1733
1770
  boundary: "inclusive";
1734
1771
  from: number;
1735
- timezone: "UTC";
1772
+ timezone: string;
1736
1773
  to: number;
1737
1774
  };
1738
1775
  }, {
@@ -1753,13 +1790,13 @@ declare const hostVitalsReportValidator: import("convex/values").VObject<{
1753
1790
  range: import("convex/values").VObject<{
1754
1791
  boundary: "inclusive";
1755
1792
  from: number;
1756
- timezone: "UTC";
1793
+ timezone: string;
1757
1794
  to: number;
1758
1795
  }, {
1759
1796
  from: import("convex/values").VFloat64<number, "required">;
1760
1797
  to: import("convex/values").VFloat64<number, "required">;
1761
1798
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1762
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1799
+ timezone: import("convex/values").VString<string, "required">;
1763
1800
  }, "required", "boundary" | "from" | "timezone" | "to">;
1764
1801
  }, "required", "basis" | "coverage" | "coverage.availableFrom" | "coverage.availableThrough" | "coverage.generation" | "coverage.retainedBefore" | "coverage.state" | "range" | "range.boundary" | "range.from" | "range.timezone" | "range.to">;
1765
1802
  }, "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">;
@@ -1782,7 +1819,7 @@ declare const hostSiteMapValidator: import("convex/values").VObject<{
1782
1819
  range: {
1783
1820
  boundary: "inclusive";
1784
1821
  from: number;
1785
- timezone: "UTC";
1822
+ timezone: string;
1786
1823
  to: number;
1787
1824
  };
1788
1825
  visitors: {
@@ -1922,7 +1959,7 @@ declare const hostSiteMapValidator: import("convex/values").VObject<{
1922
1959
  range: {
1923
1960
  boundary: "inclusive";
1924
1961
  from: number;
1925
- timezone: "UTC";
1962
+ timezone: string;
1926
1963
  to: number;
1927
1964
  };
1928
1965
  visitors: {
@@ -1947,13 +1984,13 @@ declare const hostSiteMapValidator: import("convex/values").VObject<{
1947
1984
  range: import("convex/values").VObject<{
1948
1985
  boundary: "inclusive";
1949
1986
  from: number;
1950
- timezone: "UTC";
1987
+ timezone: string;
1951
1988
  to: number;
1952
1989
  }, {
1953
1990
  from: import("convex/values").VFloat64<number, "required">;
1954
1991
  to: import("convex/values").VFloat64<number, "required">;
1955
1992
  boundary: import("convex/values").VLiteral<"inclusive", "required">;
1956
- timezone: import("convex/values").VLiteral<"UTC", "required">;
1993
+ timezone: import("convex/values").VString<string, "required">;
1957
1994
  }, "required", "boundary" | "from" | "timezone" | "to">;
1958
1995
  visitors: import("convex/values").VObject<{
1959
1996
  basis: "estimatedUnique";
@@ -2096,14 +2133,14 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2096
2133
  interval: "hour" | "day";
2097
2134
  metadata: {
2098
2135
  breakdowns: {
2099
- topBrowsers: "eventVolume";
2100
- topCampaigns: "eventVolume";
2101
- topCountries: "eventVolume";
2102
- topDevices: "eventVolume";
2136
+ topBrowsers: "pageviews" | "sessions" | "eventVolume";
2137
+ topCampaigns: "pageviews" | "sessions" | "eventVolume";
2138
+ topCountries: "pageviews" | "sessions" | "eventVolume";
2139
+ topDevices: "pageviews" | "sessions" | "eventVolume";
2103
2140
  topEvents: "eventVolume";
2104
2141
  topGoals: "goalCompletionVolume";
2105
- topPages: "eventVolume";
2106
- topSources: "eventVolume";
2142
+ topPages: "pageviews" | "sessions" | "eventVolume";
2143
+ topSources: "pageviews" | "sessions" | "eventVolume";
2107
2144
  };
2108
2145
  coverage: {
2109
2146
  availableFrom: number | null;
@@ -2112,6 +2149,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2112
2149
  retainedBefore: number | null;
2113
2150
  state: "complete" | "partial" | "retained" | "unavailable";
2114
2151
  };
2152
+ engagement: "counted" | "unavailable";
2115
2153
  features: {
2116
2154
  botDetection: "userAgent";
2117
2155
  errorInsights: "unsupported";
@@ -2121,7 +2159,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2121
2159
  range: {
2122
2160
  boundary: "inclusive";
2123
2161
  from: number;
2124
- timezone: "UTC";
2162
+ timezone: string;
2125
2163
  to: number;
2126
2164
  };
2127
2165
  visitors: {
@@ -2134,9 +2172,12 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2134
2172
  };
2135
2173
  timeSeries: Array<{
2136
2174
  clicks: number;
2175
+ continuedSessions: number;
2137
2176
  conversions: number;
2138
2177
  customEvents: number;
2178
+ durationMs: number;
2139
2179
  events: number;
2180
+ newVisitors: number;
2140
2181
  outboundClicks: number;
2141
2182
  pageviews: number;
2142
2183
  revenueCents: number;
@@ -2187,9 +2228,12 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2187
2228
  }>;
2188
2229
  totals: {
2189
2230
  clicks: number;
2231
+ continuedSessions: number;
2190
2232
  conversions: number;
2191
2233
  customEvents: number;
2234
+ durationMs: number;
2192
2235
  events: number;
2236
+ newVisitors: number;
2193
2237
  outboundClicks: number;
2194
2238
  pageviews: number;
2195
2239
  revenueCents: number;
@@ -2423,7 +2467,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2423
2467
  range: {
2424
2468
  boundary: "inclusive";
2425
2469
  from: number;
2426
- timezone: "UTC";
2470
+ timezone: string;
2427
2471
  to: number;
2428
2472
  };
2429
2473
  };
@@ -2452,7 +2496,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2452
2496
  range: {
2453
2497
  boundary: "inclusive";
2454
2498
  from: number;
2455
- timezone: "UTC";
2499
+ timezone: string;
2456
2500
  to: number;
2457
2501
  };
2458
2502
  };
@@ -2506,7 +2550,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2506
2550
  range: {
2507
2551
  boundary: "inclusive";
2508
2552
  from: number;
2509
- timezone: "UTC";
2553
+ timezone: string;
2510
2554
  to: number;
2511
2555
  };
2512
2556
  uniqueVisitors: {
@@ -2533,7 +2577,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2533
2577
  range: {
2534
2578
  boundary: "inclusive";
2535
2579
  from: number;
2536
- timezone: "UTC";
2580
+ timezone: string;
2537
2581
  to: number;
2538
2582
  };
2539
2583
  };
@@ -2594,7 +2638,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2594
2638
  range: {
2595
2639
  boundary: "inclusive";
2596
2640
  from: number;
2597
- timezone: "UTC";
2641
+ timezone: string;
2598
2642
  to: number;
2599
2643
  };
2600
2644
  visitors: {
@@ -2646,7 +2690,7 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2646
2690
  retainedBefore: number | null;
2647
2691
  state: "complete" | "partial" | "retained" | "unavailable";
2648
2692
  };
2649
- dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
2693
+ dataset: "overviewHour" | "overviewDay" | "overviewLocalDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
2650
2694
  }>;
2651
2695
  from: number;
2652
2696
  siteId: string;
@@ -2795,7 +2839,12 @@ export declare function exposeAnalyticsApi(component: ComponentApi, options: {
2795
2839
  hasMore: boolean;
2796
2840
  }>>;
2797
2841
  };
2798
- /** Exposes only the reactive read surface used by a federated Rastro dashboard. */
2842
+ /**
2843
+ * Exposes the reactive read surface a federated Rastro dashboard subscribes to,
2844
+ * plus the configuration functions behind the `configure` capability, which
2845
+ * run only when the token and the host's grant both carry the configure
2846
+ * permission.
2847
+ */
2799
2848
  export declare function exposeFederatedAnalyticsApi(component: ComponentApi, options: FederatedAnalyticsAuthorizerOptions): {
2800
2849
  manifest: import("convex/server").RegisteredQuery<"public", {}, {
2801
2850
  protocol: "amage-rastro-analytics";
@@ -2815,10 +2864,24 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2815
2864
  funnelsReport: "funnelsReport";
2816
2865
  affiliatesReport: "affiliatesReport";
2817
2866
  dataCoverage: "dataCoverage";
2867
+ siteSettings: "siteSettings";
2868
+ updateSite: "updateSite";
2869
+ listGoals: "listGoals";
2870
+ upsertGoal: "upsertGoal";
2871
+ removeGoal: "removeGoal";
2872
+ listFunnels: "listFunnels";
2873
+ upsertFunnel: "upsertFunnel";
2874
+ removeFunnel: "removeFunnel";
2875
+ listAffiliates: "listAffiliates";
2876
+ upsertAffiliate: "upsertAffiliate";
2877
+ removeAffiliate: "removeAffiliate";
2878
+ retentionStatus: "retentionStatus";
2879
+ setRetentionPolicy: "setRetentionPolicy";
2880
+ disableRetentionPolicy: "disableRetentionPolicy";
2818
2881
  vitalsReport: "vitalsReport";
2819
2882
  siteMap: "siteMap";
2820
2883
  };
2821
- capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[];
2884
+ capabilities: ("affiliates" | "configure" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "localDays" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[];
2822
2885
  limits: {
2823
2886
  maxSitesPerRequest: 10;
2824
2887
  maxSitesPerConnection: 10;
@@ -2840,14 +2903,14 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2840
2903
  interval: "hour" | "day";
2841
2904
  metadata: {
2842
2905
  breakdowns: {
2843
- topBrowsers: "eventVolume";
2844
- topCampaigns: "eventVolume";
2845
- topCountries: "eventVolume";
2846
- topDevices: "eventVolume";
2906
+ topBrowsers: "pageviews" | "sessions" | "eventVolume";
2907
+ topCampaigns: "pageviews" | "sessions" | "eventVolume";
2908
+ topCountries: "pageviews" | "sessions" | "eventVolume";
2909
+ topDevices: "pageviews" | "sessions" | "eventVolume";
2847
2910
  topEvents: "eventVolume";
2848
2911
  topGoals: "goalCompletionVolume";
2849
- topPages: "eventVolume";
2850
- topSources: "eventVolume";
2912
+ topPages: "pageviews" | "sessions" | "eventVolume";
2913
+ topSources: "pageviews" | "sessions" | "eventVolume";
2851
2914
  };
2852
2915
  coverage: {
2853
2916
  availableFrom: number | null;
@@ -2856,6 +2919,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2856
2919
  retainedBefore: number | null;
2857
2920
  state: "complete" | "partial" | "retained" | "unavailable";
2858
2921
  };
2922
+ engagement: "counted" | "unavailable";
2859
2923
  features: {
2860
2924
  botDetection: "userAgent";
2861
2925
  errorInsights: "unsupported";
@@ -2865,7 +2929,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2865
2929
  range: {
2866
2930
  boundary: "inclusive";
2867
2931
  from: number;
2868
- timezone: "UTC";
2932
+ timezone: string;
2869
2933
  to: number;
2870
2934
  };
2871
2935
  visitors: {
@@ -2878,9 +2942,12 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2878
2942
  };
2879
2943
  timeSeries: Array<{
2880
2944
  clicks: number;
2945
+ continuedSessions: number;
2881
2946
  conversions: number;
2882
2947
  customEvents: number;
2948
+ durationMs: number;
2883
2949
  events: number;
2950
+ newVisitors: number;
2884
2951
  outboundClicks: number;
2885
2952
  pageviews: number;
2886
2953
  revenueCents: number;
@@ -2931,9 +2998,12 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
2931
2998
  }>;
2932
2999
  totals: {
2933
3000
  clicks: number;
3001
+ continuedSessions: number;
2934
3002
  conversions: number;
2935
3003
  customEvents: number;
3004
+ durationMs: number;
2936
3005
  events: number;
3006
+ newVisitors: number;
2937
3007
  outboundClicks: number;
2938
3008
  pageviews: number;
2939
3009
  revenueCents: number;
@@ -3167,7 +3237,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3167
3237
  range: {
3168
3238
  boundary: "inclusive";
3169
3239
  from: number;
3170
- timezone: "UTC";
3240
+ timezone: string;
3171
3241
  to: number;
3172
3242
  };
3173
3243
  };
@@ -3196,7 +3266,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3196
3266
  range: {
3197
3267
  boundary: "inclusive";
3198
3268
  from: number;
3199
- timezone: "UTC";
3269
+ timezone: string;
3200
3270
  to: number;
3201
3271
  };
3202
3272
  };
@@ -3250,7 +3320,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3250
3320
  range: {
3251
3321
  boundary: "inclusive";
3252
3322
  from: number;
3253
- timezone: "UTC";
3323
+ timezone: string;
3254
3324
  to: number;
3255
3325
  };
3256
3326
  uniqueVisitors: {
@@ -3277,7 +3347,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3277
3347
  range: {
3278
3348
  boundary: "inclusive";
3279
3349
  from: number;
3280
- timezone: "UTC";
3350
+ timezone: string;
3281
3351
  to: number;
3282
3352
  };
3283
3353
  };
@@ -3338,7 +3408,7 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3338
3408
  range: {
3339
3409
  boundary: "inclusive";
3340
3410
  from: number;
3341
- timezone: "UTC";
3411
+ timezone: string;
3342
3412
  to: number;
3343
3413
  };
3344
3414
  visitors: {
@@ -3390,12 +3460,151 @@ export declare function exposeFederatedAnalyticsApi(component: ComponentApi, opt
3390
3460
  retainedBefore: number | null;
3391
3461
  state: "complete" | "partial" | "retained" | "unavailable";
3392
3462
  };
3393
- dataset: "overviewHour" | "overviewDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
3463
+ dataset: "overviewHour" | "overviewDay" | "overviewLocalDay" | "events" | "sessions" | "conversions" | "goals" | "funnels" | "affiliates" | "vitals" | "siteMap";
3394
3464
  }>;
3395
3465
  from: number;
3396
3466
  siteId: string;
3397
3467
  to: number;
3398
3468
  }>>;
3469
+ siteSettings: import("convex/server").RegisteredQuery<"public", {
3470
+ siteId: string;
3471
+ }, Promise<{
3472
+ siteId: string;
3473
+ name: string;
3474
+ domains: string[];
3475
+ timezone: string | null;
3476
+ currency: string;
3477
+ cookieless: boolean;
3478
+ }>>;
3479
+ updateSite: import("convex/server").RegisteredMutation<"public", {
3480
+ domains?: string[] | undefined;
3481
+ name?: string | undefined;
3482
+ siteId: string;
3483
+ timezone?: string | null | undefined;
3484
+ }, Promise<null>>;
3485
+ listGoals: import("convex/server").RegisteredQuery<"public", {
3486
+ siteId: string;
3487
+ }, Promise<{
3488
+ _creationTime: number;
3489
+ _id: string;
3490
+ active: boolean;
3491
+ createdAt: number;
3492
+ key: string;
3493
+ matchType: "pageview" | "custom";
3494
+ matchValue: string;
3495
+ name: string;
3496
+ siteId: string;
3497
+ updatedAt: number;
3498
+ valueCents?: number;
3499
+ }[]>>;
3500
+ upsertGoal: import("convex/server").RegisteredMutation<"public", {
3501
+ active?: boolean | undefined;
3502
+ goalId?: string | undefined;
3503
+ key: string;
3504
+ matchType: "custom" | "pageview";
3505
+ matchValue: string;
3506
+ name: string;
3507
+ siteId: string;
3508
+ valueCents?: number | undefined;
3509
+ }, Promise<string>>;
3510
+ removeGoal: import("convex/server").RegisteredMutation<"public", {
3511
+ goalId: string;
3512
+ siteId: string;
3513
+ }, Promise<null>>;
3514
+ listFunnels: import("convex/server").RegisteredQuery<"public", {
3515
+ siteId: string;
3516
+ }, Promise<{
3517
+ _creationTime: number;
3518
+ _id: string;
3519
+ active: boolean;
3520
+ conversionWindowMs: number;
3521
+ createdAt: number;
3522
+ key: string;
3523
+ name: string;
3524
+ siteId: string;
3525
+ steps: Array<{
3526
+ name: string;
3527
+ type: "pageview" | "custom";
3528
+ value: string;
3529
+ }>;
3530
+ updatedAt: number;
3531
+ }[]>>;
3532
+ upsertFunnel: import("convex/server").RegisteredMutation<"public", {
3533
+ active?: boolean | undefined;
3534
+ conversionWindowMs: number;
3535
+ funnelId?: string | undefined;
3536
+ key: string;
3537
+ name: string;
3538
+ siteId: string;
3539
+ steps: {
3540
+ name: string;
3541
+ type: "custom" | "pageview";
3542
+ value: string;
3543
+ }[];
3544
+ }, Promise<string>>;
3545
+ removeFunnel: import("convex/server").RegisteredMutation<"public", {
3546
+ funnelId: string;
3547
+ siteId: string;
3548
+ }, Promise<null>>;
3549
+ listAffiliates: import("convex/server").RegisteredQuery<"public", {
3550
+ siteId: string;
3551
+ }, Promise<{
3552
+ _creationTime: number;
3553
+ _id: string;
3554
+ active: boolean;
3555
+ attributionWindowDays: number;
3556
+ commissionBps: number;
3557
+ createdAt: number;
3558
+ name: string;
3559
+ siteId: string;
3560
+ slug: string;
3561
+ updatedAt: number;
3562
+ }[]>>;
3563
+ upsertAffiliate: import("convex/server").RegisteredMutation<"public", {
3564
+ active?: boolean | undefined;
3565
+ affiliateId?: string | undefined;
3566
+ attributionWindowDays: number;
3567
+ commissionBps: number;
3568
+ name: string;
3569
+ siteId: string;
3570
+ slug: string;
3571
+ }, Promise<string>>;
3572
+ removeAffiliate: import("convex/server").RegisteredMutation<"public", {
3573
+ affiliateId: string;
3574
+ siteId: string;
3575
+ }, Promise<null>>;
3576
+ retentionStatus: import("convex/server").RegisteredQuery<"public", {
3577
+ siteId: string;
3578
+ }, Promise<{
3579
+ backlog: number;
3580
+ jobs: Array<{
3581
+ before: number;
3582
+ deleted: number;
3583
+ kind: "events" | "sessions" | "conversions" | "goalCompletions" | "aggregateHour" | "aggregateDay" | "funnelProgress" | "funnelSteps" | "affiliateStats" | "goalRollups" | "funnelRollups" | "affiliateRollups" | "vitalRollups" | "siteMapRollups" | "attributions" | "liveSessions" | "ingestWindows" | "siteIngestWindows";
3584
+ scheduledAt: number | null;
3585
+ status: "pending" | "running" | "complete";
3586
+ updatedAt: number;
3587
+ }>;
3588
+ policy: {
3589
+ aggregatesDays: number;
3590
+ conversionsDays: number;
3591
+ eventsDays: number;
3592
+ reportsDays: number;
3593
+ sessionsDays: number;
3594
+ updatedAt: number;
3595
+ } | null;
3596
+ }>>;
3597
+ setRetentionPolicy: import("convex/server").RegisteredMutation<"public", {
3598
+ aggregatesDays: number;
3599
+ conversionsDays: number;
3600
+ eventsDays: number;
3601
+ reportsDays: number;
3602
+ sessionsDays: number;
3603
+ siteId: string;
3604
+ }, Promise<null>>;
3605
+ disableRetentionPolicy: import("convex/server").RegisteredMutation<"public", {
3606
+ siteId: string;
3607
+ }, Promise<null>>;
3399
3608
  };
3400
3609
  export declare function componentHttpPaths(prefix?: string): {
3401
3610
  readonly events: `${string}/events`;