@apiquest/plugin-sse 1.0.4 → 1.0.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAkBhK,eAAO,MAAM,SAAS,EAAE,eAuYvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA2G,MAAM,iBAAiB,CAAC;AAkBhK,eAAO,MAAM,SAAS,EAAE,eA0gBvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,65 @@ const ssePlugin = {
12
12
  supportedAuthTypes: ['bearer', 'basic', 'apikey', 'none'],
13
13
  // Accept additional auth plugins beyond the listed types
14
14
  strictAuthList: false,
15
+ protocolAPIProvider(context) {
16
+ const responseData = (context.currentResponse?.data ?? context.currentResponse ?? {});
17
+ return {
18
+ request: {
19
+ url: (context.currentRequest?.data.url ?? ''),
20
+ method: (context.currentRequest?.data.method ?? ''),
21
+ headers: {
22
+ toObject() {
23
+ return (context.currentRequest?.data.headers ?? {});
24
+ }
25
+ }
26
+ },
27
+ response: {
28
+ status: responseData.status ?? 0,
29
+ statusText: responseData.statusText ?? '',
30
+ headers: {
31
+ get(name) {
32
+ if (responseData.headers === null || responseData.headers === undefined)
33
+ return null;
34
+ const lowerName = name.toLowerCase();
35
+ for (const [key, value] of Object.entries(responseData.headers)) {
36
+ if (key.toLowerCase() === lowerName) {
37
+ return value;
38
+ }
39
+ }
40
+ return null;
41
+ },
42
+ has(name) {
43
+ if (responseData.headers === null || responseData.headers === undefined)
44
+ return false;
45
+ const lowerName = name.toLowerCase();
46
+ for (const key of Object.keys(responseData.headers)) {
47
+ if (key.toLowerCase() === lowerName) {
48
+ return true;
49
+ }
50
+ }
51
+ return false;
52
+ },
53
+ toObject() {
54
+ return responseData.headers ?? {};
55
+ }
56
+ },
57
+ body: responseData.body ?? '',
58
+ text() {
59
+ return responseData.body ?? '';
60
+ },
61
+ json() {
62
+ try {
63
+ return JSON.parse(responseData.body ?? '{}');
64
+ }
65
+ catch {
66
+ return {};
67
+ }
68
+ },
69
+ messageCount: responseData.messageCount ?? 0,
70
+ messages: responseData.messages ?? []
71
+ }
72
+ };
73
+ },
15
74
  // Data schema for SSE requests
16
75
  dataSchema: {
17
76
  type: 'object',
@@ -84,13 +143,20 @@ const ssePlugin = {
84
143
  controller.abort();
85
144
  logger?.debug('SSE connection timeout', { url, messageCount, duration: Date.now() - startTime });
86
145
  resolve({
87
- status: 200,
88
- statusText: 'Stream Complete (Timeout)',
89
- body: JSON.stringify({ messages, count: messageCount }),
90
- headers: {},
91
- duration: Date.now() - startTime,
92
- messageCount,
93
- messages
146
+ data: {
147
+ status: 200,
148
+ statusText: 'Stream Complete (Timeout)',
149
+ body: JSON.stringify({ messages, count: messageCount }),
150
+ headers: {},
151
+ messageCount,
152
+ messages
153
+ },
154
+ summary: {
155
+ outcome: 'success',
156
+ code: 200,
157
+ label: 'Stream Complete (Timeout)',
158
+ duration: Date.now() - startTime
159
+ }
94
160
  });
95
161
  }, timeout);
96
162
  try {
@@ -103,14 +169,21 @@ const ssePlugin = {
103
169
  clearTimeout(timeoutId);
104
170
  logger?.debug('SSE request aborted', { url, messageCount, duration: Date.now() - startTime });
105
171
  resolve({
106
- status: 0,
107
- statusText: 'Aborted',
108
- body: JSON.stringify({ messages, count: messageCount }),
109
- headers: {},
110
- duration: Date.now() - startTime,
111
- error: 'Request aborted',
112
- messageCount,
113
- messages
172
+ data: {
173
+ status: 0,
174
+ statusText: 'Aborted',
175
+ body: JSON.stringify({ messages, count: messageCount }),
176
+ headers: {},
177
+ messageCount,
178
+ messages
179
+ },
180
+ summary: {
181
+ outcome: 'error',
182
+ code: 'aborted',
183
+ label: 'Aborted',
184
+ message: 'Request aborted',
185
+ duration: Date.now() - startTime
186
+ }
114
187
  });
115
188
  });
116
189
  }
@@ -128,13 +201,20 @@ const ssePlugin = {
128
201
  clearTimeout(timeoutId);
129
202
  logger?.warn('SSE connection failed', { status: response.status, statusText: response.statusText });
130
203
  resolve({
131
- status: response.status,
132
- statusText: response.statusText,
133
- body: await response.text(),
134
- headers: Object.fromEntries(response.headers.entries()),
135
- duration: Date.now() - startTime,
136
- messageCount: 0,
137
- messages: []
204
+ data: {
205
+ status: response.status,
206
+ statusText: response.statusText,
207
+ body: await response.text(),
208
+ headers: Object.fromEntries(response.headers.entries()),
209
+ messageCount: 0,
210
+ messages: []
211
+ },
212
+ summary: {
213
+ outcome: 'error',
214
+ code: response.status,
215
+ label: response.statusText,
216
+ duration: Date.now() - startTime
217
+ }
138
218
  });
139
219
  return;
140
220
  }
@@ -142,13 +222,20 @@ const ssePlugin = {
142
222
  clearTimeout(timeoutId);
143
223
  logger?.error('SSE response has no body');
144
224
  resolve({
145
- status: response.status,
146
- statusText: 'No Body',
147
- body: '',
148
- headers: Object.fromEntries(response.headers.entries()),
149
- duration: Date.now() - startTime,
150
- messageCount: 0,
151
- messages: []
225
+ data: {
226
+ status: response.status,
227
+ statusText: 'No Body',
228
+ body: '',
229
+ headers: Object.fromEntries(response.headers.entries()),
230
+ messageCount: 0,
231
+ messages: []
232
+ },
233
+ summary: {
234
+ outcome: 'error',
235
+ code: response.status,
236
+ label: 'No Body',
237
+ duration: Date.now() - startTime
238
+ }
152
239
  });
153
240
  return;
154
241
  }
@@ -241,13 +328,20 @@ const ssePlugin = {
241
328
  }
242
329
  }
243
330
  resolve({
244
- status: response.status,
245
- statusText: 'Stream Complete',
246
- body: JSON.stringify({ messages, count: messageCount }),
247
- headers: Object.fromEntries(response.headers.entries()),
248
- duration: Date.now() - startTime,
249
- messageCount,
250
- messages
331
+ data: {
332
+ status: response.status,
333
+ statusText: 'Stream Complete',
334
+ body: JSON.stringify({ messages, count: messageCount }),
335
+ headers: Object.fromEntries(response.headers.entries()),
336
+ messageCount,
337
+ messages
338
+ },
339
+ summary: {
340
+ outcome: 'success',
341
+ code: response.status,
342
+ label: 'Stream Complete',
343
+ duration: Date.now() - startTime
344
+ }
251
345
  });
252
346
  break;
253
347
  }
@@ -269,14 +363,21 @@ const ssePlugin = {
269
363
  if (signal.aborted) {
270
364
  logger?.debug('SSE stream aborted', { messageCount, duration: Date.now() - startTime });
271
365
  resolve({
272
- status: 0,
273
- statusText: 'Aborted',
274
- body: JSON.stringify({ messages, count: messageCount }),
275
- headers: {},
276
- duration: Date.now() - startTime,
277
- error: 'Request aborted',
278
- messageCount,
279
- messages
366
+ data: {
367
+ status: 0,
368
+ statusText: 'Aborted',
369
+ body: JSON.stringify({ messages, count: messageCount }),
370
+ headers: {},
371
+ messageCount,
372
+ messages
373
+ },
374
+ summary: {
375
+ outcome: 'error',
376
+ code: 'aborted',
377
+ label: 'Aborted',
378
+ message: 'Request aborted',
379
+ duration: Date.now() - startTime
380
+ }
280
381
  });
281
382
  }
282
383
  else {
@@ -290,15 +391,23 @@ const ssePlugin = {
290
391
  logger?.error('SSE onError event error', { error: emitErr instanceof Error ? emitErr.message : String(emitErr) });
291
392
  }
292
393
  }
394
+ const message = err instanceof Error ? err.message : String(err);
293
395
  resolve({
294
- status: 0,
295
- statusText: 'Stream Error',
296
- body: JSON.stringify({ messages, count: messageCount }),
297
- headers: {},
298
- duration: Date.now() - startTime,
299
- error: err instanceof Error ? err.message : String(err),
300
- messageCount,
301
- messages
396
+ data: {
397
+ status: 0,
398
+ statusText: 'Stream Error',
399
+ body: JSON.stringify({ messages, count: messageCount }),
400
+ headers: {},
401
+ messageCount,
402
+ messages
403
+ },
404
+ summary: {
405
+ outcome: 'error',
406
+ code: 'stream-error',
407
+ label: 'Stream Error',
408
+ message,
409
+ duration: Date.now() - startTime
410
+ }
302
411
  });
303
412
  }
304
413
  }
@@ -311,30 +420,46 @@ const ssePlugin = {
311
420
  logger?.error('SSE onError event error', { error: emitErr instanceof Error ? emitErr.message : String(emitErr) });
312
421
  });
313
422
  }
423
+ const message = err instanceof Error ? err.message : String(err);
314
424
  resolve({
315
- status: 0,
316
- statusText: 'Connection Error',
317
- body: '',
318
- headers: {},
319
- duration: Date.now() - startTime,
320
- error: err instanceof Error ? err.message : String(err),
321
- messageCount: 0,
322
- messages: []
425
+ data: {
426
+ status: 0,
427
+ statusText: 'Connection Error',
428
+ body: '',
429
+ headers: {},
430
+ messageCount: 0,
431
+ messages: []
432
+ },
433
+ summary: {
434
+ outcome: 'error',
435
+ code: 'connection-error',
436
+ label: 'Connection Error',
437
+ message,
438
+ duration: Date.now() - startTime
439
+ }
323
440
  });
324
441
  });
325
442
  }
326
443
  catch (err) {
327
444
  clearTimeout(timeoutId);
328
445
  logger?.error('SSE unexpected error', { error: err instanceof Error ? err.message : String(err) });
446
+ const message = err instanceof Error ? err.message : String(err);
329
447
  resolve({
330
- status: 0,
331
- statusText: 'Error',
332
- body: '',
333
- headers: {},
334
- duration: Date.now() - startTime,
335
- error: err instanceof Error ? err.message : String(err),
336
- messageCount: 0,
337
- messages: []
448
+ data: {
449
+ status: 0,
450
+ statusText: 'Error',
451
+ body: '',
452
+ headers: {},
453
+ messageCount: 0,
454
+ messages: []
455
+ },
456
+ summary: {
457
+ outcome: 'error',
458
+ code: 'error',
459
+ label: 'Error',
460
+ message,
461
+ duration: Date.now() - startTime
462
+ }
338
463
  });
339
464
  }
340
465
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apiquest/plugin-sse",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "SSE protocol plugin for ApiQuest",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -59,8 +59,7 @@
59
59
  "apikey",
60
60
  "digest",
61
61
  "ntlm"
62
- ],
63
- "strictAuthList": false
62
+ ]
64
63
  }
65
64
  }
66
65
  }
package/src/index.ts DELETED
@@ -1,412 +0,0 @@
1
- import type { IProtocolPlugin, Request, ExecutionContext, ProtocolResponse, ValidationResult, ValidationError, RuntimeOptions, ILogger } from '@apiquest/types';
2
-
3
- // Helper functions for string validation
4
- function isNullOrEmpty(value: string | null | undefined): boolean {
5
- return value === null || value === undefined || value === '';
6
- }
7
-
8
- function isNullOrWhitespace(value: string | null | undefined): boolean {
9
- return value === null || value === undefined || value.trim() === '';
10
- }
11
-
12
- interface SSEMessage {
13
- data: string;
14
- event?: string;
15
- id?: string;
16
- retry?: number;
17
- }
18
-
19
- export const ssePlugin: IProtocolPlugin = {
20
- name: 'SSE Client',
21
- version: '1.0.0',
22
- description: 'Server-Sent Events (SSE) protocol support',
23
-
24
- // What protocols this plugin provides
25
- protocols: ['sse'],
26
-
27
- // Supported authentication types
28
- supportedAuthTypes: ['bearer', 'basic', 'apikey', 'none'],
29
-
30
- // Accept additional auth plugins beyond the listed types
31
- strictAuthList: false,
32
-
33
- // Data schema for SSE requests
34
- dataSchema: {
35
- type: 'object',
36
- required: ['url'],
37
- properties: {
38
- url: {
39
- type: 'string',
40
- description: 'SSE endpoint URL'
41
- },
42
- timeout: {
43
- type: 'number',
44
- description: 'Connection timeout in milliseconds',
45
- default: 30000
46
- },
47
- headers: {
48
- type: 'object',
49
- description: 'HTTP headers',
50
- additionalProperties: { type: 'string' }
51
- }
52
- }
53
- },
54
-
55
- // Options schema for runtime configuration
56
- optionsSchema: {
57
- timeout: {
58
- type: 'number',
59
- default: 30000,
60
- description: 'Request timeout in milliseconds'
61
- }
62
- },
63
-
64
- // Plugin events
65
- events: [
66
- {
67
- name: 'onMessage',
68
- description: 'Fired when an SSE message is received',
69
- canHaveTests: true,
70
- required: false
71
- },
72
- {
73
- name: 'onError',
74
- description: 'Fired when an error occurs during streaming',
75
- canHaveTests: false,
76
- required: false
77
- },
78
- {
79
- name: 'onComplete',
80
- description: 'Fired when the SSE stream completes',
81
- canHaveTests: true,
82
- required: false
83
- }
84
- ],
85
-
86
- async execute(request: Request, context: ExecutionContext, options: RuntimeOptions, emitEvent?: (eventName: string, eventData: unknown) => Promise<void>, logger?: ILogger): Promise<ProtocolResponse> {
87
- const startTime = Date.now();
88
- const url = String(request.data.url ?? '');
89
-
90
- if (isNullOrWhitespace(url)) {
91
- logger?.error('SSE request missing URL');
92
- throw new Error('URL is required for SSE requests');
93
- }
94
-
95
- const headers: Record<string, string> = typeof request.data.headers === 'object' && request.data.headers !== null
96
- ? Object.fromEntries(
97
- Object.entries(request.data.headers as Record<string, unknown>).map(([k, v]) => [k, String(v)])
98
- )
99
- : {};
100
-
101
- const sseOptions: Record<string, unknown> = (options.plugins?.sse as Record<string, unknown> | null | undefined) ?? {};
102
- const sseTimeout = typeof sseOptions.timeout === 'number' ? sseOptions.timeout : null;
103
- const timeout = (typeof request.data.timeout === 'number' ? request.data.timeout : null) ?? options.timeout?.request ?? sseTimeout ?? 30000;
104
-
105
- logger?.debug('SSE request starting', { url, timeout });
106
-
107
- const messages: SSEMessage[] = [];
108
- let messageCount = 0;
109
-
110
- return new Promise<ProtocolResponse>((resolve, reject) => {
111
- const controller = new AbortController();
112
-
113
- const timeoutId = setTimeout(() => {
114
- controller.abort();
115
- logger?.debug('SSE connection timeout', { url, messageCount, duration: Date.now() - startTime });
116
-
117
- resolve({
118
- status: 200,
119
- statusText: 'Stream Complete (Timeout)',
120
- body: JSON.stringify({ messages, count: messageCount }),
121
- headers: {},
122
- duration: Date.now() - startTime,
123
- messageCount,
124
- messages
125
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
126
- }, timeout);
127
-
128
- try {
129
- // Use fetch with streaming which is more universally supported in Node.js
130
- const signal = context.abortSignal ?? controller.signal;
131
-
132
- // Handle abort signal
133
- if (context.abortSignal !== undefined && context.abortSignal !== null) {
134
- context.abortSignal.addEventListener('abort', () => {
135
- controller.abort();
136
- clearTimeout(timeoutId);
137
- logger?.debug('SSE request aborted', { url, messageCount, duration: Date.now() - startTime });
138
- resolve({
139
- status: 0,
140
- statusText: 'Aborted',
141
- body: JSON.stringify({ messages, count: messageCount }),
142
- headers: {},
143
- duration: Date.now() - startTime,
144
- error: 'Request aborted',
145
- messageCount,
146
- messages
147
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
148
- });
149
- }
150
-
151
- // Use fetch with streaming
152
- fetch(url, {
153
- method: 'GET',
154
- headers: {
155
- ...headers,
156
- 'Accept': 'text/event-stream',
157
- 'Cache-Control': 'no-cache'
158
- },
159
- signal
160
- }).then(async (response) => {
161
- if (!response.ok) {
162
- clearTimeout(timeoutId);
163
- logger?.warn('SSE connection failed', { status: response.status, statusText: response.statusText });
164
- resolve({
165
- status: response.status,
166
- statusText: response.statusText,
167
- body: await response.text(),
168
- headers: Object.fromEntries(response.headers.entries()),
169
- duration: Date.now() - startTime,
170
- messageCount: 0,
171
- messages: []
172
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
173
- return;
174
- }
175
-
176
- if (response.body === null || response.body === undefined) {
177
- clearTimeout(timeoutId);
178
- logger?.error('SSE response has no body');
179
- resolve({
180
- status: response.status,
181
- statusText: 'No Body',
182
- body: '',
183
- headers: Object.fromEntries(response.headers.entries()),
184
- duration: Date.now() - startTime,
185
- messageCount: 0,
186
- messages: []
187
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
188
- return;
189
- }
190
-
191
- const reader = response.body.getReader();
192
- const decoder = new TextDecoder();
193
- let buffer = '';
194
-
195
- // Temporary message fields that get compiled when we hit an empty line
196
- let currentEventType: string | undefined;
197
- let currentEventId: string | undefined;
198
- let currentRetry: number | undefined;
199
- const currentDataLines: string[] = [];
200
-
201
- const dispatchCurrentMessage = async (): Promise<void> => {
202
- if (currentDataLines.length > 0) {
203
- const message: SSEMessage = {
204
- data: currentDataLines.join('\n'),
205
- event: currentEventType,
206
- id: currentEventId,
207
- retry: currentRetry
208
- };
209
-
210
- messages.push(message);
211
- messageCount++;
212
-
213
- logger?.trace('SSE message received', { messageCount, data: message.data.slice(0, 100) });
214
-
215
- // Emit onMessage event
216
- if (emitEvent !== undefined && emitEvent !== null) {
217
- try {
218
- await emitEvent('onMessage', {
219
- index: messageCount,
220
- data: message
221
- });
222
- } catch (err) {
223
- logger?.error('SSE onMessage event error', { error: err instanceof Error ? err.message : String(err) });
224
- }
225
- }
226
-
227
- // Reset temporary fields
228
- currentEventType = undefined;
229
- currentEventId = undefined;
230
- currentRetry = undefined;
231
- currentDataLines.length = 0;
232
- }
233
- };
234
-
235
- const processLine = async (line: string): Promise<void> => {
236
- // Empty line signals the end of an event
237
- if (line === '') {
238
- await dispatchCurrentMessage();
239
- } else if (line.startsWith('data:')) {
240
- // Can have multiple data lines
241
- const data = line.slice(5);
242
- // Trim only the leading space if present (per spec)
243
- currentDataLines.push(data.startsWith(' ') ? data.slice(1) : data);
244
- } else if (line.startsWith('event:')) {
245
- currentEventType = line.slice(6).trim();
246
- } else if (line.startsWith('id:')) {
247
- currentEventId = line.slice(3).trim();
248
- } else if (line.startsWith('retry:')) {
249
- const retryValue = parseInt(line.slice(6).trim(), 10);
250
- if (!isNaN(retryValue)) {
251
- currentRetry = retryValue;
252
- }
253
- }
254
- // Lines starting with ':' are comments and should be ignored
255
- // Other lines are ignored as well per spec
256
- };
257
-
258
- try {
259
- while (true) {
260
- const result = await reader.read();
261
- const done = result.done;
262
- const value: Uint8Array | undefined = result.value as Uint8Array | undefined;
263
-
264
- if (done) {
265
- // Process remaining buffer
266
- const lines = buffer.split('\n');
267
- for (const line of lines) {
268
- await processLine(line);
269
- }
270
- // Flush any pending message
271
- await dispatchCurrentMessage();
272
-
273
- clearTimeout(timeoutId);
274
- logger?.debug('SSE stream complete', { messageCount, duration: Date.now() - startTime });
275
-
276
- // Emit onComplete event
277
- if (emitEvent !== undefined && emitEvent !== null) {
278
- try {
279
- await emitEvent('onComplete', { messageCount, messages });
280
- } catch (err) {
281
- logger?.error('SSE onComplete event error', { error: err instanceof Error ? err.message : String(err) });
282
- }
283
- }
284
-
285
- resolve({
286
- status: response.status,
287
- statusText: 'Stream Complete',
288
- body: JSON.stringify({ messages, count: messageCount }),
289
- headers: Object.fromEntries(response.headers.entries()),
290
- duration: Date.now() - startTime,
291
- messageCount,
292
- messages
293
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
294
- break;
295
- }
296
-
297
- // Decode chunk and add to buffer
298
- if (value !== undefined) {
299
- buffer += decoder.decode(value, { stream: true });
300
- }
301
-
302
- // Process complete lines
303
- const lines = buffer.split('\n');
304
- buffer = lines.pop() ?? ''; // Keep incomplete line in buffer
305
-
306
- for (const line of lines) {
307
- await processLine(line);
308
- }
309
- }
310
- } catch (err) {
311
- clearTimeout(timeoutId);
312
-
313
- // Check if it was aborted
314
- if (signal.aborted) {
315
- logger?.debug('SSE stream aborted', { messageCount, duration: Date.now() - startTime });
316
- resolve({
317
- status: 0,
318
- statusText: 'Aborted',
319
- body: JSON.stringify({ messages, count: messageCount }),
320
- headers: {},
321
- duration: Date.now() - startTime,
322
- error: 'Request aborted',
323
- messageCount,
324
- messages
325
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
326
- } else {
327
- logger?.error('SSE stream error', { error: err instanceof Error ? err.message : String(err) });
328
-
329
- // Emit onError event
330
- if (emitEvent !== undefined && emitEvent !== null) {
331
- try {
332
- await emitEvent('onError', { error: err instanceof Error ? err.message : String(err) });
333
- } catch (emitErr) {
334
- logger?.error('SSE onError event error', { error: emitErr instanceof Error ? emitErr.message : String(emitErr) });
335
- }
336
- }
337
-
338
- resolve({
339
- status: 0,
340
- statusText: 'Stream Error',
341
- body: JSON.stringify({ messages, count: messageCount }),
342
- headers: {},
343
- duration: Date.now() - startTime,
344
- error: err instanceof Error ? err.message : String(err),
345
- messageCount,
346
- messages
347
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
348
- }
349
- }
350
- }).catch((err) => {
351
- clearTimeout(timeoutId);
352
- logger?.error('SSE fetch error', { error: err instanceof Error ? err.message : String(err) });
353
-
354
- // Emit onError event
355
- if (emitEvent !== undefined && emitEvent !== null) {
356
- emitEvent('onError', { error: err instanceof Error ? err.message : String(err) }).catch((emitErr) => {
357
- logger?.error('SSE onError event error', { error: emitErr instanceof Error ? emitErr.message : String(emitErr) });
358
- });
359
- }
360
-
361
- resolve({
362
- status: 0,
363
- statusText: 'Connection Error',
364
- body: '',
365
- headers: {},
366
- duration: Date.now() - startTime,
367
- error: err instanceof Error ? err.message : String(err),
368
- messageCount: 0,
369
- messages: []
370
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
371
- });
372
- } catch (err) {
373
- clearTimeout(timeoutId);
374
- logger?.error('SSE unexpected error', { error: err instanceof Error ? err.message : String(err) });
375
- resolve({
376
- status: 0,
377
- statusText: 'Error',
378
- body: '',
379
- headers: {},
380
- duration: Date.now() - startTime,
381
- error: err instanceof Error ? err.message : String(err),
382
- messageCount: 0,
383
- messages: []
384
- } as ProtocolResponse & { messageCount: number; messages: SSEMessage[] });
385
- }
386
- });
387
- },
388
-
389
- validate(request: Request, options: RuntimeOptions): ValidationResult {
390
- const errors: ValidationError[] = [];
391
-
392
- // Check URL
393
- if (typeof request.data.url !== 'string' || isNullOrWhitespace(request.data.url)) {
394
- errors.push({
395
- message: 'URL is required',
396
- location: '',
397
- source: 'protocol'
398
- });
399
- }
400
-
401
- if (errors.length > 0) {
402
- return {
403
- valid: false,
404
- errors
405
- };
406
- }
407
-
408
- return { valid: true };
409
- }
410
- };
411
-
412
- export default ssePlugin;