@lunora/client 1.0.0-alpha.53 → 1.0.0-alpha.54

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
@@ -552,6 +552,14 @@ interface QueuedMutation<T = unknown> {
552
552
  * eviction), so the client can surface the dropped write on its
553
553
  * terminal-verdict observer even when the entry has no live awaiter (a hydrated
554
554
  * record). The `error` carries the `OFFLINE_QUEUE_OVERFLOW` code.
555
+ *
556
+ * The `sdks/*` ports deliberately do NOT mirror this shape — they return the
557
+ * discarded entry from `enqueue`/`hydrate`/`drainConflict`/`clear` instead,
558
+ * because they call the queue with a real lock held and settling a write needs
559
+ * that same lock, which self-deadlocks a non-reentrant one. Keep the callback
560
+ * here: this client is single-threaded, so the hazard does not exist, and an
561
+ * observer the queue fires itself is what covers the case a return value's
562
+ * consumer can quietly miss — a hydrated entry whose `reject` is a no-op.
555
563
  */
556
564
  type EvictHandler = (entry: QueuedMutation, error: Error & {
557
565
  code?: string;
package/dist/index.d.ts CHANGED
@@ -552,6 +552,14 @@ interface QueuedMutation<T = unknown> {
552
552
  * eviction), so the client can surface the dropped write on its
553
553
  * terminal-verdict observer even when the entry has no live awaiter (a hydrated
554
554
  * record). The `error` carries the `OFFLINE_QUEUE_OVERFLOW` code.
555
+ *
556
+ * The `sdks/*` ports deliberately do NOT mirror this shape — they return the
557
+ * discarded entry from `enqueue`/`hydrate`/`drainConflict`/`clear` instead,
558
+ * because they call the queue with a real lock held and settling a write needs
559
+ * that same lock, which self-deadlocks a non-reentrant one. Keep the callback
560
+ * here: this client is single-threaded, so the hazard does not exist, and an
561
+ * observer the queue fires itself is what covers the case a return value's
562
+ * consumer can quietly miss — a hydrated entry whose `reject` is a no-op.
555
563
  */
556
564
  type EvictHandler = (entry: QueuedMutation, error: Error & {
557
565
  code?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lunora/client",
3
- "version": "1.0.0-alpha.53",
3
+ "version": "1.0.0-alpha.54",
4
4
  "description": "Lunora browser SDK: WebSocket transport, optimistic updates, and an offline mutation queue",
5
5
  "keywords": [
6
6
  "cloudflare",