@mongrov/analytics 0.25.0 → 0.25.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"flusher.d.ts","sourceRoot":"","sources":["../../src/sync/flusher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flusher.d.ts","sourceRoot":"","sources":["../../src/sync/flusher.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
36
36
  var _BatchFlusher_instances, _BatchFlusher_engine, _BatchFlusher_buffer, _BatchFlusher_columnOrder, _BatchFlusher_queue, _BatchFlusher_sleep, _BatchFlusher_now, _BatchFlusher_emit, _BatchFlusher_tables, _BatchFlusher_batches, _BatchFlusher_recordInBatch, _BatchFlusher_runWithRetry, _BatchFlusher_flushWithTimeout, _BatchFlusher_write, _BatchFlusher_appendInto, _BatchFlusher_restore, _BatchFlusher_ensureState;
37
37
  import { nanoid } from 'nanoid';
38
38
  import PQueue from 'p-queue';
39
- import { IDENTITY_COLUMNS } from '../core/schemas';
39
+ import { LOCAL_SCHEMAS } from '../core/schemas';
40
40
  import { SyncError } from './errors';
41
41
  // p-queue: HIGHER priority values run first. Foreground / manual sit at the
42
42
  // top; background sits at the floor.
@@ -60,6 +60,14 @@ export const BACKOFF_SEQUENCE_MS = [
60
60
  ];
61
61
  export const MAX_CONSECUTIVE_FAILURES = 5;
62
62
  export const FLUSH_TIMEOUT_MS = 30000;
63
+ /**
64
+ * Whether the local table carries a PRIMARY KEY — its own (`sleep_session`,
65
+ * `device_config`) or one injected from IDENTITY_COLUMNS. Keyed tables must
66
+ * go through the staging + ON CONFLICT path; see `#write`.
67
+ */
68
+ function isKeyed(table) {
69
+ return LOCAL_SCHEMAS[table]?.includes('PRIMARY KEY') ?? false;
70
+ }
63
71
  export class BatchFlusher {
64
72
  constructor(config) {
65
73
  _BatchFlusher_instances.add(this);
@@ -275,8 +283,14 @@ _BatchFlusher_engine = new WeakMap(), _BatchFlusher_buffer = new WeakMap(), _Bat
275
283
  * whole batch is duplicates. The cost is one extra pass, not the ~19x that
276
284
  * row-wise `INSERT ... VALUES` would have cost.
277
285
  *
278
- * Tables without a declared identity tuple (`tool_call_audit` is
279
- * append-only by design) keep the direct path.
286
+ * The test is "does the table declare ANY primary key", not "is it in
287
+ * IDENTITY_COLUMNS". `sleep_session` and `device_config` spell their own
288
+ * key in the base DDL and are deliberately absent from IDENTITY_COLUMNS,
289
+ * so an IDENTITY_COLUMNS test sent both down the Appender path: a re-synced
290
+ * night threw `Duplicate key` and jammed every later row behind it (found
291
+ * by the UX team's app-side patch; `flusher-self-keyed.test.ts`). Only
292
+ * keyless tables (`tool_call_audit` is append-only by design) take the
293
+ * direct path.
280
294
  *
281
295
  * Returns rows APPENDED, not rows inserted. The count feeds buffer
282
296
  * accounting and the batch record, both of which are about what was
@@ -287,7 +301,7 @@ async function _BatchFlusher_write(table, entries) {
287
301
  if (!cols) {
288
302
  throw new SyncError('flush_failed', `no columnOrder registered for table "${table}"`);
289
303
  }
290
- if (!(table in IDENTITY_COLUMNS))
304
+ if (!isKeyed(table))
291
305
  return __classPrivateFieldGet(this, _BatchFlusher_instances, "m", _BatchFlusher_appendInto).call(this, table, table, entries);
292
306
  const staging = `${table}__stg`;
293
307
  // Unconstrained mirror of the target: `WHERE false` copies the column
@@ -1 +1 @@
1
- {"version":3,"file":"flusher.js","sourceRoot":"","sources":["../../src/sync/flusher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flusher.js","sourceRoot":"","sources":["../../src/sync/flusher.ts"],"names":[],"mappings":"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"}
@@ -33,9 +33,9 @@ export declare function parseTimestamp(fwStr: string): Date;
33
33
  * `[D 18:00, D+1 18:00)`
34
34
  * are attributed to `night_of = D`.
35
35
  *
36
- * Returned as a UTC `Date` at midnight of `D` in the user's timezone. This
37
- * matches the `DATE` column shape in `sleep_session.night_of` and lets
38
- * `date_trunc`/`GROUP BY` queries stay timezone-honest.
36
+ * Returned as a `Date` at UTC midnight of `D` a calendar date, not an
37
+ * instant. That is what the `DATE` column in `sleep_session.night_of` stores,
38
+ * in every zone.
39
39
  *
40
40
  * DST handling:
41
41
  * - Spring-forward gap (02:00 becomes 03:00): a reading in the vanished hour
@@ -1 +1 @@
1
- {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/sync/mapper/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAqBlD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAmCzD"}
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../../src/sync/mapper/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAqBlD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAqCzD"}
@@ -17,7 +17,7 @@
17
17
  * timestamp contract and `design.md` §sync/mapper/firmware.ts for the module
18
18
  * shape.
19
19
  */
20
- import { formatInTimeZone, fromZonedTime } from 'date-fns-tz';
20
+ import { formatInTimeZone } from 'date-fns-tz';
21
21
  /**
22
22
  * Match `"YYYY.MM.DD HH:MM:SS"` exactly. Firmware writes UTC into this shape.
23
23
  *
@@ -56,9 +56,9 @@ export function parseTimestamp(fwStr) {
56
56
  * `[D 18:00, D+1 18:00)`
57
57
  * are attributed to `night_of = D`.
58
58
  *
59
- * Returned as a UTC `Date` at midnight of `D` in the user's timezone. This
60
- * matches the `DATE` column shape in `sleep_session.night_of` and lets
61
- * `date_trunc`/`GROUP BY` queries stay timezone-honest.
59
+ * Returned as a `Date` at UTC midnight of `D` a calendar date, not an
60
+ * instant. That is what the `DATE` column in `sleep_session.night_of` stores,
61
+ * in every zone.
62
62
  *
63
63
  * DST handling:
64
64
  * - Spring-forward gap (02:00 becomes 03:00): a reading in the vanished hour
@@ -94,12 +94,15 @@ export function computeNightOf(ts, tz) {
94
94
  nightM = rolled.getUTCMonth() + 1;
95
95
  nightD = rolled.getUTCDate();
96
96
  }
97
- // Build the local-midnight ISO string for the night's day, then convert to
98
- // the equivalent UTC instant via `fromZonedTime`.
99
- const isoLocalMidnight = `${nightY.toString().padStart(4, '0')}-${nightM
100
- .toString()
101
- .padStart(2, '0')}-${nightD.toString().padStart(2, '0')}T00:00:00.000`;
102
- return fromZonedTime(isoLocalMidnight, tz);
97
+ // UTC midnight of the night's calendar date. A DATE has no zone, and every
98
+ // writer (the Appender, `toISOString().slice(0, 10)`) reads a JS Date's UTC
99
+ // fields so UTC midnight is the only instant whose date IS the night.
100
+ //
101
+ // This used to return LOCAL midnight as an instant (`fromZonedTime`). West
102
+ // of UTC that instant still falls on the same UTC date, so PDT looked fine;
103
+ // east of UTC it falls on the previous one, and every IST night was stored
104
+ // a day early (`flusher-self-keyed.test.ts`, "night_of survives the write").
105
+ return new Date(Date.UTC(nightY, nightM - 1, nightD));
103
106
  }
104
107
  function pad(n) {
105
108
  return n.length === 1 ? `0${n}` : n;
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/sync/mapper/time.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../src/sync/mapper/time.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sleep-derive.d.ts","sourceRoot":"","sources":["../../src/sync/sleep-derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAiBlD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,8DAA8D;IAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,CAAC,KAAK,EAAE;QACf,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAC7C,KAAK,IAAI,CAAA;IACV,uDAAuD;IACvD,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,qFAAqF;IACrF,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChE;AA8CD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAuHvE"}
1
+ {"version":3,"file":"sleep-derive.d.ts","sourceRoot":"","sources":["../../src/sync/sleep-derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAiBlD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,EAAE,YAAY,CAAA;IACrB,8DAA8D;IAC9D,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,OAAO,EAAE,CAAC,KAAK,EAAE;QACf,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAC7C,KAAK,IAAI,CAAA;IACV,uDAAuD;IACvD,YAAY,EAAE,MAAM,MAAM,CAAA;IAC1B,qFAAqF;IACrF,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChE;AA+CD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAiKvE"}
@@ -26,6 +26,7 @@ import { computeNightOf } from './mapper/time';
26
26
  import { correctSleepNights, nightsForEpochs } from './sleep-correction/orchestrate';
27
27
  import { stagingViewsSql } from './sleep-correction/staging';
28
28
  const SIX_HOURS = 6 * 3600;
29
+ const QUOTE_RE = /'/g;
29
30
  function epochOf(ts) {
30
31
  if (ts instanceof Date)
31
32
  return Math.floor(ts.getTime() / 1000);
@@ -80,6 +81,38 @@ export function createSleepDeriver(deps) {
80
81
  await deps.engine.execute(DELETE_STAGES_SQL(catalog), params);
81
82
  await deps.engine.execute(DELETE_SESSIONS_SQL(catalog), params);
82
83
  }
84
+ /**
85
+ * Re-key stored `night_of` to what `computeNightOf` says today.
86
+ *
87
+ * Rows written before 0.25.1 carry the old value — a day early east of UTC
88
+ * — and nights outside this sync's range are never re-derived, so without
89
+ * this they would stay wrong, and a replace keyed on the corrected night
90
+ * would miss them. Idempotent: once keys agree it only reads. Computed in
91
+ * JS through the one `computeNightOf`, not in SQL, so it needs no ICU.
92
+ */
93
+ async function rekeyNights(ctx) {
94
+ const rows = await deps.engine.execute(`SELECT session_id, CAST(epoch(ts_start) AS BIGINT) AS e, CAST(night_of AS VARCHAR) AS night
95
+ FROM ${catalog}.main.sleep_session
96
+ WHERE brand = $brand AND family_id = $family_id AND user_id = $user_id AND device_id = $device_id`, { brand: ctx.brand, family_id: ctx.familyId, user_id: ctx.userId, device_id: ctx.deviceId });
97
+ for (const r of rows) {
98
+ const want = computeNightOf(new Date(Number(r.e) * 1000), ctx.userTimezone).toISOString().slice(0, 10);
99
+ if (want === r.night)
100
+ continue;
101
+ await deps.engine.execute(`UPDATE ${catalog}.main.sleep_session SET night_of = CAST($night AS DATE) WHERE session_id = $id`, { night: want, id: r.session_id });
102
+ }
103
+ }
104
+ /**
105
+ * Drop any stored session sharing an id with a row about to be written.
106
+ * Keyed flushes are ON CONFLICT DO NOTHING, so a stale row with the same id
107
+ * would otherwise silently win over the corrected one.
108
+ */
109
+ async function deleteByIds(ids) {
110
+ if (ids.length === 0)
111
+ return;
112
+ const list = ids.map(id => `'${id.replace(QUOTE_RE, '\'\'')}'`).join(', ');
113
+ await deps.engine.execute(`DELETE FROM ${catalog}.main.sleep_stage WHERE session_id IN (${list})`);
114
+ await deps.engine.execute(`DELETE FROM ${catalog}.main.sleep_session WHERE session_id IN (${list})`);
115
+ }
83
116
  async function deriveRange(p) {
84
117
  const timeZone = await deps.resolveTimezone(p.userId);
85
118
  const ctx = {
@@ -89,6 +122,7 @@ export function createSleepDeriver(deps) {
89
122
  deviceId: p.deviceId,
90
123
  userTimezone: timeZone,
91
124
  };
125
+ await rekeyNights(ctx);
92
126
  for (const sql of stagingViewsSql({ ...ctx, localCatalog: catalog }))
93
127
  await deps.engine.execute(sql);
94
128
  const result = await correctSleepNights(deps.engine, {
@@ -117,6 +151,7 @@ export function createSleepDeriver(deps) {
117
151
  ]);
118
152
  for (const night of nights)
119
153
  await replaceNight(ctx, night);
154
+ await deleteByIds(out.sleep_session.map(s => s.session_id));
120
155
  sessions.push(...out.sleep_session);
121
156
  stages.push(...out.sleep_stage);
122
157
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sleep-derive.js","sourceRoot":"","sources":["../../src/sync/sleep-derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sleep-derive.js","sourceRoot":"","sources":["../../src/sync/sleep-derive.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mongrov/analytics",
3
- "version": "0.25.0",
3
+ "version": "0.25.1",
4
4
  "sideEffects": false,
5
5
  "description": "DuckDB + R2 Iceberg local analytics for @mongrov apps",
6
6
  "license": "MIT",
@@ -108,7 +108,7 @@
108
108
  "vitest": "^2.1.9",
109
109
  "zod": "^3.23.8",
110
110
  "@mongrov/db": "0.3.0",
111
- "@mongrov/types": "0.10.0"
111
+ "@mongrov/types": "0.11.0"
112
112
  },
113
113
  "scripts": {
114
114
  "build": "tsc -p tsconfig.build.json",