@teincfood/chat-client 0.1.23 → 0.1.24
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/optimistic.d.ts.map +1 -1
- package/dist/optimistic.js +14 -6
- package/dist/optimistic.js.map +1 -1
- package/package.json +1 -1
package/dist/optimistic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic.d.ts","sourceRoot":"","sources":["../src/optimistic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAO5C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAsB;gBAExB,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAKpE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,OAAO,CAAC,UAAU;IAIlB,kEAAkE;IAC5D,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,OAAO,CAAC,OAAO;IAMf,uEAAuE;IACvE,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACxC,WAAW;IAyBd,iEAAiE;IACjE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAW9C;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"optimistic.d.ts","sourceRoot":"","sources":["../src/optimistic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAO5C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,MAAM,CAAsB;gBAExB,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI;IAKpE,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,OAAO,CAAC,UAAU;IAIlB,kEAAkE;IAC5D,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD,OAAO,CAAC,OAAO;IAMf,uEAAuE;IACvE,MAAM,CACJ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACxC,WAAW;IAyBd,iEAAiE;IACjE,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAW9C;;;;OAIG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAuB5C,sDAAsD;IACtD,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,EAAE;IAMjD,oDAAoD;IACpD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,4DAA4D;IAC5D,MAAM,IAAI,WAAW,EAAE;IAIvB,yDAAyD;IACzD,KAAK,IAAI,IAAI;CAMd"}
|
package/dist/optimistic.js
CHANGED
|
@@ -85,20 +85,28 @@ class OptimisticEngine {
|
|
|
85
85
|
* Returns the matched temp's _clientId (if any) for callers to identify it.
|
|
86
86
|
*/
|
|
87
87
|
reconcile(serverMsg) {
|
|
88
|
-
|
|
88
|
+
// Match the most recently created pending temp with the same conversation
|
|
89
|
+
// and content. We deliberately do not enforce a tight time window: client
|
|
90
|
+
// and server clocks can skew, and a tight window leaves optimistic temps
|
|
91
|
+
// stuck as "Sending..." forever (which surfaces as duplicate messages).
|
|
92
|
+
let bestCid = null;
|
|
93
|
+
let bestTime = -Infinity;
|
|
89
94
|
for (const [cid, temp] of this.pending) {
|
|
90
95
|
if (temp.conversation_id !== serverMsg.conversation_id)
|
|
91
96
|
continue;
|
|
92
97
|
if (temp.content !== serverMsg.content)
|
|
93
98
|
continue;
|
|
94
99
|
const tempTime = new Date(temp.inserted_at).getTime();
|
|
95
|
-
if (
|
|
96
|
-
|
|
97
|
-
|
|
100
|
+
if (tempTime > bestTime) {
|
|
101
|
+
bestTime = tempTime;
|
|
102
|
+
bestCid = cid;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (bestCid) {
|
|
106
|
+
this.pending.delete(bestCid);
|
|
98
107
|
this.persist();
|
|
99
|
-
return cid;
|
|
100
108
|
}
|
|
101
|
-
return
|
|
109
|
+
return bestCid;
|
|
102
110
|
}
|
|
103
111
|
/** Return all pending messages for a conversation. */
|
|
104
112
|
getPending(conversationId) {
|
package/dist/optimistic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic.js","sourceRoot":"","sources":["../src/optimistic.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"optimistic.js","sourceRoot":"","sources":["../src/optimistic.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teincfood/chat-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.24",
|
|
4
4
|
"description": "Headless chat client library for TeincFood — handles auth, WebSocket, optimistic sends, and reactive React/RN bindings out of the box.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|