@inkeep/agents-work-apps 0.50.1 → 0.50.4
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/dist/_virtual/rolldown_runtime.js +32 -0
- package/dist/env.d.ts +4 -2
- package/dist/env.js +2 -1
- package/dist/github/mcp/index.d.ts +2 -2
- package/dist/github/routes/setup.d.ts +2 -2
- package/dist/github/routes/tokenExchange.d.ts +2 -2
- package/dist/github/routes/webhooks.d.ts +2 -2
- package/dist/node_modules/.pnpm/@slack_logger@4.0.0/node_modules/@slack/logger/dist/index.js +89 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/package.js +85 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +223 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js +367 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/UnrecoverableSocketModeStartError.js +20 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/errors.js +71 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/index.js +44 -0
- package/dist/node_modules/.pnpm/@slack_socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/logger.js +32 -0
- package/dist/node_modules/.pnpm/eventemitter3@5.0.1/node_modules/eventemitter3/index.js +241 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/index.js +23 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js +107 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js +29 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js +226 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js +150 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js +57 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js +342 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js +457 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js +505 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js +123 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js +46 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js +203 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js +385 -0
- package/dist/node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js +985 -0
- package/dist/slack/dispatcher.d.ts +16 -0
- package/dist/slack/dispatcher.js +335 -0
- package/dist/slack/i18n/strings.d.ts +5 -5
- package/dist/slack/i18n/strings.js +9 -9
- package/dist/slack/index.d.ts +3 -1
- package/dist/slack/index.js +4 -2
- package/dist/slack/middleware/permissions.js +120 -107
- package/dist/slack/routes/events.js +10 -328
- package/dist/slack/routes/oauth.js +6 -3
- package/dist/slack/routes/users.js +12 -6
- package/dist/slack/routes/workspaces.js +39 -39
- package/dist/slack/services/agent-resolution.d.ts +1 -0
- package/dist/slack/services/agent-resolution.js +8 -4
- package/dist/slack/services/blocks/index.js +7 -11
- package/dist/slack/services/commands/index.js +15 -7
- package/dist/slack/services/dev-config.d.ts +23 -0
- package/dist/slack/services/dev-config.js +91 -0
- package/dist/slack/services/events/app-mention.js +25 -21
- package/dist/slack/services/events/index.d.ts +2 -2
- package/dist/slack/services/events/index.js +2 -2
- package/dist/slack/services/events/modal-submission.js +18 -10
- package/dist/slack/services/events/streaming.js +7 -5
- package/dist/slack/services/events/utils.d.ts +2 -1
- package/dist/slack/services/events/utils.js +16 -9
- package/dist/slack/services/index.d.ts +2 -2
- package/dist/slack/services/index.js +3 -3
- package/dist/slack/services/modals.js +4 -4
- package/dist/slack/services/nango.d.ts +3 -0
- package/dist/slack/services/nango.js +84 -2
- package/dist/slack/socket-mode.d.ts +4 -0
- package/dist/slack/socket-mode.js +130 -0
- package/dist/slack/tracer.d.ts +2 -0
- package/dist/slack/tracer.js +3 -1
- package/package.json +3 -2
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
import { __commonJSMin, __require } from "../../../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { require_errors } from "./errors.js";
|
|
3
|
+
import { require_logger } from "./logger.js";
|
|
4
|
+
import { require_eventemitter3 } from "../../../../../../eventemitter3@5.0.1/node_modules/eventemitter3/index.js";
|
|
5
|
+
import { require_package } from "../package.js";
|
|
6
|
+
import { require_SlackWebSocket } from "./SlackWebSocket.js";
|
|
7
|
+
import { require_UnrecoverableSocketModeStartError } from "./UnrecoverableSocketModeStartError.js";
|
|
8
|
+
|
|
9
|
+
//#region ../../node_modules/.pnpm/@slack+socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js
|
|
10
|
+
var require_SocketModeClient = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
11
|
+
var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === void 0) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) desc = {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function() {
|
|
17
|
+
return m[k];
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(o, k2, desc);
|
|
21
|
+
}) : (function(o, m, k, k2) {
|
|
22
|
+
if (k2 === void 0) k2 = k;
|
|
23
|
+
o[k2] = m[k];
|
|
24
|
+
}));
|
|
25
|
+
var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? (function(o, v) {
|
|
26
|
+
Object.defineProperty(o, "default", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
value: v
|
|
29
|
+
});
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = exports && exports.__importStar || (function() {
|
|
34
|
+
var ownKeys = function(o) {
|
|
35
|
+
ownKeys = Object.getOwnPropertyNames || function(o$1) {
|
|
36
|
+
var ar = [];
|
|
37
|
+
for (var k in o$1) if (Object.prototype.hasOwnProperty.call(o$1, k)) ar[ar.length] = k;
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
return ownKeys(o);
|
|
41
|
+
};
|
|
42
|
+
return function(mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null) {
|
|
46
|
+
for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
47
|
+
}
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
53
|
+
function adopt(value) {
|
|
54
|
+
return value instanceof P ? value : new P(function(resolve) {
|
|
55
|
+
resolve(value);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return new (P || (P = Promise))(function(resolve, reject) {
|
|
59
|
+
function fulfilled(value) {
|
|
60
|
+
try {
|
|
61
|
+
step(generator.next(value));
|
|
62
|
+
} catch (e) {
|
|
63
|
+
reject(e);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function rejected(value) {
|
|
67
|
+
try {
|
|
68
|
+
step(generator["throw"](value));
|
|
69
|
+
} catch (e) {
|
|
70
|
+
reject(e);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function step(result) {
|
|
74
|
+
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
75
|
+
}
|
|
76
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
var __importDefault = exports && exports.__importDefault || function(mod) {
|
|
80
|
+
return mod && mod.__esModule ? mod : { "default": mod };
|
|
81
|
+
};
|
|
82
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
83
|
+
exports.SocketModeClient = void 0;
|
|
84
|
+
const web_api_1 = __require("@slack/web-api");
|
|
85
|
+
const eventemitter3_1 = require_eventemitter3();
|
|
86
|
+
const package_json_1 = __importDefault(require_package());
|
|
87
|
+
const errors_1 = require_errors();
|
|
88
|
+
const logger_1 = __importStar(require_logger());
|
|
89
|
+
const SlackWebSocket_1 = require_SlackWebSocket();
|
|
90
|
+
const UnrecoverableSocketModeStartError_1 = require_UnrecoverableSocketModeStartError();
|
|
91
|
+
var State;
|
|
92
|
+
(function(State) {
|
|
93
|
+
State["Connecting"] = "connecting";
|
|
94
|
+
State["Connected"] = "connected";
|
|
95
|
+
State["Reconnecting"] = "reconnecting";
|
|
96
|
+
State["Disconnecting"] = "disconnecting";
|
|
97
|
+
State["Disconnected"] = "disconnected";
|
|
98
|
+
State["Authenticated"] = "authenticated";
|
|
99
|
+
})(State || (State = {}));
|
|
100
|
+
/**
|
|
101
|
+
* A Socket Mode Client allows programs to communicate with the
|
|
102
|
+
* [Slack Platform's Events API](https://https://docs.slack.dev/apis/events-api) over WebSocket connections.
|
|
103
|
+
* This object uses the EventEmitter pattern to dispatch incoming events
|
|
104
|
+
* and has a built in send method to acknowledge incoming events over the WebSocket connection.
|
|
105
|
+
*/
|
|
106
|
+
var SocketModeClient = class SocketModeClient extends eventemitter3_1.EventEmitter {
|
|
107
|
+
constructor({ logger = void 0, logLevel = void 0, autoReconnectEnabled = true, pingPongLoggingEnabled = false, clientPingTimeout = 5e3, serverPingTimeout = 3e4, appToken = "", clientOptions = {} } = { appToken: "" }) {
|
|
108
|
+
super();
|
|
109
|
+
/**
|
|
110
|
+
* Internal count for managing the reconnection state
|
|
111
|
+
*/
|
|
112
|
+
this.numOfConsecutiveReconnectionFailures = 0;
|
|
113
|
+
this.customLoggerProvided = false;
|
|
114
|
+
/**
|
|
115
|
+
* Sentinel tracking if user invoked `disconnect()`; for enforcing shutting down of client
|
|
116
|
+
* even if `autoReconnectEnabled` is `true`.
|
|
117
|
+
*/
|
|
118
|
+
this.shuttingDown = false;
|
|
119
|
+
if (!appToken) throw new Error("Must provide an App-Level Token when initializing a Socket Mode Client");
|
|
120
|
+
this.pingPongLoggingEnabled = pingPongLoggingEnabled;
|
|
121
|
+
this.clientPingTimeoutMS = clientPingTimeout;
|
|
122
|
+
this.serverPingTimeoutMS = serverPingTimeout;
|
|
123
|
+
if (typeof logger !== "undefined") {
|
|
124
|
+
this.customLoggerProvided = true;
|
|
125
|
+
this.logger = logger;
|
|
126
|
+
if (typeof logLevel !== "undefined") this.logger.debug("The logLevel given to Socket Mode was ignored as you also gave logger");
|
|
127
|
+
} else this.logger = logger_1.default.getLogger(SocketModeClient.loggerName, logLevel !== null && logLevel !== void 0 ? logLevel : logger_1.LogLevel.INFO, logger);
|
|
128
|
+
this.webClientOptions = clientOptions;
|
|
129
|
+
if (this.webClientOptions.retryConfig === void 0) this.webClientOptions.retryConfig = {
|
|
130
|
+
retries: 100,
|
|
131
|
+
factor: 1.3
|
|
132
|
+
};
|
|
133
|
+
this.webClient = new web_api_1.WebClient("", Object.assign({
|
|
134
|
+
logger,
|
|
135
|
+
logLevel: this.logger.getLevel(),
|
|
136
|
+
headers: { Authorization: `Bearer ${appToken}` }
|
|
137
|
+
}, clientOptions));
|
|
138
|
+
this.autoReconnectEnabled = autoReconnectEnabled;
|
|
139
|
+
this.on("error", (err) => {
|
|
140
|
+
this.logger.error(`WebSocket error! ${err}`);
|
|
141
|
+
});
|
|
142
|
+
this.on("close", () => {
|
|
143
|
+
if (!this.shuttingDown && this.autoReconnectEnabled) this.delayReconnectAttempt(this.start);
|
|
144
|
+
else this.emit(State.Disconnected);
|
|
145
|
+
});
|
|
146
|
+
this.on("ws_message", this.onWebSocketMessage.bind(this));
|
|
147
|
+
this.logger.debug("The Socket Mode client has successfully initialized");
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Start a Socket Mode session app.
|
|
151
|
+
* This method must be called before any messages can be sent or received,
|
|
152
|
+
* or to disconnect the client via the `disconnect` method.
|
|
153
|
+
*/
|
|
154
|
+
start() {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
this.shuttingDown = false;
|
|
157
|
+
this.logger.debug("Starting Socket Mode session ...");
|
|
158
|
+
this.websocket = new SlackWebSocket_1.SlackWebSocket({
|
|
159
|
+
url: yield this.retrieveWSSURL(),
|
|
160
|
+
client: this,
|
|
161
|
+
logLevel: this.logger.getLevel(),
|
|
162
|
+
logger: this.customLoggerProvided ? this.logger : void 0,
|
|
163
|
+
httpAgent: this.webClientOptions.agent,
|
|
164
|
+
clientPingTimeoutMS: this.clientPingTimeoutMS,
|
|
165
|
+
serverPingTimeoutMS: this.serverPingTimeoutMS,
|
|
166
|
+
pingPongLoggingEnabled: this.pingPongLoggingEnabled
|
|
167
|
+
});
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
var _a;
|
|
170
|
+
let connectedCallback = (_res) => {};
|
|
171
|
+
let disconnectedCallback = (_err) => {};
|
|
172
|
+
connectedCallback = (result) => {
|
|
173
|
+
this.removeListener(State.Disconnected, disconnectedCallback);
|
|
174
|
+
resolve(result);
|
|
175
|
+
};
|
|
176
|
+
disconnectedCallback = (err) => {
|
|
177
|
+
this.removeListener(State.Connected, connectedCallback);
|
|
178
|
+
reject(err);
|
|
179
|
+
};
|
|
180
|
+
this.once(State.Connected, connectedCallback);
|
|
181
|
+
this.once(State.Disconnected, disconnectedCallback);
|
|
182
|
+
this.emit(State.Connecting);
|
|
183
|
+
(_a = this.websocket) === null || _a === void 0 || _a.connect();
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* End a Socket Mode session. After this method is called no messages will be sent or received
|
|
189
|
+
* unless you call start() again later.
|
|
190
|
+
*/
|
|
191
|
+
disconnect() {
|
|
192
|
+
this.shuttingDown = true;
|
|
193
|
+
this.logger.debug("Manually disconnecting this Socket Mode client");
|
|
194
|
+
this.emit(State.Disconnecting);
|
|
195
|
+
return new Promise((resolve, _reject) => {
|
|
196
|
+
var _a;
|
|
197
|
+
if (!this.websocket) {
|
|
198
|
+
this.emit(State.Disconnected);
|
|
199
|
+
resolve();
|
|
200
|
+
} else {
|
|
201
|
+
this.once(State.Disconnected, resolve);
|
|
202
|
+
(_a = this.websocket) === null || _a === void 0 || _a.disconnect();
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Initiates a reconnect, taking into account configurable delays and number of reconnect attempts and failures.
|
|
208
|
+
* Accepts a callback to invoke after any calculated delays.
|
|
209
|
+
*/
|
|
210
|
+
delayReconnectAttempt(cb) {
|
|
211
|
+
this.numOfConsecutiveReconnectionFailures += 1;
|
|
212
|
+
const msBeforeRetry = this.clientPingTimeoutMS * this.numOfConsecutiveReconnectionFailures;
|
|
213
|
+
this.logger.debug(`Before trying to reconnect, this client will wait for ${msBeforeRetry} milliseconds`);
|
|
214
|
+
return new Promise((res, _rej) => {
|
|
215
|
+
setTimeout(() => {
|
|
216
|
+
if (this.shuttingDown) this.logger.debug("Client shutting down, will not attempt reconnect.");
|
|
217
|
+
else {
|
|
218
|
+
this.logger.debug("Continuing with reconnect...");
|
|
219
|
+
this.emit(State.Reconnecting);
|
|
220
|
+
cb.apply(this).then(res);
|
|
221
|
+
}
|
|
222
|
+
}, msBeforeRetry);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Retrieves a new WebSocket URL to connect to.
|
|
227
|
+
*/
|
|
228
|
+
retrieveWSSURL() {
|
|
229
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
230
|
+
try {
|
|
231
|
+
this.logger.debug("Going to retrieve a new WSS URL ...");
|
|
232
|
+
const resp = yield this.webClient.apps.connections.open({});
|
|
233
|
+
if (!resp.url) {
|
|
234
|
+
const msg = `apps.connections.open did not return a URL! (response: ${resp})`;
|
|
235
|
+
this.logger.error(msg);
|
|
236
|
+
throw new Error(msg);
|
|
237
|
+
}
|
|
238
|
+
this.numOfConsecutiveReconnectionFailures = 0;
|
|
239
|
+
this.emit(State.Authenticated, resp);
|
|
240
|
+
return resp.url;
|
|
241
|
+
} catch (error) {
|
|
242
|
+
this.logger.error(`Failed to retrieve a new WSS URL (error: ${error})`);
|
|
243
|
+
const err = error;
|
|
244
|
+
let isRecoverable = true;
|
|
245
|
+
if (err.code === web_api_1.ErrorCode.PlatformError && Object.values(UnrecoverableSocketModeStartError_1.UnrecoverableSocketModeStartError).includes(err.data.error)) isRecoverable = false;
|
|
246
|
+
else if (err.code === web_api_1.ErrorCode.RequestError) isRecoverable = false;
|
|
247
|
+
else if (err.code === web_api_1.ErrorCode.HTTPError) isRecoverable = false;
|
|
248
|
+
if (this.autoReconnectEnabled && isRecoverable) return yield this.delayReconnectAttempt(this.retrieveWSSURL);
|
|
249
|
+
throw error;
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* `onmessage` handler for the client's WebSocket.
|
|
255
|
+
* This will parse the payload and dispatch the application-relevant events for each incoming message.
|
|
256
|
+
* Mediates:
|
|
257
|
+
* - raising the State.Connected event (when Slack sends a type:hello message)
|
|
258
|
+
* - disconnecting the underlying socket (when Slack sends a type:disconnect message)
|
|
259
|
+
*/
|
|
260
|
+
onWebSocketMessage(data, isBinary) {
|
|
261
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
262
|
+
var _a;
|
|
263
|
+
if (isBinary) {
|
|
264
|
+
this.logger.debug("Unexpected binary message received, ignoring.");
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const payload = data.toString();
|
|
268
|
+
this.logger.debug(`Received a message on the WebSocket: ${payload}`);
|
|
269
|
+
let event;
|
|
270
|
+
try {
|
|
271
|
+
event = JSON.parse(payload);
|
|
272
|
+
} catch (parseError) {
|
|
273
|
+
this.logger.debug(`Unable to parse an incoming WebSocket message (will ignore): ${parseError}, ${payload}`);
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
if (event.type === "hello") {
|
|
277
|
+
this.emit(State.Connected);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
if (event.type === "disconnect") {
|
|
281
|
+
this.logger.debug(`Received "${event.type}" (${event.reason}) message - disconnecting.${this.autoReconnectEnabled ? " Will reconnect." : ""}`);
|
|
282
|
+
(_a = this.websocket) === null || _a === void 0 || _a.disconnect();
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
const ack = (response) => __awaiter(this, void 0, void 0, function* () {
|
|
286
|
+
if (this.logger.getLevel() === logger_1.LogLevel.DEBUG) this.logger.debug(`Calling ack() - type: ${event.type}, envelope_id: ${event.envelope_id}, data: ${JSON.stringify(response)}`);
|
|
287
|
+
yield this.send(event.envelope_id, response);
|
|
288
|
+
});
|
|
289
|
+
if (event.type === "events_api") this.emit(event.payload.event.type, {
|
|
290
|
+
ack,
|
|
291
|
+
envelope_id: event.envelope_id,
|
|
292
|
+
body: event.payload,
|
|
293
|
+
event: event.payload.event,
|
|
294
|
+
retry_num: event.retry_attempt,
|
|
295
|
+
retry_reason: event.retry_reason,
|
|
296
|
+
accepts_response_payload: event.accepts_response_payload
|
|
297
|
+
});
|
|
298
|
+
else this.emit(event.type, {
|
|
299
|
+
ack,
|
|
300
|
+
envelope_id: event.envelope_id,
|
|
301
|
+
body: event.payload,
|
|
302
|
+
accepts_response_payload: event.accepts_response_payload
|
|
303
|
+
});
|
|
304
|
+
this.emit("slack_event", {
|
|
305
|
+
ack,
|
|
306
|
+
envelope_id: event.envelope_id,
|
|
307
|
+
type: event.type,
|
|
308
|
+
body: event.payload,
|
|
309
|
+
retry_num: event.retry_attempt,
|
|
310
|
+
retry_reason: event.retry_reason,
|
|
311
|
+
accepts_response_payload: event.accepts_response_payload
|
|
312
|
+
});
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Method for sending an outgoing message of an arbitrary type over the WebSocket connection.
|
|
317
|
+
* Primarily used to send acknowledgements back to slack for incoming events
|
|
318
|
+
* @param id the envelope id
|
|
319
|
+
* @param body the message body or string text
|
|
320
|
+
*/
|
|
321
|
+
send(id, body = {}) {
|
|
322
|
+
const _body = typeof body === "string" ? { text: body } : body;
|
|
323
|
+
const message = {
|
|
324
|
+
envelope_id: id,
|
|
325
|
+
payload: Object.assign({}, _body)
|
|
326
|
+
};
|
|
327
|
+
return new Promise((resolve, reject) => {
|
|
328
|
+
var _a;
|
|
329
|
+
const wsState = (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.readyState;
|
|
330
|
+
this.logger.debug(`send() method was called (WebSocket state: ${wsState ? SlackWebSocket_1.WS_READY_STATES[wsState] : "uninitialized"})`);
|
|
331
|
+
if (this.websocket === void 0) {
|
|
332
|
+
this.logger.error("Failed to send a message as the client is not connected");
|
|
333
|
+
reject((0, errors_1.sendWhileDisconnectedError)());
|
|
334
|
+
} else if (!this.websocket.isActive()) {
|
|
335
|
+
this.logger.error("Failed to send a message as the client has no active connection");
|
|
336
|
+
reject((0, errors_1.sendWhileNotReadyError)());
|
|
337
|
+
} else {
|
|
338
|
+
this.emit("outgoing_message", message);
|
|
339
|
+
const flatMessage = JSON.stringify(message);
|
|
340
|
+
this.logger.debug(`Sending a WebSocket message: ${flatMessage}`);
|
|
341
|
+
this.websocket.send(flatMessage, (error) => {
|
|
342
|
+
if (error) {
|
|
343
|
+
this.logger.error(`Failed to send a WebSocket message (error: ${error})`);
|
|
344
|
+
return reject((0, errors_1.websocketErrorWithOriginal)(error));
|
|
345
|
+
}
|
|
346
|
+
return resolve();
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
exports.SocketModeClient = SocketModeClient;
|
|
353
|
+
/**
|
|
354
|
+
* The name used to prefix all logging generated from this class
|
|
355
|
+
*/
|
|
356
|
+
SocketModeClient.loggerName = "SocketModeClient";
|
|
357
|
+
(0, web_api_1.addAppMetadata)({
|
|
358
|
+
name: package_json_1.default.name,
|
|
359
|
+
version: package_json_1.default.version
|
|
360
|
+
});
|
|
361
|
+
exports.default = SocketModeClient;
|
|
362
|
+
}));
|
|
363
|
+
|
|
364
|
+
//#endregion
|
|
365
|
+
export default require_SocketModeClient();
|
|
366
|
+
|
|
367
|
+
export { require_SocketModeClient };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { __commonJSMin } from "../../../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../node_modules/.pnpm/@slack+socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/UnrecoverableSocketModeStartError.js
|
|
4
|
+
var require_UnrecoverableSocketModeStartError = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UnrecoverableSocketModeStartError = void 0;
|
|
7
|
+
var UnrecoverableSocketModeStartError;
|
|
8
|
+
(function(UnrecoverableSocketModeStartError) {
|
|
9
|
+
UnrecoverableSocketModeStartError["NotAuthed"] = "not_authed";
|
|
10
|
+
UnrecoverableSocketModeStartError["InvalidAuth"] = "invalid_auth";
|
|
11
|
+
UnrecoverableSocketModeStartError["AccountInactive"] = "account_inactive";
|
|
12
|
+
UnrecoverableSocketModeStartError["UserRemovedFromTeam"] = "user_removed_from_team";
|
|
13
|
+
UnrecoverableSocketModeStartError["TeamDisabled"] = "team_disabled";
|
|
14
|
+
})(UnrecoverableSocketModeStartError || (exports.UnrecoverableSocketModeStartError = UnrecoverableSocketModeStartError = {}));
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
//#endregion
|
|
18
|
+
export default require_UnrecoverableSocketModeStartError();
|
|
19
|
+
|
|
20
|
+
export { require_UnrecoverableSocketModeStartError };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { __commonJSMin } from "../../../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../node_modules/.pnpm/@slack+socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/errors.js
|
|
4
|
+
var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ErrorCode = void 0;
|
|
7
|
+
exports.websocketErrorWithOriginal = websocketErrorWithOriginal;
|
|
8
|
+
exports.platformErrorFromEvent = platformErrorFromEvent;
|
|
9
|
+
exports.noReplyReceivedError = noReplyReceivedError;
|
|
10
|
+
exports.sendWhileDisconnectedError = sendWhileDisconnectedError;
|
|
11
|
+
exports.sendWhileNotReadyError = sendWhileNotReadyError;
|
|
12
|
+
/**
|
|
13
|
+
* A dictionary of codes for errors produced by this package
|
|
14
|
+
*/
|
|
15
|
+
var ErrorCode;
|
|
16
|
+
(function(ErrorCode) {
|
|
17
|
+
ErrorCode["SendWhileDisconnectedError"] = "slack_socket_mode_send_while_disconnected_error";
|
|
18
|
+
ErrorCode["SendWhileNotReadyError"] = "slack_socket_mode_send_while_not_ready_error";
|
|
19
|
+
ErrorCode["SendMessagePlatformError"] = "slack_socket_mode_send_message_platform_error";
|
|
20
|
+
ErrorCode["WebsocketError"] = "slack_socket_mode_websocket_error";
|
|
21
|
+
ErrorCode["NoReplyReceivedError"] = "slack_socket_mode_no_reply_received_error";
|
|
22
|
+
ErrorCode["InitializationError"] = "slack_socket_mode_initialization_error";
|
|
23
|
+
})(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
|
|
24
|
+
/**
|
|
25
|
+
* Factory for producing a {@link CodedError} from a generic error
|
|
26
|
+
*/
|
|
27
|
+
function errorWithCode(error, code) {
|
|
28
|
+
const codedError = error;
|
|
29
|
+
codedError.code = code;
|
|
30
|
+
return codedError;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A factory to create SMWebsocketError objects.
|
|
34
|
+
*/
|
|
35
|
+
function websocketErrorWithOriginal(original) {
|
|
36
|
+
const error = errorWithCode(new Error(original.message), ErrorCode.WebsocketError);
|
|
37
|
+
error.original = original;
|
|
38
|
+
return error;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A factory to create SMPlatformError objects.
|
|
42
|
+
*/
|
|
43
|
+
function platformErrorFromEvent(event) {
|
|
44
|
+
const error = errorWithCode(/* @__PURE__ */ new Error(`An API error occurred: ${event.error.msg}`), ErrorCode.SendMessagePlatformError);
|
|
45
|
+
error.data = event;
|
|
46
|
+
return error;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A factory to create SMNoReplyReceivedError objects.
|
|
50
|
+
*/
|
|
51
|
+
function noReplyReceivedError() {
|
|
52
|
+
return errorWithCode(/* @__PURE__ */ new Error("Message sent but no server acknowledgement was received. This may be caused by the client changing connection state rather than any issue with the specific message. Check before resending."), ErrorCode.NoReplyReceivedError);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A factory to create SMSendWhileDisconnectedError objects.
|
|
56
|
+
*/
|
|
57
|
+
function sendWhileDisconnectedError() {
|
|
58
|
+
return errorWithCode(/* @__PURE__ */ new Error("Failed to send a WebSocket message as the client is not connected"), ErrorCode.NoReplyReceivedError);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A factory to create SMSendWhileNotReadyError objects.
|
|
62
|
+
*/
|
|
63
|
+
function sendWhileNotReadyError() {
|
|
64
|
+
return errorWithCode(/* @__PURE__ */ new Error("Failed to send a WebSocket message as the client is not ready"), ErrorCode.NoReplyReceivedError);
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
|
|
68
|
+
//#endregion
|
|
69
|
+
export default require_errors();
|
|
70
|
+
|
|
71
|
+
export { require_errors };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { __commonJSMin } from "../../../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { require_errors } from "./errors.js";
|
|
3
|
+
import { require_logger } from "./logger.js";
|
|
4
|
+
import { require_UnrecoverableSocketModeStartError } from "./UnrecoverableSocketModeStartError.js";
|
|
5
|
+
import { require_SocketModeClient } from "./SocketModeClient.js";
|
|
6
|
+
|
|
7
|
+
//#region ../../node_modules/.pnpm/@slack+socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/index.js
|
|
8
|
+
var require_src = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.UnrecoverableSocketModeStartError = exports.SocketModeClient = exports.LogLevel = exports.ErrorCode = void 0;
|
|
11
|
+
var errors_1 = require_errors();
|
|
12
|
+
Object.defineProperty(exports, "ErrorCode", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function() {
|
|
15
|
+
return errors_1.ErrorCode;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
var logger_1 = require_logger();
|
|
19
|
+
Object.defineProperty(exports, "LogLevel", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function() {
|
|
22
|
+
return logger_1.LogLevel;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var SocketModeClient_1 = require_SocketModeClient();
|
|
26
|
+
Object.defineProperty(exports, "SocketModeClient", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function() {
|
|
29
|
+
return SocketModeClient_1.SocketModeClient;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var UnrecoverableSocketModeStartError_1 = require_UnrecoverableSocketModeStartError();
|
|
33
|
+
Object.defineProperty(exports, "UnrecoverableSocketModeStartError", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function() {
|
|
36
|
+
return UnrecoverableSocketModeStartError_1.UnrecoverableSocketModeStartError;
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}));
|
|
40
|
+
|
|
41
|
+
//#endregion
|
|
42
|
+
export default require_src();
|
|
43
|
+
|
|
44
|
+
export { };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { __commonJSMin } from "../../../../../../../../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { require_dist } from "../../../../../../@slack_logger@4.0.0/node_modules/@slack/logger/dist/index.js";
|
|
3
|
+
|
|
4
|
+
//#region ../../node_modules/.pnpm/@slack+socket-mode@2.0.5/node_modules/@slack/socket-mode/dist/src/logger.js
|
|
5
|
+
var require_logger = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.LogLevel = void 0;
|
|
8
|
+
const logger_1 = require_dist();
|
|
9
|
+
Object.defineProperty(exports, "LogLevel", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return logger_1.LogLevel;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
let instanceCount = 0;
|
|
16
|
+
exports.default = { getLogger: function getLogger(name, level, existingLogger) {
|
|
17
|
+
const instanceId = instanceCount;
|
|
18
|
+
instanceCount += 1;
|
|
19
|
+
const logger = (() => {
|
|
20
|
+
if (existingLogger !== void 0) return existingLogger;
|
|
21
|
+
return new logger_1.ConsoleLogger();
|
|
22
|
+
})();
|
|
23
|
+
logger.setName(`socket-mode:${name}:${instanceId}`);
|
|
24
|
+
if (level !== void 0) logger.setLevel(level);
|
|
25
|
+
return logger;
|
|
26
|
+
} };
|
|
27
|
+
}));
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
export default require_logger();
|
|
31
|
+
|
|
32
|
+
export { require_logger };
|