chz-telegram-bot 0.7.13 → 0.7.15
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/dtos/propertyProviderSets.d.ts +0 -1
- package/dist/dtos/propertyProviderSets.d.ts.map +1 -1
- package/dist/entities/actions/commandAction.d.ts +1 -1
- package/dist/entities/actions/commandAction.d.ts.map +1 -1
- package/dist/entities/actions/commandAction.js +2 -2
- package/dist/helpers/builders/commandActionBuilder.d.ts.map +1 -1
- package/dist/helpers/builders/commandActionBuilder.js +2 -3
- package/package.json +4 -1
- package/eslint.config.ts +0 -62
- package/src/builtin/helpAction.ts +0 -17
- package/src/dtos/chatHistoryMessage.ts +0 -22
- package/src/dtos/chatInfo.ts +0 -12
- package/src/dtos/commandTriggerCheckResult.ts +0 -40
- package/src/dtos/cooldownInfo.ts +0 -10
- package/src/dtos/incomingMessage.ts +0 -71
- package/src/dtos/incomingQuery.ts +0 -14
- package/src/dtos/messageInfo.ts +0 -15
- package/src/dtos/propertyProviderSets.ts +0 -21
- package/src/dtos/replyInfo.ts +0 -9
- package/src/dtos/responses/delay.ts +0 -28
- package/src/dtos/responses/imageMessage.ts +0 -41
- package/src/dtos/responses/inlineQueryResponse.ts +0 -26
- package/src/dtos/responses/reaction.ts +0 -30
- package/src/dtos/responses/textMessage.ts +0 -44
- package/src/dtos/responses/unpin.ts +0 -27
- package/src/dtos/responses/videoMessage.ts +0 -41
- package/src/dtos/userInfo.ts +0 -8
- package/src/entities/actions/commandAction.ts +0 -275
- package/src/entities/actions/inlineQueryAction.ts +0 -83
- package/src/entities/actions/replyCaptureAction.ts +0 -110
- package/src/entities/actions/scheduledAction.ts +0 -182
- package/src/entities/botInstance.ts +0 -92
- package/src/entities/cachedStateFactory.ts +0 -14
- package/src/entities/context/baseContext.ts +0 -111
- package/src/entities/context/chatContext.ts +0 -135
- package/src/entities/context/inlineQueryContext.ts +0 -63
- package/src/entities/context/messageContext.ts +0 -250
- package/src/entities/context/replyContext.ts +0 -260
- package/src/entities/states/actionStateBase.ts +0 -6
- package/src/entities/taskRecord.ts +0 -11
- package/src/helpers/builders/commandActionBuilder.ts +0 -214
- package/src/helpers/builders/inlineQueryActionBuilder.ts +0 -71
- package/src/helpers/builders/scheduledActionBuilder.ts +0 -143
- package/src/helpers/mapUtils.ts +0 -28
- package/src/helpers/noop.ts +0 -20
- package/src/helpers/objectFromEntries.ts +0 -7
- package/src/helpers/timeConvertions.ts +0 -13
- package/src/helpers/toArray.ts +0 -3
- package/src/helpers/traceFactory.ts +0 -11
- package/src/index.ts +0 -33
- package/src/main.ts +0 -76
- package/src/services/actionProcessingService.ts +0 -125
- package/src/services/actionProcessors/baseProcessor.ts +0 -67
- package/src/services/actionProcessors/commandActionProcessor.ts +0 -231
- package/src/services/actionProcessors/inlineQueryActionProcessor.ts +0 -165
- package/src/services/actionProcessors/scheduledActionProcessor.ts +0 -136
- package/src/services/jsonFileStorage.ts +0 -181
- package/src/services/nodeTimeoutScheduler.ts +0 -79
- package/src/services/responseProcessingQueue.ts +0 -57
- package/src/services/telegramApi.ts +0 -278
- package/src/types/action.ts +0 -15
- package/src/types/actionState.ts +0 -4
- package/src/types/cachedValueAccessor.ts +0 -1
- package/src/types/capture.ts +0 -33
- package/src/types/commandCondition.ts +0 -9
- package/src/types/commandTrigger.ts +0 -1
- package/src/types/events.ts +0 -286
- package/src/types/externalAliases.ts +0 -18
- package/src/types/handlers.ts +0 -26
- package/src/types/inputFile.ts +0 -4
- package/src/types/messageSendingOptions.ts +0 -10
- package/src/types/messageTypes.ts +0 -21
- package/src/types/propertyProvider.ts +0 -14
- package/src/types/response.ts +0 -51
- package/src/types/scheduler.ts +0 -20
- package/src/types/storage.ts +0 -23
- package/src/types/timeValues.ts +0 -33
- package/src/types/trace.ts +0 -5
- package/tests/dtos/commandTriggerCheckResult.test.ts +0 -301
- package/tests/entities/actions/inlineQueryAction.test.ts +0 -359
- package/tests/entities/actions/replyCaptureAction.test.ts +0 -501
- package/tests/entities/cachedStateFactory.test.ts +0 -98
- package/tests/entities/context/chatContext.test.ts +0 -606
- package/tests/entities/context/messageContext.test.ts +0 -370
- package/tests/entities/states/actionStateBase.test.ts +0 -138
- package/tests/entities/taskRecord.test.ts +0 -195
- package/tests/helpers/mapUtils.test.ts +0 -163
- package/tests/helpers/timeConvertions.test.ts +0 -129
- package/tests/services/actionProcessors/baseActionProcessor.test.ts +0 -359
- package/tests/services/actionProcessors/commandActionProcessor.test.ts +0 -268
- package/tests/services/actionProcessors/inlineQueryActionProcessor.test.ts +0 -616
- package/tests/services/actionProcessors/processorTestHelpers.ts +0 -147
- package/tests/services/actionProcessors/scheduledActionProcessor.test.ts +0 -153
- package/tests/services/jsonFileStorage.test.ts +0 -927
- package/tests/services/nodeTimeoutScheduler.test.ts +0 -421
- package/tests/services/responseProcessingQueue.test.ts +0 -388
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -118
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
import { describe, test, expect, beforeEach } from 'bun:test';
|
|
2
|
-
import { BotEventType, TypedEventEmitter } from '../../../src/types/events';
|
|
3
|
-
import { IScheduler } from '../../../src/types/scheduler';
|
|
4
|
-
import { IStorageClient } from '../../../src/types/storage';
|
|
5
|
-
import { TraceId } from '../../../src/types/trace';
|
|
6
|
-
import { CommandActionProcessor } from '../../../src/services/actionProcessors/commandActionProcessor';
|
|
7
|
-
import {
|
|
8
|
-
createMockStorage,
|
|
9
|
-
createMockScheduler,
|
|
10
|
-
createMockAction,
|
|
11
|
-
createMockTelegramApi,
|
|
12
|
-
createMockChatInfo
|
|
13
|
-
} from './processorTestHelpers';
|
|
14
|
-
|
|
15
|
-
function createMockTraceId(): TraceId {
|
|
16
|
-
return 'test:trace-id' as TraceId;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
// =============================================================================
|
|
20
|
-
// CommandActionProcessor Tests
|
|
21
|
-
// =============================================================================
|
|
22
|
-
|
|
23
|
-
describe('CommandActionProcessor', () => {
|
|
24
|
-
let processor: CommandActionProcessor;
|
|
25
|
-
let eventEmitter: TypedEventEmitter;
|
|
26
|
-
let storage: IStorageClient;
|
|
27
|
-
let scheduler: IScheduler;
|
|
28
|
-
|
|
29
|
-
beforeEach(() => {
|
|
30
|
-
eventEmitter = new TypedEventEmitter();
|
|
31
|
-
storage = createMockStorage();
|
|
32
|
-
scheduler = createMockScheduler();
|
|
33
|
-
processor = new CommandActionProcessor(
|
|
34
|
-
'command-bot',
|
|
35
|
-
storage,
|
|
36
|
-
scheduler,
|
|
37
|
-
eventEmitter
|
|
38
|
-
);
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
describe('constructor', () => {
|
|
42
|
-
test('should create processor with bot name', () => {
|
|
43
|
-
expect(processor).toBeDefined();
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
describe('captureRegistrationCallback', () => {
|
|
48
|
-
test('should emit captureStarted event', () => {
|
|
49
|
-
const mockApi = createMockTelegramApi();
|
|
50
|
-
processor.initializeDependencies(mockApi);
|
|
51
|
-
|
|
52
|
-
const captureEvents: unknown[] = [];
|
|
53
|
-
eventEmitter.on(
|
|
54
|
-
BotEventType.commandActionCaptureStarted,
|
|
55
|
-
(_ts, data) => {
|
|
56
|
-
captureEvents.push(data);
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
const chatInfo = createMockChatInfo();
|
|
61
|
-
const traceId = createMockTraceId();
|
|
62
|
-
const abortController = new AbortController();
|
|
63
|
-
const mockCapture = {
|
|
64
|
-
action: createMockAction('parent-action'),
|
|
65
|
-
handler: async () => {},
|
|
66
|
-
trigger: [],
|
|
67
|
-
abortController
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
processor.captureRegistrationCallback(
|
|
71
|
-
mockCapture,
|
|
72
|
-
123,
|
|
73
|
-
chatInfo,
|
|
74
|
-
traceId
|
|
75
|
-
);
|
|
76
|
-
|
|
77
|
-
expect(captureEvents.length).toBe(1);
|
|
78
|
-
expect(captureEvents[0]).toEqual({
|
|
79
|
-
parentMessageId: 123,
|
|
80
|
-
chatInfo,
|
|
81
|
-
traceId
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
test('should emit captureAborted event when abort controller aborts', async () => {
|
|
86
|
-
const mockApi = createMockTelegramApi();
|
|
87
|
-
processor.initializeDependencies(mockApi);
|
|
88
|
-
|
|
89
|
-
const abortEvents: unknown[] = [];
|
|
90
|
-
eventEmitter.on(
|
|
91
|
-
BotEventType.commandActionCaptureAborted,
|
|
92
|
-
(_ts, data) => {
|
|
93
|
-
abortEvents.push(data);
|
|
94
|
-
}
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
const chatInfo = createMockChatInfo();
|
|
98
|
-
const traceId = createMockTraceId();
|
|
99
|
-
const abortController = new AbortController();
|
|
100
|
-
const mockCapture = {
|
|
101
|
-
action: createMockAction('parent-action'),
|
|
102
|
-
handler: async () => {},
|
|
103
|
-
trigger: [],
|
|
104
|
-
abortController
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
processor.captureRegistrationCallback(
|
|
108
|
-
mockCapture,
|
|
109
|
-
456,
|
|
110
|
-
chatInfo,
|
|
111
|
-
traceId
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
// Abort the controller
|
|
115
|
-
abortController.abort();
|
|
116
|
-
|
|
117
|
-
// Wait for event listener to fire
|
|
118
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
119
|
-
|
|
120
|
-
expect(abortEvents.length).toBe(1);
|
|
121
|
-
expect(abortEvents[0]).toEqual({
|
|
122
|
-
parentMessageId: 456,
|
|
123
|
-
chatInfo,
|
|
124
|
-
traceId
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
test('should register multiple captures', () => {
|
|
129
|
-
const mockApi = createMockTelegramApi();
|
|
130
|
-
processor.initializeDependencies(mockApi);
|
|
131
|
-
|
|
132
|
-
const captureEvents: unknown[] = [];
|
|
133
|
-
eventEmitter.on(
|
|
134
|
-
BotEventType.commandActionCaptureStarted,
|
|
135
|
-
(_ts, data) => {
|
|
136
|
-
captureEvents.push(data);
|
|
137
|
-
}
|
|
138
|
-
);
|
|
139
|
-
|
|
140
|
-
const chatInfo = createMockChatInfo();
|
|
141
|
-
const traceId = createMockTraceId();
|
|
142
|
-
|
|
143
|
-
for (let i = 0; i < 3; i++) {
|
|
144
|
-
const mockCapture = {
|
|
145
|
-
action: createMockAction(`parent-action-${i}`),
|
|
146
|
-
handler: async () => {},
|
|
147
|
-
trigger: [],
|
|
148
|
-
abortController: new AbortController()
|
|
149
|
-
};
|
|
150
|
-
processor.captureRegistrationCallback(
|
|
151
|
-
mockCapture,
|
|
152
|
-
100 + i,
|
|
153
|
-
chatInfo,
|
|
154
|
-
traceId
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
expect(captureEvents.length).toBe(3);
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
describe('capture lifecycle', () => {
|
|
163
|
-
test('should handle capture registration and abort lifecycle', async () => {
|
|
164
|
-
const localEventEmitter = new TypedEventEmitter();
|
|
165
|
-
const localProcessor = new CommandActionProcessor(
|
|
166
|
-
'capture-bot',
|
|
167
|
-
createMockStorage(),
|
|
168
|
-
createMockScheduler(),
|
|
169
|
-
localEventEmitter
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
const mockApi = createMockTelegramApi();
|
|
173
|
-
localProcessor.initializeDependencies(mockApi);
|
|
174
|
-
|
|
175
|
-
const startEvents: unknown[] = [];
|
|
176
|
-
const abortEvents: unknown[] = [];
|
|
177
|
-
|
|
178
|
-
localEventEmitter.on(
|
|
179
|
-
BotEventType.commandActionCaptureStarted,
|
|
180
|
-
(_ts, data) => {
|
|
181
|
-
startEvents.push(data);
|
|
182
|
-
}
|
|
183
|
-
);
|
|
184
|
-
localEventEmitter.on(
|
|
185
|
-
BotEventType.commandActionCaptureAborted,
|
|
186
|
-
(_ts, data) => {
|
|
187
|
-
abortEvents.push(data);
|
|
188
|
-
}
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
const chatInfo = createMockChatInfo();
|
|
192
|
-
const traceId = createMockTraceId();
|
|
193
|
-
const abortController = new AbortController();
|
|
194
|
-
const mockCapture = {
|
|
195
|
-
action: createMockAction('lifecycle-action'),
|
|
196
|
-
handler: async () => {},
|
|
197
|
-
trigger: [],
|
|
198
|
-
abortController
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
// Register capture
|
|
202
|
-
localProcessor.captureRegistrationCallback(
|
|
203
|
-
mockCapture,
|
|
204
|
-
789,
|
|
205
|
-
chatInfo,
|
|
206
|
-
traceId
|
|
207
|
-
);
|
|
208
|
-
expect(startEvents.length).toBe(1);
|
|
209
|
-
expect(abortEvents.length).toBe(0);
|
|
210
|
-
|
|
211
|
-
// Abort capture
|
|
212
|
-
abortController.abort();
|
|
213
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
214
|
-
|
|
215
|
-
expect(abortEvents.length).toBe(1);
|
|
216
|
-
expect(abortEvents[0]).toEqual({
|
|
217
|
-
parentMessageId: 789,
|
|
218
|
-
chatInfo,
|
|
219
|
-
traceId
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
|
|
223
|
-
test('should handle abort on already removed capture', async () => {
|
|
224
|
-
const localEventEmitter = new TypedEventEmitter();
|
|
225
|
-
const localProcessor = new CommandActionProcessor(
|
|
226
|
-
'double-abort-bot',
|
|
227
|
-
createMockStorage(),
|
|
228
|
-
createMockScheduler(),
|
|
229
|
-
localEventEmitter
|
|
230
|
-
);
|
|
231
|
-
|
|
232
|
-
const mockApi = createMockTelegramApi();
|
|
233
|
-
localProcessor.initializeDependencies(mockApi);
|
|
234
|
-
|
|
235
|
-
const abortEvents: unknown[] = [];
|
|
236
|
-
localEventEmitter.on(
|
|
237
|
-
BotEventType.commandActionCaptureAborted,
|
|
238
|
-
(_ts, data) => {
|
|
239
|
-
abortEvents.push(data);
|
|
240
|
-
}
|
|
241
|
-
);
|
|
242
|
-
|
|
243
|
-
const chatInfo = createMockChatInfo();
|
|
244
|
-
const traceId = createMockTraceId();
|
|
245
|
-
const abortController = new AbortController();
|
|
246
|
-
const mockCapture = {
|
|
247
|
-
action: createMockAction('double-abort-action'),
|
|
248
|
-
handler: async () => {},
|
|
249
|
-
trigger: [],
|
|
250
|
-
abortController
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
localProcessor.captureRegistrationCallback(
|
|
254
|
-
mockCapture,
|
|
255
|
-
111,
|
|
256
|
-
chatInfo,
|
|
257
|
-
traceId
|
|
258
|
-
);
|
|
259
|
-
|
|
260
|
-
// Abort twice - should only emit once
|
|
261
|
-
abortController.abort();
|
|
262
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
263
|
-
|
|
264
|
-
// AbortController can only abort once
|
|
265
|
-
expect(abortEvents.length).toBe(1);
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
});
|