@mono-agent/slack-adapter 0.3.0 → 0.4.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.
- package/README.md +12 -1
- package/dist/adapter.d.ts +276 -4
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +706 -27
- package/dist/adapter.js.map +1 -1
- package/dist/config.d.ts +58 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +213 -78
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/message-stream.d.ts +78 -29
- package/dist/message-stream.d.ts.map +1 -1
- package/dist/message-stream.js +184 -136
- package/dist/message-stream.js.map +1 -1
- package/dist/slack-client.d.ts +22 -2
- package/dist/slack-client.d.ts.map +1 -1
- package/dist/slack-client.js +165 -4
- package/dist/slack-client.js.map +1 -1
- package/dist/socket-mode-runner.d.ts +110 -1
- package/dist/socket-mode-runner.d.ts.map +1 -1
- package/dist/socket-mode-runner.js +287 -22
- package/dist/socket-mode-runner.js.map +1 -1
- package/dist/start.d.ts +27 -3
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +49 -0
- package/dist/start.js.map +1 -1
- package/dist/types.d.ts +157 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -3
package/dist/slack-client.js
CHANGED
|
@@ -6,6 +6,7 @@ export class SlackApiError extends Error {
|
|
|
6
6
|
needed;
|
|
7
7
|
provided;
|
|
8
8
|
warning;
|
|
9
|
+
retryAfterMs;
|
|
9
10
|
cause;
|
|
10
11
|
constructor(message, details) {
|
|
11
12
|
super(message);
|
|
@@ -27,6 +28,9 @@ export class SlackApiError extends Error {
|
|
|
27
28
|
if (details.warning !== undefined) {
|
|
28
29
|
this.warning = details.warning;
|
|
29
30
|
}
|
|
31
|
+
if (details.retryAfterMs !== undefined) {
|
|
32
|
+
this.retryAfterMs = details.retryAfterMs;
|
|
33
|
+
}
|
|
30
34
|
if (details.cause !== undefined) {
|
|
31
35
|
this.cause = details.cause;
|
|
32
36
|
}
|
|
@@ -42,11 +46,11 @@ export class SlackWebApiClient {
|
|
|
42
46
|
requestTimeoutMs;
|
|
43
47
|
constructor(options) {
|
|
44
48
|
const botToken = options.botToken.trim();
|
|
45
|
-
const appToken = options.appToken
|
|
49
|
+
const appToken = options.appToken?.trim();
|
|
46
50
|
if (botToken.length === 0) {
|
|
47
51
|
throw new TypeError("Slack bot token is required.");
|
|
48
52
|
}
|
|
49
|
-
if (appToken.length === 0) {
|
|
53
|
+
if (appToken !== undefined && appToken.length === 0) {
|
|
50
54
|
throw new TypeError("Slack app token is required.");
|
|
51
55
|
}
|
|
52
56
|
const fetchImpl = options.fetchImpl ?? globalThis.fetch;
|
|
@@ -62,15 +66,100 @@ export class SlackWebApiClient {
|
|
|
62
66
|
authTest(options) {
|
|
63
67
|
return this.request("auth.test", {}, this.botToken, options);
|
|
64
68
|
}
|
|
65
|
-
appsConnectionsOpen(options) {
|
|
66
|
-
return this.request("apps.connections.open", {}, this.
|
|
69
|
+
async appsConnectionsOpen(options) {
|
|
70
|
+
return this.request("apps.connections.open", {}, this.requiredAppToken(), options);
|
|
67
71
|
}
|
|
68
72
|
chatPostMessage(params, options) {
|
|
69
73
|
return this.request("chat.postMessage", params, this.botToken, options);
|
|
70
74
|
}
|
|
75
|
+
requiredAppToken() {
|
|
76
|
+
if (this.appToken === undefined) {
|
|
77
|
+
throw new TypeError("Slack app token is required for Socket Mode.");
|
|
78
|
+
}
|
|
79
|
+
return this.appToken;
|
|
80
|
+
}
|
|
71
81
|
chatUpdate(params, options) {
|
|
72
82
|
return this.request("chat.update", params, this.botToken, options);
|
|
73
83
|
}
|
|
84
|
+
async reactionsAdd(params, options) {
|
|
85
|
+
await this.request("reactions.add", params, this.botToken, options);
|
|
86
|
+
}
|
|
87
|
+
async setAssistantStatus(params, options) {
|
|
88
|
+
await this.request("assistant.threads.setStatus", { channel_id: params.channelId, thread_ts: params.threadTs, status: params.status }, this.botToken, options);
|
|
89
|
+
}
|
|
90
|
+
async viewsPublish(params, options) {
|
|
91
|
+
await this.request("views.publish", { user_id: params.userId, view: params.view }, this.botToken, options);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Download a private Slack file. Slack serves `url_private` only with an
|
|
95
|
+
* `Authorization: Bearer <bot token>` header. The download is bounded by the
|
|
96
|
+
* caller's request timeout and any external abort signal, and reads at most
|
|
97
|
+
* `maxBytes` (rejecting once the cap is exceeded) so a hostile or oversized
|
|
98
|
+
* file cannot exhaust memory.
|
|
99
|
+
*/
|
|
100
|
+
async downloadFile(params, options) {
|
|
101
|
+
const method = "files.download";
|
|
102
|
+
const { signal, cleanup } = createRequestSignal(options?.signal, this.requestTimeoutMs);
|
|
103
|
+
let response;
|
|
104
|
+
try {
|
|
105
|
+
const init = {
|
|
106
|
+
method: "GET",
|
|
107
|
+
headers: {
|
|
108
|
+
authorization: `Bearer ${this.botToken}`,
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
if (signal !== undefined) {
|
|
112
|
+
init.signal = signal;
|
|
113
|
+
}
|
|
114
|
+
response = await this.fetchImpl(params.url, init);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
cleanup();
|
|
118
|
+
if (isAbortError(error) || options?.signal?.aborted === true) {
|
|
119
|
+
throw new SlackApiError(`Slack file download was aborted.`, {
|
|
120
|
+
kind: "aborted",
|
|
121
|
+
method,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
throw new SlackApiError(`Network failure while downloading a Slack file.`, {
|
|
125
|
+
kind: "network",
|
|
126
|
+
method,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
const retryAfterMs = parseRetryAfterMs(response);
|
|
131
|
+
await safelyDrainResponse(response);
|
|
132
|
+
cleanup();
|
|
133
|
+
throw new SlackApiError(`Slack file download failed with HTTP ${response.status}.`, {
|
|
134
|
+
kind: "http",
|
|
135
|
+
method,
|
|
136
|
+
status: response.status,
|
|
137
|
+
...(retryAfterMs === undefined ? {} : { retryAfterMs }),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
try {
|
|
141
|
+
const bytes = await readBodyWithCap(response, params.maxBytes);
|
|
142
|
+
cleanup();
|
|
143
|
+
return bytes;
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
cleanup();
|
|
147
|
+
if (error instanceof SlackApiError) {
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
if (isAbortError(error) || options?.signal?.aborted === true) {
|
|
151
|
+
throw new SlackApiError(`Slack file download was aborted.`, {
|
|
152
|
+
kind: "aborted",
|
|
153
|
+
method,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
throw new SlackApiError(`Failed to read a downloaded Slack file.`, {
|
|
157
|
+
kind: "network",
|
|
158
|
+
method,
|
|
159
|
+
cause: error,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
74
163
|
async request(method, params, token, options) {
|
|
75
164
|
const url = `${this.apiBaseUrl}/${method}`;
|
|
76
165
|
const { signal, cleanup } = createRequestSignal(options?.signal, this.requestTimeoutMs);
|
|
@@ -104,11 +193,13 @@ export class SlackWebApiClient {
|
|
|
104
193
|
}
|
|
105
194
|
cleanup();
|
|
106
195
|
if (!response.ok) {
|
|
196
|
+
const retryAfterMs = parseRetryAfterMs(response);
|
|
107
197
|
await safelyDrainResponse(response);
|
|
108
198
|
throw new SlackApiError(`Slack API ${method} failed with HTTP ${response.status}.`, {
|
|
109
199
|
kind: "http",
|
|
110
200
|
method,
|
|
111
201
|
status: response.status,
|
|
202
|
+
...(retryAfterMs === undefined ? {} : { retryAfterMs }),
|
|
112
203
|
});
|
|
113
204
|
}
|
|
114
205
|
let payload;
|
|
@@ -187,12 +278,82 @@ function createRequestSignal(externalSignal, timeoutMs) {
|
|
|
187
278
|
function stripTrailingSlashes(value) {
|
|
188
279
|
return value.replace(/\/+$/u, "");
|
|
189
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Extract a `Retry-After` header (seconds) as milliseconds. Slack sends this on
|
|
283
|
+
* a rate-limited HTTP 429 response. Only the parsed integer is read so no raw
|
|
284
|
+
* response body or token material is carried.
|
|
285
|
+
*/
|
|
286
|
+
function parseRetryAfterMs(response) {
|
|
287
|
+
const header = response.headers?.get?.("retry-after");
|
|
288
|
+
if (header === null || header === undefined) {
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
const seconds = Number.parseInt(header.trim(), 10);
|
|
292
|
+
if (!Number.isFinite(seconds) || seconds < 0) {
|
|
293
|
+
return undefined;
|
|
294
|
+
}
|
|
295
|
+
return seconds * 1000;
|
|
296
|
+
}
|
|
190
297
|
function isAbortError(value) {
|
|
191
298
|
return (value instanceof DOMException && value.name === "AbortError") || (value instanceof Error && value.name === "AbortError");
|
|
192
299
|
}
|
|
193
300
|
function isRecord(value) {
|
|
194
301
|
return typeof value === "object" && value !== null;
|
|
195
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Read a response body into a single Uint8Array, rejecting once `maxBytes` is
|
|
305
|
+
* exceeded. Streams the body where possible so an oversized file is abandoned
|
|
306
|
+
* without buffering the whole thing; falls back to an arrayBuffer read (still
|
|
307
|
+
* cap-checked) when the runtime exposes no readable stream.
|
|
308
|
+
*/
|
|
309
|
+
async function readBodyWithCap(response, maxBytes) {
|
|
310
|
+
const cap = maxBytes !== undefined && Number.isFinite(maxBytes) && maxBytes >= 0 ? maxBytes : undefined;
|
|
311
|
+
const body = response.body;
|
|
312
|
+
if (body === null || typeof body.getReader !== "function") {
|
|
313
|
+
const buffer = await response.arrayBuffer();
|
|
314
|
+
const bytes = new Uint8Array(buffer);
|
|
315
|
+
if (cap !== undefined && bytes.byteLength > cap) {
|
|
316
|
+
throw new SlackApiError("Slack file exceeded the configured byte cap.", {
|
|
317
|
+
kind: "malformed",
|
|
318
|
+
method: "files.download",
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
return bytes;
|
|
322
|
+
}
|
|
323
|
+
const reader = body.getReader();
|
|
324
|
+
const chunks = [];
|
|
325
|
+
let total = 0;
|
|
326
|
+
try {
|
|
327
|
+
for (;;) {
|
|
328
|
+
const { done, value } = await reader.read();
|
|
329
|
+
if (done) {
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
if (value === undefined) {
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
total += value.byteLength;
|
|
336
|
+
if (cap !== undefined && total > cap) {
|
|
337
|
+
await reader.cancel();
|
|
338
|
+
throw new SlackApiError("Slack file exceeded the configured byte cap.", {
|
|
339
|
+
kind: "malformed",
|
|
340
|
+
method: "files.download",
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
chunks.push(value);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
finally {
|
|
347
|
+
reader.releaseLock?.();
|
|
348
|
+
}
|
|
349
|
+
const out = new Uint8Array(total);
|
|
350
|
+
let offset = 0;
|
|
351
|
+
for (const chunk of chunks) {
|
|
352
|
+
out.set(chunk, offset);
|
|
353
|
+
offset += chunk.byteLength;
|
|
354
|
+
}
|
|
355
|
+
return out;
|
|
356
|
+
}
|
|
196
357
|
async function safelyDrainResponse(response) {
|
|
197
358
|
try {
|
|
198
359
|
await response.text();
|
package/dist/slack-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-client.js","sourceRoot":"","sources":["../src/slack-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-client.js","sourceRoot":"","sources":["../src/slack-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,72 @@
|
|
|
1
|
-
import type { SlackEventCallback, SlackWebApi } from "./types.js";
|
|
1
|
+
import type { SlackEventCallback, SlackInteractivityPayload, SlackWebApi } from "./types.js";
|
|
2
2
|
import type { SlackEventHandlingResult } from "./adapter.js";
|
|
3
3
|
export interface SlackEventCallbackHandler {
|
|
4
4
|
handleEventCallback(callback: SlackEventCallback): Promise<SlackEventHandlingResult>;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Handles a Slack interactivity payload — a shortcut, message action, or a
|
|
8
|
+
* Block Kit button click (`block_actions`). Invoked AFTER the envelope is
|
|
9
|
+
* acknowledged, so a slow handler never risks Slack's 3-second ack deadline.
|
|
10
|
+
*/
|
|
11
|
+
export type SlackInteractionHandler = (payload: SlackInteractivityPayload) => void | Promise<void>;
|
|
6
12
|
export interface SlackSocketModeRunnerBackoffOptions {
|
|
7
13
|
initialMs?: number;
|
|
8
14
|
maxMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Band jitter applied to each backoff sleep, as a fraction of the base delay
|
|
17
|
+
* (0 disables jitter). The actual sleep is uniformly within ±ratio of the base —
|
|
18
|
+
* `base * (1 - ratio + random() * 2 * ratio)` — so clients (or a process restarting
|
|
19
|
+
* in a loop) that would otherwise reconnect in lockstep de-synchronize instead of
|
|
20
|
+
* re-colliding on Slack's per-app connection budget.
|
|
21
|
+
*/
|
|
22
|
+
jitterRatio?: number;
|
|
23
|
+
/**
|
|
24
|
+
* How long a freshly opened socket must stay up before the backoff resets to
|
|
25
|
+
* initial and a previously-degraded connection is reported recovered. The reset is
|
|
26
|
+
* gated on this window (not on a mere connect) so a connect→immediate-drop flap
|
|
27
|
+
* keeps accumulating backoff instead of re-hammering at the initial delay. Set to 0
|
|
28
|
+
* to disable the stability gate (the backoff then never auto-resets within a run).
|
|
29
|
+
*/
|
|
30
|
+
stabilityMs?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Grace window after `start()` during which a non-graceful disconnect that arrives
|
|
33
|
+
* before the first successful open is treated as an expected lingering prior-process
|
|
34
|
+
* socket (common right after a restart): it is retried quietly with backoff and does
|
|
35
|
+
* NOT flag the channel degraded. Set to 0 to disable the grace.
|
|
36
|
+
*/
|
|
37
|
+
startupGraceMs?: number;
|
|
38
|
+
/**
|
|
39
|
+
* Backstop: after a watchdog-triggered `terminate()`, if the socket emits neither
|
|
40
|
+
* `close` nor `error` within this window, the attempt is force-settled so the
|
|
41
|
+
* reconnect loop can never wedge on a stuck socket. Set to 0 to disable.
|
|
42
|
+
*/
|
|
43
|
+
drainDeadlineMs?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Minimum (jittered) delay between reconnect attempts on the GRACEFUL path
|
|
46
|
+
* (refresh/warning/clean close), which otherwise reconnects immediately. This is
|
|
47
|
+
* NOT the failure backoff — it stays small — but it rate-limits the loop so a
|
|
48
|
+
* degenerate server that drops every socket at/before open cannot spin into a
|
|
49
|
+
* zero-delay reconnect storm (the very `too_many_websockets` failure mode this
|
|
50
|
+
* adapter guards against). Set to 0 to reconnect with no floor.
|
|
51
|
+
*/
|
|
52
|
+
gracefulReconnectFloorMs?: number;
|
|
53
|
+
}
|
|
54
|
+
export interface SlackSocketModeRunnerHeartbeatOptions {
|
|
55
|
+
/**
|
|
56
|
+
* How often the watchdog wakes to probe an idle socket with a ping and to
|
|
57
|
+
* check for silence. Because the silence check only runs on these ticks,
|
|
58
|
+
* recycling can lag the `timeoutMs` deadline by up to one `intervalMs`.
|
|
59
|
+
* Setting this to 0 disables the watchdog entirely.
|
|
60
|
+
*/
|
|
61
|
+
intervalMs?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Silence budget: if no inbound frame (message, ping, or pong) arrives within
|
|
64
|
+
* this window, the socket is treated as silently dead and force-recycled on
|
|
65
|
+
* the next watchdog tick so the reconnect loop can re-establish it. The actual
|
|
66
|
+
* recycle therefore happens between `timeoutMs` and `timeoutMs + intervalMs`
|
|
67
|
+
* after the last frame. Setting this to 0 disables the watchdog entirely.
|
|
68
|
+
*/
|
|
69
|
+
timeoutMs?: number;
|
|
9
70
|
}
|
|
10
71
|
export interface SlackSocketModeRunnerLogger {
|
|
11
72
|
debug?(message: string, metadata?: Record<string, unknown>): void;
|
|
@@ -17,8 +78,31 @@ export interface SlackSocketModeRunnerOptions {
|
|
|
17
78
|
api: SlackWebApi;
|
|
18
79
|
handler: SlackEventCallbackHandler;
|
|
19
80
|
reconnect?: SlackSocketModeRunnerBackoffOptions;
|
|
81
|
+
heartbeat?: SlackSocketModeRunnerHeartbeatOptions;
|
|
20
82
|
webSocketFactory?: SlackWebSocketFactory;
|
|
21
83
|
onEventResult?: (result: SlackEventHandlingResult) => void | Promise<void>;
|
|
84
|
+
/**
|
|
85
|
+
* Optional handler for shortcut interactivity payloads. When absent, interactive
|
|
86
|
+
* envelopes are acknowledged and ignored (the historical behavior); when set,
|
|
87
|
+
* shortcut payloads are routed to it after the envelope is acknowledged.
|
|
88
|
+
*/
|
|
89
|
+
onInteraction?: SlackInteractionHandler;
|
|
90
|
+
/**
|
|
91
|
+
* Called once when an established connection drops into the reconnect/backoff loop
|
|
92
|
+
* (a real degradation — `too_many_websockets`, a socket error, a heartbeat timeout,
|
|
93
|
+
* an unknown disconnect reason). Suppressed for a graceful refresh and for a
|
|
94
|
+
* lingering prior-process socket inside the startup grace window. Wire this to the
|
|
95
|
+
* app's `onDegraded` so the channel reports `degraded` (responder kept alive) rather
|
|
96
|
+
* than churning silently.
|
|
97
|
+
*/
|
|
98
|
+
onConnectionLost?: (reason: string) => void;
|
|
99
|
+
/**
|
|
100
|
+
* Called once a reconnect has stayed open for the stability window after a prior
|
|
101
|
+
* loss (never on the first connect). Wire this to the app's `onRecovered`.
|
|
102
|
+
*/
|
|
103
|
+
onConnectionRestored?: () => void;
|
|
104
|
+
/** Injected RNG in [0, 1) for backoff jitter; defaults to `Math.random`. */
|
|
105
|
+
random?: () => number;
|
|
22
106
|
logger?: SlackSocketModeRunnerLogger;
|
|
23
107
|
}
|
|
24
108
|
export interface SlackSocketModeRunnerStartOptions {
|
|
@@ -28,6 +112,10 @@ export type SlackWebSocketFactory = (url: string) => SlackWebSocketLike;
|
|
|
28
112
|
export interface SlackWebSocketLike {
|
|
29
113
|
send(data: string): void;
|
|
30
114
|
close(code?: number, reason?: string): void;
|
|
115
|
+
/** Send a WebSocket ping frame (keepalive). Optional: not every transport exposes it. */
|
|
116
|
+
ping?(): void;
|
|
117
|
+
/** Forcibly destroy the socket without a closing handshake. Optional. */
|
|
118
|
+
terminate?(): void;
|
|
31
119
|
on(event: "open", listener: () => void): this;
|
|
32
120
|
on(event: "message", listener: (data: unknown) => void): this;
|
|
33
121
|
on(event: "close", listener: (code?: number, reason?: unknown) => void): this;
|
|
@@ -38,12 +126,33 @@ export declare class SlackSocketModeRunner {
|
|
|
38
126
|
private readonly handler;
|
|
39
127
|
private readonly initialBackoffMs;
|
|
40
128
|
private readonly maxBackoffMs;
|
|
129
|
+
private readonly heartbeatIntervalMs;
|
|
130
|
+
private readonly heartbeatTimeoutMs;
|
|
131
|
+
private readonly stabilityMs;
|
|
132
|
+
private readonly startupGraceMs;
|
|
133
|
+
private readonly drainDeadlineMs;
|
|
134
|
+
private readonly gracefulReconnectFloorMs;
|
|
135
|
+
private readonly jitterRatio;
|
|
136
|
+
private readonly random;
|
|
41
137
|
private readonly webSocketFactory;
|
|
42
138
|
private readonly onEventResult;
|
|
139
|
+
private readonly onInteraction;
|
|
140
|
+
private readonly onConnectionLost;
|
|
141
|
+
private readonly onConnectionRestored;
|
|
43
142
|
private readonly logger;
|
|
44
143
|
private activeSocket;
|
|
144
|
+
private currentBackoffMs;
|
|
145
|
+
private connectionDegraded;
|
|
146
|
+
private hasEverConnected;
|
|
147
|
+
private startedAt;
|
|
45
148
|
constructor(options: SlackSocketModeRunnerOptions);
|
|
46
149
|
start(options?: SlackSocketModeRunnerStartOptions): Promise<void>;
|
|
150
|
+
/**
|
|
151
|
+
* Apply band jitter to a backoff base: uniformly within ±`jitterRatio` of `baseMs`.
|
|
152
|
+
* De-synchronizes reconnect attempts so colliding clients (or a restart loop) stop
|
|
153
|
+
* re-triggering Slack's `too_many_websockets` in lockstep.
|
|
154
|
+
*/
|
|
155
|
+
private jitteredDelay;
|
|
47
156
|
private connectOnce;
|
|
48
157
|
private handleEnvelope;
|
|
49
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-mode-runner.d.ts","sourceRoot":"","sources":["../src/socket-mode-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"socket-mode-runner.d.ts","sourceRoot":"","sources":["../src/socket-mode-runner.ts"],"names":[],"mappings":"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"}
|