@mablhq/mabl-cli 1.21.22 → 1.22.1

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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CommandArgUrlApi = exports.CommandArgUrlApp = exports.CommandArgUrl = exports.CommandArgTrainerVersion = exports.CommandArgTo = exports.CommandArgSilent = exports.CommandArgRevision = exports.CommandArgPlanId = exports.CommandArgContentTypes = exports.CommandArgPreview = exports.CommandArgOutputFilePath = exports.CommandArgOutput = exports.CommandArgNoPrompt = exports.CommandArgPrompt = exports.CommandArgPortNumber = exports.CommandArgName = exports.CommandArgMablBranchChangesOnly = exports.CommandArgMablBranch = exports.CommandArgMablAutoLogin = exports.CommandArgMablAutoBranch = exports.CommandArgLinkBypass = exports.CommandArgLinkLabel = exports.CommandArgLimitOutput = exports.CommandArgLabels = exports.CommandArgLabelsInclude = exports.CommandArgLabelsExclude = exports.CommandArgTestInteractionSpeed = exports.CommandArgTestRunId = exports.CommandArgTestFile = exports.CommandArgId = exports.CommandArgUserAgent = exports.CommandArgHttpHeaders = exports.CommandArgHelp = exports.CommandArgFromPlanId = exports.CommandArgFrom = exports.CommandArgFormat = exports.CommandArgFastFailure = exports.CommandArgOverrideEnvironmentId = exports.CommandArgEnvironmentId = exports.CommandArgEnableLink = exports.CommandArgDetailLevel = exports.CommandArgDescription = exports.CommandArgDeploymentId = exports.CommandArgDecrypt = exports.CommandArgDataTables = exports.CommandArgCredentials = exports.CommandArgBasicAuthCredentials = exports.CommandArgBrowsers = exports.CommandArgApplicationId = exports.CommandArgApiKey = void 0;
4
- exports.BrowserTypeSelections = exports.DefaultBrowserType = exports.DefaultBranchName = exports.DefaultOutputFormatChoices = exports.DetailLevelFormats = exports.ReporterOptions = exports.OutputFormats = exports.CommandArgAliases = exports.CommandArgBrowserEnableExtensions = exports.CommandArgBrowserIgnoreCertificateErrors = exports.CommandArgBrowserDisableIsolation = exports.ListTimeFormat = exports.CommandArgReporterOptions = exports.CommandArgReporter = exports.CommandArgWorkspaceId = exports.CommandArgVersion = exports.CommandArgVariables = void 0;
3
+ exports.CommandArgUrlApp = exports.CommandArgUrl = exports.CommandArgTrainerVersion = exports.CommandArgTo = exports.CommandArgSilent = exports.CommandArgRevision = exports.CommandArgMaxHeartbeatAge = exports.CommandArgPlanId = exports.CommandArgContentTypes = exports.CommandArgPreview = exports.CommandArgOutputFilePath = exports.CommandArgOutput = exports.CommandArgNoPrompt = exports.CommandArgPrompt = exports.CommandArgPortNumber = exports.CommandArgName = exports.CommandArgMablBranchChangesOnly = exports.CommandArgMablBranch = exports.CommandArgMablAutoLogin = exports.CommandArgMablAutoBranch = exports.CommandArgLinkBypass = exports.CommandArgLinkLabel = exports.CommandArgLimitOutput = exports.CommandArgLabels = exports.CommandArgLabelsInclude = exports.CommandArgLabelsExclude = exports.CommandArgTestInteractionSpeed = exports.CommandArgTestRunId = exports.CommandArgTestFile = exports.CommandArgId = exports.CommandArgUserAgent = exports.CommandArgHttpHeaders = exports.CommandArgHelp = exports.CommandArgFromPlanId = exports.CommandArgFrom = exports.CommandArgFormat = exports.CommandArgFastFailure = exports.CommandArgOverrideEnvironmentId = exports.CommandArgEnvironmentId = exports.CommandArgEnableLink = exports.CommandArgDetailLevel = exports.CommandArgDescription = exports.CommandArgDeploymentId = exports.CommandArgDecrypt = exports.CommandArgDataTables = exports.CommandArgCredentials = exports.CommandArgBasicAuthCredentials = exports.CommandArgBrowsers = exports.CommandArgApplicationId = exports.CommandArgApiKey = void 0;
4
+ exports.BrowserTypeSelections = exports.DefaultBrowserType = exports.DefaultBranchName = exports.DefaultOutputFormatChoices = exports.DetailLevelFormats = exports.ReporterOptions = exports.OutputFormats = exports.CommandArgAliases = exports.CommandArgBrowserEnableExtensions = exports.CommandArgBrowserIgnoreCertificateErrors = exports.CommandArgBrowserDisableIsolation = exports.ListTimeFormat = exports.CommandArgReporterOptions = exports.CommandArgReporter = exports.CommandArgWorkspaceId = exports.CommandArgVersion = exports.CommandArgVariables = exports.CommandArgUrlApi = void 0;
5
5
  const browserTypes_1 = require("./browserTypes");
6
6
  exports.CommandArgApiKey = 'api-key';
7
7
  exports.CommandArgApplicationId = 'application-id';
@@ -46,6 +46,7 @@ exports.CommandArgOutputFilePath = 'file';
46
46
  exports.CommandArgPreview = 'preview';
47
47
  exports.CommandArgContentTypes = 'types';
48
48
  exports.CommandArgPlanId = 'plan-id';
49
+ exports.CommandArgMaxHeartbeatAge = 'max-heartbeat-age';
49
50
  exports.CommandArgRevision = 'revision';
50
51
  exports.CommandArgSilent = 'silent';
51
52
  exports.CommandArgTo = 'to';
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cli_table3_1 = __importDefault(require("cli-table3"));
7
+ const moment = require("moment");
8
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
9
+ const util_1 = require("../../commandUtil/util");
10
+ const constants_1 = require("../../constants");
11
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
12
+ const js_yaml_1 = require("js-yaml");
13
+ exports.command = 'list';
14
+ exports.describe = 'List link agents';
15
+ exports.builder = (yargs) => {
16
+ yargs
17
+ .option(constants_1.CommandArgWorkspaceId, {
18
+ alias: constants_1.CommandArgAliases.WorkspaceId,
19
+ describe: 'Workspace for which to list link agents',
20
+ nargs: 1,
21
+ type: 'string',
22
+ })
23
+ .option(constants_1.CommandArgOutput, {
24
+ alias: constants_1.CommandArgAliases.OutputType,
25
+ default: constants_1.OutputFormats.Table,
26
+ describe: 'Specify result output format',
27
+ nargs: 1,
28
+ choices: [...constants_1.DefaultOutputFormatChoices, constants_1.OutputFormats.Table],
29
+ })
30
+ .option(constants_1.CommandArgLimitOutput, {
31
+ alias: constants_1.CommandArgAliases.LimitOutput,
32
+ describe: 'The number of link agents to return',
33
+ default: 10,
34
+ nargs: 1,
35
+ type: 'number',
36
+ })
37
+ .option(constants_1.CommandArgMaxHeartbeatAge, {
38
+ describe: 'Only returns link agents that have sent a heartbeat within this number of seconds',
39
+ default: 300,
40
+ nargs: 1,
41
+ type: 'number',
42
+ });
43
+ };
44
+ exports.handler = (0, util_1.failWrapper)(listLinkAgents);
45
+ async function listLinkAgents(parsed) {
46
+ const limit = parsed.limit;
47
+ const maxHeartbeatAgeSeconds = parsed[constants_1.CommandArgMaxHeartbeatAge];
48
+ const workspaceId = await (0, util_1.getWorkspaceId)(parsed);
49
+ const output = parsed[constants_1.CommandArgOutput];
50
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
51
+ const linkAgents = (await apiClient.getLinkAgentsWithRecentHeartbeats(workspaceId, limit, maxHeartbeatAgeSeconds)).map((linkAgent) => ({
52
+ address: linkAgent.address,
53
+ created_time: linkAgent.created_time,
54
+ hostname: linkAgent.hostname,
55
+ id: linkAgent.id,
56
+ is_connected: linkAgent.is_connected,
57
+ java_version: linkAgent.java_version,
58
+ last_heartbeat_time: linkAgent.last_heartbeat_time,
59
+ name: linkAgent.label,
60
+ operating_system_architecture: linkAgent.operating_system_architecture,
61
+ operating_system_name: linkAgent.operating_system_name,
62
+ operating_system_version: linkAgent.operating_system_version,
63
+ status: linkAgent.status,
64
+ version: linkAgent.version,
65
+ }));
66
+ switch (output) {
67
+ case constants_1.OutputFormats.Json:
68
+ loggingProvider_1.logger.info(JSON.stringify(linkAgents, null, 2));
69
+ break;
70
+ case constants_1.OutputFormats.Yaml:
71
+ loggingProvider_1.logger.info((0, js_yaml_1.dump)(linkAgents));
72
+ break;
73
+ case constants_1.OutputFormats.Table:
74
+ default:
75
+ printLinkAgentsAsTable(linkAgents);
76
+ loggingProvider_1.logger.info(`${linkAgents.length} link agents returned`);
77
+ if (linkAgents.length === limit) {
78
+ loggingProvider_1.logger.info(`... use the --limit flag to return a larger set`);
79
+ }
80
+ break;
81
+ }
82
+ return linkAgents.length;
83
+ }
84
+ function printLinkAgentsAsTable(linkAgents) {
85
+ const table = new cli_table3_1.default({
86
+ head: [
87
+ 'ID',
88
+ 'Name',
89
+ 'Connected',
90
+ 'Status',
91
+ 'Host',
92
+ 'OS',
93
+ 'Java',
94
+ 'Created',
95
+ 'Heartbeat',
96
+ 'Version',
97
+ ],
98
+ wordWrap: true,
99
+ });
100
+ linkAgents.forEach((agent) => {
101
+ table.push([
102
+ { rowSpan: 1, content: agent.id, vAlign: 'center' },
103
+ { rowSpan: 1, content: agent.name, vAlign: 'center' },
104
+ { rowSpan: 1, content: agent.is_connected, vAlign: 'center' },
105
+ { rowSpan: 1, content: agent.status, vAlign: 'center' },
106
+ {
107
+ rowSpan: 1,
108
+ content: `${agent.hostname} (${agent.address})`,
109
+ vAlign: 'center',
110
+ },
111
+ {
112
+ rowSpan: 1,
113
+ content: `${agent.operating_system_name} ${agent.operating_system_version} (${agent.operating_system_architecture})`,
114
+ vAlign: 'center',
115
+ },
116
+ { rowSpan: 1, content: agent.java_version, vAlign: 'center' },
117
+ {
118
+ rowSpan: 1,
119
+ content: moment.utc(agent.created_time).format(constants_1.ListTimeFormat),
120
+ vAlign: 'center',
121
+ },
122
+ {
123
+ rowSpan: 1,
124
+ content: moment.utc(agent.last_heartbeat_time).format(constants_1.ListTimeFormat),
125
+ vAlign: 'center',
126
+ },
127
+ { rowSpan: 1, content: agent.version, vAlign: 'center' },
128
+ ]);
129
+ });
130
+ loggingProvider_1.logger.info(table.toString());
131
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const mablApiClientFactory_1 = require("../../../api/mablApiClientFactory");
7
+ const constants_1 = require("../../constants");
8
+ const util_1 = require("../../commandUtil/util");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const loggingProvider_1 = require("../../../providers/logging/loggingProvider");
11
+ exports.command = `terminate <${constants_1.CommandArgId}>`;
12
+ exports.describe = 'Sends a shutdown signal to a specific Link Agent.';
13
+ exports.builder = (yargs) => {
14
+ yargs.positional(constants_1.CommandArgId, {
15
+ describe: 'id of the link agent to terminate',
16
+ type: 'string',
17
+ });
18
+ };
19
+ exports.handler = (0, util_1.failWrapper)(terminateLinkAgent);
20
+ async function terminateLinkAgent(parsed) {
21
+ try {
22
+ const apiClient = await mablApiClientFactory_1.MablApiClientFactory.createApiClient();
23
+ const linkAgentId = parsed[constants_1.CommandArgId];
24
+ await apiClient.terminateLinkAgent(linkAgentId);
25
+ loggingProvider_1.logger.info(chalk_1.default.green(`Link agent ${chalk_1.default.bold(linkAgentId)} terminated`));
26
+ return linkAgentId;
27
+ }
28
+ catch (error) {
29
+ throw new Error(`Error terminating link agent: ${error}`);
30
+ }
31
+ }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getDefaultLogMetadataForInfo = exports.MablCoreProcessAction = exports.MablCoreAction = exports.ExecutionPhase = exports.EventChannelMessageType = exports.getEmitter = exports.mablEventEmitter = exports.MablCoreEventEmitter = void 0;
4
+ exports.getDefaultLogMetadataForInfo = exports.MablCoreProcessAction = exports.MablCoreAction = exports.ObservationErrorSeverity = exports.ObservationErrorCode = exports.ExecutionPhase = exports.EventChannelMessageType = exports.getEmitter = exports.mablEventEmitter = exports.MablCoreEventEmitter = void 0;
5
5
  const events_1 = require("events");
6
6
  const loggingProvider_1 = require("../../providers/logging/loggingProvider");
7
7
  const NO_ID_PLACEHOLDER = 'NO_ID_PROVIDED';
@@ -68,6 +68,16 @@ var ExecutionPhase;
68
68
  ExecutionPhase["DURING_ACTION"] = "DURING_ACTION";
69
69
  ExecutionPhase["SKIP_ACTION"] = "SKIP_ACTION";
70
70
  })(ExecutionPhase = exports.ExecutionPhase || (exports.ExecutionPhase = {}));
71
+ var ObservationErrorCode;
72
+ (function (ObservationErrorCode) {
73
+ ObservationErrorCode["ILLEGAL_URL_ERROR"] = "ILLEGAL_URL_ERROR";
74
+ ObservationErrorCode["PAGE_LOAD_FAILURE"] = "PAGE_LOAD_FAILURE";
75
+ })(ObservationErrorCode = exports.ObservationErrorCode || (exports.ObservationErrorCode = {}));
76
+ var ObservationErrorSeverity;
77
+ (function (ObservationErrorSeverity) {
78
+ ObservationErrorSeverity["ERROR"] = "ERROR";
79
+ ObservationErrorSeverity["WARN"] = "WARN";
80
+ })(ObservationErrorSeverity = exports.ObservationErrorSeverity || (exports.ObservationErrorSeverity = {}));
71
81
  class MablCoreAction {
72
82
  constructor(type, payload, timestamp = Date.now()) {
73
83
  this.type = type;