@appland/appmap 3.35.0 → 3.37.0
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/CHANGELOG.md +14 -0
- package/built/appmap.html +1 -1
- package/built/cli.js +2 -2
- package/built/cli.js.map +1 -1
- package/built/cmds/agentInstaller/agentInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/agentInstallerProcedure.js +1 -0
- package/built/cmds/agentInstaller/agentInstallerProcedure.js.map +1 -1
- package/built/cmds/agentInstaller/gradleInstaller.js +9 -3
- package/built/cmds/agentInstaller/gradleInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/install-agent.js +23 -7
- package/built/cmds/agentInstaller/install-agent.js.map +1 -1
- package/built/cmds/agentInstaller/javaScriptAgentInstaller.js +24 -1
- package/built/cmds/agentInstaller/javaScriptAgentInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/mavenInstaller.js +2 -0
- package/built/cmds/agentInstaller/mavenInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/pythonAgentInstaller.js +19 -0
- package/built/cmds/agentInstaller/pythonAgentInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/rubyAgentInstaller.js +10 -0
- package/built/cmds/agentInstaller/rubyAgentInstaller.js.map +1 -1
- package/built/cmds/errors.js +4 -1
- package/built/cmds/errors.js.map +1 -1
- package/built/cmds/record/action/cancelRecording.js +2 -3
- package/built/cmds/record/action/cancelRecording.js.map +1 -1
- package/built/cmds/record/action/configureHostAndPort.js +6 -6
- package/built/cmds/record/action/configureHostAndPort.js.map +1 -1
- package/built/cmds/record/action/configureRemainingRequestOptions.js +7 -7
- package/built/cmds/record/action/configureRemainingRequestOptions.js.map +1 -1
- package/built/cmds/record/action/detectProcessCharacteristics.js +2 -3
- package/built/cmds/record/action/detectProcessCharacteristics.js.map +1 -1
- package/built/cmds/record/action/saveAppMap.js +2 -3
- package/built/cmds/record/action/saveAppMap.js.map +1 -1
- package/built/cmds/record/action/saveRecording.js +2 -3
- package/built/cmds/record/action/saveRecording.js.map +1 -1
- package/built/cmds/record/action/startRecording.js +2 -3
- package/built/cmds/record/action/startRecording.js.map +1 -1
- package/built/cmds/record/action/startTestCases.js +6 -5
- package/built/cmds/record/action/startTestCases.js.map +1 -1
- package/built/cmds/record/configuration.js +66 -84
- package/built/cmds/record/configuration.js.map +1 -1
- package/built/cmds/record/makeRequest.js +50 -0
- package/built/cmds/record/makeRequest.js.map +1 -0
- package/built/cmds/record/prompt/continueWithRequestOptionConfiguration.js +2 -3
- package/built/cmds/record/prompt/continueWithRequestOptionConfiguration.js.map +1 -1
- package/built/cmds/record/prompt/obtainTestCommands.js +7 -3
- package/built/cmds/record/prompt/obtainTestCommands.js.map +1 -1
- package/built/cmds/record/record.js +110 -83
- package/built/cmds/record/record.js.map +1 -1
- package/built/cmds/record/recordContext.js +11 -7
- package/built/cmds/record/recordContext.js.map +1 -1
- package/built/cmds/record/remoteRecording.js +7 -35
- package/built/cmds/record/remoteRecording.js.map +1 -1
- package/built/cmds/record/state/agentAvailableAndReady.js +2 -2
- package/built/cmds/record/state/agentAvailableAndReady.js.map +1 -1
- package/built/cmds/record/state/agentIsRecording.js +1 -1
- package/built/cmds/record/state/agentIsRecording.js.map +1 -1
- package/built/cmds/record/state/agentNotAvailable.js +37 -10
- package/built/cmds/record/state/agentNotAvailable.js.map +1 -1
- package/built/cmds/record/state/agentProcessNotRunning.js +2 -2
- package/built/cmds/record/state/agentProcessNotRunning.js.map +1 -1
- package/built/cmds/record/state/initial.js +6 -1
- package/built/cmds/record/state/initial.js.map +1 -1
- package/built/cmds/record/state/record_remote.js +3 -3
- package/built/cmds/record/state/record_remote.js.map +1 -1
- package/built/cmds/record/state/record_test.js +2 -2
- package/built/cmds/record/state/record_test.js.map +1 -1
- package/built/cmds/record/state/testCasesComplete.js +9 -6
- package/built/cmds/record/state/testCasesComplete.js.map +1 -1
- package/built/cmds/record/state/testCommandsAvailable.js +1 -1
- package/built/cmds/record/state/testCommandsAvailable.js.map +1 -1
- package/built/cmds/record/state/testCommandsNeeded.js +2 -2
- package/built/cmds/record/state/testCommandsNeeded.js.map +1 -1
- package/built/cmds/record/test/areTestCommandsConfigured.js +4 -4
- package/built/cmds/record/test/areTestCommandsConfigured.js.map +1 -1
- package/built/cmds/record/test/isAgentAvailable.js +12 -5
- package/built/cmds/record/test/isAgentAvailable.js.map +1 -1
- package/built/cmds/record/test/isRecordingInProgress.js +2 -3
- package/built/cmds/record/test/isRecordingInProgress.js.map +1 -1
- package/built/cmds/record/testCaseRecording.js +3 -4
- package/built/cmds/record/testCaseRecording.js.map +1 -1
- package/built/cmds/runCommand.js +3 -1
- package/built/cmds/runCommand.js.map +1 -1
- package/built/lib/ticket/openTicket.js +30 -36
- package/built/lib/ticket/openTicket.js.map +1 -1
- package/built/lib/ticket/zendesk.js +3 -2
- package/built/lib/ticket/zendesk.js.map +1 -1
- package/built/main.js.map +1 -1
- package/package.json +4 -4
|
@@ -4,9 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const defaultPath = await (0, configuration_1.readConfigOption)('remote_recording.path', '/');
|
|
7
|
+
async function configureRemainingRequestOptions({ configuration, }) {
|
|
8
|
+
const defaultPath = configuration.configOption('remote_recording.path', '/');
|
|
10
9
|
const { baseURL: path } = await userInteraction_1.default.prompt({
|
|
11
10
|
type: 'input',
|
|
12
11
|
name: 'baseURL',
|
|
@@ -19,9 +18,9 @@ async function configureRemainingRequestOptions() {
|
|
|
19
18
|
basePath = [basePath, '/'].join('');
|
|
20
19
|
if (!basePath.startsWith('/'))
|
|
21
20
|
basePath = ['/', basePath].join('');
|
|
22
|
-
|
|
21
|
+
configuration.setConfigOption('remote_recording.path', basePath);
|
|
23
22
|
}
|
|
24
|
-
const defaultProtocol =
|
|
23
|
+
const defaultProtocol = configuration.configOption('remote_recording.protocol', 'http:');
|
|
25
24
|
const { useSSL } = await userInteraction_1.default.prompt({
|
|
26
25
|
type: 'confirm',
|
|
27
26
|
name: 'useSSL',
|
|
@@ -30,9 +29,10 @@ async function configureRemainingRequestOptions() {
|
|
|
30
29
|
});
|
|
31
30
|
const protocol = useSSL ? 'https:' : 'http:';
|
|
32
31
|
if (protocol !== defaultProtocol) {
|
|
33
|
-
|
|
32
|
+
configuration.setConfigOption('remote_recording.protocol', protocol);
|
|
34
33
|
}
|
|
35
|
-
|
|
34
|
+
await configuration.write();
|
|
35
|
+
const ro = configuration.requestOptions();
|
|
36
36
|
userInteraction_1.default.progress(`Here's the URL I will use to try and connect to the AppMap agent:\n`);
|
|
37
37
|
userInteraction_1.default.progress(`${ro.protocol}//${ro.hostname}:${ro.port}${ro.path}_appmap/record`);
|
|
38
38
|
userInteraction_1.default.progress('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureRemainingRequestOptions.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/configureRemainingRequestOptions.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;
|
|
1
|
+
{"version":3,"file":"configureRemainingRequestOptions.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/configureRemainingRequestOptions.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAGxB,KAAK,UAAU,gCAAgC,CAAC,EAC7D,aAAa,GACC;IACd,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAC7E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,QAAQ,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEnE,aAAa,CAAC,eAAe,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;KAClE;IAED,MAAM,eAAe,GAAG,aAAa,CAAC,YAAY,CAChD,2BAA2B,EAC3B,OAAO,CACR,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,eAAe,KAAK,QAAQ;KACtC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7C,IAAI,QAAQ,KAAK,eAAe,EAAE;QAChC,aAAa,CAAC,eAAe,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;KACtE;IACD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE5B,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAC1C,yBAAE,CAAC,QAAQ,CACT,qEAAqE,CACtE,CAAC;IACF,yBAAE,CAAC,QAAQ,CACT,GAAG,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,gBAAgB,CACpE,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AA7CD,mDA6CC"}
|
|
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
7
|
const port_pid_1 = __importDefault(require("port-pid"));
|
|
8
8
|
const ps_node_1 = __importDefault(require("ps-node"));
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const ro = await (0, configuration_1.requestOptions)();
|
|
9
|
+
async function detectProcessCharacteristics({ configuration, }) {
|
|
10
|
+
const ro = configuration.requestOptions();
|
|
12
11
|
if (ro.hostname !== 'localhost') {
|
|
13
12
|
return false;
|
|
14
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detectProcessCharacteristics.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/detectProcessCharacteristics.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,wDAA+B;AAC/B,sDAAyB;
|
|
1
|
+
{"version":3,"file":"detectProcessCharacteristics.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/detectProcessCharacteristics.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,wDAA+B;AAC/B,sDAAyB;AAGV,KAAK,UAAU,4BAA4B,CAAC,EACzD,aAAa,GACC;IACd,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAC1C,IAAI,EAAE,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IAED,yBAAE,CAAC,MAAM,GAAG,gDAAgD,EAAE,CAAC,IAAI,KAAK,CAAC;IAEzE,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,iBAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,GAAQ,EAAE,UAAiB;gBACtD,IAAI,GAAG,EAAE;oBACP,yBAAE,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC;oBAC7C,OAAO,EAAE,CAAC;iBACX;gBAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,OAAO,EAAE;oBACX,yBAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC;iBACX;qBAAM;oBACL,yBAAE,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;oBACrC,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAMF,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAqB,MAAM,IAAA,kBAAO,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACxD,KAAK,EAAE,IAAU,EAAE,EAAE;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,yBAAE,CAAC,KAAK,EAAE,CAAC;QACX,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,KAAK,CAAC;KACd;IAED,KAAK,UAAU,OAAO;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,sDAAsD;YAC/D,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AA/DD,+CA+DC"}
|
|
@@ -7,11 +7,10 @@ const fs_extra_1 = require("fs-extra");
|
|
|
7
7
|
const promises_1 = require("fs/promises");
|
|
8
8
|
const path_1 = require("path");
|
|
9
9
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
10
|
-
|
|
11
|
-
async function saveAppMap(jsonData, appMapName) {
|
|
10
|
+
async function saveAppMap({ configuration }, jsonData, appMapName) {
|
|
12
11
|
const data = JSON.stringify(jsonData);
|
|
13
12
|
const fileName = `${appMapName}.appmap.json`;
|
|
14
|
-
const outputDir = (0, path_1.join)(
|
|
13
|
+
const outputDir = (0, path_1.join)(configuration.configOption('appmap_dir', 'tmp/appmap'), 'remote');
|
|
15
14
|
await (0, fs_extra_1.mkdirp)(outputDir);
|
|
16
15
|
userInteraction_1.default.status = `Saving recording to ${fileName} in directory ${outputDir}`;
|
|
17
16
|
await (0, promises_1.writeFile)((0, path_1.join)(outputDir, fileName), data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveAppMap.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/saveAppMap.ts"],"names":[],"mappings":";;;;;AAAA,uCAAkC;AAClC,0CAAwC;AACxC,+BAA4B;AAC5B,4EAAuC;
|
|
1
|
+
{"version":3,"file":"saveAppMap.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/saveAppMap.ts"],"names":[],"mappings":";;;;;AAAA,uCAAkC;AAClC,0CAAwC;AACxC,+BAA4B;AAC5B,4EAAuC;AAGxB,KAAK,UAAU,UAAU,CACtC,EAAE,aAAa,EAAiB,EAChC,QAAa,EACb,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,GAAG,UAAU,cAAc,CAAC;IAC7C,MAAM,SAAS,GAAG,IAAA,WAAI,EACpB,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAW,EAChE,QAAQ,CACT,CAAC;IACF,MAAM,IAAA,iBAAM,EAAC,SAAS,CAAC,CAAC;IAExB,yBAAE,CAAC,MAAM,GAAG,uBAAuB,QAAQ,iBAAiB,SAAS,EAAE,CAAC;IAExE,MAAM,IAAA,oBAAS,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAEjD,yBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B,OAAO,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AArBD,6BAqBC"}
|
|
@@ -4,12 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
|
-
const configuration_1 = require("../configuration");
|
|
8
7
|
const remoteRecording_1 = __importDefault(require("../remoteRecording"));
|
|
9
8
|
const nameAppMap_1 = __importDefault(require("./nameAppMap"));
|
|
10
9
|
const saveAppMap_1 = __importDefault(require("./saveAppMap"));
|
|
11
10
|
async function saveRecording(recordContext) {
|
|
12
|
-
const rr = new remoteRecording_1.default(
|
|
11
|
+
const rr = new remoteRecording_1.default(recordContext.configuration.requestOptions());
|
|
13
12
|
let data = await rr.stop();
|
|
14
13
|
if (data) {
|
|
15
14
|
userInteraction_1.default.success(`Recording has finished, with ${data.length} bytes of data.`);
|
|
@@ -26,7 +25,7 @@ async function saveRecording(recordContext) {
|
|
|
26
25
|
recordContext.appMapEventCount = jsonData.events.length;
|
|
27
26
|
}
|
|
28
27
|
const appMapName = await (0, nameAppMap_1.default)(jsonData);
|
|
29
|
-
return (0, saveAppMap_1.default)(jsonData, appMapName);
|
|
28
|
+
return (0, saveAppMap_1.default)(recordContext, jsonData, appMapName);
|
|
30
29
|
}
|
|
31
30
|
exports.default = saveRecording;
|
|
32
31
|
//# sourceMappingURL=saveRecording.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saveRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/saveRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;
|
|
1
|
+
{"version":3,"file":"saveRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/saveRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAEvC,yEAAiD;AACjD,8DAAsC;AACtC,8DAAsC;AAEvB,KAAK,UAAU,aAAa,CACzC,aAA4B;IAE5B,MAAM,EAAE,GAAG,IAAI,yBAAe,CAAC,aAAa,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7E,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,IAAI,EAAE;QACR,yBAAE,CAAC,OAAO,CAAC,gCAAgC,IAAI,CAAC,MAAM,iBAAiB,CAAC,CAAC;KAC1E;SAAM;QACL,yBAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC5D,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9B,aAAa,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACnC,OAAO;KACR;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QAC9B,aAAa,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;KACzD;IAED,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,IAAA,oBAAU,EAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AACzD,CAAC;AAvBD,gCAuBC"}
|
|
@@ -4,10 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
|
-
const configuration_1 = require("../configuration");
|
|
8
7
|
const remoteRecording_1 = __importDefault(require("../remoteRecording"));
|
|
9
|
-
async function startRecording() {
|
|
10
|
-
const ro =
|
|
8
|
+
async function startRecording({ configuration }) {
|
|
9
|
+
const ro = configuration.requestOptions();
|
|
11
10
|
userInteraction_1.default.progress('');
|
|
12
11
|
await userInteraction_1.default.continue('Press enter to start recording');
|
|
13
12
|
const rr = new remoteRecording_1.default(ro);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/startRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;
|
|
1
|
+
{"version":3,"file":"startRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/startRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAEvC,yEAAiD;AAElC,KAAK,UAAU,cAAc,CAAC,EAAE,aAAa,EAAiB;IAC3E,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAE1C,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,yBAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IAEpD,MAAM,EAAE,GAAG,IAAI,yBAAe,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAEjB,yBAAE,CAAC,QAAQ,CAAC;;CAEb,CAAC,CAAC;AACH,CAAC;AAZD,iCAYC"}
|
|
@@ -5,10 +5,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const testCaseRecording_1 = __importDefault(require("../testCaseRecording"));
|
|
7
7
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
async function startTestCases(context) {
|
|
9
|
+
const { configuration } = context;
|
|
10
10
|
if (Boolean(process.stdout.isTTY)) {
|
|
11
|
-
const defaultMaxTime =
|
|
11
|
+
const defaultMaxTime = configuration.setting('test_recording.max_time', 30);
|
|
12
12
|
let maxTime;
|
|
13
13
|
do {
|
|
14
14
|
maxTime = (await userInteraction_1.default.prompt({
|
|
@@ -20,9 +20,10 @@ async function startTestCases() {
|
|
|
20
20
|
maxTime = Number(maxTime);
|
|
21
21
|
} while (Number.isNaN(maxTime));
|
|
22
22
|
if (maxTime !== defaultMaxTime)
|
|
23
|
-
|
|
23
|
+
configuration.setSetting('test_recording.max_time', maxTime);
|
|
24
|
+
await configuration.write();
|
|
24
25
|
}
|
|
25
|
-
await testCaseRecording_1.default.start();
|
|
26
|
+
await testCaseRecording_1.default.start(context);
|
|
26
27
|
}
|
|
27
28
|
exports.default = startTestCases;
|
|
28
29
|
//# sourceMappingURL=startTestCases.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startTestCases.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/startTestCases.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AACrD,4EAAuC;
|
|
1
|
+
{"version":3,"file":"startTestCases.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/startTestCases.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AACrD,4EAAuC;AAGxB,KAAK,UAAU,cAAc,CAAC,OAAsB;IACjE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACjC,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;QAC5E,IAAI,OAA2B,CAAC;QAChC,GAAG;YACD,OAAO,GAAG,CACR,MAAM,yBAAE,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EACL,qFAAqF;gBACvF,OAAO,EAAE,cAAc;aACxB,CAAC,CACH,CAAC,SAAS,CAAC,CAAC;YACb,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;SAC3B,QAAQ,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAChC,IAAI,OAAO,KAAK,cAAc;YAC5B,aAAa,CAAC,UAAU,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;KAC7B;IAED,MAAM,2BAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAvBD,iCAuBC"}
|
|
@@ -3,14 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
const
|
|
6
|
+
exports.TestCommand = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
8
|
const promises_1 = require("fs/promises");
|
|
9
9
|
const js_yaml_1 = require("js-yaml");
|
|
10
10
|
const path_1 = require("path");
|
|
11
11
|
const testCaseRecording_1 = __importDefault(require("./testCaseRecording"));
|
|
12
|
-
let AppMapConfigFilePath = 'appmap.yml';
|
|
13
|
-
let AppMapSettingsFilePath = (0, path_1.join)(process.env.HOME || '', '.appmaprc');
|
|
14
12
|
class TestCommand {
|
|
15
13
|
constructor(command, env = {}) {
|
|
16
14
|
this.command = command;
|
|
@@ -21,27 +19,69 @@ class TestCommand {
|
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
exports.TestCommand = TestCommand;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
22
|
+
class Configuration {
|
|
23
|
+
constructor(appMapFile, settingsFile) {
|
|
24
|
+
this.configDirty = false;
|
|
25
|
+
this.settingsDirty = false;
|
|
26
|
+
this.appMapFile = appMapFile || 'appmap.yml';
|
|
27
|
+
this.settingsFile =
|
|
28
|
+
settingsFile || (0, path_1.join)(process.env.HOME || '', '.appmaprc');
|
|
29
|
+
}
|
|
30
|
+
async read() {
|
|
31
|
+
this.config = (await readConfig(this.appMapFile)) || {};
|
|
32
|
+
this.settings =
|
|
33
|
+
(await readAllSettings(this.settingsFile))[this.settingsKey()] || {};
|
|
34
|
+
}
|
|
35
|
+
async write() {
|
|
36
|
+
if (this.configDirty) {
|
|
37
|
+
await (0, promises_1.writeFile)(this.appMapFile, (0, js_yaml_1.dump)(this.config));
|
|
38
|
+
this.configDirty = false;
|
|
39
|
+
}
|
|
40
|
+
if (this.settingsDirty) {
|
|
41
|
+
const all = await readAllSettings(this.settingsFile);
|
|
42
|
+
(0, assert_1.default)(this.settings);
|
|
43
|
+
all[this.settingsKey()] = this.settings;
|
|
44
|
+
await (0, promises_1.writeFile)(this.settingsFile, (0, js_yaml_1.dump)(all));
|
|
45
|
+
this.settingsDirty = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
configOption(path, defaultValue) {
|
|
49
|
+
return findOption(this.config, path, defaultValue);
|
|
50
|
+
}
|
|
51
|
+
setConfigOption(path, value) {
|
|
52
|
+
mergeConfigData(this.config, path, value);
|
|
53
|
+
this.configDirty = true;
|
|
54
|
+
}
|
|
55
|
+
setting(path, defaultValue) {
|
|
56
|
+
return findOption(this.settings, path, defaultValue);
|
|
57
|
+
}
|
|
58
|
+
setSetting(path, value) {
|
|
59
|
+
mergeConfigData(this.settings, path, value);
|
|
60
|
+
this.settingsDirty = true;
|
|
61
|
+
}
|
|
62
|
+
requestOptions() {
|
|
63
|
+
const requestOptions = {};
|
|
64
|
+
requestOptions.hostname = this.setting('remote_recording.host', 'localhost').toString();
|
|
65
|
+
requestOptions.port = this.setting('remote_recording.port', 3000);
|
|
66
|
+
requestOptions.path = this.configOption('remote_recording.path', '/').toString();
|
|
67
|
+
requestOptions.protocol = this.configOption('remote_recording.protocol', 'http:').toString();
|
|
68
|
+
return requestOptions;
|
|
69
|
+
}
|
|
70
|
+
locationString() {
|
|
71
|
+
const ro = this.requestOptions();
|
|
72
|
+
return `${ro.protocol}//${ro.hostname}:${ro.port}${ro.path}`;
|
|
73
|
+
}
|
|
74
|
+
settingsKey() {
|
|
75
|
+
return (0, path_1.isAbsolute)(this.appMapFile)
|
|
76
|
+
? this.appMapFile
|
|
77
|
+
: (0, path_1.join)(process.cwd(), this.appMapFile);
|
|
78
|
+
}
|
|
39
79
|
}
|
|
40
|
-
exports.
|
|
41
|
-
async function readConfig() {
|
|
80
|
+
exports.default = Configuration;
|
|
81
|
+
async function readConfig(path) {
|
|
42
82
|
let fileContents;
|
|
43
83
|
try {
|
|
44
|
-
fileContents = await (0, promises_1.readFile)(
|
|
84
|
+
fileContents = await (0, promises_1.readFile)(path);
|
|
45
85
|
}
|
|
46
86
|
catch (_a) {
|
|
47
87
|
return {};
|
|
@@ -51,67 +91,24 @@ async function readConfig() {
|
|
|
51
91
|
config = (0, js_yaml_1.load)(fileContents.toString());
|
|
52
92
|
}
|
|
53
93
|
catch (err) {
|
|
54
|
-
console.warn(`Error parsing AppMap config file ${
|
|
94
|
+
console.warn(`Error parsing AppMap config file ${path}: ${err}`);
|
|
55
95
|
config = {};
|
|
56
96
|
}
|
|
57
97
|
return config;
|
|
58
98
|
}
|
|
59
|
-
|
|
60
|
-
function settingsKey() {
|
|
61
|
-
return (0, path_1.isAbsolute)(AppMapConfigFilePath)
|
|
62
|
-
? AppMapConfigFilePath
|
|
63
|
-
: (0, path_1.join)(process.cwd(), AppMapConfigFilePath);
|
|
64
|
-
}
|
|
65
|
-
async function readAllSettings() {
|
|
99
|
+
async function readAllSettings(path) {
|
|
66
100
|
let settings;
|
|
67
101
|
try {
|
|
68
|
-
const fileContents = await (0, promises_1.readFile)(
|
|
102
|
+
const fileContents = await (0, promises_1.readFile)(path);
|
|
69
103
|
settings = (0, js_yaml_1.load)(fileContents.toString());
|
|
70
104
|
// Make sure settings is an object.
|
|
71
|
-
settings[
|
|
105
|
+
settings['test'];
|
|
72
106
|
}
|
|
73
107
|
catch (_a) {
|
|
74
108
|
settings = {};
|
|
75
109
|
}
|
|
76
|
-
if (!settings[settingsKey()]) {
|
|
77
|
-
settings[settingsKey()] = {};
|
|
78
|
-
}
|
|
79
110
|
return settings;
|
|
80
111
|
}
|
|
81
|
-
exports.readAllSettings = readAllSettings;
|
|
82
|
-
async function readSettings() {
|
|
83
|
-
return (await readAllSettings())[settingsKey()];
|
|
84
|
-
}
|
|
85
|
-
async function writeConfig(config) {
|
|
86
|
-
await (0, promises_1.writeFile)(AppMapConfigFilePath, (0, js_yaml_1.dump)(config));
|
|
87
|
-
}
|
|
88
|
-
async function writeSettings(settings) {
|
|
89
|
-
await (0, promises_1.writeFile)(AppMapSettingsFilePath, (0, js_yaml_1.dump)(settings));
|
|
90
|
-
}
|
|
91
|
-
async function requestOptions() {
|
|
92
|
-
const requestOptions = {};
|
|
93
|
-
requestOptions.hostname = (await readSetting('remote_recording.host', 'localhost')).toString();
|
|
94
|
-
requestOptions.port = (await readSetting('remote_recording.port', 3000));
|
|
95
|
-
requestOptions.path = (await readConfigOption('remote_recording.path', '/')).toString();
|
|
96
|
-
requestOptions.protocol = (await readConfigOption('remote_recording.protocol', 'http:')).toString();
|
|
97
|
-
return requestOptions;
|
|
98
|
-
}
|
|
99
|
-
exports.requestOptions = requestOptions;
|
|
100
|
-
async function locationString() {
|
|
101
|
-
const ro = await requestOptions();
|
|
102
|
-
return `${ro.protocol}//${ro.hostname}:${ro.port}${ro.path}`;
|
|
103
|
-
}
|
|
104
|
-
exports.locationString = locationString;
|
|
105
|
-
async function readSetting(path, defaultValue) {
|
|
106
|
-
const settings = await readSettings();
|
|
107
|
-
return findOption(settings, path, defaultValue);
|
|
108
|
-
}
|
|
109
|
-
exports.readSetting = readSetting;
|
|
110
|
-
async function readConfigOption(path, defaultValue) {
|
|
111
|
-
const config = await readConfig();
|
|
112
|
-
return findOption(config, path, defaultValue);
|
|
113
|
-
}
|
|
114
|
-
exports.readConfigOption = readConfigOption;
|
|
115
112
|
function findOption(data, path, defaultValue) {
|
|
116
113
|
if (!data)
|
|
117
114
|
return defaultValue;
|
|
@@ -124,21 +121,6 @@ function findOption(data, path, defaultValue) {
|
|
|
124
121
|
}
|
|
125
122
|
return entry || defaultValue;
|
|
126
123
|
}
|
|
127
|
-
async function writeSetting(path, value) {
|
|
128
|
-
const allSettings = await readAllSettings();
|
|
129
|
-
const settings = allSettings[settingsKey()];
|
|
130
|
-
mergeConfigData(settings, path, value);
|
|
131
|
-
await writeSettings(allSettings);
|
|
132
|
-
}
|
|
133
|
-
exports.writeSetting = writeSetting;
|
|
134
|
-
async function writeConfigOption(path, value) {
|
|
135
|
-
const config = await readConfig();
|
|
136
|
-
if (!config)
|
|
137
|
-
return;
|
|
138
|
-
mergeConfigData(config, path, value);
|
|
139
|
-
await writeConfig(config);
|
|
140
|
-
}
|
|
141
|
-
exports.writeConfigOption = writeConfigOption;
|
|
142
124
|
function mergeConfigData(data, path, value) {
|
|
143
125
|
const tokens = path.split('.');
|
|
144
126
|
const lastToken = tokens.pop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/cmds/record/configuration.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../src/cmds/record/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RemoteRecordingError = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
class RemoteRecordingError extends Error {
|
|
9
|
+
constructor(description, statusCode, method, path, msg) {
|
|
10
|
+
super(msg);
|
|
11
|
+
this.description = description;
|
|
12
|
+
this.statusCode = statusCode;
|
|
13
|
+
this.method = method;
|
|
14
|
+
this.path = path;
|
|
15
|
+
}
|
|
16
|
+
toString() {
|
|
17
|
+
return `description: ${this.description}
|
|
18
|
+
status: ${this.statusCode}
|
|
19
|
+
response text: ${this.message}`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.RemoteRecordingError = RemoteRecordingError;
|
|
23
|
+
async function makeRequest(rr, path, method, description, statusCodes = [200, 201, 204], adapter) {
|
|
24
|
+
return new Promise((resolve, reject) => {
|
|
25
|
+
const { hostname: host, protocol, port } = rr.requestOptions;
|
|
26
|
+
const url = `${protocol}//${host}:${port}${path}`;
|
|
27
|
+
(0, axios_1.default)({
|
|
28
|
+
method,
|
|
29
|
+
url,
|
|
30
|
+
responseType: 'arraybuffer',
|
|
31
|
+
validateStatus: () => true,
|
|
32
|
+
adapter,
|
|
33
|
+
})
|
|
34
|
+
.then((response) => {
|
|
35
|
+
const statusCode = response.status;
|
|
36
|
+
const data = response.data.toString();
|
|
37
|
+
if (statusCodes.includes(statusCode)) {
|
|
38
|
+
resolve({ statusCode, data });
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
reject(new RemoteRecordingError(description, statusCode, method, path, data));
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
.catch((e) => {
|
|
45
|
+
reject(e);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
exports.default = makeRequest;
|
|
50
|
+
//# sourceMappingURL=makeRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeRequest.js","sourceRoot":"","sources":["../../../src/cmds/record/makeRequest.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA4C;AAG5C,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YACS,WAAmB,EACnB,UAAkB,EAClB,MAAc,EACd,IAAY,EACnB,GAAW;QAEX,KAAK,CAAC,GAAG,CAAC,CAAC;QANJ,gBAAW,GAAX,WAAW,CAAQ;QACnB,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAQ;IAIrB,CAAC;IAED,QAAQ;QACN,OAAO,gBAAgB,IAAI,CAAC,WAAW;UACjC,IAAI,CAAC,UAAU;iBACR,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;CACF;AAhBD,oDAgBC;AAEc,KAAK,UAAU,WAAW,CACvC,EAAmB,EACnB,IAAY,EACZ,MAAc,EACd,WAAmB,EACnB,cAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EACvC,OAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC;QAC7D,MAAM,GAAG,GAAG,GAAG,QAAQ,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAClD,IAAA,eAAK,EAAC;YACJ,MAAM;YACN,GAAG;YACH,YAAY,EAAE,aAAa;YAC3B,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;YAC1B,OAAO;SACR,CAAC;aACC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEtC,IAAI,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBACpC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,CACJ,IAAI,oBAAoB,CACtB,WAAW,EACX,UAAU,EACV,MAAM,EACN,IAAI,EACJ,IAAI,CACL,CACF,CAAC;aACH;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACX,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAxCD,8BAwCC"}
|
|
@@ -5,14 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ConfigurationAction = void 0;
|
|
7
7
|
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
8
|
-
const configuration_1 = require("../configuration");
|
|
9
8
|
var ConfigurationAction;
|
|
10
9
|
(function (ConfigurationAction) {
|
|
11
10
|
ConfigurationAction["HostAndPort"] = "Reconfigure host and port";
|
|
12
11
|
ConfigurationAction["RequestOptions"] = "Keep the host and port, and configure additional connection options";
|
|
13
12
|
})(ConfigurationAction = exports.ConfigurationAction || (exports.ConfigurationAction = {}));
|
|
14
|
-
async function continueWithRequestOptionConfiguration() {
|
|
15
|
-
userInteraction_1.default.progress(`I can't find your AppMap server process on port ${
|
|
13
|
+
async function continueWithRequestOptionConfiguration({ configuration, }) {
|
|
14
|
+
userInteraction_1.default.progress(`I can't find your AppMap server process on port ${configuration.requestOptions().port}.`);
|
|
16
15
|
userInteraction_1.default.progress('');
|
|
17
16
|
userInteraction_1.default.progress(`If you're sure it's running on that port, we can continue with extra configuration ` +
|
|
18
17
|
`options that may enable me to connect to the agent. ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continueWithRequestOptionConfiguration.js","sourceRoot":"","sources":["../../../../src/cmds/record/prompt/continueWithRequestOptionConfiguration.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAuC;
|
|
1
|
+
{"version":3,"file":"continueWithRequestOptionConfiguration.js","sourceRoot":"","sources":["../../../../src/cmds/record/prompt/continueWithRequestOptionConfiguration.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAuC;AAEvC,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,gEAAyC,CAAA;IACzC,6GAAsF,CAAA;AACxF,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAEc,KAAK,UAAU,sCAAsC,CAAC,EACnE,aAAa,GACC;IACd,yBAAE,CAAC,QAAQ,CACT,mDACE,aAAa,CAAC,cAAc,EAAE,CAAC,IACjC,GAAG,CACJ,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChB,yBAAE,CAAC,QAAQ,CACT,qFAAqF;QACnF,sDAAsD;QACtD,kEAAkE,CACrE,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QAC9C,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,mBAAmB,CAAC,WAAW;YAC/B,mBAAmB,CAAC,cAAc;SACnC;QACD,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,4BAA4B;KACtC,CAAC,CAAC;IACH,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AA1BD,yDA0BC"}
|
|
@@ -7,7 +7,7 @@ const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
|
7
7
|
const configuration_1 = require("../configuration");
|
|
8
8
|
const guessTestCommands_1 = __importDefault(require("../action/guessTestCommands"));
|
|
9
9
|
const testCaseRecording_1 = __importDefault(require("../testCaseRecording"));
|
|
10
|
-
async function obtainTestCommands() {
|
|
10
|
+
async function obtainTestCommands({ configuration, }) {
|
|
11
11
|
userInteraction_1.default.progress(``);
|
|
12
12
|
userInteraction_1.default.progress(`In order to record test cases, you need to provide a command that I can use to run the tests. ` +
|
|
13
13
|
`If your project has many test cases, ` +
|
|
@@ -22,7 +22,10 @@ async function obtainTestCommands() {
|
|
|
22
22
|
userInteraction_1.default.progress(configuration_1.TestCommand.toString(testCommand));
|
|
23
23
|
userInteraction_1.default.progress(``);
|
|
24
24
|
if (await userInteraction_1.default.confirm('Use this suggested test command?')) {
|
|
25
|
-
|
|
25
|
+
configuration.setConfigOption('test_recording.test_commands', [
|
|
26
|
+
testCommand,
|
|
27
|
+
]);
|
|
28
|
+
await configuration.write();
|
|
26
29
|
userInteraction_1.default.progress(``);
|
|
27
30
|
userInteraction_1.default.progress(`I've written this test command to your AppMap configuration file (appmap.yml). ` +
|
|
28
31
|
`The next time you run this program, it will be used automatically. You can change it in the appmap.yml ` +
|
|
@@ -66,9 +69,10 @@ async function obtainTestCommands() {
|
|
|
66
69
|
userInteraction_1.default.progress('');
|
|
67
70
|
confirmed = await userInteraction_1.default.confirm(`Continue with this command?`);
|
|
68
71
|
if (confirmed) {
|
|
69
|
-
|
|
72
|
+
configuration.setConfigOption('test_recording.test_commands', [
|
|
70
73
|
{ env, command: testCommand },
|
|
71
74
|
]);
|
|
75
|
+
await configuration.write();
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"obtainTestCommands.js","sourceRoot":"","sources":["../../../../src/cmds/record/prompt/obtainTestCommands.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"obtainTestCommands.js","sourceRoot":"","sources":["../../../../src/cmds/record/prompt/obtainTestCommands.ts"],"names":[],"mappings":"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"}
|