@memlab/cli 1.0.17 → 1.0.20
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/bin/memlab.js +1 -1
- package/dist/commands/RunMeasureCommand.js +2 -0
- package/dist/commands/WarmupAppCommand.js +2 -0
- package/dist/commands/heap/interactive/ui-components/CliScreen.js +13 -1
- package/dist/commands/heap/interactive/ui-components/HeapViewController.d.ts +7 -10
- package/dist/commands/heap/interactive/ui-components/HeapViewController.js +70 -19
- package/dist/commands/heap/interactive/ui-components/ListComponent.d.ts +8 -1
- package/dist/commands/heap/interactive/ui-components/ListComponent.js +28 -3
- package/dist/commands/heap/interactive/worker/LocateClosureSourceWorker.d.ts +11 -0
- package/dist/commands/heap/interactive/worker/LocateClosureSourceWorker.js +69 -0
- package/dist/commands/snapshot/TakeSnapshotCommand.js +2 -0
- package/dist/options/DebugOption.js +6 -2
- package/dist/options/HelperOption.js +6 -2
- package/dist/options/MLClusteringLinkageMaxDistanceOption.js +9 -3
- package/dist/options/MLClusteringMaxDFOption.js +9 -3
- package/dist/options/MLClusteringOption.js +7 -2
- package/dist/options/NumberOfRunsOption.js +5 -1
- package/dist/options/SetContinuousTestOption.js +7 -2
- package/dist/options/SetWorkingDirectoryOption.js +5 -1
- package/dist/options/SilentOption.js +6 -2
- package/dist/options/VerboseOption.js +6 -2
- package/dist/options/constant.d.ts +50 -0
- package/dist/options/constant.js +52 -0
- package/dist/options/e2e/AppOption.js +9 -5
- package/dist/options/e2e/DisableWebSecurityOption.js +5 -1
- package/dist/options/e2e/DisableXvfbOption.js +6 -2
- package/dist/options/e2e/EnableJSInterceptOption.d.ts +18 -0
- package/dist/options/e2e/EnableJSInterceptOption.js +42 -0
- package/dist/options/e2e/EnableJSRewriteOption.js +8 -1
- package/dist/options/e2e/FullExecutionOption.js +6 -2
- package/dist/options/e2e/HeadfulBrowserOption.js +6 -2
- package/dist/options/e2e/InteractionOption.js +9 -5
- package/dist/options/e2e/RemoteBrowserDebugOption.js +6 -2
- package/dist/options/e2e/RunningModeOption.js +6 -2
- package/dist/options/e2e/ScenarioFileOption.js +9 -3
- package/dist/options/e2e/SetDeviceOption.js +9 -3
- package/dist/options/e2e/SetUserAgentOption.js +5 -1
- package/dist/options/e2e/SkipExtraOperationOption.js +7 -2
- package/dist/options/e2e/SkipGCOption.js +5 -1
- package/dist/options/e2e/SkipScreenshotOption.js +6 -2
- package/dist/options/e2e/SkipScrollOption.js +6 -2
- package/dist/options/e2e/SkipSnapshotOption.js +6 -2
- package/dist/options/e2e/SkipWarmupOption.js +5 -1
- package/dist/options/heap/BaselineFileOption.js +5 -3
- package/dist/options/heap/FinalFileOption.js +5 -3
- package/dist/options/heap/HeapNodeIdOption.js +5 -1
- package/dist/options/heap/JSEngineOption.js +8 -3
- package/dist/options/heap/LeakClusterSizeThresholdOption.js +5 -1
- package/dist/options/heap/LogTraceAsClusterOption.js +5 -1
- package/dist/options/heap/OversizeThresholdOption.js +5 -1
- package/dist/options/heap/SnapshotDirectoryOption.js +5 -3
- package/dist/options/heap/SnapshotFileOption.js +5 -3
- package/dist/options/heap/TargetFileOption.js +5 -3
- package/dist/options/heap/TraceAllObjectsOption.js +5 -1
- package/dist/options/heap/leak-filter/LeakFilterFileOption.js +5 -1
- package/dist/options/lib/OptionConstant.d.ts +116 -0
- package/dist/options/lib/OptionConstant.js +67 -0
- package/package.json +2 -2
|
@@ -17,18 +17,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class SkipScrollOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.SKIP_SCROLL;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'skip scrolling target page in browser';
|
|
28
32
|
}
|
|
29
33
|
parse(config, args) {
|
|
30
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
if (args[
|
|
35
|
+
if (args[this.getOptionName()]) {
|
|
32
36
|
config.skipScroll = true;
|
|
33
37
|
}
|
|
34
38
|
});
|
|
@@ -17,18 +17,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class SkipSnapshotOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.SKIP_SNAPSHOT;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'skip taking heap snapshots';
|
|
28
32
|
}
|
|
29
33
|
parse(config, args) {
|
|
30
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
if (args[
|
|
35
|
+
if (args[this.getOptionName()]) {
|
|
32
36
|
config.skipSnapshot = true;
|
|
33
37
|
}
|
|
34
38
|
});
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class SkipWarmupOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.SKIP_WARMUP;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'skip warming up web server';
|
|
@@ -23,9 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
const fs_1 = __importDefault(require("fs"));
|
|
25
25
|
const core_1 = require("@memlab/core");
|
|
26
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
26
27
|
class BaselineFileOption extends core_1.BaseOption {
|
|
27
28
|
getOptionName() {
|
|
28
|
-
return
|
|
29
|
+
return OptionConstant_1.default.optionNames.BASELINE;
|
|
29
30
|
}
|
|
30
31
|
getDescription() {
|
|
31
32
|
return 'set file path of the baseline heap snapshot';
|
|
@@ -35,10 +36,11 @@ class BaselineFileOption extends core_1.BaseOption {
|
|
|
35
36
|
}
|
|
36
37
|
parse(config, args) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
+
const name = this.getOptionName();
|
|
40
|
+
if (!args[name]) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
|
-
const file = args
|
|
43
|
+
const file = args[name];
|
|
42
44
|
if (!fs_1.default.existsSync(file)) {
|
|
43
45
|
core_1.utils.haltOrThrow(`Invalid snapshot file: ${file}`);
|
|
44
46
|
}
|
|
@@ -23,9 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
const fs_1 = __importDefault(require("fs"));
|
|
25
25
|
const core_1 = require("@memlab/core");
|
|
26
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
26
27
|
class FinalFileOption extends core_1.BaseOption {
|
|
27
28
|
getOptionName() {
|
|
28
|
-
return
|
|
29
|
+
return OptionConstant_1.default.optionNames.FINAL;
|
|
29
30
|
}
|
|
30
31
|
getDescription() {
|
|
31
32
|
return 'set file path of the final heap snapshot';
|
|
@@ -35,10 +36,11 @@ class FinalFileOption extends core_1.BaseOption {
|
|
|
35
36
|
}
|
|
36
37
|
parse(config, args) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
+
const name = this.getOptionName();
|
|
40
|
+
if (!args[name]) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
|
-
const file = args
|
|
43
|
+
const file = args[name];
|
|
42
44
|
if (!fs_1.default.existsSync(file)) {
|
|
43
45
|
core_1.utils.haltOrThrow(`Invalid snapshot file: ${file}`);
|
|
44
46
|
}
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class HeapNodeIdOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.NODE_ID;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'set heap node ID';
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class JSEngineOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.ENGINE;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'set the JavaScript engine (default to V8)';
|
|
@@ -31,10 +35,11 @@ class JSEngineOption extends core_1.BaseOption {
|
|
|
31
35
|
}
|
|
32
36
|
parse(config, args) {
|
|
33
37
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
|
|
38
|
+
const name = this.getOptionName();
|
|
39
|
+
if (!args[name]) {
|
|
35
40
|
return;
|
|
36
41
|
}
|
|
37
|
-
config.jsEngine = args
|
|
42
|
+
config.jsEngine = args[name];
|
|
38
43
|
config.specifiedEngine = true;
|
|
39
44
|
if (core_1.constant.supportedEngines.indexOf(config.jsEngine) < 0) {
|
|
40
45
|
core_1.utils.haltOrThrow(`Invalid engine: ${config.jsEngine} ` +
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class LeakClusterSizeThresholdOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.IGNORE_LEAK_CLUSTER_SIZE_BELOW;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'ignore memory leaks with aggregated retained size smaller than the threshold';
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class LogTraceAsClusterOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.SAVE_TRACE_AS_UNCLASSIFIED_CLUSTER;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'dump each retainer trace as an unclassified trace cluster';
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class OversizeThresholdOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.TRACE_OBJECT_SIZE_ABOVE;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return ('objects with retained size (bytes) ' +
|
|
@@ -23,9 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
const fs_1 = __importDefault(require("fs"));
|
|
25
25
|
const core_1 = require("@memlab/core");
|
|
26
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
26
27
|
class SnapshotDirectoryOption extends core_1.BaseOption {
|
|
27
28
|
getOptionName() {
|
|
28
|
-
return
|
|
29
|
+
return OptionConstant_1.default.optionNames.SNAPSHOT_DIR;
|
|
29
30
|
}
|
|
30
31
|
getDescription() {
|
|
31
32
|
return 'set directory path containing all heap snapshots under analysis';
|
|
@@ -35,10 +36,11 @@ class SnapshotDirectoryOption extends core_1.BaseOption {
|
|
|
35
36
|
}
|
|
36
37
|
parse(config, args) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
+
const name = this.getOptionName();
|
|
40
|
+
if (!args[name]) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
|
-
const dir = args[
|
|
43
|
+
const dir = args[name];
|
|
42
44
|
if (!fs_1.default.existsSync(dir)) {
|
|
43
45
|
core_1.utils.haltOrThrow(`Invalid directory: ${dir}`);
|
|
44
46
|
}
|
|
@@ -23,9 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
const fs_1 = __importDefault(require("fs"));
|
|
25
25
|
const core_1 = require("@memlab/core");
|
|
26
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
26
27
|
class SnapshotFileOption extends core_1.BaseOption {
|
|
27
28
|
getOptionName() {
|
|
28
|
-
return
|
|
29
|
+
return OptionConstant_1.default.optionNames.SNAPSHOT;
|
|
29
30
|
}
|
|
30
31
|
getDescription() {
|
|
31
32
|
return 'set file path of the heap snapshot under analysis';
|
|
@@ -35,10 +36,11 @@ class SnapshotFileOption extends core_1.BaseOption {
|
|
|
35
36
|
}
|
|
36
37
|
parse(config, args) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
+
const name = this.getOptionName();
|
|
40
|
+
if (!args[name]) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
|
-
const file = args
|
|
43
|
+
const file = args[name];
|
|
42
44
|
if (!fs_1.default.existsSync(file)) {
|
|
43
45
|
core_1.utils.haltOrThrow(`Invalid snapshot file: ${file}`);
|
|
44
46
|
}
|
|
@@ -23,9 +23,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
24
|
const fs_1 = __importDefault(require("fs"));
|
|
25
25
|
const core_1 = require("@memlab/core");
|
|
26
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
26
27
|
class TargetFileOption extends core_1.BaseOption {
|
|
27
28
|
getOptionName() {
|
|
28
|
-
return
|
|
29
|
+
return OptionConstant_1.default.optionNames.TARGET;
|
|
29
30
|
}
|
|
30
31
|
getDescription() {
|
|
31
32
|
return 'set file path of the target heap snapshot';
|
|
@@ -35,10 +36,11 @@ class TargetFileOption extends core_1.BaseOption {
|
|
|
35
36
|
}
|
|
36
37
|
parse(config, args) {
|
|
37
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
-
|
|
39
|
+
const name = this.getOptionName();
|
|
40
|
+
if (!args[name]) {
|
|
39
41
|
return;
|
|
40
42
|
}
|
|
41
|
-
const file = args
|
|
43
|
+
const file = args[name];
|
|
42
44
|
if (!fs_1.default.existsSync(file)) {
|
|
43
45
|
core_1.utils.haltOrThrow(`Invalid snapshot file: ${file}`);
|
|
44
46
|
}
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../lib/OptionConstant"));
|
|
22
26
|
class TraceAllObjectsOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.TRACE_ALL_OBJECTS;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'dump retainer trace for all allocated objects (ignore the leak filter)';
|
|
@@ -17,11 +17,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
17
17
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
21
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
|
+
};
|
|
20
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
24
|
const core_1 = require("@memlab/core");
|
|
25
|
+
const OptionConstant_1 = __importDefault(require("../../lib/OptionConstant"));
|
|
22
26
|
class LeakFilterFileOption extends core_1.BaseOption {
|
|
23
27
|
getOptionName() {
|
|
24
|
-
return
|
|
28
|
+
return OptionConstant_1.default.optionNames.LEAK_FILTER;
|
|
25
29
|
}
|
|
26
30
|
getDescription() {
|
|
27
31
|
return 'specify a definition JS file for leak filter';
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @oncall web_perf_infra
|
|
9
|
+
*/
|
|
10
|
+
declare const optionConstants: {
|
|
11
|
+
optionNames: {
|
|
12
|
+
APP: string;
|
|
13
|
+
BASELINE: string;
|
|
14
|
+
CONTINUS_TEST: string;
|
|
15
|
+
DEVICE: string;
|
|
16
|
+
DISABLE_WEB_SECURITY: string;
|
|
17
|
+
DISABLE_XVFB: string;
|
|
18
|
+
ENGINE: string;
|
|
19
|
+
FINAL: string;
|
|
20
|
+
FULL: string;
|
|
21
|
+
HEADFUL: string;
|
|
22
|
+
HELP: string;
|
|
23
|
+
IGNORE_LEAK_CLUSTER_SIZE_BELOW: string;
|
|
24
|
+
INTERACTION: string;
|
|
25
|
+
LEAK_FILTER: string;
|
|
26
|
+
LOCAL_PUPPETEER: string;
|
|
27
|
+
LOG_SCRIPT: string;
|
|
28
|
+
ML_CLUSTERING: string;
|
|
29
|
+
ML_CLUSTERING_MAX_DF: string;
|
|
30
|
+
ML_LINKAGE_MAX_DIST: string;
|
|
31
|
+
NODE_ID: string;
|
|
32
|
+
REWRITE_JS: string;
|
|
33
|
+
RUN_MODE: string;
|
|
34
|
+
RUN_NUM: string;
|
|
35
|
+
SAVE_TRACE_AS_UNCLASSIFIED_CLUSTER: string;
|
|
36
|
+
SC: string;
|
|
37
|
+
SCENARIO: string;
|
|
38
|
+
SILENT: string;
|
|
39
|
+
SKIP_EXTRA_OP: string;
|
|
40
|
+
SKIP_EXTRA_OPS: string;
|
|
41
|
+
SKIP_GC: string;
|
|
42
|
+
SKIP_SCREENSHOT: string;
|
|
43
|
+
SKIP_SCROLL: string;
|
|
44
|
+
SKIP_SNAPSHOT: string;
|
|
45
|
+
SKIP_WARMUP: string;
|
|
46
|
+
SNAPSHOT: string;
|
|
47
|
+
SNAPSHOT_DIR: string;
|
|
48
|
+
TARGET: string;
|
|
49
|
+
TRACE_ALL_OBJECTS: string;
|
|
50
|
+
TRACE_OBJECT_SIZE_ABOVE: string;
|
|
51
|
+
USER_AGENT: string;
|
|
52
|
+
VERBOSE: string;
|
|
53
|
+
WORK_DIR: string;
|
|
54
|
+
DEBUG: string;
|
|
55
|
+
};
|
|
56
|
+
optionShortcuts: {
|
|
57
|
+
H: string;
|
|
58
|
+
S: string;
|
|
59
|
+
V: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export declare type OptionConstants = typeof optionConstants;
|
|
63
|
+
declare const _default: {
|
|
64
|
+
optionNames: {
|
|
65
|
+
APP: string;
|
|
66
|
+
BASELINE: string;
|
|
67
|
+
CONTINUS_TEST: string;
|
|
68
|
+
DEVICE: string;
|
|
69
|
+
DISABLE_WEB_SECURITY: string;
|
|
70
|
+
DISABLE_XVFB: string;
|
|
71
|
+
ENGINE: string;
|
|
72
|
+
FINAL: string;
|
|
73
|
+
FULL: string;
|
|
74
|
+
HEADFUL: string;
|
|
75
|
+
HELP: string;
|
|
76
|
+
IGNORE_LEAK_CLUSTER_SIZE_BELOW: string;
|
|
77
|
+
INTERACTION: string;
|
|
78
|
+
LEAK_FILTER: string;
|
|
79
|
+
LOCAL_PUPPETEER: string;
|
|
80
|
+
LOG_SCRIPT: string;
|
|
81
|
+
ML_CLUSTERING: string;
|
|
82
|
+
ML_CLUSTERING_MAX_DF: string;
|
|
83
|
+
ML_LINKAGE_MAX_DIST: string;
|
|
84
|
+
NODE_ID: string;
|
|
85
|
+
REWRITE_JS: string;
|
|
86
|
+
RUN_MODE: string;
|
|
87
|
+
RUN_NUM: string;
|
|
88
|
+
SAVE_TRACE_AS_UNCLASSIFIED_CLUSTER: string;
|
|
89
|
+
SC: string;
|
|
90
|
+
SCENARIO: string;
|
|
91
|
+
SILENT: string;
|
|
92
|
+
SKIP_EXTRA_OP: string;
|
|
93
|
+
SKIP_EXTRA_OPS: string;
|
|
94
|
+
SKIP_GC: string;
|
|
95
|
+
SKIP_SCREENSHOT: string;
|
|
96
|
+
SKIP_SCROLL: string;
|
|
97
|
+
SKIP_SNAPSHOT: string;
|
|
98
|
+
SKIP_WARMUP: string;
|
|
99
|
+
SNAPSHOT: string;
|
|
100
|
+
SNAPSHOT_DIR: string;
|
|
101
|
+
TARGET: string;
|
|
102
|
+
TRACE_ALL_OBJECTS: string;
|
|
103
|
+
TRACE_OBJECT_SIZE_ABOVE: string;
|
|
104
|
+
USER_AGENT: string;
|
|
105
|
+
VERBOSE: string;
|
|
106
|
+
WORK_DIR: string;
|
|
107
|
+
DEBUG: string;
|
|
108
|
+
};
|
|
109
|
+
optionShortcuts: {
|
|
110
|
+
H: string;
|
|
111
|
+
S: string;
|
|
112
|
+
V: string;
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
export default _default;
|
|
116
|
+
//# sourceMappingURL=OptionConstant.d.ts.map
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*
|
|
8
|
+
* @format
|
|
9
|
+
* @oncall web_perf_infra
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const core_1 = require("@memlab/core");
|
|
13
|
+
const optionNames = {
|
|
14
|
+
APP: 'app',
|
|
15
|
+
BASELINE: 'baseline',
|
|
16
|
+
CONTINUS_TEST: 'ContinuousTest',
|
|
17
|
+
DEVICE: 'device',
|
|
18
|
+
DISABLE_WEB_SECURITY: 'disable-web-security',
|
|
19
|
+
DISABLE_XVFB: 'disable-xvfb',
|
|
20
|
+
ENGINE: 'engine',
|
|
21
|
+
FINAL: 'final',
|
|
22
|
+
FULL: 'full',
|
|
23
|
+
HEADFUL: 'headful',
|
|
24
|
+
HELP: 'help',
|
|
25
|
+
IGNORE_LEAK_CLUSTER_SIZE_BELOW: 'ignore-leak-cluster-size-below',
|
|
26
|
+
INTERACTION: 'interaction',
|
|
27
|
+
LEAK_FILTER: 'leak-filter',
|
|
28
|
+
LOCAL_PUPPETEER: 'local-puppeteer',
|
|
29
|
+
LOG_SCRIPT: 'log-script',
|
|
30
|
+
ML_CLUSTERING: 'ml-clustering',
|
|
31
|
+
ML_CLUSTERING_MAX_DF: 'ml-clustering-max-df',
|
|
32
|
+
ML_LINKAGE_MAX_DIST: 'ml-linkage-max-dist',
|
|
33
|
+
NODE_ID: 'node-id',
|
|
34
|
+
REWRITE_JS: 'rewrite-js',
|
|
35
|
+
RUN_MODE: 'run-mode',
|
|
36
|
+
RUN_NUM: 'run-num',
|
|
37
|
+
SAVE_TRACE_AS_UNCLASSIFIED_CLUSTER: 'save-trace-as-unclassified-cluster',
|
|
38
|
+
SC: 'sc',
|
|
39
|
+
SCENARIO: 'scenario',
|
|
40
|
+
SILENT: 'silent',
|
|
41
|
+
SKIP_EXTRA_OP: 'skip-extra-op',
|
|
42
|
+
SKIP_EXTRA_OPS: 'skip-extra-ops',
|
|
43
|
+
SKIP_GC: 'skip-gc',
|
|
44
|
+
SKIP_SCREENSHOT: 'skip-screenshot',
|
|
45
|
+
SKIP_SCROLL: 'skip-scroll',
|
|
46
|
+
SKIP_SNAPSHOT: 'skip-snapshot',
|
|
47
|
+
SKIP_WARMUP: 'skip-warmup',
|
|
48
|
+
SNAPSHOT: 'snapshot',
|
|
49
|
+
SNAPSHOT_DIR: 'snapshot-dir',
|
|
50
|
+
TARGET: 'target',
|
|
51
|
+
TRACE_ALL_OBJECTS: 'trace-all-objects',
|
|
52
|
+
TRACE_OBJECT_SIZE_ABOVE: 'trace-object-size-above',
|
|
53
|
+
USER_AGENT: 'user-agent',
|
|
54
|
+
VERBOSE: 'verbose',
|
|
55
|
+
WORK_DIR: 'work-dir',
|
|
56
|
+
DEBUG: 'debug',
|
|
57
|
+
};
|
|
58
|
+
const optionShortcuts = {
|
|
59
|
+
H: 'h',
|
|
60
|
+
S: 's',
|
|
61
|
+
V: 'v',
|
|
62
|
+
};
|
|
63
|
+
const optionConstants = {
|
|
64
|
+
optionNames,
|
|
65
|
+
optionShortcuts,
|
|
66
|
+
};
|
|
67
|
+
exports.default = (0, core_1.setInternalValue)(optionConstants, __filename, core_1.constant.internalDir);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memlab/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "command line interface for memlab",
|
|
6
6
|
"author": "Liang Gong <lgong@fb.com>",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"scripts": {
|
|
61
61
|
"preinstall": "node bin/preinstall",
|
|
62
62
|
"build-pkg": "tsc",
|
|
63
|
-
"publish-patch": "npm
|
|
63
|
+
"publish-patch": "npm publish",
|
|
64
64
|
"clean-pkg": "rm -rf ./dist && rm -rf ./node_modules && rm -f ./tsconfig.tsbuildinfo"
|
|
65
65
|
},
|
|
66
66
|
"bugs": {
|