@kartik.doda/openclaw-plugin-test 1.0.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/LICENSE +21 -0
- package/README.md +128 -0
- package/dist/cli/admin-api.d.ts +58 -0
- package/dist/cli/admin-api.d.ts.map +1 -0
- package/dist/cli/admin-api.js +242 -0
- package/dist/cli/admin-api.js.map +1 -0
- package/dist/cli/auth.d.ts +5 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +184 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/bot.d.ts +3 -0
- package/dist/cli/bot.d.ts.map +1 -0
- package/dist/cli/bot.js +100 -0
- package/dist/cli/bot.js.map +1 -0
- package/dist/cli/config-updater.d.ts +70 -0
- package/dist/cli/config-updater.d.ts.map +1 -0
- package/dist/cli/config-updater.js +277 -0
- package/dist/cli/config-updater.js.map +1 -0
- package/dist/cli/credentials.d.ts +14 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +45 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/rate-limiter.d.ts +17 -0
- package/dist/cli/rate-limiter.d.ts.map +1 -0
- package/dist/cli/rate-limiter.js +78 -0
- package/dist/cli/rate-limiter.js.map +1 -0
- package/dist/cli/setup.d.ts +2 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +292 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/cli/ui.d.ts +30 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +202 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/client/ddp.d.ts +31 -0
- package/dist/client/ddp.d.ts.map +1 -0
- package/dist/client/ddp.js +86 -0
- package/dist/client/ddp.js.map +1 -0
- package/dist/client/rest.d.ts +49 -0
- package/dist/client/rest.d.ts.map +1 -0
- package/dist/client/rest.js +347 -0
- package/dist/client/rest.js.map +1 -0
- package/dist/config/access-store.d.ts +29 -0
- package/dist/config/access-store.d.ts.map +1 -0
- package/dist/config/access-store.js +71 -0
- package/dist/config/access-store.js.map +1 -0
- package/dist/config/schema.d.ts +33 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +52 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/config/store.d.ts +11 -0
- package/dist/config/store.d.ts.map +1 -0
- package/dist/config/store.js +82 -0
- package/dist/config/store.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +5 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +164 -0
- package/dist/plugin.js.map +1 -0
- package/dist/service/attachments.d.ts +10 -0
- package/dist/service/attachments.d.ts.map +1 -0
- package/dist/service/attachments.js +105 -0
- package/dist/service/attachments.js.map +1 -0
- package/dist/service/channel.d.ts +25 -0
- package/dist/service/channel.d.ts.map +1 -0
- package/dist/service/channel.js +747 -0
- package/dist/service/channel.js.map +1 -0
- package/dist/service/gateway.d.ts +7 -0
- package/dist/service/gateway.d.ts.map +1 -0
- package/dist/service/gateway.js +621 -0
- package/dist/service/gateway.js.map +1 -0
- package/dist/service/group-history.d.ts +8 -0
- package/dist/service/group-history.d.ts.map +1 -0
- package/dist/service/group-history.js +24 -0
- package/dist/service/group-history.js.map +1 -0
- package/dist/service/inbound.d.ts +16 -0
- package/dist/service/inbound.d.ts.map +1 -0
- package/dist/service/inbound.js +189 -0
- package/dist/service/inbound.js.map +1 -0
- package/dist/service/runtime-state.d.ts +8 -0
- package/dist/service/runtime-state.d.ts.map +1 -0
- package/dist/service/runtime-state.js +3 -0
- package/dist/service/runtime-state.js.map +1 -0
- package/dist/types.d.ts +220 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +15 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +68 -0
- package/dist/utils.js.map +1 -0
- package/package.json +57 -0
package/dist/cli/ui.js
ADDED
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import * as p from "@clack/prompts";
|
|
2
|
+
import color from "picocolors";
|
|
3
|
+
import { Prompt, isCancel } from "@clack/core";
|
|
4
|
+
import { isPrivateOrLoopbackHost } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
5
|
+
export function normalizeRocketChatUrl(input) {
|
|
6
|
+
const trimmed = input.trim();
|
|
7
|
+
if (!trimmed)
|
|
8
|
+
return null;
|
|
9
|
+
let url;
|
|
10
|
+
try {
|
|
11
|
+
url = new URL(trimmed);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
17
|
+
return null;
|
|
18
|
+
const pathname = url.pathname.replace(/\/+$/, "");
|
|
19
|
+
return pathname.length > 1 ? `${url.origin}${pathname}` : url.origin;
|
|
20
|
+
}
|
|
21
|
+
export function isLocalRocketChatUrl(input) {
|
|
22
|
+
let url;
|
|
23
|
+
try {
|
|
24
|
+
url = new URL(input);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return isPrivateOrLoopbackHost(url.hostname.toLowerCase());
|
|
30
|
+
}
|
|
31
|
+
export function handleCancel(value) {
|
|
32
|
+
if (p.isCancel(value)) {
|
|
33
|
+
p.cancel("Setup cancelled.");
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export async function promptText(opts) {
|
|
38
|
+
const value = await p.text(opts);
|
|
39
|
+
handleCancel(value);
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
const MASK_CHAR = "•";
|
|
43
|
+
const S_BAR = "│";
|
|
44
|
+
const S_BAR_END = "└";
|
|
45
|
+
function stepSymbol(state) {
|
|
46
|
+
switch (state) {
|
|
47
|
+
case "submit":
|
|
48
|
+
return color.green("◇");
|
|
49
|
+
case "cancel":
|
|
50
|
+
return color.red("■");
|
|
51
|
+
case "error":
|
|
52
|
+
return color.yellow("▲");
|
|
53
|
+
default:
|
|
54
|
+
return color.cyan("◆");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
class TogglePasswordPrompt extends Prompt {
|
|
58
|
+
_value = "";
|
|
59
|
+
_visible = false;
|
|
60
|
+
_mask;
|
|
61
|
+
_message;
|
|
62
|
+
get displayValue() {
|
|
63
|
+
return this._visible ? this._value : this._value.replaceAll(/./g, this._mask);
|
|
64
|
+
}
|
|
65
|
+
constructor(message, validate) {
|
|
66
|
+
const opts = {
|
|
67
|
+
render() {
|
|
68
|
+
const display = this.displayValue;
|
|
69
|
+
const cursor = this.state === "submit" || this.state === "cancel"
|
|
70
|
+
? ""
|
|
71
|
+
: color.inverse(color.hidden("_"));
|
|
72
|
+
switch (this.state) {
|
|
73
|
+
case "error":
|
|
74
|
+
return `${stepSymbol(this.state)} ${this._message}\n${color.yellow(S_BAR)} ${display}${cursor}\n${color.yellow(S_BAR_END)} ${color.yellow(this.error)}`;
|
|
75
|
+
case "submit":
|
|
76
|
+
return `${stepSymbol(this.state)} ${this._message}\n${color.gray(S_BAR)} ${color.dim(display)}`;
|
|
77
|
+
case "cancel":
|
|
78
|
+
return `${stepSymbol(this.state)} ${this._message}\n${color.gray(S_BAR)} ${color.strikethrough(color.dim(display || "—"))}`;
|
|
79
|
+
default:
|
|
80
|
+
return `${stepSymbol(this.state)} ${this._message} ${color.dim(`(Tab: ${this._visible ? "mask" : "show"})`)}\n${color.cyan(S_BAR)} ${display}${cursor}\n${color.cyan(S_BAR_END)} `;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
validate: validate,
|
|
84
|
+
};
|
|
85
|
+
super(opts, false);
|
|
86
|
+
this._message = message;
|
|
87
|
+
this._mask = MASK_CHAR;
|
|
88
|
+
this.on("key", (str, key) => {
|
|
89
|
+
if (key?.name === "tab" || str === "\t") {
|
|
90
|
+
this._visible = !this._visible;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (key?.name === "backspace") {
|
|
94
|
+
this._value = this._value.slice(0, -1);
|
|
95
|
+
this.value = this._value;
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
if (str && !key?.ctrl && !key?.meta && str.length === 1 && key?.name !== "return") {
|
|
99
|
+
this._value += str;
|
|
100
|
+
this.value = this._value;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export async function promptPassword(opts) {
|
|
106
|
+
const prompt = new TogglePasswordPrompt(opts.message, opts.validate);
|
|
107
|
+
const result = await prompt.prompt();
|
|
108
|
+
if (isCancel(result)) {
|
|
109
|
+
p.cancel("Setup cancelled.");
|
|
110
|
+
process.exit(0);
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
export async function promptPasswordConfirm(opts) {
|
|
115
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
116
|
+
const password = await promptPassword({
|
|
117
|
+
...opts,
|
|
118
|
+
message: attempt === 0 ? opts.message : `${opts.message} (try again)`,
|
|
119
|
+
});
|
|
120
|
+
const confirm = await promptPassword({
|
|
121
|
+
message: "Confirm password",
|
|
122
|
+
validate: (value) => (value ? undefined : "Password is required"),
|
|
123
|
+
});
|
|
124
|
+
if (password === confirm)
|
|
125
|
+
return password;
|
|
126
|
+
p.log.warn("Passwords do not match. Please try again.");
|
|
127
|
+
}
|
|
128
|
+
p.log.error("Too many mismatched attempts.");
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
export async function promptTwoFactorCode(opts) {
|
|
132
|
+
const isEmail = (opts.method ?? "totp") === "email";
|
|
133
|
+
const methodHint = opts.method && opts.method !== "totp" ? ` (${opts.method})` : "";
|
|
134
|
+
const message = opts.message ??
|
|
135
|
+
(isEmail
|
|
136
|
+
? "Email verification code (check your inbox)"
|
|
137
|
+
: `Two-factor authentication code${methodHint}`);
|
|
138
|
+
const value = await promptPassword({
|
|
139
|
+
message,
|
|
140
|
+
validate: (v) => {
|
|
141
|
+
const trimmed = (v ?? "").trim();
|
|
142
|
+
if (!trimmed)
|
|
143
|
+
return opts.allowEmpty ? undefined : "Code is required";
|
|
144
|
+
if (!/^[0-9a-zA-Z\s-]+$/.test(trimmed))
|
|
145
|
+
return "Enter the verification code";
|
|
146
|
+
return undefined;
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
return value.replace(/\s+/g, "");
|
|
150
|
+
}
|
|
151
|
+
export async function promptConfirm(opts) {
|
|
152
|
+
const value = await p.confirm(opts);
|
|
153
|
+
handleCancel(value);
|
|
154
|
+
return value;
|
|
155
|
+
}
|
|
156
|
+
export async function promptSelect(opts) {
|
|
157
|
+
const value = await p.select(opts);
|
|
158
|
+
handleCancel(value);
|
|
159
|
+
return value;
|
|
160
|
+
}
|
|
161
|
+
export async function promptAutocomplete(opts) {
|
|
162
|
+
const value = await p.autocomplete(opts);
|
|
163
|
+
handleCancel(value);
|
|
164
|
+
return value;
|
|
165
|
+
}
|
|
166
|
+
export async function promptAutocompleteMultiselect(opts) {
|
|
167
|
+
const value = await p.autocompleteMultiselect(opts);
|
|
168
|
+
handleCancel(value);
|
|
169
|
+
return value;
|
|
170
|
+
}
|
|
171
|
+
export async function withSpinner(message, task) {
|
|
172
|
+
const spinner = p.spinner();
|
|
173
|
+
spinner.start(message);
|
|
174
|
+
try {
|
|
175
|
+
const result = await task();
|
|
176
|
+
spinner.stop(color.green("Done"));
|
|
177
|
+
return result;
|
|
178
|
+
}
|
|
179
|
+
catch (err) {
|
|
180
|
+
spinner.stop(color.red("Failed"));
|
|
181
|
+
throw err;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
export function printSummary(rows) {
|
|
185
|
+
const lines = rows.map(({ label, value }) => `${color.dim(label.padEnd(12))} ${value}`);
|
|
186
|
+
p.note(lines.join("\n"), "Configuration");
|
|
187
|
+
}
|
|
188
|
+
export function printNextSteps(steps) {
|
|
189
|
+
p.note(steps.map((s, i) => `${color.dim(`${i + 1}.`)} ${s}`).join("\n"), "Next steps");
|
|
190
|
+
}
|
|
191
|
+
export async function showServerStatus(url, check) {
|
|
192
|
+
const online = await check();
|
|
193
|
+
if (online) {
|
|
194
|
+
p.log.success(`Rocket.Chat server: ${color.green("online")} (${color.dim(url)})`);
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
p.log.error(`Rocket.Chat server: ${color.red("offline")} (${color.dim(url)})`);
|
|
198
|
+
}
|
|
199
|
+
return online;
|
|
200
|
+
}
|
|
201
|
+
export { p as prompts, color };
|
|
202
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RocketChatMessageRecord } from "../types.js";
|
|
2
|
+
export type DdpStatus = "connecting" | "connected" | "ready" | "closed";
|
|
3
|
+
export type RocketChatDdpConnectionOptions = {
|
|
4
|
+
wsUrl: string;
|
|
5
|
+
authToken: string;
|
|
6
|
+
username: string;
|
|
7
|
+
reconnectDelayMs?: number;
|
|
8
|
+
maxReconnects?: number;
|
|
9
|
+
onMessage: (message: RocketChatMessageRecord) => void;
|
|
10
|
+
onStatus?: (status: DdpStatus) => void;
|
|
11
|
+
onError?: (error: Error) => void;
|
|
12
|
+
};
|
|
13
|
+
export declare class RocketChatDdpConnection {
|
|
14
|
+
private readonly options;
|
|
15
|
+
private sdk;
|
|
16
|
+
private subscription;
|
|
17
|
+
private stopped;
|
|
18
|
+
private reconnectAttempts;
|
|
19
|
+
constructor(options: RocketChatDdpConnectionOptions);
|
|
20
|
+
private getSdk;
|
|
21
|
+
private call;
|
|
22
|
+
sendMessage(roomId: string, text: string, options?: {
|
|
23
|
+
tmid?: string;
|
|
24
|
+
}): Promise<string>;
|
|
25
|
+
reactToMessage(messageId: string, reaction: string): Promise<void>;
|
|
26
|
+
sendTyping(roomId: string, isTyping: boolean): Promise<void>;
|
|
27
|
+
start(): void;
|
|
28
|
+
stop(): void;
|
|
29
|
+
private connect;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ddp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddp.d.ts","sourceRoot":"","sources":["../../src/client/ddp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAG3D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAExE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC,CAAC;AAIF,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAK;gBAElB,OAAO,EAAE,8BAA8B;IAInD,OAAO,CAAC,MAAM;YAKA,IAAI;IAIZ,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvF,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,KAAK,IAAI,IAAI;IAKb,IAAI,IAAI,IAAI;YAOE,OAAO;CAgDtB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { DDPSDK } from "@rocket.chat/ddp-client";
|
|
2
|
+
import { DEFAULT_MAX_RECONNECTS } from "../cli/rate-limiter.js";
|
|
3
|
+
export class RocketChatDdpConnection {
|
|
4
|
+
options;
|
|
5
|
+
sdk = null;
|
|
6
|
+
subscription = null;
|
|
7
|
+
stopped = false;
|
|
8
|
+
reconnectAttempts = 0;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
getSdk() {
|
|
13
|
+
if (!this.sdk)
|
|
14
|
+
throw new Error("DDP SDK not initialized; connection not started");
|
|
15
|
+
return this.sdk;
|
|
16
|
+
}
|
|
17
|
+
async call(method, ...params) {
|
|
18
|
+
return this.getSdk().call(method, ...params);
|
|
19
|
+
}
|
|
20
|
+
async sendMessage(roomId, text, options) {
|
|
21
|
+
const message = { rid: roomId, msg: text };
|
|
22
|
+
if (options?.tmid)
|
|
23
|
+
message.tmid = options.tmid;
|
|
24
|
+
const result = (await this.call("sendMessage", message));
|
|
25
|
+
return result._id ?? "";
|
|
26
|
+
}
|
|
27
|
+
async reactToMessage(messageId, reaction) {
|
|
28
|
+
await this.call("setReaction", reaction, messageId);
|
|
29
|
+
}
|
|
30
|
+
async sendTyping(roomId, isTyping) {
|
|
31
|
+
await this.call("stream-notify-room", `${roomId}/typing`, this.options.username, isTyping);
|
|
32
|
+
}
|
|
33
|
+
start() {
|
|
34
|
+
this.stopped = false;
|
|
35
|
+
this.connect();
|
|
36
|
+
}
|
|
37
|
+
stop() {
|
|
38
|
+
this.stopped = true;
|
|
39
|
+
this.subscription?.stop();
|
|
40
|
+
this.sdk?.connection.close();
|
|
41
|
+
this.sdk = null;
|
|
42
|
+
}
|
|
43
|
+
async connect() {
|
|
44
|
+
if (this.stopped)
|
|
45
|
+
return;
|
|
46
|
+
const maxReconnects = this.options.maxReconnects ?? DEFAULT_MAX_RECONNECTS;
|
|
47
|
+
this.options.onStatus?.("connecting");
|
|
48
|
+
try {
|
|
49
|
+
const sdk = DDPSDK.create(this.options.wsUrl, {
|
|
50
|
+
retryCount: maxReconnects,
|
|
51
|
+
retryTime: this.options.reconnectDelayMs ?? 2_000,
|
|
52
|
+
});
|
|
53
|
+
this.sdk = sdk;
|
|
54
|
+
sdk.connection.on("connecting", () => this.options.onStatus?.("connecting"));
|
|
55
|
+
sdk.connection.on("connected", () => {
|
|
56
|
+
this.reconnectAttempts = 0;
|
|
57
|
+
this.options.onStatus?.("connected");
|
|
58
|
+
});
|
|
59
|
+
sdk.connection.on("close", () => {
|
|
60
|
+
this.options.onStatus?.("closed");
|
|
61
|
+
if (!this.stopped) {
|
|
62
|
+
this.reconnectAttempts++;
|
|
63
|
+
if (this.reconnectAttempts > maxReconnects) {
|
|
64
|
+
this.options.onError?.(new Error(`Max reconnect attempts (${maxReconnects}) exceeded for ${this.options.wsUrl}`));
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.connect();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
await sdk.connection.connect();
|
|
71
|
+
await sdk.account.loginWithToken(this.options.authToken);
|
|
72
|
+
const sub = sdk.stream("room-messages", "__my_messages__", (...args) => {
|
|
73
|
+
const message = args[0];
|
|
74
|
+
if (message)
|
|
75
|
+
this.options.onMessage(message);
|
|
76
|
+
});
|
|
77
|
+
this.subscription = sub;
|
|
78
|
+
await sub.ready();
|
|
79
|
+
this.options.onStatus?.("ready");
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
this.options.onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=ddp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddp.js","sourceRoot":"","sources":["../../src/client/ddp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { RocketChatIdentity, RocketChatSubscriptionRecord, RocketChatClientOptions } from "../types.js";
|
|
2
|
+
export declare class RocketChatClientError extends Error {
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export declare class RocketChatRateLimitError extends RocketChatClientError {
|
|
6
|
+
readonly retryAfterMs: number;
|
|
7
|
+
constructor(message: string, options: {
|
|
8
|
+
retryAfterMs: number;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
export declare class RocketChatClient {
|
|
12
|
+
private readonly serverUrl;
|
|
13
|
+
private readonly auth;
|
|
14
|
+
private readonly fetchFn;
|
|
15
|
+
private readonly mediaDir;
|
|
16
|
+
private identity;
|
|
17
|
+
private resolvedUserId;
|
|
18
|
+
private resolvedAuthToken;
|
|
19
|
+
private botUsernames;
|
|
20
|
+
constructor(options: RocketChatClientOptions);
|
|
21
|
+
setBotUsernames(names: Set<string>): void;
|
|
22
|
+
initialize(): Promise<void>;
|
|
23
|
+
getIdentity(): Promise<RocketChatIdentity>;
|
|
24
|
+
listSubscriptions(updatedSince: string | null): Promise<RocketChatSubscriptionRecord[]>;
|
|
25
|
+
postMessage(roomId: string, text: string, options?: {
|
|
26
|
+
tmid?: string;
|
|
27
|
+
}): Promise<string>;
|
|
28
|
+
private postMessageRaw;
|
|
29
|
+
reactToMessage(messageId: string, reaction: string): Promise<void>;
|
|
30
|
+
getMessage(messageId: string): Promise<{
|
|
31
|
+
text: string | null;
|
|
32
|
+
quotedId: string | null;
|
|
33
|
+
}>;
|
|
34
|
+
/** Resolve a room's type (`d`/`p`/`c`) on demand, used for rooms created after connect. */
|
|
35
|
+
getRoomType(roomId: string): Promise<string | undefined>;
|
|
36
|
+
downloadAttachmentToTempFile(url: string, options?: {
|
|
37
|
+
fileName?: string;
|
|
38
|
+
}): Promise<string>;
|
|
39
|
+
uploadAttachment(roomId: string, filePath: string, text?: string, options?: {
|
|
40
|
+
tmid?: string;
|
|
41
|
+
}): Promise<string>;
|
|
42
|
+
uploadAttachmentFromBuffer(roomId: string, buffer: Buffer | Uint8Array, fileName: string, text?: string, options?: {
|
|
43
|
+
tmid?: string;
|
|
44
|
+
}): Promise<string>;
|
|
45
|
+
private ensureInitialized;
|
|
46
|
+
private requestJson;
|
|
47
|
+
private parseJsonResponse;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=rest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/client/rest.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EAExB,MAAM,aAAa,CAAC;AAErB,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,wBAAyB,SAAQ,qBAAqB;IACjE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE;CAK/D;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA8B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,iBAAiB,CAAuB;IAChD,OAAO,CAAC,YAAY,CAA0B;gBAElC,OAAO,EAAE,uBAAuB;IAY5C,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAInC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAgB1C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC;IAOvF,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAY/E,cAAc;IAetB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAc9F,2FAA2F;IACrF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUxD,4BAA4B,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;IAwDZ,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,MAAM,CAAC;IAKZ,0BAA0B,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,UAAU,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,OAAO,CAAC,MAAM,CAAC;YA4CJ,iBAAiB;YAMjB,WAAW;YA6BX,iBAAiB;CA4BhC"}
|