@shhhum/simplex-chat 0.0.0-placeholder → 7.1.0-beta.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +130 -0
  3. package/dist/api.d.ts +439 -0
  4. package/dist/api.js +911 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/bot.d.ts +34 -0
  7. package/dist/bot.js +194 -0
  8. package/dist/bot.js.map +1 -0
  9. package/dist/cli.d.ts +4 -0
  10. package/dist/cli.js +46 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/core.d.ts +138 -0
  13. package/dist/core.js +144 -0
  14. package/dist/core.js.map +1 -0
  15. package/dist/index.d.ts +19 -0
  16. package/dist/index.js +23 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/libs.d.ts +12 -0
  19. package/dist/libs.js +210 -0
  20. package/dist/libs.js.map +1 -0
  21. package/dist/release.d.ts +5 -0
  22. package/dist/release.js +20 -0
  23. package/dist/release.js.map +1 -0
  24. package/dist/simplex.d.ts +12 -0
  25. package/dist/simplex.js +22 -0
  26. package/dist/util.d.ts +15 -0
  27. package/dist/util.js +91 -0
  28. package/dist/util.js.map +1 -0
  29. package/docs/Namespace.api.md +33 -0
  30. package/docs/Namespace.bot.md +24 -0
  31. package/docs/Namespace.core.md +50 -0
  32. package/docs/Namespace.util.md +25 -0
  33. package/docs/README.md +12 -0
  34. package/docs/api.Class.ChatApi.md +1851 -0
  35. package/docs/api.Class.ChatCommandError.md +205 -0
  36. package/docs/api.Enumeration.ConnReqType.md +27 -0
  37. package/docs/api.Interface.BotAddressSettings.md +60 -0
  38. package/docs/api.TypeAlias.DbConfig.md +62 -0
  39. package/docs/api.TypeAlias.EventSubscriberFunc.md +31 -0
  40. package/docs/api.TypeAlias.EventSubscribers.md +11 -0
  41. package/docs/api.Variable.defaultBotAddressSettings.md +11 -0
  42. package/docs/bot.Function.run.md +21 -0
  43. package/docs/bot.Function.subscribeChatItems.md +27 -0
  44. package/docs/bot.Interface.BotConfig.md +87 -0
  45. package/docs/bot.Interface.BotOptions.md +81 -0
  46. package/docs/bot.TypeAlias.BotDbOpts.md +21 -0
  47. package/docs/core.Class.ChatAPIError.md +205 -0
  48. package/docs/core.Class.ChatInitError.md +205 -0
  49. package/docs/core.DBMigrationError.Interface.ErrorMigration.md +41 -0
  50. package/docs/core.DBMigrationError.Interface.ErrorNotADatabase.md +33 -0
  51. package/docs/core.DBMigrationError.Interface.ErrorSQL.md +41 -0
  52. package/docs/core.DBMigrationError.Interface.InvalidConfirmation.md +25 -0
  53. package/docs/core.DBMigrationError.Interface.InvalidQueueSize.md +25 -0
  54. package/docs/core.DBMigrationError.TypeAlias.Tag.md +11 -0
  55. package/docs/core.Enumeration.MigrationConfirmation.md +43 -0
  56. package/docs/core.Function.chatCloseStore.md +23 -0
  57. package/docs/core.Function.chatDecryptFile.md +31 -0
  58. package/docs/core.Function.chatEncryptFile.md +31 -0
  59. package/docs/core.Function.chatMigrateInit.md +37 -0
  60. package/docs/core.Function.chatReadFile.md +27 -0
  61. package/docs/core.Function.chatRecvMsgWait.md +27 -0
  62. package/docs/core.Function.chatSendCmd.md +27 -0
  63. package/docs/core.Function.chatWriteFile.md +31 -0
  64. package/docs/core.Function.loadLibrary.md +24 -0
  65. package/docs/core.Interface.APIResult.md +31 -0
  66. package/docs/core.Interface.CryptoArgs.md +27 -0
  67. package/docs/core.Interface.UpMigration.md +25 -0
  68. package/docs/core.MTRError.Interface.MTREDifferent.md +33 -0
  69. package/docs/core.MTRError.Interface.MTRENoDown.md +33 -0
  70. package/docs/core.MTRError.TypeAlias.Tag.md +11 -0
  71. package/docs/core.MigrationError.Interface.MEDowngrade.md +33 -0
  72. package/docs/core.MigrationError.Interface.MEUpgrade.md +33 -0
  73. package/docs/core.MigrationError.Interface.MigrationError.md +33 -0
  74. package/docs/core.MigrationError.TypeAlias.Tag.md +11 -0
  75. package/docs/core.Namespace.DBMigrationError.md +19 -0
  76. package/docs/core.Namespace.MTRError.md +16 -0
  77. package/docs/core.Namespace.MigrationError.md +17 -0
  78. package/docs/core.TypeAlias.Backend.md +11 -0
  79. package/docs/core.TypeAlias.DBMigrationError.md +11 -0
  80. package/docs/core.TypeAlias.MTRError.md +11 -0
  81. package/docs/core.TypeAlias.MigrationError.md +11 -0
  82. package/docs/util.Function.botAddressSettings.md +21 -0
  83. package/docs/util.Function.chatInfoName.md +21 -0
  84. package/docs/util.Function.chatInfoRef.md +21 -0
  85. package/docs/util.Function.ciBotCommand.md +21 -0
  86. package/docs/util.Function.ciContentText.md +21 -0
  87. package/docs/util.Function.contactAddressStr.md +21 -0
  88. package/docs/util.Function.fromLocalProfile.md +21 -0
  89. package/docs/util.Function.reactionText.md +21 -0
  90. package/docs/util.Function.senderName.md +25 -0
  91. package/docs/util.Interface.BotCommand.md +25 -0
  92. package/examples/squaring-bot-readme.js +17 -0
  93. package/examples/squaring-bot.ts +42 -0
  94. package/package.json +52 -6
  95. package/src/api.ts +997 -0
  96. package/src/bot.ts +221 -0
  97. package/src/cli.ts +42 -0
  98. package/src/core.ts +240 -0
  99. package/src/index.ts +22 -0
  100. package/src/libs.ts +202 -0
  101. package/src/release.ts +19 -0
  102. package/src/simplex.d.ts +12 -0
  103. package/src/simplex.js +22 -0
  104. package/src/util.ts +92 -0
  105. package/tsconfig.json +23 -0
@@ -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,34 @@
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
+ queueSize?: number;
8
+ };
9
+ export interface BotOptions {
10
+ createAddress?: boolean;
11
+ updateAddress?: boolean;
12
+ updateProfile?: boolean;
13
+ addressSettings?: api.BotAddressSettings;
14
+ allowFiles?: boolean;
15
+ commands?: T.ChatBotCommand[];
16
+ useBotProfile?: boolean;
17
+ logContacts?: boolean;
18
+ logNetwork?: boolean;
19
+ }
20
+ export interface BotConfig {
21
+ profile: T.Profile;
22
+ simplexDomain?: string | null;
23
+ dbOpts: BotDbOpts;
24
+ options: BotOptions;
25
+ onMessage?: (chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>;
26
+ onCommands?: {
27
+ [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>);
28
+ };
29
+ events?: api.EventSubscribers;
30
+ }
31
+ export declare function run({ profile, simplexDomain, dbOpts, options, onMessage, onCommands, events }: BotConfig): Promise<[api.ChatApi, T.User, T.UserContactLink | undefined]>;
32
+ export declare function subscribeChatItems(bot: api.ChatApi, onMessage: ((chatItem: T.AChatItem, content: T.MsgContent, chat: api.ChatApi) => void | Promise<void>) | undefined, commands: {
33
+ [K in string]?: ((chatItem: T.AChatItem, command: util.BotCommand, chat: api.ChatApi) => void | Promise<void>);
34
+ }): void;
package/dist/bot.js ADDED
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = run;
4
+ exports.subscribeChatItems = subscribeChatItems;
5
+ const types_1 = require("@simplex-chat/types");
6
+ const api = require("./api");
7
+ const core = require("./core");
8
+ const util = require("./util");
9
+ const equal = require("fast-deep-equal");
10
+ const defaultOpts = {
11
+ createAddress: true,
12
+ updateAddress: true,
13
+ updateProfile: true,
14
+ addressSettings: api.defaultBotAddressSettings,
15
+ allowFiles: false,
16
+ commands: [],
17
+ useBotProfile: true,
18
+ logContacts: true,
19
+ logNetwork: false
20
+ };
21
+ async function run({ profile, simplexDomain, dbOpts, options = defaultOpts, onMessage, onCommands = {}, events = {} }) {
22
+ const bot = await api.ChatApi.init(dbOpts, dbOpts.confirmMigrations || core.MigrationConfirmation.YesUp, dbOpts.queueSize);
23
+ const opts = fullOptions(options);
24
+ if (onMessage || Object.keys(onCommands).length > 0)
25
+ subscribeChatItems(bot, onMessage, onCommands);
26
+ if (Object.keys(events).length > 0)
27
+ bot.on(events);
28
+ subscribeLogEvents(bot, opts);
29
+ const botProfile = mkBotProfile(profile, opts);
30
+ const user = await createBotUser(bot, botProfile);
31
+ await bot.startChat();
32
+ const address = await createOrUpdateAddress(bot, user, opts);
33
+ if (address) {
34
+ const addressLink = util.contactAddressStr(address.connLinkContact);
35
+ console.log(`Bot address: ${addressLink}`);
36
+ if (opts.useBotProfile)
37
+ botProfile.contactLink = addressLink;
38
+ }
39
+ const namedUser = await updateBotSimplexDomain(bot, user, simplexDomain, opts);
40
+ await updateBotUserProfile(bot, namedUser, 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 subscribeChatItems(bot, onMessage, commands) {
85
+ bot.on("newChatItems", async ({ chatItems }) => {
86
+ for (const ci of chatItems) {
87
+ const content = ci.chatItem.content;
88
+ if (content.type !== "rcvMsgContent")
89
+ continue;
90
+ const cmd = util.ciBotCommand(ci.chatItem);
91
+ const cmdFunc = cmd && (commands[cmd.keyword] || commands[""]);
92
+ try {
93
+ if (cmd && cmdFunc)
94
+ await cmdFunc(ci, cmd, bot);
95
+ else if (onMessage)
96
+ await onMessage(ci, content.msgContent, bot);
97
+ }
98
+ catch (e) {
99
+ console.log(cmd && cmdFunc ? `${cmd.keyword} command processing error` : "message processing error", e);
100
+ }
101
+ }
102
+ });
103
+ }
104
+ function subscribeLogEvents(bot, opts) {
105
+ if (opts.logContacts) {
106
+ bot.on({
107
+ "contactConnected": ({ contact }) => console.log(`${contact.profile.displayName} connected`),
108
+ "contactDeletedByContact": ({ contact }) => console.log(`${contact.profile.displayName} deleted connection with bot`)
109
+ });
110
+ }
111
+ if (opts.logNetwork) {
112
+ bot.on({
113
+ "hostConnected": ({ transportHost }) => console.log(`connected server ${transportHost}`),
114
+ "hostDisconnected": ({ transportHost }) => console.log(`diconnected server ${transportHost}`),
115
+ "subscriptionStatus": ({ subscriptionStatus, connections }) => console.log(`${connections.length} subscription(s) ${subscriptionStatus.type}`)
116
+ });
117
+ }
118
+ }
119
+ async function createBotUser(bot, profile) {
120
+ let user = await bot.apiGetActiveUser();
121
+ if (!user) {
122
+ console.log("No active user in database, creating...");
123
+ user = await bot.apiCreateActiveUser(profile);
124
+ }
125
+ console.log("Bot user: ", user.profile.displayName);
126
+ return user;
127
+ }
128
+ async function createOrUpdateAddress(bot, user, opts) {
129
+ const { userId } = user;
130
+ let address = await bot.apiGetUserAddress(userId);
131
+ if (!address) {
132
+ if (opts.createAddress) {
133
+ console.log("Bot has no address, creating...");
134
+ await bot.apiCreateUserAddress(userId);
135
+ address = await bot.apiGetUserAddress(userId);
136
+ if (!address) {
137
+ console.log("Failed reading created user address, exiting");
138
+ process.exit();
139
+ }
140
+ }
141
+ else {
142
+ console.log("Warning: bot has no address");
143
+ return;
144
+ }
145
+ }
146
+ const addressSettings = opts.addressSettings || defaultOpts.addressSettings;
147
+ if (!equal(util.botAddressSettings(address), addressSettings)) {
148
+ if (opts.updateAddress) {
149
+ console.log("Bot address settings changed, updating...");
150
+ await bot.apiSetAddressSettings(userId, addressSettings);
151
+ }
152
+ else {
153
+ console.log("Bot address settings changed");
154
+ }
155
+ }
156
+ return address;
157
+ }
158
+ async function updateBotSimplexDomain(bot, user, simplexDomain, opts) {
159
+ var _a;
160
+ if (simplexDomain === undefined)
161
+ return user;
162
+ const domain = simplexDomain === null ? undefined : simplexDomain.toLowerCase();
163
+ if (((_a = user.profile.contactDomain) === null || _a === void 0 ? void 0 : _a.domain) === domain)
164
+ return user;
165
+ if (!opts.updateAddress) {
166
+ console.log("Bot SimpleX name changed");
167
+ return user;
168
+ }
169
+ console.log("Bot SimpleX name changed, updating...");
170
+ try {
171
+ return await bot.apiSetUserDomain(user.userId, domain);
172
+ }
173
+ catch (e) {
174
+ console.log("Error updating bot SimpleX name", e);
175
+ return user;
176
+ }
177
+ }
178
+ async function updateBotUserProfile(bot, user, profile, opts) {
179
+ const { userId } = user;
180
+ const { contactDomain, ...currentProfile } = util.fromLocalProfile(user.profile);
181
+ if (!equal(currentProfile, profile)) {
182
+ if (opts.updateProfile) {
183
+ console.log("Bot profile changed, updating...");
184
+ const summary = await bot.apiUpdateProfile(userId, { ...profile, contactDomain });
185
+ console.log(summary
186
+ ? `Bot profile updated: ${summary.updateSuccesses} updated contact(s), ${summary.updateFailures} failed contact update(s).`
187
+ : "Unexpected: profile did not change!");
188
+ }
189
+ else {
190
+ console.log("Bot profile changed");
191
+ }
192
+ }
193
+ }
194
+ //# 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/cli.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import type { Backend } from "./core";
3
+ export declare function parseInstallArgs(argv: string[]): Backend;
4
+ export declare function main(argv: string[]): Promise<number>;
package/dist/cli.js ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.parseInstallArgs = parseInstallArgs;
5
+ exports.main = main;
6
+ const util_1 = require("util");
7
+ const libs_1 = require("./libs");
8
+ const USAGE = "usage: simplex-chat install [--backend sqlite|postgres]";
9
+ const EXIT_INSTALL_FAILED = 1;
10
+ const EXIT_USAGE = 2;
11
+ function parseInstallArgs(argv) {
12
+ const { positionals, values: { backend = "sqlite" } } = (0, util_1.parseArgs)({ args: argv, allowPositionals: true, options: { backend: { type: "string" } } });
13
+ if (positionals.length !== 1 || positionals[0] !== "install")
14
+ throw new Error("expected command: install");
15
+ if (backend !== "sqlite" && backend !== "postgres")
16
+ throw new Error(`invalid backend: ${backend}`);
17
+ return backend;
18
+ }
19
+ async function main(argv) {
20
+ if (argv.includes("-h") || argv.includes("--help")) {
21
+ console.log(USAGE);
22
+ return 0;
23
+ }
24
+ let backend;
25
+ try {
26
+ backend = parseInstallArgs(argv);
27
+ }
28
+ catch (e) {
29
+ console.error(`${e.message}\n${USAGE}`);
30
+ return EXIT_USAGE;
31
+ }
32
+ try {
33
+ const [dir, addon] = await Promise.all([(0, libs_1.resolveLibsDir)(backend), (0, libs_1.resolveAddonPath)()]);
34
+ console.log(`libsimplex installed at: ${dir}`);
35
+ console.log(`Node.js add-on installed at: ${addon}`);
36
+ return 0;
37
+ }
38
+ catch (e) {
39
+ console.error(`install failed: ${e.message}`);
40
+ return EXIT_INSTALL_FAILED;
41
+ }
42
+ }
43
+ if (require.main === module) {
44
+ main(process.argv.slice(2)).then(code => { process.exitCode = code; });
45
+ }
46
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AASA,4CAKC;AAED,oBAqBC;AApCD,+BAA8B;AAE9B,iCAAuD;AAEvD,MAAM,KAAK,GAAG,yDAAyD,CAAA;AACvE,MAAM,mBAAmB,GAAG,CAAC,CAAA;AAC7B,MAAM,UAAU,GAAG,CAAC,CAAA;AAEpB,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,EAAC,OAAO,GAAG,QAAQ,EAAC,EAAC,GAAG,IAAA,gBAAS,EAAC,EAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAC,OAAO,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,CAAA;IACzI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1G,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAA;IAClG,OAAO,OAAO,CAAA;AAChB,CAAC;AAEM,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,CAAA;IACV,CAAC;IACD,IAAI,OAAgB,CAAA;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,GAAI,CAAW,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAA;QAClD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,qBAAc,EAAC,OAAO,CAAC,EAAE,IAAA,uBAAgB,GAAE,CAAC,CAAC,CAAA;QACrF,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAA;QAC9C,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAA;QACpD,OAAO,CAAC,CAAA;IACV,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,mBAAoB,CAAW,CAAC,OAAO,EAAE,CAAC,CAAA;QACxD,OAAO,mBAAmB,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;AACvE,CAAC"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,138 @@
1
+ import { ChatEvent, ChatResponse, T } from "@simplex-chat/types";
2
+ export type Backend = "sqlite" | "postgres";
3
+ /**
4
+ * Resolve (downloading on first use) and load libsimplex for the backend.
5
+ * One libsimplex per process: the Haskell runtime is initialized once, and another backend is rejected.
6
+ */
7
+ export declare function loadLibrary(backend: Backend): Promise<void>;
8
+ /**
9
+ * Initialize chat controller
10
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
11
+ */
12
+ export declare function chatMigrateInit(dbPath: string, dbKey: string, confirm: MigrationConfirmation, queueSize?: number): Promise<bigint>;
13
+ /**
14
+ * Close chat store
15
+ */
16
+ export declare function chatCloseStore(ctrl: bigint): Promise<void>;
17
+ /**
18
+ * Send chat command as string
19
+ */
20
+ export declare function chatSendCmd(ctrl: bigint, cmd: string): Promise<ChatResponse>;
21
+ /**
22
+ * Receive chat event
23
+ */
24
+ export declare function chatRecvMsgWait(ctrl: bigint, wait: number): Promise<ChatEvent | undefined>;
25
+ /**
26
+ * Write buffer to encrypted file
27
+ */
28
+ export declare function chatWriteFile(ctrl: bigint, path: string, buffer: ArrayBuffer | Uint8Array): Promise<CryptoArgs>;
29
+ /**
30
+ * Read buffer from encrypted file
31
+ */
32
+ export declare function chatReadFile(path: string, { fileKey, fileNonce }: CryptoArgs): Promise<Buffer>;
33
+ /**
34
+ * Encrypt file
35
+ */
36
+ export declare function chatEncryptFile(ctrl: bigint, fromPath: string, toPath: string): Promise<CryptoArgs>;
37
+ /**
38
+ * Decrypt file
39
+ */
40
+ export declare function chatDecryptFile(fromPath: string, { fileKey, fileNonce }: CryptoArgs, toPath: string): Promise<void>;
41
+ export interface APIResult<R> {
42
+ result?: R;
43
+ error?: T.ChatError;
44
+ }
45
+ export declare class ChatAPIError extends Error {
46
+ message: string;
47
+ chatError: T.ChatError | undefined;
48
+ constructor(message: string, chatError?: T.ChatError | undefined);
49
+ }
50
+ /**
51
+ * Migration confirmation mode
52
+ */
53
+ export declare enum MigrationConfirmation {
54
+ YesUp = "yesUp",
55
+ YesUpDown = "yesUpDown",
56
+ Console = "console",
57
+ Error = "error"
58
+ }
59
+ /**
60
+ * File encryption key and nonce
61
+ */
62
+ export interface CryptoArgs {
63
+ fileKey: string;
64
+ fileNonce: string;
65
+ }
66
+ export declare class ChatInitError extends Error {
67
+ message: string;
68
+ dbMigrationError: DBMigrationError;
69
+ constructor(message: string, dbMigrationError: DBMigrationError);
70
+ }
71
+ export type DBMigrationError = DBMigrationError.InvalidConfirmation | DBMigrationError.InvalidQueueSize | DBMigrationError.ErrorNotADatabase | DBMigrationError.ErrorMigration | DBMigrationError.ErrorSQL;
72
+ export declare namespace DBMigrationError {
73
+ export type Tag = "invalidConfirmation" | "invalidQueueSize" | "errorNotADatabase" | "errorMigration" | "errorSQL";
74
+ interface Interface {
75
+ type: Tag;
76
+ }
77
+ export interface InvalidConfirmation extends Interface {
78
+ type: "invalidConfirmation";
79
+ }
80
+ export interface InvalidQueueSize extends Interface {
81
+ type: "invalidQueueSize";
82
+ }
83
+ export interface ErrorNotADatabase extends Interface {
84
+ type: "errorNotADatabase";
85
+ dbFile: string;
86
+ }
87
+ export interface ErrorMigration extends Interface {
88
+ type: "errorMigration";
89
+ dbFile: string;
90
+ migrationError: MigrationError;
91
+ }
92
+ export interface ErrorSQL extends Interface {
93
+ type: "errorSQL";
94
+ dbFile: string;
95
+ migrationSQLError: string;
96
+ }
97
+ export {};
98
+ }
99
+ export type MigrationError = MigrationError.MEUpgrade | MigrationError.MEDowngrade | MigrationError.MigrationError;
100
+ export declare namespace MigrationError {
101
+ export type Tag = "upgrade" | "downgrade" | "migrationError";
102
+ interface Interface {
103
+ type: Tag;
104
+ }
105
+ export interface MEUpgrade extends Interface {
106
+ type: "upgrade";
107
+ upMigrations: UpMigration[];
108
+ }
109
+ export interface MEDowngrade extends Interface {
110
+ type: "downgrade";
111
+ downMigrations: string[];
112
+ }
113
+ export interface MigrationError extends Interface {
114
+ type: "migrationError";
115
+ mtrError: MTRError;
116
+ }
117
+ export {};
118
+ }
119
+ export interface UpMigration {
120
+ upName: string;
121
+ withDown: boolean;
122
+ }
123
+ export type MTRError = MTRError.MTRENoDown | MTRError.MTREDifferent;
124
+ export declare namespace MTRError {
125
+ export type Tag = "noDown" | "different";
126
+ interface Interface {
127
+ type: Tag;
128
+ }
129
+ export interface MTRENoDown extends Interface {
130
+ type: "noDown";
131
+ dbMigrations: string[];
132
+ }
133
+ export interface MTREDifferent extends Interface {
134
+ type: "different";
135
+ downMigrations: string[];
136
+ }
137
+ export {};
138
+ }
package/dist/core.js ADDED
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatInitError = exports.MigrationConfirmation = exports.ChatAPIError = void 0;
4
+ exports.loadLibrary = loadLibrary;
5
+ exports.chatMigrateInit = chatMigrateInit;
6
+ exports.chatCloseStore = chatCloseStore;
7
+ exports.chatSendCmd = chatSendCmd;
8
+ exports.chatRecvMsgWait = chatRecvMsgWait;
9
+ exports.chatWriteFile = chatWriteFile;
10
+ exports.chatReadFile = chatReadFile;
11
+ exports.chatEncryptFile = chatEncryptFile;
12
+ exports.chatDecryptFile = chatDecryptFile;
13
+ const libs = require("./libs");
14
+ const simplex = require("./simplex");
15
+ let loading;
16
+ /**
17
+ * Resolve (downloading on first use) and load libsimplex for the backend.
18
+ * One libsimplex per process: the Haskell runtime is initialized once, and another backend is rejected.
19
+ */
20
+ function loadLibrary(backend) {
21
+ if (loading) {
22
+ if (loading.backend === backend)
23
+ return loading.promise;
24
+ return Promise.reject(new Error(`libsimplex already loaded with backend=${loading.backend}; cannot switch to ${backend} in the same process`));
25
+ }
26
+ const promise = Promise.all([libs.resolveLibsDir(backend), libs.resolveAddonPath()])
27
+ .then(([dir, addon]) => simplex.load(addon, libs.libPath(dir)));
28
+ loading = { backend, promise };
29
+ // a failed download or load can be retried
30
+ promise.catch(() => { loading = undefined; });
31
+ return promise;
32
+ }
33
+ /**
34
+ * Initialize chat controller
35
+ * @param {number} [queueSize] - Size of internal queues, the core default is used when omitted.
36
+ */
37
+ async function chatMigrateInit(dbPath, dbKey, confirm, queueSize) {
38
+ const [ctrl, res] = queueSize === undefined
39
+ ? await simplex.chat_migrate_init(dbPath, dbKey, confirm)
40
+ : await simplex.chat_migrate_init_queue(dbPath, dbKey, confirm, queueSize);
41
+ const json = JSON.parse(res);
42
+ if (json.type === 'ok')
43
+ return ctrl;
44
+ throw new ChatInitError("Database or migration error (see dbMigrationError property)", json);
45
+ }
46
+ /**
47
+ * Close chat store
48
+ */
49
+ async function chatCloseStore(ctrl) {
50
+ const res = await simplex.chat_close_store(ctrl);
51
+ if (res !== "")
52
+ throw new Error(res);
53
+ }
54
+ /**
55
+ * Send chat command as string
56
+ */
57
+ async function chatSendCmd(ctrl, cmd) {
58
+ const res = await simplex.chat_send_cmd(ctrl, cmd);
59
+ const json = JSON.parse(res);
60
+ // console.log(cmd.slice(0, 16), json.result?.type || json.error)
61
+ if (typeof json.result === 'object')
62
+ return json.result;
63
+ if (typeof json.error === 'object')
64
+ throw new ChatAPIError("Chat command error (see chatError property)", json.error);
65
+ throw new ChatAPIError("Invalid chat command result");
66
+ }
67
+ /**
68
+ * Receive chat event
69
+ */
70
+ async function chatRecvMsgWait(ctrl, wait) {
71
+ const res = await simplex.chat_recv_msg_wait(ctrl, wait);
72
+ if (res === "")
73
+ return undefined;
74
+ const json = JSON.parse(res);
75
+ // if (json.result) console.log("event", json.result.type)
76
+ if (typeof json.result === 'object')
77
+ return json.result;
78
+ if (typeof json.error === 'object')
79
+ throw new ChatAPIError("Chat event error (see chatError property)", json.error);
80
+ throw new ChatAPIError("Invalid chat event");
81
+ }
82
+ /**
83
+ * Write buffer to encrypted file
84
+ */
85
+ async function chatWriteFile(ctrl, path, buffer) {
86
+ const res = await simplex.chat_write_file(ctrl, path, buffer);
87
+ return cryptoArgsResult(res);
88
+ }
89
+ /**
90
+ * Read buffer from encrypted file
91
+ */
92
+ async function chatReadFile(path, { fileKey, fileNonce }) {
93
+ return await simplex.chat_read_file(path, fileKey, fileNonce);
94
+ }
95
+ /**
96
+ * Encrypt file
97
+ */
98
+ async function chatEncryptFile(ctrl, fromPath, toPath) {
99
+ const res = await simplex.chat_encrypt_file(ctrl, fromPath, toPath);
100
+ return cryptoArgsResult(res);
101
+ }
102
+ /**
103
+ * Decrypt file
104
+ */
105
+ async function chatDecryptFile(fromPath, { fileKey, fileNonce }, toPath) {
106
+ const res = await simplex.chat_decrypt_file(fromPath, fileKey, fileNonce, toPath);
107
+ if (res !== "")
108
+ throw new Error(res);
109
+ }
110
+ function cryptoArgsResult(res) {
111
+ const json = JSON.parse(res);
112
+ switch (json.type) {
113
+ case "result": return json.cryptoArgs;
114
+ case "error": throw Error(json.writeError);
115
+ default: throw Error("unexpected chat_write_file result: " + res);
116
+ }
117
+ }
118
+ class ChatAPIError extends Error {
119
+ constructor(message, chatError = undefined) {
120
+ super(message);
121
+ this.message = message;
122
+ this.chatError = chatError;
123
+ }
124
+ }
125
+ exports.ChatAPIError = ChatAPIError;
126
+ /**
127
+ * Migration confirmation mode
128
+ */
129
+ var MigrationConfirmation;
130
+ (function (MigrationConfirmation) {
131
+ MigrationConfirmation["YesUp"] = "yesUp";
132
+ MigrationConfirmation["YesUpDown"] = "yesUpDown";
133
+ MigrationConfirmation["Console"] = "console";
134
+ MigrationConfirmation["Error"] = "error";
135
+ })(MigrationConfirmation || (exports.MigrationConfirmation = MigrationConfirmation = {}));
136
+ class ChatInitError extends Error {
137
+ constructor(message, dbMigrationError) {
138
+ super(message);
139
+ this.message = message;
140
+ this.dbMigrationError = dbMigrationError;
141
+ }
142
+ }
143
+ exports.ChatInitError = ChatInitError;
144
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}