@absolutejs/sync 2.2.0 → 2.2.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.
package/dist/index.js CHANGED
@@ -3510,5 +3510,5 @@ export {
3510
3510
  createPresenceHub
3511
3511
  };
3512
3512
 
3513
- //# debugId=118C044CD5328F8B64756E2164756E21
3513
+ //# debugId=A1FB7830183D82D164756E2164756E21
3514
3514
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -22,6 +22,6 @@
22
22
  "/**\n * Presence — ephemeral, room-scoped state shared over the live socket (who's\n * online, who's typing, cursor positions). Unlike collections it is **not**\n * persisted: it lives only while a member is joined, and a member's state is\n * removed (and peers notified) the moment it leaves or its connection drops.\n *\n * A `room` is any string (a document id, a channel). Each `member` is one\n * participant (typically one connection) with a `state` it owns and updates;\n * everyone in the room sees the member set and its changes.\n */\n\nexport type PresenceMember<S = unknown> = { id: string; state: S };\n\n/** What changed in a room: members that joined, updated state, or left. */\nexport type PresenceDiff<S = unknown> = {\n\tjoined: PresenceMember<S>[];\n\tupdated: PresenceMember<S>[];\n\tleft: string[];\n};\n\nexport type PresenceHandle<S> = {\n\t/** The room's members at join time (including this one). */\n\tmembers: PresenceMember<S>[];\n\t/** Replace this member's state and notify the rest of the room. */\n\tset: (state: S) => void;\n\t/** Leave the room (remove this member; notify peers). */\n\tleave: () => void;\n};\n\nexport type PresenceHub = {\n\t/**\n\t * Join `room` as `memberId` with `state`; `onDiff` receives every later change\n\t * to the room (not this member's own join). Returns the current members and\n\t * handles to update/leave.\n\t */\n\tjoin: <S>(\n\t\troom: string,\n\t\tmemberId: string,\n\t\tstate: S,\n\t\tonDiff: (diff: PresenceDiff<S>) => void\n\t) => PresenceHandle<S>;\n\t/** Snapshot a room's members without joining. */\n\tmembers: <S = unknown>(room: string) => PresenceMember<S>[];\n\t/** Number of members in a room (0 if none). */\n\tcount: (room: string) => number;\n};\n\ntype RoomMember = {\n\tstate: unknown;\n\tonDiff: (diff: PresenceDiff<unknown>) => void;\n};\n\n/**\n * Create an in-process presence hub. Transport-agnostic (no socket import): the\n * sync connection wires client `presence-*` frames to it and tears down a\n * connection's memberships on close.\n */\nexport const createPresenceHub = (): PresenceHub => {\n\tconst rooms = new Map<string, Map<string, RoomMember>>();\n\n\tconst roomMembers = (room: string): PresenceMember<unknown>[] => {\n\t\tconst members = rooms.get(room);\n\t\tif (members === undefined) {\n\t\t\treturn [];\n\t\t}\n\t\treturn [...members].map(([id, member]) => ({\n\t\t\tid,\n\t\t\tstate: member.state\n\t\t}));\n\t};\n\n\t/** Notify everyone in `room` except the actor that caused the change. */\n\tconst notify = (\n\t\troom: string,\n\t\tdiff: PresenceDiff<unknown>,\n\t\texceptId: string\n\t) => {\n\t\tconst members = rooms.get(room);\n\t\tif (members === undefined) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const [id, member] of members) {\n\t\t\tif (id !== exceptId) {\n\t\t\t\tmember.onDiff(diff);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn {\n\t\tjoin: (room, memberId, state, onDiff) => {\n\t\t\tlet members = rooms.get(room);\n\t\t\tif (members === undefined) {\n\t\t\t\tmembers = new Map();\n\t\t\t\trooms.set(room, members);\n\t\t\t}\n\t\t\tmembers.set(memberId, {\n\t\t\t\tstate,\n\t\t\t\tonDiff: onDiff as (diff: PresenceDiff<unknown>) => void\n\t\t\t});\n\t\t\t// Peers learn this member joined; the joiner gets the snapshot instead.\n\t\t\tnotify(\n\t\t\t\troom,\n\t\t\t\t{ joined: [{ id: memberId, state }], updated: [], left: [] },\n\t\t\t\tmemberId\n\t\t\t);\n\t\t\tconst snapshot = roomMembers(room) as PresenceMember<\n\t\t\t\ttypeof state\n\t\t\t>[];\n\n\t\t\treturn {\n\t\t\t\tmembers: snapshot,\n\t\t\t\tset: (next) => {\n\t\t\t\t\tconst current = rooms.get(room)?.get(memberId);\n\t\t\t\t\tif (current === undefined) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent.state = next;\n\t\t\t\t\tnotify(\n\t\t\t\t\t\troom,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tjoined: [],\n\t\t\t\t\t\t\tupdated: [{ id: memberId, state: next }],\n\t\t\t\t\t\t\tleft: []\n\t\t\t\t\t\t},\n\t\t\t\t\t\tmemberId\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tleave: () => {\n\t\t\t\t\tconst roomNow = rooms.get(room);\n\t\t\t\t\tif (roomNow?.delete(memberId) !== true) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tnotify(\n\t\t\t\t\t\troom,\n\t\t\t\t\t\t{ joined: [], updated: [], left: [memberId] },\n\t\t\t\t\t\tmemberId\n\t\t\t\t\t);\n\t\t\t\t\tif (roomNow.size === 0) {\n\t\t\t\t\t\trooms.delete(room);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tmembers: (room) => roomMembers(room) as PresenceMember<never>[],\n\t\tcount: (room) => rooms.get(room)?.size ?? 0\n\t};\n};\n"
23
23
  ],
24
24
  "mappings": "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",
25
- "debugId": "118C044CD5328F8B64756E2164756E21",
25
+ "debugId": "A1FB7830183D82D164756E2164756E21",
26
26
  "names": []
27
27
  }
@@ -0,0 +1,90 @@
1
+ // @bun
2
+ var __defProp = Object.defineProperty;
3
+ var __returnValue = (v) => v;
4
+ function __exportSetter(name, newValue) {
5
+ this[name] = __returnValue.bind(null, newValue);
6
+ }
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true,
12
+ configurable: true,
13
+ set: __exportSetter.bind(all, name)
14
+ });
15
+ };
16
+ var __require = import.meta.require;
17
+
18
+ // src/writeBehindCache.ts
19
+ var createWriteBehindCache = (options) => {
20
+ const debounceMs = options.debounceMs ?? 250;
21
+ const cache = new Map;
22
+ const timers = new Map;
23
+ const persist = async (key) => {
24
+ timers.delete(key);
25
+ const value = cache.get(key);
26
+ if (value === undefined) {
27
+ return;
28
+ }
29
+ try {
30
+ await options.persist(key, value);
31
+ if (options.evict?.(value, key)) {
32
+ cache.delete(key);
33
+ }
34
+ } catch (error) {
35
+ options.onPersistError?.(error, key);
36
+ }
37
+ };
38
+ const schedulePersist = (key) => {
39
+ if (timers.has(key)) {
40
+ return;
41
+ }
42
+ timers.set(key, setTimeout(() => {
43
+ persist(key);
44
+ }, debounceMs));
45
+ };
46
+ return {
47
+ get: async (key) => {
48
+ const cached = cache.get(key);
49
+ if (cached !== undefined) {
50
+ return cached;
51
+ }
52
+ const loaded = await options.load(key);
53
+ if (loaded !== undefined) {
54
+ cache.set(key, loaded);
55
+ }
56
+ return loaded;
57
+ },
58
+ peek: (key) => cache.get(key),
59
+ has: (key) => cache.has(key),
60
+ set: (key, value) => {
61
+ cache.set(key, value);
62
+ schedulePersist(key);
63
+ },
64
+ delete: async (key) => {
65
+ const timer = timers.get(key);
66
+ if (timer) {
67
+ clearTimeout(timer);
68
+ timers.delete(key);
69
+ }
70
+ cache.delete(key);
71
+ await options.remove?.(key);
72
+ },
73
+ keys: () => cache.keys(),
74
+ values: () => cache.values(),
75
+ size: () => cache.size,
76
+ flush: async () => {
77
+ for (const timer of timers.values()) {
78
+ clearTimeout(timer);
79
+ }
80
+ timers.clear();
81
+ await Promise.all([...cache.keys()].map((key) => persist(key)));
82
+ }
83
+ };
84
+ };
85
+ export {
86
+ createWriteBehindCache
87
+ };
88
+
89
+ //# debugId=4350F6DB7681B74A64756E2164756E21
90
+ //# sourceMappingURL=writeBehindCache.js.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/writeBehindCache.ts"],
4
+ "sourcesContent": [
5
+ "export type WriteBehindCacheOptions<K, V> = {\n\t/**\n\t * Read a value from the durable store on a cache miss. Called at most once per\n\t * key until the entry is evicted.\n\t */\n\tload: (key: K) => Promise<V | undefined> | V | undefined;\n\t/** Persist a value to the durable store. Runs in the background (write-behind). */\n\tpersist: (key: K, value: V) => Promise<void> | void;\n\t/** Remove a value from the durable store. */\n\tremove?: (key: K) => Promise<void> | void;\n\t/**\n\t * Coalesce writes: each key persists at most once per window. A burst of\n\t * `set`s collapses into a single durable write. Defaults to 250ms.\n\t */\n\tdebounceMs?: number;\n\t/**\n\t * After a key persists, return true to drop it from the in-memory cache so the\n\t * cache stays bounded to \"hot\" entries (e.g. evict terminal sessions). The next\n\t * `get` reloads it via `load`. Defaults to never evicting.\n\t */\n\tevict?: (value: V, key: K) => boolean;\n\t/**\n\t * Called when a background persist throws. The cache stays authoritative and the\n\t * key re-persists on its next `set`, so a transient durable-store blip does not\n\t * drop live state. Defaults to a no-op.\n\t */\n\tonPersistError?: (error: unknown, key: K) => void;\n};\n\nexport type WriteBehindCache<K, V> = {\n\t/** Cached value, or load-through from the durable store on a miss. */\n\tget: (key: K) => Promise<V | undefined>;\n\t/** Cached value only — synchronous, never touches the durable store. */\n\tpeek: (key: K) => V | undefined;\n\thas: (key: K) => boolean;\n\t/** Write to memory immediately and schedule a coalesced durable persist. */\n\tset: (key: K, value: V) => void;\n\t/** Drop from cache and the durable store. */\n\tdelete: (key: K) => Promise<void>;\n\tkeys: () => IterableIterator<K>;\n\tvalues: () => IterableIterator<V>;\n\tsize: () => number;\n\t/** Persist every pending key to the durable store now. Call on shutdown. */\n\tflush: () => Promise<void>;\n};\n\n/**\n * Wrap a durable store (Postgres, SQLite, Drizzle, Prisma, file, S3, an HTTP API …)\n * with an in-memory hot cache and write-behind persistence.\n *\n * Reads are served from memory; writes hit memory synchronously and are flushed to\n * the durable store in coalesced background batches. The durable store stays the\n * source of truth for history and cross-instance reads, while a latency-sensitive\n * hot path (a per-frame voice session, presence, cursors, game state) stays fast.\n *\n * This is the \"fast authoritative local state, durable persistence synced behind it\"\n * split a sync engine like Convex makes — without adopting a whole sync-engine\n * backend. Bring your own store via `load`/`persist`/`remove`.\n */\nexport const createWriteBehindCache = <K, V>(\n\toptions: WriteBehindCacheOptions<K, V>\n): WriteBehindCache<K, V> => {\n\tconst debounceMs = options.debounceMs ?? 250;\n\tconst cache = new Map<K, V>();\n\tconst timers = new Map<K, ReturnType<typeof setTimeout>>();\n\n\tconst persist = async (key: K) => {\n\t\ttimers.delete(key);\n\t\tconst value = cache.get(key);\n\t\tif (value === undefined) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tawait options.persist(key, value);\n\t\t\tif (options.evict?.(value, key)) {\n\t\t\t\tcache.delete(key);\n\t\t\t}\n\t\t} catch (error) {\n\t\t\toptions.onPersistError?.(error, key);\n\t\t}\n\t};\n\n\tconst schedulePersist = (key: K) => {\n\t\tif (timers.has(key)) {\n\t\t\treturn;\n\t\t}\n\t\ttimers.set(\n\t\t\tkey,\n\t\t\tsetTimeout(() => {\n\t\t\t\tvoid persist(key);\n\t\t\t}, debounceMs)\n\t\t);\n\t};\n\n\treturn {\n\t\tget: async (key) => {\n\t\t\tconst cached = cache.get(key);\n\t\t\tif (cached !== undefined) {\n\t\t\t\treturn cached;\n\t\t\t}\n\t\t\tconst loaded = await options.load(key);\n\t\t\tif (loaded !== undefined) {\n\t\t\t\tcache.set(key, loaded);\n\t\t\t}\n\t\t\treturn loaded;\n\t\t},\n\t\tpeek: (key) => cache.get(key),\n\t\thas: (key) => cache.has(key),\n\t\tset: (key, value) => {\n\t\t\tcache.set(key, value);\n\t\t\tschedulePersist(key);\n\t\t},\n\t\tdelete: async (key) => {\n\t\t\tconst timer = timers.get(key);\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimers.delete(key);\n\t\t\t}\n\t\t\tcache.delete(key);\n\t\t\tawait options.remove?.(key);\n\t\t},\n\t\tkeys: () => cache.keys(),\n\t\tvalues: () => cache.values(),\n\t\tsize: () => cache.size,\n\t\tflush: async () => {\n\t\t\tfor (const timer of timers.values()) {\n\t\t\t\tclearTimeout(timer);\n\t\t\t}\n\t\t\ttimers.clear();\n\t\t\tawait Promise.all([...cache.keys()].map((key) => persist(key)));\n\t\t}\n\t};\n};\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;;;;;;;;;AA2DO,IAAM,yBAAyB,CACrC,YAC4B;AAAA,EAC5B,MAAM,aAAa,QAAQ,cAAc;AAAA,EACzC,MAAM,QAAQ,IAAI;AAAA,EAClB,MAAM,SAAS,IAAI;AAAA,EAEnB,MAAM,UAAU,OAAO,QAAW;AAAA,IACjC,OAAO,OAAO,GAAG;AAAA,IACjB,MAAM,QAAQ,MAAM,IAAI,GAAG;AAAA,IAC3B,IAAI,UAAU,WAAW;AAAA,MACxB;AAAA,IACD;AAAA,IACA,IAAI;AAAA,MACH,MAAM,QAAQ,QAAQ,KAAK,KAAK;AAAA,MAChC,IAAI,QAAQ,QAAQ,OAAO,GAAG,GAAG;AAAA,QAChC,MAAM,OAAO,GAAG;AAAA,MACjB;AAAA,MACC,OAAO,OAAO;AAAA,MACf,QAAQ,iBAAiB,OAAO,GAAG;AAAA;AAAA;AAAA,EAIrC,MAAM,kBAAkB,CAAC,QAAW;AAAA,IACnC,IAAI,OAAO,IAAI,GAAG,GAAG;AAAA,MACpB;AAAA,IACD;AAAA,IACA,OAAO,IACN,KACA,WAAW,MAAM;AAAA,MACX,QAAQ,GAAG;AAAA,OACd,UAAU,CACd;AAAA;AAAA,EAGD,OAAO;AAAA,IACN,KAAK,OAAO,QAAQ;AAAA,MACnB,MAAM,SAAS,MAAM,IAAI,GAAG;AAAA,MAC5B,IAAI,WAAW,WAAW;AAAA,QACzB,OAAO;AAAA,MACR;AAAA,MACA,MAAM,SAAS,MAAM,QAAQ,KAAK,GAAG;AAAA,MACrC,IAAI,WAAW,WAAW;AAAA,QACzB,MAAM,IAAI,KAAK,MAAM;AAAA,MACtB;AAAA,MACA,OAAO;AAAA;AAAA,IAER,MAAM,CAAC,QAAQ,MAAM,IAAI,GAAG;AAAA,IAC5B,KAAK,CAAC,QAAQ,MAAM,IAAI,GAAG;AAAA,IAC3B,KAAK,CAAC,KAAK,UAAU;AAAA,MACpB,MAAM,IAAI,KAAK,KAAK;AAAA,MACpB,gBAAgB,GAAG;AAAA;AAAA,IAEpB,QAAQ,OAAO,QAAQ;AAAA,MACtB,MAAM,QAAQ,OAAO,IAAI,GAAG;AAAA,MAC5B,IAAI,OAAO;AAAA,QACV,aAAa,KAAK;AAAA,QAClB,OAAO,OAAO,GAAG;AAAA,MAClB;AAAA,MACA,MAAM,OAAO,GAAG;AAAA,MAChB,MAAM,QAAQ,SAAS,GAAG;AAAA;AAAA,IAE3B,MAAM,MAAM,MAAM,KAAK;AAAA,IACvB,QAAQ,MAAM,MAAM,OAAO;AAAA,IAC3B,MAAM,MAAM,MAAM;AAAA,IAClB,OAAO,YAAY;AAAA,MAClB,WAAW,SAAS,OAAO,OAAO,GAAG;AAAA,QACpC,aAAa,KAAK;AAAA,MACnB;AAAA,MACA,OAAO,MAAM;AAAA,MACb,MAAM,QAAQ,IAAI,CAAC,GAAG,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAAA;AAAA,EAEhE;AAAA;",
8
+ "debugId": "4350F6DB7681B74A64756E2164756E21",
9
+ "names": []
10
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/sync",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "Lightweight reactive-push and write-behind-cache primitives for Elysia and the AbsoluteJS ecosystem — kill polling and keep a remote store off your hot path, without adopting a whole sync-engine backend.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,6 +23,11 @@
23
23
  "import": "./dist/scheduled.js",
24
24
  "default": "./dist/scheduled.js"
25
25
  },
26
+ "./write-behind-cache": {
27
+ "types": "./dist/writeBehindCache.d.ts",
28
+ "import": "./dist/writeBehindCache.js",
29
+ "default": "./dist/writeBehindCache.js"
30
+ },
26
31
  "./testing": {
27
32
  "types": "./dist/testing.d.ts",
28
33
  "import": "./dist/testing.js",