@iann29/rastro 0.1.0-alpha.7 → 0.1.0-alpha.9

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 (73) hide show
  1. package/README.md +60 -32
  2. package/agent/integration.md +14 -6
  3. package/agent/manifest.json +9 -7
  4. package/agent/manifest.schema.json +8 -5
  5. package/dist/client/federation.d.ts +13 -8
  6. package/dist/client/federation.d.ts.map +1 -1
  7. package/dist/client/federation.js +4 -1
  8. package/dist/client/federation.js.map +1 -1
  9. package/dist/client/index.d.ts +419 -17
  10. package/dist/client/index.d.ts.map +1 -1
  11. package/dist/client/index.js +55 -2
  12. package/dist/client/index.js.map +1 -1
  13. package/dist/component/_generated/component.d.ts +71 -7
  14. package/dist/component/_generated/component.d.ts.map +1 -1
  15. package/dist/component/constants.d.ts +6 -1
  16. package/dist/component/constants.d.ts.map +1 -1
  17. package/dist/component/constants.js +13 -1
  18. package/dist/component/constants.js.map +1 -1
  19. package/dist/component/coverage.d.ts +1 -0
  20. package/dist/component/coverage.d.ts.map +1 -1
  21. package/dist/component/coverage.js +13 -2
  22. package/dist/component/coverage.js.map +1 -1
  23. package/dist/component/eventStore.d.ts +1 -1
  24. package/dist/component/http.d.ts.map +1 -1
  25. package/dist/component/http.js +2 -0
  26. package/dist/component/http.js.map +1 -1
  27. package/dist/component/ingest.d.ts +1 -1
  28. package/dist/component/ingest.d.ts.map +1 -1
  29. package/dist/component/ingest.js +173 -3
  30. package/dist/component/ingest.js.map +1 -1
  31. package/dist/component/reports.d.ts +77 -3
  32. package/dist/component/reports.d.ts.map +1 -1
  33. package/dist/component/reports.js +275 -3
  34. package/dist/component/reports.js.map +1 -1
  35. package/dist/component/retention.d.ts +4 -4
  36. package/dist/component/retention.d.ts.map +1 -1
  37. package/dist/component/retention.js +12 -2
  38. package/dist/component/retention.js.map +1 -1
  39. package/dist/component/sanitize.d.ts +9 -0
  40. package/dist/component/sanitize.d.ts.map +1 -1
  41. package/dist/component/sanitize.js +25 -0
  42. package/dist/component/sanitize.js.map +1 -1
  43. package/dist/component/schema.d.ts +69 -7
  44. package/dist/component/schema.js +25 -0
  45. package/dist/component/schema.js.map +1 -1
  46. package/dist/component/validators.d.ts +7 -7
  47. package/dist/component/validators.d.ts.map +1 -1
  48. package/dist/component/validators.js +1 -1
  49. package/dist/component/validators.js.map +1 -1
  50. package/dist/tracker/generated.d.ts +4 -4
  51. package/dist/tracker/generated.d.ts.map +1 -1
  52. package/dist/tracker/generated.js +4 -4
  53. package/dist/tracker/generated.js.map +1 -1
  54. package/dist/tracker/tracker.d.ts +1 -1
  55. package/dist/tracker/tracker.d.ts.map +1 -1
  56. package/dist/tracker/tracker.js +24 -2
  57. package/dist/tracker/tracker.js.map +1 -1
  58. package/dist/tracker.min.js +1 -1
  59. package/docs/federation-setup.md +2 -0
  60. package/docs/federation.md +4 -0
  61. package/docs/upgrading.md +91 -10
  62. package/llms.txt +3 -1
  63. package/package.json +1 -1
  64. package/src/component/_generated/component.ts +58 -1
  65. package/src/component/constants.ts +13 -1
  66. package/src/component/coverage.ts +12 -1
  67. package/src/component/http.ts +2 -0
  68. package/src/component/ingest.ts +278 -1
  69. package/src/component/reports.ts +364 -2
  70. package/src/component/retention.ts +16 -1
  71. package/src/component/sanitize.ts +31 -0
  72. package/src/component/schema.ts +26 -0
  73. package/src/component/validators.ts +1 -0
package/README.md CHANGED
@@ -38,21 +38,22 @@ capacity claim.
38
38
 
39
39
  ## What ships
40
40
 
41
- | Capability | Implementation |
42
- | --------------------------- | -------------------------------------------------------------------------------------------------------- |
43
- | Live visitor map | Reactive live sessions with coarse city-level coordinates and TTL expiry |
44
- | Traffic analytics | Sharded hour/day rollups, time series, top pages, sources, countries, devices, browsers, and events |
45
- | Field Web Vitals | Opt-in tracker module reporting LCP, CLS, INP, FCP, and TTFB into bounded per-page daily histograms |
46
- | Journey replay | Bounded pageview/click/custom-event timelines; no DOM, keystroke, or form-value recording |
47
- | Payment conversion tracking | Trusted server-side ledger with idempotent event IDs and canonical site currency |
48
- | Goals and funnels | Exact pageview/custom-event goals and ordered conversion funnels |
49
- | Affiliates | Referral attribution, trusted revenue, and commission accounting |
50
- | Cross-site analytics | Reports over up to ten authorized site IDs with a preloaded pseudonymous visitor ID |
51
- | Automatic GeoIP | Opt-in native request metadata plus IPinfo/IPWhois fallback; bounded quota and no raw-IP persistence |
52
- | Auto-captured clicks | Anchors, buttons, and `data-rastro-event` controls with a bounded visible label; outbound origin+path |
53
- | Bot filtering | Self-declared crawlers, unfurlers, monitors, HTTP libraries, and headless browsers rejected at ingestion |
54
- | Cookieless mode | Session-scoped pseudonymous IDs in `sessionStorage`; no cookies |
55
- | Tiny tracker | 2,132 bytes raw, 1,127 bytes gzip; the test suite enforces `< 1,280` bytes gzip |
41
+ | Capability | Implementation |
42
+ | --------------------------- | --------------------------------------------------------------------------------------------------------- |
43
+ | Live visitor map | Reactive live sessions with city-level coordinates, realtime departures, and a 90-second safety net |
44
+ | Traffic analytics | Sharded hour/day rollups, time series, top pages, sources, countries, devices, browsers, and events |
45
+ | Field Web Vitals | Opt-in tracker module reporting LCP, CLS, INP, FCP, and TTFB into bounded per-page daily histograms |
46
+ | Site map | Daily per-route rollups: entries, derived exits and bounces, time on page, and route-to-route transitions |
47
+ | Journey replay | Bounded pageview/click/custom-event timelines; no DOM, keystroke, or form-value recording |
48
+ | Payment conversion tracking | Trusted server-side ledger with idempotent event IDs and canonical site currency |
49
+ | Goals and funnels | Exact pageview/custom-event goals and ordered conversion funnels |
50
+ | Affiliates | Referral attribution, trusted revenue, and commission accounting |
51
+ | Cross-site analytics | Reports over up to ten authorized site IDs with a preloaded pseudonymous visitor ID |
52
+ | Automatic GeoIP | Opt-in native request metadata plus IPinfo/IPWhois fallback; bounded quota and no raw-IP persistence |
53
+ | Auto-captured clicks | Anchors, buttons, and `data-rastro-event` controls with a bounded visible label; outbound origin+path |
54
+ | Bot filtering | Self-declared crawlers, unfurlers, monitors, HTTP libraries, and headless browsers rejected at ingestion |
55
+ | Cookieless mode | No cookies: persistent pseudonymous visitor id in `localStorage`, per-tab session id in `sessionStorage` |
56
+ | Tiny tracker | 2,132 bytes raw, 1,127 bytes gzip; the test suite enforces `< 1,280` bytes gzip |
56
57
 
57
58
  ## Quickstart
58
59
 
@@ -448,9 +449,10 @@ event keeps the id it was recorded with. Links are idempotent, an anonymous id
448
449
  belongs to at most one identity, a linked id cannot be linked again, chains and
449
450
  identity merges are rejected, and an identity holds at most ten aliases. The
450
451
  tracker still sets no cookie: the host's own session identifies the account and
451
- the anonymous id lives only in `sessionStorage`. Linking anonymous history to an
452
- account turns it into personal data under the host's privacy policy; disclose it
453
- and offer an opt-out.
452
+ the anonymous ids live in the browser's own storage (the visitor id in
453
+ `localStorage`, the session id in `sessionStorage`). Linking anonymous history
454
+ to an account turns it into personal data under the host's privacy policy;
455
+ disclose it and offer an opt-out.
454
456
 
455
457
  ## Attribute trusted payments
456
458
 
@@ -513,6 +515,7 @@ export const {
513
515
  goalsReport,
514
516
  funnelsReport,
515
517
  affiliatesReport,
518
+ siteMap,
516
519
  } = exposeAnalyticsApi(components.rastroAnalytics, {
517
520
  authorize: async (ctx, request) => {
518
521
  const identity = await ctx.auth.getUserIdentity();
@@ -568,7 +571,7 @@ The `Rastro` class wraps the component boundary for host functions:
568
571
  - Ingestion: `ingest`, `trackConversion`, `linkVisitor`
569
572
  - Reports: `overview`, `liveVisitors`, `listSessions`, `sessionJourney`,
570
573
  `listConversions`, `visitorJourney`, `goalsReport`, `funnelsReport`,
571
- `affiliatesReport`, `dataCoverage`
574
+ `affiliatesReport`, `vitalsReport`, `siteMap`, `dataCoverage`
572
575
  - Configuration: `upsertGoal`, `listGoals`, `removeGoal`, `upsertFunnel`,
573
576
  `listFunnels`, `removeFunnel`, `upsertAffiliate`, `listAffiliates`,
574
577
  `removeAffiliate`
@@ -580,12 +583,25 @@ indexed and bounded. Component pagination uses scope-bound opaque keyset cursors
580
583
  because native `.paginate()` is not supported inside Convex components; page
581
584
  cost stays constant instead of increasing with an offset.
582
585
 
586
+ `siteMap` reads the daily route rollups newest day first and returns per-route
587
+ totals — pageviews, estimated visitors, entries, derived exits and bounces
588
+ (`exits = entries + transitions in − transitions out`,
589
+ `bounces = entries − sessions that continued`), and time on page — plus
590
+ route-to-route transition counts and a per-route daily series. Numeric, UUID,
591
+ and long hexadecimal path segments collapse to `:id` in the map only; the
592
+ package exports `normalizeRoute` so dashboards bucket live visitors by the same
593
+ rule, and `liveVisitors` reports `previousPath` and `movedAt` when a visitor
594
+ moves between routes. Map coverage begins at the first ingest after the upgrade
595
+ that introduced the rollups.
596
+
583
597
  Overview responses label visitor values as either HLL-estimated unique visitors
584
598
  or legacy `bucketOccurrences`; legacy aggregate rows are never presented as
585
- exact uniques. Anonymous sessions from the same device and network within one
586
- UTC day count as one visitor through a salted daily key, so cookieless visitor
587
- counts no longer collapse into session counts; runtimes without a client IP fall
588
- back to one visitor per session, which `/rastro/health` reports as
599
+ exact uniques. Anonymous visitors carry a persistent pseudonymous id from the
600
+ tracker's `localStorage`, so the same person counts once across tabs, days, and
601
+ returns. When storage is blocked or an old cached tracker reports no id,
602
+ sessions from the same device and network within one UTC day still fold into one
603
+ visitor through a salted daily key; runtimes without a client IP fall back to
604
+ one visitor per session, which `/rastro/health` reports as
589
605
  `uniqueVisitors: "session"` instead of `"dailyHash"`. Breakdown metadata
590
606
  likewise identifies page, source, country, device, browser, and event rankings
591
607
  as event-volume counts. Feature status is explicit: outbound-link event volume
@@ -623,15 +639,23 @@ boundaries use different bucket alignment.
623
639
  device classes are fixed (desktop, mobile, tablet, unknown)
624
640
  - Web Vitals report: complete reads bounded to 5,000 rollup rows across at most
625
641
  90 UTC days; wider saturated ranges fail with `REPORT_INCOMPLETE`
642
+ - Site map routes per site-day shard: 200 tracked route rows, then `(other)`; 24
643
+ outgoing-transition slots per route row
644
+ - Site map report: reads newest day first, bounded to 8,000 rollup rows across
645
+ at most 90 UTC days; older days beyond the budget are declared as partial
646
+ coverage instead of failing the report
626
647
  - Primary aggregate shards: 256 hourly and 128 daily, derived from stable
627
648
  session identity
628
649
  - Funnel and affiliate aggregate shards: 16
629
650
  - Site ingress budget: 4,096 deterministic per-minute shards, each capped at 300
630
651
  events and 512 KiB (1,228,800 admitted events/minute at uniform load)
631
652
  - Rate-window storage: one reusable row per active session and site shard
632
- - Live session timeout: five minutes since the last event or heartbeat, with one
633
- bounded five-second expiry sweep per site; legacy per-session jobs hand off to
634
- that sweep during the cutover
653
+ - Live session timeout: a `leave` beacon on `pagehide` retires the visitor about
654
+ ten seconds after they leave and a back/forward-cache return revives them
655
+ immediately; the safety net for a browser that never says goodbye is 90
656
+ seconds since the last event or heartbeat (heartbeats fire every 20 seconds,
657
+ within background-tab throttling), with one bounded five-second expiry sweep
658
+ per site; legacy per-session jobs hand off to that sweep during the cutover
635
659
  - Clock alignment: the tracker and the vitals module stamp each batch with
636
660
  `sentAt`; when that clock is more than 30 seconds from the server's, every
637
661
  event in the batch is re-anchored by the offset before ingestion, so a visitor
@@ -770,10 +794,13 @@ deployments need no legacy-event migration.
770
794
  Amage Rastro's default tracker:
771
795
 
772
796
  - sets no cookies;
773
- - stores a pseudonymous session ID and referral slug in `sessionStorage`;
797
+ - stores a pseudonymous session ID and referral slug in `sessionStorage`, and a
798
+ persistent pseudonymous visitor ID in `localStorage` — scoped to the site's
799
+ origin, never shared across sites, gone when the visitor clears site data;
774
800
  - never persists raw visitor IP addresses in component tables;
775
- - counts anonymous unique visitors through a salted hash of the request IP and
776
- `User-Agent` that rotates every UTC day, derived in the HTTP action from a
801
+ - counts unique visitors by that persistent pseudonymous ID; when storage is
802
+ blocked or the id is absent, a salted hash of the request IP and `User-Agent`
803
+ that rotates every UTC day takes over, derived in the HTTP action from a
777
804
  per-deployment secret; a host-supplied `visitorId` always takes precedence,
778
805
  and the raw IP never reaches a mutation or a table;
779
806
  - never persists the raw `User-Agent`, only a normalized browser, operating
@@ -792,9 +819,10 @@ The optional Web Vitals module inherits this contract: it reports at most five
792
819
  timing numbers per page load (milliseconds, or CLS scaled by 1000) against the
793
820
  landing path, and nothing else.
794
821
 
795
- Cookieless does not automatically mean consent-exempt in every jurisdiction.
796
- Review your collection purpose, custom properties, identity strategy, retention
797
- policy, and local law.
822
+ Cookieless does not automatically mean consent-exempt in every jurisdiction, and
823
+ the persistent visitor ID is an identifier under most privacy laws. Review your
824
+ collection purpose, custom properties, identity strategy, retention policy, and
825
+ local law.
798
826
 
799
827
  The example Live Atlas uses MapLibre with OpenFreeMap Positron. Map tiles are
800
828
  requested by the dashboard viewer; Amage Rastro visitor/session data is rendered
@@ -471,6 +471,7 @@ export const {
471
471
  funnelsReport,
472
472
  affiliatesReport,
473
473
  vitalsReport,
474
+ siteMap,
474
475
  dataCoverage,
475
476
  } = federated;
476
477
  ```
@@ -495,6 +496,7 @@ requires both a valid JWT and a matching, non-revoked local grant.
495
496
  | `funnelsReport` | one site and complete UTC-day range | Read-only definitions/steps plus aggregates; max 90 days |
496
497
  | `affiliatesReport` | one site and complete UTC-day range | Read-only affiliate definitions plus aggregates |
497
498
  | `vitalsReport` | one site and complete UTC-day range | Web Vitals p75/ratings per metric, page, and device; max 90 days |
499
+ | `siteMap` | site IDs and complete UTC-day range | Routes with derived exits/bounces plus transitions; max 90 days |
498
500
  | `dataCoverage` | one site and inclusive integer range | Coverage metadata; echoes site ID, no event/visitor/session IDs |
499
501
 
500
502
  The federated surface deliberately excludes ingestion, site mutation, retention
@@ -564,17 +566,23 @@ Do not mark integration complete until all checks pass:
564
566
  and organization IDs.
565
567
  4. Open the deployment selector and load Overview for an authorized site.
566
568
  5. Trigger a real browser pageview and observe the Live view update reactively.
567
- 6. In the host's `convex-test` suite, use a mocked Rastro identity to query a
569
+ 6. Where the manifest advertises the optional `siteMap` capability, confirm
570
+ `/rastro/health` reports `features.siteMap: "dailyRollup"` and open **Mapa**
571
+ for an authorized site. A fresh host correctly shows an empty map naming the
572
+ date its coverage starts; the map only holds pageviews ingested after the
573
+ upgrade that introduced it.
574
+ 7. In the host's `convex-test` suite, use a mocked Rastro identity to query a
568
575
  known site outside the grant and require `FEDERATION_SITE_DENIED`.
569
- 7. In the same suite, call without an identity and require
576
+ 8. In the same suite, call without an identity and require
570
577
  `FEDERATION_UNAUTHENTICATED`.
571
- 8. Also require the stable failures for a foreign issuer, missing
578
+ 9. Also require the stable failures for a foreign issuer, missing
572
579
  `analytics:read`, mismatched connection/organization, duplicate site IDs, and
573
580
  eleven requested or granted sites. Prove existing auth providers still pass
574
581
  their own tests.
575
- 9. Keep the authenticated dashboard open, revoke the local grant, refresh a
576
- report, and require `FEDERATION_CONNECTION_DENIED` before central revocation.
577
- 10. Reprovision only if the rehearsal requires restoring the development grant.
582
+ 10. Keep the authenticated dashboard open, revoke the local grant, refresh a
583
+ report, and require `FEDERATION_CONNECTION_DENIED` before central
584
+ revocation.
585
+ 11. Reprovision only if the rehearsal requires restoring the development grant.
578
586
 
579
587
  Use this assertion shape in the host's existing `convex-test` harness after
580
588
  registering its schema, modules, component, and `api.rastroFederation`:
@@ -15,11 +15,11 @@
15
15
  "upgrading": "https://www.amagerastro.com/docs/reference/upgrading.md",
16
16
  "integrity": {
17
17
  "algorithm": "sha256",
18
- "agent": "050510cc176d4287748ad44adb8d4aa4ded1a1d3cb025c9503c5a2f842857eb0",
19
- "llms": "a98b279570936701a5609fc2bdab47469b1542f4197c3a847a3aaaefe8520ec1",
20
- "protocol": "3a5cba45befc3ff0b56828cb207d8ce67ddc0df6bf0280a977d4db8d7f50aaee",
21
- "setup": "04c61ecef029a99ba95e1002439dbd1e42ca1ce351e6deb0988fb556ffce649e",
22
- "upgrading": "d48c2cb23faeb924ae20c708cf30fb6f57997ce0cbb2b15674b6011cf07d1281"
18
+ "agent": "b641b6cdecc0c23291e169bceef6308d1679392bec0b5c9e11715b6740be83b3",
19
+ "llms": "0dab84ee468ef3f22c7560bd0080957218f66d3014a660be0e93bbef1de0ccd5",
20
+ "protocol": "57fe1d40b81a872a027294945dc577b4a6346562620f2772074dc534c11c9190",
21
+ "setup": "5e7cd04a7b285a887404fe3cdae918a63374822e656395df2b50f57736e0fd54",
22
+ "upgrading": "7679c82a8353549687cfda2b09a858d4fe0fe41f172366084d05f95d755e0626"
23
23
  }
24
24
  },
25
25
  "controlPlane": {
@@ -68,7 +68,8 @@
68
68
  "funnelsReport": "funnelsReport",
69
69
  "affiliatesReport": "affiliatesReport",
70
70
  "dataCoverage": "dataCoverage",
71
- "vitalsReport": "vitalsReport"
71
+ "vitalsReport": "vitalsReport",
72
+ "siteMap": "siteMap"
72
73
  },
73
74
  "capabilities": [
74
75
  "siteSummaries",
@@ -82,7 +83,8 @@
82
83
  "funnels",
83
84
  "affiliates",
84
85
  "dataCoverage",
85
- "vitals"
86
+ "vitals",
87
+ "siteMap"
86
88
  ],
87
89
  "limits": {
88
90
  "maxSitesPerRequest": 10,
@@ -168,7 +168,8 @@
168
168
  "funnelsReport",
169
169
  "affiliatesReport",
170
170
  "dataCoverage",
171
- "vitalsReport"
171
+ "vitalsReport",
172
+ "siteMap"
172
173
  ],
173
174
  "properties": {
174
175
  "manifest": { "const": "manifest" },
@@ -184,14 +185,15 @@
184
185
  "funnelsReport": { "const": "funnelsReport" },
185
186
  "affiliatesReport": { "const": "affiliatesReport" },
186
187
  "dataCoverage": { "const": "dataCoverage" },
187
- "vitalsReport": { "const": "vitalsReport" }
188
+ "vitalsReport": { "const": "vitalsReport" },
189
+ "siteMap": { "const": "siteMap" }
188
190
  },
189
191
  "additionalProperties": false
190
192
  },
191
193
  "capabilities": {
192
194
  "type": "array",
193
- "minItems": 12,
194
- "maxItems": 12,
195
+ "minItems": 13,
196
+ "maxItems": 13,
195
197
  "uniqueItems": true,
196
198
  "items": {
197
199
  "enum": [
@@ -206,7 +208,8 @@
206
208
  "funnels",
207
209
  "affiliates",
208
210
  "dataCoverage",
209
- "vitals"
211
+ "vitals",
212
+ "siteMap"
210
213
  ]
211
214
  }
212
215
  },
@@ -54,8 +54,9 @@ export declare const FEDERATED_ANALYTICS_CONNECTOR_MANIFEST: Readonly<{
54
54
  readonly affiliatesReport: "affiliatesReport";
55
55
  readonly dataCoverage: "dataCoverage";
56
56
  readonly vitalsReport: "vitalsReport";
57
+ readonly siteMap: "siteMap";
57
58
  }>;
58
- readonly capabilities: readonly ["siteSummaries", "overview", "liveVisitors", "sessions", "sessionJourney", "conversions", "visitorJourney", "goals", "funnels", "affiliates", "dataCoverage", "vitals"];
59
+ readonly capabilities: readonly ["siteSummaries", "overview", "liveVisitors", "sessions", "sessionJourney", "conversions", "visitorJourney", "goals", "funnels", "affiliates", "dataCoverage", "vitals", "siteMap"];
59
60
  readonly limits: Readonly<{
60
61
  readonly maxSitesPerRequest: 10;
61
62
  readonly maxSitesPerConnection: 10;
@@ -97,7 +98,7 @@ export interface FederatedAnalyticsAuthorizerOptions {
97
98
  resolveConnection: ResolveFederatedAnalyticsConnection;
98
99
  }
99
100
  export declare const federatedAnalyticsManifestValidator: import("convex/values").VObject<{
100
- capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[];
101
+ capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[];
101
102
  functions: {
102
103
  affiliatesReport: "affiliatesReport";
103
104
  connectionStatus: "connectionStatus";
@@ -111,6 +112,7 @@ export declare const federatedAnalyticsManifestValidator: import("convex/values"
111
112
  manifest: "manifest";
112
113
  overview: "overview";
113
114
  sessionJourney: "sessionJourney";
115
+ siteMap: "siteMap";
114
116
  visitorJourney: "visitorJourney";
115
117
  vitalsReport: "vitalsReport";
116
118
  };
@@ -141,6 +143,7 @@ export declare const federatedAnalyticsManifestValidator: import("convex/values"
141
143
  manifest: "manifest";
142
144
  overview: "overview";
143
145
  sessionJourney: "sessionJourney";
146
+ siteMap: "siteMap";
144
147
  visitorJourney: "visitorJourney";
145
148
  vitalsReport: "vitalsReport";
146
149
  }, {
@@ -158,8 +161,9 @@ export declare const federatedAnalyticsManifestValidator: import("convex/values"
158
161
  affiliatesReport: import("convex/values").VLiteral<"affiliatesReport", "required">;
159
162
  dataCoverage: import("convex/values").VLiteral<"dataCoverage", "required">;
160
163
  vitalsReport: import("convex/values").VLiteral<"vitalsReport", "required">;
161
- }, "required", "affiliatesReport" | "connectionStatus" | "dataCoverage" | "funnelsReport" | "goalsReport" | "listConversions" | "listSessions" | "listSites" | "liveVisitors" | "manifest" | "overview" | "sessionJourney" | "visitorJourney" | "vitalsReport">;
162
- capabilities: import("convex/values").VArray<("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[], import("convex/values").VUnion<"affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals", [import("convex/values").VLiteral<"siteSummaries", "required">, import("convex/values").VLiteral<"overview", "required">, import("convex/values").VLiteral<"liveVisitors", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"sessionJourney", "required">, import("convex/values").VLiteral<"conversions", "required">, import("convex/values").VLiteral<"visitorJourney", "required">, import("convex/values").VLiteral<"goals", "required">, import("convex/values").VLiteral<"funnels", "required">, import("convex/values").VLiteral<"affiliates", "required">, import("convex/values").VLiteral<"dataCoverage", "required">, import("convex/values").VLiteral<"vitals", "required">], "required", never>, "required">;
164
+ siteMap: import("convex/values").VLiteral<"siteMap", "required">;
165
+ }, "required", "affiliatesReport" | "connectionStatus" | "dataCoverage" | "funnelsReport" | "goalsReport" | "listConversions" | "listSessions" | "listSites" | "liveVisitors" | "manifest" | "overview" | "sessionJourney" | "siteMap" | "visitorJourney" | "vitalsReport">;
166
+ capabilities: import("convex/values").VArray<("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[], import("convex/values").VUnion<"affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals", [import("convex/values").VLiteral<"siteSummaries", "required">, import("convex/values").VLiteral<"overview", "required">, import("convex/values").VLiteral<"liveVisitors", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"sessionJourney", "required">, import("convex/values").VLiteral<"conversions", "required">, import("convex/values").VLiteral<"visitorJourney", "required">, import("convex/values").VLiteral<"goals", "required">, import("convex/values").VLiteral<"funnels", "required">, import("convex/values").VLiteral<"affiliates", "required">, import("convex/values").VLiteral<"dataCoverage", "required">, import("convex/values").VLiteral<"vitals", "required">, import("convex/values").VLiteral<"siteMap", "required">], "required", never>, "required">;
163
167
  limits: import("convex/values").VObject<{
164
168
  maxJourneyEvents: number;
165
169
  maxLiveVisitors: number;
@@ -173,16 +177,16 @@ export declare const federatedAnalyticsManifestValidator: import("convex/values"
173
177
  maxLiveVisitors: import("convex/values").VFloat64<number, "required">;
174
178
  maxJourneyEvents: import("convex/values").VFloat64<number, "required">;
175
179
  }, "required", "maxJourneyEvents" | "maxLiveVisitors" | "maxReportRangeDays" | "maxSitesPerConnection" | "maxSitesPerRequest">;
176
- }, "required", "capabilities" | "functions" | "functions.affiliatesReport" | "functions.connectionStatus" | "functions.dataCoverage" | "functions.funnelsReport" | "functions.goalsReport" | "functions.listConversions" | "functions.listSessions" | "functions.listSites" | "functions.liveVisitors" | "functions.manifest" | "functions.overview" | "functions.sessionJourney" | "functions.visitorJourney" | "functions.vitalsReport" | "limits" | "limits.maxJourneyEvents" | "limits.maxLiveVisitors" | "limits.maxReportRangeDays" | "limits.maxSitesPerConnection" | "limits.maxSitesPerRequest" | "moduleName" | "protocol" | "protocolVersion">;
180
+ }, "required", "capabilities" | "functions" | "functions.affiliatesReport" | "functions.connectionStatus" | "functions.dataCoverage" | "functions.funnelsReport" | "functions.goalsReport" | "functions.listConversions" | "functions.listSessions" | "functions.listSites" | "functions.liveVisitors" | "functions.manifest" | "functions.overview" | "functions.sessionJourney" | "functions.siteMap" | "functions.visitorJourney" | "functions.vitalsReport" | "limits" | "limits.maxJourneyEvents" | "limits.maxLiveVisitors" | "limits.maxReportRangeDays" | "limits.maxSitesPerConnection" | "limits.maxSitesPerRequest" | "moduleName" | "protocol" | "protocolVersion">;
177
181
  export declare const federatedAnalyticsConnectionStatusValidator: import("convex/values").VObject<{
178
- capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[];
182
+ capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[];
179
183
  protocolVersion: 1;
180
184
  siteCount: number;
181
185
  status: "connected";
182
186
  }, {
183
187
  status: import("convex/values").VLiteral<"connected", "required">;
184
188
  protocolVersion: import("convex/values").VLiteral<1, "required">;
185
- capabilities: import("convex/values").VArray<("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[], import("convex/values").VUnion<"affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals", [import("convex/values").VLiteral<"siteSummaries", "required">, import("convex/values").VLiteral<"overview", "required">, import("convex/values").VLiteral<"liveVisitors", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"sessionJourney", "required">, import("convex/values").VLiteral<"conversions", "required">, import("convex/values").VLiteral<"visitorJourney", "required">, import("convex/values").VLiteral<"goals", "required">, import("convex/values").VLiteral<"funnels", "required">, import("convex/values").VLiteral<"affiliates", "required">, import("convex/values").VLiteral<"dataCoverage", "required">, import("convex/values").VLiteral<"vitals", "required">], "required", never>, "required">;
189
+ capabilities: import("convex/values").VArray<("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[], import("convex/values").VUnion<"affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals", [import("convex/values").VLiteral<"siteSummaries", "required">, import("convex/values").VLiteral<"overview", "required">, import("convex/values").VLiteral<"liveVisitors", "required">, import("convex/values").VLiteral<"sessions", "required">, import("convex/values").VLiteral<"sessionJourney", "required">, import("convex/values").VLiteral<"conversions", "required">, import("convex/values").VLiteral<"visitorJourney", "required">, import("convex/values").VLiteral<"goals", "required">, import("convex/values").VLiteral<"funnels", "required">, import("convex/values").VLiteral<"affiliates", "required">, import("convex/values").VLiteral<"dataCoverage", "required">, import("convex/values").VLiteral<"vitals", "required">, import("convex/values").VLiteral<"siteMap", "required">], "required", never>, "required">;
186
190
  siteCount: import("convex/values").VFloat64<number, "required">;
187
191
  }, "required", "capabilities" | "protocolVersion" | "siteCount" | "status">;
188
192
  export declare const federatedSiteSummaryValidator: import("convex/values").VObject<{
@@ -217,8 +221,9 @@ export declare function createFederatedAnalyticsManifest(): {
217
221
  affiliatesReport: "affiliatesReport";
218
222
  dataCoverage: "dataCoverage";
219
223
  vitalsReport: "vitalsReport";
224
+ siteMap: "siteMap";
220
225
  };
221
- capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteSummaries" | "visitorJourney" | "vitals")[];
226
+ capabilities: ("affiliates" | "conversions" | "dataCoverage" | "funnels" | "goals" | "liveVisitors" | "overview" | "sessionJourney" | "sessions" | "siteMap" | "siteSummaries" | "visitorJourney" | "vitals")[];
222
227
  limits: {
223
228
  maxSitesPerRequest: 10;
224
229
  maxSitesPerConnection: 10;
@@ -1 +1 @@
1
- {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQlD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,0BAA0B;2BACvB,sBAAsB;6BACpB,wBAAwB;0BAC3B,oBAAoB;EACxB,CAAC;AAEZ,eAAO,MAAM,mCAAmC,mBAAmB,CAAC;AAEpE,eAAO,MAAM,+BAA+B;8BACzB,4BAA4B;8BAC5B,4BAA4B;6BAC7B,2BAA2B;gCACxB,8BAA8B;4BAClC,0BAA0B;0BAC5B,wBAAwB;EAC5B,CAAC;AAGZ;;;;GAIG;AACH,eAAO,MAAM,sCAAsC;uBACvC,UAAU;+BACF,kBAAkB;wBACzB,WAAW;uBACZ,UAAU;2BACN,cAAc;2BACd,cAAc;6BACZ,gBAAgB;8BACf,iBAAiB;6BAClB,gBAAgB;0BACnB,aAAa;4BACX,eAAe;+BACZ,kBAAkB;2BACtB,cAAc;EACnB,CAAC;AACZ,eAAO,MAAM,yCAAyC,yKAY3C,CAAC;AAmBZ,eAAO,MAAM,sCAAsC;uBACvC,wBAAwB;8BACjB,CAAC;yBACN,kBAAkB;;2BAhDpB,UAAU;mCACF,kBAAkB;4BACzB,WAAW;2BACZ,UAAU;+BACN,cAAc;+BACd,cAAc;iCACZ,gBAAgB;kCACf,iBAAiB;iCAClB,gBAAgB;8BACnB,aAAa;gCACX,eAAe;mCACZ,kBAAkB;+BACtB,cAAc;+BAiBd,cAAc;0BACnB,SAAS;;;;;;;;;;EAsBT,CAAC;AAKZ,MAAM,MAAM,2BAA2B,GACrC,CAAC,OAAO,+BAA+B,CAAC,CAAC,MAAM,OAAO,+BAA+B,CAAC,CAAC;AACzF,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,sCAAsC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AACvE,MAAM,MAAM,0BAA0B,GAAG,UAAU,CACjD,OAAO,gCAAgC,CACxC,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kCAAkC;IACjD,MAAM,EAAE,WAAW,CAAC;IACpB,eAAe,EAAE,CAAC,CAAC;IACnB,YAAY,EAAE,4BAA4B,EAAE,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,mCAAmC,GAAG,CAChD,GAAG,EAAE,6BAA6B,EAClC,QAAQ,EAAE,0BAA0B,KAElC,4BAA4B,GAC5B,IAAI,GACJ,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC,CAAC;AAEjD,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,mCAAmC,CAAC;CACxD;AAkBD,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+oBA+B9C,CAAC;AAEH,eAAO,MAAM,2CAA2C;;;;;;;;;;2EAKtD,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;0EAMxC,CAAC;AAEH,wBAAgB,gCAAgC;cA5HpC,wBAAwB;qBACjB,CAAC;gBACN,kBAAkB;;kBAhDpB,UAAU;0BACF,kBAAkB;mBACzB,WAAW;kBACZ,UAAU;sBACN,cAAc;sBACd,cAAc;wBACZ,gBAAgB;yBACf,iBAAiB;wBAClB,gBAAgB;qBACnB,aAAa;uBACX,eAAe;0BACZ,kBAAkB;sBACtB,cAAc;sBAiBd,cAAc;iBACnB,SAAS;;;;;;;;;;EAmJnB;AAED,wBAAgB,4CAA4C,CAC1D,OAAO,EAAE,mCAAmC,SAUrC,6BAA6B,qBACf,SAAS,MAAM,EAAE,KACnC,OAAO,CAAC,4BAA4B,CAAC,CA0EzC"}
@@ -51,10 +51,12 @@ export const FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES = Object.freeze([
51
51
  const FEDERATED_ANALYTICS_FUNCTION_NAMES = Object.freeze({
52
52
  ...FEDERATED_ANALYTICS_REQUIRED_FUNCTIONS,
53
53
  vitalsReport: "vitalsReport",
54
+ siteMap: "siteMap",
54
55
  });
55
56
  const FEDERATED_ANALYTICS_CAPABILITIES = Object.freeze([
56
57
  ...FEDERATED_ANALYTICS_REQUIRED_CAPABILITIES,
57
58
  "vitals",
59
+ "siteMap",
58
60
  ]);
59
61
  const FEDERATED_ANALYTICS_LIMITS = Object.freeze({
60
62
  maxSitesPerRequest: MAX_REPORT_SITES,
@@ -73,7 +75,7 @@ export const FEDERATED_ANALYTICS_CONNECTOR_MANIFEST = Object.freeze({
73
75
  });
74
76
  const MAX_CLAIM_LENGTH = 128;
75
77
  const MAX_PERMISSIONS = 16;
76
- const federatedAnalyticsCapabilityValidator = v.union(v.literal("siteSummaries"), v.literal("overview"), v.literal("liveVisitors"), v.literal("sessions"), v.literal("sessionJourney"), v.literal("conversions"), v.literal("visitorJourney"), v.literal("goals"), v.literal("funnels"), v.literal("affiliates"), v.literal("dataCoverage"), v.literal("vitals"));
78
+ const federatedAnalyticsCapabilityValidator = v.union(v.literal("siteSummaries"), v.literal("overview"), v.literal("liveVisitors"), v.literal("sessions"), v.literal("sessionJourney"), v.literal("conversions"), v.literal("visitorJourney"), v.literal("goals"), v.literal("funnels"), v.literal("affiliates"), v.literal("dataCoverage"), v.literal("vitals"), v.literal("siteMap"));
77
79
  export const federatedAnalyticsManifestValidator = v.object({
78
80
  protocol: v.literal(FEDERATED_ANALYTICS_CONNECTOR_MANIFEST.protocol),
79
81
  protocolVersion: v.literal(FEDERATED_ANALYTICS_CONNECTOR_MANIFEST.protocolVersion),
@@ -93,6 +95,7 @@ export const federatedAnalyticsManifestValidator = v.object({
93
95
  affiliatesReport: v.literal("affiliatesReport"),
94
96
  dataCoverage: v.literal("dataCoverage"),
95
97
  vitalsReport: v.literal("vitalsReport"),
98
+ siteMap: v.literal("siteMap"),
96
99
  }),
97
100
  capabilities: v.array(federatedAnalyticsCapabilityValidator),
98
101
  limits: v.object({
@@ -1 +1 @@
1
- {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"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"}