@loadmill/executer 0.1.140 → 0.1.141

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.
Files changed (130) hide show
  1. package/dist/asserter.d.ts +9 -0
  2. package/dist/asserter.js +158 -0
  3. package/dist/asserter.js.map +1 -0
  4. package/dist/constants.d.ts +7 -0
  5. package/dist/constants.js +13 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/cookies.d.ts +4 -0
  8. package/dist/cookies.js +79 -0
  9. package/dist/cookies.js.map +1 -0
  10. package/dist/errors.d.ts +5 -0
  11. package/dist/errors.js +38 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/extraction-combiner.d.ts +17 -0
  14. package/dist/extraction-combiner.js +182 -0
  15. package/dist/extraction-combiner.js.map +1 -0
  16. package/dist/failures.d.ts +24 -0
  17. package/dist/failures.js +67 -0
  18. package/dist/failures.js.map +1 -0
  19. package/dist/grpc.d.ts +34 -0
  20. package/dist/grpc.js +269 -0
  21. package/dist/grpc.js.map +1 -0
  22. package/dist/iteration-stats.d.ts +2 -0
  23. package/dist/iteration-stats.js +38 -0
  24. package/dist/iteration-stats.js.map +1 -0
  25. package/dist/message-creators.d.ts +31 -0
  26. package/dist/message-creators.js +90 -0
  27. package/dist/message-creators.js.map +1 -0
  28. package/dist/mill-info.d.ts +70 -0
  29. package/dist/mill-info.js +3 -0
  30. package/dist/mill-info.js.map +1 -0
  31. package/dist/mill-version.d.ts +6 -0
  32. package/dist/mill-version.js +10 -0
  33. package/dist/mill-version.js.map +1 -0
  34. package/dist/parameter-pools.d.ts +3 -0
  35. package/dist/parameter-pools.js +69 -0
  36. package/dist/parameter-pools.js.map +1 -0
  37. package/dist/performance.d.ts +1 -0
  38. package/dist/performance.js +10 -0
  39. package/dist/performance.js.map +1 -0
  40. package/dist/post-script/ast-walker/index.d.ts +18 -0
  41. package/dist/post-script/ast-walker/index.js +215 -0
  42. package/dist/post-script/ast-walker/index.js.map +1 -0
  43. package/dist/post-script/ast-walker/type-guard.d.ts +11 -0
  44. package/dist/post-script/ast-walker/type-guard.js +56 -0
  45. package/dist/post-script/ast-walker/type-guard.js.map +1 -0
  46. package/dist/post-script/ast-walker/types.d.ts +24 -0
  47. package/dist/post-script/ast-walker/types.js +25 -0
  48. package/dist/post-script/ast-walker/types.js.map +1 -0
  49. package/dist/post-script/console-log.d.ts +7 -0
  50. package/dist/post-script/console-log.js +31 -0
  51. package/dist/post-script/console-log.js.map +1 -0
  52. package/dist/post-script/constants.d.ts +4 -0
  53. package/dist/post-script/constants.js +9 -0
  54. package/dist/post-script/constants.js.map +1 -0
  55. package/dist/post-script/parser/acorn-js-parser.d.ts +5 -0
  56. package/dist/post-script/parser/acorn-js-parser.js +20 -0
  57. package/dist/post-script/parser/acorn-js-parser.js.map +1 -0
  58. package/dist/post-script/parser/js-parser.d.ts +16 -0
  59. package/dist/post-script/parser/js-parser.js +3 -0
  60. package/dist/post-script/parser/js-parser.js.map +1 -0
  61. package/dist/post-script/parser/parser.d.ts +6 -0
  62. package/dist/post-script/parser/parser.js +3 -0
  63. package/dist/post-script/parser/parser.js.map +1 -0
  64. package/dist/post-script/post-script-executor.d.ts +24 -0
  65. package/dist/post-script/post-script-executor.js +125 -0
  66. package/dist/post-script/post-script-executor.js.map +1 -0
  67. package/dist/post-script/virtual-machine/virtual-machine.d.ts +13 -0
  68. package/dist/post-script/virtual-machine/virtual-machine.js +3 -0
  69. package/dist/post-script/virtual-machine/virtual-machine.js.map +1 -0
  70. package/dist/post-script/virtual-machine/vm2-virtual-machine.d.ts +12 -0
  71. package/dist/post-script/virtual-machine/vm2-virtual-machine.js +81 -0
  72. package/dist/post-script/virtual-machine/vm2-virtual-machine.js.map +1 -0
  73. package/dist/post-sequence.d.ts +2 -0
  74. package/dist/post-sequence.js +192 -0
  75. package/dist/post-sequence.js.map +1 -0
  76. package/dist/redact-data.d.ts +2 -0
  77. package/dist/redact-data.js +60 -0
  78. package/dist/redact-data.js.map +1 -0
  79. package/dist/report-types.d.ts +102 -0
  80. package/dist/report-types.js +11 -0
  81. package/dist/report-types.js.map +1 -0
  82. package/dist/request-sequence-result.d.ts +37 -0
  83. package/dist/request-sequence-result.js +19 -0
  84. package/dist/request-sequence-result.js.map +1 -0
  85. package/dist/request-stats.d.ts +13 -0
  86. package/dist/request-stats.js +14 -0
  87. package/dist/request-stats.js.map +1 -0
  88. package/dist/res-keeper.d.ts +16 -0
  89. package/dist/res-keeper.js +104 -0
  90. package/dist/res-keeper.js.map +1 -0
  91. package/dist/sampler.d.ts +29 -0
  92. package/dist/sampler.js +276 -0
  93. package/dist/sampler.js.map +1 -0
  94. package/dist/sequence-executor-like.d.ts +23 -0
  95. package/dist/sequence-executor-like.js +3 -0
  96. package/dist/sequence-executor-like.js.map +1 -0
  97. package/dist/sequence.d.ts +16 -0
  98. package/dist/sequence.js +1738 -0
  99. package/dist/sequence.js.map +1 -0
  100. package/dist/single-runner.d.ts +29 -0
  101. package/dist/single-runner.js +147 -0
  102. package/dist/single-runner.js.map +1 -0
  103. package/dist/step-handlers/code-step-handler.d.ts +12 -0
  104. package/dist/step-handlers/code-step-handler.js +93 -0
  105. package/dist/step-handlers/code-step-handler.js.map +1 -0
  106. package/dist/step-handlers/extract-step-handler.d.ts +12 -0
  107. package/dist/step-handlers/extract-step-handler.js +101 -0
  108. package/dist/step-handlers/extract-step-handler.js.map +1 -0
  109. package/dist/step-handlers/request-step-handler.d.ts +13 -0
  110. package/dist/step-handlers/request-step-handler.js +94 -0
  111. package/dist/step-handlers/request-step-handler.js.map +1 -0
  112. package/dist/step-handlers/step-handler.d.ts +11 -0
  113. package/dist/step-handlers/step-handler.js +3 -0
  114. package/dist/step-handlers/step-handler.js.map +1 -0
  115. package/dist/test-run-event-emitter.d.ts +15 -0
  116. package/dist/test-run-event-emitter.js +36 -0
  117. package/dist/test-run-event-emitter.js.map +1 -0
  118. package/dist/types/grpc.d.ts +14 -0
  119. package/dist/types/grpc.js +3 -0
  120. package/dist/types/grpc.js.map +1 -0
  121. package/dist/utils.d.ts +3 -0
  122. package/dist/utils.js +32 -0
  123. package/dist/utils.js.map +1 -0
  124. package/dist/work.d.ts +15 -0
  125. package/dist/work.js +3 -0
  126. package/dist/work.js.map +1 -0
  127. package/dist/ws.d.ts +71 -0
  128. package/dist/ws.js +474 -0
  129. package/dist/ws.js.map +1 -0
  130. package/package.json +3 -3
package/dist/ws.js ADDED
@@ -0,0 +1,474 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.WSSequenceHandler = exports.WSRequest = void 0;
43
+ var ws_1 = __importDefault(require("ws")); // todo should be picked with other option (socketio or non in browser)
44
+ var promise_utils_1 = require("@loadmill/universal/dist/promise-utils");
45
+ var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
46
+ var errors_1 = require("./errors");
47
+ var http_1 = require("http");
48
+ var WSState;
49
+ (function (WSState) {
50
+ WSState[WSState["CONNECTING"] = 0] = "CONNECTING";
51
+ WSState[WSState["OPEN"] = 1] = "OPEN";
52
+ WSState[WSState["CLOSING"] = 2] = "CLOSING";
53
+ WSState[WSState["CLOSED"] = 3] = "CLOSED";
54
+ })(WSState || (WSState = {}));
55
+ var SWITCHING_PROTOCOLS = 'Switching Protocols';
56
+ var WS_CONNECTION_TIMEOUT_MS = 10000;
57
+ var WSRequest = /** @class */ (function () {
58
+ function WSRequest(wsRequestArgs, wsHandler, onError) {
59
+ var _this = this;
60
+ Object.defineProperty(this, "wsRequestArgs", {
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true,
64
+ value: wsRequestArgs
65
+ });
66
+ Object.defineProperty(this, "wsHandler", {
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true,
70
+ value: wsHandler
71
+ });
72
+ Object.defineProperty(this, "onError", {
73
+ enumerable: true,
74
+ configurable: true,
75
+ writable: true,
76
+ value: onError
77
+ });
78
+ Object.defineProperty(this, "hasErrorOccured", {
79
+ enumerable: true,
80
+ configurable: true,
81
+ writable: true,
82
+ value: void 0
83
+ }); // need this otherwise we have race condition between verifyConnectedAndOpen and onError
84
+ Object.defineProperty(this, "ws", {
85
+ enumerable: true,
86
+ configurable: true,
87
+ writable: true,
88
+ value: void 0
89
+ });
90
+ Object.defineProperty(this, "url", {
91
+ enumerable: true,
92
+ configurable: true,
93
+ writable: true,
94
+ value: void 0
95
+ }); // need this for isExpectedStatus function
96
+ Object.defineProperty(this, "expectedStatus", {
97
+ enumerable: true,
98
+ configurable: true,
99
+ writable: true,
100
+ value: void 0
101
+ }); // need this for isExpectedStatus function
102
+ /**
103
+ * Waiting for WS connection to go out of CONNECTING state
104
+ * @param socket The ws connection object
105
+ * @param timeout The timeout in milliseconds for the waiting procedure
106
+ * @returns WSState
107
+ */
108
+ Object.defineProperty(this, "waitForConnectedState", {
109
+ enumerable: true,
110
+ configurable: true,
111
+ writable: true,
112
+ value: function (timeout) {
113
+ if (timeout === void 0) { timeout = WS_CONNECTION_TIMEOUT_MS; }
114
+ return __awaiter(_this, void 0, void 0, function () {
115
+ var WS_CONNECTION_INTERVAL_MS, maxIterations, i;
116
+ return __generator(this, function (_a) {
117
+ switch (_a.label) {
118
+ case 0:
119
+ WS_CONNECTION_INTERVAL_MS = 100;
120
+ if (!(this.ws.readyState != null && this.ws.readyState !== ws_1.default.CONNECTING)) return [3 /*break*/, 1];
121
+ return [2 /*return*/, this.ws.readyState];
122
+ case 1:
123
+ maxIterations = timeout / WS_CONNECTION_INTERVAL_MS;
124
+ i = 0;
125
+ _a.label = 2;
126
+ case 2:
127
+ if (!(this.ws.readyState === ws_1.default.CONNECTING && i < maxIterations)) return [3 /*break*/, 4];
128
+ return [4 /*yield*/, promise_utils_1.delay(WS_CONNECTION_INTERVAL_MS)];
129
+ case 3:
130
+ _a.sent();
131
+ i++;
132
+ return [3 /*break*/, 2];
133
+ case 4: return [2 /*return*/, this.ws.readyState];
134
+ }
135
+ });
136
+ });
137
+ }
138
+ });
139
+ this.url = wsRequestArgs.url;
140
+ this.expectedStatus = wsRequestArgs.expectedStatus;
141
+ }
142
+ /**
143
+ * This function is executed when we are ready to send the ws request
144
+ * @param cb This callback is being executed after we successfully connected to ws and sent a ws message if there was any
145
+ */
146
+ Object.defineProperty(WSRequest.prototype, "ok", {
147
+ enumerable: false,
148
+ configurable: true,
149
+ writable: true,
150
+ value: function (cb) {
151
+ return __awaiter(this, void 0, void 0, function () {
152
+ var response, existingWS;
153
+ return __generator(this, function (_a) {
154
+ switch (_a.label) {
155
+ case 0:
156
+ response = {
157
+ status: undefined,
158
+ res: {
159
+ statusMessage: undefined,
160
+ },
161
+ header: {},
162
+ req: {},
163
+ };
164
+ existingWS = this.wsHandler.getConnection(this.wsRequestArgs.url);
165
+ existingWS && log_1.default.debug("Existing Connection state " + getConnectionState(existingWS));
166
+ if (!(!existingWS || (existingWS && existingWS.readyState !== WSState.OPEN))) return [3 /*break*/, 2];
167
+ return [4 /*yield*/, this.addConnection(response)];
168
+ case 1:
169
+ _a.sent();
170
+ return [3 /*break*/, 3];
171
+ case 2:
172
+ this.ws = existingWS;
173
+ log_1.default.debug('Reusing existing ws connection', this.ws.url);
174
+ _a.label = 3;
175
+ case 3:
176
+ try {
177
+ this.sendMessage();
178
+ }
179
+ catch (e) {
180
+ log_1.default.error('Failed to send a ws message', e);
181
+ }
182
+ cb(response);
183
+ return [2 /*return*/, {}];
184
+ }
185
+ });
186
+ });
187
+ }
188
+ });
189
+ Object.defineProperty(WSRequest.prototype, "addConnection", {
190
+ enumerable: false,
191
+ configurable: true,
192
+ writable: true,
193
+ value: function (response) {
194
+ return __awaiter(this, void 0, void 0, function () {
195
+ var _a;
196
+ return __generator(this, function (_b) {
197
+ switch (_b.label) {
198
+ case 0:
199
+ this.ws = new ws_1.default(this.wsRequestArgs.url, undefined, { headers: this.wsRequestArgs.headers });
200
+ this.addEventListeners(response);
201
+ _a = !this.hasErrorOccured;
202
+ if (!_a) return [3 /*break*/, 2];
203
+ return [4 /*yield*/, this.verifyOpen()];
204
+ case 1:
205
+ _a = (_b.sent());
206
+ _b.label = 2;
207
+ case 2:
208
+ _a;
209
+ this.wsHandler.storeConnection(this.wsRequestArgs.url, this.ws);
210
+ return [2 /*return*/];
211
+ }
212
+ });
213
+ });
214
+ }
215
+ });
216
+ Object.defineProperty(WSRequest.prototype, "addEventListeners", {
217
+ enumerable: false,
218
+ configurable: true,
219
+ writable: true,
220
+ value: function (response) {
221
+ return __awaiter(this, void 0, void 0, function () {
222
+ return __generator(this, function (_a) {
223
+ this.addOnErrorListener(response);
224
+ this.addOnUpgradeListener(response);
225
+ this.addOnOpenListener();
226
+ this.addOnMessageListener();
227
+ return [2 /*return*/];
228
+ });
229
+ });
230
+ }
231
+ });
232
+ Object.defineProperty(WSRequest.prototype, "addOnErrorListener", {
233
+ enumerable: false,
234
+ configurable: true,
235
+ writable: true,
236
+ value: function (response) {
237
+ var _this = this;
238
+ this.ws.addEventListener('error', function (event) {
239
+ log_1.default.debug('inside addEventListener error');
240
+ try {
241
+ var target = event.target;
242
+ _this.updateResponseOnError(target, response);
243
+ }
244
+ catch (e) {
245
+ log_1.default.error('Got an error inside addEventListener error', e);
246
+ }
247
+ });
248
+ this.ws.on('error', function (e) {
249
+ try {
250
+ log_1.default.debug('inside on error', e);
251
+ _this.onError(e);
252
+ _this.hasErrorOccured = true;
253
+ }
254
+ catch (e) {
255
+ log_1.default.warn('Failed to handle a ws error', e);
256
+ }
257
+ try {
258
+ log_1.default.debug('closing ws');
259
+ _this.ws.close();
260
+ }
261
+ catch (e) {
262
+ log_1.default.warn('Failed to close a ws connection', e);
263
+ }
264
+ });
265
+ }
266
+ });
267
+ Object.defineProperty(WSRequest.prototype, "updateResponseOnError", {
268
+ enumerable: false,
269
+ configurable: true,
270
+ writable: true,
271
+ value: function (ws, response) {
272
+ if (ws._req) {
273
+ var _a = ws._req.socket.parser.incoming, statusCode = _a.statusCode, statusMessage = _a.statusMessage, headers = _a.headers;
274
+ log_1.default.debug('Got incoming incoming request', { statusCode: statusCode, statusMessage: statusMessage, headers: headers });
275
+ response.status = statusCode;
276
+ response.res.statusMessage = statusMessage;
277
+ response.header = headers;
278
+ }
279
+ }
280
+ });
281
+ Object.defineProperty(WSRequest.prototype, "addOnUpgradeListener", {
282
+ enumerable: false,
283
+ configurable: true,
284
+ writable: true,
285
+ value: function (response) {
286
+ this.ws.on('upgrade', function (event) {
287
+ try {
288
+ var statusCode = event.statusCode, statusMessage = event.statusMessage, headers = event.headers;
289
+ log_1.default.debug('inside upgrade event', { statusCode: statusCode, statusMessage: statusMessage, headers: headers });
290
+ response.status = statusCode || 101;
291
+ response.res.statusMessage = statusMessage || SWITCHING_PROTOCOLS;
292
+ response.header = headers;
293
+ }
294
+ catch (e) {
295
+ log_1.default.debug('upgrade event err', e);
296
+ }
297
+ });
298
+ }
299
+ });
300
+ Object.defineProperty(WSRequest.prototype, "addOnOpenListener", {
301
+ enumerable: false,
302
+ configurable: true,
303
+ writable: true,
304
+ value: function () {
305
+ this.ws.on('open', function () {
306
+ log_1.default.debug('inside on open, currently doing nothing here.');
307
+ });
308
+ }
309
+ });
310
+ Object.defineProperty(WSRequest.prototype, "addOnMessageListener", {
311
+ enumerable: false,
312
+ configurable: true,
313
+ writable: true,
314
+ value: function () {
315
+ var _this = this;
316
+ this.ws.on('message', function (message) {
317
+ try {
318
+ var target = Array.isArray(message) ? decode(message) : message;
319
+ log_1.default.debug('got incoming message', target === null || target === void 0 ? void 0 : target.toString());
320
+ _this.wsHandler.addMessage(target);
321
+ }
322
+ catch (e) {
323
+ log_1.default.debug('error getting message', e);
324
+ }
325
+ });
326
+ }
327
+ });
328
+ Object.defineProperty(WSRequest.prototype, "verifyOpen", {
329
+ enumerable: false,
330
+ configurable: true,
331
+ writable: true,
332
+ value: function () {
333
+ return __awaiter(this, void 0, void 0, function () {
334
+ var readyState, connectionDebugMsg, msg;
335
+ return __generator(this, function (_a) {
336
+ switch (_a.label) {
337
+ case 0: return [4 /*yield*/, this.waitForConnectedState(this.wsRequestArgs.timeout)];
338
+ case 1:
339
+ readyState = _a.sent();
340
+ connectionDebugMsg = "Connection " + WSState[readyState];
341
+ log_1.default.debug(connectionDebugMsg);
342
+ if (readyState !== ws_1.default.OPEN && !this.hasErrorOccured) {
343
+ msg = 'Could not connect to WebSocket address: ';
344
+ log_1.default.debug(msg, { connectionState: WSState[readyState], url: this.ws.url });
345
+ if (readyState === WSState.CONNECTING) {
346
+ msg += 'request timeout';
347
+ }
348
+ else { // CLOSING or CLOSED state
349
+ msg += connectionDebugMsg;
350
+ }
351
+ throw new errors_1.RequestFailuresError(msg);
352
+ }
353
+ return [2 /*return*/];
354
+ }
355
+ });
356
+ });
357
+ }
358
+ });
359
+ Object.defineProperty(WSRequest.prototype, "sendMessage", {
360
+ enumerable: false,
361
+ configurable: true,
362
+ writable: true,
363
+ value: function () {
364
+ log_1.default.debug('about to send message', { readyState: WSState[this.ws.readyState] });
365
+ var _a = this.wsRequestArgs, message = _a.message, mimeType = _a.mimeType;
366
+ if (this.ws.readyState === WSState.OPEN && message) {
367
+ this.ws.send(message, { binary: mimeType === 'binary' });
368
+ }
369
+ }
370
+ });
371
+ // need this because the SequenceExecutor expectes a request obj with on func prop
372
+ Object.defineProperty(WSRequest.prototype, "on", {
373
+ enumerable: false,
374
+ configurable: true,
375
+ writable: true,
376
+ value: function (_eventName, _cb) {
377
+ //do nothing
378
+ }
379
+ });
380
+ return WSRequest;
381
+ }());
382
+ exports.WSRequest = WSRequest;
383
+ var WSSequenceHandler = /** @class */ (function () {
384
+ function WSSequenceHandler() {
385
+ Object.defineProperty(this, "_connections", {
386
+ enumerable: true,
387
+ configurable: true,
388
+ writable: true,
389
+ value: void 0
390
+ });
391
+ Object.defineProperty(this, "messages", {
392
+ enumerable: true,
393
+ configurable: true,
394
+ writable: true,
395
+ value: void 0
396
+ });
397
+ this._connections = {};
398
+ this.clearMessages();
399
+ }
400
+ Object.defineProperty(WSSequenceHandler.prototype, "getConnection", {
401
+ enumerable: false,
402
+ configurable: true,
403
+ writable: true,
404
+ value: function (url) {
405
+ return this._connections[url];
406
+ }
407
+ });
408
+ Object.defineProperty(WSSequenceHandler.prototype, "storeConnection", {
409
+ enumerable: false,
410
+ configurable: true,
411
+ writable: true,
412
+ value: function (url, wsConnection) {
413
+ this._connections[url] = wsConnection;
414
+ }
415
+ });
416
+ Object.defineProperty(WSSequenceHandler.prototype, "closeAllConnections", {
417
+ enumerable: false,
418
+ configurable: true,
419
+ writable: true,
420
+ value: function () {
421
+ return __awaiter(this, void 0, void 0, function () {
422
+ var _i, _a, connection;
423
+ return __generator(this, function (_b) {
424
+ try {
425
+ log_1.default.debug('Closing all ws connections');
426
+ for (_i = 0, _a = Object.values(this._connections); _i < _a.length; _i++) {
427
+ connection = _a[_i];
428
+ connection.close();
429
+ }
430
+ }
431
+ catch (e) {
432
+ log_1.default.warn('Failed to close all connections', e, { connections: this._connections });
433
+ }
434
+ return [2 /*return*/];
435
+ });
436
+ });
437
+ }
438
+ });
439
+ Object.defineProperty(WSSequenceHandler.prototype, "getMessages", {
440
+ enumerable: false,
441
+ configurable: true,
442
+ writable: true,
443
+ value: function () {
444
+ return this.messages;
445
+ }
446
+ });
447
+ Object.defineProperty(WSSequenceHandler.prototype, "addMessage", {
448
+ enumerable: false,
449
+ configurable: true,
450
+ writable: true,
451
+ value: function (message) {
452
+ this.messages.push(message);
453
+ }
454
+ });
455
+ Object.defineProperty(WSSequenceHandler.prototype, "clearMessages", {
456
+ enumerable: false,
457
+ configurable: true,
458
+ writable: true,
459
+ value: function () {
460
+ this.messages = [];
461
+ }
462
+ });
463
+ return WSSequenceHandler;
464
+ }());
465
+ exports.WSSequenceHandler = WSSequenceHandler;
466
+ function getConnectionState(existingWS) {
467
+ return existingWS ? WSState[existingWS.readyState] : null;
468
+ }
469
+ function decode(buffer, encoding) {
470
+ if (encoding === void 0) { encoding = 'utf-8'; }
471
+ var enc = new TextDecoder(encoding);
472
+ return enc.decode(new Uint8Array(buffer));
473
+ }
474
+ //# sourceMappingURL=ws.js.map
package/dist/ws.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadmill/executer",
3
- "version": "0.1.140",
3
+ "version": "0.1.141",
4
4
  "description": "Loadmill executer library",
5
5
  "scripts": {
6
6
  "ts-watch": "rimraf dist && tsc -w -p tsconfig.json",
@@ -16,8 +16,8 @@
16
16
  "dependencies": {
17
17
  "@grpc/grpc-js": "^1.9.8",
18
18
  "@grpc/proto-loader": "^0.7.10",
19
- "@loadmill/core": "0.3.139",
20
- "@loadmill/universal": "0.3.134",
19
+ "@loadmill/core": "0.3.140",
20
+ "@loadmill/universal": "0.3.135",
21
21
  "@types/estree": "^0.0.50",
22
22
  "acorn": "^8.4.1",
23
23
  "agentkeepalive": "^4.1.3",