@loadmill/executer 0.1.143 → 0.1.144

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 (137) hide show
  1. package/dist/request-stats.d.ts +2 -1
  2. package/dist/request-stats.js +4 -4
  3. package/dist/request-stats.js.map +1 -1
  4. package/dist/sampler.js +2 -1
  5. package/dist/sampler.js.map +1 -1
  6. package/dist/sequence.js +9 -5
  7. package/dist/sequence.js.map +1 -1
  8. package/package.json +3 -3
  9. package/package/dist/asserter.d.ts +0 -9
  10. package/package/dist/asserter.js +0 -158
  11. package/package/dist/asserter.js.map +0 -1
  12. package/package/dist/constants.d.ts +0 -7
  13. package/package/dist/constants.js +0 -13
  14. package/package/dist/constants.js.map +0 -1
  15. package/package/dist/cookies.d.ts +0 -4
  16. package/package/dist/cookies.js +0 -79
  17. package/package/dist/cookies.js.map +0 -1
  18. package/package/dist/errors.d.ts +0 -5
  19. package/package/dist/errors.js +0 -38
  20. package/package/dist/errors.js.map +0 -1
  21. package/package/dist/extraction-combiner.d.ts +0 -17
  22. package/package/dist/extraction-combiner.js +0 -182
  23. package/package/dist/extraction-combiner.js.map +0 -1
  24. package/package/dist/failures.d.ts +0 -24
  25. package/package/dist/failures.js +0 -67
  26. package/package/dist/failures.js.map +0 -1
  27. package/package/dist/grpc.d.ts +0 -34
  28. package/package/dist/grpc.js +0 -269
  29. package/package/dist/grpc.js.map +0 -1
  30. package/package/dist/iteration-stats.d.ts +0 -2
  31. package/package/dist/iteration-stats.js +0 -38
  32. package/package/dist/iteration-stats.js.map +0 -1
  33. package/package/dist/message-creators.d.ts +0 -31
  34. package/package/dist/message-creators.js +0 -90
  35. package/package/dist/message-creators.js.map +0 -1
  36. package/package/dist/mill-info.d.ts +0 -70
  37. package/package/dist/mill-info.js +0 -3
  38. package/package/dist/mill-info.js.map +0 -1
  39. package/package/dist/mill-version.d.ts +0 -6
  40. package/package/dist/mill-version.js +0 -10
  41. package/package/dist/mill-version.js.map +0 -1
  42. package/package/dist/parameter-pools.d.ts +0 -3
  43. package/package/dist/parameter-pools.js +0 -69
  44. package/package/dist/parameter-pools.js.map +0 -1
  45. package/package/dist/performance.d.ts +0 -1
  46. package/package/dist/performance.js +0 -10
  47. package/package/dist/performance.js.map +0 -1
  48. package/package/dist/post-script/ast-walker/index.d.ts +0 -18
  49. package/package/dist/post-script/ast-walker/index.js +0 -215
  50. package/package/dist/post-script/ast-walker/index.js.map +0 -1
  51. package/package/dist/post-script/ast-walker/type-guard.d.ts +0 -11
  52. package/package/dist/post-script/ast-walker/type-guard.js +0 -56
  53. package/package/dist/post-script/ast-walker/type-guard.js.map +0 -1
  54. package/package/dist/post-script/ast-walker/types.d.ts +0 -24
  55. package/package/dist/post-script/ast-walker/types.js +0 -25
  56. package/package/dist/post-script/ast-walker/types.js.map +0 -1
  57. package/package/dist/post-script/console-log.d.ts +0 -7
  58. package/package/dist/post-script/console-log.js +0 -31
  59. package/package/dist/post-script/console-log.js.map +0 -1
  60. package/package/dist/post-script/constants.d.ts +0 -4
  61. package/package/dist/post-script/constants.js +0 -9
  62. package/package/dist/post-script/constants.js.map +0 -1
  63. package/package/dist/post-script/parser/acorn-js-parser.d.ts +0 -5
  64. package/package/dist/post-script/parser/acorn-js-parser.js +0 -20
  65. package/package/dist/post-script/parser/acorn-js-parser.js.map +0 -1
  66. package/package/dist/post-script/parser/js-parser.d.ts +0 -16
  67. package/package/dist/post-script/parser/js-parser.js +0 -3
  68. package/package/dist/post-script/parser/js-parser.js.map +0 -1
  69. package/package/dist/post-script/parser/parser.d.ts +0 -6
  70. package/package/dist/post-script/parser/parser.js +0 -3
  71. package/package/dist/post-script/parser/parser.js.map +0 -1
  72. package/package/dist/post-script/post-script-executor.d.ts +0 -24
  73. package/package/dist/post-script/post-script-executor.js +0 -125
  74. package/package/dist/post-script/post-script-executor.js.map +0 -1
  75. package/package/dist/post-script/virtual-machine/virtual-machine.d.ts +0 -13
  76. package/package/dist/post-script/virtual-machine/virtual-machine.js +0 -3
  77. package/package/dist/post-script/virtual-machine/virtual-machine.js.map +0 -1
  78. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.d.ts +0 -12
  79. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.js +0 -81
  80. package/package/dist/post-script/virtual-machine/vm2-virtual-machine.js.map +0 -1
  81. package/package/dist/post-sequence.d.ts +0 -2
  82. package/package/dist/post-sequence.js +0 -192
  83. package/package/dist/post-sequence.js.map +0 -1
  84. package/package/dist/redact-data.d.ts +0 -2
  85. package/package/dist/redact-data.js +0 -60
  86. package/package/dist/redact-data.js.map +0 -1
  87. package/package/dist/report-types.d.ts +0 -102
  88. package/package/dist/report-types.js +0 -11
  89. package/package/dist/report-types.js.map +0 -1
  90. package/package/dist/request-sequence-result.d.ts +0 -37
  91. package/package/dist/request-sequence-result.js +0 -19
  92. package/package/dist/request-sequence-result.js.map +0 -1
  93. package/package/dist/request-stats.d.ts +0 -13
  94. package/package/dist/request-stats.js +0 -14
  95. package/package/dist/request-stats.js.map +0 -1
  96. package/package/dist/res-keeper.d.ts +0 -16
  97. package/package/dist/res-keeper.js +0 -104
  98. package/package/dist/res-keeper.js.map +0 -1
  99. package/package/dist/sampler.d.ts +0 -29
  100. package/package/dist/sampler.js +0 -276
  101. package/package/dist/sampler.js.map +0 -1
  102. package/package/dist/sequence-executor-like.d.ts +0 -23
  103. package/package/dist/sequence-executor-like.js +0 -3
  104. package/package/dist/sequence-executor-like.js.map +0 -1
  105. package/package/dist/sequence.d.ts +0 -16
  106. package/package/dist/sequence.js +0 -1738
  107. package/package/dist/sequence.js.map +0 -1
  108. package/package/dist/single-runner.d.ts +0 -29
  109. package/package/dist/single-runner.js +0 -147
  110. package/package/dist/single-runner.js.map +0 -1
  111. package/package/dist/step-handlers/code-step-handler.d.ts +0 -12
  112. package/package/dist/step-handlers/code-step-handler.js +0 -93
  113. package/package/dist/step-handlers/code-step-handler.js.map +0 -1
  114. package/package/dist/step-handlers/extract-step-handler.d.ts +0 -12
  115. package/package/dist/step-handlers/extract-step-handler.js +0 -101
  116. package/package/dist/step-handlers/extract-step-handler.js.map +0 -1
  117. package/package/dist/step-handlers/request-step-handler.d.ts +0 -13
  118. package/package/dist/step-handlers/request-step-handler.js +0 -94
  119. package/package/dist/step-handlers/request-step-handler.js.map +0 -1
  120. package/package/dist/step-handlers/step-handler.d.ts +0 -11
  121. package/package/dist/step-handlers/step-handler.js +0 -3
  122. package/package/dist/step-handlers/step-handler.js.map +0 -1
  123. package/package/dist/test-run-event-emitter.d.ts +0 -15
  124. package/package/dist/test-run-event-emitter.js +0 -36
  125. package/package/dist/test-run-event-emitter.js.map +0 -1
  126. package/package/dist/types/grpc.d.ts +0 -14
  127. package/package/dist/types/grpc.js +0 -3
  128. package/package/dist/types/grpc.js.map +0 -1
  129. package/package/dist/utils.d.ts +0 -3
  130. package/package/dist/utils.js +0 -32
  131. package/package/dist/utils.js.map +0 -1
  132. package/package/dist/work.d.ts +0 -15
  133. package/package/dist/work.js +0 -3
  134. package/package/dist/work.js.map +0 -1
  135. package/package/dist/ws.d.ts +0 -71
  136. package/package/dist/ws.js +0 -474
  137. package/package/dist/ws.js.map +0 -1
@@ -1,38 +0,0 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.RequestFailuresError = void 0;
19
- var RequestFailuresError = /** @class */ (function (_super) {
20
- __extends(RequestFailuresError, _super);
21
- function RequestFailuresError(message, histogram) {
22
- var _a;
23
- if (histogram === void 0) { histogram = (_a = {}, _a[message] = 1, _a); }
24
- var _this = _super.call(this, message) || this;
25
- Object.defineProperty(_this, "histogram", {
26
- enumerable: true,
27
- configurable: true,
28
- writable: true,
29
- value: histogram
30
- });
31
- // Workaround suggested in: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work
32
- Object.setPrototypeOf(_this, RequestFailuresError.prototype);
33
- return _this;
34
- }
35
- return RequestFailuresError;
36
- }(Error));
37
- exports.RequestFailuresError = RequestFailuresError;
38
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAEA;IAA0C,wCAAK;IAC7C,8BAAY,OAAe,EAAS,SAAuC;;QAAvC,0BAAA,EAAA,sBAAyB,GAAC,OAAO,IAAG,CAAC,KAAE;QAA3E,YACE,kBAAM,OAAO,CAAC,SAIf;;;;;mBALmC;;QAGlC,wKAAwK;QACxK,MAAM,CAAC,cAAc,CAAC,KAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;;IAC9D,CAAC;IACH,2BAAC;AAAD,CAAC,AAPD,CAA0C,KAAK,GAO9C;AAPY,oDAAoB"}
@@ -1,17 +0,0 @@
1
- import { HeaderExtractor, CheerioExtractor, JsonPathExtractor, ExpressionExtractor, XPathExtractor } from '@loadmill/core/dist/parameters/extractors';
2
- import { Parameters } from '@loadmill/core/dist/parameters';
3
- import { Extraction } from '@loadmill/core/dist/extractions';
4
- import { WSExtractionData } from '@loadmill/core/dist/parameters/extractors/ws-extractor';
5
- export declare class ExtractionCombiner {
6
- private contextParameters;
7
- private res;
8
- private wsExtractionData;
9
- headerExtractor: HeaderExtractor;
10
- cheerioExtractor: CheerioExtractor;
11
- xmlExtractor: XPathExtractor;
12
- jsonPathExtractor: JsonPathExtractor;
13
- ednPathExtractor: JsonPathExtractor;
14
- expressionExtractor: ExpressionExtractor;
15
- constructor(contextParameters: Parameters, res: any, wsExtractionData: WSExtractionData);
16
- combine(extraction: Extraction): Promise<() => string | Promise<string | undefined> | undefined>;
17
- }
@@ -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