@appland/appmap 3.35.0 → 3.36.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 +7 -0
- package/built/appmap.html +1 -1
- package/built/cli.js +2 -2
- package/built/cli.js.map +1 -1
- package/built/cmds/agentInstaller/install-agent.js +2 -2
- package/built/cmds/agentInstaller/install-agent.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
|
@@ -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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"}
|
|
@@ -22,101 +22,128 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.handler = exports.builder = exports.describe = exports.command = void 0;
|
|
26
25
|
const utils_1 = require("../../utils");
|
|
27
26
|
const runCommand_1 = __importDefault(require("../runCommand"));
|
|
28
27
|
const showAppMap_1 = __importDefault(require("../open/showAppMap"));
|
|
29
28
|
const process_1 = require("process");
|
|
30
|
-
const initial_1 =
|
|
29
|
+
const initial_1 = __importStar(require("./state/initial"));
|
|
31
30
|
const telemetry_1 = __importDefault(require("../../telemetry"));
|
|
32
31
|
const recordContext_1 = __importDefault(require("./recordContext"));
|
|
33
|
-
const configuration_1 = require("./configuration");
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
args
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const recordContext = new recordContext_1.default(appmapDir);
|
|
67
|
-
await recordContext.initialize();
|
|
68
|
-
const { mode } = argv;
|
|
69
|
-
async function initialState() {
|
|
70
|
-
if (mode) {
|
|
71
|
-
recordContext.recordMethod = mode;
|
|
72
|
-
return (await Promise.resolve().then(() => __importStar(require(`./state/record_${mode}`)))).default;
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
return initial_1.default;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
let state = await initialState();
|
|
79
|
-
while (state && typeof state === 'function') {
|
|
80
|
-
if ((0, utils_1.verbose)())
|
|
81
|
-
console.warn(`Entering state: ${state.name}`);
|
|
82
|
-
let errorMessage;
|
|
83
|
-
let newState;
|
|
84
|
-
try {
|
|
85
|
-
newState = await state(recordContext);
|
|
32
|
+
const configuration_1 = __importDefault(require("./configuration"));
|
|
33
|
+
const openTicket_1 = __importDefault(require("../../lib/ticket/openTicket"));
|
|
34
|
+
const userInteraction_1 = __importDefault(require("../userInteraction"));
|
|
35
|
+
const makeRequest_1 = require("./makeRequest");
|
|
36
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
37
|
+
exports.default = {
|
|
38
|
+
command: 'record [mode]',
|
|
39
|
+
describe: 'Create an AppMap via interactive recording, aka remote recording.',
|
|
40
|
+
builder: (args) => {
|
|
41
|
+
args.positional('mode', {
|
|
42
|
+
type: 'string',
|
|
43
|
+
choices: ['test', 'remote'],
|
|
44
|
+
});
|
|
45
|
+
args.option('directory', {
|
|
46
|
+
describe: 'Working directory for the command.',
|
|
47
|
+
type: 'string',
|
|
48
|
+
alias: 'd',
|
|
49
|
+
});
|
|
50
|
+
args.option('appmap-config', {
|
|
51
|
+
describe: 'AppMap config file to check for default options.',
|
|
52
|
+
type: 'string',
|
|
53
|
+
alias: 'c',
|
|
54
|
+
});
|
|
55
|
+
return args.strict();
|
|
56
|
+
},
|
|
57
|
+
handler: async (argv) => {
|
|
58
|
+
(0, utils_1.verbose)(argv.verbose);
|
|
59
|
+
const commandFn = async () => {
|
|
60
|
+
const { directory, appmapConfig } = argv;
|
|
61
|
+
if (directory) {
|
|
62
|
+
if ((0, utils_1.verbose)())
|
|
63
|
+
console.log(`Using working directory ${directory}`);
|
|
64
|
+
(0, process_1.chdir)(directory);
|
|
86
65
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
66
|
+
const configuration = new configuration_1.default(appmapConfig);
|
|
67
|
+
const recordContext = new recordContext_1.default(configuration);
|
|
68
|
+
await recordContext.initialize();
|
|
69
|
+
const { mode } = argv;
|
|
70
|
+
async function initialState() {
|
|
71
|
+
if (mode) {
|
|
72
|
+
recordContext.recordMethod = mode;
|
|
73
|
+
return (0, initial_1.createState)(mode);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
return initial_1.default;
|
|
77
|
+
}
|
|
90
78
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (
|
|
94
|
-
|
|
79
|
+
let state = await initialState();
|
|
80
|
+
while (state && typeof state === 'function') {
|
|
81
|
+
if ((0, utils_1.verbose)())
|
|
82
|
+
console.warn(`Entering state: ${state.name}`);
|
|
83
|
+
let errorMessage;
|
|
84
|
+
let newState;
|
|
85
|
+
try {
|
|
86
|
+
newState = await state(recordContext);
|
|
95
87
|
}
|
|
88
|
+
catch (err) {
|
|
89
|
+
errorMessage = err.toString();
|
|
90
|
+
// TODO: consider making this more general, to open a ticket when any Error occurs.
|
|
91
|
+
if (err instanceof makeRequest_1.RemoteRecordingError) {
|
|
92
|
+
// If a request to the remote-recording endpoint fails, an AppMap won't be created, i.e.
|
|
93
|
+
// the final AppMap count will match the initial count.
|
|
94
|
+
recordContext.appMapCount = recordContext.initialAppMapCount;
|
|
95
|
+
await handleRemoteError(err);
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
throw err;
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
const properties = recordContext.properties();
|
|
102
|
+
if (errorMessage) {
|
|
103
|
+
properties.errorMessage = errorMessage;
|
|
104
|
+
}
|
|
105
|
+
telemetry_1.default.sendEvent({
|
|
106
|
+
name: `record:${state.name}`,
|
|
107
|
+
properties,
|
|
108
|
+
metrics: Object.assign({
|
|
109
|
+
duration: (0, utils_1.endTime)(),
|
|
110
|
+
}, recordContext.metrics()),
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
state = newState;
|
|
114
|
+
}
|
|
115
|
+
if (typeof state === 'string') {
|
|
96
116
|
telemetry_1.default.sendEvent({
|
|
97
|
-
name: `record
|
|
98
|
-
properties
|
|
99
|
-
|
|
117
|
+
name: `record:showAppMap`,
|
|
118
|
+
properties: {
|
|
119
|
+
fileName: state,
|
|
120
|
+
},
|
|
121
|
+
metrics: {
|
|
100
122
|
duration: (0, utils_1.endTime)(),
|
|
101
|
-
},
|
|
123
|
+
},
|
|
102
124
|
});
|
|
125
|
+
await (0, showAppMap_1.default)(state);
|
|
103
126
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
127
|
+
};
|
|
128
|
+
return (0, runCommand_1.default)('record', commandFn);
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
async function handleRemoteError(err) {
|
|
132
|
+
userInteraction_1.default.error(`Something went wrong when ${err.description}:
|
|
133
|
+
HTTP status: ${err.statusCode}
|
|
134
|
+
HTTP request: ${err.method} ${err.path}
|
|
135
|
+
`);
|
|
136
|
+
const message = `Would you like to see the server's response?`;
|
|
137
|
+
const result = await userInteraction_1.default.prompt({
|
|
138
|
+
name: 'showResponse',
|
|
139
|
+
type: 'confirm',
|
|
140
|
+
message,
|
|
141
|
+
prefix: chalk_1.default.red('!'),
|
|
142
|
+
}, { supressSpinner: true });
|
|
143
|
+
const { showResponse } = result;
|
|
144
|
+
if (showResponse) {
|
|
145
|
+
userInteraction_1.default.error(err.message);
|
|
146
|
+
}
|
|
147
|
+
await (0, openTicket_1.default)(err.toString());
|
|
120
148
|
}
|
|
121
|
-
exports.handler = handler;
|
|
122
149
|
//# sourceMappingURL=record.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/cmds/record/record.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../src/cmds/record/record.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.RecordProcessResult = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
8
|
const countAppMaps_1 = __importDefault(require("./action/countAppMaps"));
|
|
8
9
|
const configuration_1 = require("./configuration");
|
|
9
10
|
class RecordProcessResult {
|
|
@@ -21,10 +22,12 @@ class RecordProcessResult {
|
|
|
21
22
|
}
|
|
22
23
|
exports.RecordProcessResult = RecordProcessResult;
|
|
23
24
|
class RecordContext {
|
|
24
|
-
constructor(
|
|
25
|
-
this.
|
|
25
|
+
constructor(configuration) {
|
|
26
|
+
this.configuration = configuration;
|
|
26
27
|
}
|
|
27
28
|
async initialize() {
|
|
29
|
+
await this.configuration.read();
|
|
30
|
+
this.appMapDir = this.configuration.configOption('appmap_dir', '.');
|
|
28
31
|
this.initialAppMapCount = await (0, countAppMaps_1.default)(this.appMapDir);
|
|
29
32
|
}
|
|
30
33
|
properties() {
|
|
@@ -58,16 +61,17 @@ class RecordContext {
|
|
|
58
61
|
}
|
|
59
62
|
return result;
|
|
60
63
|
}
|
|
61
|
-
|
|
62
|
-
this.url =
|
|
64
|
+
populateURL() {
|
|
65
|
+
this.url = this.configuration.locationString();
|
|
63
66
|
}
|
|
64
|
-
|
|
65
|
-
this.testCommands =
|
|
67
|
+
populateTestCommands() {
|
|
68
|
+
this.testCommands = this.configuration.configOption('test_recording.test_commands', []).map(configuration_1.TestCommand.toString);
|
|
66
69
|
}
|
|
67
70
|
async populateMaxTime() {
|
|
68
|
-
this.maxTime =
|
|
71
|
+
this.maxTime = this.configuration.setting('test_recording.max_time', 30);
|
|
69
72
|
}
|
|
70
73
|
async populateAppMapCount() {
|
|
74
|
+
(0, assert_1.default)(this.appMapDir);
|
|
71
75
|
const appMapCount = await (0, countAppMaps_1.default)(this.appMapDir);
|
|
72
76
|
this.appMapCount = appMapCount;
|
|
73
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recordContext.js","sourceRoot":"","sources":["../../../src/cmds/record/recordContext.ts"],"names":[],"mappings":";;;;;;AAAA,yEAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"recordContext.js","sourceRoot":"","sources":["../../../src/cmds/record/recordContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const http_1 = require("http");
|
|
5
|
-
const HTTP = {
|
|
6
|
-
'http:': http_1.request,
|
|
7
|
-
'https:': https_1.request,
|
|
8
|
-
};
|
|
9
|
-
const makeRequest = async (rr, path, method, statusCodes = [200, 201, 204]) => {
|
|
10
|
-
const options = Object.assign({}, rr.requestOptions, {
|
|
11
|
-
path,
|
|
12
|
-
method,
|
|
13
|
-
});
|
|
14
|
-
const requestFn = HTTP[rr.requestOptions.protocol];
|
|
15
|
-
return new Promise((resolve, reject) => {
|
|
16
|
-
const req = requestFn(options, (res) => {
|
|
17
|
-
if (!statusCodes.includes(res.statusCode)) {
|
|
18
|
-
return reject(`HTTP status code ${res.statusCode}`);
|
|
19
|
-
}
|
|
20
|
-
let data = '';
|
|
21
|
-
res.setEncoding('utf8');
|
|
22
|
-
res.on('data', (chunk) => {
|
|
23
|
-
data += chunk;
|
|
24
|
-
});
|
|
25
|
-
res.on('end', () => {
|
|
26
|
-
resolve({ statusCode: res.statusCode, data });
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
req.on('error', (e) => {
|
|
30
|
-
reject(e.message);
|
|
31
|
-
});
|
|
32
|
-
req.end();
|
|
33
|
-
});
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
4
|
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const makeRequest_1 = __importDefault(require("./makeRequest"));
|
|
35
7
|
class RemoteRecording {
|
|
36
8
|
constructor(requestOptions) {
|
|
37
9
|
this.requestOptions = requestOptions;
|
|
38
10
|
}
|
|
39
11
|
async start() {
|
|
40
|
-
const statusCode = (await
|
|
12
|
+
const statusCode = (await (0, makeRequest_1.default)(this, `${this.requestOptions.path}_appmap/record`, 'POST', 'starting recording', [200, 201, 409])).statusCode;
|
|
41
13
|
if (statusCode < 300) {
|
|
42
14
|
return true;
|
|
43
15
|
}
|
|
@@ -46,10 +18,10 @@ class RemoteRecording {
|
|
|
46
18
|
}
|
|
47
19
|
}
|
|
48
20
|
async status() {
|
|
49
|
-
return JSON.parse((await
|
|
21
|
+
return JSON.parse((await (0, makeRequest_1.default)(this, `${this.requestOptions.path}_appmap/record`, 'GET', 'checking recording status')).data);
|
|
50
22
|
}
|
|
51
23
|
async stop() {
|
|
52
|
-
const { statusCode, data } = await
|
|
24
|
+
const { statusCode, data } = await (0, makeRequest_1.default)(this, `${this.requestOptions.path}_appmap/record`, 'DELETE', 'stopping recording', [200, 404]);
|
|
53
25
|
if (statusCode === 200) {
|
|
54
26
|
return data;
|
|
55
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteRecording.js","sourceRoot":"","sources":["../../../src/cmds/record/remoteRecording.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remoteRecording.js","sourceRoot":"","sources":["../../../src/cmds/record/remoteRecording.ts"],"names":[],"mappings":";;;;;AACA,gEAAwC;AAGxC,MAAqB,eAAe;IAClC,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;IAAG,CAAC;IAErD,KAAK,CAAC,KAAK;QACT,MAAM,UAAU,GAAG,CACjB,MAAM,IAAA,qBAAW,EACf,IAAI,EACJ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,gBAAgB,EAC3C,MAAM,EACN,oBAAoB,EACpB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAChB,CACF,CAAC,UAAU,CAAC;QAEb,IAAI,UAAU,GAAG,GAAG,EAAE;YACpB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,KAAK,CACf,CACE,MAAM,IAAA,qBAAW,EACf,IAAI,EACJ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,gBAAgB,EAC3C,KAAK,EACL,2BAA2B,CAC5B,CACF,CAAC,IAAI,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,qBAAW,EAC5C,IAAI,EACJ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,gBAAgB,EAC3C,QAAQ,EACR,oBAAoB,EACpB,CAAC,GAAG,EAAE,GAAG,CAAC,CACX,CAAC;QAEF,IAAI,UAAU,KAAK,GAAG,EAAE;YACtB,OAAO,IAAI,CAAC;SACb;aAAM;YACL,OAAO,IAAI,CAAC;SACb;IACH,CAAC;CACF;AAjDD,kCAiDC"}
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const startRecording_1 = __importDefault(require("../action/startRecording"));
|
|
7
7
|
const recordingInProgress_1 = __importDefault(require("./recordingInProgress"));
|
|
8
8
|
// The AppMap agent has been confirmed
|
|
9
|
-
async function agentAvailableAndReady() {
|
|
10
|
-
await (0, startRecording_1.default)();
|
|
9
|
+
async function agentAvailableAndReady(recordContext) {
|
|
10
|
+
await (0, startRecording_1.default)(recordContext);
|
|
11
11
|
return recordingInProgress_1.default;
|
|
12
12
|
}
|
|
13
13
|
exports.default = agentAvailableAndReady;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentAvailableAndReady.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentAvailableAndReady.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,gFAAwD;
|
|
1
|
+
{"version":3,"file":"agentAvailableAndReady.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentAvailableAndReady.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,gFAAwD;AAIxD,sCAAsC;AACvB,KAAK,UAAU,sBAAsB,CAClD,aAA4B;IAE5B,MAAM,IAAA,wBAAc,EAAC,aAAa,CAAC,CAAC;IACpC,OAAO,6BAAmB,CAAC;AAC7B,CAAC;AALD,yCAKC"}
|
|
@@ -30,7 +30,7 @@ const abort_1 = __importDefault(require("./abort"));
|
|
|
30
30
|
async function agentIsRecording(recordContext) {
|
|
31
31
|
const recordingAction = await (0, recordingInProgress_1.default)();
|
|
32
32
|
if (recordingAction === recordingInProgress_1.RecordingAction.Cancel) {
|
|
33
|
-
await (0, cancelRecording_1.default)();
|
|
33
|
+
await (0, cancelRecording_1.default)(recordContext);
|
|
34
34
|
return agentAvailableAndReady_1.default;
|
|
35
35
|
}
|
|
36
36
|
else if (recordingAction === recordingInProgress_1.RecordingAction.Save) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentIsRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentIsRecording.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAEuC;AACvC,gFAAwD;AACxD,sFAA+D;AAC/D,4EAAoD;AAEpD,oDAA4B;AAGb,KAAK,UAAU,gBAAgB,CAC5C,aAA4B;IAE5B,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAyB,GAAE,CAAC;IAE1D,IAAI,eAAe,KAAK,qCAAe,CAAC,MAAM,EAAE;QAC9C,MAAM,IAAA,yBAAe,
|
|
1
|
+
{"version":3,"file":"agentIsRecording.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentIsRecording.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAEuC;AACvC,gFAAwD;AACxD,sFAA+D;AAC/D,4EAAoD;AAEpD,oDAA4B;AAGb,KAAK,UAAU,gBAAgB,CAC5C,aAA4B;IAE5B,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAyB,GAAE,CAAC;IAE1D,IAAI,eAAe,KAAK,qCAAe,CAAC,MAAM,EAAE;QAC9C,MAAM,IAAA,yBAAe,EAAC,aAAa,CAAC,CAAC;QACrC,OAAO,gCAAuB,CAAC;KAChC;SAAM,IAAI,eAAe,KAAK,qCAAe,CAAC,IAAI,EAAE;QACnD,MAAM,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC;QACnC,OAAO,gCAAuB,CAAC;KAChC;SAAM;QACL,OAAO,eAAK,CAAC;KACd;AACH,CAAC;AAdD,mCAcC"}
|