oxygen-cli 1.37.8 → 1.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.
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ require("source-map-support/register");
9
+
10
+ var _socket = require("socket.io");
11
+
12
+ const io = new _socket.Server({
13
+ serveClient: false,
14
+ pingInterval: 10000,
15
+ pingTimeout: 60000,
16
+ maxHttpBufferSize: 256 * 1024 * 1024,
17
+ cookie: true,
18
+ cors: {
19
+ origin: '*'
20
+ },
21
+ transports: ['websocket']
22
+ });
23
+
24
+ class WebSocketReporter {
25
+ constructor(aggregator) {
26
+ this._aggregator = aggregator;
27
+
28
+ this._hookAggregatorEvents();
29
+ }
30
+
31
+ startAndWaitForClient(serverPort) {
32
+ io.listen(serverPort);
33
+ return new Promise((resolve, reject) => {
34
+ this._handleServerEvents(resolve);
35
+ });
36
+ }
37
+
38
+ stop() {
39
+ if (this._socket) {
40
+ io.close();
41
+ this._socket = undefined;
42
+ }
43
+ }
44
+
45
+ _handleServerEvents(resolveWait) {
46
+ const _this = this;
47
+
48
+ io.on('connection', socket => {
49
+ _this._handleSocketEvents(socket);
50
+
51
+ resolveWait();
52
+ });
53
+ }
54
+
55
+ _handleSocketEvents(socket) {
56
+ this._socket = socket;
57
+ socket.on('disconnect', reason => {});
58
+ socket.on('error', err => {
59
+ console.error('Error in Socket:', err);
60
+ });
61
+ }
62
+
63
+ _hookAggregatorEvents() {
64
+ this._aggregator.on('runner:start', e => this._handleRunnerStart(e));
65
+
66
+ this._aggregator.on('runner:end', e => this._handleRunnerEnd(e));
67
+
68
+ this._aggregator.on('suite:start', e => this._handleSuiteStart(e));
69
+
70
+ this._aggregator.on('suite:end', e => this._handleSuiteEnd(e));
71
+
72
+ this._aggregator.on('case:start', e => this._handleCaseStart(e));
73
+
74
+ this._aggregator.on('case:end', e => this._handleCaseEnd(e));
75
+
76
+ this._aggregator.on('log', e => this._handleLog(e));
77
+ }
78
+
79
+ _handleRunnerStart(event) {
80
+ var _this$_socket;
81
+
82
+ (_this$_socket = this._socket) === null || _this$_socket === void 0 ? void 0 : _this$_socket.emit('runner:start', event);
83
+ }
84
+
85
+ _handleRunnerEnd(event) {
86
+ var _this$_socket2;
87
+
88
+ (_this$_socket2 = this._socket) === null || _this$_socket2 === void 0 ? void 0 : _this$_socket2.emit('runner:end', event);
89
+ }
90
+
91
+ _handleSuiteStart(event) {
92
+ var _this$_socket3;
93
+
94
+ (_this$_socket3 = this._socket) === null || _this$_socket3 === void 0 ? void 0 : _this$_socket3.emit('suite:start', event);
95
+ }
96
+
97
+ _handleSuiteEnd(event) {
98
+ var _this$_socket4;
99
+
100
+ (_this$_socket4 = this._socket) === null || _this$_socket4 === void 0 ? void 0 : _this$_socket4.emit('suite:end', event);
101
+ }
102
+
103
+ _handleCaseStart(event) {
104
+ var _this$_socket5;
105
+
106
+ (_this$_socket5 = this._socket) === null || _this$_socket5 === void 0 ? void 0 : _this$_socket5.emit('case:start', event);
107
+ }
108
+
109
+ _handleCaseEnd(event) {
110
+ var _this$_socket6;
111
+
112
+ (_this$_socket6 = this._socket) === null || _this$_socket6 === void 0 ? void 0 : _this$_socket6.emit('case:end', event);
113
+ }
114
+
115
+ _handleStepStart(event) {
116
+ var _this$_socket7;
117
+
118
+ (_this$_socket7 = this._socket) === null || _this$_socket7 === void 0 ? void 0 : _this$_socket7.emit('step:start', event);
119
+ }
120
+
121
+ _handleStepEnd(event) {
122
+ var _this$_socket8;
123
+
124
+ (_this$_socket8 = this._socket) === null || _this$_socket8 === void 0 ? void 0 : _this$_socket8.emit('step:end', event);
125
+ }
126
+
127
+ _handleLog(event) {
128
+ var _this$_socket9;
129
+
130
+ (_this$_socket9 = this._socket) === null || _this$_socket9 === void 0 ? void 0 : _this$_socket9.emit('log', event);
131
+ }
132
+
133
+ }
134
+
135
+ exports.default = WebSocketReporter;
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvcnRlci9XZWJTb2NrZXRSZXBvcnRlci5qcyJdLCJuYW1lcyI6WyJpbyIsIlNlcnZlciIsInNlcnZlQ2xpZW50IiwicGluZ0ludGVydmFsIiwicGluZ1RpbWVvdXQiLCJtYXhIdHRwQnVmZmVyU2l6ZSIsImNvb2tpZSIsImNvcnMiLCJvcmlnaW4iLCJ0cmFuc3BvcnRzIiwiV2ViU29ja2V0UmVwb3J0ZXIiLCJjb25zdHJ1Y3RvciIsImFnZ3JlZ2F0b3IiLCJfYWdncmVnYXRvciIsIl9ob29rQWdncmVnYXRvckV2ZW50cyIsInN0YXJ0QW5kV2FpdEZvckNsaWVudCIsInNlcnZlclBvcnQiLCJsaXN0ZW4iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsIl9oYW5kbGVTZXJ2ZXJFdmVudHMiLCJzdG9wIiwiX3NvY2tldCIsImNsb3NlIiwidW5kZWZpbmVkIiwicmVzb2x2ZVdhaXQiLCJfdGhpcyIsIm9uIiwic29ja2V0IiwiX2hhbmRsZVNvY2tldEV2ZW50cyIsInJlYXNvbiIsImVyciIsImNvbnNvbGUiLCJlcnJvciIsImUiLCJfaGFuZGxlUnVubmVyU3RhcnQiLCJfaGFuZGxlUnVubmVyRW5kIiwiX2hhbmRsZVN1aXRlU3RhcnQiLCJfaGFuZGxlU3VpdGVFbmQiLCJfaGFuZGxlQ2FzZVN0YXJ0IiwiX2hhbmRsZUNhc2VFbmQiLCJfaGFuZGxlTG9nIiwiZXZlbnQiLCJlbWl0IiwiX2hhbmRsZVN0ZXBTdGFydCIsIl9oYW5kbGVTdGVwRW5kIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFRQTs7QUFFQSxNQUFNQSxFQUFFLEdBQUcsSUFBSUMsY0FBSixDQUFXO0FBQ2xCQyxFQUFBQSxXQUFXLEVBQUUsS0FESztBQUVsQkMsRUFBQUEsWUFBWSxFQUFFLEtBRkk7QUFHbEJDLEVBQUFBLFdBQVcsRUFBRSxLQUhLO0FBSWxCQyxFQUFBQSxpQkFBaUIsRUFBRSxNQUFNLElBQU4sR0FBYSxJQUpkO0FBS2xCQyxFQUFBQSxNQUFNLEVBQUUs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QUFjcUIsSUFBZCxDQUFtQixZQUFuQixFQUFpQ0QsS0FBakM7QUFDSDs7QUFDREwsRUFBQUEsaUJBQWlCLENBQUNLLEtBQUQsRUFBUTtBQUFBOztBQUNyQiwyQkFBS3BCLE9BQUwsa0VBQWNxQixJQUFkLENBQW1CLGFBQW5CLEVBQWtDRCxLQUFsQztBQUNIOztBQUNESixFQUFBQSxlQUFlLENBQUNJLEtBQUQsRUFBUTtBQUFBOztBQUNuQiwyQkFBS3BCLE9BQUwsa0VBQWNxQixJQUFkLENBQW1CLFdBQW5CLEVBQWdDRCxLQUFoQztBQUNIOztBQUNESCxFQUFBQSxnQkFBZ0IsQ0FBQ0csS0FBRCxFQUFRO0FBQUE7O0FBQ3BCLDJCQUFLcEIsT0FBTCxrRUFBY3FCLElBQWQsQ0FBbUIsWUFBbkIsRUFBaUNELEtBQWpDO0FBQ0g7O0FBQ0RGLEVBQUFBLGNBQWMsQ0FBQ0UsS0FBRCxFQUFRO0FBQUE7O0FBQ2xCLDJCQUFLcEIsT0FBTCxrRUFBY3FCLElBQWQsQ0FBbUIsVUFBbkIsRUFBK0JELEtBQS9CO0FBQ0g7O0FBQ0RFLEVBQUFBLGdCQUFnQixDQUFDRixLQUFELEVBQVE7QUFBQTs7QUFDcEIsMkJBQUtwQixPQUFMLGtFQUFjcUIsSUFBZCxDQUFtQixZQUFuQixFQUFpQ0QsS0FBakM7QUFDSDs7QUFDREcsRUFBQUEsY0FBYyxDQUFDSCxLQUFELEVBQVE7QUFBQTs7QUFDbEIsMkJBQUtwQixPQUFMLGtFQUFjcUIsSUFBZCxDQUFtQixVQUFuQixFQUErQkQsS0FBL0I7QUFDSDs7QUFDREQsRUFBQUEsVUFBVSxDQUFDQyxLQUFELEVBQVE7QUFBQTs7QUFDZCwyQkFBS3BCLE9BQUwsa0VBQWNxQixJQUFkLENBQW1CLEtBQW5CLEVBQTBCRCxLQUExQjtBQUNIOztBQW5Fa0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUtcHJlc2VudCBDbG91ZEJlYXQgTGltaXRlZFxyXG4gKlxyXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxyXG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxyXG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvclxyXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxyXG4gKi9cclxuaW1wb3J0IHsgU2VydmVyIH0gZnJvbSAnc29ja2V0LmlvJztcclxuXHJcbmNvbnN0IGlvID0gbmV3IFNlcnZlcih7XHJcbiAgICBzZXJ2ZUNsaWVudDogZmFsc2UsXHJcbiAgICBwaW5nSW50ZXJ2YWw6IDEwMDAwLFxyXG4gICAgcGluZ1RpbWVvdXQ6IDYwMDAwLFxyXG4gICAgbWF4SHR0cEJ1ZmZlclNpemU6IDI1NiAqIDEwMjQgKiAxMDI0LCAvLyAyNTZNQlxyXG4gICAgY29va2llOiB0cnVlLFxyXG4gICAgY29yczoge1xyXG4gICAgICAgIG9yaWdpbjogJyonLFxyXG4gICAgfSxcclxuICAgIHRyYW5zcG9ydHM6IFsnd2Vic29ja2V0J10sXHJcbn0pO1xyXG4vKlxyXG4gKiBXZWJTb2NrZXQgUmVwb3J0ZXJcclxuICovXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFdlYlNvY2tldFJlcG9ydGVyIHtcclxuICAgIGNvbnN0cnVjdG9yKGFnZ3JlZ2F0b3IpIHtcclxuICAgICAgICB0aGlzLl9hZ2dyZWdhdG9yID0gYWdncmVnYXRvcjtcclxuICAgICAgICB0aGlzLl9ob29rQWdncmVnYXRvckV2ZW50cygpO1xyXG4gICAgfVxyXG4gICAgc3RhcnRBbmRXYWl0Rm9yQ2xpZW50KHNlcnZlclBvcnQpIHtcclxuICAgICAgICBpby5saXN0ZW4oc2VydmVyUG9ydCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlU2VydmVyRXZlbnRzKHJlc29sdmUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgc3RvcCgpIHtcclxuICAgICAgICBpZiAodGhpcy5fc29ja2V0KSB7XHJcbiAgICAgICAgICAgIGlvLmNsb3NlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NvY2tldCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBfaGFuZGxlU2VydmVyRXZlbnRzKHJlc29sdmVXYWl0KSB7XHJcbiAgICAgICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgICAgIGlvLm9uKCdjb25uZWN0aW9uJywgKHNvY2tldCkgPT4ge1xyXG4gICAgICAgICAgICBfdGhpcy5faGFuZGxlU29ja2V0RXZlbnRzKHNvY2tldCk7XHJcbiAgICAgICAgICAgIHJlc29sdmVXYWl0KCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBfaGFuZGxlU29ja2V0RXZlbnRzKHNvY2tldCkge1xyXG4gICAgICAgIHRoaXMuX3NvY2tldCA9IHNvY2tldDtcclxuICAgICAgICBzb2NrZXQub24oJ2Rpc2Nvbm5lY3QnLCAocmVhc29uKSA9PiB7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc29ja2V0Lm9uKCdlcnJvcicsIChlcnIpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gU29ja2V0OicsIGVycik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBfaG9va0FnZ3JlZ2F0b3JFdmVudHMoKSB7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRvci5vbigncnVubmVyOnN0YXJ0JywgZSA9PiB0aGlzLl9oYW5kbGVSdW5uZXJTdGFydChlKSk7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRvci5vbigncnVubmVyOmVuZCcsIGUgPT4gdGhpcy5faGFuZGxlUnVubmVyRW5kKGUpKTtcclxuICAgICAgICB0aGlzLl9hZ2dyZWdhdG9yLm9uKCdzdWl0ZTpzdGFydCcsIGUgPT4gdGhpcy5faGFuZGxlU3VpdGVTdGFydChlKSk7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRvci5vbignc3VpdGU6ZW5kJywgZSA9PiB0aGlzLl9oYW5kbGVTdWl0ZUVuZChlKSk7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRvci5vbignY2FzZTpzdGFydCcsIGUgPT4gdGhpcy5faGFuZGxlQ2FzZVN0YXJ0KGUpKTtcclxuICAgICAgICB0aGlzLl9hZ2dyZWdhdG9yLm9uKCdjYXNlOmVuZCcsIGUgPT4gdGhpcy5faGFuZGxlQ2FzZUVuZChlKSk7XHJcbiAgICAgICAgdGhpcy5fYWdncmVnYXRvci5vbignbG9nJywgZSA9PiB0aGlzLl9oYW5kbGVMb2coZSkpO1xyXG4gICAgfVxyXG4gICAgX2hhbmRsZVJ1bm5lclN0YXJ0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc29ja2V0Py5lbWl0KCdydW5uZXI6c3RhcnQnLCBldmVudCk7XHJcbiAgICB9XHJcbiAgICBfaGFuZGxlUnVubmVyRW5kKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc29ja2V0Py5lbWl0KCdydW5uZXI6ZW5kJywgZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgX2hhbmRsZVN1aXRlU3RhcnQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLl9zb2NrZXQ/LmVtaXQoJ3N1aXRlOnN0YXJ0JywgZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgX2hhbmRsZVN1aXRlRW5kKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc29ja2V0Py5lbWl0KCdzdWl0ZTplbmQnLCBldmVudCk7XHJcbiAgICB9XHJcbiAgICBfaGFuZGxlQ2FzZVN0YXJ0KGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc29ja2V0Py5lbWl0KCdjYXNlOnN0YXJ0JywgZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgX2hhbmRsZUNhc2VFbmQoZXZlbnQpIHtcclxuICAgICAgICB0aGlzLl9zb2NrZXQ/LmVtaXQoJ2Nhc2U6ZW5kJywgZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgX2hhbmRsZVN0ZXBTdGFydChldmVudCkge1xyXG4gICAgICAgIHRoaXMuX3NvY2tldD8uZW1pdCgnc3RlcDpzdGFydCcsIGV2ZW50KTtcclxuICAgIH1cclxuICAgIF9oYW5kbGVTdGVwRW5kKGV2ZW50KSB7XHJcbiAgICAgICAgdGhpcy5fc29ja2V0Py5lbWl0KCdzdGVwOmVuZCcsIGV2ZW50KTtcclxuICAgIH1cclxuICAgIF9oYW5kbGVMb2coZXZlbnQpIHtcclxuICAgICAgICB0aGlzLl9zb2NrZXQ/LmVtaXQoJ2xvZycsIGV2ZW50KTtcclxuICAgIH1cclxufSJdfQ==