@loadmill/executer 0.1.143 → 0.1.145

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 (159) hide show
  1. package/dist/post-script/post-script-executor.js +6 -2
  2. package/dist/post-script/post-script-executor.js.map +1 -1
  3. package/dist/redact-data.js +1 -1
  4. package/dist/redact-data.js.map +1 -1
  5. package/dist/request-stats.d.ts +2 -1
  6. package/dist/request-stats.js +4 -4
  7. package/dist/request-stats.js.map +1 -1
  8. package/dist/sampler.js +2 -1
  9. package/dist/sampler.js.map +1 -1
  10. package/dist/sequence.js +9 -5
  11. package/dist/sequence.js.map +1 -1
  12. package/package.json +3 -3
  13. package/dist/post-script/ast-walker/index.d.ts +0 -18
  14. package/dist/post-script/ast-walker/index.js +0 -215
  15. package/dist/post-script/ast-walker/index.js.map +0 -1
  16. package/dist/post-script/ast-walker/type-guard.d.ts +0 -11
  17. package/dist/post-script/ast-walker/type-guard.js +0 -56
  18. package/dist/post-script/ast-walker/type-guard.js.map +0 -1
  19. package/dist/post-script/ast-walker/types.d.ts +0 -24
  20. package/dist/post-script/ast-walker/types.js +0 -25
  21. package/dist/post-script/ast-walker/types.js.map +0 -1
  22. package/dist/post-script/parser/acorn-js-parser.d.ts +0 -5
  23. package/dist/post-script/parser/acorn-js-parser.js +0 -20
  24. package/dist/post-script/parser/acorn-js-parser.js.map +0 -1
  25. package/dist/post-script/parser/js-parser.d.ts +0 -16
  26. package/dist/post-script/parser/js-parser.js +0 -3
  27. package/dist/post-script/parser/js-parser.js.map +0 -1
  28. package/dist/post-script/parser/parser.d.ts +0 -6
  29. package/dist/post-script/parser/parser.js +0 -3
  30. package/dist/post-script/parser/parser.js.map +0 -1
  31. package/package/dist/asserter.d.ts +0 -9
  32. package/package/dist/asserter.js +0 -158
  33. package/package/dist/asserter.js.map +0 -1
  34. package/package/dist/constants.d.ts +0 -7
  35. package/package/dist/constants.js +0 -13
  36. package/package/dist/constants.js.map +0 -1
  37. package/package/dist/cookies.d.ts +0 -4
  38. package/package/dist/cookies.js +0 -79
  39. package/package/dist/cookies.js.map +0 -1
  40. package/package/dist/errors.d.ts +0 -5
  41. package/package/dist/errors.js +0 -38
  42. package/package/dist/errors.js.map +0 -1
  43. package/package/dist/extraction-combiner.d.ts +0 -17
  44. package/package/dist/extraction-combiner.js +0 -182
  45. package/package/dist/extraction-combiner.js.map +0 -1
  46. package/package/dist/failures.d.ts +0 -24
  47. package/package/dist/failures.js +0 -67
  48. package/package/dist/failures.js.map +0 -1
  49. package/package/dist/grpc.d.ts +0 -34
  50. package/package/dist/grpc.js +0 -269
  51. package/package/dist/grpc.js.map +0 -1
  52. package/package/dist/iteration-stats.d.ts +0 -2
  53. package/package/dist/iteration-stats.js +0 -38
  54. package/package/dist/iteration-stats.js.map +0 -1
  55. package/package/dist/message-creators.d.ts +0 -31
  56. package/package/dist/message-creators.js +0 -90
  57. package/package/dist/message-creators.js.map +0 -1
  58. package/package/dist/mill-info.d.ts +0 -70
  59. package/package/dist/mill-info.js +0 -3
  60. package/package/dist/mill-info.js.map +0 -1
  61. package/package/dist/mill-version.d.ts +0 -6
  62. package/package/dist/mill-version.js +0 -10
  63. package/package/dist/mill-version.js.map +0 -1
  64. package/package/dist/parameter-pools.d.ts +0 -3
  65. package/package/dist/parameter-pools.js +0 -69
  66. package/package/dist/parameter-pools.js.map +0 -1
  67. package/package/dist/performance.d.ts +0 -1
  68. package/package/dist/performance.js +0 -10
  69. package/package/dist/performance.js.map +0 -1
  70. package/package/dist/post-script/ast-walker/index.d.ts +0 -18
  71. package/package/dist/post-script/ast-walker/index.js +0 -215
  72. package/package/dist/post-script/ast-walker/index.js.map +0 -1
  73. package/package/dist/post-script/ast-walker/type-guard.d.ts +0 -11
  74. package/package/dist/post-script/ast-walker/type-guard.js +0 -56
  75. package/package/dist/post-script/ast-walker/type-guard.js.map +0 -1
  76. package/package/dist/post-script/ast-walker/types.d.ts +0 -24
  77. package/package/dist/post-script/ast-walker/types.js +0 -25
  78. package/package/dist/post-script/ast-walker/types.js.map +0 -1
  79. package/package/dist/post-script/console-log.d.ts +0 -7
  80. package/package/dist/post-script/console-log.js +0 -31
  81. package/package/dist/post-script/console-log.js.map +0 -1
  82. package/package/dist/post-script/constants.d.ts +0 -4
  83. package/package/dist/post-script/constants.js +0 -9
  84. package/package/dist/post-script/constants.js.map +0 -1
  85. package/package/dist/post-script/parser/acorn-js-parser.d.ts +0 -5
  86. package/package/dist/post-script/parser/acorn-js-parser.js +0 -20
  87. package/package/dist/post-script/parser/acorn-js-parser.js.map +0 -1
  88. package/package/dist/post-script/parser/js-parser.d.ts +0 -16
  89. package/package/dist/post-script/parser/js-parser.js +0 -3
  90. package/package/dist/post-script/parser/js-parser.js.map +0 -1
  91. package/package/dist/post-script/parser/parser.d.ts +0 -6
  92. package/package/dist/post-script/parser/parser.js +0 -3
  93. package/package/dist/post-script/parser/parser.js.map +0 -1
  94. package/package/dist/post-script/post-script-executor.d.ts +0 -24
  95. package/package/dist/post-script/post-script-executor.js +0 -125
  96. package/package/dist/post-script/post-script-executor.js.map +0 -1
  97. package/package/dist/post-script/virtual-machine/virtual-machine.d.ts +0 -13
  98. package/package/dist/post-script/virtual-machine/virtual-machine.js +0 -3
  99. package/package/dist/post-script/virtual-machine/virtual-machine.js.map +0 -1
  100. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.d.ts +0 -12
  101. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.js +0 -81
  102. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.js.map +0 -1
  103. package/package/dist/post-sequence.d.ts +0 -2
  104. package/package/dist/post-sequence.js +0 -192
  105. package/package/dist/post-sequence.js.map +0 -1
  106. package/package/dist/redact-data.d.ts +0 -2
  107. package/package/dist/redact-data.js +0 -60
  108. package/package/dist/redact-data.js.map +0 -1
  109. package/package/dist/report-types.d.ts +0 -102
  110. package/package/dist/report-types.js +0 -11
  111. package/package/dist/report-types.js.map +0 -1
  112. package/package/dist/request-sequence-result.d.ts +0 -37
  113. package/package/dist/request-sequence-result.js +0 -19
  114. package/package/dist/request-sequence-result.js.map +0 -1
  115. package/package/dist/request-stats.d.ts +0 -13
  116. package/package/dist/request-stats.js +0 -14
  117. package/package/dist/request-stats.js.map +0 -1
  118. package/package/dist/res-keeper.d.ts +0 -16
  119. package/package/dist/res-keeper.js +0 -104
  120. package/package/dist/res-keeper.js.map +0 -1
  121. package/package/dist/sampler.d.ts +0 -29
  122. package/package/dist/sampler.js +0 -276
  123. package/package/dist/sampler.js.map +0 -1
  124. package/package/dist/sequence-executor-like.d.ts +0 -23
  125. package/package/dist/sequence-executor-like.js +0 -3
  126. package/package/dist/sequence-executor-like.js.map +0 -1
  127. package/package/dist/sequence.d.ts +0 -16
  128. package/package/dist/sequence.js +0 -1738
  129. package/package/dist/sequence.js.map +0 -1
  130. package/package/dist/single-runner.d.ts +0 -29
  131. package/package/dist/single-runner.js +0 -147
  132. package/package/dist/single-runner.js.map +0 -1
  133. package/package/dist/step-handlers/code-step-handler.d.ts +0 -12
  134. package/package/dist/step-handlers/code-step-handler.js +0 -93
  135. package/package/dist/step-handlers/code-step-handler.js.map +0 -1
  136. package/package/dist/step-handlers/extract-step-handler.d.ts +0 -12
  137. package/package/dist/step-handlers/extract-step-handler.js +0 -101
  138. package/package/dist/step-handlers/extract-step-handler.js.map +0 -1
  139. package/package/dist/step-handlers/request-step-handler.d.ts +0 -13
  140. package/package/dist/step-handlers/request-step-handler.js +0 -94
  141. package/package/dist/step-handlers/request-step-handler.js.map +0 -1
  142. package/package/dist/step-handlers/step-handler.d.ts +0 -11
  143. package/package/dist/step-handlers/step-handler.js +0 -3
  144. package/package/dist/step-handlers/step-handler.js.map +0 -1
  145. package/package/dist/test-run-event-emitter.d.ts +0 -15
  146. package/package/dist/test-run-event-emitter.js +0 -36
  147. package/package/dist/test-run-event-emitter.js.map +0 -1
  148. package/package/dist/types/grpc.d.ts +0 -14
  149. package/package/dist/types/grpc.js +0 -3
  150. package/package/dist/types/grpc.js.map +0 -1
  151. package/package/dist/utils.d.ts +0 -3
  152. package/package/dist/utils.js +0 -32
  153. package/package/dist/utils.js.map +0 -1
  154. package/package/dist/work.d.ts +0 -15
  155. package/package/dist/work.js +0 -3
  156. package/package/dist/work.js.map +0 -1
  157. package/package/dist/ws.d.ts +0 -71
  158. package/package/dist/ws.js +0 -474
  159. package/package/dist/ws.js.map +0 -1
@@ -1,182 +0,0 @@
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.ExtractionCombiner = void 0;
43
- var extractors_1 = require("@loadmill/core/dist/parameters/extractors");
44
- var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
45
- var jsedn_1 = __importDefault(require("jsedn"));
46
- var ExtractionCombiner = /** @class */ (function () {
47
- function ExtractionCombiner(contextParameters, res, wsExtractionData) {
48
- Object.defineProperty(this, "contextParameters", {
49
- enumerable: true,
50
- configurable: true,
51
- writable: true,
52
- value: contextParameters
53
- });
54
- Object.defineProperty(this, "res", {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: res
59
- });
60
- Object.defineProperty(this, "wsExtractionData", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: wsExtractionData
65
- });
66
- Object.defineProperty(this, "headerExtractor", {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: void 0
71
- });
72
- Object.defineProperty(this, "cheerioExtractor", {
73
- enumerable: true,
74
- configurable: true,
75
- writable: true,
76
- value: void 0
77
- });
78
- Object.defineProperty(this, "xmlExtractor", {
79
- enumerable: true,
80
- configurable: true,
81
- writable: true,
82
- value: void 0
83
- });
84
- Object.defineProperty(this, "jsonPathExtractor", {
85
- enumerable: true,
86
- configurable: true,
87
- writable: true,
88
- value: void 0
89
- });
90
- Object.defineProperty(this, "ednPathExtractor", {
91
- enumerable: true,
92
- configurable: true,
93
- writable: true,
94
- value: void 0
95
- });
96
- Object.defineProperty(this, "expressionExtractor", {
97
- enumerable: true,
98
- configurable: true,
99
- writable: true,
100
- value: void 0
101
- });
102
- this.headerExtractor = new extractors_1.HeaderExtractor(res, this.contextParameters);
103
- this.expressionExtractor = new extractors_1.ExpressionExtractor(this.contextParameters);
104
- }
105
- Object.defineProperty(ExtractionCombiner.prototype, "combine", {
106
- enumerable: false,
107
- configurable: true,
108
- writable: true,
109
- value: function (extraction) {
110
- return __awaiter(this, void 0, void 0, function () {
111
- var query, extractor, header, jQuery, xPath, jsonPath, edn, regex, ws, converted;
112
- var _this = this;
113
- return __generator(this, function (_a) {
114
- if (typeof extraction === 'string') {
115
- query = extraction;
116
- extractor = this.expressionExtractor;
117
- }
118
- else {
119
- header = extraction.header, jQuery = extraction.jQuery, xPath = extraction.xPath, jsonPath = extraction.jsonPath, edn = extraction.edn, regex = extraction.regex, ws = extraction.ws;
120
- if (header != null) {
121
- query = header;
122
- extractor = this.headerExtractor;
123
- }
124
- else if (jQuery != null) {
125
- if (!this.cheerioExtractor) {
126
- this.cheerioExtractor = new extractors_1.CheerioExtractor(this.res.text, this.contextParameters);
127
- }
128
- query =
129
- typeof jQuery === 'string'
130
- ? jQuery
131
- : [jQuery.query, '0', jQuery.attr || ''];
132
- extractor = this.cheerioExtractor;
133
- }
134
- else if (xPath != null) {
135
- if (!this.xmlExtractor) {
136
- this.xmlExtractor = new extractors_1.XPathExtractor(this.res.text, this.contextParameters);
137
- }
138
- query = xPath;
139
- extractor = this.xmlExtractor;
140
- }
141
- else if (jsonPath != null) {
142
- if (!this.jsonPathExtractor) {
143
- this.jsonPathExtractor = new extractors_1.JsonPathExtractor(this.res.text, this.contextParameters);
144
- }
145
- query = jsonPath;
146
- extractor = this.jsonPathExtractor;
147
- }
148
- else if (edn != null) {
149
- if (!this.ednPathExtractor) {
150
- converted = '';
151
- try {
152
- converted = JSON.stringify(jsedn_1.default.toJS(jsedn_1.default.parse(this.res.text)));
153
- }
154
- catch (e) {
155
- log_1.default.error(e); // just log. The error will shown later because we send '' to JsonPathExtractor
156
- }
157
- this.ednPathExtractor = new extractors_1.JsonPathExtractor(converted, this.contextParameters);
158
- }
159
- query = edn;
160
- extractor = this.ednPathExtractor;
161
- }
162
- if (regex != null) {
163
- extractor = new extractors_1.RegexExtractor(extractor ? wrap(extractor, query) : function () { return _this.res.text; }, this.contextParameters);
164
- query = regex;
165
- }
166
- if (ws != null) {
167
- extractor = new extractors_1.WsExtractor(this.wsExtractionData, this.contextParameters);
168
- query = ws;
169
- }
170
- }
171
- return [2 /*return*/, function () { return extractor.extract(query); }];
172
- });
173
- });
174
- }
175
- });
176
- return ExtractionCombiner;
177
- }());
178
- exports.ExtractionCombiner = ExtractionCombiner;
179
- function wrap(extractor, query) {
180
- return function () { return extractor.extract(query); };
181
- }
182
- //# sourceMappingURL=extraction-combiner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extraction-combiner.js","sourceRoot":"","sources":["../src/extraction-combiner.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- export declare function OneFailure(histogram: Histogram): RequestFailures;
2
- export declare function mergeFailures(to: Failures, from: Failures): void;
3
- export declare function getFailureKeys(failures?: Failures): string[];
4
- export declare function getFailureKey(reqIndex: string | number, reason: string): string;
5
- export interface Failures {
6
- [index: number]: RequestFailures;
7
- }
8
- export interface RequestFailures {
9
- /**
10
- * Counts the number of times the request has failed.
11
- */
12
- numFailures: number;
13
- /**
14
- * Maps each failure reason (an error message or assertion name) to the
15
- * [positive] number of times the request has failed because of it.
16
- *
17
- * Note that these may sum up to more than `numFailures`!
18
- * This happens when multiple assertions fail for the same request.
19
- */
20
- histogram: Histogram;
21
- }
22
- export declare type Histogram = {
23
- [reason: string]: number;
24
- };
@@ -1,67 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.getFailureKey = exports.getFailureKeys = exports.mergeFailures = exports.OneFailure = void 0;
15
- function OneFailure(histogram) {
16
- return {
17
- histogram: histogram,
18
- numFailures: 1,
19
- };
20
- }
21
- exports.OneFailure = OneFailure;
22
- function mergeFailures(to, from) {
23
- Object.keys(from).forEach(function (index) {
24
- var fromReqFailures = from[index];
25
- var toReqFailures = to[index];
26
- if (toReqFailures == null) {
27
- to[index] = {
28
- numFailures: fromReqFailures.numFailures,
29
- histogram: __assign({}, fromReqFailures.histogram),
30
- };
31
- }
32
- else {
33
- mergeRequestFailures(toReqFailures, fromReqFailures);
34
- }
35
- });
36
- }
37
- exports.mergeFailures = mergeFailures;
38
- function mergeRequestFailures(to, from) {
39
- to.numFailures += from.numFailures;
40
- mergeHistograms(to.histogram, from.histogram);
41
- }
42
- function mergeHistograms(to, from) {
43
- Object.keys(from).forEach(function (reason) {
44
- var fromCount = from[reason];
45
- var toCount = to[reason];
46
- if (toCount != null) {
47
- to[reason] = toCount + fromCount;
48
- }
49
- else {
50
- to[reason] = fromCount;
51
- }
52
- });
53
- }
54
- function getFailureKeys(failures) {
55
- var safeFailures = failures || {};
56
- return Object.keys(safeFailures).map(function (reqIndex) {
57
- return Object.keys(safeFailures[reqIndex].histogram).map(function (reason) {
58
- return getFailureKey(reqIndex, reason);
59
- });
60
- }).reduce(function (a, b) { return a.concat(b); }, []);
61
- }
62
- exports.getFailureKeys = getFailureKeys;
63
- function getFailureKey(reqIndex, reason) {
64
- return reqIndex + "," + reason;
65
- }
66
- exports.getFailureKey = getFailureKey;
67
- //# sourceMappingURL=failures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"failures.js","sourceRoot":"","sources":["../src/failures.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,SAAgB,UAAU,CAAC,SAAoB;IAC7C,OAAO;QACL,SAAS,WAAA;QACT,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC;AALD,gCAKC;AAED,SAAgB,aAAa,CAAC,EAAY,EAAE,IAAc;IACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAA,KAAK;QAC7B,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAM,aAAa,GAAG,EAAE,CAAC,KAAM,CAAC,CAAC;QAEjC,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,EAAE,CAAC,KAAM,CAAC,GAAG;gBACX,WAAW,EAAE,eAAe,CAAC,WAAW;gBACxC,SAAS,eAAO,eAAe,CAAC,SAAS,CAAE;aAC5C,CAAC;SACH;aAAM;YACL,oBAAoB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;SACtD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,sCAcC;AAED,SAAS,oBAAoB,CAC3B,EAAmB,EACnB,IAAqB;IAErB,EAAE,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC;IACnC,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,EAAa,EAAE,IAAe;IACrD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAA,MAAM;QAC9B,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAE3B,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC;SAClC;aAAM;YACL,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;SACxB;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,cAAc,CAAC,QAAmB;IAChD,IAAM,YAAY,GAAG,QAAQ,IAAI,EAAE,CAAC;IAEpC,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAA,QAAQ;QAC3C,OAAA,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAA,MAAM;YACtD,OAAA,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC;QAA/B,CAA+B,CAChC;IAFD,CAEC,CACF,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAX,CAAW,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC;AARD,wCAQC;AAED,SAAgB,aAAa,CAAC,QAAyB,EAAE,MAAc;IACrE,OAAU,QAAQ,SAAI,MAAQ,CAAC;AACjC,CAAC;AAFD,sCAEC"}
@@ -1,34 +0,0 @@
1
- /// <reference types="node" />
2
- import { IncomingHttpHeaders } from 'http';
3
- import { HttpResponseStatus, LoadmillHeaders } from '@loadmill/core/dist/request';
4
- export declare class GRPCRequest {
5
- private readonly grpcRequestArgs;
6
- private readonly onError;
7
- private readonly protoFileRootPath;
8
- url: string;
9
- expectedStatus: HttpResponseStatus;
10
- constructor(grpcRequestArgs: GRPCRequestArguments, onError: (e: any) => void, protoFileRootPath: string);
11
- ok(cb: (response: GRPCResponse, isExpectedStatus?: (request: any, status: number) => boolean) => boolean): Promise<GRPCResponse | undefined>;
12
- on(_eventName: string, _cb: Function): void;
13
- }
14
- export declare type GRPCRequestArguments = {
15
- expectedStatus: HttpResponseStatus;
16
- headers: LoadmillHeaders;
17
- message: string;
18
- timeout: number;
19
- domain: string;
20
- service: string;
21
- method: string;
22
- url: string;
23
- };
24
- declare type GRPCResponse = {
25
- status?: number;
26
- res: {
27
- statusMessage?: string;
28
- };
29
- header: LoadmillHeaders | IncomingHttpHeaders;
30
- req: {};
31
- text: string;
32
- type?: string;
33
- };
34
- export {};
@@ -1,269 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __generator = (this && this.__generator) || function (thisArg, body) {
31
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
- function verb(n) { return function (v) { return step([n, v]); }; }
34
- function step(op) {
35
- if (f) throw new TypeError("Generator is already executing.");
36
- while (_) try {
37
- 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;
38
- if (y = 0, t) op = [op[0] & 2, t.value];
39
- switch (op[0]) {
40
- case 0: case 1: t = op; break;
41
- case 4: _.label++; return { value: op[1], done: false };
42
- case 5: _.label++; y = op[1]; op = [0]; continue;
43
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
- default:
45
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
- if (t[2]) _.ops.pop();
50
- _.trys.pop(); continue;
51
- }
52
- op = body.call(thisArg, _);
53
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
- }
56
- };
57
- var __importDefault = (this && this.__importDefault) || function (mod) {
58
- return (mod && mod.__esModule) ? mod : { "default": mod };
59
- };
60
- Object.defineProperty(exports, "__esModule", { value: true });
61
- exports.GRPCRequest = void 0;
62
- var util_1 = require("util");
63
- var grpc = __importStar(require("@grpc/grpc-js"));
64
- var protoLoader = __importStar(require("@grpc/proto-loader"));
65
- var request_1 = require("@loadmill/core/dist/request");
66
- var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
67
- var lodash_1 = require("lodash");
68
- var fs_1 = __importDefault(require("fs"));
69
- var protobufjs_1 = __importDefault(require("protobufjs"));
70
- var errors_1 = require("./errors");
71
- var options = {
72
- keepCase: true,
73
- longs: String,
74
- enums: String,
75
- defaults: true,
76
- oneofs: true,
77
- };
78
- var GRPCRequest = /** @class */ (function () {
79
- function GRPCRequest(grpcRequestArgs, onError, protoFileRootPath) {
80
- Object.defineProperty(this, "grpcRequestArgs", {
81
- enumerable: true,
82
- configurable: true,
83
- writable: true,
84
- value: grpcRequestArgs
85
- });
86
- Object.defineProperty(this, "onError", {
87
- enumerable: true,
88
- configurable: true,
89
- writable: true,
90
- value: onError
91
- });
92
- Object.defineProperty(this, "protoFileRootPath", {
93
- enumerable: true,
94
- configurable: true,
95
- writable: true,
96
- value: protoFileRootPath
97
- });
98
- Object.defineProperty(this, "url", {
99
- enumerable: true,
100
- configurable: true,
101
- writable: true,
102
- value: void 0
103
- });
104
- Object.defineProperty(this, "expectedStatus", {
105
- enumerable: true,
106
- configurable: true,
107
- writable: true,
108
- value: void 0
109
- });
110
- this.expectedStatus = grpcRequestArgs.expectedStatus;
111
- this.url = grpcRequestArgs.url;
112
- }
113
- Object.defineProperty(GRPCRequest.prototype, "ok", {
114
- enumerable: false,
115
- configurable: true,
116
- writable: true,
117
- value: function (cb) {
118
- var _a;
119
- return __awaiter(this, void 0, void 0, function () {
120
- var response_1, packageDefinition, protoDescriptor, fullServicePath, Service, client, onEnd_1, msg, metadata, _i, _b, _c, key, value, messages_1, call_1, call, res, e_1, isExpectedStatus, message, e_2;
121
- var _d;
122
- var _this = this;
123
- return __generator(this, function (_e) {
124
- switch (_e.label) {
125
- case 0:
126
- _e.trys.push([0, 9, , 10]);
127
- response_1 = {
128
- status: undefined,
129
- res: {
130
- statusMessage: undefined,
131
- },
132
- header: {},
133
- req: {},
134
- text: '',
135
- };
136
- packageDefinition = protoLoader.loadSync(this.protoFileRootPath, options);
137
- protoDescriptor = grpc.loadPackageDefinition(packageDefinition);
138
- fullServicePath = _getServicePath(this.protoFileRootPath, this.grpcRequestArgs.service);
139
- Service = lodash_1.get(protoDescriptor, fullServicePath);
140
- client = new Service(this.grpcRequestArgs.domain, decideChannelCredentials(this.grpcRequestArgs));
141
- onEnd_1 = function (res) {
142
- response_1.status = grpc.status.OK;
143
- response_1.text = JSON.stringify(res);
144
- response_1.type = 'application/json';
145
- response_1.res.statusMessage = 'OK';
146
- };
147
- msg = JSON.parse(this.grpcRequestArgs.message || '{}');
148
- metadata = new grpc.Metadata();
149
- for (_i = 0, _b = Object.entries(this.grpcRequestArgs.headers); _i < _b.length; _i++) {
150
- _c = _b[_i], key = _c[0], value = _c[1];
151
- metadata.set(key, value);
152
- }
153
- _e.label = 1;
154
- case 1:
155
- _e.trys.push([1, 6, 7, 8]);
156
- if (!((_a = packageDefinition[this.grpcRequestArgs.service][this.grpcRequestArgs.method]) === null || _a === void 0 ? void 0 : _a.responseStream)) return [3 /*break*/, 3];
157
- log_1.default.debug('Request is a stream', { args: this.grpcRequestArgs });
158
- messages_1 = [];
159
- call_1 = client[this.grpcRequestArgs.method](msg, metadata, { deadline: Date.now() + this.grpcRequestArgs.timeout });
160
- log_1.default.debug('Streaming...');
161
- call_1.on('data', function (response) {
162
- log_1.default.debug('Received:', response);
163
- messages_1.push(response);
164
- });
165
- call_1.on('status', function (status) {
166
- log_1.default.debug('Stream status:', status);
167
- });
168
- call_1.on('error', function (e) {
169
- log_1.default.debug('Stream error:', e);
170
- response_1.status = e.code;
171
- response_1.res.statusMessage = e.details;
172
- });
173
- return [4 /*yield*/, new Promise(function (resolve) { return call_1.on('end', function () { return __awaiter(_this, void 0, void 0, function () {
174
- return __generator(this, function (_a) {
175
- log_1.default.debug('Stream ended');
176
- onEnd_1(messages_1);
177
- resolve();
178
- return [2 /*return*/];
179
- });
180
- }); }); })];
181
- case 2:
182
- _e.sent();
183
- return [3 /*break*/, 5];
184
- case 3:
185
- call = util_1.promisify(client[this.grpcRequestArgs.method].bind(client));
186
- return [4 /*yield*/, call(msg, metadata, { deadline: Date.now() + this.grpcRequestArgs.timeout })];
187
- case 4:
188
- res = _e.sent();
189
- onEnd_1(res);
190
- _e.label = 5;
191
- case 5: return [3 /*break*/, 8];
192
- case 6:
193
- e_1 = _e.sent();
194
- log_1.default.error('gRPC request failed', e_1);
195
- response_1.status = e_1.code;
196
- response_1.res.statusMessage = e_1.details;
197
- return [3 /*break*/, 8];
198
- case 7:
199
- client.close();
200
- return [7 /*endfinally*/];
201
- case 8:
202
- isExpectedStatus = cb(response_1, _isExpectedGRPCStatus);
203
- if (!isExpectedStatus) {
204
- message = "gRPC status " + response_1.status + " - " + response_1.res.statusMessage;
205
- this.onError(new errors_1.RequestFailuresError(message, (_d = {}, _d[message] = 1, _d)));
206
- }
207
- return [2 /*return*/, response_1];
208
- case 9:
209
- e_2 = _e.sent();
210
- log_1.default.error('gRPC request failed', e_2);
211
- this.onError(e_2);
212
- return [3 /*break*/, 10];
213
- case 10: return [2 /*return*/];
214
- }
215
- });
216
- });
217
- }
218
- });
219
- // need this because the SequenceExecutor expectes a request obj with on func prop
220
- Object.defineProperty(GRPCRequest.prototype, "on", {
221
- enumerable: false,
222
- configurable: true,
223
- writable: true,
224
- value: function (_eventName, _cb) {
225
- //do nothing
226
- }
227
- });
228
- return GRPCRequest;
229
- }());
230
- exports.GRPCRequest = GRPCRequest;
231
- var _isExpectedGRPCStatus = function (_a, status) {
232
- var expectedStatus = _a.expectedStatus, url = _a.url;
233
- if (expectedStatus === request_1.ALLOWED_RESPONSE_STATUSES.SUCCESS) {
234
- return status === grpc.status.OK;
235
- }
236
- else if (expectedStatus === request_1.ALLOWED_RESPONSE_STATUSES.ERROR) {
237
- log_1.default.debug('user asked to fail this request', url);
238
- return status !== grpc.status.OK;
239
- }
240
- else if (expectedStatus === request_1.ALLOWED_RESPONSE_STATUSES.ANY) {
241
- return true;
242
- }
243
- log_1.default.warn('Expected status is not valid, expectedStatus');
244
- return false;
245
- };
246
- var _getProtoFilePackageName = function (protoFileRootPath) {
247
- var fileContent = fs_1.default.readFileSync(protoFileRootPath, 'utf-8');
248
- var parsedProto = protobufjs_1.default.parse(fileContent, {
249
- keepCase: true,
250
- alternateCommentMode: true,
251
- });
252
- return parsedProto.package;
253
- };
254
- var _getServicePath = function (protoFileRootPath, service) {
255
- var servicePath = service;
256
- if (!_isServiceIncludesPackageName(service)) { // legacy
257
- var packageName = _getProtoFilePackageName(protoFileRootPath);
258
- servicePath = "" + (packageName ? packageName + "." : '') + service;
259
- }
260
- return servicePath;
261
- };
262
- var _isServiceIncludesPackageName = function (service) { return service.includes('.'); };
263
- var decideChannelCredentials = function (grpcRequestArgs) {
264
- if (grpcRequestArgs.url.endsWith('443')) {
265
- return grpc.credentials.createSsl();
266
- }
267
- return grpc.credentials.createInsecure();
268
- };
269
- //# sourceMappingURL=grpc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grpc.js","sourceRoot":"","sources":["../src/grpc.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { RequestSequenceResult } from './request-sequence-result';
2
- export declare const calcIterationDuration: (iterationRes: RequestSequenceResult) => number;
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.calcIterationDuration = void 0;
7
- var parameters_1 = require("@loadmill/core/dist/parameters");
8
- var findLast_1 = __importDefault(require("lodash/findLast"));
9
- var isEmpty_1 = __importDefault(require("lodash/isEmpty"));
10
- var calcIterationDuration = function (iterationRes) {
11
- var iterationStartTime = _getIterationStartTime(iterationRes);
12
- var iterationEndTime = _getIterationEndTime(iterationRes);
13
- var iterationDuration = iterationEndTime ? iterationEndTime - iterationStartTime : 0;
14
- return iterationDuration;
15
- };
16
- exports.calcIterationDuration = calcIterationDuration;
17
- var _getIterationStartTime = function (iterationRes) {
18
- var _a;
19
- var firstResolvedRequest = (_a = iterationRes.resolvedRequests) === null || _a === void 0 ? void 0 : _a.find(function (rr) { return !isEmpty_1.default(rr.postParameters); });
20
- return firstResolvedRequest ? _getRequestsStartTime(firstResolvedRequest) : 0;
21
- };
22
- var _getRequestsStartTime = function (request) {
23
- return _getReqStartOrEndTime(request, parameters_1.BUILT_IN_PARAMS.requestStartTime);
24
- };
25
- var _getIterationEndTime = function (iterationRes) {
26
- var lastResolvedRequest = findLast_1.default(iterationRes.resolvedRequests, function (rr) { return !isEmpty_1.default(rr.postParameters); });
27
- return lastResolvedRequest ? _getRequestsEndTime(lastResolvedRequest) : 0;
28
- };
29
- var _getRequestsEndTime = function (request) {
30
- return _getReqStartOrEndTime(request, parameters_1.BUILT_IN_PARAMS.responseEndTime);
31
- };
32
- var _getReqStartOrEndTime = function (request, paramName) {
33
- var _a;
34
- var param = (_a = request.postParameters) === null || _a === void 0 ? void 0 : _a.find(function (p) { return p[paramName]; });
35
- var paramVal = param === null || param === void 0 ? void 0 : param[paramName];
36
- return Number(paramVal) || 0;
37
- };
38
- //# sourceMappingURL=iteration-stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"iteration-stats.js","sourceRoot":"","sources":["../src/iteration-stats.ts"],"names":[],"mappings":";;;;;;AAAA,6DAAiE;AACjE,6DAAuC;AAEvC,2DAAqC;AAI9B,IAAM,qBAAqB,GAAG,UAAC,YAAmC;IACvE,IAAM,kBAAkB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAChE,IAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AALW,QAAA,qBAAqB,yBAKhC;AAEF,IAAM,sBAAsB,GAAG,UAAC,YAAmC;;IACjE,IAAM,oBAAoB,GAAG,MAAA,YAAY,CAAC,gBAAgB,0CAAE,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,CAAC,iBAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACpG,OAAO,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF,IAAM,qBAAqB,GAAG,UAAC,OAAwB;IACrD,OAAA,qBAAqB,CAAC,OAAO,EAAE,4BAAe,CAAC,gBAAgB,CAAC;AAAhE,CAAgE,CAAC;AAEnE,IAAM,oBAAoB,GAAG,UAAC,YAAmC;IAC/D,IAAM,mBAAmB,GAAG,kBAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,UAAA,EAAE,IAAI,OAAA,CAAC,iBAAO,CAAC,EAAE,CAAC,cAAc,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACvG,OAAO,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,IAAM,mBAAmB,GAAG,UAAC,OAAwB;IACnD,OAAA,qBAAqB,CAAC,OAAO,EAAE,4BAAe,CAAC,eAAe,CAAC;AAA/D,CAA+D,CAAC;AAElE,IAAM,qBAAqB,GAAG,UAC5B,OAAwB,EACxB,SAA2F;;IAE3F,IAAM,KAAK,GAAG,MAAA,OAAO,CAAC,cAAc,0CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,CAAC,EAAZ,CAAY,CAAC,CAAC;IAC9D,IAAM,QAAQ,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,SAAS,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC"}