@appland/appmap 3.34.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.
Files changed (74) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/built/appmap.html +1 -1
  3. package/built/cli.js +2 -2
  4. package/built/cli.js.map +1 -1
  5. package/built/cmds/agentInstaller/install-agent.js +2 -2
  6. package/built/cmds/agentInstaller/install-agent.js.map +1 -1
  7. package/built/cmds/record/action/cancelRecording.js +2 -3
  8. package/built/cmds/record/action/cancelRecording.js.map +1 -1
  9. package/built/cmds/record/action/configureHostAndPort.js +6 -6
  10. package/built/cmds/record/action/configureHostAndPort.js.map +1 -1
  11. package/built/cmds/record/action/configureRemainingRequestOptions.js +7 -7
  12. package/built/cmds/record/action/configureRemainingRequestOptions.js.map +1 -1
  13. package/built/cmds/record/action/detectProcessCharacteristics.js +2 -3
  14. package/built/cmds/record/action/detectProcessCharacteristics.js.map +1 -1
  15. package/built/cmds/record/action/saveAppMap.js +2 -3
  16. package/built/cmds/record/action/saveAppMap.js.map +1 -1
  17. package/built/cmds/record/action/saveRecording.js +2 -3
  18. package/built/cmds/record/action/saveRecording.js.map +1 -1
  19. package/built/cmds/record/action/startRecording.js +2 -3
  20. package/built/cmds/record/action/startRecording.js.map +1 -1
  21. package/built/cmds/record/action/startTestCases.js +6 -5
  22. package/built/cmds/record/action/startTestCases.js.map +1 -1
  23. package/built/cmds/record/configuration.js +66 -84
  24. package/built/cmds/record/configuration.js.map +1 -1
  25. package/built/cmds/record/makeRequest.js +50 -0
  26. package/built/cmds/record/makeRequest.js.map +1 -0
  27. package/built/cmds/record/prompt/continueWithRequestOptionConfiguration.js +2 -3
  28. package/built/cmds/record/prompt/continueWithRequestOptionConfiguration.js.map +1 -1
  29. package/built/cmds/record/prompt/obtainTestCommands.js +7 -3
  30. package/built/cmds/record/prompt/obtainTestCommands.js.map +1 -1
  31. package/built/cmds/record/record.js +110 -83
  32. package/built/cmds/record/record.js.map +1 -1
  33. package/built/cmds/record/recordContext.js +11 -7
  34. package/built/cmds/record/recordContext.js.map +1 -1
  35. package/built/cmds/record/remoteRecording.js +7 -35
  36. package/built/cmds/record/remoteRecording.js.map +1 -1
  37. package/built/cmds/record/state/agentAvailableAndReady.js +2 -2
  38. package/built/cmds/record/state/agentAvailableAndReady.js.map +1 -1
  39. package/built/cmds/record/state/agentIsRecording.js +1 -1
  40. package/built/cmds/record/state/agentIsRecording.js.map +1 -1
  41. package/built/cmds/record/state/agentNotAvailable.js +37 -10
  42. package/built/cmds/record/state/agentNotAvailable.js.map +1 -1
  43. package/built/cmds/record/state/agentProcessNotRunning.js +2 -2
  44. package/built/cmds/record/state/agentProcessNotRunning.js.map +1 -1
  45. package/built/cmds/record/state/initial.js +6 -1
  46. package/built/cmds/record/state/initial.js.map +1 -1
  47. package/built/cmds/record/state/record_remote.js +3 -3
  48. package/built/cmds/record/state/record_remote.js.map +1 -1
  49. package/built/cmds/record/state/record_test.js +2 -2
  50. package/built/cmds/record/state/record_test.js.map +1 -1
  51. package/built/cmds/record/state/testCasesComplete.js +9 -6
  52. package/built/cmds/record/state/testCasesComplete.js.map +1 -1
  53. package/built/cmds/record/state/testCommandsAvailable.js +1 -1
  54. package/built/cmds/record/state/testCommandsAvailable.js.map +1 -1
  55. package/built/cmds/record/state/testCommandsNeeded.js +2 -2
  56. package/built/cmds/record/state/testCommandsNeeded.js.map +1 -1
  57. package/built/cmds/record/test/areTestCommandsConfigured.js +4 -4
  58. package/built/cmds/record/test/areTestCommandsConfigured.js.map +1 -1
  59. package/built/cmds/record/test/isAgentAvailable.js +12 -5
  60. package/built/cmds/record/test/isAgentAvailable.js.map +1 -1
  61. package/built/cmds/record/test/isRecordingInProgress.js +2 -3
  62. package/built/cmds/record/test/isRecordingInProgress.js.map +1 -1
  63. package/built/cmds/record/testCaseRecording.js +15 -14
  64. package/built/cmds/record/testCaseRecording.js.map +1 -1
  65. package/built/cmds/runCommand.js +3 -1
  66. package/built/cmds/runCommand.js.map +1 -1
  67. package/built/fingerprint/fingerprintWatchCommand.js +12 -10
  68. package/built/fingerprint/fingerprintWatchCommand.js.map +1 -1
  69. package/built/lib/ticket/openTicket.js +30 -36
  70. package/built/lib/ticket/openTicket.js.map +1 -1
  71. package/built/lib/ticket/zendesk.js +3 -2
  72. package/built/lib/ticket/zendesk.js.map +1 -1
  73. package/built/main.js.map +1 -1
  74. package/package.json +4 -4
@@ -22,38 +22,65 @@ 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.NextStepChoices = void 0;
26
+ const openTicket_1 = __importDefault(require("../../../lib/ticket/openTicket"));
25
27
  const userInteraction_1 = __importDefault(require("../../userInteraction"));
26
28
  const configureRemainingRequestOptions_1 = __importDefault(require("../action/configureRemainingRequestOptions"));
27
29
  const detectProcessCharacteristics_1 = __importDefault(require("../action/detectProcessCharacteristics"));
28
30
  const continueWithRequestOptionConfiguration_1 = __importStar(require("../prompt/continueWithRequestOptionConfiguration"));
31
+ const abort_1 = __importDefault(require("./abort"));
29
32
  const agentProcessNotRunning_1 = __importDefault(require("./agentProcessNotRunning"));
30
33
  const record_remote_1 = __importDefault(require("./record_remote"));
34
+ exports.NextStepChoices = {
35
+ CONFIGURE: { name: 'Configure the path and protocol', value: 'configure' },
36
+ RELAUNCH: { name: 'Re-launch the server', value: 'relaunch' },
37
+ SUPPORT: { name: 'Contact support', value: 'support' },
38
+ };
31
39
  // The agent was not reachable using the configured settings. This may be because:
32
40
  // * The agent process isn't running.
33
41
  // * The agent process is running, but the agent isn't reachable (e.g. security filter?).
34
42
  // * The host/port parameters are wrong.
35
43
  // * The host/port parameters are right, but the agent URL is different than the default.
36
44
  async function agentNotAvailable(recordContext) {
37
- if (!(await (0, detectProcessCharacteristics_1.default)())) {
38
- if ((await (0, continueWithRequestOptionConfiguration_1.default)()) ===
45
+ var _a;
46
+ if (!(await (0, detectProcessCharacteristics_1.default)(recordContext))) {
47
+ if ((await (0, continueWithRequestOptionConfiguration_1.default)(recordContext)) ===
39
48
  continueWithRequestOptionConfiguration_1.ConfigurationAction.HostAndPort)
40
49
  return agentProcessNotRunning_1.default;
41
50
  }
42
51
  userInteraction_1.default.progress(`
43
52
  You've confirmed that your application process is running, but I'm unable to connect to the AppMap agent over HTTP. There are three common reasons for this:
44
53
 
45
- 1) The agent isn't configured to accept connections in this process. For example, the app isn't running with APPMAP=true (Ruby, Python), or the app isn't running with the AppMap agent enabled (Java).
46
- 2) The agent is enabled, but HTTP requests to the agent are being blocked by some application or framework code; for example, a security filter.
47
- 3) The agent is enabled and reachable, but it's mounted to a non-root URL path (e.g. /myapp), or the application server is only requesting HTTPS connections.
54
+ 1) The agent is enabled and reachable, but it's mounted to a non-root URL path (e.g. /myapp), or the application server is only requesting HTTPS connections.
55
+ 2) The agent isn't configured to accept connections in this process. For example, the app isn't running with APPMAP=true (Ruby, Python), or the app isn't running with the AppMap agent enabled (Java).
56
+ 3) The agent is enabled, but HTTP requests to the agent are being blocked by some application or framework code; for example, a security filter.
48
57
 
49
- For case (1), you'll need to re-launch the server with the agent enabled.
58
+ For case (1), you can configure the application URL path and protocol.
50
59
 
51
- For case (2), you should contact AppMap support for help with troubleshooting.
60
+ For case (2), you'll need to re-launch the server with the agent enabled.
52
61
 
53
- For case (3), you can configure the application URL path and protocol.
62
+ For case (3), you should contact AppMap support for help with troubleshooting.
54
63
  `);
55
- await (0, configureRemainingRequestOptions_1.default)();
56
- await recordContext.populateURL();
64
+ const { option } = await userInteraction_1.default.prompt({
65
+ type: 'list',
66
+ name: 'option',
67
+ message: 'Which would you like to do?',
68
+ choices: Object.values(exports.NextStepChoices),
69
+ });
70
+ switch (option) {
71
+ case exports.NextStepChoices.CONFIGURE.value:
72
+ await (0, configureRemainingRequestOptions_1.default)(recordContext);
73
+ recordContext.populateURL();
74
+ break;
75
+ case exports.NextStepChoices.RELAUNCH.value:
76
+ await userInteraction_1.default.continue('Press enter when the server has been restarted');
77
+ break;
78
+ case exports.NextStepChoices.SUPPORT.value:
79
+ const details = ((_a = recordContext.remoteError) === null || _a === void 0 ? void 0 : _a.toString()) || '';
80
+ await (0, openTicket_1.default)(details);
81
+ return abort_1.default; // We're done
82
+ break;
83
+ }
57
84
  return record_remote_1.default;
58
85
  }
59
86
  exports.default = agentNotAvailable;
@@ -1 +1 @@
1
- {"version":3,"file":"agentNotAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentNotAvailable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAAuC;AAEvC,kHAA0F;AAC1F,0GAAkF;AAClF,2HAE0D;AAI1D,sFAA8D;AAC9D,oEAAsC;AAEtC,kFAAkF;AAClF,qCAAqC;AACrC,yFAAyF;AACzF,wCAAwC;AACxC,yFAAyF;AAC1E,KAAK,UAAU,iBAAiB,CAC7C,aAA4B;IAE5B,IAAI,CAAC,CAAC,MAAM,IAAA,sCAA4B,GAAE,CAAC,EAAE;QAC3C,IACE,CAAC,MAAM,IAAA,gDAAsC,GAAE,CAAC;YAChD,4DAAmB,CAAC,WAAW;YAE/B,OAAO,gCAAsB,CAAC;KACjC;IAED,yBAAE,CAAC,QAAQ,CACT;;;;;;;;;;;;CAYH,CACE,CAAC;IAEF,MAAM,IAAA,0CAAgC,GAAE,CAAC;IAEzC,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;IAElC,OAAO,uBAAO,CAAC;AACjB,CAAC;AAhCD,oCAgCC"}
1
+ {"version":3,"file":"agentNotAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentNotAvailable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gFAAwD;AACxD,4EAAuC;AACvC,kHAA0F;AAC1F,0GAAkF;AAClF,2HAE0D;AAG1D,oDAA4B;AAC5B,sFAA8D;AAC9D,oEAAsC;AAEzB,QAAA,eAAe,GAAG;IAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,KAAK,EAAE,WAAW,EAAE;IAC1E,QAAQ,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,UAAU,EAAE;IAC7D,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE;CACvD,CAAC;AAEF,kFAAkF;AAClF,qCAAqC;AACrC,yFAAyF;AACzF,wCAAwC;AACxC,yFAAyF;AAC1E,KAAK,UAAU,iBAAiB,CAC7C,aAA4B;;IAE5B,IAAI,CAAC,CAAC,MAAM,IAAA,sCAA4B,EAAC,aAAa,CAAC,CAAC,EAAE;QACxD,IACE,CAAC,MAAM,IAAA,gDAAsC,EAAC,aAAa,CAAC,CAAC;YAC7D,4DAAmB,CAAC,WAAW;YAE/B,OAAO,gCAAsB,CAAC;KACjC;IAED,yBAAE,CAAC,QAAQ,CACT;;;;;;;;;;;;CAYH,CACE,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAe,CAAC;KACxC,CAAC,CAAC;IAEH,QAAQ,MAAM,EAAE;QACd,KAAK,uBAAe,CAAC,SAAS,CAAC,KAAK;YAClC,MAAM,IAAA,0CAAgC,EAAC,aAAa,CAAC,CAAC;YACtD,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM;QACR,KAAK,uBAAe,CAAC,QAAQ,CAAC,KAAK;YACjC,MAAM,yBAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;YACpE,MAAM;QACR,KAAK,uBAAe,CAAC,OAAO,CAAC,KAAK;YAChC,MAAM,OAAO,GAAG,CAAA,MAAA,aAAa,CAAC,WAAW,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;YAE5D,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,eAAK,CAAC,CAAC,aAAa;YAC3B,MAAM;KACT;IAED,OAAO,uBAAO,CAAC;AACjB,CAAC;AAnDD,oCAmDC"}
@@ -8,7 +8,7 @@ const configureHostAndPort_1 = __importDefault(require("../action/configureHostA
8
8
  const record_remote_1 = __importDefault(require("./record_remote"));
9
9
  // No process could be contact on the configured host and port.
10
10
  // Prompt the user to start the agent process, and then start over.
11
- async function agentProcessNotRunning() {
11
+ async function agentProcessNotRunning(context) {
12
12
  userInteraction_1.default.progress(`It looks like you need to start your app (make sure you have the AppMap agent enabled).`);
13
13
  userInteraction_1.default.progress(`Or maybe your app is running, but it's on a different host and/or port.`);
14
14
  userInteraction_1.default.progress(``);
@@ -23,7 +23,7 @@ async function agentProcessNotRunning() {
23
23
  Java: https://appland.com/docs/reference/appmap-java.html#remote-recording
24
24
  JavaScript: https://appland.com/docs/reference/appmap-agent-js.html#remote-recording
25
25
  `);
26
- await (0, configureHostAndPort_1.default)();
26
+ await (0, configureHostAndPort_1.default)(context);
27
27
  return record_remote_1.default;
28
28
  }
29
29
  exports.default = agentProcessNotRunning;
@@ -1 +1 @@
1
- {"version":3,"file":"agentProcessNotRunning.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentProcessNotRunning.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,0FAAkE;AAElE,oEAAsC;AAEtC,+DAA+D;AAC/D,mEAAmE;AACpD,KAAK,UAAU,sBAAsB;IAClD,yBAAE,CAAC,QAAQ,CACT,yFAAyF,CAC1F,CAAC;IACF,yBAAE,CAAC,QAAQ,CACT,yEAAyE,CAC1E,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhB,yBAAE,CAAC,QAAQ,CACT,wDAAwD;QACtD,oFAAoF;QACpF,gGAAgG;QAChG,wBAAwB,CAC3B,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC;;;;;;GAMX,CAAC,CAAC;IAEH,MAAM,IAAA,8BAAoB,GAAE,CAAC;IAE7B,OAAO,uBAAO,CAAC;AACjB,CAAC;AA1BD,yCA0BC"}
1
+ {"version":3,"file":"agentProcessNotRunning.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/agentProcessNotRunning.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,0FAAkE;AAGlE,oEAAsC;AAEtC,+DAA+D;AAC/D,mEAAmE;AACpD,KAAK,UAAU,sBAAsB,CAClD,OAAsB;IAEtB,yBAAE,CAAC,QAAQ,CACT,yFAAyF,CAC1F,CAAC;IACF,yBAAE,CAAC,QAAQ,CACT,yEAAyE,CAC1E,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEhB,yBAAE,CAAC,QAAQ,CACT,wDAAwD;QACtD,oFAAoF;QACpF,gGAAgG;QAChG,wBAAwB,CAC3B,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC;;;;;;GAMX,CAAC,CAAC;IAEH,MAAM,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;IAEpC,OAAO,uBAAO,CAAC;AACjB,CAAC;AA5BD,yCA4BC"}
@@ -22,7 +22,12 @@ 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.createState = void 0;
25
26
  const userInteraction_1 = __importDefault(require("../../userInteraction"));
27
+ async function createState(method) {
28
+ return (await Promise.resolve().then(() => __importStar(require(`./record_${method}`)))).default;
29
+ }
30
+ exports.createState = createState;
26
31
  async function initial(recordContext) {
27
32
  const choices = {
28
33
  'test cases': 'test',
@@ -36,7 +41,7 @@ async function initial(recordContext) {
36
41
  });
37
42
  const method = choices[methodName];
38
43
  recordContext.recordMethod = method;
39
- return (await Promise.resolve().then(() => __importStar(require(`./record_${method}`)))).default;
44
+ return createState.bind(null, method);
40
45
  }
41
46
  exports.default = initial;
42
47
  //# sourceMappingURL=initial.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"initial.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/initial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAAuC;AAIxB,KAAK,UAAU,OAAO,CACnC,aAA4B;IAE5B,MAAM,OAAO,GAAG;QACd,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnC,aAAa,CAAC,YAAY,GAAG,MAAM,CAAC;IACpC,OAAO,CAAC,wDAAa,YAAY,MAAM,EAAE,GAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAlBD,0BAkBC"}
1
+ {"version":3,"file":"initial.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/initial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAAuC;AAIhC,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,OAAO,CAAC,wDAAa,YAAY,MAAM,EAAE,GAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAFD,kCAEC;AAEc,KAAK,UAAU,OAAO,CACnC,aAA4B;IAE5B,MAAM,OAAO,GAAG;QACd,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QAC7C,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnC,aAAa,CAAC,YAAY,GAAG,MAAM,CAAC;IACpC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAlBD,0BAkBC"}
@@ -11,9 +11,9 @@ const agentNotAvailable_1 = __importDefault(require("./agentNotAvailable"));
11
11
  // This is the initial state of remote recording. From here, the connection to the AppMap
12
12
  // agent must be configured and verified, and then the recording will be run.
13
13
  async function remote(recordContext) {
14
- await recordContext.populateURL();
15
- if (await (0, isAgentAvailable_1.default)()) {
16
- if (!(await (0, isRecordingInProgress_1.default)())) {
14
+ recordContext.populateURL();
15
+ if (await (0, isAgentAvailable_1.default)(recordContext)) {
16
+ if (!(await (0, isRecordingInProgress_1.default)(recordContext))) {
17
17
  return agentAvailableAndReady_1.default;
18
18
  }
19
19
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"record_remote.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/record_remote.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwD;AACxD,0FAAkE;AAClE,sFAA8D;AAC9D,0EAAkD;AAClD,4EAAoD;AAIpD,yFAAyF;AACzF,6EAA6E;AAC9D,KAAK,UAAU,MAAM,CAClC,aAA4B;IAE5B,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,IAAA,0BAAgB,GAAE,EAAE;QAC5B,IAAI,CAAC,CAAC,MAAM,IAAA,+BAAqB,GAAE,CAAC,EAAE;YACpC,OAAO,gCAAsB,CAAC;SAC/B;aAAM;YACL,OAAO,0BAAgB,CAAC;SACzB;KACF;SAAM;QACL,OAAO,2BAAiB,CAAC;KAC1B;AACH,CAAC;AAbD,yBAaC"}
1
+ {"version":3,"file":"record_remote.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/record_remote.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwD;AACxD,0FAAkE;AAClE,sFAA8D;AAC9D,0EAAkD;AAClD,4EAAoD;AAIpD,yFAAyF;AACzF,6EAA6E;AAC9D,KAAK,UAAU,MAAM,CAClC,aAA4B;IAE5B,aAAa,CAAC,WAAW,EAAE,CAAC;IAC5B,IAAI,MAAM,IAAA,0BAAgB,EAAC,aAAa,CAAC,EAAE;QACzC,IAAI,CAAC,CAAC,MAAM,IAAA,+BAAqB,EAAC,aAAa,CAAC,CAAC,EAAE;YACjD,OAAO,gCAAsB,CAAC;SAC/B;aAAM;YACL,OAAO,0BAAgB,CAAC;SACzB;KACF;SAAM;QACL,OAAO,2BAAiB,CAAC;KAC1B;AACH,CAAC;AAbD,yBAaC"}
@@ -9,8 +9,8 @@ const testCommandsAvailable_1 = __importDefault(require("./testCommandsAvailable
9
9
  // This is the initial state of test case recording. From here, the record command is
10
10
  // configured by the user and executed.
11
11
  async function test(recordContext) {
12
- if (await (0, areTestCommandsConfigured_1.default)()) {
13
- await recordContext.populateTestCommands();
12
+ if (await (0, areTestCommandsConfigured_1.default)(recordContext)) {
13
+ recordContext.populateTestCommands();
14
14
  return testCommandsAvailable_1.default;
15
15
  }
16
16
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"record_test.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/record_test.ts"],"names":[],"mappings":";;;;;AAAA,kGAA0E;AAE1E,8EAAsD;AACtD,oFAA4D;AAG5D,qFAAqF;AACrF,uCAAuC;AACxB,KAAK,UAAU,IAAI,CAChC,aAA4B;IAE5B,IAAI,MAAM,IAAA,mCAAyB,GAAE,EAAE;QACrC,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAE3C,OAAO,+BAAqB,CAAC;KAC9B;SAAM;QACL,OAAO,4BAAkB,CAAC;KAC3B;AACH,CAAC;AAVD,uBAUC"}
1
+ {"version":3,"file":"record_test.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/record_test.ts"],"names":[],"mappings":";;;;;AAAA,kGAA0E;AAE1E,8EAAsD;AACtD,oFAA4D;AAG5D,qFAAqF;AACrF,uCAAuC;AACxB,KAAK,UAAU,IAAI,CAChC,aAA4B;IAE5B,IAAI,MAAM,IAAA,mCAAyB,EAAC,aAAa,CAAC,EAAE;QAClD,aAAa,CAAC,oBAAoB,EAAE,CAAC;QAErC,OAAO,+BAAqB,CAAC;KAC9B;SAAM;QACL,OAAO,4BAAkB,CAAC;KAC3B;AACH,CAAC;AAVD,uBAUC"}
@@ -3,22 +3,25 @@ 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
+ const assert_1 = __importDefault(require("assert"));
6
7
  const chalk_1 = __importDefault(require("chalk"));
7
- const openTicket_1 = require("../../../lib/ticket/openTicket");
8
+ const openTicket_1 = __importDefault(require("../../../lib/ticket/openTicket"));
8
9
  const userInteraction_1 = __importDefault(require("../../userInteraction"));
9
10
  const printAppMapCount_1 = __importDefault(require("../action/printAppMapCount"));
10
11
  async function testCasesComplete(recordContext) {
12
+ var _a;
11
13
  // Handle command failures here, rather than in a separate state, so we maintain compatibility
12
14
  // with the Azure Function that processes telemetry events.
13
15
  if (recordContext.failures > 0 || recordContext.appMapsCreated === 0) {
14
16
  userInteraction_1.default.warn(`\n${chalk_1.default.yellow('!')} The test commands failed to create AppMaps\n`);
15
- const errors = recordContext.output || [
16
- `
17
- Test command failed with no output`,
18
- ];
19
- await (0, openTicket_1.openTicket)(errors);
17
+ const errors = ((_a = recordContext.output) === null || _a === void 0 ? void 0 : _a.join('\n').length) > 0
18
+ ? recordContext.output
19
+ : `[Test command failed with no output]`;
20
+ const helpMsg = ` If you want assistance, the test command, error message, exit code, and APPMAP environment variables can be uploaded securely to the AppMap ZenDesk support portal.`;
21
+ await (0, openTicket_1.default)(errors, helpMsg);
20
22
  return;
21
23
  }
24
+ (0, assert_1.default)(recordContext.appMapDir);
22
25
  await (0, printAppMapCount_1.default)(recordContext.appMapDir);
23
26
  return;
24
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testCasesComplete.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCasesComplete.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,+DAA4D;AAC5D,4EAAuC;AACvC,kFAA0D;AAG3C,KAAK,UAAU,iBAAiB,CAC7C,aAA4B;IAE5B,8FAA8F;IAC9F,2DAA2D;IAC3D,IAAI,aAAa,CAAC,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,cAAc,KAAK,CAAC,EAAE;QACpE,yBAAE,CAAC,IAAI,CACL,KAAK,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CACtE,CAAC;QAEF,MAAM,MAAM,GAAa,aAAa,CAAC,MAAM,IAAI;YAC/C;mCAC6B;SAC9B,CAAC;QACF,MAAM,IAAA,uBAAU,EAAC,MAAM,CAAC,CAAC;QAEzB,OAAO;KACR;IAED,MAAM,IAAA,0BAAgB,EAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO;AACT,CAAC;AAtBD,oCAsBC"}
1
+ {"version":3,"file":"testCasesComplete.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCasesComplete.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,kDAA0B;AAC1B,gFAAwD;AACxD,4EAAuC;AACvC,kFAA0D;AAG3C,KAAK,UAAU,iBAAiB,CAC7C,aAA4B;;IAE5B,8FAA8F;IAC9F,2DAA2D;IAC3D,IAAI,aAAa,CAAC,QAAQ,GAAG,CAAC,IAAI,aAAa,CAAC,cAAc,KAAK,CAAC,EAAE;QACpE,yBAAE,CAAC,IAAI,CACL,KAAK,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,+CAA+C,CACtE,CAAC;QAEF,MAAM,MAAM,GACV,CAAA,MAAA,aAAa,CAAC,MAAM,0CAAE,IAAI,CAAC,IAAI,EAAE,MAAM,IAAG,CAAC;YACzC,CAAC,CAAC,aAAa,CAAC,MAAM;YACtB,CAAC,CAAC,sCAAsC,CAAC;QAC7C,MAAM,OAAO,GAAG,sKAAsK,CAAC;QACvL,MAAM,IAAA,oBAAU,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAElC,OAAO;KACR;IAED,IAAA,gBAAM,EAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,IAAA,0BAAgB,EAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAEhD,OAAO;AACT,CAAC;AAxBD,oCAwBC"}
@@ -7,7 +7,7 @@ const startTestCases_1 = __importDefault(require("../action/startTestCases"));
7
7
  const testCasesRunning_1 = __importDefault(require("./testCasesRunning"));
8
8
  // Test cases are available and configured.
9
9
  async function testCommandsAvailable(recordContext) {
10
- await (0, startTestCases_1.default)();
10
+ await (0, startTestCases_1.default)(recordContext);
11
11
  await recordContext.populateMaxTime();
12
12
  return testCasesRunning_1.default;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testCommandsAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCommandsAvailable.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,0EAAkD;AAIlD,2CAA2C;AAC5B,KAAK,UAAU,qBAAqB,CACjD,aAA4B;IAE5B,MAAM,IAAA,wBAAc,GAAE,CAAC;IAEvB,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;IAEtC,OAAO,0BAAgB,CAAC;AAC1B,CAAC;AARD,wCAQC"}
1
+ {"version":3,"file":"testCommandsAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCommandsAvailable.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,0EAAkD;AAIlD,2CAA2C;AAC5B,KAAK,UAAU,qBAAqB,CACjD,aAA4B;IAE5B,MAAM,IAAA,wBAAc,EAAC,aAAa,CAAC,CAAC;IAEpC,MAAM,aAAa,CAAC,eAAe,EAAE,CAAC;IAEtC,OAAO,0BAAgB,CAAC;AAC1B,CAAC;AARD,wCAQC"}
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const obtainTestCommands_1 = __importDefault(require("../prompt/obtainTestCommands"));
7
7
  const testCommandsAvailable_1 = __importDefault(require("./testCommandsAvailable"));
8
8
  async function testCommandsNeeded(recordContext) {
9
- await (0, obtainTestCommands_1.default)();
10
- await recordContext.populateTestCommands();
9
+ await (0, obtainTestCommands_1.default)(recordContext);
10
+ recordContext.populateTestCommands();
11
11
  return testCommandsAvailable_1.default;
12
12
  }
13
13
  exports.default = testCommandsNeeded;
@@ -1 +1 @@
1
- {"version":3,"file":"testCommandsNeeded.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCommandsNeeded.ts"],"names":[],"mappings":";;;;;AAAA,sFAA8D;AAG9D,oFAA4D;AAE7C,KAAK,UAAU,kBAAkB,CAC9C,aAA4B;IAE5B,MAAM,IAAA,4BAAkB,GAAE,CAAC;IAE3B,MAAM,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAE3C,OAAO,+BAAqB,CAAC;AAC/B,CAAC;AARD,qCAQC"}
1
+ {"version":3,"file":"testCommandsNeeded.js","sourceRoot":"","sources":["../../../../src/cmds/record/state/testCommandsNeeded.ts"],"names":[],"mappings":";;;;;AAAA,sFAA8D;AAG9D,oFAA4D;AAE7C,KAAK,UAAU,kBAAkB,CAC9C,aAA4B;IAE5B,MAAM,IAAA,4BAAkB,EAAC,aAAa,CAAC,CAAC;IAExC,aAAa,CAAC,oBAAoB,EAAE,CAAC;IAErC,OAAO,+BAAqB,CAAC;AAC/B,CAAC;AARD,qCAQC"}
@@ -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 testCaseRecording_1 = __importDefault(require("../testCaseRecording"));
9
- async function areTestCasesConfigured() {
10
- let testCommands = (await (0, configuration_1.readConfigOption)('test_recording.test_commands', []));
8
+ async function areTestCasesConfigured({ configuration, }) {
9
+ let testCommands = configuration.configOption('test_recording.test_commands', []);
11
10
  if (testCommands && testCommands.length > 0) {
12
11
  userInteraction_1.default.progress(`The following test commands were provided by your AppMap configuration (appmap.yml):`);
13
12
  userInteraction_1.default.progress(``);
@@ -22,7 +21,8 @@ async function areTestCasesConfigured() {
22
21
  message: 'Use these test commands?',
23
22
  });
24
23
  if (!useTestCommands) {
25
- await (0, configuration_1.writeConfigOption)('test_recording.test_commands', []);
24
+ configuration.setConfigOption('test_recording.test_commands', []);
25
+ await configuration.write();
26
26
  }
27
27
  return useTestCommands;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"areTestCommandsConfigured.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/areTestCommandsConfigured.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAI0B;AAC1B,6EAAqD;AAEtC,KAAK,UAAU,sBAAsB;IAClD,IAAI,YAAY,GAA8B,CAAC,MAAM,IAAA,gCAAgB,EACnE,8BAA8B,EAC9B,EAAE,CACH,CAAkB,CAAC;IAEpB,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,yBAAE,CAAC,QAAQ,CACT,sFAAsF,CACvF,CAAC;QACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,WAAW,CAAC,GAAG,KAAf,WAAW,CAAC,GAAG,GAAK,EAAE,EAAC;YACvB,yBAAE,CAAC,QAAQ,CACT,GAAG,2BAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CACxE,CAAC;SACH;QACD,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAA,iCAAiB,EAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;SAC7D;QAED,OAAO,eAAe,CAAC;KACxB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAjCD,yCAiCC"}
1
+ {"version":3,"file":"areTestCommandsConfigured.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/areTestCommandsConfigured.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAGvC,6EAAqD;AAEtC,KAAK,UAAU,sBAAsB,CAAC,EACnD,aAAa,GACC;IACd,IAAI,YAAY,GAA8B,aAAa,CAAC,YAAY,CACtE,8BAA8B,EAC9B,EAAE,CACc,CAAC;IAEnB,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,yBAAE,CAAC,QAAQ,CACT,sFAAsF,CACvF,CAAC;QACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACtC,WAAW,CAAC,GAAG,KAAf,WAAW,CAAC,GAAG,GAAK,EAAE,EAAC;YACvB,yBAAE,CAAC,QAAQ,CACT,GAAG,2BAAiB,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,CACxE,CAAC;SACH;QACD,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,0BAA0B;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE;YACpB,aAAa,CAAC,eAAe,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;YAClE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,OAAO,eAAe,CAAC;KACxB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AApCD,yCAoCC"}
@@ -4,11 +4,12 @@ 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");
7
+ const makeRequest_1 = require("../makeRequest");
8
8
  const remoteRecording_1 = __importDefault(require("../remoteRecording"));
9
- async function isAgentAvailable() {
10
- const ro = await (0, configuration_1.requestOptions)();
11
- const location = await (0, configuration_1.locationString)();
9
+ async function isAgentAvailable(recordContext) {
10
+ const { configuration } = recordContext;
11
+ const ro = configuration.requestOptions();
12
+ const location = configuration.locationString();
12
13
  userInteraction_1.default.status = `Checking if the AppMap agent is available at ${location}`;
13
14
  try {
14
15
  await new remoteRecording_1.default(ro).status();
@@ -16,7 +17,13 @@ async function isAgentAvailable() {
16
17
  return true;
17
18
  }
18
19
  catch (e) {
19
- userInteraction_1.default.error(`AppMap agent is not avaliable at ${location}: ${e.toString()}`);
20
+ if (e instanceof makeRequest_1.RemoteRecordingError) {
21
+ recordContext.remoteError = e;
22
+ }
23
+ userInteraction_1.default.error(`AppMap agent is not available at ${location}.`);
24
+ if (await userInteraction_1.default.confirm(`Would you like to see the server's response?`)) {
25
+ userInteraction_1.default.error(e.toString());
26
+ }
20
27
  return false;
21
28
  }
22
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"isAgentAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/isAgentAvailable.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAAkE;AAClE,yEAAiD;AAElC,KAAK,UAAU,gBAAgB;IAC5C,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IACxC,yBAAE,CAAC,MAAM,GAAG,gDAAgD,QAAQ,EAAE,CAAC;IACvE,IAAI;QACF,MAAM,IAAI,yBAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvC,yBAAE,CAAC,OAAO,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;KACd;IAAC,OAAO,CAAM,EAAE;QACf,yBAAE,CAAC,KAAK,CAAC,oCAAoC,QAAQ,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAZD,mCAYC"}
1
+ {"version":3,"file":"isAgentAvailable.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/isAgentAvailable.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,gDAAsD;AAEtD,yEAAiD;AAElC,KAAK,UAAU,gBAAgB,CAC5C,aAA4B;IAE5B,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IACxC,MAAM,EAAE,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;IAChD,yBAAE,CAAC,MAAM,GAAG,gDAAgD,QAAQ,EAAE,CAAC;IACvE,IAAI;QACF,MAAM,IAAI,yBAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvC,yBAAE,CAAC,OAAO,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,IAAI,CAAC,YAAY,kCAAoB,EAAE;YACrC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;SAC/B;QACD,yBAAE,CAAC,KAAK,CAAC,oCAAoC,QAAQ,GAAG,CAAC,CAAC;QAC1D,IAAI,MAAM,yBAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,EAAE;YACpE,yBAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AArBD,mCAqBC"}
@@ -3,10 +3,9 @@ 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
- const configuration_1 = require("../configuration");
7
6
  const remoteRecording_1 = __importDefault(require("../remoteRecording"));
8
- async function isRecordingInProgress() {
9
- const status = await new remoteRecording_1.default(await (0, configuration_1.requestOptions)()).status();
7
+ async function isRecordingInProgress({ configuration, }) {
8
+ const status = await new remoteRecording_1.default(configuration.requestOptions()).status();
10
9
  return status.enabled === true;
11
10
  }
12
11
  exports.default = isRecordingInProgress;
@@ -1 +1 @@
1
- {"version":3,"file":"isRecordingInProgress.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/isRecordingInProgress.ts"],"names":[],"mappings":";;;;;AAAA,oDAAkD;AAClD,yEAAiD;AAElC,KAAK,UAAU,qBAAqB;IAEjD,MAAM,MAAM,GAAG,MAAM,IAAI,yBAAe,CAAC,MAAM,IAAA,8BAAc,GAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1E,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjC,CAAC;AAJD,wCAIC"}
1
+ {"version":3,"file":"isRecordingInProgress.js","sourceRoot":"","sources":["../../../../src/cmds/record/test/isRecordingInProgress.ts"],"names":[],"mappings":";;;;;AACA,yEAAiD;AAElC,KAAK,UAAU,qBAAqB,CAAC,EAClD,aAAa,GACC;IACd,MAAM,MAAM,GAAG,MAAM,IAAI,yBAAe,CACtC,aAAa,CAAC,cAAc,EAAE,CAC/B,CAAC,MAAM,EAAE,CAAC;IACX,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AACjC,CAAC;AAPD,wCAOC"}
@@ -7,7 +7,6 @@ const child_process_1 = require("child_process");
7
7
  const process_1 = require("process");
8
8
  const utils_1 = require("../../utils");
9
9
  const userInteraction_1 = __importDefault(require("../userInteraction"));
10
- const configuration_1 = require("./configuration");
11
10
  const recordContext_1 = require("./recordContext");
12
11
  let TestCommands = [];
13
12
  let TestCaseProcesses = [];
@@ -15,14 +14,14 @@ const DiagnosticCommands = {
15
14
  Gemfile: ['ruby -v', 'bundle info rails', 'bundle info actionpack'],
16
15
  };
17
16
  class TestCaseRecording {
18
- static async start() {
17
+ static async start({ configuration }) {
19
18
  TestCaseProcesses.forEach((process) => {
20
19
  if (process.pid)
21
20
  (0, process_1.kill)(process.pid);
22
21
  });
23
22
  TestCommands = [];
24
23
  TestCaseProcesses = [];
25
- let testCommands = (await (0, configuration_1.readConfigOption)('test_recording.test_commands', []));
24
+ let testCommands = configuration.configOption('test_recording.test_commands', []);
26
25
  if (testCommands.length === 0)
27
26
  throw new Error(`No test commands are configured`);
28
27
  if ((0, utils_1.verbose)()) {
@@ -46,23 +45,23 @@ class TestCaseRecording {
46
45
  TestCommands = testCommands;
47
46
  }
48
47
  static async waitFor(ctx) {
49
- let maxTime = (await (0, configuration_1.readSetting)('test_recording.max_time', -1));
48
+ let maxTime = ctx.configuration.setting('test_recording.max_time', -1);
50
49
  if (maxTime === -1)
51
50
  maxTime = undefined;
52
51
  if (maxTime)
53
52
  userInteraction_1.default.progress(`Running tests for up to ${maxTime} seconds`);
54
53
  let waitTime = maxTime;
55
- async function waitForProcess(process) {
56
- const commandStr = process.spawnargs.join(' ');
54
+ async function waitForProcess(childProcess) {
55
+ const commandStr = childProcess.spawnargs.join(' ');
57
56
  const startTime = Date.now();
58
57
  return new Promise((resolve) => {
59
- var _a, _b;
58
+ var _a, _b, _c, _d;
60
59
  let reported = false;
61
60
  let interruptTimeout;
62
61
  function interrupt() {
63
- if (process.pid) {
62
+ if (childProcess.pid) {
64
63
  userInteraction_1.default.progress(`Stopping test command after ${maxTime} seconds: ${commandStr}`);
65
- (0, process_1.kill)(process.pid, 'SIGTERM');
64
+ (0, process_1.kill)(childProcess.pid, 'SIGTERM');
66
65
  }
67
66
  }
68
67
  const output = [];
@@ -82,14 +81,16 @@ Test command failed with status code ${exitCode}: ${commandStr}`);
82
81
  }
83
82
  resolve({ exitCode, output: output.join() });
84
83
  }
85
- if (process.exitCode)
86
- return report(process.exitCode);
84
+ if (childProcess.exitCode)
85
+ return report(childProcess.exitCode);
87
86
  const onData = (data) => {
88
87
  output.push(data.toString());
89
88
  };
90
- (_a = process.stdout) === null || _a === void 0 ? void 0 : _a.on('data', onData);
91
- (_b = process.stderr) === null || _b === void 0 ? void 0 : _b.on('data', onData);
92
- process.on('exit', report);
89
+ (_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.pipe(process.stdout);
90
+ (_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.pipe(process.stderr);
91
+ (_c = childProcess.stdout) === null || _c === void 0 ? void 0 : _c.on('data', onData);
92
+ (_d = childProcess.stderr) === null || _d === void 0 ? void 0 : _d.on('data', onData);
93
+ childProcess.on('exit', report);
93
94
  if (waitTime) {
94
95
  interruptTimeout = setTimeout(interrupt, waitTime * 1000);
95
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testCaseRecording.js","sourceRoot":"","sources":["../../../src/cmds/record/testCaseRecording.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testCaseRecording.js","sourceRoot":"","sources":["../../../src/cmds/record/testCaseRecording.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,9 @@ async function runCommand(commandPrefix, fn) {
65
65
  flushTelemetry(exitCode_1.ExitCode.Error, err);
66
66
  }
67
67
  else {
68
- // idk why this wouldn't be an Error ^^
68
+ // You'll wind up here if the object thrown wasn't an instance of Error. An obvious way this
69
+ // can happen is `throw 'Fail'`. A less obvious way is rejecting a Promise with something
70
+ // other than an error, e.g. `reject('Fail')`.
69
71
  throw err;
70
72
  }
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/cmds/runCommand.ts"],"names":[],"mappings":";;;;;AAAA,qCAAuD;AACvD,oCAAmC;AACnC,wEAAmC;AACnC,kDAA0B;AAC1B,kDAAuC;AACvC,sDAAmD;AACnD,6DAAqC;AAErC,KAAK,UAAU,aAAa,KAAI,CAAC;AAEjC,SAAS,cAAc,CAAC,QAAkB,EAAE,GAAW;IACrD,mBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QACnB,wBAAwB;QACxB,0CAA0C;QAC1C,yDAAyD;QACzD,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAEc,KAAK,UAAU,UAAU,CACtC,aAAqB,EACrB,EAAsB;IAEtB,IAAI;QACF,MAAM,EAAE,EAAE,CAAC;QAEX,mBAAS,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,GAAG,aAAa,UAAU;SACjC,CAAC,CAAC;QAEH,cAAc,CAAC,CAAC,CAAC,CAAC;KACnB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,wBAAe,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE1B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,mBAAmB;gBACzC,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM,IAAI,GAAG,YAAY,mBAAU,EAAE;YACpC,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,GAAG,YAAY,KAAK,EAAE;YAC/B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,YAAY,EAAE,GAAG,CAAC,OAAO;oBACzB,UAAU,EAAE,GAAG,CAAC,KAAK;iBACtB;aACF,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,yBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,yBAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,yBAAE,CAAC,KAAK,CACN,uCAAuC,eAAK,CAAC,GAAG,CAC9C,SAAS,CACV,UAAU,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAC/B,CAAC;aACH;YACD,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACrC;aAAM;YACL,uCAAuC;YACvC,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AA1DD,6BA0DC"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/cmds/runCommand.ts"],"names":[],"mappings":";;;;;AAAA,qCAAuD;AACvD,oCAAmC;AACnC,wEAAmC;AACnC,kDAA0B;AAC1B,kDAAuC;AACvC,sDAAmD;AACnD,6DAAqC;AAErC,KAAK,UAAU,aAAa,KAAI,CAAC;AAEjC,SAAS,cAAc,CAAC,QAAkB,EAAE,GAAW;IACrD,mBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QACnB,wBAAwB;QACxB,0CAA0C;QAC1C,yDAAyD;QACzD,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAEc,KAAK,UAAU,UAAU,CACtC,aAAqB,EACrB,EAAsB;IAEtB,IAAI;QACF,MAAM,EAAE,EAAE,CAAC;QAEX,mBAAS,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,GAAG,aAAa,UAAU;SACjC,CAAC,CAAC;QAEH,cAAc,CAAC,CAAC,CAAC,CAAC;KACnB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,wBAAe,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE1B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,mBAAmB;gBACzC,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM,IAAI,GAAG,YAAY,mBAAU,EAAE;YACpC,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,GAAG,YAAY,KAAK,EAAE;YAC/B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,YAAY,EAAE,GAAG,CAAC,OAAO;oBACzB,UAAU,EAAE,GAAG,CAAC,KAAK;iBACtB;aACF,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,yBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,yBAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,yBAAE,CAAC,KAAK,CACN,uCAAuC,eAAK,CAAC,GAAG,CAC9C,SAAS,CACV,UAAU,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAC/B,CAAC;aACH;YACD,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACrC;aAAM;YACL,4FAA4F;YAC5F,yFAAyF;YACzF,8CAA8C;YAC9C,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AA5DD,6BA4DC"}
@@ -2,7 +2,7 @@
2
2
  const chokidar = require('chokidar');
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
- const { verbose } = require('../utils');
5
+ const { verbose, listAppMapFiles } = require('../utils');
6
6
  const FingerprintQueue = require('./fingerprintQueue');
7
7
  class FingerprintWatchCommand {
8
8
  constructor(directory) {
@@ -20,16 +20,18 @@ class FingerprintWatchCommand {
20
20
  this.pidfilePath = null;
21
21
  }
22
22
  }
23
- execute() {
23
+ async execute() {
24
+ this.fpQueue = new FingerprintQueue();
25
+ this.fpQueue.setCounterFn(() => {
26
+ this.numProcessed += 1;
27
+ });
28
+ // Index existing AppMap files
29
+ await listAppMapFiles(this.directory, (file) => this.fpQueue.push(file));
30
+ this.fpQueue.process();
31
+ this.watcher = chokidar.watch(`${this.directory}/**/*.appmap.json`, {
32
+ ignoreInitial: true,
33
+ });
24
34
  return new Promise((resolve) => {
25
- this.fpQueue = new FingerprintQueue();
26
- this.fpQueue.setCounterFn(() => {
27
- this.numProcessed += 1;
28
- });
29
- this.fpQueue.process();
30
- this.watcher = chokidar.watch(`${this.directory}/**/*.appmap.json`, {
31
- ignoreInitial: true,
32
- });
33
35
  this.watcher
34
36
  .on('add', this.added.bind(this))
35
37
  .on('change', this.changed.bind(this))
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.js"],"names":[],"mappings":"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"}