@iann29/rastro 0.6.0 → 0.8.0

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 (63) hide show
  1. package/README.md +90 -0
  2. package/agent/integration.md +19 -0
  3. package/agent/manifest.json +4 -4
  4. package/dist/client/federation.d.ts +34 -9
  5. package/dist/client/federation.d.ts.map +1 -1
  6. package/dist/client/federation.js +14 -2
  7. package/dist/client/federation.js.map +1 -1
  8. package/dist/client/index.d.ts +365 -5
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +98 -6
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/component/_generated/api.d.ts +2 -0
  13. package/dist/component/_generated/api.d.ts.map +1 -1
  14. package/dist/component/_generated/api.js.map +1 -1
  15. package/dist/component/_generated/component.d.ts +163 -0
  16. package/dist/component/_generated/component.d.ts.map +1 -1
  17. package/dist/component/constants.d.ts +5 -0
  18. package/dist/component/constants.d.ts.map +1 -1
  19. package/dist/component/constants.js +8 -0
  20. package/dist/component/constants.js.map +1 -1
  21. package/dist/component/ingest.d.ts.map +1 -1
  22. package/dist/component/ingest.js +7 -5
  23. package/dist/component/ingest.js.map +1 -1
  24. package/dist/component/leads.d.ts +190 -0
  25. package/dist/component/leads.d.ts.map +1 -0
  26. package/dist/component/leads.js +689 -0
  27. package/dist/component/leads.js.map +1 -0
  28. package/dist/component/reports.d.ts +3 -0
  29. package/dist/component/reports.d.ts.map +1 -1
  30. package/dist/component/reports.js +16 -5
  31. package/dist/component/reports.js.map +1 -1
  32. package/dist/component/sanitize.d.ts +3 -1
  33. package/dist/component/sanitize.d.ts.map +1 -1
  34. package/dist/component/sanitize.js +30 -1
  35. package/dist/component/sanitize.js.map +1 -1
  36. package/dist/component/schema.d.ts +122 -1
  37. package/dist/component/schema.js +39 -1
  38. package/dist/component/schema.js.map +1 -1
  39. package/dist/component/sites.d.ts +4 -0
  40. package/dist/component/sites.d.ts.map +1 -1
  41. package/dist/component/sites.js +13 -2
  42. package/dist/component/sites.js.map +1 -1
  43. package/dist/component/validators.d.ts +696 -1
  44. package/dist/component/validators.d.ts.map +1 -1
  45. package/dist/component/validators.js +130 -0
  46. package/dist/component/validators.js.map +1 -1
  47. package/dist/tracker/generated.d.ts +1 -1
  48. package/dist/tracker/generated.js +1 -1
  49. package/docs/federation-setup.md +29 -0
  50. package/docs/upgrading.md +57 -0
  51. package/llms.txt +2 -0
  52. package/package.json +1 -1
  53. package/src/component/_generated/api.ts +2 -0
  54. package/src/component/_generated/component.ts +186 -0
  55. package/src/component/constants.ts +8 -0
  56. package/src/component/ingest.ts +8 -3
  57. package/src/component/leads.ts +823 -0
  58. package/src/component/reports.ts +23 -5
  59. package/src/component/sanitize.ts +46 -1
  60. package/src/component/schema.ts +45 -0
  61. package/src/component/sites.ts +14 -1
  62. package/src/component/validators.ts +165 -0
  63. package/src/tracker/generated.ts +1 -1
@@ -38,6 +38,14 @@ export const MAX_TRACKED_LINKS_PER_SITE = 200;
38
38
  // plus its last 30 days, and a full site of 200 links must stay under the
39
39
  // 32,000 documents a query may read (see trackedLinks.ts).
40
40
  export const TRACKED_LINK_CLICK_SHARDS = 4;
41
+ // Leads (see leads.ts). The report reads at most MAX_LEAD_REPORT_ROWS rollup
42
+ // rows across every site and dimension, plus two documents per ad it names,
43
+ // so its worst case stays well under the 32,000 documents a query may read.
44
+ export const MAX_LEAD_REPORT_ROWS = 12_000;
45
+ export const MAX_LEAD_REPORT_ADS = 1_000;
46
+ export const MAX_LEAD_LIST = 50;
47
+ export const MAX_LEAD_EVENTS_PER_LEAD = 1_000;
48
+ export const MAX_AD_CATALOG_BATCH = 100;
41
49
  export const MAX_FUNNEL_STEPS = 10;
42
50
  export const MAX_PROPERTIES = 16;
43
51
  export const MAX_REPORT_SITES = 10;
@@ -582,6 +582,7 @@ export const ingestBatch = mutation({
582
582
  recordTelemetry: true,
583
583
  timezone,
584
584
  siteDomains: site.domains,
585
+ routePatterns: site.routePatterns,
585
586
  financialConversion: false,
586
587
  trustedGoalKey: undefined,
587
588
  now,
@@ -713,6 +714,7 @@ export const trackConversion = mutation({
713
714
  recordTelemetry: existingTelemetry === null && !telemetry.saturated,
714
715
  timezone: localDayTimezone(site.timezone),
715
716
  siteDomains: site.domains,
717
+ routePatterns: site.routePatterns,
716
718
  financialConversion: true,
717
719
  trustedGoalKey,
718
720
  now: Date.now(),
@@ -853,6 +855,7 @@ async function accountEvent(
853
855
  timezone?: string;
854
856
  /** The site's own domains: a referrer on them is not an origin. */
855
857
  siteDomains: string[];
858
+ routePatterns?: string[];
856
859
  financialConversion: boolean;
857
860
  trustedGoalKey: string | undefined;
858
861
  now: number;
@@ -882,6 +885,7 @@ async function accountEvent(
882
885
  event,
883
886
  session,
884
887
  input.existingSession,
888
+ input.routePatterns,
885
889
  );
886
890
  }
887
891
 
@@ -2407,8 +2411,9 @@ function foldRouteRollups(
2407
2411
  event: TrackerEvent,
2408
2412
  session: SessionState,
2409
2413
  existing: CachedDocument<"sessions"> | null,
2414
+ patterns?: string[],
2410
2415
  ) {
2411
- const route = normalizeRoute(event.path);
2416
+ const route = normalizeRoute(event.path, patterns);
2412
2417
  const priorPageviews = existing?.pageviewCount ?? 0;
2413
2418
  const firstPageview = existing === null || priorPageviews === 0;
2414
2419
  foldRouteDelta(
@@ -2426,7 +2431,7 @@ function foldRouteRollups(
2426
2431
  // Out-of-order telemetry keeps its view but cannot say where it came from.
2427
2432
  if (existing === null || firstPageview) return;
2428
2433
  if (event.timestamp < existing.lastSeenAt) return;
2429
- const previous = normalizeRoute(existing.exitPath);
2434
+ const previous = normalizeRoute(existing.exitPath, patterns);
2430
2435
  const lastPageviewAt = existing.lastPageviewAt;
2431
2436
  foldRouteDelta(
2432
2437
  deltas,
@@ -2446,7 +2451,7 @@ function foldRouteRollups(
2446
2451
  foldRouteDelta(
2447
2452
  deltas,
2448
2453
  siteId,
2449
- normalizeRoute(existing.entryPath),
2454
+ normalizeRoute(existing.entryPath, patterns),
2450
2455
  existing.startedAt,
2451
2456
  event.visitorId,
2452
2457
  (delta) => {