@teincfood/chat-client 0.1.18 → 0.1.19
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/api/conversations.d.ts +9 -1
- package/dist/api/conversations.d.ts.map +1 -1
- package/dist/api/conversations.js +10 -0
- package/dist/api/conversations.js.map +1 -1
- package/dist/api/messages.js +1 -1
- package/dist/api/messages.js.map +1 -1
- package/dist/api/messages.test.d.ts +2 -0
- package/dist/api/messages.test.d.ts.map +1 -0
- package/dist/api/messages.test.js +35 -0
- package/dist/api/messages.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { HttpClient } from "../http";
|
|
2
|
-
import type { Conversation, PaginationMeta } from "../types";
|
|
2
|
+
import type { Conversation, Message, PaginationMeta } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* All contact_type values that can appear in contacts API responses.
|
|
5
5
|
* The chat API only accepts "user" | "business" | "support", so we
|
|
@@ -17,6 +17,14 @@ export declare function createConversationsApi(http: HttpClient): {
|
|
|
17
17
|
getConversation: (id: string) => Promise<Conversation>;
|
|
18
18
|
startChat: (params: StartChatParams) => Promise<Conversation>;
|
|
19
19
|
startSupportChat: () => Promise<Conversation>;
|
|
20
|
+
/**
|
|
21
|
+
* Reply in a conversation as the authenticated user.
|
|
22
|
+
*
|
|
23
|
+
* This is the REST path used by agents and by `messages.sendText`;
|
|
24
|
+
* the backend attaches the message to the conversation and relays it
|
|
25
|
+
* to WhatsApp when it is a support conversation.
|
|
26
|
+
*/
|
|
27
|
+
respond: (id: string, message: string) => Promise<Message>;
|
|
20
28
|
close: (id: string) => Promise<{
|
|
21
29
|
success: boolean;
|
|
22
30
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAErE;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,GACR,OAAO,GACP,OAAO,CAAA;AAEX,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,cAAc,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACnC;AAmBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU;;0BAO7B,MAAM;wBAKR,eAAe;;IAenC;;;;;;OAMG;kBACW,MAAM,WAAW,MAAM;gBAKzB,MAAM;iBAEY,OAAO;;iBAGxB,MAAM;iBAEW,OAAO;;IAGrC;;;;OAIG;wEAIM;QAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE;cASnD,YAAY,EAAE;oBACR,cAAc;;EAIjC"}
|
|
@@ -37,6 +37,16 @@ function createConversationsApi(http) {
|
|
|
37
37
|
startSupportChat: () => http
|
|
38
38
|
.post("/chats/support")
|
|
39
39
|
.then((r) => r.data),
|
|
40
|
+
/**
|
|
41
|
+
* Reply in a conversation as the authenticated user.
|
|
42
|
+
*
|
|
43
|
+
* This is the REST path used by agents and by `messages.sendText`;
|
|
44
|
+
* the backend attaches the message to the conversation and relays it
|
|
45
|
+
* to WhatsApp when it is a support conversation.
|
|
46
|
+
*/
|
|
47
|
+
respond: (id, message) => http
|
|
48
|
+
.post(`/chats/${id}/respond`, { message })
|
|
49
|
+
.then((r) => r.data),
|
|
40
50
|
close: (id) => http
|
|
41
51
|
.patch(`/conversations/${id}/close`)
|
|
42
52
|
.then((r) => r.data),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":";;AAwCA,
|
|
1
|
+
{"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/api/conversations.ts"],"names":[],"mappings":";;AAwCA,wDAuEC;AAxFD,+DAA+D;AAC/D,SAAS,oBAAoB,CAAC,GAAoB;IAChD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,MAAM,CAAA;QACf,KAAK,UAAU;YACb,OAAO,UAAU,CAAA;QACnB,KAAK,SAAS;YACZ,OAAO,SAAS,CAAA;QAClB;YACE,OAAO,GAAG,CAAA;IACd,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAgB;IACrD,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CACb,IAAI;aACD,GAAG,CAA2B,QAAQ,CAAC;aACvC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAC9B,IAAI;aACD,GAAG,CAAyB,kBAAkB,EAAE,EAAE,CAAC;aACnD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB,SAAS,EAAE,CAAC,MAAuB,EAAE,EAAE;YACrC,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC5D,OAAO,IAAI;iBACR,IAAI,CAAyB,QAAQ,EAAE;gBACtC,GAAG,MAAM;gBACT,YAAY,EAAE,UAAU;aACzB,CAAC;iBACD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;QAED,gBAAgB,EAAE,GAAG,EAAE,CACrB,IAAI;aACD,IAAI,CAAyB,gBAAgB,CAAC;aAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB;;;;;;WAMG;QACH,OAAO,EAAE,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CACvC,IAAI;aACD,IAAI,CAAoB,UAAU,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC;aAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB,KAAK,EAAE,CAAC,EAAU,EAAE,EAAE,CACpB,IAAI;aACD,KAAK,CAAiC,kBAAkB,EAAE,QAAQ,CAAC;aACnE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CACrB,IAAI;aACD,KAAK,CAAiC,kBAAkB,EAAE,SAAS,CAAC;aACpE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB;;;;WAIG;QACH,wBAAwB,EAAE,CACxB,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,EAAE,EACb,IAA2D,EAC3D,EAAE;YACF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;aAC5B,CAAC,CAAA;YACF,IAAI,IAAI,EAAE,MAAM;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YACnD,IAAI,IAAI,EAAE,CAAC;gBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YACpC,OAAO,IAAI,CAAC,GAAG,CAGZ,UAAU,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACnC,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/api/messages.js
CHANGED
|
@@ -7,7 +7,7 @@ function createMessagesApi(http) {
|
|
|
7
7
|
.get(`/conversations/${conversationId}/messages?limit=${limit}&offset=${offset}`)
|
|
8
8
|
.then((r) => r),
|
|
9
9
|
sendText: (conversationId, body) => http
|
|
10
|
-
.post(`/
|
|
10
|
+
.post(`/chats/${conversationId}/respond`, { message: body })
|
|
11
11
|
.then((r) => r.data),
|
|
12
12
|
sendMedia: (conversationId, key, messageType, caption) => http
|
|
13
13
|
.post(`/conversations/${conversationId}/messages/media`, {
|
package/dist/api/messages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":";;AAGA,8CAqCC;AArCD,SAAgB,iBAAiB,CAAC,IAAgB;IAChD,OAAO;QACL,IAAI,EAAE,CAAC,cAAsB,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CACvD,IAAI;aACD,GAAG,CAIF,kBAAkB,cAAc,mBAAmB,KAAK,WAAW,MAAM,EAAE,CAC5E;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEnB,QAAQ,EAAE,CAAC,cAAsB,EAAE,IAAY,EAAE,EAAE,CACjD,IAAI;aACD,IAAI,CACH,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/api/messages.ts"],"names":[],"mappings":";;AAGA,8CAqCC;AArCD,SAAgB,iBAAiB,CAAC,IAAgB;IAChD,OAAO;QACL,IAAI,EAAE,CAAC,cAAsB,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CACvD,IAAI;aACD,GAAG,CAIF,kBAAkB,cAAc,mBAAmB,KAAK,WAAW,MAAM,EAAE,CAC5E;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEnB,QAAQ,EAAE,CAAC,cAAsB,EAAE,IAAY,EAAE,EAAE,CACjD,IAAI;aACD,IAAI,CACH,UAAU,cAAc,UAAU,EAClC,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExB,SAAS,EAAE,CACT,cAAsB,EACtB,GAAW,EACX,WAAwB,EACxB,OAAgB,EAChB,EAAE,CACF,IAAI;aACD,IAAI,CACH,kBAAkB,cAAc,iBAAiB,EACjD;YACE,GAAG;YACH,YAAY,EAAE,WAAW;YACzB,OAAO;SACR,CACF;aACA,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;KACzB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.test.d.ts","sourceRoot":"","sources":["../../src/api/messages.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const messages_1 = require("./messages");
|
|
5
|
+
const conversations_1 = require("./conversations");
|
|
6
|
+
const message = {
|
|
7
|
+
id: "msg-1",
|
|
8
|
+
content: "Hello",
|
|
9
|
+
conversation_id: "conv-1",
|
|
10
|
+
};
|
|
11
|
+
function fakeHttp() {
|
|
12
|
+
return {
|
|
13
|
+
get: vitest_1.vi.fn(),
|
|
14
|
+
post: vitest_1.vi.fn().mockResolvedValue({ data: message }),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
(0, vitest_1.describe)("send paths", () => {
|
|
18
|
+
(0, vitest_1.it)("sendText posts to /chats/:id/respond with the message envelope", async () => {
|
|
19
|
+
const http = fakeHttp();
|
|
20
|
+
const api = (0, messages_1.createMessagesApi)(http);
|
|
21
|
+
await (0, vitest_1.expect)(api.sendText("conv-1", "Hello")).resolves.toEqual(message);
|
|
22
|
+
(0, vitest_1.expect)(http.post).toHaveBeenCalledWith("/chats/conv-1/respond", {
|
|
23
|
+
message: "Hello",
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)("conversations.respond uses the same endpoint", async () => {
|
|
27
|
+
const http = fakeHttp();
|
|
28
|
+
const api = (0, conversations_1.createConversationsApi)(http);
|
|
29
|
+
await (0, vitest_1.expect)(api.respond("conv-1", "Hello")).resolves.toEqual(message);
|
|
30
|
+
(0, vitest_1.expect)(http.post).toHaveBeenCalledWith("/chats/conv-1/respond", {
|
|
31
|
+
message: "Hello",
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=messages.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.test.js","sourceRoot":"","sources":["../../src/api/messages.test.ts"],"names":[],"mappings":";;AAAA,mCAAiD;AACjD,yCAA8C;AAC9C,mDAAwD;AAGxD,MAAM,OAAO,GAAG;IACd,EAAE,EAAE,OAAO;IACX,OAAO,EAAE,OAAO;IAChB,eAAe,EAAE,QAAQ;CAC1B,CAAA;AAED,SAAS,QAAQ;IACf,OAAO;QACL,GAAG,EAAE,WAAE,CAAC,EAAE,EAAE;QACZ,IAAI,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC1B,CAAA;AAC5B,CAAC;AAED,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAA,WAAE,EAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAA;QACvB,MAAM,GAAG,GAAG,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,IAAA,eAAM,EAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEvE,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,EAAE;YAC9D,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAA,WAAE,EAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAA;QACvB,MAAM,GAAG,GAAG,IAAA,sCAAsB,EAAC,IAAI,CAAC,CAAA;QAExC,MAAM,IAAA,eAAM,EAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAEtE,IAAA,eAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,uBAAuB,EAAE;YAC9D,OAAO,EAAE,OAAO;SACjB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teincfood/chat-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.19",
|
|
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",
|