@digipair/skill-client-sse 0.37.5 → 0.38.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/index.cjs.js CHANGED
@@ -15,21 +15,557 @@ function _extends() {
15
15
  return _extends.apply(this, arguments);
16
16
  }
17
17
 
18
- let WebSSEService = class WebSSEService {
19
- async connect(params, _pinsSettingsList, context) {
20
- const { url = '', connection = 'default', message = [] } = params;
21
- const session = new EventSource(url);
22
- this.sessions.set(connection, session);
23
- session.addEventListener('message', ({ data })=>{
24
- engine.executePinsList(message, _extends({}, context, {
25
- message: JSON.parse(data),
26
- connection
27
- }));
18
+ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
19
+ try {
20
+ var info = gen[key](arg);
21
+ var value = info.value;
22
+ } catch (error) {
23
+ reject(error);
24
+ return;
25
+ }
26
+ if (info.done) {
27
+ resolve(value);
28
+ } else {
29
+ Promise.resolve(value).then(_next, _throw);
30
+ }
31
+ }
32
+ function _async_to_generator$1(fn) {
33
+ return function() {
34
+ var self = this, args = arguments;
35
+ return new Promise(function(resolve, reject) {
36
+ var gen = fn.apply(self, args);
37
+ function _next(value) {
38
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
39
+ }
40
+ function _throw(err) {
41
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
42
+ }
43
+ _next(undefined);
28
44
  });
29
- return session;
45
+ };
46
+ }
47
+ function _ts_generator$1(thisArg, body) {
48
+ var f, y, t, g, _ = {
49
+ label: 0,
50
+ sent: function() {
51
+ if (t[0] & 1) throw t[1];
52
+ return t[1];
53
+ },
54
+ trys: [],
55
+ ops: []
56
+ };
57
+ return g = {
58
+ next: verb(0),
59
+ "throw": verb(1),
60
+ "return": verb(2)
61
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
62
+ return this;
63
+ }), g;
64
+ function verb(n) {
65
+ return function(v) {
66
+ return step([
67
+ n,
68
+ v
69
+ ]);
70
+ };
71
+ }
72
+ function step(op) {
73
+ if (f) throw new TypeError("Generator is already executing.");
74
+ while(_)try {
75
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
76
+ if (y = 0, t) op = [
77
+ op[0] & 2,
78
+ t.value
79
+ ];
80
+ switch(op[0]){
81
+ case 0:
82
+ case 1:
83
+ t = op;
84
+ break;
85
+ case 4:
86
+ _.label++;
87
+ return {
88
+ value: op[1],
89
+ done: false
90
+ };
91
+ case 5:
92
+ _.label++;
93
+ y = op[1];
94
+ op = [
95
+ 0
96
+ ];
97
+ continue;
98
+ case 7:
99
+ op = _.ops.pop();
100
+ _.trys.pop();
101
+ continue;
102
+ default:
103
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
104
+ _ = 0;
105
+ continue;
106
+ }
107
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
108
+ _.label = op[1];
109
+ break;
110
+ }
111
+ if (op[0] === 6 && _.label < t[1]) {
112
+ _.label = t[1];
113
+ t = op;
114
+ break;
115
+ }
116
+ if (t && _.label < t[2]) {
117
+ _.label = t[2];
118
+ _.ops.push(op);
119
+ break;
120
+ }
121
+ if (t[2]) _.ops.pop();
122
+ _.trys.pop();
123
+ continue;
124
+ }
125
+ op = body.call(thisArg, _);
126
+ } catch (e) {
127
+ op = [
128
+ 6,
129
+ e
130
+ ];
131
+ y = 0;
132
+ } finally{
133
+ f = t = 0;
134
+ }
135
+ if (op[0] & 5) throw op[1];
136
+ return {
137
+ value: op[0] ? op[1] : void 0,
138
+ done: true
139
+ };
30
140
  }
31
- constructor(){
32
- this.sessions = new Map();
141
+ }
142
+ function getBytes(stream, onChunk) {
143
+ return _getBytes.apply(this, arguments);
144
+ }
145
+ function _getBytes() {
146
+ _getBytes = _async_to_generator$1(function(stream, onChunk) {
147
+ var reader, result;
148
+ return _ts_generator$1(this, function(_state) {
149
+ switch(_state.label){
150
+ case 0:
151
+ reader = stream.getReader();
152
+ _state.label = 1;
153
+ case 1:
154
+ return [
155
+ 4,
156
+ reader.read()
157
+ ];
158
+ case 2:
159
+ if (!!(result = _state.sent()).done) return [
160
+ 3,
161
+ 3
162
+ ];
163
+ onChunk(result.value);
164
+ return [
165
+ 3,
166
+ 1
167
+ ];
168
+ case 3:
169
+ return [
170
+ 2
171
+ ];
172
+ }
173
+ });
174
+ });
175
+ return _getBytes.apply(this, arguments);
176
+ }
177
+ function getLines(onLine) {
178
+ var buffer;
179
+ var position;
180
+ var fieldLength;
181
+ var discardTrailingNewline = false;
182
+ return function onChunk(arr) {
183
+ if (buffer === undefined) {
184
+ buffer = arr;
185
+ position = 0;
186
+ fieldLength = -1;
187
+ } else {
188
+ buffer = concat(buffer, arr);
189
+ }
190
+ var bufLength = buffer.length;
191
+ var lineStart = 0;
192
+ while(position < bufLength){
193
+ if (discardTrailingNewline) {
194
+ if (buffer[position] === 10) {
195
+ lineStart = ++position;
196
+ }
197
+ discardTrailingNewline = false;
198
+ }
199
+ var lineEnd = -1;
200
+ for(; position < bufLength && lineEnd === -1; ++position){
201
+ switch(buffer[position]){
202
+ case 58:
203
+ if (fieldLength === -1) {
204
+ fieldLength = position - lineStart;
205
+ }
206
+ break;
207
+ case 13:
208
+ discardTrailingNewline = true;
209
+ case 10:
210
+ lineEnd = position;
211
+ break;
212
+ }
213
+ }
214
+ if (lineEnd === -1) {
215
+ break;
216
+ }
217
+ onLine(buffer.subarray(lineStart, lineEnd), fieldLength);
218
+ lineStart = position;
219
+ fieldLength = -1;
220
+ }
221
+ if (lineStart === bufLength) {
222
+ buffer = undefined;
223
+ } else if (lineStart !== 0) {
224
+ buffer = buffer.subarray(lineStart);
225
+ position -= lineStart;
226
+ }
227
+ };
228
+ }
229
+ function getMessages(onId, onRetry, onMessage) {
230
+ var message = newMessage();
231
+ var decoder = new TextDecoder();
232
+ return function onLine(line, fieldLength) {
233
+ if (line.length === 0) {
234
+ onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);
235
+ message = newMessage();
236
+ } else if (fieldLength > 0) {
237
+ var field = decoder.decode(line.subarray(0, fieldLength));
238
+ var valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);
239
+ var value = decoder.decode(line.subarray(valueOffset));
240
+ switch(field){
241
+ case "data":
242
+ message.data = message.data ? message.data + "\n" + value : value;
243
+ break;
244
+ case "event":
245
+ message.event = value;
246
+ break;
247
+ case "id":
248
+ onId(message.id = value);
249
+ break;
250
+ case "retry":
251
+ var retry = parseInt(value, 10);
252
+ if (!isNaN(retry)) {
253
+ onRetry(message.retry = retry);
254
+ }
255
+ break;
256
+ }
257
+ }
258
+ };
259
+ }
260
+ function concat(a, b) {
261
+ var res = new Uint8Array(a.length + b.length);
262
+ res.set(a);
263
+ res.set(b, a.length);
264
+ return res;
265
+ }
266
+ function newMessage() {
267
+ return {
268
+ data: "",
269
+ event: "",
270
+ id: "",
271
+ retry: undefined
272
+ };
273
+ }
274
+
275
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
276
+ try {
277
+ var info = gen[key](arg);
278
+ var value = info.value;
279
+ } catch (error) {
280
+ reject(error);
281
+ return;
282
+ }
283
+ if (info.done) {
284
+ resolve(value);
285
+ } else {
286
+ Promise.resolve(value).then(_next, _throw);
287
+ }
288
+ }
289
+ function _async_to_generator(fn) {
290
+ return function() {
291
+ var self = this, args = arguments;
292
+ return new Promise(function(resolve, reject) {
293
+ var gen = fn.apply(self, args);
294
+ function _next(value) {
295
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
296
+ }
297
+ function _throw(err) {
298
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
299
+ }
300
+ _next(undefined);
301
+ });
302
+ };
303
+ }
304
+ function _ts_generator(thisArg, body) {
305
+ var f, y, t, g, _ = {
306
+ label: 0,
307
+ sent: function() {
308
+ if (t[0] & 1) throw t[1];
309
+ return t[1];
310
+ },
311
+ trys: [],
312
+ ops: []
313
+ };
314
+ return g = {
315
+ next: verb(0),
316
+ "throw": verb(1),
317
+ "return": verb(2)
318
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
319
+ return this;
320
+ }), g;
321
+ function verb(n) {
322
+ return function(v) {
323
+ return step([
324
+ n,
325
+ v
326
+ ]);
327
+ };
328
+ }
329
+ function step(op) {
330
+ if (f) throw new TypeError("Generator is already executing.");
331
+ while(_)try {
332
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
333
+ if (y = 0, t) op = [
334
+ op[0] & 2,
335
+ t.value
336
+ ];
337
+ switch(op[0]){
338
+ case 0:
339
+ case 1:
340
+ t = op;
341
+ break;
342
+ case 4:
343
+ _.label++;
344
+ return {
345
+ value: op[1],
346
+ done: false
347
+ };
348
+ case 5:
349
+ _.label++;
350
+ y = op[1];
351
+ op = [
352
+ 0
353
+ ];
354
+ continue;
355
+ case 7:
356
+ op = _.ops.pop();
357
+ _.trys.pop();
358
+ continue;
359
+ default:
360
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
361
+ _ = 0;
362
+ continue;
363
+ }
364
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
365
+ _.label = op[1];
366
+ break;
367
+ }
368
+ if (op[0] === 6 && _.label < t[1]) {
369
+ _.label = t[1];
370
+ t = op;
371
+ break;
372
+ }
373
+ if (t && _.label < t[2]) {
374
+ _.label = t[2];
375
+ _.ops.push(op);
376
+ break;
377
+ }
378
+ if (t[2]) _.ops.pop();
379
+ _.trys.pop();
380
+ continue;
381
+ }
382
+ op = body.call(thisArg, _);
383
+ } catch (e) {
384
+ op = [
385
+ 6,
386
+ e
387
+ ];
388
+ y = 0;
389
+ } finally{
390
+ f = t = 0;
391
+ }
392
+ if (op[0] & 5) throw op[1];
393
+ return {
394
+ value: op[0] ? op[1] : void 0,
395
+ done: true
396
+ };
397
+ }
398
+ }
399
+ var __rest = undefined && undefined.__rest || function(s, e) {
400
+ var t = {};
401
+ for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
402
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
403
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
404
+ }
405
+ return t;
406
+ };
407
+ var EventStreamContentType = "text/event-stream";
408
+ var DefaultRetryInterval = 1000;
409
+ var LastEventId = "last-event-id";
410
+ function fetchEventSource(input, _a) {
411
+ var inputSignal = _a.signal, inputHeaders = _a.headers, inputOnOpen = _a.onopen, onmessage = _a.onmessage, onclose = _a.onclose, onerror = _a.onerror, openWhenHidden = _a.openWhenHidden, inputFetch = _a.fetch, rest = __rest(_a, [
412
+ "signal",
413
+ "headers",
414
+ "onopen",
415
+ "onmessage",
416
+ "onclose",
417
+ "onerror",
418
+ "openWhenHidden",
419
+ "fetch"
420
+ ]);
421
+ return new Promise(function(resolve, reject) {
422
+ var onVisibilityChange = function onVisibilityChange() {
423
+ curRequestController.abort();
424
+ if (!document.hidden) {
425
+ create();
426
+ }
427
+ };
428
+ var dispose = function dispose() {
429
+ document.removeEventListener("visibilitychange", onVisibilityChange);
430
+ window.clearTimeout(retryTimer);
431
+ curRequestController.abort();
432
+ };
433
+ var create = function create() {
434
+ return _create.apply(this, arguments);
435
+ };
436
+ var headers = Object.assign({}, inputHeaders);
437
+ if (!headers.accept) {
438
+ headers.accept = EventStreamContentType;
439
+ }
440
+ var curRequestController;
441
+ if (!openWhenHidden) {
442
+ document.addEventListener("visibilitychange", onVisibilityChange);
443
+ }
444
+ var retryInterval = DefaultRetryInterval;
445
+ var retryTimer = 0;
446
+ inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener("abort", function() {
447
+ dispose();
448
+ resolve();
449
+ });
450
+ var fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;
451
+ var onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;
452
+ function _create() {
453
+ _create = _async_to_generator(function() {
454
+ var _$_a, response, err, interval;
455
+ return _ts_generator(this, function(_state) {
456
+ switch(_state.label){
457
+ case 0:
458
+ curRequestController = new AbortController();
459
+ _state.label = 1;
460
+ case 1:
461
+ _state.trys.push([
462
+ 1,
463
+ 5,
464
+ ,
465
+ 6
466
+ ]);
467
+ return [
468
+ 4,
469
+ fetch(input, Object.assign(Object.assign({}, rest), {
470
+ headers: headers,
471
+ signal: curRequestController.signal
472
+ }))
473
+ ];
474
+ case 2:
475
+ response = _state.sent();
476
+ return [
477
+ 4,
478
+ onopen(response)
479
+ ];
480
+ case 3:
481
+ _state.sent();
482
+ return [
483
+ 4,
484
+ getBytes(response.body, getLines(getMessages(function(id) {
485
+ if (id) {
486
+ headers[LastEventId] = id;
487
+ } else {
488
+ delete headers[LastEventId];
489
+ }
490
+ }, function(retry) {
491
+ retryInterval = retry;
492
+ }, onmessage)))
493
+ ];
494
+ case 4:
495
+ _state.sent();
496
+ onclose === null || onclose === void 0 ? void 0 : onclose();
497
+ dispose();
498
+ resolve();
499
+ return [
500
+ 3,
501
+ 6
502
+ ];
503
+ case 5:
504
+ err = _state.sent();
505
+ if (!curRequestController.signal.aborted) {
506
+ try {
507
+ interval = (_$_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _$_a !== void 0 ? _$_a : retryInterval;
508
+ window.clearTimeout(retryTimer);
509
+ retryTimer = window.setTimeout(create, interval);
510
+ } catch (innerErr) {
511
+ dispose();
512
+ reject(innerErr);
513
+ }
514
+ }
515
+ return [
516
+ 3,
517
+ 6
518
+ ];
519
+ case 6:
520
+ return [
521
+ 2
522
+ ];
523
+ }
524
+ });
525
+ });
526
+ return _create.apply(this, arguments);
527
+ }
528
+ create();
529
+ });
530
+ }
531
+ function defaultOnOpen(response) {
532
+ var contentType = response.headers.get("content-type");
533
+ if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {
534
+ throw new Error("Expected content-type to be ".concat(EventStreamContentType, ", Actual: ").concat(contentType));
535
+ }
536
+ }
537
+
538
+ let WebSSEService = class WebSSEService {
539
+ async connect(params, _pinsSettingsList, context) {
540
+ const { url = '', event = 'message', message = [], open = [], close = [], error = [], options = {} } = params;
541
+ await fetchEventSource(url, _extends({
542
+ method: 'POST',
543
+ headers: {
544
+ 'Content-Type': 'application/json'
545
+ },
546
+ onmessage: (notification)=>{
547
+ if (notification.event !== event) {
548
+ return;
549
+ }
550
+ engine.executePinsList(message, _extends({}, context, {
551
+ message: JSON.parse(notification.data)
552
+ }));
553
+ },
554
+ onopen: async ()=>{
555
+ await engine.executePinsList(open, _extends({}, context));
556
+ },
557
+ onclose: ()=>{
558
+ engine.executePinsList(close, _extends({}, context));
559
+ },
560
+ onerror (err) {
561
+ if (error.length === 0) {
562
+ console.error(err);
563
+ }
564
+ engine.executePinsList(error, _extends({}, context, {
565
+ error: err
566
+ }));
567
+ }
568
+ }, options));
33
569
  }
34
570
  };
35
571
  const service = new WebSSEService();
package/index.esm.js CHANGED
@@ -23489,14 +23489,14 @@ function indent(str, spaces) {
23489
23489
  var match = parseIdentifier(input, i1, namePart) || namePart && parseAdditionalSymbol(input, i1) || maybeSpace && parseSpaces(input, i1);
23490
23490
  // match is required
23491
23491
  if (!match) {
23492
- return i = i1, tokens = tokens1, nextMatch = nextMatch1, {
23492
+ return nextMatch = nextMatch1, tokens = tokens1, i = i1, {
23493
23493
  v: nextMatch1
23494
23494
  };
23495
23495
  }
23496
23496
  var token = match.token, offset = match.offset;
23497
23497
  i1 += offset;
23498
23498
  if (token === " ") {
23499
- return i = i1, tokens = tokens1, nextMatch = nextMatch1, "continue";
23499
+ return nextMatch = nextMatch1, tokens = tokens1, i = i1, "continue";
23500
23500
  }
23501
23501
  tokens1 = _to_consumable_array$1(tokens1).concat([
23502
23502
  token
@@ -23515,7 +23515,7 @@ function indent(str, spaces) {
23515
23515
  if (contextKeys.some(function(el) {
23516
23516
  return el.startsWith(name);
23517
23517
  })) {
23518
- return i = i1, tokens = tokens1, nextMatch = nextMatch1, "continue";
23518
+ return nextMatch = nextMatch1, tokens = tokens1, i = i1, "continue";
23519
23519
  }
23520
23520
  if (dateTimeIdentifiers.some(function(el) {
23521
23521
  return el === name;
@@ -23534,9 +23534,9 @@ function indent(str, spaces) {
23534
23534
  if (dateTimeIdentifiers.some(function(el) {
23535
23535
  return el.startsWith(name);
23536
23536
  })) {
23537
- return i = i1, tokens = tokens1, nextMatch = nextMatch1, "continue";
23537
+ return nextMatch = nextMatch1, tokens = tokens1, i = i1, "continue";
23538
23538
  }
23539
- return i = i1, tokens = tokens1, nextMatch = nextMatch1, {
23539
+ return nextMatch = nextMatch1, tokens = tokens1, i = i1, {
23540
23540
  v: nextMatch1
23541
23541
  };
23542
23542
  };
@@ -27462,21 +27462,557 @@ const preparePinsSettings = async (settings, context)=>{
27462
27462
  });
27463
27463
  };
27464
27464
 
27465
- let WebSSEService = class WebSSEService {
27466
- async connect(params, _pinsSettingsList, context) {
27467
- const { url = '', connection = 'default', message = [] } = params;
27468
- const session = new EventSource(url);
27469
- this.sessions.set(connection, session);
27470
- session.addEventListener('message', ({ data })=>{
27471
- executePinsList(message, _extends({}, context, {
27472
- message: JSON.parse(data),
27473
- connection
27474
- }));
27465
+ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
27466
+ try {
27467
+ var info = gen[key](arg);
27468
+ var value = info.value;
27469
+ } catch (error) {
27470
+ reject(error);
27471
+ return;
27472
+ }
27473
+ if (info.done) {
27474
+ resolve(value);
27475
+ } else {
27476
+ Promise.resolve(value).then(_next, _throw);
27477
+ }
27478
+ }
27479
+ function _async_to_generator$1(fn) {
27480
+ return function() {
27481
+ var self = this, args = arguments;
27482
+ return new Promise(function(resolve, reject) {
27483
+ var gen = fn.apply(self, args);
27484
+ function _next(value) {
27485
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
27486
+ }
27487
+ function _throw(err) {
27488
+ asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
27489
+ }
27490
+ _next(undefined);
27491
+ });
27492
+ };
27493
+ }
27494
+ function _ts_generator$1(thisArg, body) {
27495
+ var f, y, t, g, _ = {
27496
+ label: 0,
27497
+ sent: function() {
27498
+ if (t[0] & 1) throw t[1];
27499
+ return t[1];
27500
+ },
27501
+ trys: [],
27502
+ ops: []
27503
+ };
27504
+ return g = {
27505
+ next: verb(0),
27506
+ "throw": verb(1),
27507
+ "return": verb(2)
27508
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
27509
+ return this;
27510
+ }), g;
27511
+ function verb(n) {
27512
+ return function(v) {
27513
+ return step([
27514
+ n,
27515
+ v
27516
+ ]);
27517
+ };
27518
+ }
27519
+ function step(op) {
27520
+ if (f) throw new TypeError("Generator is already executing.");
27521
+ while(_)try {
27522
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
27523
+ if (y = 0, t) op = [
27524
+ op[0] & 2,
27525
+ t.value
27526
+ ];
27527
+ switch(op[0]){
27528
+ case 0:
27529
+ case 1:
27530
+ t = op;
27531
+ break;
27532
+ case 4:
27533
+ _.label++;
27534
+ return {
27535
+ value: op[1],
27536
+ done: false
27537
+ };
27538
+ case 5:
27539
+ _.label++;
27540
+ y = op[1];
27541
+ op = [
27542
+ 0
27543
+ ];
27544
+ continue;
27545
+ case 7:
27546
+ op = _.ops.pop();
27547
+ _.trys.pop();
27548
+ continue;
27549
+ default:
27550
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
27551
+ _ = 0;
27552
+ continue;
27553
+ }
27554
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
27555
+ _.label = op[1];
27556
+ break;
27557
+ }
27558
+ if (op[0] === 6 && _.label < t[1]) {
27559
+ _.label = t[1];
27560
+ t = op;
27561
+ break;
27562
+ }
27563
+ if (t && _.label < t[2]) {
27564
+ _.label = t[2];
27565
+ _.ops.push(op);
27566
+ break;
27567
+ }
27568
+ if (t[2]) _.ops.pop();
27569
+ _.trys.pop();
27570
+ continue;
27571
+ }
27572
+ op = body.call(thisArg, _);
27573
+ } catch (e) {
27574
+ op = [
27575
+ 6,
27576
+ e
27577
+ ];
27578
+ y = 0;
27579
+ } finally{
27580
+ f = t = 0;
27581
+ }
27582
+ if (op[0] & 5) throw op[1];
27583
+ return {
27584
+ value: op[0] ? op[1] : void 0,
27585
+ done: true
27586
+ };
27587
+ }
27588
+ }
27589
+ function getBytes(stream, onChunk) {
27590
+ return _getBytes.apply(this, arguments);
27591
+ }
27592
+ function _getBytes() {
27593
+ _getBytes = _async_to_generator$1(function(stream, onChunk) {
27594
+ var reader, result;
27595
+ return _ts_generator$1(this, function(_state) {
27596
+ switch(_state.label){
27597
+ case 0:
27598
+ reader = stream.getReader();
27599
+ _state.label = 1;
27600
+ case 1:
27601
+ return [
27602
+ 4,
27603
+ reader.read()
27604
+ ];
27605
+ case 2:
27606
+ if (!!(result = _state.sent()).done) return [
27607
+ 3,
27608
+ 3
27609
+ ];
27610
+ onChunk(result.value);
27611
+ return [
27612
+ 3,
27613
+ 1
27614
+ ];
27615
+ case 3:
27616
+ return [
27617
+ 2
27618
+ ];
27619
+ }
27620
+ });
27621
+ });
27622
+ return _getBytes.apply(this, arguments);
27623
+ }
27624
+ function getLines(onLine) {
27625
+ var buffer;
27626
+ var position;
27627
+ var fieldLength;
27628
+ var discardTrailingNewline = false;
27629
+ return function onChunk(arr) {
27630
+ if (buffer === undefined) {
27631
+ buffer = arr;
27632
+ position = 0;
27633
+ fieldLength = -1;
27634
+ } else {
27635
+ buffer = concat(buffer, arr);
27636
+ }
27637
+ var bufLength = buffer.length;
27638
+ var lineStart = 0;
27639
+ while(position < bufLength){
27640
+ if (discardTrailingNewline) {
27641
+ if (buffer[position] === 10) {
27642
+ lineStart = ++position;
27643
+ }
27644
+ discardTrailingNewline = false;
27645
+ }
27646
+ var lineEnd = -1;
27647
+ for(; position < bufLength && lineEnd === -1; ++position){
27648
+ switch(buffer[position]){
27649
+ case 58:
27650
+ if (fieldLength === -1) {
27651
+ fieldLength = position - lineStart;
27652
+ }
27653
+ break;
27654
+ case 13:
27655
+ discardTrailingNewline = true;
27656
+ case 10:
27657
+ lineEnd = position;
27658
+ break;
27659
+ }
27660
+ }
27661
+ if (lineEnd === -1) {
27662
+ break;
27663
+ }
27664
+ onLine(buffer.subarray(lineStart, lineEnd), fieldLength);
27665
+ lineStart = position;
27666
+ fieldLength = -1;
27667
+ }
27668
+ if (lineStart === bufLength) {
27669
+ buffer = undefined;
27670
+ } else if (lineStart !== 0) {
27671
+ buffer = buffer.subarray(lineStart);
27672
+ position -= lineStart;
27673
+ }
27674
+ };
27675
+ }
27676
+ function getMessages(onId, onRetry, onMessage) {
27677
+ var message = newMessage();
27678
+ var decoder = new TextDecoder();
27679
+ return function onLine(line, fieldLength) {
27680
+ if (line.length === 0) {
27681
+ onMessage === null || onMessage === void 0 ? void 0 : onMessage(message);
27682
+ message = newMessage();
27683
+ } else if (fieldLength > 0) {
27684
+ var field = decoder.decode(line.subarray(0, fieldLength));
27685
+ var valueOffset = fieldLength + (line[fieldLength + 1] === 32 ? 2 : 1);
27686
+ var value = decoder.decode(line.subarray(valueOffset));
27687
+ switch(field){
27688
+ case "data":
27689
+ message.data = message.data ? message.data + "\n" + value : value;
27690
+ break;
27691
+ case "event":
27692
+ message.event = value;
27693
+ break;
27694
+ case "id":
27695
+ onId(message.id = value);
27696
+ break;
27697
+ case "retry":
27698
+ var retry = parseInt(value, 10);
27699
+ if (!isNaN(retry)) {
27700
+ onRetry(message.retry = retry);
27701
+ }
27702
+ break;
27703
+ }
27704
+ }
27705
+ };
27706
+ }
27707
+ function concat(a, b) {
27708
+ var res = new Uint8Array(a.length + b.length);
27709
+ res.set(a);
27710
+ res.set(b, a.length);
27711
+ return res;
27712
+ }
27713
+ function newMessage() {
27714
+ return {
27715
+ data: "",
27716
+ event: "",
27717
+ id: "",
27718
+ retry: undefined
27719
+ };
27720
+ }
27721
+
27722
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
27723
+ try {
27724
+ var info = gen[key](arg);
27725
+ var value = info.value;
27726
+ } catch (error) {
27727
+ reject(error);
27728
+ return;
27729
+ }
27730
+ if (info.done) {
27731
+ resolve(value);
27732
+ } else {
27733
+ Promise.resolve(value).then(_next, _throw);
27734
+ }
27735
+ }
27736
+ function _async_to_generator(fn) {
27737
+ return function() {
27738
+ var self = this, args = arguments;
27739
+ return new Promise(function(resolve, reject) {
27740
+ var gen = fn.apply(self, args);
27741
+ function _next(value) {
27742
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
27743
+ }
27744
+ function _throw(err) {
27745
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
27746
+ }
27747
+ _next(undefined);
27748
+ });
27749
+ };
27750
+ }
27751
+ function _ts_generator(thisArg, body) {
27752
+ var f, y, t, g, _ = {
27753
+ label: 0,
27754
+ sent: function() {
27755
+ if (t[0] & 1) throw t[1];
27756
+ return t[1];
27757
+ },
27758
+ trys: [],
27759
+ ops: []
27760
+ };
27761
+ return g = {
27762
+ next: verb(0),
27763
+ "throw": verb(1),
27764
+ "return": verb(2)
27765
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
27766
+ return this;
27767
+ }), g;
27768
+ function verb(n) {
27769
+ return function(v) {
27770
+ return step([
27771
+ n,
27772
+ v
27773
+ ]);
27774
+ };
27775
+ }
27776
+ function step(op) {
27777
+ if (f) throw new TypeError("Generator is already executing.");
27778
+ while(_)try {
27779
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
27780
+ if (y = 0, t) op = [
27781
+ op[0] & 2,
27782
+ t.value
27783
+ ];
27784
+ switch(op[0]){
27785
+ case 0:
27786
+ case 1:
27787
+ t = op;
27788
+ break;
27789
+ case 4:
27790
+ _.label++;
27791
+ return {
27792
+ value: op[1],
27793
+ done: false
27794
+ };
27795
+ case 5:
27796
+ _.label++;
27797
+ y = op[1];
27798
+ op = [
27799
+ 0
27800
+ ];
27801
+ continue;
27802
+ case 7:
27803
+ op = _.ops.pop();
27804
+ _.trys.pop();
27805
+ continue;
27806
+ default:
27807
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
27808
+ _ = 0;
27809
+ continue;
27810
+ }
27811
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
27812
+ _.label = op[1];
27813
+ break;
27814
+ }
27815
+ if (op[0] === 6 && _.label < t[1]) {
27816
+ _.label = t[1];
27817
+ t = op;
27818
+ break;
27819
+ }
27820
+ if (t && _.label < t[2]) {
27821
+ _.label = t[2];
27822
+ _.ops.push(op);
27823
+ break;
27824
+ }
27825
+ if (t[2]) _.ops.pop();
27826
+ _.trys.pop();
27827
+ continue;
27828
+ }
27829
+ op = body.call(thisArg, _);
27830
+ } catch (e) {
27831
+ op = [
27832
+ 6,
27833
+ e
27834
+ ];
27835
+ y = 0;
27836
+ } finally{
27837
+ f = t = 0;
27838
+ }
27839
+ if (op[0] & 5) throw op[1];
27840
+ return {
27841
+ value: op[0] ? op[1] : void 0,
27842
+ done: true
27843
+ };
27844
+ }
27845
+ }
27846
+ var __rest = undefined && undefined.__rest || function(s, e) {
27847
+ var t = {};
27848
+ for(var p in s)if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
27849
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for(var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++){
27850
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
27851
+ }
27852
+ return t;
27853
+ };
27854
+ var EventStreamContentType = "text/event-stream";
27855
+ var DefaultRetryInterval = 1000;
27856
+ var LastEventId = "last-event-id";
27857
+ function fetchEventSource(input, _a) {
27858
+ var inputSignal = _a.signal, inputHeaders = _a.headers, inputOnOpen = _a.onopen, onmessage = _a.onmessage, onclose = _a.onclose, onerror = _a.onerror, openWhenHidden = _a.openWhenHidden, inputFetch = _a.fetch, rest = __rest(_a, [
27859
+ "signal",
27860
+ "headers",
27861
+ "onopen",
27862
+ "onmessage",
27863
+ "onclose",
27864
+ "onerror",
27865
+ "openWhenHidden",
27866
+ "fetch"
27867
+ ]);
27868
+ return new Promise(function(resolve, reject) {
27869
+ var onVisibilityChange = function onVisibilityChange() {
27870
+ curRequestController.abort();
27871
+ if (!document.hidden) {
27872
+ create();
27873
+ }
27874
+ };
27875
+ var dispose = function dispose() {
27876
+ document.removeEventListener("visibilitychange", onVisibilityChange);
27877
+ window.clearTimeout(retryTimer);
27878
+ curRequestController.abort();
27879
+ };
27880
+ var create = function create() {
27881
+ return _create.apply(this, arguments);
27882
+ };
27883
+ var headers = Object.assign({}, inputHeaders);
27884
+ if (!headers.accept) {
27885
+ headers.accept = EventStreamContentType;
27886
+ }
27887
+ var curRequestController;
27888
+ if (!openWhenHidden) {
27889
+ document.addEventListener("visibilitychange", onVisibilityChange);
27890
+ }
27891
+ var retryInterval = DefaultRetryInterval;
27892
+ var retryTimer = 0;
27893
+ inputSignal === null || inputSignal === void 0 ? void 0 : inputSignal.addEventListener("abort", function() {
27894
+ dispose();
27895
+ resolve();
27475
27896
  });
27476
- return session;
27897
+ var fetch = inputFetch !== null && inputFetch !== void 0 ? inputFetch : window.fetch;
27898
+ var onopen = inputOnOpen !== null && inputOnOpen !== void 0 ? inputOnOpen : defaultOnOpen;
27899
+ function _create() {
27900
+ _create = _async_to_generator(function() {
27901
+ var _$_a, response, err, interval;
27902
+ return _ts_generator(this, function(_state) {
27903
+ switch(_state.label){
27904
+ case 0:
27905
+ curRequestController = new AbortController();
27906
+ _state.label = 1;
27907
+ case 1:
27908
+ _state.trys.push([
27909
+ 1,
27910
+ 5,
27911
+ ,
27912
+ 6
27913
+ ]);
27914
+ return [
27915
+ 4,
27916
+ fetch(input, Object.assign(Object.assign({}, rest), {
27917
+ headers: headers,
27918
+ signal: curRequestController.signal
27919
+ }))
27920
+ ];
27921
+ case 2:
27922
+ response = _state.sent();
27923
+ return [
27924
+ 4,
27925
+ onopen(response)
27926
+ ];
27927
+ case 3:
27928
+ _state.sent();
27929
+ return [
27930
+ 4,
27931
+ getBytes(response.body, getLines(getMessages(function(id) {
27932
+ if (id) {
27933
+ headers[LastEventId] = id;
27934
+ } else {
27935
+ delete headers[LastEventId];
27936
+ }
27937
+ }, function(retry) {
27938
+ retryInterval = retry;
27939
+ }, onmessage)))
27940
+ ];
27941
+ case 4:
27942
+ _state.sent();
27943
+ onclose === null || onclose === void 0 ? void 0 : onclose();
27944
+ dispose();
27945
+ resolve();
27946
+ return [
27947
+ 3,
27948
+ 6
27949
+ ];
27950
+ case 5:
27951
+ err = _state.sent();
27952
+ if (!curRequestController.signal.aborted) {
27953
+ try {
27954
+ interval = (_$_a = onerror === null || onerror === void 0 ? void 0 : onerror(err)) !== null && _$_a !== void 0 ? _$_a : retryInterval;
27955
+ window.clearTimeout(retryTimer);
27956
+ retryTimer = window.setTimeout(create, interval);
27957
+ } catch (innerErr) {
27958
+ dispose();
27959
+ reject(innerErr);
27960
+ }
27961
+ }
27962
+ return [
27963
+ 3,
27964
+ 6
27965
+ ];
27966
+ case 6:
27967
+ return [
27968
+ 2
27969
+ ];
27970
+ }
27971
+ });
27972
+ });
27973
+ return _create.apply(this, arguments);
27974
+ }
27975
+ create();
27976
+ });
27977
+ }
27978
+ function defaultOnOpen(response) {
27979
+ var contentType = response.headers.get("content-type");
27980
+ if (!(contentType === null || contentType === void 0 ? void 0 : contentType.startsWith(EventStreamContentType))) {
27981
+ throw new Error("Expected content-type to be ".concat(EventStreamContentType, ", Actual: ").concat(contentType));
27477
27982
  }
27478
- constructor(){
27479
- this.sessions = new Map();
27983
+ }
27984
+
27985
+ let WebSSEService = class WebSSEService {
27986
+ async connect(params, _pinsSettingsList, context) {
27987
+ const { url = '', event = 'message', message = [], open = [], close = [], error = [], options = {} } = params;
27988
+ await fetchEventSource(url, _extends({
27989
+ method: 'POST',
27990
+ headers: {
27991
+ 'Content-Type': 'application/json'
27992
+ },
27993
+ onmessage: (notification)=>{
27994
+ if (notification.event !== event) {
27995
+ return;
27996
+ }
27997
+ executePinsList(message, _extends({}, context, {
27998
+ message: JSON.parse(notification.data)
27999
+ }));
28000
+ },
28001
+ onopen: async ()=>{
28002
+ await executePinsList(open, _extends({}, context));
28003
+ },
28004
+ onclose: ()=>{
28005
+ executePinsList(close, _extends({}, context));
28006
+ },
28007
+ onerror (err) {
28008
+ if (error.length === 0) {
28009
+ console.error(err);
28010
+ }
28011
+ executePinsList(error, _extends({}, context, {
28012
+ error: err
28013
+ }));
28014
+ }
28015
+ }, options));
27480
28016
  }
27481
28017
  };
27482
28018
  const service = new WebSSEService();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digipair/skill-client-sse",
3
- "version": "0.37.5",
3
+ "version": "0.38.0",
4
4
  "dependencies": {},
5
5
  "main": "./index.cjs.js",
6
6
  "module": "./index.esm.js"
package/schema.fr.json CHANGED
@@ -23,19 +23,28 @@
23
23
  }
24
24
  },
25
25
  {
26
- "name": "connection",
27
- "summary": "Nom",
26
+ "name": "event",
27
+ "summary": "Événement",
28
28
  "required": false,
29
- "description": "Nom de la connexion",
29
+ "description": "Nom de l'événement",
30
30
  "schema": {
31
31
  "type": "string"
32
32
  }
33
+ },
34
+ {
35
+ "name": "options",
36
+ "summary": "Options",
37
+ "required": false,
38
+ "description": "Options de récupération SSE",
39
+ "schema": {
40
+ "type": "object"
41
+ }
33
42
  }
34
43
  ],
35
44
  "x-events": [
36
45
  {
37
46
  "name": "message",
38
- "summary": "Lors de la réception d'un message",
47
+ "summary": "Lors d'un message",
39
48
  "required": false,
40
49
  "description": "Action déclenchée lors de la réception d'un message",
41
50
  "schema": {
@@ -44,6 +53,42 @@
44
53
  "$ref": "https://schemas.digipair.ai/pinsSettings"
45
54
  }
46
55
  }
56
+ },
57
+ {
58
+ "name": "open",
59
+ "summary": "Lors de l'ouverture",
60
+ "required": false,
61
+ "description": "Action déclenchée lors de l'ouverture d'une connexion",
62
+ "schema": {
63
+ "type": "array",
64
+ "items": {
65
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
66
+ }
67
+ }
68
+ },
69
+ {
70
+ "name": "close",
71
+ "summary": "Lors de la fermeture",
72
+ "required": false,
73
+ "description": "Action déclenchée lors de la fermeture d'une connexion",
74
+ "schema": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "name": "error",
83
+ "summary": "Lors d'une erreur",
84
+ "required": false,
85
+ "description": "Action déclenchée lors d'une erreur",
86
+ "schema": {
87
+ "type": "array",
88
+ "items": {
89
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
90
+ }
91
+ }
47
92
  }
48
93
  ]
49
94
  }
package/schema.json CHANGED
@@ -23,19 +23,28 @@
23
23
  }
24
24
  },
25
25
  {
26
- "name": "connection",
27
- "summary": "Name",
26
+ "name": "event",
27
+ "summary": "Event",
28
28
  "required": false,
29
- "description": "Name of the connection",
29
+ "description": "Event name",
30
30
  "schema": {
31
31
  "type": "string"
32
32
  }
33
+ },
34
+ {
35
+ "name": "options",
36
+ "summary": "Options",
37
+ "required": false,
38
+ "description": "SSE fetch options",
39
+ "schema": {
40
+ "type": "object"
41
+ }
33
42
  }
34
43
  ],
35
44
  "x-events": [
36
45
  {
37
46
  "name": "message",
38
- "summary": "Upon receiving a message",
47
+ "summary": "Upon a message",
39
48
  "required": false,
40
49
  "description": "Action triggered upon receiving a message",
41
50
  "schema": {
@@ -44,6 +53,42 @@
44
53
  "$ref": "https://schemas.digipair.ai/pinsSettings"
45
54
  }
46
55
  }
56
+ },
57
+ {
58
+ "name": "open",
59
+ "summary": "Upon opening",
60
+ "required": false,
61
+ "description": "Action triggered upon opening a connection",
62
+ "schema": {
63
+ "type": "array",
64
+ "items": {
65
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
66
+ }
67
+ }
68
+ },
69
+ {
70
+ "name": "close",
71
+ "summary": "Upon closing",
72
+ "required": false,
73
+ "description": "Action triggered upon closing a connection",
74
+ "schema": {
75
+ "type": "array",
76
+ "items": {
77
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
78
+ }
79
+ }
80
+ },
81
+ {
82
+ "name": "error",
83
+ "summary": "Upon an error",
84
+ "required": false,
85
+ "description": "Action triggered upon an error",
86
+ "schema": {
87
+ "type": "array",
88
+ "items": {
89
+ "$ref": "https://schemas.digipair.ai/pinsSettings"
90
+ }
91
+ }
47
92
  }
48
93
  ]
49
94
  }