@liiift-studio/sanity-visitor-insights 0.17.0 → 0.19.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.
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as sanity from 'sanity';
2
2
  import React from 'react';
3
- import { R as ReportEnvelope, a as ReportName, b as RangeKey, M as MetricValue, A as AcquisitionData, D as DiagnosticReport, J as JourneyData, c as MeasurementHealthData, T as TypefaceInterestData } from './ranges-B_OrmcdP.mjs';
4
- export { C as CaptureBasis, d as CaptureEstimate, e as CaptureModel, f as CheckStatus, g as Coverage, h as CrossSourceDay, i as DailyPoint, j as DateRange, k as DiagnosticCheck, E as EmailCampaign, l as EventCutover, m as JourneyOutcome, n as JourneyStep, L as LandingPage, o as LicenceTierRow, P as PREEXISTING, p as REPORT_NAMES, q as ReportError, S as SiteAnalyticsConfig, r as SourceName, s as SourceRow, t as SourceStatus, u as TimelineEvent, v as TypefaceInterestRow, U as UnavailableReason, w as coverageForRange, x as estimated, y as isReportName, z as ok, B as partial, F as previousRange, G as resolveRange, H as unavailable, I as validateSiteConfig, K as valueOrNull } from './ranges-B_OrmcdP.mjs';
3
+ import { R as ReportEnvelope, a as ReportName, b as RangeKey, M as MetricValue, A as AcquisitionData, D as DiagnosticReport, J as JourneyData, c as MeasurementHealthData, T as TypefaceInterestData } from './ranges-BUZuS1c-.mjs';
4
+ export { C as CaptureBasis, d as CaptureEstimate, e as CaptureModel, f as CheckStatus, g as Coverage, h as CrossSourceDay, i as DailyPoint, j as DateRange, k as DiagnosticCheck, E as EmailCampaign, l as EventCutover, m as JourneyOutcome, n as JourneyStep, L as LandingPage, o as LicenceTierRow, P as PREEXISTING, p as REPORT_NAMES, q as ReportError, S as SiteAnalyticsConfig, r as SourceName, s as SourceRow, t as SourceStatus, u as TimelineEvent, v as TypefaceInterestRow, U as UnavailableReason, w as coverageForRange, x as estimated, y as isReportName, z as ok, B as partial, F as previousRange, G as resolveRange, H as unavailable, I as validateSiteConfig, K as valueOrNull } from './ranges-BUZuS1c-.mjs';
5
5
 
6
6
  /**
7
7
  * The Visitor Insights Studio tool.
@@ -342,24 +342,37 @@ interface SeriesPoint {
342
342
  }
343
343
  /** How a value should be written out. */
344
344
  type SeriesUnit = 'count' | 'money' | 'percent';
345
- /** One row of the chart. */
345
+ /**
346
+ * One row of the chart: one answer, with what a lossier source saw underneath it.
347
+ *
348
+ * A row shows a SINGLE line by default. Two peer lines make the reader reconcile before they get
349
+ * an answer, and at a glance a foundry owner wants "how much", not "here are two measurements that
350
+ * disagree". The disagreement is still drawn — as a filled region, and in full on hover — because
351
+ * hiding it entirely would switch off the alarm: the 24 August collapse was visible precisely
352
+ * because two lines came apart.
353
+ */
346
354
  interface Series {
347
355
  key: string;
348
356
  label: string;
349
- /** Which upstream this came from, shown so the reader can weigh it. */
357
+ /** Which upstream the LINE came from. */
350
358
  source: 'GA4' | 'Vercel' | 'Sanity' | 'Mailchimp';
351
- /**
352
- * Whether the source sees everything. GA4 does not; the others do.
353
- * Drives the dashed stroke and the uncertainty band rather than a footnote nobody reads.
354
- */
359
+ /** Whether the line's source sees everything. Drives the stroke and the wording. */
355
360
  complete: boolean;
356
361
  unit: SeriesUnit;
357
362
  points: SeriesPoint[];
358
363
  /**
359
- * Multiplier from observed to estimated-true, for a lossy series. 1 means no correction known.
360
- * Drawn as a band above the line, never as a replacement for it — the measured line stays.
364
+ * What a lossier source saw of the same thing.
365
+ *
366
+ * Drawn as a filled region between the two, NOT as a symmetric uncertainty band. There is no
367
+ * doubt about the traffic here: Vercel counted it server-side. What is uncertain is how much of
368
+ * it the analytics could see, and the honest way to draw that is the area it missed — a
369
+ * quantity, visible to scale, rather than a percentage on another tab.
361
370
  */
362
- grossUpFactor?: number;
371
+ shortfall?: {
372
+ label: string;
373
+ source: Series['source'];
374
+ points: SeriesPoint[];
375
+ };
363
376
  }
364
377
  /** A dated event drawn through every row, e.g. a campaign send. */
365
378
  interface TimelineMarker {
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as sanity from 'sanity';
2
2
  import React from 'react';
3
- import { R as ReportEnvelope, a as ReportName, b as RangeKey, M as MetricValue, A as AcquisitionData, D as DiagnosticReport, J as JourneyData, c as MeasurementHealthData, T as TypefaceInterestData } from './ranges-B_OrmcdP.js';
4
- export { C as CaptureBasis, d as CaptureEstimate, e as CaptureModel, f as CheckStatus, g as Coverage, h as CrossSourceDay, i as DailyPoint, j as DateRange, k as DiagnosticCheck, E as EmailCampaign, l as EventCutover, m as JourneyOutcome, n as JourneyStep, L as LandingPage, o as LicenceTierRow, P as PREEXISTING, p as REPORT_NAMES, q as ReportError, S as SiteAnalyticsConfig, r as SourceName, s as SourceRow, t as SourceStatus, u as TimelineEvent, v as TypefaceInterestRow, U as UnavailableReason, w as coverageForRange, x as estimated, y as isReportName, z as ok, B as partial, F as previousRange, G as resolveRange, H as unavailable, I as validateSiteConfig, K as valueOrNull } from './ranges-B_OrmcdP.js';
3
+ import { R as ReportEnvelope, a as ReportName, b as RangeKey, M as MetricValue, A as AcquisitionData, D as DiagnosticReport, J as JourneyData, c as MeasurementHealthData, T as TypefaceInterestData } from './ranges-BUZuS1c-.js';
4
+ export { C as CaptureBasis, d as CaptureEstimate, e as CaptureModel, f as CheckStatus, g as Coverage, h as CrossSourceDay, i as DailyPoint, j as DateRange, k as DiagnosticCheck, E as EmailCampaign, l as EventCutover, m as JourneyOutcome, n as JourneyStep, L as LandingPage, o as LicenceTierRow, P as PREEXISTING, p as REPORT_NAMES, q as ReportError, S as SiteAnalyticsConfig, r as SourceName, s as SourceRow, t as SourceStatus, u as TimelineEvent, v as TypefaceInterestRow, U as UnavailableReason, w as coverageForRange, x as estimated, y as isReportName, z as ok, B as partial, F as previousRange, G as resolveRange, H as unavailable, I as validateSiteConfig, K as valueOrNull } from './ranges-BUZuS1c-.js';
5
5
 
6
6
  /**
7
7
  * The Visitor Insights Studio tool.
@@ -342,24 +342,37 @@ interface SeriesPoint {
342
342
  }
343
343
  /** How a value should be written out. */
344
344
  type SeriesUnit = 'count' | 'money' | 'percent';
345
- /** One row of the chart. */
345
+ /**
346
+ * One row of the chart: one answer, with what a lossier source saw underneath it.
347
+ *
348
+ * A row shows a SINGLE line by default. Two peer lines make the reader reconcile before they get
349
+ * an answer, and at a glance a foundry owner wants "how much", not "here are two measurements that
350
+ * disagree". The disagreement is still drawn — as a filled region, and in full on hover — because
351
+ * hiding it entirely would switch off the alarm: the 24 August collapse was visible precisely
352
+ * because two lines came apart.
353
+ */
346
354
  interface Series {
347
355
  key: string;
348
356
  label: string;
349
- /** Which upstream this came from, shown so the reader can weigh it. */
357
+ /** Which upstream the LINE came from. */
350
358
  source: 'GA4' | 'Vercel' | 'Sanity' | 'Mailchimp';
351
- /**
352
- * Whether the source sees everything. GA4 does not; the others do.
353
- * Drives the dashed stroke and the uncertainty band rather than a footnote nobody reads.
354
- */
359
+ /** Whether the line's source sees everything. Drives the stroke and the wording. */
355
360
  complete: boolean;
356
361
  unit: SeriesUnit;
357
362
  points: SeriesPoint[];
358
363
  /**
359
- * Multiplier from observed to estimated-true, for a lossy series. 1 means no correction known.
360
- * Drawn as a band above the line, never as a replacement for it — the measured line stays.
364
+ * What a lossier source saw of the same thing.
365
+ *
366
+ * Drawn as a filled region between the two, NOT as a symmetric uncertainty band. There is no
367
+ * doubt about the traffic here: Vercel counted it server-side. What is uncertain is how much of
368
+ * it the analytics could see, and the honest way to draw that is the area it missed — a
369
+ * quantity, visible to scale, rather than a percentage on another tab.
361
370
  */
362
- grossUpFactor?: number;
371
+ shortfall?: {
372
+ label: string;
373
+ source: Series['source'];
374
+ points: SeriesPoint[];
375
+ };
363
376
  }
364
377
  /** A dated event drawn through every row, e.g. a campaign send. */
365
378
  interface TimelineMarker {