@loadmill/executer 0.1.93 → 0.1.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/asserter.d.ts +9 -0
- package/dist/asserter.js +141 -0
- package/dist/asserter.js.map +1 -0
- package/dist/cookies.d.ts +4 -0
- package/dist/cookies.js +79 -0
- package/dist/cookies.js.map +1 -0
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +38 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraction-combiner.d.ts +17 -0
- package/dist/extraction-combiner.js +182 -0
- package/dist/extraction-combiner.js.map +1 -0
- package/dist/failures.d.ts +24 -0
- package/dist/failures.js +67 -0
- package/dist/failures.js.map +1 -0
- package/dist/iteration-stats.d.ts +2 -0
- package/dist/iteration-stats.js +38 -0
- package/dist/iteration-stats.js.map +1 -0
- package/dist/message-creators.d.ts +31 -0
- package/dist/message-creators.js +90 -0
- package/dist/message-creators.js.map +1 -0
- package/dist/mill-info.d.ts +66 -0
- package/dist/mill-info.js +3 -0
- package/dist/mill-info.js.map +1 -0
- package/dist/mill-version.d.ts +6 -0
- package/dist/mill-version.js +10 -0
- package/dist/mill-version.js.map +1 -0
- package/dist/parameter-pools.d.ts +3 -0
- package/dist/parameter-pools.js +69 -0
- package/dist/parameter-pools.js.map +1 -0
- package/dist/post-script/ast-walker/index.d.ts +18 -0
- package/dist/post-script/ast-walker/index.js +215 -0
- package/dist/post-script/ast-walker/index.js.map +1 -0
- package/dist/post-script/ast-walker/type-guard.d.ts +11 -0
- package/dist/post-script/ast-walker/type-guard.js +56 -0
- package/dist/post-script/ast-walker/type-guard.js.map +1 -0
- package/dist/post-script/ast-walker/types.d.ts +24 -0
- package/dist/post-script/ast-walker/types.js +25 -0
- package/dist/post-script/ast-walker/types.js.map +1 -0
- package/dist/post-script/console-log.d.ts +7 -0
- package/dist/post-script/console-log.js +31 -0
- package/dist/post-script/console-log.js.map +1 -0
- package/dist/post-script/parser/acorn-js-parser.d.ts +5 -0
- package/dist/post-script/parser/acorn-js-parser.js +20 -0
- package/dist/post-script/parser/acorn-js-parser.js.map +1 -0
- package/dist/post-script/parser/js-parser.d.ts +16 -0
- package/dist/post-script/parser/js-parser.js +3 -0
- package/dist/post-script/parser/js-parser.js.map +1 -0
- package/dist/post-script/parser/parser.d.ts +6 -0
- package/dist/post-script/parser/parser.js +3 -0
- package/dist/post-script/parser/parser.js.map +1 -0
- package/dist/post-script/post-script-executor.d.ts +24 -0
- package/dist/post-script/post-script-executor.js +125 -0
- package/dist/post-script/post-script-executor.js.map +1 -0
- package/dist/post-script/virtual-machine/virtual-machine.d.ts +13 -0
- package/dist/post-script/virtual-machine/virtual-machine.js +3 -0
- package/dist/post-script/virtual-machine/virtual-machine.js.map +1 -0
- package/dist/post-script/virtual-machine/vm2-virtual-machine.d.ts +12 -0
- package/dist/post-script/virtual-machine/vm2-virtual-machine.js +81 -0
- package/dist/post-script/virtual-machine/vm2-virtual-machine.js.map +1 -0
- package/dist/post-sequence.d.ts +2 -0
- package/dist/post-sequence.js +192 -0
- package/dist/post-sequence.js.map +1 -0
- package/dist/redact-data.d.ts +2 -0
- package/dist/redact-data.js +71 -0
- package/dist/redact-data.js.map +1 -0
- package/dist/report-types.d.ts +102 -0
- package/dist/report-types.js +11 -0
- package/dist/report-types.js.map +1 -0
- package/dist/request-sequence-result.d.ts +44 -0
- package/dist/request-sequence-result.js +19 -0
- package/dist/request-sequence-result.js.map +1 -0
- package/dist/request-stats.d.ts +13 -0
- package/dist/request-stats.js +14 -0
- package/dist/request-stats.js.map +1 -0
- package/dist/res-keeper.d.ts +16 -0
- package/dist/res-keeper.js +104 -0
- package/dist/res-keeper.js.map +1 -0
- package/dist/sampler.d.ts +29 -0
- package/dist/sampler.js +276 -0
- package/dist/sampler.js.map +1 -0
- package/dist/sequence.d.ts +25 -0
- package/dist/sequence.js +1502 -0
- package/dist/sequence.js.map +1 -0
- package/dist/single-runner.d.ts +22 -0
- package/dist/single-runner.js +128 -0
- package/dist/single-runner.js.map +1 -0
- package/dist/test-run-event-emitter.d.ts +11 -0
- package/dist/test-run-event-emitter.js +36 -0
- package/dist/test-run-event-emitter.js.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.js +29 -0
- package/dist/utils.js.map +1 -0
- package/dist/work.d.ts +15 -0
- package/dist/work.js +3 -0
- package/dist/work.js.map +1 -0
- package/dist/ws.d.ts +71 -0
- package/dist/ws.js +474 -0
- package/dist/ws.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Statements = exports.Patterns = exports.Expressions = exports.Declarations = void 0;
|
|
4
|
+
var Declarations;
|
|
5
|
+
(function (Declarations) {
|
|
6
|
+
Declarations["FunctionDeclaration"] = "FunctionDeclaration";
|
|
7
|
+
Declarations["VariableDeclaration"] = "VariableDeclaration";
|
|
8
|
+
})(Declarations = exports.Declarations || (exports.Declarations = {}));
|
|
9
|
+
var Expressions;
|
|
10
|
+
(function (Expressions) {
|
|
11
|
+
Expressions["AssignmentExpression"] = "AssignmentExpression";
|
|
12
|
+
Expressions["SequenceExpression"] = "SequenceExpression";
|
|
13
|
+
})(Expressions = exports.Expressions || (exports.Expressions = {}));
|
|
14
|
+
var Patterns;
|
|
15
|
+
(function (Patterns) {
|
|
16
|
+
Patterns["ObjectPattern"] = "ObjectPattern";
|
|
17
|
+
Patterns["ArrayPattern"] = "ArrayPattern";
|
|
18
|
+
Patterns["RestElement"] = "RestElement";
|
|
19
|
+
Patterns["Identifier"] = "Identifier";
|
|
20
|
+
})(Patterns = exports.Patterns || (exports.Patterns = {}));
|
|
21
|
+
var Statements;
|
|
22
|
+
(function (Statements) {
|
|
23
|
+
Statements["ExpressionStatement"] = "ExpressionStatement";
|
|
24
|
+
})(Statements = exports.Statements || (exports.Statements = {}));
|
|
25
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/post-script/ast-walker/types.ts"],"names":[],"mappings":";;;AAeA,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2DAA2C,CAAA;IAC3C,2DAA2C,CAAA;AAC7C,CAAC,EAHW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAGvB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4DAA6C,CAAA;IAC7C,wDAAyC,CAAA;AAC3C,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2CAA+B,CAAA;IAC/B,yCAA6B,CAAA;IAC7B,uCAA2B,CAAA;IAC3B,qCAAyB,CAAA;AAC3B,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB;AAED,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,yDAA2C,CAAA;AAC7C,CAAC,EAFW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAErB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.myConsole = exports.CONSOLE_LOG_LIMIT = exports.LINE_LIMIT = void 0;
|
|
4
|
+
exports.LINE_LIMIT = 2500;
|
|
5
|
+
exports.CONSOLE_LOG_LIMIT = 100;
|
|
6
|
+
var isPassedTheLimit = function (line) { return line.length > exports.LINE_LIMIT; };
|
|
7
|
+
exports.myConsole = {
|
|
8
|
+
stdout: [],
|
|
9
|
+
log: function () {
|
|
10
|
+
var args = [];
|
|
11
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
12
|
+
args[_i] = arguments[_i];
|
|
13
|
+
}
|
|
14
|
+
if (exports.myConsole.stdout.length >= exports.CONSOLE_LOG_LIMIT) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
var line = '';
|
|
18
|
+
for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {
|
|
19
|
+
var item = args_1[_a];
|
|
20
|
+
line += typeof item === 'object' ? JSON.stringify(item, undefined, 2) : item;
|
|
21
|
+
if (isPassedTheLimit(line)) {
|
|
22
|
+
line = line.substring(0, exports.LINE_LIMIT) + '\n...';
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
line += ' ';
|
|
26
|
+
}
|
|
27
|
+
!!line && exports.myConsole.stdout.push(line);
|
|
28
|
+
},
|
|
29
|
+
setStdout: function (newStdout) { return exports.myConsole.stdout = newStdout; },
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=console-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-log.js","sourceRoot":"","sources":["../../src/post-script/console-log.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,IAAI,CAAC;AAClB,QAAA,iBAAiB,GAAG,GAAG,CAAC;AAErC,IAAM,gBAAgB,GAAG,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,MAAM,GAAG,kBAAU,EAAxB,CAAwB,CAAC;AAE/C,QAAA,SAAS,GAAG;IACvB,MAAM,EAAE,EAAc;IACtB,GAAG,EAAE;QAAC,cAAO;aAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;YAAP,yBAAO;;QACX,IAAI,iBAAS,CAAC,MAAM,CAAC,MAAM,IAAI,yBAAiB,EAAE;YAChD,OAAO;SACR;QACD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAmB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAApB,IAAM,IAAI,aAAA;YACb,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;gBAC1B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAU,CAAC,GAAG,OAAO,CAAC;gBAC/C,MAAM;aACP;YACD,IAAI,IAAI,GAAG,CAAC;SACb;QACD,CAAC,CAAC,IAAI,IAAI,iBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,SAAS,EAAE,UAAC,SAAS,IAAK,OAAA,iBAAS,CAAC,MAAM,GAAG,SAAS,EAA5B,CAA4B;CACvD,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AcornJSParser = void 0;
|
|
4
|
+
var acorn_1 = require("acorn");
|
|
5
|
+
var AcornJSParser = /** @class */ (function () {
|
|
6
|
+
function AcornJSParser() {
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(AcornJSParser.prototype, "parse", {
|
|
9
|
+
enumerable: false,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: function (script, options) {
|
|
13
|
+
if (options === void 0) { options = { ecmaVersion: 2020 }; }
|
|
14
|
+
return acorn_1.parse(script, options);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return AcornJSParser;
|
|
18
|
+
}());
|
|
19
|
+
exports.AcornJSParser = AcornJSParser;
|
|
20
|
+
//# sourceMappingURL=acorn-js-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorn-js-parser.js","sourceRoot":"","sources":["../../../src/post-script/parser/acorn-js-parser.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AAGvC;IAAA;IAIA,CAAC;;;;;eAHC,UAAM,MAAc,EAAE,OAAwC;YAAxC,wBAAA,EAAA,YAAqB,WAAW,EAAE,IAAI,EAAE;YAC5D,OAAO,aAAK,CAAC,MAAM,EAAE,OAAO,CAAW,CAAC;QAC1C,CAAC;;IACH,oBAAC;AAAD,CAAC,AAJD,IAIC;AAJY,sCAAa"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Node, Program } from 'estree';
|
|
2
|
+
import { Parser } from './parser';
|
|
3
|
+
interface JSParser extends Parser {
|
|
4
|
+
parse(script: string, options?: JSParserOptions): ESTree;
|
|
5
|
+
}
|
|
6
|
+
declare type ExtendNode<T> = {
|
|
7
|
+
[K in keyof T]: T[K] extends object ? ExtendNode<T[K]> : T[K];
|
|
8
|
+
} & (T extends Node ? {
|
|
9
|
+
start: number;
|
|
10
|
+
end: number;
|
|
11
|
+
} : {});
|
|
12
|
+
declare type ESTree = ExtendNode<Program>;
|
|
13
|
+
declare type JSParserOptions = {
|
|
14
|
+
ecmaVersion: number | string;
|
|
15
|
+
};
|
|
16
|
+
export { ESTree, JSParser, JSParserOptions, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-parser.js","sourceRoot":"","sources":["../../../src/post-script/parser/js-parser.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/post-script/parser/parser.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ParseJson } from '@loadmill/universal/dist/typescript-utils';
|
|
2
|
+
import { SequenceExecutorParameters } from '@loadmill/core/dist/parameters';
|
|
3
|
+
import { ParameterFunctionOperations } from '@loadmill/core/dist/parameters/parameter-functions/parameter-functions';
|
|
4
|
+
export declare class PostScriptRunner {
|
|
5
|
+
run: (outerStaticContext?: OuterStaticContext, dynamicContext?: SequenceExecutorParameters, userCode?: string, responseBody?: ParseJson) => {
|
|
6
|
+
result: SequenceExecutorParameters;
|
|
7
|
+
};
|
|
8
|
+
private wrapUserCode;
|
|
9
|
+
/**
|
|
10
|
+
* If the response JSON is an array, we need to unproxify it
|
|
11
|
+
* https://github.com/patriksimek/vm2/issues/437
|
|
12
|
+
*/
|
|
13
|
+
private unproxifyResponseBody;
|
|
14
|
+
validateCircularDependency: (obj: SequenceExecutorParameters) => void;
|
|
15
|
+
private removeAssertModule;
|
|
16
|
+
private unproxify;
|
|
17
|
+
}
|
|
18
|
+
declare type OuterStaticContext = {
|
|
19
|
+
staticContext: StaticContext;
|
|
20
|
+
};
|
|
21
|
+
declare type StaticContext = {
|
|
22
|
+
__: ParameterFunctionOperations;
|
|
23
|
+
};
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
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
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
14
|
+
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
15
|
+
to[j] = from[i];
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.PostScriptRunner = void 0;
|
|
23
|
+
var assert_1 = require("assert");
|
|
24
|
+
var cloneDeep_1 = __importDefault(require("lodash/cloneDeep"));
|
|
25
|
+
var ast_walker_1 = require("./ast-walker");
|
|
26
|
+
var vm2_virtual_machine_1 = require("./virtual-machine/vm2-virtual-machine");
|
|
27
|
+
var console_log_1 = require("./console-log");
|
|
28
|
+
var PostScriptRunner = /** @class */ (function () {
|
|
29
|
+
function PostScriptRunner() {
|
|
30
|
+
var _this = this;
|
|
31
|
+
Object.defineProperty(this, "run", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
configurable: true,
|
|
34
|
+
writable: true,
|
|
35
|
+
value: function (outerStaticContext, dynamicContext, userCode, responseBody) {
|
|
36
|
+
if (outerStaticContext === void 0) { outerStaticContext = { staticContext: { __: {} } }; }
|
|
37
|
+
if (dynamicContext === void 0) { dynamicContext = {}; }
|
|
38
|
+
if (userCode === void 0) { userCode = ''; }
|
|
39
|
+
if (responseBody === void 0) { responseBody = {}; }
|
|
40
|
+
var newVariables = new ast_walker_1.ASTWalker(userCode).detectDeclarations(Object.keys(outerStaticContext.staticContext));
|
|
41
|
+
var wrappedUserCode = _this.wrapUserCode(dynamicContext, userCode, newVariables);
|
|
42
|
+
var vm = new vm2_virtual_machine_1.VM2VirtualMachine();
|
|
43
|
+
vm.create({
|
|
44
|
+
globalObject: __assign(__assign({ assert: assert_1.strict }, dynamicContext), { console: console_log_1.myConsole, $: responseBody }),
|
|
45
|
+
staticObject: outerStaticContext,
|
|
46
|
+
});
|
|
47
|
+
var modifiedDynamicContext = vm.run(wrappedUserCode);
|
|
48
|
+
_this.validateCircularDependency(modifiedDynamicContext);
|
|
49
|
+
_this.removeAssertModule(modifiedDynamicContext);
|
|
50
|
+
return { result: _this.unproxify(modifiedDynamicContext) };
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(this, "wrapUserCode", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
value: function (dynamicContext, userCode, newVariables) {
|
|
58
|
+
if (dynamicContext === void 0) { dynamicContext = {}; }
|
|
59
|
+
if (userCode === void 0) { userCode = ''; }
|
|
60
|
+
if (newVariables === void 0) { newVariables = []; }
|
|
61
|
+
var prefix = "\n Buffer = {};\n global = { assert: global.assert, console: global.console };\n $ = " + _this.unproxifyResponseBody() + ";\n ";
|
|
62
|
+
var suffix = "\n exports = {\n " + __spreadArray(__spreadArray([], Object.keys(dynamicContext)), newVariables).join() + "\n };\n ";
|
|
63
|
+
return prefix + userCode + suffix;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* If the response JSON is an array, we need to unproxify it
|
|
68
|
+
* https://github.com/patriksimek/vm2/issues/437
|
|
69
|
+
*/
|
|
70
|
+
Object.defineProperty(this, "unproxifyResponseBody", {
|
|
71
|
+
enumerable: true,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: function () { return 'JSON.parse(JSON.stringify($))'; }
|
|
75
|
+
});
|
|
76
|
+
Object.defineProperty(this, "validateCircularDependency", {
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true,
|
|
79
|
+
writable: true,
|
|
80
|
+
value: function (obj) {
|
|
81
|
+
function circularError(propName) {
|
|
82
|
+
return new TypeError("Cyclic object value. Circular reference in property " + propName);
|
|
83
|
+
}
|
|
84
|
+
findCircular(obj);
|
|
85
|
+
function findCircular(obj, _refs) {
|
|
86
|
+
if (_refs === void 0) { _refs = new WeakSet(); }
|
|
87
|
+
if (typeof obj === 'object' && obj !== null) {
|
|
88
|
+
_refs.add(obj);
|
|
89
|
+
for (var key in obj) {
|
|
90
|
+
if (_refs.has(obj[key])) {
|
|
91
|
+
throw circularError(key);
|
|
92
|
+
}
|
|
93
|
+
findCircular(obj[key], _refs);
|
|
94
|
+
}
|
|
95
|
+
_refs.delete(obj);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
Object.defineProperty(PostScriptRunner.prototype, "removeAssertModule", {
|
|
102
|
+
enumerable: false,
|
|
103
|
+
configurable: true,
|
|
104
|
+
writable: true,
|
|
105
|
+
value: function (context) {
|
|
106
|
+
Object.keys(context).forEach(function (key) {
|
|
107
|
+
var _a, _b;
|
|
108
|
+
if (((_b = (_a = context[key]) === null || _a === void 0 ? void 0 : _a.assert) === null || _b === void 0 ? void 0 : _b.name) === 'strict') {
|
|
109
|
+
context[key] = {};
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
Object.defineProperty(PostScriptRunner.prototype, "unproxify", {
|
|
115
|
+
enumerable: false,
|
|
116
|
+
configurable: true,
|
|
117
|
+
writable: true,
|
|
118
|
+
value: function (proxy) {
|
|
119
|
+
return cloneDeep_1.default(proxy);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return PostScriptRunner;
|
|
123
|
+
}());
|
|
124
|
+
exports.PostScriptRunner = PostScriptRunner;
|
|
125
|
+
//# sourceMappingURL=post-script-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-script-executor.js","sourceRoot":"","sources":["../../src/post-script/post-script-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface VirtualMachine {
|
|
2
|
+
engine: Engine;
|
|
3
|
+
create(options: VirtualMachineOptions): Engine;
|
|
4
|
+
run(code: string): object;
|
|
5
|
+
}
|
|
6
|
+
export interface VirtualMachineOptions {
|
|
7
|
+
globalObject?: object;
|
|
8
|
+
staticObject?: object;
|
|
9
|
+
timeout?: number;
|
|
10
|
+
memoryLimit?: number;
|
|
11
|
+
async?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare type Engine = any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-machine.js","sourceRoot":"","sources":["../../../src/post-script/virtual-machine/virtual-machine.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VM } from 'vm2';
|
|
2
|
+
import { SequenceExecutorParameters } from '../../../../core/dist/parameters';
|
|
3
|
+
import { Engine, VirtualMachine, VirtualMachineOptions } from './virtual-machine';
|
|
4
|
+
export declare class VM2VirtualMachine implements VirtualMachine {
|
|
5
|
+
engine: VM;
|
|
6
|
+
private DEFAULT_TIMOUT_MS;
|
|
7
|
+
create(options: VirtualMachineOptions): Engine;
|
|
8
|
+
makeStatic(obj?: object): void;
|
|
9
|
+
deepFreeze: (obj: object) => any;
|
|
10
|
+
setGlobals: (globalObject?: SequenceExecutorParameters) => void;
|
|
11
|
+
run(code: string): SequenceExecutorParameters;
|
|
12
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VM2VirtualMachine = void 0;
|
|
4
|
+
var vm2_1 = require("vm2");
|
|
5
|
+
var VM2VirtualMachine = /** @class */ (function () {
|
|
6
|
+
function VM2VirtualMachine() {
|
|
7
|
+
var _this = this;
|
|
8
|
+
Object.defineProperty(this, "engine", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
configurable: true,
|
|
11
|
+
writable: true,
|
|
12
|
+
value: void 0
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(this, "DEFAULT_TIMOUT_MS", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
configurable: true,
|
|
17
|
+
writable: true,
|
|
18
|
+
value: Number(process.env.POSTSCRIPT_TIMEOUT_MS) || 1000
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(this, "deepFreeze", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value: function (obj) {
|
|
25
|
+
for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {
|
|
26
|
+
var key = _a[_i];
|
|
27
|
+
if (typeof obj[key] === 'object' && obj[key] !== null) {
|
|
28
|
+
_this.engine.freeze(obj[key], key); // freeze me
|
|
29
|
+
_this.deepFreeze(obj[key]); // freeze my childrens
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return _this.engine.freeze(obj); // freeze root
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(this, "setGlobals", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: function (globalObject) {
|
|
40
|
+
if (globalObject === void 0) { globalObject = {}; }
|
|
41
|
+
_this.engine.setGlobals(globalObject);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
Object.defineProperty(VM2VirtualMachine.prototype, "create", {
|
|
46
|
+
enumerable: false,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
value: function (options) {
|
|
50
|
+
var timeout = options.timeout, globalObject = options.globalObject, async = options.async, staticObject = options.staticObject;
|
|
51
|
+
this.engine = new vm2_1.VM({
|
|
52
|
+
timeout: timeout || this.DEFAULT_TIMOUT_MS,
|
|
53
|
+
fixAsync: !async,
|
|
54
|
+
eval: false,
|
|
55
|
+
wasm: false,
|
|
56
|
+
});
|
|
57
|
+
this.makeStatic(staticObject);
|
|
58
|
+
this.setGlobals(globalObject);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(VM2VirtualMachine.prototype, "makeStatic", {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
configurable: true,
|
|
64
|
+
writable: true,
|
|
65
|
+
value: function (obj) {
|
|
66
|
+
if (obj === void 0) { obj = {}; }
|
|
67
|
+
this.deepFreeze(obj);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
Object.defineProperty(VM2VirtualMachine.prototype, "run", {
|
|
71
|
+
enumerable: false,
|
|
72
|
+
configurable: true,
|
|
73
|
+
writable: true,
|
|
74
|
+
value: function (code) {
|
|
75
|
+
return this.engine.run(code);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
return VM2VirtualMachine;
|
|
79
|
+
}());
|
|
80
|
+
exports.VM2VirtualMachine = VM2VirtualMachine;
|
|
81
|
+
//# sourceMappingURL=vm2-virtual-machine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vm2-virtual-machine.js","sourceRoot":"","sources":["../../../src/post-script/virtual-machine/vm2-virtual-machine.ts"],"names":[],"mappings":";;;AAAA,2BAAyB;AAKzB;IAAA;QAAA,iBAuCC;QAtCC;;;;;WAAkB;QAClB;;;;mBAA4B,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI;WAAC;QAoB9E;;;;mBAAa,UAAC,GAAW;gBACvB,KAAkB,UAAgB,EAAhB,KAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAhB,cAAgB,EAAhB,IAAgB,EAAE;oBAA/B,IAAM,GAAG,SAAA;oBACZ,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;wBACrD,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;wBAC/C,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB;qBAClD;iBACF;gBACD,OAAO,KAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;YAChD,CAAC;WAAC;QAEF;;;;mBAAa,UAAC,YAA6C;gBAA7C,6BAAA,EAAA,iBAA6C;gBACzD,KAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACvC,CAAC;WAAC;IAKJ,CAAC;;;;;eAnCC,UAAO,OAA8B;YAC3B,IAAA,OAAO,GAAwC,OAAO,QAA/C,EAAE,YAAY,GAA0B,OAAO,aAAjC,EAAE,KAAK,GAAmB,OAAO,MAA1B,EAAE,YAAY,GAAK,OAAO,aAAZ,CAAa;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,QAAE,CAAC;gBACnB,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB;gBAC1C,QAAQ,EAAE,CAAC,KAAK;gBAChB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;aACZ,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAE9B,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;;;;;;eAED,UAAW,GAAgB;YAAhB,oBAAA,EAAA,QAAgB;YACzB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;;;;;;eAgBD,UAAI,IAAY;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;;IACH,wBAAC;AAAD,CAAC,AAvCD,IAuCC;AAvCY,8CAAiB"}
|
|
@@ -0,0 +1,192 @@
|
|
|
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.publishMetrics = void 0;
|
|
43
|
+
var client_firehose_1 = require("@aws-sdk/client-firehose");
|
|
44
|
+
var client_cognito_identity_1 = require("@aws-sdk/client-cognito-identity");
|
|
45
|
+
var isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
46
|
+
var v4_1 = __importDefault(require("uuid/v4"));
|
|
47
|
+
var log_1 = __importDefault(require("@loadmill/universal/dist/log"));
|
|
48
|
+
var parameters_1 = require("@loadmill/core/dist/parameters");
|
|
49
|
+
var parameters_2 = require("@loadmill/core/dist/parameters");
|
|
50
|
+
var ONE_HOUR = 1000 * 60 * 60;
|
|
51
|
+
var FIREHOSE_API_VERSION = '2015-08-04'; //todo chek if need
|
|
52
|
+
var REGION = 'us-east-1';
|
|
53
|
+
var STREAM_NAME = process.env.AGENTS_PARAMS_METRICS_S3_BUCKET || 'agents-parameters-metrics';
|
|
54
|
+
var IdentityPoolId = 'us-east-1:79372411-2664-431b-aa0b-aad9f938f6e9';
|
|
55
|
+
var cognito = new client_cognito_identity_1.CognitoIdentity({ region: REGION });
|
|
56
|
+
var firehoseClient;
|
|
57
|
+
var lastFirehoseClientTimeCreation;
|
|
58
|
+
var clientIsOlderThanOneHour = function () {
|
|
59
|
+
return lastFirehoseClientTimeCreation &&
|
|
60
|
+
Date.now() - lastFirehoseClientTimeCreation > ONE_HOUR;
|
|
61
|
+
};
|
|
62
|
+
function createClient() {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
64
|
+
var identity, credentialResponse;
|
|
65
|
+
return __generator(this, function (_a) {
|
|
66
|
+
switch (_a.label) {
|
|
67
|
+
case 0:
|
|
68
|
+
log_1.default.debug('creating FirehoseClient');
|
|
69
|
+
return [4 /*yield*/, cognito.getId({ IdentityPoolId: IdentityPoolId })];
|
|
70
|
+
case 1:
|
|
71
|
+
identity = _a.sent();
|
|
72
|
+
return [4 /*yield*/, cognito.getCredentialsForIdentity({ IdentityId: identity.IdentityId })];
|
|
73
|
+
case 2:
|
|
74
|
+
credentialResponse = _a.sent();
|
|
75
|
+
firehoseClient = new client_firehose_1.FirehoseClient({
|
|
76
|
+
region: REGION,
|
|
77
|
+
apiVersion: FIREHOSE_API_VERSION,
|
|
78
|
+
credentials: {
|
|
79
|
+
accessKeyId: credentialResponse.Credentials.AccessKeyId,
|
|
80
|
+
secretAccessKey: credentialResponse.Credentials.SecretKey,
|
|
81
|
+
sessionToken: credentialResponse.Credentials.SessionToken,
|
|
82
|
+
expiration: credentialResponse.Credentials.Expiration
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
lastFirehoseClientTimeCreation = Date.now();
|
|
86
|
+
return [2 /*return*/, firehoseClient];
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
var getFirehoseClient = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
+
return __generator(this, function (_a) {
|
|
93
|
+
switch (_a.label) {
|
|
94
|
+
case 0:
|
|
95
|
+
if (firehoseClient && (!clientIsOlderThanOneHour())) {
|
|
96
|
+
return [2 /*return*/, firehoseClient];
|
|
97
|
+
}
|
|
98
|
+
return [4 /*yield*/, createClient()];
|
|
99
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}); };
|
|
103
|
+
var sendMetrics = function (metrics) { return __awaiter(void 0, void 0, void 0, function () {
|
|
104
|
+
var command, client, err_1;
|
|
105
|
+
return __generator(this, function (_a) {
|
|
106
|
+
switch (_a.label) {
|
|
107
|
+
case 0:
|
|
108
|
+
_a.trys.push([0, 3, , 4]);
|
|
109
|
+
if (!metrics || isEmpty_1.default(metrics)) {
|
|
110
|
+
return [2 /*return*/];
|
|
111
|
+
}
|
|
112
|
+
log_1.default.debug('Sending metrics to AWS Firhose');
|
|
113
|
+
command = new client_firehose_1.PutRecordBatchCommand({
|
|
114
|
+
Records: metrics,
|
|
115
|
+
DeliveryStreamName: STREAM_NAME
|
|
116
|
+
});
|
|
117
|
+
return [4 /*yield*/, getFirehoseClient()];
|
|
118
|
+
case 1:
|
|
119
|
+
client = _a.sent();
|
|
120
|
+
return [4 /*yield*/, client.send(command)];
|
|
121
|
+
case 2:
|
|
122
|
+
_a.sent();
|
|
123
|
+
return [3 /*break*/, 4];
|
|
124
|
+
case 3:
|
|
125
|
+
err_1 = _a.sent();
|
|
126
|
+
log_1.default.error(err_1);
|
|
127
|
+
return [3 /*break*/, 4];
|
|
128
|
+
case 4: return [2 /*return*/];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}); };
|
|
132
|
+
var prepareMetrics = function (testId, teamId, postParameters, parametersKeysToPublish) {
|
|
133
|
+
if (parametersKeysToPublish === void 0) { parametersKeysToPublish = []; }
|
|
134
|
+
var records = [];
|
|
135
|
+
parametersKeysToPublish.forEach(function (paramName) {
|
|
136
|
+
var value = parameters_1.parameterUtils.getValueByKeyFromArr(paramName, postParameters);
|
|
137
|
+
if (!value) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
var record = {
|
|
141
|
+
key: paramName,
|
|
142
|
+
value: value,
|
|
143
|
+
};
|
|
144
|
+
records.push(record);
|
|
145
|
+
});
|
|
146
|
+
var recordsGroup = {
|
|
147
|
+
id: v4_1.default(),
|
|
148
|
+
testId: testId,
|
|
149
|
+
teamId: teamId,
|
|
150
|
+
publishedAt: Date.now(),
|
|
151
|
+
records: records,
|
|
152
|
+
};
|
|
153
|
+
if (isEmpty_1.default(records)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
var enc = new TextEncoder(); // always utf-8
|
|
157
|
+
var encodedRecords = enc.encode(JSON.stringify(recordsGroup) + "\n");
|
|
158
|
+
return [{ Data: encodedRecords }];
|
|
159
|
+
};
|
|
160
|
+
var publishMetrics = function (postParameters, parametersKeysToPublish) { return __awaiter(void 0, void 0, void 0, function () {
|
|
161
|
+
var testId, teamId, e_1;
|
|
162
|
+
return __generator(this, function (_a) {
|
|
163
|
+
switch (_a.label) {
|
|
164
|
+
case 0:
|
|
165
|
+
_a.trys.push([0, 2, , 3]);
|
|
166
|
+
if (isEmpty_1.default(postParameters) || isEmpty_1.default(parametersKeysToPublish)) {
|
|
167
|
+
return [2 /*return*/];
|
|
168
|
+
}
|
|
169
|
+
testId = parameters_1.parameterUtils.getValueByKeyFromArr(parameters_2.BUILT_IN_PARAMS.testRunId, postParameters);
|
|
170
|
+
if (!testId) { // very weird if happened
|
|
171
|
+
log_1.default.debug('Test has ended without a testId parameter');
|
|
172
|
+
return [2 /*return*/];
|
|
173
|
+
}
|
|
174
|
+
teamId = parameters_1.parameterUtils.getValueByKeyFromArr(parameters_2.BUILT_IN_PARAMS.launchedByTeamId, postParameters);
|
|
175
|
+
if (!teamId) { // very weird if happened
|
|
176
|
+
log_1.default.debug('Test has ended without a testId parameter');
|
|
177
|
+
return [2 /*return*/];
|
|
178
|
+
}
|
|
179
|
+
return [4 /*yield*/, sendMetrics(prepareMetrics(testId, teamId, postParameters, parametersKeysToPublish))];
|
|
180
|
+
case 1:
|
|
181
|
+
_a.sent();
|
|
182
|
+
return [3 /*break*/, 3];
|
|
183
|
+
case 2:
|
|
184
|
+
e_1 = _a.sent();
|
|
185
|
+
log_1.default.error('Failed publish metrics at the end of test', { postParameters: postParameters, parametersKeysToPublish: parametersKeysToPublish }, e_1);
|
|
186
|
+
return [3 /*break*/, 3];
|
|
187
|
+
case 3: return [2 /*return*/];
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}); };
|
|
191
|
+
exports.publishMetrics = publishMetrics;
|
|
192
|
+
//# sourceMappingURL=post-sequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-sequence.js","sourceRoot":"","sources":["../src/post-sequence.ts"],"names":[],"mappings":"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"}
|