simplex-chat 0.0.1 → 0.1.0

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/README.md CHANGED
@@ -6,24 +6,7 @@
6
6
  npm i simplex-chat
7
7
  ```
8
8
 
9
- ```javascript
10
- const ChatClient = require("simplex-chat").ChatClient
11
- const chat = await ChatClient.create("ws://localhost:5225")
12
- await processMessages(chat)
13
- const user = await chat.apiGetActiveUser()
14
-
15
- async function processMessages(chat) {
16
- for await (const m of chat.msgQ) {
17
- const msg = m instanceof Promise ? await m : m
18
- switch (msg.type) {
19
- case "newChatItem": // do something
20
- return
21
- default:
22
- console.log(msg)
23
- }
24
- }
25
- }
26
- ```
9
+ See example of chat bot in [squaring-bot.js](./examples/squaring-bot.js)
27
10
 
28
11
  ## Documentation
29
12
 
package/dist/client.d.ts CHANGED
@@ -3,14 +3,14 @@ import { ChatServer, ChatResponseError } from "./transport";
3
3
  import { ChatCommand, ChatType } from "./command";
4
4
  import { ChatResponse } from "./response";
5
5
  import * as CC from "./command";
6
- import * as C from "./response";
6
+ import * as CR from "./response";
7
7
  export interface ChatClientConfig {
8
8
  readonly qSize: number;
9
9
  readonly tcpTimeout: number;
10
10
  }
11
11
  export interface Request {
12
12
  readonly resolve: (resp: ChatResponse) => void;
13
- readonly reject: (err?: ChatResponseError | C.CRChatCmdError) => void;
13
+ readonly reject: (err?: ChatResponseError | CR.CRChatCmdError) => void;
14
14
  }
15
15
  export declare class ChatCommandError extends Error {
16
16
  message: string;
@@ -36,18 +36,25 @@ export declare class ChatClient {
36
36
  sendChatCmdStr(cmd: string): Promise<ChatResponse>;
37
37
  sendChatCommand(command: ChatCommand): Promise<ChatResponse>;
38
38
  disconnect(): Promise<void>;
39
- apiGetActiveUser(): Promise<C.User | undefined>;
40
- apiCreateActiveUser(profile: CC.Profile): Promise<C.User>;
39
+ apiGetActiveUser(): Promise<CR.User | undefined>;
40
+ apiCreateActiveUser(profile: CC.Profile): Promise<CR.User>;
41
41
  apiStartChat(): Promise<void>;
42
- apiGetChats(): Promise<C.Chat[]>;
43
- apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination): Promise<C.Chat>;
44
- apiSendMessage(chatType: ChatType, chatId: number, message: CC.ComposedMessage): Promise<C.AChatItem>;
45
- apiSendTextMessage(chatType: ChatType, chatId: number, text: string): Promise<C.AChatItem>;
46
- apiUpdateChatItem(chatType: ChatType, chatId: number, chatItemId: CC.ChatItemId, msgContent: CC.MsgContent): Promise<C.ChatItem>;
47
- apiDeleteChatItem(chatType: ChatType, chatId: number, chatItemId: number, deleteMode: CC.DeleteMode): Promise<C.ChatItem>;
42
+ apiGetChats(): Promise<CR.Chat[]>;
43
+ apiGetChat(chatType: ChatType, chatId: number, pagination?: CC.ChatPagination): Promise<CR.Chat>;
44
+ apiSendMessage(chatType: ChatType, chatId: number, message: CC.ComposedMessage): Promise<CR.AChatItem>;
45
+ apiSendTextMessage(chatType: ChatType, chatId: number, text: string): Promise<CR.AChatItem>;
46
+ apiUpdateChatItem(chatType: ChatType, chatId: number, chatItemId: CC.ChatItemId, msgContent: CC.MsgContent): Promise<CR.ChatItem>;
47
+ apiDeleteChatItem(chatType: ChatType, chatId: number, chatItemId: number, deleteMode: CC.DeleteMode): Promise<CR.ChatItem>;
48
48
  apiCreateLink(): Promise<string>;
49
49
  apiConnect(connReq: string): Promise<ConnReqType>;
50
50
  apiDeleteChat(chatType: ChatType, chatId: number): Promise<void>;
51
51
  apiUpdateProfile(profile: CC.Profile): Promise<CC.Profile | undefined>;
52
+ apiCreateUserAddress(): Promise<string>;
53
+ apiDeleteUserAddress(): Promise<void>;
54
+ apiGetUserAddress(): Promise<string | undefined>;
55
+ apiAcceptContactRequest(contactReqId: number): Promise<CR.Contact>;
56
+ apiRejectContactRequest(contactReqId: number): Promise<void>;
57
+ apiChatRead(chatType: ChatType, chatId: number, itemRange?: CC.ItemRange): Promise<void>;
58
+ private okChatCommand;
52
59
  get connected(): boolean;
53
60
  }
package/dist/client.js CHANGED
@@ -1,19 +1,23 @@
1
- import { ABQueue } from "./queue";
2
- import { ChatTransport, ChatResponseError, localServer, noop } from "./transport";
3
- import * as CC from "./command";
4
- export class ChatCommandError extends Error {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatClient = exports.ConnReqType = exports.ChatCommandError = void 0;
4
+ const queue_1 = require("./queue");
5
+ const transport_1 = require("./transport");
6
+ const CC = require("./command");
7
+ class ChatCommandError extends Error {
5
8
  constructor(message, response) {
6
9
  super(message);
7
10
  this.message = message;
8
11
  this.response = response;
9
12
  }
10
13
  }
11
- export var ConnReqType;
14
+ exports.ChatCommandError = ChatCommandError;
15
+ var ConnReqType;
12
16
  (function (ConnReqType) {
13
17
  ConnReqType["Invitation"] = "invitation";
14
18
  ConnReqType["Contact"] = "contact";
15
- })(ConnReqType || (ConnReqType = {}));
16
- export class ChatClient {
19
+ })(ConnReqType = exports.ConnReqType || (exports.ConnReqType = {}));
20
+ class ChatClient {
17
21
  constructor(server, config, msgQ, client, transport) {
18
22
  this.server = server;
19
23
  this.config = config;
@@ -24,16 +28,16 @@ export class ChatClient {
24
28
  this.clientCorrId = 0;
25
29
  this.sentCommands = new Map();
26
30
  }
27
- static async create(server = localServer, cfg = ChatClient.defaultConfig) {
28
- const transport = await ChatTransport.connect(server, cfg.tcpTimeout, cfg.qSize);
29
- const msgQ = new ABQueue(cfg.qSize);
30
- const client = runClient().then(noop, noop);
31
+ static async create(server = transport_1.localServer, cfg = ChatClient.defaultConfig) {
32
+ const transport = await transport_1.ChatTransport.connect(server, cfg.tcpTimeout, cfg.qSize);
33
+ const msgQ = new queue_1.ABQueue(cfg.qSize);
34
+ const client = runClient().then(transport_1.noop, transport_1.noop);
31
35
  const c = new ChatClient(server, cfg, msgQ, client, transport);
32
36
  return c;
33
37
  async function runClient() {
34
38
  for await (const t of transport) {
35
39
  const apiResp = (t instanceof Promise ? await t : t);
36
- if (apiResp instanceof ChatResponseError) {
40
+ if (apiResp instanceof transport_1.ChatResponseError) {
37
41
  console.log("chat response error: ", apiResp);
38
42
  }
39
43
  else {
@@ -42,12 +46,7 @@ export class ChatClient {
42
46
  const req = c.sentCommands.get(corrId);
43
47
  if (req) {
44
48
  c.sentCommands.delete(corrId);
45
- if (resp.type === "chatCmdError") {
46
- req.reject(resp);
47
- }
48
- else {
49
- req.resolve(resp);
50
- }
49
+ req.resolve(resp);
51
50
  }
52
51
  else {
53
52
  // TODO send error to errQ?
@@ -65,7 +64,7 @@ export class ChatClient {
65
64
  sendChatCmdStr(cmd) {
66
65
  const corrId = `${++this.clientCorrId}`;
67
66
  const t = { corrId, cmd };
68
- this.transport.write(t).then(noop, noop);
67
+ this.transport.write(t).then(transport_1.noop, transport_1.noop);
69
68
  return new Promise((resolve, reject) => this.sentCommands.set(corrId, { resolve, reject }));
70
69
  }
71
70
  sendChatCommand(command) {
@@ -181,85 +180,55 @@ export class ChatClient {
181
180
  // if case let .apiParsedMarkdown(formattedText) = r { return formattedText }
182
181
  // throw r
183
182
  // }
184
- // func apiCreateUserAddress() async throws -> String {
185
- // let r = await chatSendCmd(.createMyAddress)
186
- // if case let .userContactLinkCreated(connReq) = r { return connReq }
187
- // throw r
188
- // }
189
- // func apiDeleteUserAddress() async throws {
190
- // let r = await chatSendCmd(.deleteMyAddress)
191
- // if case .userContactLinkDeleted = r { return }
192
- // throw r
193
- // }
194
- // func apiGetUserAddress() async throws -> String? {
195
- // let r = await chatSendCmd(.showMyAddress)
196
- // switch r {
197
- // case let .userContactLink(connReq):
198
- // return connReq
199
- // case .chatCmdError(chatError: .errorStore(storeError: .userContactLinkNotFound)):
200
- // return nil
201
- // default: throw r
202
- // }
203
- // }
204
- // func apiAcceptContactRequest(contactReqId: Int64) async throws -> Contact {
205
- // let r = await chatSendCmd(.apiAcceptContact(contactReqId: contactReqId))
206
- // if case let .acceptingContactRequest(contact) = r { return contact }
207
- // throw r
208
- // }
209
- // func apiRejectContactRequest(contactReqId: Int64) async throws {
210
- // let r = await chatSendCmd(.apiRejectContact(contactReqId: contactReqId))
211
- // if case .contactRequestRejected = r { return }
212
- // throw r
213
- // }
214
- // func apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64)) async throws {
215
- // let r = await chatSendCmd(.apiChatRead(type: type, id: id, itemRange: itemRange))
216
- // if case .cmdOk = r { return }
217
- // throw r
218
- // }
219
- // func acceptContactRequest(_ contactRequest: UserContactRequest) async {
220
- // do {
221
- // let contact = try await apiAcceptContactRequest(contactReqId: contactRequest.apiId)
222
- // let chat = Chat(chatInfo: ChatInfo.direct(contact: contact), chatItems: [])
223
- // DispatchQueue.main.async { ChatModel.shared.replaceChat(contactRequest.id, chat) }
224
- // } catch let error {
225
- // logger.error("acceptContactRequest error: \(error.localizedDescription)")
226
- // }
227
- // }
228
- // func rejectContactRequest(_ contactRequest: UserContactRequest) async {
229
- // do {
230
- // try await apiRejectContactRequest(contactReqId: contactRequest.apiId)
231
- // DispatchQueue.main.async { ChatModel.shared.removeChat(contactRequest.id) }
232
- // } catch let error {
233
- // logger.error("rejectContactRequest: \(error.localizedDescription)")
234
- // }
235
- // }
236
- // func markChatRead(_ chat: Chat) async {
237
- // do {
238
- // let minItemId = chat.chatStats.minUnreadItemId
239
- // let itemRange = (minItemId, chat.chatItems.last?.id ?? minItemId)
240
- // let cInfo = chat.chatInfo
241
- // try await apiChatRead(type: cInfo.chatType, id: cInfo.apiId, itemRange: itemRange)
242
- // DispatchQueue.main.async { ChatModel.shared.markChatItemsRead(cInfo) }
243
- // } catch {
244
- // logger.error("markChatRead apiChatRead error: \(error.localizedDescription)")
245
- // }
246
- // }
247
- // func markChatItemRead(_ cInfo: ChatInfo, _ cItem: ChatItem) async {
248
- // do {
249
- // try await apiChatRead(type: cInfo.chatType, id: cInfo.apiId, itemRange: (cItem.id, cItem.id))
250
- // DispatchQueue.main.async { ChatModel.shared.markChatItemRead(cInfo, cItem) }
251
- // } catch {
252
- // logger.error("markChatItemRead apiChatRead error: \(error.localizedDescription)")
253
- // }
254
- // }
255
- // private async okChatCommand(command: ChatCommand): Promise<void> {
256
- // const resp = await this.sendChatCommand(command)
257
- // if (resp.type !== "cmdOk") throw new ChatCommandError("unexpected response", resp)
258
- // }
183
+ async apiCreateUserAddress() {
184
+ const r = await this.sendChatCommand({ type: "createMyAddress" });
185
+ if (r.type === "userContactLinkCreated")
186
+ return r.connReqContact;
187
+ throw new ChatCommandError("error creating user address", r);
188
+ }
189
+ async apiDeleteUserAddress() {
190
+ const r = await this.sendChatCommand({ type: "deleteMyAddress" });
191
+ if (r.type === "userContactLinkDeleted")
192
+ return;
193
+ throw new ChatCommandError("error deleting user address", r);
194
+ }
195
+ async apiGetUserAddress() {
196
+ const r = await this.sendChatCommand({ type: "showMyAddress" });
197
+ switch (r.type) {
198
+ case "userContactLink":
199
+ return r.connReqContact;
200
+ default:
201
+ if (r.type === "chatCmdError" && r.chatError.type === "errorStore" && r.chatError.storeError.type === "userContactLinkNotFound") {
202
+ return undefined;
203
+ }
204
+ throw new ChatCommandError("error loading user address", r);
205
+ }
206
+ }
207
+ async apiAcceptContactRequest(contactReqId) {
208
+ const r = await this.sendChatCommand({ type: "apiAcceptContact", contactReqId });
209
+ if (r.type === "acceptingContactRequest")
210
+ return r.contact;
211
+ throw new ChatCommandError("error accepting contact request", r);
212
+ }
213
+ async apiRejectContactRequest(contactReqId) {
214
+ const r = await this.sendChatCommand({ type: "apiRejectContact", contactReqId });
215
+ if (r.type === "contactRequestRejected")
216
+ return;
217
+ throw new ChatCommandError("error rejecting contact request", r);
218
+ }
219
+ apiChatRead(chatType, chatId, itemRange) {
220
+ return this.okChatCommand({ type: "apiChatRead", chatType, chatId, itemRange });
221
+ }
222
+ async okChatCommand(command) {
223
+ const r = await this.sendChatCommand(command);
224
+ if (r.type !== "cmdOk")
225
+ throw new ChatCommandError(`${command.type} command error`, r);
226
+ }
259
227
  get connected() {
260
228
  return this._connected;
261
229
  }
262
230
  }
231
+ exports.ChatClient = ChatClient;
263
232
  ChatClient.defaultConfig = {
264
233
  qSize: 16,
265
234
  tcpTimeout: 4000,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/command.d.ts CHANGED
@@ -55,6 +55,9 @@ export interface APIChatRead extends IChatCommand {
55
55
  type: "apiChatRead";
56
56
  chatType: ChatType;
57
57
  chatId: number;
58
+ itemRange?: ItemRange;
59
+ }
60
+ export interface ItemRange {
58
61
  fromItem: ChatItemId;
59
62
  toItem: ChatItemId;
60
63
  }
@@ -115,9 +118,9 @@ export interface Profile {
115
118
  image?: string;
116
119
  }
117
120
  export declare enum ChatType {
118
- CTDirect = "@",
119
- CTGroup = "#",
120
- CTContactRequest = "<@"
121
+ Direct = "@",
122
+ Group = "#",
123
+ ContactRequest = "<@"
121
124
  }
122
125
  export declare type ChatPagination = {
123
126
  count: number;
package/dist/command.js CHANGED
@@ -1,15 +1,18 @@
1
- export var ChatType;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cmdString = exports.DeleteMode = exports.ChatType = void 0;
4
+ var ChatType;
2
5
  (function (ChatType) {
3
- ChatType["CTDirect"] = "@";
4
- ChatType["CTGroup"] = "#";
5
- ChatType["CTContactRequest"] = "<@";
6
- })(ChatType || (ChatType = {}));
7
- export var DeleteMode;
6
+ ChatType["Direct"] = "@";
7
+ ChatType["Group"] = "#";
8
+ ChatType["ContactRequest"] = "<@";
9
+ })(ChatType = exports.ChatType || (exports.ChatType = {}));
10
+ var DeleteMode;
8
11
  (function (DeleteMode) {
9
12
  DeleteMode["Broadcast"] = "broadcast";
10
13
  DeleteMode["Internal"] = "internal";
11
- })(DeleteMode || (DeleteMode = {}));
12
- export function cmdString(cmd) {
14
+ })(DeleteMode = exports.DeleteMode || (exports.DeleteMode = {}));
15
+ function cmdString(cmd) {
13
16
  switch (cmd.type) {
14
17
  case "showActiveUser":
15
18
  return "/u";
@@ -29,8 +32,10 @@ export function cmdString(cmd) {
29
32
  return `/_update item ${cmd.chatType}${cmd.chatId} ${cmd.chatItemId} json ${JSON.stringify(cmd.msgContent)}`;
30
33
  case "apiDeleteChatItem":
31
34
  return `/_delete item ${cmd.chatType}${cmd.chatId} ${cmd.chatItemId} ${cmd.deleteMode}`;
32
- case "apiChatRead":
33
- return `/_read chat ${cmd.chatType}${cmd.chatId} from=${cmd.fromItem} to=${cmd.toItem}`;
35
+ case "apiChatRead": {
36
+ const itemRange = cmd.itemRange ? ` from=${cmd.itemRange.fromItem} to=${cmd.itemRange.toItem}` : "";
37
+ return `/_read chat ${cmd.chatType}${cmd.chatId}${itemRange}`;
38
+ }
34
39
  case "apiDeleteChat":
35
40
  return `/_delete ${cmd.chatType}${cmd.chatId}`;
36
41
  case "apiAcceptContact":
@@ -61,6 +66,7 @@ export function cmdString(cmd) {
61
66
  return `/auto_accept ${cmd.enable ? "on" : "off"}`;
62
67
  }
63
68
  }
69
+ exports.cmdString = cmdString;
64
70
  function paginationStr(cp) {
65
71
  const base = "after" in cp ? ` after=${cp.after}` : "before" in cp ? ` before=${cp.before}` : "";
66
72
  return base + ` count=${cp.count}`;
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
1
  export { ChatClient } from "./client";
2
- export { ABQueue } from "./queue";
package/dist/index-web.js CHANGED
@@ -1,3 +1,6 @@
1
- export { ChatClient } from "./client";
2
- export { ABQueue } from "./queue";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatClient = void 0;
4
+ var client_1 = require("./client");
5
+ Object.defineProperty(exports, "ChatClient", { enumerable: true, get: function () { return client_1.ChatClient; } });
3
6
  //# sourceMappingURL=index-web.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-web.js","sourceRoot":"","sources":["../src/index-web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAA;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index-web.js","sourceRoot":"","sources":["../src/index-web.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AAA3B,oGAAA,UAAU,OAAA"}
@@ -1,537 +1,11 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
3
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.simplex = {}));
5
- })(this, (function (exports) { 'use strict';
6
-
7
- class Sem {
8
- constructor(permits) {
9
- this.permits = permits;
10
- this.promises = [];
11
- }
12
- signal() {
13
- this.permits += 1;
14
- if (this.promises.length > 0)
15
- this.promises.pop()();
16
- }
17
- async wait() {
18
- if (this.permits === 0 || this.promises.length > 0) {
19
- await new Promise((r) => this.promises.unshift(r));
20
- }
21
- this.permits -= 1;
22
- }
23
- }
24
- const queueClosed = Symbol();
25
- class ABQueueError extends Error {
26
- }
27
- class ABQueue {
28
- constructor(maxSize) {
29
- this.maxSize = maxSize;
30
- this.queue = [];
31
- this.enqClosed = false;
32
- this.deqClosed = false;
33
- this.enq = new Sem(0);
34
- this.deq = new Sem(maxSize);
35
- }
36
- [Symbol.asyncIterator]() {
37
- return this;
38
- }
39
- enqueue(x) {
40
- return this._enqueue(x);
41
- }
42
- async _enqueue(x) {
43
- if (this.enqClosed)
44
- throw new ABQueueError("enqueue: queue closed");
45
- await this.deq.wait();
46
- this.queue.push(x);
47
- this.enq.signal();
48
- }
49
- async dequeue() {
50
- if (this.deqClosed)
51
- throw new ABQueueError("dequeue: queue closed");
52
- this.deq.signal();
53
- await this.enq.wait();
54
- const x = this.queue.shift();
55
- if (x === queueClosed) {
56
- this.deqClosed = true;
57
- throw new ABQueueError("dequeue: queue closed");
58
- }
59
- return x;
60
- }
61
- async close() {
62
- await this._enqueue(queueClosed);
63
- this.enqClosed = true;
64
- }
65
- async next() {
66
- if (this.deqClosed)
67
- return { done: true };
68
- try {
69
- return { value: await this.dequeue() };
70
- }
71
- catch (e) {
72
- if (e instanceof ABQueueError)
73
- return { done: true };
74
- throw e;
75
- }
76
- }
77
- }
78
-
79
- class TransportError extends Error {
80
- }
81
- class Transport {
82
- constructor(qSize) {
83
- this.queue = new ABQueue(qSize);
84
- }
85
- [Symbol.asyncIterator]() {
86
- return this;
87
- }
88
- async read() {
89
- return this.queue.dequeue();
90
- }
91
- async next() {
92
- return this.queue.next();
93
- }
94
- }
95
- class WSTransport extends Transport {
96
- constructor(sock, timeout, qSize) {
97
- super(qSize);
98
- this.sock = sock;
99
- this.timeout = timeout;
100
- }
101
- static connect(url, timeout, qSize) {
102
- const sock = new WebSocket(url);
103
- const t = new WSTransport(sock, timeout, qSize);
104
- sock.onmessage = async ({ data }) => await t.queue.enqueue(data);
105
- sock.onclose = async () => await t.queue.close();
106
- sock.onerror = () => sock.close();
107
- return withTimeout(timeout, () => new Promise((r) => (sock.onopen = () => r(t))));
108
- }
109
- close() {
110
- this.sock.close();
111
- return Promise.resolve();
112
- }
113
- write(data) {
114
- const buffered = this.sock.bufferedAmount;
115
- this.sock.send(data);
116
- return withTimeout(this.timeout, async () => {
117
- while (this.sock.bufferedAmount > buffered)
118
- await delay();
119
- });
120
- }
121
- async readBinary(size) {
122
- const data = await this.read();
123
- if (typeof data == "string")
124
- throw new TransportError("invalid text block: expected binary");
125
- if (data.byteLength !== size)
126
- throw new TransportError("invalid block size");
127
- return data;
128
- }
129
- }
130
- function withTimeout(ms, action) {
131
- return Promise.race([
132
- action(),
133
- (async () => {
134
- await delay(ms);
135
- throw new Error("timeout");
136
- })(),
137
- ]);
138
- }
139
- const localServer = {
140
- host: "localhost",
141
- port: "5225",
142
- };
143
- class ChatResponseError extends Error {
144
- constructor(message, data) {
145
- super(message);
146
- this.message = message;
147
- this.data = data;
148
- }
149
- }
150
- class ChatTransport extends Transport {
151
- constructor(ws, timeout, qSize) {
152
- super(qSize);
153
- this.ws = ws;
154
- this.timeout = timeout;
155
- }
156
- static async connect(srv, timeout, qSize) {
157
- const uri = typeof srv == "string" ? srv : `ws://${srv.host}:${srv.port || "5225"}`;
158
- const ws = await WSTransport.connect(uri, timeout, qSize);
159
- const c = new ChatTransport(ws, timeout, qSize);
160
- processWSQueue(c, ws).then(noop, noop);
161
- return c;
162
- }
163
- async close() {
164
- await this.ws.close();
165
- }
166
- async write(cmd) {
167
- return this.ws.write(JSON.stringify(cmd));
168
- }
169
- }
170
- function noop() { }
171
- async function processWSQueue(c, ws) {
172
- var _a;
173
- for await (const data of ws) {
174
- const str = (data instanceof Promise ? await data : data);
175
- if (typeof str != "string") {
176
- await c.queue.enqueue(new ChatResponseError("websocket data is not a string"));
177
- continue;
178
- }
179
- let resp;
180
- try {
181
- const json = JSON.parse(str);
182
- if (typeof ((_a = json === null || json === void 0 ? void 0 : json.resp) === null || _a === void 0 ? void 0 : _a.type) == "string") {
183
- resp = json;
184
- }
185
- else {
186
- resp = new ChatResponseError("invalid response format", str);
187
- }
188
- }
189
- catch (err) {
190
- resp = new ChatResponseError(err.message, str);
191
- }
192
- await c.queue.enqueue(resp);
193
- }
194
- await c.queue.close();
195
- }
196
- function delay(ms) {
197
- return new Promise((r) => setTimeout(r, ms));
198
- }
199
-
200
- var ChatType;
201
- (function (ChatType) {
202
- ChatType["CTDirect"] = "@";
203
- ChatType["CTGroup"] = "#";
204
- ChatType["CTContactRequest"] = "<@";
205
- })(ChatType || (ChatType = {}));
206
- var DeleteMode;
207
- (function (DeleteMode) {
208
- DeleteMode["Broadcast"] = "broadcast";
209
- DeleteMode["Internal"] = "internal";
210
- })(DeleteMode || (DeleteMode = {}));
211
- function cmdString(cmd) {
212
- switch (cmd.type) {
213
- case "showActiveUser":
214
- return "/u";
215
- case "createActiveUser":
216
- return `/u ${JSON.stringify(cmd.profile)}`;
217
- case "startChat":
218
- return "/_start";
219
- case "setFilesFolder":
220
- return `/_files_folder ${cmd.filePath}`;
221
- case "apiGetChats":
222
- return "/_get chats";
223
- case "apiGetChat":
224
- return `/_get chat ${cmd.chatType}${cmd.chatId}${paginationStr(cmd.pagination)}`;
225
- case "apiSendMessage":
226
- return `/_send ${cmd.chatType}${cmd.chatId} json ${JSON.stringify(cmd.message)}`;
227
- case "apiUpdateChatItem":
228
- return `/_update item ${cmd.chatType}${cmd.chatId} ${cmd.chatItemId} json ${JSON.stringify(cmd.msgContent)}`;
229
- case "apiDeleteChatItem":
230
- return `/_delete item ${cmd.chatType}${cmd.chatId} ${cmd.chatItemId} ${cmd.deleteMode}`;
231
- case "apiChatRead":
232
- return `/_read chat ${cmd.chatType}${cmd.chatId} from=${cmd.fromItem} to=${cmd.toItem}`;
233
- case "apiDeleteChat":
234
- return `/_delete ${cmd.chatType}${cmd.chatId}`;
235
- case "apiAcceptContact":
236
- return `/_accept ${cmd.contactReqId}`;
237
- case "apiRejectContact":
238
- return `/_reject ${cmd.contactReqId}`;
239
- case "apiUpdateProfile":
240
- return `/_profile ${JSON.stringify(cmd.profile)}`;
241
- case "apiParseMarkdown":
242
- return `/_parse ${cmd.text}`;
243
- case "getUserSMPServers":
244
- return "/smp_servers";
245
- case "setUserSMPServers":
246
- return `/smp_servers ${cmd.servers.join(",") || "default"}`;
247
- case "addContact":
248
- return "/connect";
249
- case "connect":
250
- return `/connect ${cmd.connReq}`;
251
- case "connectSimplex":
252
- return "/simplex";
253
- case "createMyAddress":
254
- return "/address";
255
- case "deleteMyAddress":
256
- return "/delete_address";
257
- case "showMyAddress":
258
- return "/show_address";
259
- case "addressAutoAccept":
260
- return `/auto_accept ${cmd.enable ? "on" : "off"}`;
261
- }
262
- }
263
- function paginationStr(cp) {
264
- const base = "after" in cp ? ` after=${cp.after}` : "before" in cp ? ` before=${cp.before}` : "";
265
- return base + ` count=${cp.count}`;
266
- }
267
-
268
- class ChatCommandError extends Error {
269
- constructor(message, response) {
270
- super(message);
271
- this.message = message;
272
- this.response = response;
273
- }
274
- }
275
- var ConnReqType;
276
- (function (ConnReqType) {
277
- ConnReqType["Invitation"] = "invitation";
278
- ConnReqType["Contact"] = "contact";
279
- })(ConnReqType || (ConnReqType = {}));
280
- class ChatClient {
281
- constructor(server, config, msgQ, client, transport) {
282
- this.server = server;
283
- this.config = config;
284
- this.msgQ = msgQ;
285
- this.client = client;
286
- this.transport = transport;
287
- this._connected = true;
288
- this.clientCorrId = 0;
289
- this.sentCommands = new Map();
290
- }
291
- static async create(server = localServer, cfg = ChatClient.defaultConfig) {
292
- const transport = await ChatTransport.connect(server, cfg.tcpTimeout, cfg.qSize);
293
- const msgQ = new ABQueue(cfg.qSize);
294
- const client = runClient().then(noop, noop);
295
- const c = new ChatClient(server, cfg, msgQ, client, transport);
296
- return c;
297
- async function runClient() {
298
- for await (const t of transport) {
299
- const apiResp = (t instanceof Promise ? await t : t);
300
- if (apiResp instanceof ChatResponseError) {
301
- console.log("chat response error: ", apiResp);
302
- }
303
- else {
304
- const { corrId, resp } = apiResp;
305
- if (corrId) {
306
- const req = c.sentCommands.get(corrId);
307
- if (req) {
308
- c.sentCommands.delete(corrId);
309
- if (resp.type === "chatCmdError") {
310
- req.reject(resp);
311
- }
312
- else {
313
- req.resolve(resp);
314
- }
315
- }
316
- else {
317
- // TODO send error to errQ?
318
- console.log("no command sent for chat response: ", apiResp);
319
- }
320
- }
321
- else {
322
- await msgQ.enqueue(resp);
323
- }
324
- }
325
- }
326
- c._connected = false;
327
- }
328
- }
329
- sendChatCmdStr(cmd) {
330
- const corrId = `${++this.clientCorrId}`;
331
- const t = { corrId, cmd };
332
- this.transport.write(t).then(noop, noop);
333
- return new Promise((resolve, reject) => this.sentCommands.set(corrId, { resolve, reject }));
334
- }
335
- sendChatCommand(command) {
336
- return this.sendChatCmdStr(cmdString(command));
337
- }
338
- async disconnect() {
339
- await this.transport.close();
340
- await this.client;
341
- }
342
- async apiGetActiveUser() {
343
- const r = await this.sendChatCommand({ type: "showActiveUser" });
344
- switch (r.type) {
345
- case "activeUser":
346
- return r.user;
347
- case "chatCmdError":
348
- if (r.chatError.type === "error" && r.chatError.errorType.type === "noActiveUser")
349
- return undefined;
350
- throw new ChatCommandError("unexpected response error", r);
351
- default:
352
- throw new ChatCommandError("unexpected response", r);
353
- }
354
- }
355
- async apiCreateActiveUser(profile) {
356
- const r = await this.sendChatCommand({ type: "createActiveUser", profile });
357
- if (r.type === "activeUser")
358
- return r.user;
359
- throw new ChatCommandError("unexpected response", r);
360
- }
361
- async apiStartChat() {
362
- const r = await this.sendChatCommand({ type: "startChat" });
363
- if (r.type !== "chatStarted" && r.type !== "chatRunning") {
364
- throw new ChatCommandError("error starting chat", r);
365
- }
366
- }
367
- async apiGetChats() {
368
- const r = await this.sendChatCommand({ type: "apiGetChats" });
369
- if (r.type === "apiChats")
370
- return r.chats;
371
- throw new ChatCommandError("error loading chats", r);
372
- }
373
- async apiGetChat(chatType, chatId, pagination = { count: 100 }) {
374
- const r = await this.sendChatCommand({ type: "apiGetChat", chatType, chatId, pagination });
375
- if (r.type === "apiChat")
376
- return r.chat;
377
- throw new ChatCommandError("error loading chat", r);
378
- }
379
- async apiSendMessage(chatType, chatId, message) {
380
- const r = await this.sendChatCommand({ type: "apiSendMessage", chatType, chatId, message });
381
- if (r.type === "newChatItem")
382
- return r.chatItem;
383
- throw new ChatCommandError("unexpected response", r);
384
- }
385
- apiSendTextMessage(chatType, chatId, text) {
386
- return this.apiSendMessage(chatType, chatId, { msgContent: { type: "text", text } });
387
- }
388
- async apiUpdateChatItem(chatType, chatId, chatItemId, msgContent) {
389
- const r = await this.sendChatCommand({ type: "apiUpdateChatItem", chatType, chatId, chatItemId, msgContent });
390
- if (r.type === "chatItemUpdated")
391
- return r.chatItem.chatItem;
392
- throw new ChatCommandError("error updating chat item", r);
393
- }
394
- async apiDeleteChatItem(chatType, chatId, chatItemId, deleteMode) {
395
- const r = await this.sendChatCommand({ type: "apiDeleteChatItem", chatType, chatId, chatItemId, deleteMode });
396
- if (r.type === "chatItemDeleted")
397
- return r.toChatItem.chatItem;
398
- throw new ChatCommandError("error deleting chat item", r);
399
- }
400
- // func getUserSMPServers() throws -> [String] {
401
- // let r = chatSendCmdSync(.getUserSMPServers)
402
- // if case let .userSMPServers(smpServers) = r { return smpServers }
403
- // throw r
404
- // }
405
- // func setUserSMPServers(smpServers: [String]) async throws {
406
- // let r = await chatSendCmd(.setUserSMPServers(smpServers: smpServers))
407
- // if case .cmdOk = r { return }
408
- // throw r
409
- // }
410
- async apiCreateLink() {
411
- const r = await this.sendChatCommand({ type: "addContact" });
412
- if (r.type === "invitation")
413
- return r.connReqInvitation;
414
- throw new ChatCommandError("error creating link", r);
415
- }
416
- async apiConnect(connReq) {
417
- const r = await this.sendChatCommand({ type: "connect", connReq });
418
- switch (r.type) {
419
- case "sentConfirmation":
420
- return ConnReqType.Invitation;
421
- case "sentInvitation":
422
- return ConnReqType.Contact;
423
- default:
424
- throw new ChatCommandError("connection error", r);
425
- }
426
- }
427
- async apiDeleteChat(chatType, chatId) {
428
- const r = await this.sendChatCommand({ type: "apiDeleteChat", chatType, chatId });
429
- if (r.type !== "contactDeleted")
430
- throw new ChatCommandError("error deleting chat", r);
431
- }
432
- async apiUpdateProfile(profile) {
433
- const r = await this.sendChatCommand({ type: "apiUpdateProfile", profile });
434
- switch (r.type) {
435
- case "userProfileNoChange":
436
- return undefined;
437
- case "userProfileUpdated":
438
- return r.toProfile;
439
- default:
440
- throw new ChatCommandError("error updating profile", r);
441
- }
442
- }
443
- // func apiParseMarkdown(text: String) throws -> [FormattedText]? {
444
- // let r = chatSendCmdSync(.apiParseMarkdown(text: text))
445
- // if case let .apiParsedMarkdown(formattedText) = r { return formattedText }
446
- // throw r
447
- // }
448
- // func apiCreateUserAddress() async throws -> String {
449
- // let r = await chatSendCmd(.createMyAddress)
450
- // if case let .userContactLinkCreated(connReq) = r { return connReq }
451
- // throw r
452
- // }
453
- // func apiDeleteUserAddress() async throws {
454
- // let r = await chatSendCmd(.deleteMyAddress)
455
- // if case .userContactLinkDeleted = r { return }
456
- // throw r
457
- // }
458
- // func apiGetUserAddress() async throws -> String? {
459
- // let r = await chatSendCmd(.showMyAddress)
460
- // switch r {
461
- // case let .userContactLink(connReq):
462
- // return connReq
463
- // case .chatCmdError(chatError: .errorStore(storeError: .userContactLinkNotFound)):
464
- // return nil
465
- // default: throw r
466
- // }
467
- // }
468
- // func apiAcceptContactRequest(contactReqId: Int64) async throws -> Contact {
469
- // let r = await chatSendCmd(.apiAcceptContact(contactReqId: contactReqId))
470
- // if case let .acceptingContactRequest(contact) = r { return contact }
471
- // throw r
472
- // }
473
- // func apiRejectContactRequest(contactReqId: Int64) async throws {
474
- // let r = await chatSendCmd(.apiRejectContact(contactReqId: contactReqId))
475
- // if case .contactRequestRejected = r { return }
476
- // throw r
477
- // }
478
- // func apiChatRead(type: ChatType, id: Int64, itemRange: (Int64, Int64)) async throws {
479
- // let r = await chatSendCmd(.apiChatRead(type: type, id: id, itemRange: itemRange))
480
- // if case .cmdOk = r { return }
481
- // throw r
482
- // }
483
- // func acceptContactRequest(_ contactRequest: UserContactRequest) async {
484
- // do {
485
- // let contact = try await apiAcceptContactRequest(contactReqId: contactRequest.apiId)
486
- // let chat = Chat(chatInfo: ChatInfo.direct(contact: contact), chatItems: [])
487
- // DispatchQueue.main.async { ChatModel.shared.replaceChat(contactRequest.id, chat) }
488
- // } catch let error {
489
- // logger.error("acceptContactRequest error: \(error.localizedDescription)")
490
- // }
491
- // }
492
- // func rejectContactRequest(_ contactRequest: UserContactRequest) async {
493
- // do {
494
- // try await apiRejectContactRequest(contactReqId: contactRequest.apiId)
495
- // DispatchQueue.main.async { ChatModel.shared.removeChat(contactRequest.id) }
496
- // } catch let error {
497
- // logger.error("rejectContactRequest: \(error.localizedDescription)")
498
- // }
499
- // }
500
- // func markChatRead(_ chat: Chat) async {
501
- // do {
502
- // let minItemId = chat.chatStats.minUnreadItemId
503
- // let itemRange = (minItemId, chat.chatItems.last?.id ?? minItemId)
504
- // let cInfo = chat.chatInfo
505
- // try await apiChatRead(type: cInfo.chatType, id: cInfo.apiId, itemRange: itemRange)
506
- // DispatchQueue.main.async { ChatModel.shared.markChatItemsRead(cInfo) }
507
- // } catch {
508
- // logger.error("markChatRead apiChatRead error: \(error.localizedDescription)")
509
- // }
510
- // }
511
- // func markChatItemRead(_ cInfo: ChatInfo, _ cItem: ChatItem) async {
512
- // do {
513
- // try await apiChatRead(type: cInfo.chatType, id: cInfo.apiId, itemRange: (cItem.id, cItem.id))
514
- // DispatchQueue.main.async { ChatModel.shared.markChatItemRead(cInfo, cItem) }
515
- // } catch {
516
- // logger.error("markChatItemRead apiChatRead error: \(error.localizedDescription)")
517
- // }
518
- // }
519
- // private async okChatCommand(command: ChatCommand): Promise<void> {
520
- // const resp = await this.sendChatCommand(command)
521
- // if (resp.type !== "cmdOk") throw new ChatCommandError("unexpected response", resp)
522
- // }
523
- get connected() {
524
- return this._connected;
525
- }
526
- }
527
- ChatClient.defaultConfig = {
528
- qSize: 16,
529
- tcpTimeout: 4000,
530
- };
531
-
532
- exports.ABQueue = ABQueue;
533
- exports.ChatClient = ChatClient;
534
-
535
- Object.defineProperty(exports, '__esModule', { value: true });
1
+ (function (factory) {
2
+ typeof define === 'function' && define.amd ? define(factory) :
3
+ factory();
4
+ })((function () { 'use strict';
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ChatClient = void 0;
8
+ var client_1 = require("./client");
9
+ Object.defineProperty(exports, "ChatClient", { enumerable: true, get: function () { return client_1.ChatClient; } });
536
10
 
537
11
  }));
package/dist/index.js CHANGED
@@ -1,3 +1,7 @@
1
- import "./websocket";
2
- export { ChatClient } from "./client";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatClient = void 0;
4
+ require("./websocket");
5
+ var client_1 = require("./client");
6
+ Object.defineProperty(exports, "ChatClient", { enumerable: true, get: function () { return client_1.ChatClient; } });
3
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AACpB,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uBAAoB;AACpB,mCAAmC;AAA3B,oGAAA,UAAU,OAAA"}
package/dist/queue.js CHANGED
@@ -1,3 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ABQueue = exports.ABQueueError = void 0;
1
4
  class Sem {
2
5
  constructor(permits) {
3
6
  this.permits = permits;
@@ -16,9 +19,10 @@ class Sem {
16
19
  }
17
20
  }
18
21
  const queueClosed = Symbol();
19
- export class ABQueueError extends Error {
22
+ class ABQueueError extends Error {
20
23
  }
21
- export class ABQueue {
24
+ exports.ABQueueError = ABQueueError;
25
+ class ABQueue {
22
26
  constructor(maxSize) {
23
27
  this.maxSize = maxSize;
24
28
  this.queue = [];
@@ -69,4 +73,5 @@ export class ABQueue {
69
73
  }
70
74
  }
71
75
  }
76
+ exports.ABQueue = ABQueue;
72
77
  //# sourceMappingURL=queue.js.map
package/dist/queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG;IAGP,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAFlB,aAAQ,GAA6B,EAAE,CAAA;IAElB,CAAC;IAEvC,MAAM;QACJ,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;QACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAiB,EAAE,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;SACnD;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAA;IACnB,CAAC;CACF;AAID,MAAM,WAAW,GAAG,MAAM,EAAE,CAAA;AAI5B,MAAM,OAAO,YAAa,SAAQ,KAAK;CAAG;AAE1C,MAAM,OAAO,OAAO;IAOlB,YAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QANnB,UAAK,GAAmB,EAAE,CAAA;QAGnC,cAAS,GAAG,KAAK,CAAA;QACjB,cAAS,GAAG,KAAK,CAAA;QAGvB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CAAC,CAAI;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,CAAe;QACpC,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAA;QACnE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAA;QACnE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAA;QACjB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAkB,CAAA;QAC5C,IAAI,CAAC,KAAK,WAAW,EAAE;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;YACrB,MAAM,IAAI,YAAY,CAAC,uBAAuB,CAAC,CAAA;SAChD;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAA;QACvC,IAAI;YACF,OAAO,EAAC,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,EAAC,CAAA;SACrC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,YAAY,YAAY;gBAAE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAA;YAClD,MAAM,CAAC,CAAA;SACR;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ChatType, ChatItemId, MsgContent, DeleteMode, Profile } from "./command";
1
+ import { ChatItemId, MsgContent, DeleteMode, Profile } from "./command";
2
2
  export declare type ChatResponse = CRActiveUser | CRChatStarted | CRChatRunning | CRApiChats | CRApiChat | CRApiParsedMarkdown | CRUserSMPServers | CRNewChatItem | CRChatItemStatusUpdated | CRChatItemUpdated | CRChatItemDeleted | CRMsgIntegrityError | CRCmdOk | CRUserContactLink | CRUserContactLinkUpdated | CRContactRequestRejected | CRUserProfile | CRUserProfileNoChange | CRUserProfileUpdated | CRInvitation | CRSentConfirmation | CRSentInvitation | CRContactUpdated | CRContactDeleted | CRUserContactLinkCreated | CRUserContactLinkDeleted | CRReceivedContactRequest | CRAcceptingContactRequest | CRContactAlreadyExists | CRContactRequestAlreadyAccepted | CRContactConnecting | CRContactConnected | CRContactAnotherClient | CRContactDisconnected | CRContactSubscribed | CRContactSubError | CRContactSubSummary | CRGroupEmpty | CRPendingSubSummary | CRUserContactLinkSubscribed | CRUserContactLinkSubError | CRMessageError | CRChatCmdError | CRChatError;
3
3
  declare type ChatResponseTag = "activeUser" | "chatStarted" | "chatRunning" | "apiChats" | "apiChat" | "apiParsedMarkdown" | "userSMPServers" | "newChatItem" | "chatItemStatusUpdated" | "chatItemUpdated" | "chatItemDeleted" | "msgIntegrityError" | "cmdOk" | "userContactLink" | "userContactLinkUpdated" | "userContactLinkCreated" | "userContactLinkDeleted" | "contactRequestRejected" | "userProfile" | "userProfileNoChange" | "userProfileUpdated" | "invitation" | "sentConfirmation" | "sentInvitation" | "contactUpdated" | "contactDeleted" | "receivedContactRequest" | "acceptingContactRequest" | "contactAlreadyExists" | "contactRequestAlreadyAccepted" | "contactConnecting" | "contactConnected" | "contactAnotherClient" | "contactDisconnected" | "contactSubscribed" | "contactSubError" | "contactSubSummary" | "groupEmpty" | "pendingSubSummary" | "userContactLinkSubscribed" | "userContactLinkSubError" | "messageError" | "chatCmdError" | "chatError";
4
4
  interface CR {
@@ -192,19 +192,24 @@ export interface Chat {
192
192
  chatStats: ChatStats;
193
193
  }
194
194
  export declare type ChatInfo = CInfoDirect | CInfoGroup | CInfoContactRequest;
195
+ export declare enum ChatInfoType {
196
+ Direct = "direct",
197
+ Group = "group",
198
+ ContactRequest = "contactRequest"
199
+ }
195
200
  interface IChatInfo {
196
- type: ChatType;
201
+ type: ChatInfoType;
197
202
  }
198
203
  interface CInfoDirect extends IChatInfo {
199
- type: ChatType.CTDirect;
204
+ type: ChatInfoType.Direct;
200
205
  contact: Contact;
201
206
  }
202
207
  interface CInfoGroup extends IChatInfo {
203
- type: ChatType.CTGroup;
208
+ type: ChatInfoType.Group;
204
209
  groupInfo: GroupInfo;
205
210
  }
206
211
  interface CInfoContactRequest extends IChatInfo {
207
- type: ChatType.CTContactRequest;
212
+ type: ChatInfoType.ContactRequest;
208
213
  contactRequest: UserContactRequest;
209
214
  }
210
215
  export interface Contact {
@@ -311,6 +316,7 @@ interface CIRcvFileInvitation extends ICIContent {
311
316
  type: "rcvFileInvitation";
312
317
  rcvFileTransfer: RcvFileTransfer;
313
318
  }
319
+ export declare function ciContentText(content: CIContent): string | undefined;
314
320
  interface RcvFileTransfer {
315
321
  }
316
322
  export interface ChatStats {
@@ -359,9 +365,11 @@ interface ChatErrorChat {
359
365
  }
360
366
  interface ChatErrorAgent {
361
367
  type: "errorAgent";
368
+ agentError: AgentErrorType;
362
369
  }
363
370
  interface ChatErrorStore {
364
371
  type: "errorStore";
372
+ storeError: StoreErrorType;
365
373
  }
366
374
  declare type ChatErrorType = CENoActiveUser | CEActiveUserExists;
367
375
  interface CENoActiveUser {
@@ -375,5 +383,11 @@ interface ContactSubStatus {
375
383
  interface PendingSubStatus {
376
384
  }
377
385
  interface AgentErrorType {
386
+ type: string;
387
+ [x: string]: any;
388
+ }
389
+ interface StoreErrorType {
390
+ type: string;
391
+ [x: string]: any;
378
392
  }
379
393
  export {};
package/dist/response.js CHANGED
@@ -1,2 +1,21 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ciContentText = exports.ChatInfoType = void 0;
4
+ var ChatInfoType;
5
+ (function (ChatInfoType) {
6
+ ChatInfoType["Direct"] = "direct";
7
+ ChatInfoType["Group"] = "group";
8
+ ChatInfoType["ContactRequest"] = "contactRequest";
9
+ })(ChatInfoType = exports.ChatInfoType || (exports.ChatInfoType = {}));
10
+ function ciContentText(content) {
11
+ switch (content.type) {
12
+ case "sndMsgContent":
13
+ return content.msgContent.text;
14
+ case "rcvMsgContent":
15
+ return content.msgContent.text;
16
+ default:
17
+ return undefined;
18
+ }
19
+ }
20
+ exports.ciContentText = ciContentText;
2
21
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":";;;AA6UA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,iDAAiC,CAAA;AACnC,CAAC,EAJW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAIvB;AAwJD,SAAgB,aAAa,CAAC,OAAkB;IAC9C,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC,KAAK,eAAe;YAClB,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAA;QAChC;YACE,OAAO,SAAS,CAAA;KACnB;AACH,CAAC;AATD,sCASC"}
package/dist/transport.js CHANGED
@@ -1,9 +1,13 @@
1
- import { ABQueue } from "./queue";
2
- export class TransportError extends Error {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.noop = exports.ChatTransport = exports.ChatResponseError = exports.localServer = exports.WSTransport = exports.Transport = exports.TransportError = void 0;
4
+ const queue_1 = require("./queue");
5
+ class TransportError extends Error {
3
6
  }
4
- export class Transport {
7
+ exports.TransportError = TransportError;
8
+ class Transport {
5
9
  constructor(qSize) {
6
- this.queue = new ABQueue(qSize);
10
+ this.queue = new queue_1.ABQueue(qSize);
7
11
  }
8
12
  [Symbol.asyncIterator]() {
9
13
  return this;
@@ -15,7 +19,8 @@ export class Transport {
15
19
  return this.queue.next();
16
20
  }
17
21
  }
18
- export class WSTransport extends Transport {
22
+ exports.Transport = Transport;
23
+ class WSTransport extends Transport {
19
24
  constructor(sock, timeout, qSize) {
20
25
  super(qSize);
21
26
  this.sock = sock;
@@ -50,6 +55,7 @@ export class WSTransport extends Transport {
50
55
  return data;
51
56
  }
52
57
  }
58
+ exports.WSTransport = WSTransport;
53
59
  function withTimeout(ms, action) {
54
60
  return Promise.race([
55
61
  action(),
@@ -59,18 +65,19 @@ function withTimeout(ms, action) {
59
65
  })(),
60
66
  ]);
61
67
  }
62
- export const localServer = {
68
+ exports.localServer = {
63
69
  host: "localhost",
64
70
  port: "5225",
65
71
  };
66
- export class ChatResponseError extends Error {
72
+ class ChatResponseError extends Error {
67
73
  constructor(message, data) {
68
74
  super(message);
69
75
  this.message = message;
70
76
  this.data = data;
71
77
  }
72
78
  }
73
- export class ChatTransport extends Transport {
79
+ exports.ChatResponseError = ChatResponseError;
80
+ class ChatTransport extends Transport {
74
81
  constructor(ws, timeout, qSize) {
75
82
  super(qSize);
76
83
  this.ws = ws;
@@ -90,7 +97,9 @@ export class ChatTransport extends Transport {
90
97
  return this.ws.write(JSON.stringify(cmd));
91
98
  }
92
99
  }
93
- export function noop() { }
100
+ exports.ChatTransport = ChatTransport;
101
+ function noop() { }
102
+ exports.noop = noop;
94
103
  async function processWSQueue(c, ws) {
95
104
  var _a;
96
105
  for await (const data of ws) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "simplex-chat",
3
- "version": "0.0.1",
3
+ "version": "0.1.0",
4
4
  "description": "SimpleX Chat client",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -47,6 +47,7 @@
47
47
  "prettier": "^2.6.2",
48
48
  "rollup": "^2.72.1",
49
49
  "ts-jest": "^28.0.2",
50
+ "ts-node": "^10.7.0",
50
51
  "typescript": "^4.6.3"
51
52
  },
52
53
  "husky": {