@iann29/rastro 0.1.0-alpha.9 → 0.1.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 (98) hide show
  1. package/README.md +246 -57
  2. package/agent/integration.md +223 -65
  3. package/agent/manifest.json +34 -13
  4. package/agent/manifest.schema.json +53 -11
  5. package/dist/client/federation.d.ts +196 -11
  6. package/dist/client/federation.d.ts.map +1 -1
  7. package/dist/client/federation.js +160 -6
  8. package/dist/client/federation.js.map +1 -1
  9. package/dist/client/heat.d.ts +37 -0
  10. package/dist/client/heat.d.ts.map +1 -0
  11. package/dist/client/heat.js +43 -0
  12. package/dist/client/heat.js.map +1 -0
  13. package/dist/client/index.d.ts +441 -98
  14. package/dist/client/index.d.ts.map +1 -1
  15. package/dist/client/index.js +207 -17
  16. package/dist/client/index.js.map +1 -1
  17. package/dist/component/_generated/api.d.ts +6 -0
  18. package/dist/component/_generated/api.d.ts.map +1 -1
  19. package/dist/component/_generated/api.js.map +1 -1
  20. package/dist/component/_generated/component.d.ts +50 -13
  21. package/dist/component/_generated/component.d.ts.map +1 -1
  22. package/dist/component/constants.d.ts +3 -0
  23. package/dist/component/constants.d.ts.map +1 -1
  24. package/dist/component/constants.js +6 -0
  25. package/dist/component/constants.js.map +1 -1
  26. package/dist/component/coverage.d.ts +9 -0
  27. package/dist/component/coverage.d.ts.map +1 -1
  28. package/dist/component/coverage.js +36 -6
  29. package/dist/component/coverage.js.map +1 -1
  30. package/dist/component/geo.d.ts +2 -0
  31. package/dist/component/geo.d.ts.map +1 -1
  32. package/dist/component/geo.js +56 -19
  33. package/dist/component/geo.js.map +1 -1
  34. package/dist/component/http.d.ts.map +1 -1
  35. package/dist/component/http.js +48 -27
  36. package/dist/component/http.js.map +1 -1
  37. package/dist/component/ingest.d.ts.map +1 -1
  38. package/dist/component/ingest.js +223 -304
  39. package/dist/component/ingest.js.map +1 -1
  40. package/dist/component/localTime.d.ts +25 -0
  41. package/dist/component/localTime.d.ts.map +1 -0
  42. package/dist/component/localTime.js +126 -0
  43. package/dist/component/localTime.js.map +1 -0
  44. package/dist/component/reports.d.ts +44 -13
  45. package/dist/component/reports.d.ts.map +1 -1
  46. package/dist/component/reports.js +193 -38
  47. package/dist/component/reports.js.map +1 -1
  48. package/dist/component/retention.js +26 -8
  49. package/dist/component/retention.js.map +1 -1
  50. package/dist/component/rollupStore.d.ts +320 -0
  51. package/dist/component/rollupStore.d.ts.map +1 -0
  52. package/dist/component/rollupStore.js +596 -0
  53. package/dist/component/rollupStore.js.map +1 -0
  54. package/dist/component/rollups.d.ts +20 -0
  55. package/dist/component/rollups.d.ts.map +1 -0
  56. package/dist/component/rollups.js +73 -0
  57. package/dist/component/rollups.js.map +1 -0
  58. package/dist/component/sanitize.d.ts +5 -0
  59. package/dist/component/sanitize.d.ts.map +1 -1
  60. package/dist/component/sanitize.js +15 -0
  61. package/dist/component/sanitize.js.map +1 -1
  62. package/dist/component/schema.d.ts +345 -11
  63. package/dist/component/schema.js +25 -0
  64. package/dist/component/schema.js.map +1 -1
  65. package/dist/component/sites.d.ts +12 -0
  66. package/dist/component/sites.d.ts.map +1 -1
  67. package/dist/component/sites.js +30 -0
  68. package/dist/component/sites.js.map +1 -1
  69. package/dist/component/validators.d.ts +34 -13
  70. package/dist/component/validators.d.ts.map +1 -1
  71. package/dist/component/validators.js +23 -2
  72. package/dist/component/validators.js.map +1 -1
  73. package/dist/tracker/generated.d.ts +3 -0
  74. package/dist/tracker/generated.d.ts.map +1 -1
  75. package/dist/tracker/generated.js +3 -0
  76. package/dist/tracker/generated.js.map +1 -1
  77. package/docs/federation-setup.md +104 -27
  78. package/docs/federation.md +168 -31
  79. package/docs/upgrading.md +158 -21
  80. package/llms.txt +8 -6
  81. package/package.json +2 -1
  82. package/src/component/_generated/api.ts +6 -0
  83. package/src/component/_generated/component.ts +47 -12
  84. package/src/component/constants.ts +6 -0
  85. package/src/component/coverage.ts +46 -6
  86. package/src/component/geo.ts +82 -28
  87. package/src/component/http.ts +61 -26
  88. package/src/component/ingest.ts +327 -439
  89. package/src/component/localTime.ts +167 -0
  90. package/src/component/reports.ts +261 -39
  91. package/src/component/retention.ts +25 -7
  92. package/src/component/rollupStore.ts +799 -0
  93. package/src/component/rollups.ts +82 -0
  94. package/src/component/sanitize.ts +14 -0
  95. package/src/component/schema.ts +35 -0
  96. package/src/component/sites.ts +32 -0
  97. package/src/component/validators.ts +27 -1
  98. package/src/tracker/generated.ts +12 -0
@@ -629,7 +629,7 @@ function coverageDatasetsForKind(kind: CleanupKind): string[] {
629
629
  if (kind === "sessions") return ["sessions"];
630
630
  if (kind === "conversions") return ["conversions"];
631
631
  if (kind === "aggregateHour") return ["overviewHour"];
632
- if (kind === "aggregateDay") return ["overviewDay"];
632
+ if (kind === "aggregateDay") return ["overviewDay", "overviewLocalDay"];
633
633
  if (kind === "goalCompletions") return ["goalCompletions"];
634
634
  if (kind === "funnelSteps") return ["funnelSteps"];
635
635
  if (kind === "affiliateStats") return ["affiliateStats"];
@@ -724,17 +724,35 @@ async function deletionsForCleanup(
724
724
  ).map((row) => () => ctx.db.delete("goalCompletions", row._id));
725
725
  }
726
726
  if (kind === "aggregateHour" || kind === "aggregateDay") {
727
- return (
728
- await ctx.db
727
+ // The daily kind also retires the site's local-day buckets. Their cutoff
728
+ // sits a day and an hour earlier than the UTC-aligned one: a local day
729
+ // may begin almost a day before its UTC counterpart and, across a
730
+ // fall-back transition, last 25 hours, so this keeps every bucket that
731
+ // could still contain the cutoff instant.
732
+ const granularities =
733
+ kind === "aggregateHour"
734
+ ? ([["hour", before]] as const)
735
+ : ([
736
+ ["day", before],
737
+ ["localDay", before - DAY_MS - HOUR_MS],
738
+ ] as const);
739
+ const deletions: Array<() => Promise<void>> = [];
740
+ for (const [granularity, cutoff] of granularities) {
741
+ if (deletions.length >= limit) break;
742
+ const rows = await ctx.db
729
743
  .query("aggregateBuckets")
730
744
  .withIndex("by_siteId_and_granularity_and_bucketStart", (q) =>
731
745
  q
732
746
  .eq("siteId", siteId)
733
- .eq("granularity", kind === "aggregateHour" ? "hour" : "day")
734
- .lt("bucketStart", before),
747
+ .eq("granularity", granularity)
748
+ .lt("bucketStart", cutoff),
735
749
  )
736
- .take(limit)
737
- ).map((row) => () => ctx.db.delete("aggregateBuckets", row._id));
750
+ .take(limit - deletions.length);
751
+ deletions.push(
752
+ ...rows.map((row) => () => ctx.db.delete("aggregateBuckets", row._id)),
753
+ );
754
+ }
755
+ return deletions;
738
756
  }
739
757
  if (kind === "funnelProgress") {
740
758
  return (