cry-synced-db-client 0.1.177 → 0.1.179

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/CHANGELOG.md CHANGED
@@ -1,5 +1,59 @@
1
1
  # Versions
2
2
 
3
+ ## 0.1.179 (2026-05-13)
4
+
5
+ ### Non-error `console.*` calls now pass numbers as separate arguments
6
+
7
+ The console-reporting skill was updated to distinguish two flavors of
8
+ Rule 3:
9
+
10
+ - For `console.error` (and error-reporting `console.warn`): interpolate
11
+ critical info into the first-arg string. Grep-friendly single line.
12
+ - For progress / count / duration style writes: separate strings and
13
+ numbers into separate arguments. Dev console renders numbers natively
14
+ and the runtime avoids eager string coercion.
15
+
16
+ Five sites updated:
17
+
18
+ - `RestProxy` timing logs (`operation: 12.34 ms (total: 567.89 ms, count: 42)`)
19
+ in both `restCall` and `findNewerManyStream`.
20
+ - `SyncEngine.uploadDirtyItems` "X dirty entries but 0 resolvable" warn.
21
+ - `SyncEngine.uploadDirtyItems` "X items sent but not acknowledged" warn.
22
+ - `SyncedDb.init` "X dirty record(s) had no matching Dexie main row" warn.
23
+
24
+ `console.error` sites (including the `typeof` debug log in
25
+ `PendingChangesManager`) keep their fully-interpolated form — they
26
+ report errors and grep-friendliness wins there.
27
+
28
+ ## 0.1.178 (2026-05-13)
29
+
30
+ ### Error reason interpolated into every `console.*` tag line
31
+
32
+ Audited all 111 `console.*` calls in `src/` against the
33
+ ts-coding/console-reporting skill (first-arg string + tag prefix + critical
34
+ info in the tag line + template literals + correct severity).
35
+
36
+ The previous pattern across the codebase was
37
+ `console.error("[Tag] X failed:", err)` — the reason lived in the second
38
+ arg, which is grep-unfriendly: a search for the failure message in logs
39
+ required expanding object payloads.
40
+
41
+ Converted ~60 sites to
42
+ `` console.error(`[Tag] X failed: ${err}`, err) `` so the reason appears
43
+ in the same scannable line as the tag while the full error object remains
44
+ attached for devtools inspection.
45
+
46
+ Also fixed:
47
+ - `SyncedDb.findById`: bare `console.error(err)` → tag line first, Error
48
+ object as second arg.
49
+ - `Ebus2ProxyNotifier`: WebSocket error event and server-error payload now
50
+ interpolate `event.type` / `message.error` into the tag line.
51
+ - `PendingChangesManager`: `_id` object-type debug log now puts the
52
+ `typeof` value in the tag line, not as a separate arg.
53
+
54
+ Pure log-message reshaping — no behavior change. Test suite 728 bun + 18
55
+ vitest still passing.
56
+
3
57
  ## 0.1.177 (2026-05-13)
4
58
 
5
59
  Hot-path micro-optimizations from a ts-coding skill audit. Five small wins,
package/dist/index.js CHANGED
@@ -765,14 +765,14 @@ var InMemManager = class {
765
765
  try {
766
766
  metadatas = config.onObjectsUpdated(items);
767
767
  } catch (err) {
768
- console.error("[InMem] onObjectsUpdated callback failed:", err);
768
+ console.error(`[InMem] onObjectsUpdated callback failed: ${err}`, err);
769
769
  return;
770
770
  }
771
771
  } else if (config.onObjectUpdated) {
772
772
  try {
773
773
  metadatas = items.map((item) => config.onObjectUpdated(item));
774
774
  } catch (err) {
775
- console.error("[InMem] onObjectUpdated callback failed:", err);
775
+ console.error(`[InMem] onObjectUpdated callback failed: ${err}`, err);
776
776
  return;
777
777
  }
778
778
  } else {
@@ -805,14 +805,14 @@ var InMemManager = class {
805
805
  try {
806
806
  metadatas = config.onObjectsUpdated(items);
807
807
  } catch (err) {
808
- console.error("[InMem] onObjectsUpdated callback failed:", err);
808
+ console.error(`[InMem] onObjectsUpdated callback failed: ${err}`, err);
809
809
  return;
810
810
  }
811
811
  } else if (config.onObjectUpdated) {
812
812
  try {
813
813
  metadatas = items.map((item) => config.onObjectUpdated(item));
814
814
  } catch (err) {
815
- console.error("[InMem] onObjectUpdated callback failed:", err);
815
+ console.error(`[InMem] onObjectUpdated callback failed: ${err}`, err);
816
816
  return;
817
817
  }
818
818
  } else {
@@ -1078,7 +1078,7 @@ var LeaderElectionManager = class {
1078
1078
  try {
1079
1079
  this.leaderReelectionChannel.postMessage({ type: "reelect-leader" });
1080
1080
  } catch (err) {
1081
- console.error("[LeaderElection] Failed to broadcast leader reelection:", err);
1081
+ console.error(`[LeaderElection] Failed to broadcast leader reelection: ${err}`, err);
1082
1082
  }
1083
1083
  }
1084
1084
  }
@@ -1089,7 +1089,7 @@ var LeaderElectionManager = class {
1089
1089
  try {
1090
1090
  this.callbacks.onBecameLeader();
1091
1091
  } catch (err) {
1092
- console.error("[LeaderElection] onBecameLeader callback failed:", err);
1092
+ console.error(`[LeaderElection] onBecameLeader callback failed: ${err}`, err);
1093
1093
  }
1094
1094
  }
1095
1095
  }
@@ -1100,7 +1100,7 @@ var LeaderElectionManager = class {
1100
1100
  try {
1101
1101
  this.callbacks.onLostLeadership();
1102
1102
  } catch (err) {
1103
- console.error("[LeaderElection] onLostLeadership callback failed:", err);
1103
+ console.error(`[LeaderElection] onLostLeadership callback failed: ${err}`, err);
1104
1104
  }
1105
1105
  }
1106
1106
  }
@@ -1109,7 +1109,7 @@ var LeaderElectionManager = class {
1109
1109
  try {
1110
1110
  this.callbacks.onInfrastructureError(type, message, error);
1111
1111
  } catch (err) {
1112
- console.error("[LeaderElection] onInfrastructureError callback failed:", err);
1112
+ console.error(`[LeaderElection] onInfrastructureError callback failed: ${err}`, err);
1113
1113
  }
1114
1114
  }
1115
1115
  }
@@ -1234,7 +1234,7 @@ var CrossTabSyncManager = class {
1234
1234
  try {
1235
1235
  this.metaUpdateChannel.postMessage(payload);
1236
1236
  } catch (err) {
1237
- console.error("[CrossTabSync] Failed to broadcast meta update:", err);
1237
+ console.error(`[CrossTabSync] Failed to broadcast meta update: ${err}`, err);
1238
1238
  }
1239
1239
  }
1240
1240
  this.pendingBroadcasts.clear();
@@ -1328,7 +1328,7 @@ var CrossTabSyncManager = class {
1328
1328
  };
1329
1329
  this.callbacks.onCrossTabSync(info);
1330
1330
  } catch (err) {
1331
- console.error("[CrossTabSync] onCrossTabSync callback failed:", err);
1331
+ console.error(`[CrossTabSync] onCrossTabSync callback failed: ${err}`, err);
1332
1332
  }
1333
1333
  }
1334
1334
  } catch (err) {
@@ -1348,7 +1348,7 @@ var CrossTabSyncManager = class {
1348
1348
  try {
1349
1349
  this.metaUpdateChannel.postMessage(payload);
1350
1350
  } catch (err) {
1351
- console.error("[CrossTabSync] Failed to broadcast reload:", err);
1351
+ console.error(`[CrossTabSync] Failed to broadcast reload: ${err}`, err);
1352
1352
  }
1353
1353
  }
1354
1354
  callOnInfrastructureError(type, message, error) {
@@ -1356,7 +1356,7 @@ var CrossTabSyncManager = class {
1356
1356
  try {
1357
1357
  this.callbacks.onInfrastructureError(type, message, error);
1358
1358
  } catch (err) {
1359
- console.error("[CrossTabSync] onInfrastructureError callback failed:", err);
1359
+ console.error(`[CrossTabSync] onInfrastructureError callback failed: ${err}`, err);
1360
1360
  }
1361
1361
  }
1362
1362
  }
@@ -1422,7 +1422,7 @@ var ConnectionManager = class {
1422
1422
  } else {
1423
1423
  this.deps.tryBecomeLeader();
1424
1424
  this.tryGoOnline().catch((err) => {
1425
- console.error("[Connection] Failed to go online after forceOffline release:", err);
1425
+ console.error(`[Connection] Failed to go online after forceOffline release: ${err}`, err);
1426
1426
  });
1427
1427
  }
1428
1428
  }
@@ -1446,7 +1446,7 @@ var ConnectionManager = class {
1446
1446
  "ping"
1447
1447
  );
1448
1448
  } catch (err) {
1449
- console.warn("[Connection] tryGoOnline: ping failed:", err);
1449
+ console.warn(`[Connection] tryGoOnline: ping failed: ${err}`, err);
1450
1450
  this.online = false;
1451
1451
  return;
1452
1452
  }
@@ -1464,7 +1464,7 @@ var ConnectionManager = class {
1464
1464
  try {
1465
1465
  await this.deps.sync("INITIAL SYNC");
1466
1466
  } catch (err) {
1467
- console.warn("[Connection] INITIAL SYNC after tryGoOnline failed (stays online):", err);
1467
+ console.warn(`[Connection] INITIAL SYNC after tryGoOnline failed (stays online): ${err}`, err);
1468
1468
  }
1469
1469
  } finally {
1470
1470
  this.tryGoOnlineInFlight = false;
@@ -1480,7 +1480,7 @@ var ConnectionManager = class {
1480
1480
  this.autoSyncTimer = setInterval(() => {
1481
1481
  if (this.forcedOffline || !this.online) return;
1482
1482
  this.deps.sync(`interval ${intervalMs}ms`).catch((err) => {
1483
- console.error("[Connection] Auto-sync failed:", err);
1483
+ console.error(`[Connection] Auto-sync failed: ${err}`, err);
1484
1484
  });
1485
1485
  }, intervalMs);
1486
1486
  }
@@ -1489,7 +1489,7 @@ var ConnectionManager = class {
1489
1489
  this.reconnectTimer = setInterval(() => {
1490
1490
  if (this.forcedOffline || this.online || this.tryGoOnlineInFlight) return;
1491
1491
  this.tryGoOnline().catch((err) => {
1492
- console.error("[Connection] Reconnect tryGoOnline failed:", err);
1492
+ console.error(`[Connection] Reconnect tryGoOnline failed: ${err}`, err);
1493
1493
  });
1494
1494
  }, retryMs);
1495
1495
  }
@@ -1573,7 +1573,7 @@ var ConnectionManager = class {
1573
1573
  try {
1574
1574
  this.callbacks.onInfrastructureError(type, message, error);
1575
1575
  } catch (err) {
1576
- console.error("[Connection] onInfrastructureError callback failed:", err);
1576
+ console.error(`[Connection] onInfrastructureError callback failed: ${err}`, err);
1577
1577
  }
1578
1578
  }
1579
1579
  }
@@ -1586,7 +1586,7 @@ var ConnectionManager = class {
1586
1586
  try {
1587
1587
  this.callbacks.onSyncFailed(reason);
1588
1588
  } catch (err) {
1589
- console.error("[Connection] onSyncFailed callback failed:", err);
1589
+ console.error(`[Connection] onSyncFailed callback failed: ${err}`, err);
1590
1590
  }
1591
1591
  }
1592
1592
  }
@@ -1598,7 +1598,7 @@ var ConnectionManager = class {
1598
1598
  try {
1599
1599
  this.callbacks.onWsConnect();
1600
1600
  } catch (err) {
1601
- console.error("[Connection] onWsConnect callback failed:", err);
1601
+ console.error(`[Connection] onWsConnect callback failed: ${err}`, err);
1602
1602
  }
1603
1603
  }
1604
1604
  }
@@ -1610,7 +1610,7 @@ var ConnectionManager = class {
1610
1610
  try {
1611
1611
  this.callbacks.onWsDisconnect(reason);
1612
1612
  } catch (err) {
1613
- console.error("[Connection] onWsDisconnect callback failed:", err);
1613
+ console.error(`[Connection] onWsDisconnect callback failed: ${err}`, err);
1614
1614
  }
1615
1615
  }
1616
1616
  this.reportInfrastructureError(
@@ -1626,7 +1626,7 @@ var ConnectionManager = class {
1626
1626
  try {
1627
1627
  this.callbacks.onWsReconnect(attempt);
1628
1628
  } catch (err) {
1629
- console.error("[Connection] onWsReconnect callback failed:", err);
1629
+ console.error(`[Connection] onWsReconnect callback failed: ${err}`, err);
1630
1630
  }
1631
1631
  }
1632
1632
  }
@@ -2725,7 +2725,7 @@ var PendingChangesManager = class {
2725
2725
  calledFrom: pending.calledFrom
2726
2726
  });
2727
2727
  } catch (err) {
2728
- console.error("[PendingChanges] onDexieWriteRequest callback failed:", err);
2728
+ console.error(`[PendingChanges] onDexieWriteRequest callback failed: ${err}`, err);
2729
2729
  }
2730
2730
  }
2731
2731
  if (existing) {
@@ -2740,7 +2740,7 @@ var PendingChangesManager = class {
2740
2740
  // ensure _id is after spread
2741
2741
  });
2742
2742
  if (typeof insertData._id === "object") {
2743
- console.error(`[PendingChanges] Dexie: _id is object type in ${pending.collection}:`, typeof insertData._id, insertData._id);
2743
+ console.error(`[PendingChanges] Dexie: _id is object type (${typeof insertData._id}) in ${pending.collection}`, insertData._id);
2744
2744
  }
2745
2745
  await this.deps.dexieDb.insert(pending.collection, insertData);
2746
2746
  }
@@ -2754,7 +2754,7 @@ var PendingChangesManager = class {
2754
2754
  calledFrom: pending.calledFrom
2755
2755
  });
2756
2756
  } catch (err) {
2757
- console.error("[PendingChanges] onDexieWriteResult callback failed:", err);
2757
+ console.error(`[PendingChanges] onDexieWriteResult callback failed: ${err}`, err);
2758
2758
  }
2759
2759
  }
2760
2760
  clearPendingWrite(this.tenant, pending.collection, pending.id);
@@ -2768,12 +2768,12 @@ var PendingChangesManager = class {
2768
2768
  calledFrom: pending.calledFrom
2769
2769
  });
2770
2770
  } catch (err) {
2771
- console.error("[PendingChanges] onLocalstorageWriteResult callback failed:", err);
2771
+ console.error(`[PendingChanges] onLocalstorageWriteResult callback failed: ${err}`, err);
2772
2772
  }
2773
2773
  }
2774
2774
  this.scheduleRestUpload();
2775
2775
  } catch (err) {
2776
- console.error("[PendingChanges] Failed to write to Dexie:", err);
2776
+ console.error(`[PendingChanges] Failed to write to Dexie: ${err}`, err);
2777
2777
  if (this.callbacks.onDexieWriteResult) {
2778
2778
  try {
2779
2779
  this.callbacks.onDexieWriteResult({
@@ -2785,7 +2785,7 @@ var PendingChangesManager = class {
2785
2785
  calledFrom: pending.calledFrom
2786
2786
  });
2787
2787
  } catch (callbackErr) {
2788
- console.error("[PendingChanges] onDexieWriteResult callback failed:", callbackErr);
2788
+ console.error(`[PendingChanges] onDexieWriteResult callback failed: ${callbackErr}`, callbackErr);
2789
2789
  }
2790
2790
  }
2791
2791
  const newRetryCount = pending.retryCount + 1;
@@ -2827,7 +2827,7 @@ var PendingChangesManager = class {
2827
2827
  try {
2828
2828
  await this.deps.uploadDirtyItems();
2829
2829
  } catch (err) {
2830
- console.error("[PendingChanges] REST upload failed:", err);
2830
+ console.error(`[PendingChanges] REST upload failed: ${err}`, err);
2831
2831
  } finally {
2832
2832
  this.isUploadingToRest = false;
2833
2833
  resolveUpload();
@@ -3236,7 +3236,7 @@ var _SyncEngine = class _SyncEngine {
3236
3236
  });
3237
3237
  } catch (err) {
3238
3238
  const reason = err instanceof Error ? err.message : String(err);
3239
- console.error("[SyncEngine] Sync failed:", err);
3239
+ console.error(`[SyncEngine] Sync failed: ${err}`, err);
3240
3240
  this.deps.onSyncFailed(`Sync failed: ${reason}`);
3241
3241
  this.callOnSyncEnd({
3242
3242
  durationMs: Date.now() - startTime,
@@ -3298,7 +3298,9 @@ var _SyncEngine = class _SyncEngine {
3298
3298
  }
3299
3299
  if (updates.length === 0) {
3300
3300
  console.warn(
3301
- `[SyncEngine] uploadDirtyItems: ${collectionName} has ${dirtyChanges.length} dirty entries but 0 resolvable items`,
3301
+ `[SyncEngine] uploadDirtyItems: ${collectionName} has`,
3302
+ dirtyChanges.length,
3303
+ "dirty entries but 0 resolvable items",
3302
3304
  skipped
3303
3305
  );
3304
3306
  if (this.callbacks.onUploadSkip) {
@@ -3313,7 +3315,7 @@ var _SyncEngine = class _SyncEngine {
3313
3315
  timestamp: /* @__PURE__ */ new Date()
3314
3316
  });
3315
3317
  } catch (err) {
3316
- console.error("[SyncEngine] onUploadSkip callback failed:", err);
3318
+ console.error(`[SyncEngine] onUploadSkip callback failed: ${err}`, err);
3317
3319
  }
3318
3320
  }
3319
3321
  continue;
@@ -3330,7 +3332,7 @@ var _SyncEngine = class _SyncEngine {
3330
3332
  timestamp: /* @__PURE__ */ new Date()
3331
3333
  });
3332
3334
  } catch (err) {
3333
- console.error("[SyncEngine] onUploadSkip callback failed:", err);
3335
+ console.error(`[SyncEngine] onUploadSkip callback failed: ${err}`, err);
3334
3336
  }
3335
3337
  }
3336
3338
  const mappedUpdates = [];
@@ -3571,7 +3573,9 @@ var _SyncEngine = class _SyncEngine {
3571
3573
  }
3572
3574
  if (unacked.length > 0) {
3573
3575
  console.warn(
3574
- `[SyncEngine] uploadDirtyItems: ${collection}: ${unacked.length} items sent but not acknowledged:`,
3576
+ `[SyncEngine] uploadDirtyItems: ${collection}:`,
3577
+ unacked.length,
3578
+ "items sent but not acknowledged:",
3575
3579
  unacked
3576
3580
  );
3577
3581
  }
@@ -3805,7 +3809,7 @@ var _SyncEngine = class _SyncEngine {
3805
3809
  timestamp: /* @__PURE__ */ new Date()
3806
3810
  });
3807
3811
  } catch (err) {
3808
- console.error("[SyncEngine] onConflictResolved callback failed:", err);
3812
+ console.error(`[SyncEngine] onConflictResolved callback failed: ${err}`, err);
3809
3813
  }
3810
3814
  }
3811
3815
  return resolved;
@@ -3819,7 +3823,7 @@ var _SyncEngine = class _SyncEngine {
3819
3823
  try {
3820
3824
  fn(info);
3821
3825
  } catch (err) {
3822
- console.error("[SyncEngine] Callback failed:", err);
3826
+ console.error(`[SyncEngine] Callback failed: ${err}`, err);
3823
3827
  }
3824
3828
  }
3825
3829
  }
@@ -3828,7 +3832,7 @@ var _SyncEngine = class _SyncEngine {
3828
3832
  try {
3829
3833
  this.callbacks.onSyncStart(info);
3830
3834
  } catch (err) {
3831
- console.error("[SyncEngine] onSyncStart callback failed:", err);
3835
+ console.error(`[SyncEngine] onSyncStart callback failed: ${err}`, err);
3832
3836
  }
3833
3837
  }
3834
3838
  }
@@ -3837,7 +3841,7 @@ var _SyncEngine = class _SyncEngine {
3837
3841
  try {
3838
3842
  this.callbacks.onSyncEnd(info);
3839
3843
  } catch (err) {
3840
- console.error("[SyncEngine] onSyncEnd callback failed:", err);
3844
+ console.error(`[SyncEngine] onSyncEnd callback failed: ${err}`, err);
3841
3845
  }
3842
3846
  }
3843
3847
  }
@@ -3850,7 +3854,7 @@ var _SyncEngine = class _SyncEngine {
3850
3854
  calledFrom
3851
3855
  });
3852
3856
  } catch (err) {
3853
- console.error("[SyncEngine] onFindNewerManyCall callback failed:", err);
3857
+ console.error(`[SyncEngine] onFindNewerManyCall callback failed: ${err}`, err);
3854
3858
  }
3855
3859
  }
3856
3860
  }
@@ -3869,7 +3873,7 @@ var _SyncEngine = class _SyncEngine {
3869
3873
  ttfbMs: metrics == null ? void 0 : metrics.ttfbMs
3870
3874
  });
3871
3875
  } catch (err) {
3872
- console.error("[SyncEngine] onFindNewerManyResult callback failed:", err);
3876
+ console.error(`[SyncEngine] onFindNewerManyResult callback failed: ${err}`, err);
3873
3877
  }
3874
3878
  }
3875
3879
  }
@@ -3882,7 +3886,7 @@ var _SyncEngine = class _SyncEngine {
3882
3886
  calledFrom
3883
3887
  });
3884
3888
  } catch (err) {
3885
- console.error("[SyncEngine] onServerWriteRequest callback failed:", err);
3889
+ console.error(`[SyncEngine] onServerWriteRequest callback failed: ${err}`, err);
3886
3890
  }
3887
3891
  }
3888
3892
  }
@@ -3897,7 +3901,7 @@ var _SyncEngine = class _SyncEngine {
3897
3901
  calledFrom
3898
3902
  });
3899
3903
  } catch (err) {
3900
- console.error("[SyncEngine] onServerWriteResult callback failed:", err);
3904
+ console.error(`[SyncEngine] onServerWriteResult callback failed: ${err}`, err);
3901
3905
  }
3902
3906
  }
3903
3907
  }
@@ -3918,7 +3922,7 @@ var _SyncEngine = class _SyncEngine {
3918
3922
  timestamp
3919
3923
  });
3920
3924
  } catch (err) {
3921
- console.error("[SyncEngine] onServerSyncWrite callback failed:", err);
3925
+ console.error(`[SyncEngine] onServerSyncWrite callback failed: ${err}`, err);
3922
3926
  }
3923
3927
  }
3924
3928
  };
@@ -4201,7 +4205,7 @@ var ServerUpdateHandler = class {
4201
4205
  timestamp: /* @__PURE__ */ new Date()
4202
4206
  });
4203
4207
  } catch (err) {
4204
- console.error("[ServerUpdateHandler] onWsNotification callback failed:", err);
4208
+ console.error(`[ServerUpdateHandler] onWsNotification callback failed: ${err}`, err);
4205
4209
  }
4206
4210
  }
4207
4211
  }
@@ -4283,7 +4287,7 @@ var WakeSyncManager = class {
4283
4287
  timestamp: /* @__PURE__ */ new Date()
4284
4288
  });
4285
4289
  } catch (err) {
4286
- console.error("[WakeSync] onWakeSync callback failed:", err);
4290
+ console.error(`[WakeSync] onWakeSync callback failed: ${err}`, err);
4287
4291
  }
4288
4292
  }
4289
4293
  this.deps.sync(`wake-sync:${trigger}`).catch((err) => {
@@ -4356,7 +4360,7 @@ var NetworkStatusManager = class {
4356
4360
  try {
4357
4361
  this.callbacks.onBrowserNetworkChange(info);
4358
4362
  } catch (err) {
4359
- console.error("[NetworkStatus] onBrowserNetworkChange callback failed:", err);
4363
+ console.error(`[NetworkStatus] onBrowserNetworkChange callback failed: ${err}`, err);
4360
4364
  }
4361
4365
  }
4362
4366
  if (finalOnlineState) {
@@ -4364,7 +4368,7 @@ var NetworkStatusManager = class {
4364
4368
  try {
4365
4369
  this.callbacks.onBrowserOnline();
4366
4370
  } catch (err) {
4367
- console.error("[NetworkStatus] onBrowserOnline callback failed:", err);
4371
+ console.error(`[NetworkStatus] onBrowserOnline callback failed: ${err}`, err);
4368
4372
  }
4369
4373
  }
4370
4374
  } else {
@@ -4372,12 +4376,12 @@ var NetworkStatusManager = class {
4372
4376
  try {
4373
4377
  this.callbacks.onBrowserOffline();
4374
4378
  } catch (err) {
4375
- console.error("[NetworkStatus] onBrowserOffline callback failed:", err);
4379
+ console.error(`[NetworkStatus] onBrowserOffline callback failed: ${err}`, err);
4376
4380
  }
4377
4381
  }
4378
4382
  }
4379
4383
  this.deps.setOnline(finalOnlineState).catch((err) => {
4380
- console.error("[NetworkStatus] Failed to set online status:", err);
4384
+ console.error(`[NetworkStatus] Failed to set online status: ${err}`, err);
4381
4385
  });
4382
4386
  }, this.debounceMs);
4383
4387
  }
@@ -4443,14 +4447,14 @@ var _SyncedDb = class _SyncedDb {
4443
4447
  onBecameLeader: () => {
4444
4448
  if (this.initialized && !this.connectionManager.isOnline() && !this.connectionManager.isForcedOffline()) {
4445
4449
  this.connectionManager.tryGoOnline().catch((err) => {
4446
- console.error("[SyncedDb] tryGoOnline on becameLeader failed:", err);
4450
+ console.error(`[SyncedDb] tryGoOnline on becameLeader failed: ${err}`, err);
4447
4451
  });
4448
4452
  }
4449
4453
  if (config.onBecameLeader) {
4450
4454
  try {
4451
4455
  config.onBecameLeader();
4452
4456
  } catch (err) {
4453
- console.error("[SyncedDb] onBecameLeader callback failed:", err);
4457
+ console.error(`[SyncedDb] onBecameLeader callback failed: ${err}`, err);
4454
4458
  }
4455
4459
  }
4456
4460
  },
@@ -4784,7 +4788,7 @@ var _SyncedDb = class _SyncedDb {
4784
4788
  try {
4785
4789
  this.onDatabaseCreated();
4786
4790
  } catch (err) {
4787
- console.error("[SyncedDb] onDatabaseCreated callback failed:", err);
4791
+ console.error(`[SyncedDb] onDatabaseCreated callback failed: ${err}`, err);
4788
4792
  }
4789
4793
  }
4790
4794
  await this.pendingChanges.recoverPendingWrites();
@@ -4842,7 +4846,7 @@ var _SyncedDb = class _SyncedDb {
4842
4846
  this.visibilityFlushHandler = () => {
4843
4847
  if (document.visibilityState !== "hidden") return;
4844
4848
  this.flushToServer("visibility-hidden").catch((err) => {
4845
- console.warn("[SyncedDb] flushToServer on visibility-hidden failed:", err == null ? void 0 : err.message);
4849
+ console.warn(`[SyncedDb] flushToServer on visibility-hidden failed: ${err == null ? void 0 : err.message}`, err);
4846
4850
  });
4847
4851
  };
4848
4852
  document.addEventListener("visibilitychange", this.visibilityFlushHandler);
@@ -4988,7 +4992,7 @@ var _SyncedDb = class _SyncedDb {
4988
4992
  this.assertCollection(collection);
4989
4993
  if (!id) {
4990
4994
  const err = new Error(`[SyncedDb] findById ${collection} no id ${id}`);
4991
- console.error(err);
4995
+ console.error(`[SyncedDb] findById ${collection}: no id provided`, err);
4992
4996
  return null;
4993
4997
  }
4994
4998
  id = this.normalizeId(id, "findById", collection);
@@ -5562,11 +5566,11 @@ var _SyncedDb = class _SyncedDb {
5562
5566
  const now = /* @__PURE__ */ new Date();
5563
5567
  if (!this._lastFullSyncDate) {
5564
5568
  this._setLastInitialSync(now).catch((err) => {
5565
- console.error("[SyncedDb] Failed to persist lastInitialSync:", err);
5569
+ console.error(`[SyncedDb] Failed to persist lastInitialSync: ${err}`, err);
5566
5570
  });
5567
5571
  }
5568
5572
  this._setLastFullSync(now).catch((err) => {
5569
- console.error("[SyncedDb] Failed to persist lastFullSync:", err);
5573
+ console.error(`[SyncedDb] Failed to persist lastFullSync: ${err}`, err);
5570
5574
  });
5571
5575
  }
5572
5576
  } catch (err) {
@@ -5585,7 +5589,7 @@ var _SyncedDb = class _SyncedDb {
5585
5589
  );
5586
5590
  await this._persistEvictionTimestamp();
5587
5591
  } catch (err) {
5588
- console.error("[SyncedDb] [evict] phase 3 failed:", err);
5592
+ console.error(`[SyncedDb] [evict] phase 3 failed: ${err}`, err);
5589
5593
  }
5590
5594
  }
5591
5595
  }
@@ -6321,7 +6325,7 @@ var _SyncedDb = class _SyncedDb {
6321
6325
  try {
6322
6326
  fn(info);
6323
6327
  } catch (err) {
6324
- console.error("[SyncedDb] Callback failed:", err);
6328
+ console.error(`[SyncedDb] Callback failed: ${err}`, err);
6325
6329
  }
6326
6330
  }
6327
6331
  }
@@ -6409,7 +6413,9 @@ var _SyncedDb = class _SyncedDb {
6409
6413
  }
6410
6414
  if (orphanCount > 0) {
6411
6415
  console.warn(
6412
- `[SyncedDb] init(${name}): ${orphanCount} dirty record(s) had no matching Dexie main row \u2014 included in in-mem pending next sync.`
6416
+ `[SyncedDb] init(${name}):`,
6417
+ orphanCount,
6418
+ "dirty record(s) had no matching Dexie main row \u2014 included in in-mem pending next sync."
6413
6419
  );
6414
6420
  }
6415
6421
  allItems.length = 0;
@@ -9385,7 +9391,13 @@ var RestProxy = class {
9385
9391
  this._requestCount++;
9386
9392
  if (this.timeRequestsPrint) {
9387
9393
  console.log(
9388
- `[RestProxy] ${operation}: ${elapsed.toFixed(2)}ms (total: ${this._totalRequestMs.toFixed(2)}ms, count: ${this._requestCount})`
9394
+ `[RestProxy] ${operation}:`,
9395
+ elapsed.toFixed(2),
9396
+ "ms (total:",
9397
+ this._totalRequestMs.toFixed(2),
9398
+ "ms, count:",
9399
+ this._requestCount,
9400
+ ")"
9389
9401
  );
9390
9402
  }
9391
9403
  }
@@ -9517,7 +9529,13 @@ var RestProxy = class {
9517
9529
  this._requestCount++;
9518
9530
  if (this.timeRequestsPrint) {
9519
9531
  console.log(
9520
- `[RestProxy] findNewerManyStream: ${elapsed.toFixed(2)}ms (total: ${this._totalRequestMs.toFixed(2)}ms, count: ${this._requestCount})`
9532
+ "[RestProxy] findNewerManyStream:",
9533
+ elapsed.toFixed(2),
9534
+ "ms (total:",
9535
+ this._totalRequestMs.toFixed(2),
9536
+ "ms, count:",
9537
+ this._requestCount,
9538
+ ")"
9521
9539
  );
9522
9540
  }
9523
9541
  }
@@ -9934,7 +9952,7 @@ var Ebus2ProxyServerUpdateNotifier = class {
9934
9952
  try {
9935
9953
  callback();
9936
9954
  } catch (err) {
9937
- console.error("[Ebus2ProxyNotifier] onWsConnect callback failed:", err);
9955
+ console.error(`[Ebus2ProxyNotifier] onWsConnect callback failed: ${err}`, err);
9938
9956
  }
9939
9957
  }
9940
9958
  }
@@ -9949,7 +9967,7 @@ var Ebus2ProxyServerUpdateNotifier = class {
9949
9967
  try {
9950
9968
  callback(reason);
9951
9969
  } catch (err) {
9952
- console.error("[Ebus2ProxyNotifier] onWsDisconnect callback failed:", err);
9970
+ console.error(`[Ebus2ProxyNotifier] onWsDisconnect callback failed: ${err}`, err);
9953
9971
  }
9954
9972
  }
9955
9973
  }
@@ -9958,7 +9976,7 @@ var Ebus2ProxyServerUpdateNotifier = class {
9958
9976
  }
9959
9977
  }
9960
9978
  handleError(event) {
9961
- console.error("[Ebus2ProxyNotifier] WebSocket error:", event);
9979
+ console.error(`[Ebus2ProxyNotifier] WebSocket error: ${event.type}`, event);
9962
9980
  }
9963
9981
  handleMessage(event) {
9964
9982
  try {
@@ -9987,11 +10005,11 @@ var Ebus2ProxyServerUpdateNotifier = class {
9987
10005
  }
9988
10006
  break;
9989
10007
  case "error":
9990
- console.error("[Ebus2ProxyNotifier] WebSocket server error:", message.error);
10008
+ console.error(`[Ebus2ProxyNotifier] WebSocket server error: ${message.error}`, message.error);
9991
10009
  break;
9992
10010
  }
9993
10011
  } catch (err) {
9994
- console.error("[Ebus2ProxyNotifier] Failed to parse WebSocket message:", err);
10012
+ console.error(`[Ebus2ProxyNotifier] Failed to parse WebSocket message: ${err}`, err);
9995
10013
  }
9996
10014
  }
9997
10015
  handleChannelMessage(message) {
@@ -9999,7 +10017,7 @@ var Ebus2ProxyServerUpdateNotifier = class {
9999
10017
  try {
10000
10018
  this.onServicesChange(message.data);
10001
10019
  } catch (err) {
10002
- console.error("[Ebus2ProxyNotifier] onServicesChange callback failed:", err);
10020
+ console.error(`[Ebus2ProxyNotifier] onServicesChange callback failed: ${err}`, err);
10003
10021
  }
10004
10022
  return;
10005
10023
  }
@@ -10016,14 +10034,14 @@ var Ebus2ProxyServerUpdateNotifier = class {
10016
10034
  try {
10017
10035
  this.onWsNotification(payload);
10018
10036
  } catch (err) {
10019
- console.error("[Ebus2ProxyNotifier] onWsNotification callback failed:", err);
10037
+ console.error(`[Ebus2ProxyNotifier] onWsNotification callback failed: ${err}`, err);
10020
10038
  }
10021
10039
  }
10022
10040
  for (const callback of this.callbacks) {
10023
10041
  try {
10024
10042
  callback(payload);
10025
10043
  } catch (err) {
10026
- console.error("[Ebus2ProxyNotifier] ServerUpdateCallback failed:", err);
10044
+ console.error(`[Ebus2ProxyNotifier] ServerUpdateCallback failed: ${err}`, err);
10027
10045
  }
10028
10046
  }
10029
10047
  }
@@ -10042,14 +10060,14 @@ var Ebus2ProxyServerUpdateNotifier = class {
10042
10060
  try {
10043
10061
  callback(this.reconnectAttempt);
10044
10062
  } catch (err) {
10045
- console.error("[Ebus2ProxyNotifier] onWsReconnect callback failed:", err);
10063
+ console.error(`[Ebus2ProxyNotifier] onWsReconnect callback failed: ${err}`, err);
10046
10064
  }
10047
10065
  }
10048
10066
  this.reconnectTimer = setTimeout(() => {
10049
10067
  this.reconnectTimer = void 0;
10050
10068
  if (this.shouldReconnect && !this.forcedOffline) {
10051
10069
  this.createWebSocket().catch((err) => {
10052
- console.error("[Ebus2ProxyNotifier] Reconnection failed:", err);
10070
+ console.error(`[Ebus2ProxyNotifier] Reconnection failed: ${err}`, err);
10053
10071
  this.currentReconnectDelay = Math.min(
10054
10072
  this.currentReconnectDelay * 2,
10055
10073
  this.maxReconnectDelayMs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cry-synced-db-client",
3
- "version": "0.1.177",
3
+ "version": "0.1.179",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",