@appland/appmap 3.19.0 → 3.22.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 (129) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/built/appmap.html +1 -1
  3. package/built/main.js.map +1 -1
  4. package/built/package.json +3 -1
  5. package/built/src/cmds/record/action/cancelRecording.js +14 -0
  6. package/built/src/cmds/record/action/cancelRecording.js.map +1 -0
  7. package/built/src/cmds/record/action/configureHostAndPort.js +35 -0
  8. package/built/src/cmds/record/action/configureHostAndPort.js.map +1 -0
  9. package/built/src/cmds/record/action/configureRemainingRequestOptions.js +36 -0
  10. package/built/src/cmds/record/action/configureRemainingRequestOptions.js.map +1 -0
  11. package/built/src/cmds/record/action/detectProcessCharacteristics.js +60 -0
  12. package/built/src/cmds/record/action/detectProcessCharacteristics.js.map +1 -0
  13. package/built/src/cmds/record/action/guessTestCommands.js +32 -0
  14. package/built/src/cmds/record/action/guessTestCommands.js.map +1 -0
  15. package/built/src/cmds/record/action/printAppMapCount.js +18 -0
  16. package/built/src/cmds/record/action/printAppMapCount.js.map +1 -0
  17. package/built/src/cmds/record/{createRecording.js → action/saveRecording.js} +9 -24
  18. package/built/src/cmds/record/action/saveRecording.js.map +1 -0
  19. package/built/src/cmds/record/action/startRecording.js +20 -0
  20. package/built/src/cmds/record/action/startRecording.js.map +1 -0
  21. package/built/src/cmds/record/action/startTestCases.js +24 -0
  22. package/built/src/cmds/record/action/startTestCases.js.map +1 -0
  23. package/built/src/cmds/record/action/stopRecording.js +11 -0
  24. package/built/src/cmds/record/action/stopRecording.js.map +1 -0
  25. package/built/src/cmds/record/configuration.js +145 -0
  26. package/built/src/cmds/record/configuration.js.map +1 -0
  27. package/built/src/cmds/record/prompt/obtainTestCommands.js +66 -0
  28. package/built/src/cmds/record/prompt/obtainTestCommands.js.map +1 -0
  29. package/built/src/cmds/record/prompt/recordingInProgress.js +29 -0
  30. package/built/src/cmds/record/prompt/recordingInProgress.js.map +1 -0
  31. package/built/src/cmds/record/record.js +61 -12
  32. package/built/src/cmds/record/record.js.map +1 -1
  33. package/built/src/cmds/record/state/abort.js +8 -0
  34. package/built/src/cmds/record/state/abort.js.map +1 -0
  35. package/built/src/cmds/record/state/agentAvailableAndReady.js +14 -0
  36. package/built/src/cmds/record/state/agentAvailableAndReady.js.map +1 -0
  37. package/built/src/cmds/record/state/agentIsRecording.js +45 -0
  38. package/built/src/cmds/record/state/agentIsRecording.js.map +1 -0
  39. package/built/src/cmds/record/state/agentNotAvailable.js +41 -0
  40. package/built/src/cmds/record/state/agentNotAvailable.js.map +1 -0
  41. package/built/src/cmds/record/state/agentProcessNotRunning.js +30 -0
  42. package/built/src/cmds/record/state/agentProcessNotRunning.js.map +1 -0
  43. package/built/src/cmds/record/state/initial.js +41 -0
  44. package/built/src/cmds/record/state/initial.js.map +1 -0
  45. package/built/src/cmds/record/state/record_remote.js +27 -0
  46. package/built/src/cmds/record/state/record_remote.js.map +1 -0
  47. package/built/src/cmds/record/state/record_test.js +20 -0
  48. package/built/src/cmds/record/state/record_test.js.map +1 -0
  49. package/built/src/cmds/record/state/recordingInProgress.js +14 -0
  50. package/built/src/cmds/record/state/recordingInProgress.js.map +1 -0
  51. package/built/src/cmds/record/state/recordingStopped.js +12 -0
  52. package/built/src/cmds/record/state/recordingStopped.js.map +1 -0
  53. package/built/src/cmds/record/state/testCasesComplete.js +15 -0
  54. package/built/src/cmds/record/state/testCasesComplete.js.map +1 -0
  55. package/built/src/cmds/record/state/testCasesRunning.js +13 -0
  56. package/built/src/cmds/record/state/testCasesRunning.js.map +1 -0
  57. package/built/src/cmds/record/state/testCommandsAvailable.js +14 -0
  58. package/built/src/cmds/record/state/testCommandsAvailable.js.map +1 -0
  59. package/built/src/cmds/record/state/testCommandsNeeded.js +13 -0
  60. package/built/src/cmds/record/state/testCommandsNeeded.js.map +1 -0
  61. package/built/src/cmds/record/test/areTestCommandsConfigured.js +32 -0
  62. package/built/src/cmds/record/test/areTestCommandsConfigured.js.map +1 -0
  63. package/built/src/cmds/record/test/isAgentAvailable.js +23 -0
  64. package/built/src/cmds/record/test/isAgentAvailable.js.map +1 -0
  65. package/built/src/cmds/record/test/isRecordingInProgress.js +13 -0
  66. package/built/src/cmds/record/test/isRecordingInProgress.js.map +1 -0
  67. package/built/src/cmds/record/testCaseRecording.js +111 -0
  68. package/built/src/cmds/record/testCaseRecording.js.map +1 -0
  69. package/built/src/cmds/record/types/exitCode.js +10 -0
  70. package/built/src/cmds/record/types/exitCode.js.map +1 -0
  71. package/built/src/cmds/record/types/fileName.js +3 -0
  72. package/built/src/cmds/record/types/fileName.js.map +1 -0
  73. package/built/src/cmds/record/types/remoteRecordingStatus.js +3 -0
  74. package/built/src/cmds/record/types/remoteRecordingStatus.js.map +1 -0
  75. package/built/src/cmds/record/types/state.js +3 -0
  76. package/built/src/cmds/record/types/state.js.map +1 -0
  77. package/built/src/cmds/userInteraction.js +11 -6
  78. package/built/src/cmds/userInteraction.js.map +1 -1
  79. package/built/src/openapi/command.js +33 -17
  80. package/built/src/openapi/command.js.map +1 -1
  81. package/built/src/openapi/index.js +28 -0
  82. package/built/src/openapi/index.js.map +1 -0
  83. package/built/src/openapi/method.js +54 -49
  84. package/built/src/openapi/method.js.map +1 -1
  85. package/built/src/openapi/model.js +19 -22
  86. package/built/src/openapi/model.js.map +1 -1
  87. package/built/src/openapi/objectSchema.js +47 -0
  88. package/built/src/openapi/objectSchema.js.map +1 -0
  89. package/built/src/openapi/parseHTTPServerRequests.js +11 -0
  90. package/built/src/openapi/parseHTTPServerRequests.js.map +1 -0
  91. package/built/src/openapi/path.js +13 -14
  92. package/built/src/openapi/path.js.map +1 -1
  93. package/built/src/openapi/provider.js +73 -0
  94. package/built/src/openapi/provider.js.map +1 -0
  95. package/built/src/openapi/response.js +37 -13
  96. package/built/src/openapi/response.js.map +1 -1
  97. package/built/src/openapi/rpcRequest.js +87 -0
  98. package/built/src/openapi/rpcRequest.js.map +1 -0
  99. package/built/src/openapi/schemaInferrer.js +59 -0
  100. package/built/src/openapi/schemaInferrer.js.map +1 -0
  101. package/built/src/openapi/securitySchemes.js +14 -39
  102. package/built/src/openapi/securitySchemes.js.map +1 -1
  103. package/built/src/openapi/statusCodes.js +68 -0
  104. package/built/src/openapi/statusCodes.js.map +1 -0
  105. package/built/src/openapi/util.js +67 -47
  106. package/built/src/openapi/util.js.map +1 -1
  107. package/built/src/telemetry.js.map +1 -1
  108. package/built/src/utils.js +1 -1
  109. package/built/src/utils.js.map +1 -1
  110. package/package.json +5 -3
  111. package/built/src/cmds/record/configureConnection.js +0 -16
  112. package/built/src/cmds/record/configureConnection.js.map +0 -1
  113. package/built/src/cmds/record/configureHostAndPort.js +0 -38
  114. package/built/src/cmds/record/configureHostAndPort.js.map +0 -1
  115. package/built/src/cmds/record/configureRemainingRequestOptions.js +0 -28
  116. package/built/src/cmds/record/configureRemainingRequestOptions.js.map +0 -1
  117. package/built/src/cmds/record/confirmProcessCharacteristics.js +0 -75
  118. package/built/src/cmds/record/confirmProcessCharacteristics.js.map +0 -1
  119. package/built/src/cmds/record/createRecording.js.map +0 -1
  120. package/built/src/cmds/record/intro.js +0 -22
  121. package/built/src/cmds/record/intro.js.map +0 -1
  122. package/built/src/cmds/record/ready.js +0 -19
  123. package/built/src/cmds/record/ready.js.map +0 -1
  124. package/built/src/cmds/record/testConnection.js +0 -35
  125. package/built/src/cmds/record/testConnection.js.map +0 -1
  126. package/built/src/openapi/schema.js +0 -34
  127. package/built/src/openapi/schema.js.map +0 -1
  128. package/built/src/openapi/settings.js +0 -10
  129. package/built/src/openapi/settings.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordingInProgress.js","sourceRoot":"","sources":["../../../../../src/cmds/record/prompt/recordingInProgress.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAuC;AAEvC,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,0CAAuB,CAAA;IACvB,+CAA4B,CAAA;AAC9B,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAEc,KAAK,UAAU,mBAAmB;IAC/C,yBAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;IACjE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QAC1C,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,eAAe,CAAC,MAAM;YACtB,eAAe,CAAC,IAAI;YACpB,eAAe,CAAC,KAAK;SACtB;QACD,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,kEAAkE;KAC5E,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC;AAbD,sCAaC"}
@@ -1,4 +1,23 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
2
21
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
23
  };
@@ -6,27 +25,57 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
25
  exports.handler = exports.builder = exports.describe = exports.command = void 0;
7
26
  const utils_1 = require("../../utils");
8
27
  const runCommand_1 = __importDefault(require("../runCommand"));
9
- const intro_1 = __importDefault(require("./intro"));
10
- const configureConnection_1 = __importDefault(require("./configureConnection"));
11
- const testConnection_1 = __importDefault(require("./testConnection"));
12
- const createRecording_1 = __importDefault(require("./createRecording"));
13
28
  const showAppMap_1 = __importDefault(require("../open/showAppMap"));
14
- exports.command = 'record';
29
+ const configuration_1 = require("./configuration");
30
+ const process_1 = require("process");
31
+ const initial_1 = __importDefault(require("./state/initial"));
32
+ exports.command = 'record [mode]';
15
33
  exports.describe = 'Create an AppMap via interactive recording, aka remote recording.';
16
34
  const builder = (args) => {
35
+ args.positional('mode', {
36
+ type: 'string',
37
+ choices: ['test', 'remote'],
38
+ });
39
+ args.option('directory', {
40
+ describe: 'Working directory for the command.',
41
+ type: 'string',
42
+ alias: 'd',
43
+ });
44
+ args.option('appmap-config', {
45
+ describe: 'AppMap config file to check for default options.',
46
+ type: 'string',
47
+ alias: 'c',
48
+ });
17
49
  return args.strict();
18
50
  };
19
51
  exports.builder = builder;
20
52
  const handler = async (argv) => {
21
53
  (0, utils_1.verbose)(argv.verbose);
22
54
  const commandFn = async () => {
23
- await (0, intro_1.default)();
24
- let requestOptions = {};
25
- await (0, configureConnection_1.default)(requestOptions);
26
- await (0, testConnection_1.default)(requestOptions);
27
- const appMapFile = await (0, createRecording_1.default)(requestOptions);
28
- if (appMapFile) {
29
- await (0, showAppMap_1.default)(appMapFile);
55
+ const { directory, appmapConfig } = argv;
56
+ if (directory) {
57
+ if ((0, utils_1.verbose)())
58
+ console.log(`Using working directory ${directory}`);
59
+ (0, process_1.chdir)(directory);
60
+ }
61
+ if (appmapConfig)
62
+ (0, configuration_1.setAppMapConfigFilePath)(appmapConfig);
63
+ const { mode } = argv;
64
+ let state;
65
+ if (mode) {
66
+ state = (await Promise.resolve().then(() => __importStar(require(`./state/record_${mode}`)))).default;
67
+ }
68
+ else {
69
+ state = initial_1.default;
70
+ }
71
+ while (state && typeof state === 'function') {
72
+ if ((0, utils_1.verbose)())
73
+ console.warn(`Entering state: ${state.name}`);
74
+ const newState = await state();
75
+ state = newState;
76
+ }
77
+ if (typeof state === 'string') {
78
+ await (0, showAppMap_1.default)(state);
30
79
  }
31
80
  };
32
81
  return (0, runCommand_1.default)(commandFn);
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/cmds/record/record.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAsC;AACtC,+DAAuC;AAEvC,oDAA4B;AAC5B,gFAAwD;AACxD,sEAA8C;AAC9C,wEAAgD;AAChD,oEAA4C;AAE/B,QAAA,OAAO,GAAG,QAAQ,CAAC;AACnB,QAAA,QAAQ,GACnB,mEAAmE,CAAC;AAE/D,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE;IAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;IACpC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,IAAA,eAAK,GAAE,CAAC;QAEd,IAAI,cAAc,GAAmB,EAAE,CAAC;QAExC,MAAM,IAAA,6BAAmB,EAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,IAAA,wBAAc,EAAC,cAAc,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAe,EAAC,cAAc,CAAC,CAAC;QACzD,IAAI,UAAU,EAAE;YACd,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;SAC9B;IACH,CAAC,CAAC;IAEF,OAAO,IAAA,oBAAU,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAjBW,QAAA,OAAO,WAiBlB"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/cmds/record/record.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,+DAAuC;AACvC,oEAA4C;AAE5C,mDAA0D;AAG1D,qCAAgC;AAEhC,8DAAsC;AAEzB,QAAA,OAAO,GAAG,eAAe,CAAC;AAC1B,QAAA,QAAQ,GACnB,mEAAmE,CAAC;AAE/D,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC1C,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QACvB,QAAQ,EAAE,oCAAoC;QAC9C,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;QAC3B,QAAQ,EAAE,kDAAkD;QAC5D,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,GAAG;KACX,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAnBW,QAAA,OAAO,WAmBlB;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IACzC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QACzC,IAAI,SAAS,EAAE;YACb,IAAI,IAAA,eAAO,GAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;YACnE,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;SAClB;QAED,IAAI,YAAY;YAAE,IAAA,uCAAuB,EAAC,YAAY,CAAC,CAAC;QAExD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,KAAiC,CAAC;QACtC,IAAI,IAAI,EAAE;YACR,KAAK,GAAG,CAAC,wDAAa,kBAAkB,IAAI,EAAE,GAAC,CAAC,CAAC,OAAgB,CAAC;SACnE;aAAM;YACL,KAAK,GAAG,iBAAO,CAAC;SACjB;QAED,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC3C,IAAI,IAAA,eAAO,GAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,EAAE,CAAC;YAC/B,KAAK,GAAG,QAAQ,CAAC;SAClB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAA,oBAAU,EAAC,KAAiB,CAAC,CAAC;SACrC;IACH,CAAC,CAAC;IAEF,OAAO,IAAA,oBAAU,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const exitCode_1 = require("../types/exitCode");
4
+ function abort() {
5
+ process.exit(exitCode_1.ExitCode.Quit);
6
+ }
7
+ exports.default = abort;
8
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/abort.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAG7C,SAAwB,KAAK;IAC3B,OAAO,CAAC,IAAI,CAAC,mBAAQ,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAFD,wBAEC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const startRecording_1 = __importDefault(require("../action/startRecording"));
7
+ const recordingInProgress_1 = __importDefault(require("./recordingInProgress"));
8
+ // The AppMap agent has been confirmed
9
+ async function agentAvailableAndReady() {
10
+ await (0, startRecording_1.default)();
11
+ return recordingInProgress_1.default;
12
+ }
13
+ exports.default = agentAvailableAndReady;
14
+ //# sourceMappingURL=agentAvailableAndReady.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentAvailableAndReady.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/agentAvailableAndReady.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,gFAAwD;AAGxD,sCAAsC;AACvB,KAAK,UAAU,sBAAsB;IAClD,MAAM,IAAA,wBAAc,GAAE,CAAC;IACvB,OAAO,6BAAmB,CAAC;AAC7B,CAAC;AAHD,yCAGC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const recordingInProgress_1 = __importStar(require("../prompt/recordingInProgress"));
26
+ const cancelRecording_1 = __importDefault(require("../action/cancelRecording"));
27
+ const agentAvailableAndReady_1 = __importDefault(require("./agentAvailableAndReady"));
28
+ const saveRecording_1 = __importDefault(require("../action/saveRecording"));
29
+ const abort_1 = __importDefault(require("./abort"));
30
+ async function agentIsRecording() {
31
+ const recordingAction = await (0, recordingInProgress_1.default)();
32
+ if (recordingAction === recordingInProgress_1.RecordingAction.Cancel) {
33
+ await (0, cancelRecording_1.default)();
34
+ return agentAvailableAndReady_1.default;
35
+ }
36
+ else if (recordingAction === recordingInProgress_1.RecordingAction.Save) {
37
+ await (0, saveRecording_1.default)();
38
+ return agentAvailableAndReady_1.default;
39
+ }
40
+ else {
41
+ return abort_1.default;
42
+ }
43
+ }
44
+ exports.default = agentIsRecording;
45
+ //# sourceMappingURL=agentIsRecording.js.map
@@ -0,0 +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;AAEb,KAAK,UAAU,gBAAgB;IAC5C,MAAM,eAAe,GAAG,MAAM,IAAA,6BAAyB,GAAE,CAAC;IAE1D,IAAI,eAAe,KAAK,qCAAe,CAAC,MAAM,EAAE;QAC9C,MAAM,IAAA,yBAAe,GAAE,CAAC;QACxB,OAAO,gCAAuB,CAAC;KAChC;SAAM,IAAI,eAAe,KAAK,qCAAe,CAAC,IAAI,EAAE;QACnD,MAAM,IAAA,uBAAa,GAAE,CAAC;QACtB,OAAO,gCAAuB,CAAC;KAChC;SAAM;QACL,OAAO,eAAK,CAAC;KACd;AACH,CAAC;AAZD,mCAYC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const userInteraction_1 = __importDefault(require("../../userInteraction"));
7
+ const configureRemainingRequestOptions_1 = __importDefault(require("../action/configureRemainingRequestOptions"));
8
+ const detectProcessCharacteristics_1 = __importDefault(require("../action/detectProcessCharacteristics"));
9
+ const isAgentAvailable_1 = __importDefault(require("../test/isAgentAvailable"));
10
+ const agentProcessNotRunning_1 = __importDefault(require("./agentProcessNotRunning"));
11
+ const record_remote_1 = __importDefault(require("./record_remote"));
12
+ // The agent was not reachable using the configured settings. This may be because:
13
+ // * The agent process isn't running.
14
+ // * The agent process is running, but the agent isn't reachable (e.g. security filter?).
15
+ // * The host/port parameters are wrong.
16
+ // * The host/port parameters are right, but the agent URL is different than the default.
17
+ async function agentNotAvailable() {
18
+ if (!(await (0, detectProcessCharacteristics_1.default)())) {
19
+ return agentProcessNotRunning_1.default;
20
+ }
21
+ if (await (0, isAgentAvailable_1.default)()) {
22
+ return record_remote_1.default;
23
+ }
24
+ userInteraction_1.default.progress(`
25
+ 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:
26
+
27
+ 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).
28
+ 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.
29
+ 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.
30
+
31
+ For case (1), you'll need to re-launch the server with the agent enabled.
32
+
33
+ For case (2), you should contact AppMap support for help with troubleshooting.
34
+
35
+ For case (3), you can configure the application URL path and protocol.
36
+ `);
37
+ await (0, configureRemainingRequestOptions_1.default)();
38
+ return record_remote_1.default;
39
+ }
40
+ exports.default = agentNotAvailable;
41
+ //# sourceMappingURL=agentNotAvailable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentNotAvailable.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/agentNotAvailable.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAEvC,kHAA0F;AAC1F,0GAAkF;AAClF,gFAAwD;AAExD,sFAA8D;AAC9D,oEAAsC;AAEtC,kFAAkF;AAClF,qCAAqC;AACrC,yFAAyF;AACzF,wCAAwC;AACxC,yFAAyF;AAC1E,KAAK,UAAU,iBAAiB;IAC7C,IAAI,CAAC,CAAC,MAAM,IAAA,sCAA4B,GAAE,CAAC,EAAE;QAC3C,OAAO,gCAAsB,CAAC;KAC/B;IAED,IAAI,MAAM,IAAA,0BAAgB,GAAE,EAAE;QAC5B,OAAO,uBAAO,CAAC;KAChB;IAED,yBAAE,CAAC,QAAQ,CACT;;;;;;;;;;;;CAYH,CACE,CAAC;IAEF,MAAM,IAAA,0CAAgC,GAAE,CAAC;IAEzC,OAAO,uBAAO,CAAC;AACjB,CAAC;AA5BD,oCA4BC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const userInteraction_1 = __importDefault(require("../../userInteraction"));
7
+ const configureHostAndPort_1 = __importDefault(require("../action/configureHostAndPort"));
8
+ const record_remote_1 = __importDefault(require("./record_remote"));
9
+ // No process could be contact on the configured host and port.
10
+ // Prompt the user to start the agent process, and then start over.
11
+ async function agentProcessNotRunning() {
12
+ userInteraction_1.default.progress(`It looks like you need to start your app (make sure you have the AppMap agent enabled).`);
13
+ userInteraction_1.default.progress(`Or maybe your app is running, but it's on a different host and/or port.`);
14
+ userInteraction_1.default.progress(``);
15
+ userInteraction_1.default.progress(`To create a recording, you need to run your app using ` +
16
+ `the instructions in the AppMap documentation. Choose the most suitable link here, ` +
17
+ `then configure and launch your app process. Once you've done that, come back to this terminal ` +
18
+ `and we will try again.`);
19
+ userInteraction_1.default.progress(`
20
+ Rails: https://appland.com/docs/reference/appmap-ruby.html#remote-recording
21
+ Django: https://appland.com/docs/reference/appmap-python.html#django
22
+ Flask: https://appland.com/docs/reference/appmap-python.html#flask
23
+ Java: https://appland.com/docs/reference/appmap-java.html#remote-recording
24
+ JavaScript: https://appland.com/docs/reference/appmap-agent-js.html#remote-recording
25
+ `);
26
+ await (0, configureHostAndPort_1.default)();
27
+ return record_remote_1.default;
28
+ }
29
+ exports.default = agentProcessNotRunning;
30
+ //# sourceMappingURL=agentProcessNotRunning.js.map
@@ -0,0 +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"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const userInteraction_1 = __importDefault(require("../../userInteraction"));
26
+ async function initial() {
27
+ const choices = {
28
+ 'remote recording': 'remote',
29
+ 'test cases': 'test',
30
+ };
31
+ const { method: methodName } = await userInteraction_1.default.prompt({
32
+ name: 'method',
33
+ type: 'list',
34
+ message: 'Choose recording method:',
35
+ choices: Object.keys(choices),
36
+ });
37
+ const method = choices[methodName];
38
+ return (await Promise.resolve().then(() => __importStar(require(`./record_${method}`)))).default;
39
+ }
40
+ exports.default = initial;
41
+ //# sourceMappingURL=initial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initial.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/initial.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAAuC;AAGxB,KAAK,UAAU,OAAO;IACnC,MAAM,OAAO,GAAG;QACd,kBAAkB,EAAE,QAAQ;QAC5B,YAAY,EAAE,MAAM;KACrB,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;IACnC,OAAO,CAAC,wDAAa,YAAY,MAAM,EAAE,GAAC,CAAC,CAAC,OAAO,CAAC;AACtD,CAAC;AAdD,0BAcC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const isAgentAvailable_1 = __importDefault(require("../test/isAgentAvailable"));
7
+ const isRecordingInProgress_1 = __importDefault(require("../test/isRecordingInProgress"));
8
+ const agentAvailableAndReady_1 = __importDefault(require("./agentAvailableAndReady"));
9
+ const agentIsRecording_1 = __importDefault(require("./agentIsRecording"));
10
+ const agentNotAvailable_1 = __importDefault(require("./agentNotAvailable"));
11
+ // This is the initial state of remote recording. From here, the connection to the AppMap
12
+ // agent must be configured and verified, and then the recording will be run.
13
+ async function remote() {
14
+ if (await (0, isAgentAvailable_1.default)()) {
15
+ if (!(await (0, isRecordingInProgress_1.default)())) {
16
+ return agentAvailableAndReady_1.default;
17
+ }
18
+ else {
19
+ return agentIsRecording_1.default;
20
+ }
21
+ }
22
+ else {
23
+ return agentNotAvailable_1.default;
24
+ }
25
+ }
26
+ exports.default = remote;
27
+ //# sourceMappingURL=record_remote.js.map
@@ -0,0 +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;AAGpD,yFAAyF;AACzF,6EAA6E;AAC9D,KAAK,UAAU,MAAM;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;AAVD,yBAUC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const areTestCommandsConfigured_1 = __importDefault(require("../test/areTestCommandsConfigured"));
7
+ const testCommandsNeeded_1 = __importDefault(require("./testCommandsNeeded"));
8
+ const testCommandsAvailable_1 = __importDefault(require("./testCommandsAvailable"));
9
+ // This is the initial state of test case recording. From here, the record command is
10
+ // configured by the user and executed.
11
+ async function test() {
12
+ if (await (0, areTestCommandsConfigured_1.default)()) {
13
+ return testCommandsAvailable_1.default;
14
+ }
15
+ else {
16
+ return testCommandsNeeded_1.default;
17
+ }
18
+ }
19
+ exports.default = test;
20
+ //# sourceMappingURL=record_test.js.map
@@ -0,0 +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;AAE5D,qFAAqF;AACrF,uCAAuC;AACxB,KAAK,UAAU,IAAI;IAChC,IAAI,MAAM,IAAA,mCAAyB,GAAE,EAAE;QACrC,OAAO,+BAAqB,CAAC;KAC9B;SAAM;QACL,OAAO,4BAAkB,CAAC;KAC3B;AACH,CAAC;AAND,uBAMC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const stopRecording_1 = __importDefault(require("../action/stopRecording"));
7
+ const recordingStopped_1 = __importDefault(require("./recordingStopped"));
8
+ // User has started the recording and is now performing the actions that will be recorded.
9
+ async function recordingInProgress() {
10
+ await (0, stopRecording_1.default)();
11
+ return recordingStopped_1.default;
12
+ }
13
+ exports.default = recordingInProgress;
14
+ //# sourceMappingURL=recordingInProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordingInProgress.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/recordingInProgress.ts"],"names":[],"mappings":";;;;;AAAA,4EAAoD;AAEpD,0EAAkD;AAElD,0FAA0F;AAC3E,KAAK,UAAU,mBAAmB;IAC/C,MAAM,IAAA,uBAAa,GAAE,CAAC;IACtB,OAAO,0BAAgB,CAAC;AAC1B,CAAC;AAHD,sCAGC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const saveRecording_1 = __importDefault(require("../action/saveRecording"));
7
+ // Recording has been completed.
8
+ async function recordingStopped() {
9
+ return (0, saveRecording_1.default)();
10
+ }
11
+ exports.default = recordingStopped;
12
+ //# sourceMappingURL=recordingStopped.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordingStopped.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/recordingStopped.ts"],"names":[],"mappings":";;;;;AAAA,4EAAoD;AAGpD,gCAAgC;AACjB,KAAK,UAAU,gBAAgB;IAG5C,OAAO,IAAA,uBAAa,GAAE,CAAC;AACzB,CAAC;AAJD,mCAIC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const printAppMapCount_1 = __importDefault(require("../action/printAppMapCount"));
7
+ const configuration_1 = require("../configuration");
8
+ async function testCasesComplete() {
9
+ var _a;
10
+ const appMapDir = (_a = (await (0, configuration_1.readConfig)())) === null || _a === void 0 ? void 0 : _a.appmap_dir;
11
+ await (0, printAppMapCount_1.default)(appMapDir || '.');
12
+ return;
13
+ }
14
+ exports.default = testCasesComplete;
15
+ //# sourceMappingURL=testCasesComplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testCasesComplete.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/testCasesComplete.ts"],"names":[],"mappings":";;;;;AAAA,kFAA0D;AAC1D,oDAA8C;AAE/B,KAAK,UAAU,iBAAiB;;IAC7C,MAAM,SAAS,GAAG,MAAA,CAAC,MAAM,IAAA,0BAAU,GAAE,CAAC,0CAAE,UAAU,CAAC;IAEnD,MAAM,IAAA,0BAAgB,EAAC,SAAS,IAAI,GAAG,CAAC,CAAC;IAEzC,OAAO;AACT,CAAC;AAND,oCAMC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const testCaseRecording_1 = __importDefault(require("../testCaseRecording"));
7
+ const testCasesComplete_1 = __importDefault(require("./testCasesComplete"));
8
+ async function testCasesRunning() {
9
+ await testCaseRecording_1.default.waitFor();
10
+ return testCasesComplete_1.default;
11
+ }
12
+ exports.default = testCasesRunning;
13
+ //# sourceMappingURL=testCasesRunning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testCasesRunning.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/testCasesRunning.ts"],"names":[],"mappings":";;;;;AAAA,6EAAqD;AAErD,4EAAoD;AAErC,KAAK,UAAU,gBAAgB;IAC5C,MAAM,2BAAiB,CAAC,OAAO,EAAE,CAAC;IAElC,OAAO,2BAAiB,CAAC;AAC3B,CAAC;AAJD,mCAIC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const startTestCases_1 = __importDefault(require("../action/startTestCases"));
7
+ const testCasesRunning_1 = __importDefault(require("./testCasesRunning"));
8
+ // Test cases are available and configured.
9
+ async function testCommandsAvailable() {
10
+ await (0, startTestCases_1.default)();
11
+ return testCasesRunning_1.default;
12
+ }
13
+ exports.default = testCommandsAvailable;
14
+ //# sourceMappingURL=testCommandsAvailable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testCommandsAvailable.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/testCommandsAvailable.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AACtD,0EAAkD;AAGlD,2CAA2C;AAC5B,KAAK,UAAU,qBAAqB;IACjD,MAAM,IAAA,wBAAc,GAAE,CAAC;IACvB,OAAO,0BAAgB,CAAC;AAC1B,CAAC;AAHD,wCAGC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const obtainTestCommands_1 = __importDefault(require("../prompt/obtainTestCommands"));
7
+ const testCommandsAvailable_1 = __importDefault(require("./testCommandsAvailable"));
8
+ async function testCommandsNeeded() {
9
+ await (0, obtainTestCommands_1.default)();
10
+ return testCommandsAvailable_1.default;
11
+ }
12
+ exports.default = testCommandsNeeded;
13
+ //# sourceMappingURL=testCommandsNeeded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testCommandsNeeded.js","sourceRoot":"","sources":["../../../../../src/cmds/record/state/testCommandsNeeded.ts"],"names":[],"mappings":";;;;;AAAA,sFAA8D;AAE9D,oFAA4D;AAE7C,KAAK,UAAU,kBAAkB;IAC9C,MAAM,IAAA,4BAAkB,GAAE,CAAC;IAE3B,OAAO,+BAAqB,CAAC;AAC/B,CAAC;AAJD,qCAIC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const userInteraction_1 = __importDefault(require("../../userInteraction"));
7
+ const configuration_1 = require("../configuration");
8
+ const testCaseRecording_1 = __importDefault(require("../testCaseRecording"));
9
+ async function areTestCasesConfigured() {
10
+ let testCommands = (await (0, configuration_1.readConfigOption)('test_recording.test_commands', []));
11
+ if (testCommands && testCommands.length > 0) {
12
+ userInteraction_1.default.progress(`The following test commands were provided by your AppMap configuration (appmap.yml):`);
13
+ userInteraction_1.default.progress(``);
14
+ for (const testCommand of testCommands) {
15
+ testCommand.env || (testCommand.env = {});
16
+ userInteraction_1.default.progress(`${testCaseRecording_1.default.envString(testCommand.env)}${testCommand.command}`);
17
+ }
18
+ userInteraction_1.default.progress(``);
19
+ const { useTestCommands } = await userInteraction_1.default.prompt({
20
+ name: 'useTestCommands',
21
+ type: 'confirm',
22
+ message: 'Use these test commands?',
23
+ });
24
+ if (!useTestCommands) {
25
+ await (0, configuration_1.writeConfigOption)('test_recording.test_commands', []);
26
+ }
27
+ return useTestCommands;
28
+ }
29
+ return false;
30
+ }
31
+ exports.default = areTestCasesConfigured;
32
+ //# sourceMappingURL=areTestCommandsConfigured.js.map
@@ -0,0 +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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const userInteraction_1 = __importDefault(require("../../userInteraction"));
7
+ const configuration_1 = require("../configuration");
8
+ const remoteRecording_1 = __importDefault(require("../remoteRecording"));
9
+ async function isAgentAvailable() {
10
+ const ro = await (0, configuration_1.requestOptions)();
11
+ userInteraction_1.default.status = `Checking if the AppMap agent is available at ${ro.protocol}//${ro.hostname}:${ro.port}${ro.path}`;
12
+ try {
13
+ await new remoteRecording_1.default(ro).status();
14
+ userInteraction_1.default.success();
15
+ return true;
16
+ }
17
+ catch (e) {
18
+ userInteraction_1.default.error();
19
+ return false;
20
+ }
21
+ }
22
+ exports.default = isAgentAvailable;
23
+ //# sourceMappingURL=isAgentAvailable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAgentAvailable.js","sourceRoot":"","sources":["../../../../../src/cmds/record/test/isAgentAvailable.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAAkD;AAClD,yEAAiD;AAElC,KAAK,UAAU,gBAAgB;IAC5C,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IAClC,yBAAE,CAAC,MAAM,GAAG,gDAAgD,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/G,IAAI;QACF,MAAM,IAAI,yBAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;QACvC,yBAAE,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,yBAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAXD,mCAWC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const configuration_1 = require("../configuration");
7
+ const remoteRecording_1 = __importDefault(require("../remoteRecording"));
8
+ async function isRecordingInProgress() {
9
+ const status = await new remoteRecording_1.default(await (0, configuration_1.requestOptions)()).status();
10
+ return status.enabled === true;
11
+ }
12
+ exports.default = isRecordingInProgress;
13
+ //# sourceMappingURL=isRecordingInProgress.js.map
@@ -0,0 +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"}