simplex-chat 0.3.0 → 6.5.0-beta.10

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.
Files changed (116) hide show
  1. package/README.md +107 -22
  2. package/binding.gyp +50 -0
  3. package/cpp/simplex.cc +426 -0
  4. package/cpp/simplex.h +46 -0
  5. package/dist/api.d.ts +423 -0
  6. package/dist/api.js +857 -0
  7. package/dist/api.js.map +1 -0
  8. package/dist/bot.d.ts +29 -0
  9. package/dist/bot.js +189 -0
  10. package/dist/bot.js.map +1 -0
  11. package/dist/core.d.ts +128 -0
  12. package/dist/core.js +121 -0
  13. package/dist/core.js.map +1 -0
  14. package/dist/index.d.ts +19 -2
  15. package/dist/index.js +20 -4
  16. package/dist/index.js.map +1 -1
  17. package/dist/simplex.d.ts +10 -0
  18. package/dist/simplex.js +1 -0
  19. package/dist/util.d.ts +15 -0
  20. package/dist/util.js +91 -0
  21. package/dist/util.js.map +1 -0
  22. package/docs/Namespace.api.md +33 -0
  23. package/docs/Namespace.bot.md +23 -0
  24. package/docs/Namespace.core.md +48 -0
  25. package/docs/Namespace.util.md +25 -0
  26. package/docs/README.md +12 -0
  27. package/docs/api.Class.ChatApi.md +1752 -0
  28. package/docs/api.Class.ChatCommandError.md +205 -0
  29. package/docs/api.Enumeration.ConnReqType.md +27 -0
  30. package/docs/api.Interface.BotAddressSettings.md +60 -0
  31. package/docs/api.TypeAlias.DbConfig.md +64 -0
  32. package/docs/api.TypeAlias.EventSubscriberFunc.md +27 -0
  33. package/docs/api.TypeAlias.EventSubscribers.md +11 -0
  34. package/docs/api.Variable.defaultBotAddressSettings.md +11 -0
  35. package/docs/bot.Function.run.md +21 -0
  36. package/docs/bot.Interface.BotConfig.md +75 -0
  37. package/docs/bot.Interface.BotOptions.md +81 -0
  38. package/docs/bot.TypeAlias.BotDbOpts.md +17 -0
  39. package/docs/core.Class.ChatAPIError.md +205 -0
  40. package/docs/core.Class.ChatInitError.md +205 -0
  41. package/docs/core.DBMigrationError.Interface.ErrorMigration.md +41 -0
  42. package/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md +33 -0
  43. package/docs/core.DBMigrationError.Interface.ErrorSQL.md +41 -0
  44. package/docs/core.DBMigrationError.Interface.InvalidConfirmation.md +25 -0
  45. package/docs/core.DBMigrationError.TypeAlias.Tag.md +11 -0
  46. package/docs/core.Enumeration.MigrationConfirmation.md +43 -0
  47. package/docs/core.Function.chatCloseStore.md +23 -0
  48. package/docs/core.Function.chatDecryptFile.md +31 -0
  49. package/docs/core.Function.chatEncryptFile.md +31 -0
  50. package/docs/core.Function.chatMigrateInit.md +31 -0
  51. package/docs/core.Function.chatReadFile.md +27 -0
  52. package/docs/core.Function.chatRecvMsgWait.md +27 -0
  53. package/docs/core.Function.chatSendCmd.md +27 -0
  54. package/docs/core.Function.chatWriteFile.md +31 -0
  55. package/docs/core.Interface.APIResult.md +31 -0
  56. package/docs/core.Interface.CryptoArgs.md +27 -0
  57. package/docs/core.Interface.UpMigration.md +25 -0
  58. package/docs/core.MTRError.Interface.MTREDifferent.md +33 -0
  59. package/docs/core.MTRError.Interface.MTRENoDown.md +33 -0
  60. package/docs/core.MTRError.TypeAlias.Tag.md +11 -0
  61. package/docs/core.MigrationError.Interface.MEDowngrade.md +33 -0
  62. package/docs/core.MigrationError.Interface.MEUpgrade.md +33 -0
  63. package/docs/core.MigrationError.Interface.MigrationError.md +33 -0
  64. package/docs/core.MigrationError.TypeAlias.Tag.md +11 -0
  65. package/docs/core.Namespace.DBMigrationError.md +18 -0
  66. package/docs/core.Namespace.MTRError.md +16 -0
  67. package/docs/core.Namespace.MigrationError.md +17 -0
  68. package/docs/core.TypeAlias.DBMigrationError.md +11 -0
  69. package/docs/core.TypeAlias.MTRError.md +11 -0
  70. package/docs/core.TypeAlias.MigrationError.md +11 -0
  71. package/docs/util.Function.botAddressSettings.md +21 -0
  72. package/docs/util.Function.chatInfoName.md +21 -0
  73. package/docs/util.Function.chatInfoRef.md +21 -0
  74. package/docs/util.Function.ciBotCommand.md +21 -0
  75. package/docs/util.Function.ciContentText.md +21 -0
  76. package/docs/util.Function.contactAddressStr.md +21 -0
  77. package/docs/util.Function.fromLocalProfile.md +21 -0
  78. package/docs/util.Function.reactionText.md +21 -0
  79. package/docs/util.Function.senderName.md +25 -0
  80. package/docs/util.Interface.BotCommand.md +25 -0
  81. package/examples/squaring-bot-pg.js +21 -0
  82. package/examples/squaring-bot-readme.js +17 -0
  83. package/examples/squaring-bot.ts +42 -0
  84. package/package.json +36 -48
  85. package/src/api.ts +939 -0
  86. package/src/bot.ts +214 -0
  87. package/src/core.ts +210 -0
  88. package/src/download-libs.js +239 -0
  89. package/src/index.ts +22 -0
  90. package/src/simplex.d.ts +10 -0
  91. package/src/simplex.js +1 -0
  92. package/src/util.ts +92 -0
  93. package/tsconfig.json +23 -0
  94. package/dist/client.d.ts +0 -61
  95. package/dist/client.js +0 -271
  96. package/dist/client.js.map +0 -1
  97. package/dist/command.d.ts +0 -408
  98. package/dist/command.js +0 -184
  99. package/dist/command.js.map +0 -1
  100. package/dist/index-web.d.ts +0 -1
  101. package/dist/index-web.js +0 -6
  102. package/dist/index-web.js.map +0 -1
  103. package/dist/index.bundle.js +0 -11
  104. package/dist/queue.d.ts +0 -24
  105. package/dist/queue.js +0 -77
  106. package/dist/queue.js.map +0 -1
  107. package/dist/response.d.ts +0 -754
  108. package/dist/response.js +0 -21
  109. package/dist/response.js.map +0 -1
  110. package/dist/test.html +0 -7
  111. package/dist/transport.d.ts +0 -54
  112. package/dist/transport.js +0 -131
  113. package/dist/transport.js.map +0 -1
  114. package/dist/websocket.d.ts +0 -8
  115. package/dist/websocket.js +0 -4
  116. package/dist/websocket.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/bot.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ import { T } from "@simplex-chat/types";
2
+ import * as api from "./api";
3
+ import * as core from "./core";
4
+ import * as util from "./util";
5
+ export type BotDbOpts = api.DbConfig & {
6
+ confirmMigrations?: core.MigrationConfirmation;
7
+ };
8
+ export interface BotOptions {
9
+ createAddress?: boolean;
10
+ updateAddress?: boolean;
11
+ updateProfile?: boolean;
12
+ addressSettings?: api.BotAddressSettings;
13
+ allowFiles?: boolean;
14
+ commands?: T.ChatBotCommand[];
15
+ useBotProfile?: boolean;
16
+ logContacts?: boolean;
17
+ logNetwork?: boolean;
18
+ }
19
+ export interface BotConfig {
20
+ profile: T.Profile;
21
+ dbOpts: BotDbOpts;
22
+ options: BotOptions;
23
+ onMessage?: (chatItem: T.AChatItem, content: T.MsgContent) => void | Promise<void>;
24
+ onCommands?: {
25
+ [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand) => void | Promise<void>);
26
+ };
27
+ events?: api.EventSubscribers;
28
+ }
29
+ export declare function run({ profile, dbOpts, options, onMessage, onCommands, events }: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]>;
package/dist/bot.js ADDED
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = run;
4
+ const types_1 = require("@simplex-chat/types");
5
+ const api = require("./api");
6
+ const core = require("./core");
7
+ const util = require("./util");
8
+ const equal = require("fast-deep-equal");
9
+ const defaultOpts = {
10
+ createAddress: true,
11
+ updateAddress: true,
12
+ updateProfile: true,
13
+ addressSettings: api.defaultBotAddressSettings,
14
+ allowFiles: false,
15
+ commands: [],
16
+ useBotProfile: true,
17
+ logContacts: true,
18
+ logNetwork: false
19
+ };
20
+ async function run({ profile, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {} }) {
21
+ const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp);
22
+ const opts = fullOptions(options);
23
+ if (onMessage)
24
+ subscribeMessages(bot, onMessage);
25
+ if (Object.keys(onCommands).length > 0)
26
+ subscribeCommands(bot, onCommands);
27
+ if (Object.keys(events).length > 0)
28
+ bot.on(events);
29
+ subscribeLogEvents(bot, opts);
30
+ const botProfile = mkBotProfile(profile, opts);
31
+ const user = await createBotUser(bot, botProfile);
32
+ await bot.startChat();
33
+ const address = await createOrUpdateAddress(bot, user, opts);
34
+ if (address) {
35
+ const addressLink = util.contactAddressStr(address.connLinkContact);
36
+ console.log(`Bot address: ${addressLink}`);
37
+ if (opts.useBotProfile)
38
+ botProfile.contactLink = addressLink;
39
+ }
40
+ await updateBotUserProfile(bot, user, botProfile, opts);
41
+ return [bot, user, address];
42
+ }
43
+ function fullOptions(options) {
44
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
45
+ const opts = {
46
+ createAddress: (_a = options.createAddress) !== null && _a !== void 0 ? _a : defaultOpts.createAddress,
47
+ updateAddress: (_b = options.updateAddress) !== null && _b !== void 0 ? _b : defaultOpts.updateAddress,
48
+ updateProfile: (_c = options.updateProfile) !== null && _c !== void 0 ? _c : defaultOpts.updateProfile,
49
+ addressSettings: (_d = options.addressSettings) !== null && _d !== void 0 ? _d : defaultOpts.addressSettings,
50
+ allowFiles: (_e = options.allowFiles) !== null && _e !== void 0 ? _e : defaultOpts.allowFiles,
51
+ commands: (_f = options.commands) !== null && _f !== void 0 ? _f : defaultOpts.commands,
52
+ useBotProfile: (_g = options.useBotProfile) !== null && _g !== void 0 ? _g : defaultOpts.useBotProfile,
53
+ logContacts: (_h = options.logContacts) !== null && _h !== void 0 ? _h : defaultOpts.logContacts,
54
+ logNetwork: (_j = options.logNetwork) !== null && _j !== void 0 ? _j : defaultOpts.logNetwork
55
+ };
56
+ const welcomeMessage = (_k = opts.addressSettings.welcomeMessage) !== null && _k !== void 0 ? _k : defaultOpts.addressSettings.welcomeMessage;
57
+ opts.addressSettings = {
58
+ autoAccept: (_l = opts.addressSettings.autoAccept) !== null && _l !== void 0 ? _l : defaultOpts.addressSettings.autoAccept,
59
+ welcomeMessage: typeof welcomeMessage === "string" ? { type: "text", text: welcomeMessage } : welcomeMessage,
60
+ businessAddress: (_m = opts.addressSettings.businessAddress) !== null && _m !== void 0 ? _m : defaultOpts.addressSettings.businessAddress
61
+ };
62
+ return opts;
63
+ }
64
+ function mkBotProfile(profile, opts) {
65
+ if (opts.useBotProfile) {
66
+ const prefs = profile.preferences || {};
67
+ if (prefs.files || prefs.calls || prefs.voice || prefs.commands) {
68
+ console.log("Option useBotProfile is enabled and profile preferences used for files, calls, voice or commands, exiting");
69
+ process.exit();
70
+ }
71
+ prefs.files = { allow: opts.allowFiles ? types_1.T.FeatureAllowed.Yes : types_1.T.FeatureAllowed.No };
72
+ prefs.calls = { allow: types_1.T.FeatureAllowed.No };
73
+ prefs.voice = { allow: types_1.T.FeatureAllowed.No };
74
+ prefs.commands = opts.commands;
75
+ profile.preferences = prefs;
76
+ profile.peerType = types_1.T.ChatPeerType.Bot;
77
+ }
78
+ else if (opts.commands.length > 0) {
79
+ console.log("Option useBotProfile is disabled and commands are passed, exiting");
80
+ process.exit();
81
+ }
82
+ return profile;
83
+ }
84
+ function subscribeMessages(bot, onMessage) {
85
+ bot.on("newChatItems", async ({ chatItems }) => {
86
+ for (const ci of chatItems) {
87
+ if (ci.chatItem.content.type === "rcvMsgContent") {
88
+ try {
89
+ const p = onMessage(ci, ci.chatItem.content.msgContent);
90
+ if (p instanceof Promise)
91
+ await p;
92
+ }
93
+ catch (e) {
94
+ console.log("message processing error", e);
95
+ }
96
+ }
97
+ }
98
+ });
99
+ }
100
+ function subscribeCommands(bot, commands) {
101
+ bot.on("newChatItems", async (evt) => {
102
+ for (const ci of evt.chatItems) {
103
+ const cmd = util.ciBotCommand(ci.chatItem);
104
+ if (cmd) {
105
+ const cmdFunc = commands[cmd.keyword] || commands[""];
106
+ if (cmdFunc) {
107
+ try {
108
+ const p = cmdFunc(ci, cmd);
109
+ if (p instanceof Promise)
110
+ await p;
111
+ }
112
+ catch (e) {
113
+ console.log(`${cmd} command processing error`, e);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ });
119
+ }
120
+ function subscribeLogEvents(bot, opts) {
121
+ if (opts.logContacts) {
122
+ bot.on({
123
+ "contactConnected": ({ contact }) => console.log(`${contact.profile.displayName} connected`),
124
+ "contactDeletedByContact": ({ contact }) => console.log(`${contact.profile.displayName} deleted connection with bot`)
125
+ });
126
+ }
127
+ if (opts.logNetwork) {
128
+ bot.on({
129
+ "hostConnected": ({ transportHost }) => console.log(`connected server ${transportHost}`),
130
+ "hostDisconnected": ({ transportHost }) => console.log(`diconnected server ${transportHost}`),
131
+ "subscriptionStatus": ({ subscriptionStatus, connections }) => console.log(`${connections.length} subscription(s) ${subscriptionStatus.type}`)
132
+ });
133
+ }
134
+ }
135
+ async function createBotUser(bot, profile) {
136
+ let user = await bot.apiGetActiveUser();
137
+ if (!user) {
138
+ console.log("No active user in database, creating...");
139
+ user = await bot.apiCreateActiveUser(profile);
140
+ }
141
+ console.log("Bot user: ", user.profile.displayName);
142
+ return user;
143
+ }
144
+ async function createOrUpdateAddress(bot, user, opts) {
145
+ const { userId } = user;
146
+ let address = await bot.apiGetUserAddress(userId);
147
+ if (!address) {
148
+ if (opts.createAddress) {
149
+ console.log("Bot has no address, creating...");
150
+ await bot.apiCreateUserAddress(userId);
151
+ address = await bot.apiGetUserAddress(userId);
152
+ if (!address) {
153
+ console.log("Failed reading created user address, exiting");
154
+ process.exit();
155
+ }
156
+ }
157
+ else {
158
+ console.log("Warning: bot has no address");
159
+ return;
160
+ }
161
+ }
162
+ const addressSettings = opts.addressSettings || defaultOpts.addressSettings;
163
+ if (!equal(util.botAddressSettings(address), addressSettings)) {
164
+ if (opts.updateAddress) {
165
+ console.log("Bot address settings changed, updating...");
166
+ await bot.apiSetAddressSettings(userId, addressSettings);
167
+ }
168
+ else {
169
+ console.log("Bot address settings changed");
170
+ }
171
+ }
172
+ return address;
173
+ }
174
+ async function updateBotUserProfile(bot, user, profile, opts) {
175
+ const { userId } = user;
176
+ if (!equal(util.fromLocalProfile(user.profile), profile)) {
177
+ if (opts.updateProfile) {
178
+ console.log("Bot profile changed, updating...");
179
+ const summary = await bot.apiUpdateProfile(userId, profile);
180
+ console.log(summary
181
+ ? `Bot profile updated: ${summary.updateSuccesses} updated contact(s), ${summary.updateFailures} failed contact update(s).`
182
+ : "Unexpected: profile did not change!");
183
+ }
184
+ else {
185
+ console.log("Bot profile changed");
186
+ }
187
+ }
188
+ }
189
+ //# sourceMappingURL=bot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../src/bot.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,128 @@
1
+ import { ChatEvent, ChatResponse, T } from "@simplex-chat/types";
2
+ /**
3
+ * Initialize chat controller
4
+ */
5
+ export declare function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation): Promise<bigint>;
6
+ /**
7
+ * Close chat store
8
+ */
9
+ export declare function chatCloseStore(ctrl: bigint): Promise<void>;
10
+ /**
11
+ * Send chat command as string
12
+ */
13
+ export declare function chatSendCmd(ctrl: bigint, cmd: string): Promise<ChatResponse>;
14
+ /**
15
+ * Receive chat event
16
+ */
17
+ export declare function chatRecvMsgWait(ctrl: bigint, wait: number): Promise<ChatEvent | undefined>;
18
+ /**
19
+ * Write buffer to encrypted file
20
+ */
21
+ export declare function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuffer): Promise<CryptoArgs>;
22
+ /**
23
+ * Read buffer from encrypted file
24
+ */
25
+ export declare function chatReadFile(path: string, { fileKey, fileNonce }: CryptoArgs): Promise<ArrayBuffer>;
26
+ /**
27
+ * Encrypt file
28
+ */
29
+ export declare function chatEncryptFile(ctrl: bigint, fromPath: string, toPath: string): Promise<CryptoArgs>;
30
+ /**
31
+ * Decrypt file
32
+ */
33
+ export declare function chatDecryptFile(fromPath: string, { fileKey, fileNonce }: CryptoArgs, toPath: string): Promise<void>;
34
+ export interface APIResult<R> {
35
+ result?: R;
36
+ error?: T.ChatError;
37
+ }
38
+ export declare class ChatAPIError extends Error {
39
+ message: string;
40
+ chatError: T.ChatError | undefined;
41
+ constructor(message: string, chatError?: T.ChatError | undefined);
42
+ }
43
+ /**
44
+ * Migration confirmation mode
45
+ */
46
+ export declare enum MigrationConfirmation {
47
+ YesUp = "yesUp",
48
+ YesUpDown = "yesUpDown",
49
+ Console = "console",
50
+ Error = "error"
51
+ }
52
+ /**
53
+ * File encryption key and nonce
54
+ */
55
+ export interface CryptoArgs {
56
+ fileKey: string;
57
+ fileNonce: string;
58
+ }
59
+ export declare class ChatInitError extends Error {
60
+ message: string;
61
+ dbMigrationError: DBMigrationError;
62
+ constructor(message: string, dbMigrationError: DBMigrationError);
63
+ }
64
+ export type DBMigrationError = DBMigrationError.InvalidConfirmation | DBMigrationError.ErrorNotADatabase | DBMigrationError.ErrorMigration | DBMigrationError.ErrorSQL;
65
+ export declare namespace DBMigrationError {
66
+ export type Tag = "invalidConfirmation" | "errorNotADatabase" | "errorMigration" | "errorSQL";
67
+ interface Interface {
68
+ type: Tag;
69
+ }
70
+ export interface InvalidConfirmation extends Interface {
71
+ type: "invalidConfirmation";
72
+ }
73
+ export interface ErrorNotADatabase extends Interface {
74
+ type: "errorNotADatabase";
75
+ dbFile: string;
76
+ }
77
+ export interface ErrorMigration extends Interface {
78
+ type: "errorMigration";
79
+ dbFile: string;
80
+ migrationError: MigrationError;
81
+ }
82
+ export interface ErrorSQL extends Interface {
83
+ type: "errorSQL";
84
+ dbFile: string;
85
+ migrationSQLError: string;
86
+ }
87
+ export {};
88
+ }
89
+ export type MigrationError = MigrationError.MEUpgrade | MigrationError.MEDowngrade | MigrationError.MigrationError;
90
+ export declare namespace MigrationError {
91
+ export type Tag = "upgrade" | "downgrade" | "migrationError";
92
+ interface Interface {
93
+ type: Tag;
94
+ }
95
+ export interface MEUpgrade extends Interface {
96
+ type: "upgrade";
97
+ upMigrations: UpMigration;
98
+ }
99
+ export interface MEDowngrade extends Interface {
100
+ type: "downgrade";
101
+ downMigrations: string[];
102
+ }
103
+ export interface MigrationError extends Interface {
104
+ type: "migrationError";
105
+ mtrError: MTRError;
106
+ }
107
+ export {};
108
+ }
109
+ export interface UpMigration {
110
+ upName: string;
111
+ withDown: boolean;
112
+ }
113
+ export type MTRError = MTRError.MTRENoDown | MTRError.MTREDifferent;
114
+ export declare namespace MTRError {
115
+ export type Tag = "noDown" | "different";
116
+ interface Interface {
117
+ type: Tag;
118
+ }
119
+ export interface MTRENoDown extends Interface {
120
+ type: "noDown";
121
+ upMigrations: UpMigration;
122
+ }
123
+ export interface MTREDifferent extends Interface {
124
+ type: "different";
125
+ downMigrations: string[];
126
+ }
127
+ export {};
128
+ }
package/dist/core.js ADDED
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatInitError = exports.MigrationConfirmation = exports.ChatAPIError = void 0;
4
+ exports.chatMigrateInit = chatMigrateInit;
5
+ exports.chatCloseStore = chatCloseStore;
6
+ exports.chatSendCmd = chatSendCmd;
7
+ exports.chatRecvMsgWait = chatRecvMsgWait;
8
+ exports.chatWriteFile = chatWriteFile;
9
+ exports.chatReadFile = chatReadFile;
10
+ exports.chatEncryptFile = chatEncryptFile;
11
+ exports.chatDecryptFile = chatDecryptFile;
12
+ const simplex = require("./simplex");
13
+ /**
14
+ * Initialize chat controller
15
+ */
16
+ async function chatMigrateInit(dbPath, dbKey, confirm) {
17
+ const [ctrl, res] = await simplex.chat_migrate_init(dbPath, dbKey, confirm);
18
+ const json = JSON.parse(res);
19
+ if (json.type === 'ok')
20
+ return ctrl;
21
+ throw new ChatInitError("Database or migration error (see dbMigrationError property)", json);
22
+ }
23
+ /**
24
+ * Close chat store
25
+ */
26
+ async function chatCloseStore(ctrl) {
27
+ const res = await simplex.chat_close_store(ctrl);
28
+ if (res !== "")
29
+ throw new Error(res);
30
+ }
31
+ /**
32
+ * Send chat command as string
33
+ */
34
+ async function chatSendCmd(ctrl, cmd) {
35
+ const res = await simplex.chat_send_cmd(ctrl, cmd);
36
+ const json = JSON.parse(res);
37
+ // console.log(cmd.slice(0, 16), json.result?.type || json.error)
38
+ if (typeof json.result === 'object')
39
+ return json.result;
40
+ if (typeof json.error === 'object')
41
+ throw new ChatAPIError("Chat command error (see chatError property)", json.error);
42
+ throw new ChatAPIError("Invalid chat command result");
43
+ }
44
+ /**
45
+ * Receive chat event
46
+ */
47
+ async function chatRecvMsgWait(ctrl, wait) {
48
+ const res = await simplex.chat_recv_msg_wait(ctrl, wait);
49
+ if (res === "")
50
+ return undefined;
51
+ const json = JSON.parse(res);
52
+ // if (json.result) console.log("event", json.result.type)
53
+ if (typeof json.result === 'object')
54
+ return json.result;
55
+ if (typeof json.error === 'object')
56
+ throw new ChatAPIError("Chat event error (see chatError property)", json.error);
57
+ throw new ChatAPIError("Invalid chat event");
58
+ }
59
+ /**
60
+ * Write buffer to encrypted file
61
+ */
62
+ async function chatWriteFile(ctrl, path, buffer) {
63
+ const res = await simplex.chat_write_file(ctrl, path, buffer);
64
+ return cryptoArgsResult(res);
65
+ }
66
+ /**
67
+ * Read buffer from encrypted file
68
+ */
69
+ async function chatReadFile(path, { fileKey, fileNonce }) {
70
+ return await simplex.chat_read_file(path, fileKey, fileNonce);
71
+ }
72
+ /**
73
+ * Encrypt file
74
+ */
75
+ async function chatEncryptFile(ctrl, fromPath, toPath) {
76
+ const res = await simplex.chat_encrypt_file(ctrl, fromPath, toPath);
77
+ return cryptoArgsResult(res);
78
+ }
79
+ /**
80
+ * Decrypt file
81
+ */
82
+ async function chatDecryptFile(fromPath, { fileKey, fileNonce }, toPath) {
83
+ const res = await simplex.chat_decrypt_file(fromPath, fileKey, fileNonce, toPath);
84
+ if (res !== "")
85
+ throw new Error(res);
86
+ }
87
+ function cryptoArgsResult(res) {
88
+ const json = JSON.parse(res);
89
+ switch (json.type) {
90
+ case "result": return json.cryptoArgs;
91
+ case "error": throw Error(json.writeError);
92
+ default: throw Error("unexpected chat_write_file result: " + res);
93
+ }
94
+ }
95
+ class ChatAPIError extends Error {
96
+ constructor(message, chatError = undefined) {
97
+ super(message);
98
+ this.message = message;
99
+ this.chatError = chatError;
100
+ }
101
+ }
102
+ exports.ChatAPIError = ChatAPIError;
103
+ /**
104
+ * Migration confirmation mode
105
+ */
106
+ var MigrationConfirmation;
107
+ (function (MigrationConfirmation) {
108
+ MigrationConfirmation["YesUp"] = "yesUp";
109
+ MigrationConfirmation["YesUpDown"] = "yesUpDown";
110
+ MigrationConfirmation["Console"] = "console";
111
+ MigrationConfirmation["Error"] = "error";
112
+ })(MigrationConfirmation || (exports.MigrationConfirmation = MigrationConfirmation = {}));
113
+ class ChatInitError extends Error {
114
+ constructor(message, dbMigrationError) {
115
+ super(message);
116
+ this.message = message;
117
+ this.dbMigrationError = dbMigrationError;
118
+ }
119
+ }
120
+ exports.ChatInitError = ChatInitError;
121
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,19 @@
1
- import "./websocket";
2
- export { ChatClient } from "./client";
1
+ /**
2
+ * A simple declarative API to run a chat-bot with a single function call.
3
+ * It automates creating and updating of the bot profile, address and bot commands shown in the app UI.
4
+ */
5
+ export * as bot from "./bot";
6
+ /**
7
+ * An API to send chat commands and receive chat events to/from chat core.
8
+ * You need to use it in bot event handlers, and for any other use cases.
9
+ */
10
+ export * as api from "./api";
11
+ /**
12
+ * A low level API to the core library - the same that is used in desktop clients.
13
+ * You are unlikely to ever need to use this module directly.
14
+ */
15
+ export * as core from "./core";
16
+ /**
17
+ * Useful functions for chat events and types.
18
+ */
19
+ export * as util from "./util";
package/dist/index.js CHANGED
@@ -1,7 +1,23 @@
1
1
  "use strict";
2
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
+ exports.util = exports.core = exports.api = exports.bot = void 0;
4
+ /**
5
+ * A simple declarative API to run a chat-bot with a single function call.
6
+ * It automates creating and updating of the bot profile, address and bot commands shown in the app UI.
7
+ */
8
+ exports.bot = require("./bot");
9
+ /**
10
+ * An API to send chat commands and receive chat events to/from chat core.
11
+ * You need to use it in bot event handlers, and for any other use cases.
12
+ */
13
+ exports.api = require("./api");
14
+ /**
15
+ * A low level API to the core library - the same that is used in desktop clients.
16
+ * You are unlikely to ever need to use this module directly.
17
+ */
18
+ exports.core = require("./core");
19
+ /**
20
+ * Useful functions for chat events and types.
21
+ */
22
+ exports.util = require("./util");
7
23
  //# 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,uBAAoB;AACpB,mCAAmC;AAA3B,oGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,+BAA4B;AAE5B;;;GAGG;AACH,+BAA4B;AAE5B;;;GAGG;AACH,iCAA8B;AAE9B;;GAEG;AACH,iCAA8B"}
@@ -0,0 +1,10 @@
1
+ // These functions are defined in CPP add-on ../cpp/simplex.cc
2
+
3
+ export function chat_migrate_init(dbPath: string, dbKey: string, confirm: string): Promise<[bigint, string]>
4
+ export function chat_close_store(ctrl: bigint): Promise<string>
5
+ export function chat_send_cmd(ctrl: bigint, cmd: string): Promise<string>
6
+ export function chat_recv_msg_wait(ctrl: bigint, wait: number): Promise<string>
7
+ export function chat_write_file(ctrl: bigint, path: string, buffer: ArrayBuffer): Promise<string>
8
+ export function chat_read_file(path: string, key: string, nonce: string): Promise<ArrayBuffer>
9
+ export function chat_encrypt_file(ctrl: bigint, fromPath: string, toPath: string): Promise<string>
10
+ export function chat_decrypt_file(fromPath: string, key: string, nonce: string, toPath: string): Promise<string>
@@ -0,0 +1 @@
1
+ module.exports = require("../build/Release/simplex")
package/dist/util.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { T } from "@simplex-chat/types";
2
+ import { BotAddressSettings } from "./api";
3
+ export declare function chatInfoRef(cInfo: T.ChatInfo): T.ChatRef | undefined;
4
+ export declare function chatInfoName(cInfo: T.ChatInfo): string;
5
+ export declare function senderName(cInfo: T.ChatInfo, chatDir: T.CIDirection): string;
6
+ export declare function contactAddressStr(link: T.CreatedConnLink): string;
7
+ export declare function botAddressSettings({ addressSettings }: T.UserContactLink): BotAddressSettings;
8
+ export declare function fromLocalProfile({ displayName, fullName, shortDescr, image, contactLink, preferences, peerType }: T.LocalProfile): T.Profile;
9
+ export declare function ciContentText({ content }: T.ChatItem): string | undefined;
10
+ export interface BotCommand {
11
+ keyword: string;
12
+ params: string;
13
+ }
14
+ export declare function ciBotCommand(chatItem: T.ChatItem): BotCommand | undefined;
15
+ export declare function reactionText(reaction: T.ACIReaction): string;