@iann29/rastro 0.1.0-alpha.7 → 0.1.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -16
- package/agent/integration.md +14 -6
- package/agent/manifest.json +9 -7
- package/agent/manifest.schema.json +8 -5
- package/dist/client/federation.d.ts +13 -8
- package/dist/client/federation.d.ts.map +1 -1
- package/dist/client/federation.js +4 -1
- package/dist/client/federation.js.map +1 -1
- package/dist/client/index.d.ts +412 -10
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +55 -2
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +68 -4
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/constants.d.ts +4 -0
- package/dist/component/constants.d.ts.map +1 -1
- package/dist/component/constants.js +11 -0
- package/dist/component/constants.js.map +1 -1
- package/dist/component/coverage.d.ts +1 -0
- package/dist/component/coverage.d.ts.map +1 -1
- package/dist/component/coverage.js +13 -2
- package/dist/component/coverage.js.map +1 -1
- package/dist/component/http.d.ts.map +1 -1
- package/dist/component/http.js +1 -0
- package/dist/component/http.js.map +1 -1
- package/dist/component/ingest.d.ts.map +1 -1
- package/dist/component/ingest.js +144 -2
- package/dist/component/ingest.js.map +1 -1
- package/dist/component/reports.d.ts +75 -1
- package/dist/component/reports.d.ts.map +1 -1
- package/dist/component/reports.js +275 -3
- package/dist/component/reports.js.map +1 -1
- package/dist/component/retention.d.ts +4 -4
- package/dist/component/retention.d.ts.map +1 -1
- package/dist/component/retention.js +12 -2
- package/dist/component/retention.js.map +1 -1
- package/dist/component/sanitize.d.ts +9 -0
- package/dist/component/sanitize.d.ts.map +1 -1
- package/dist/component/sanitize.js +25 -0
- package/dist/component/sanitize.js.map +1 -1
- package/dist/component/schema.d.ts +65 -3
- package/dist/component/schema.js +25 -0
- package/dist/component/schema.js.map +1 -1
- package/docs/federation-setup.md +2 -0
- package/docs/federation.md +4 -0
- package/docs/upgrading.md +53 -10
- package/llms.txt +2 -0
- package/package.json +1 -1
- package/src/component/_generated/component.ts +55 -1
- package/src/component/constants.ts +11 -0
- package/src/component/coverage.ts +12 -1
- package/src/component/http.ts +1 -0
- package/src/component/ingest.ts +227 -0
- package/src/component/reports.ts +364 -2
- package/src/component/retention.ts +16 -1
- package/src/component/sanitize.ts +31 -0
- package/src/component/schema.ts +26 -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
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
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
|
+
| 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 | Session-scoped pseudonymous IDs in `sessionStorage`; no cookies |
|
|
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
|
|
|
@@ -513,6 +514,7 @@ export const {
|
|
|
513
514
|
goalsReport,
|
|
514
515
|
funnelsReport,
|
|
515
516
|
affiliatesReport,
|
|
517
|
+
siteMap,
|
|
516
518
|
} = exposeAnalyticsApi(components.rastroAnalytics, {
|
|
517
519
|
authorize: async (ctx, request) => {
|
|
518
520
|
const identity = await ctx.auth.getUserIdentity();
|
|
@@ -568,7 +570,7 @@ The `Rastro` class wraps the component boundary for host functions:
|
|
|
568
570
|
- Ingestion: `ingest`, `trackConversion`, `linkVisitor`
|
|
569
571
|
- Reports: `overview`, `liveVisitors`, `listSessions`, `sessionJourney`,
|
|
570
572
|
`listConversions`, `visitorJourney`, `goalsReport`, `funnelsReport`,
|
|
571
|
-
`affiliatesReport`, `dataCoverage`
|
|
573
|
+
`affiliatesReport`, `vitalsReport`, `siteMap`, `dataCoverage`
|
|
572
574
|
- Configuration: `upsertGoal`, `listGoals`, `removeGoal`, `upsertFunnel`,
|
|
573
575
|
`listFunnels`, `removeFunnel`, `upsertAffiliate`, `listAffiliates`,
|
|
574
576
|
`removeAffiliate`
|
|
@@ -580,6 +582,17 @@ indexed and bounded. Component pagination uses scope-bound opaque keyset cursors
|
|
|
580
582
|
because native `.paginate()` is not supported inside Convex components; page
|
|
581
583
|
cost stays constant instead of increasing with an offset.
|
|
582
584
|
|
|
585
|
+
`siteMap` reads the daily route rollups newest day first and returns per-route
|
|
586
|
+
totals — pageviews, estimated visitors, entries, derived exits and bounces
|
|
587
|
+
(`exits = entries + transitions in − transitions out`,
|
|
588
|
+
`bounces = entries − sessions that continued`), and time on page — plus
|
|
589
|
+
route-to-route transition counts and a per-route daily series. Numeric, UUID,
|
|
590
|
+
and long hexadecimal path segments collapse to `:id` in the map only; the
|
|
591
|
+
package exports `normalizeRoute` so dashboards bucket live visitors by the same
|
|
592
|
+
rule, and `liveVisitors` reports `previousPath` and `movedAt` when a visitor
|
|
593
|
+
moves between routes. Map coverage begins at the first ingest after the upgrade
|
|
594
|
+
that introduced the rollups.
|
|
595
|
+
|
|
583
596
|
Overview responses label visitor values as either HLL-estimated unique visitors
|
|
584
597
|
or legacy `bucketOccurrences`; legacy aggregate rows are never presented as
|
|
585
598
|
exact uniques. Anonymous sessions from the same device and network within one
|
|
@@ -623,6 +636,11 @@ boundaries use different bucket alignment.
|
|
|
623
636
|
device classes are fixed (desktop, mobile, tablet, unknown)
|
|
624
637
|
- Web Vitals report: complete reads bounded to 5,000 rollup rows across at most
|
|
625
638
|
90 UTC days; wider saturated ranges fail with `REPORT_INCOMPLETE`
|
|
639
|
+
- Site map routes per site-day shard: 200 tracked route rows, then `(other)`; 24
|
|
640
|
+
outgoing-transition slots per route row
|
|
641
|
+
- Site map report: reads newest day first, bounded to 8,000 rollup rows across
|
|
642
|
+
at most 90 UTC days; older days beyond the budget are declared as partial
|
|
643
|
+
coverage instead of failing the report
|
|
626
644
|
- Primary aggregate shards: 256 hourly and 128 daily, derived from stable
|
|
627
645
|
session identity
|
|
628
646
|
- Funnel and affiliate aggregate shards: 16
|
package/agent/integration.md
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
576
|
+
8. In the same suite, call without an identity and require
|
|
570
577
|
`FEDERATION_UNAUTHENTICATED`.
|
|
571
|
-
|
|
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
|
-
|
|
576
|
-
|
|
577
|
-
|
|
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`:
|
package/agent/manifest.json
CHANGED
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"upgrading": "https://www.amagerastro.com/docs/reference/upgrading.md",
|
|
16
16
|
"integrity": {
|
|
17
17
|
"algorithm": "sha256",
|
|
18
|
-
"agent": "
|
|
19
|
-
"llms": "
|
|
20
|
-
"protocol": "
|
|
21
|
-
"setup": "
|
|
22
|
-
"upgrading": "
|
|
18
|
+
"agent": "b641b6cdecc0c23291e169bceef6308d1679392bec0b5c9e11715b6740be83b3",
|
|
19
|
+
"llms": "ae4b40258ccc7f0176689da196e219bb5cb731603f17fc6fe104a7e870719ed2",
|
|
20
|
+
"protocol": "57fe1d40b81a872a027294945dc577b4a6346562620f2772074dc534c11c9190",
|
|
21
|
+
"setup": "5e7cd04a7b285a887404fe3cdae918a63374822e656395df2b50f57736e0fd54",
|
|
22
|
+
"upgrading": "f6d9b31ae6a45d10e995fab5bbc7f42f279b8b17a1e24a5a89161e537d7e7cda"
|
|
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":
|
|
194
|
-
"maxItems":
|
|
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
|
-
|
|
162
|
-
|
|
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":"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;
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AACA,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AAGnC,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,YAAY,EAAE,sBAAsB;IACpC,cAAc,EAAE,wBAAwB;IACxC,WAAW,EAAE,oBAAoB;CACzB,CAAC,CAAC;AAEZ,MAAM,CAAC,MAAM,mCAAmC,GAAG,gBAAgB,CAAC;AAEpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3D,eAAe,EAAE,4BAA4B;IAC7C,eAAe,EAAE,4BAA4B;IAC7C,cAAc,EAAE,2BAA2B;IAC3C,iBAAiB,EAAE,8BAA8B;IACjD,aAAa,EAAE,0BAA0B;IACzC,WAAW,EAAE,wBAAwB;CAC7B,CAAC,CAAC;AAEZ,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAAC,MAAM,CAAC;IAClE,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,YAAY,EAAE,cAAc;CACpB,CAAC,CAAC;AACZ,MAAM,CAAC,MAAM,yCAAyC,GAAG,MAAM,CAAC,MAAM,CAAC;IACrE,eAAe;IACf,UAAU;IACV,cAAc;IACd,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,OAAO;IACP,SAAS;IACT,YAAY;IACZ,cAAc;CACN,CAAC,CAAC;AACZ,MAAM,kCAAkC,GAAG,MAAM,CAAC,MAAM,CAAC;IACvD,GAAG,sCAAsC;IACzC,YAAY,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"federation.js","sourceRoot":"","sources":["../../src/client/federation.ts"],"names":[],"mappings":"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"}
|