@appland/appmap 3.18.3 → 3.21.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 +27 -0
- package/built/appmap.html +1 -1
- package/built/main.js.LICENSE.txt +1 -1
- package/built/main.js.map +1 -1
- package/built/package.json +3 -1
- package/built/src/cmds/agentInstaller/gradleInstaller.js +24 -3
- package/built/src/cmds/agentInstaller/gradleInstaller.js.map +1 -1
- package/built/src/cmds/record/action/cancelRecording.js +14 -0
- package/built/src/cmds/record/action/cancelRecording.js.map +1 -0
- package/built/src/cmds/record/action/configureHostAndPort.js +35 -0
- package/built/src/cmds/record/action/configureHostAndPort.js.map +1 -0
- package/built/src/cmds/record/action/configureRemainingRequestOptions.js +36 -0
- package/built/src/cmds/record/action/configureRemainingRequestOptions.js.map +1 -0
- package/built/src/cmds/record/action/detectProcessCharacteristics.js +60 -0
- package/built/src/cmds/record/action/detectProcessCharacteristics.js.map +1 -0
- package/built/src/cmds/record/{createRecording.js → action/saveRecording.js} +9 -24
- package/built/src/cmds/record/action/saveRecording.js.map +1 -0
- package/built/src/cmds/record/action/startRecording.js +20 -0
- package/built/src/cmds/record/action/startRecording.js.map +1 -0
- package/built/src/cmds/record/action/stopRecording.js +11 -0
- package/built/src/cmds/record/action/stopRecording.js.map +1 -0
- package/built/src/cmds/record/configuration.js +126 -0
- package/built/src/cmds/record/configuration.js.map +1 -0
- package/built/src/cmds/record/prompt/recordingInProgress.js +29 -0
- package/built/src/cmds/record/prompt/recordingInProgress.js.map +1 -0
- package/built/src/cmds/record/record.js +16 -11
- package/built/src/cmds/record/record.js.map +1 -1
- package/built/src/cmds/record/state/abort.js +8 -0
- package/built/src/cmds/record/state/abort.js.map +1 -0
- package/built/src/cmds/record/state/agentAvailableAndReady.js +14 -0
- package/built/src/cmds/record/state/agentAvailableAndReady.js.map +1 -0
- package/built/src/cmds/record/state/agentIsRecording.js +45 -0
- package/built/src/cmds/record/state/agentIsRecording.js.map +1 -0
- package/built/src/cmds/record/state/agentNotAvailable.js +41 -0
- package/built/src/cmds/record/state/agentNotAvailable.js.map +1 -0
- package/built/src/cmds/record/state/agentProcessNotRunning.js +30 -0
- package/built/src/cmds/record/state/agentProcessNotRunning.js.map +1 -0
- package/built/src/cmds/record/state/initial.js +27 -0
- package/built/src/cmds/record/state/initial.js.map +1 -0
- package/built/src/cmds/record/state/recordingInProgress.js +14 -0
- package/built/src/cmds/record/state/recordingInProgress.js.map +1 -0
- package/built/src/cmds/record/state/recordingStopped.js +12 -0
- package/built/src/cmds/record/state/recordingStopped.js.map +1 -0
- package/built/src/cmds/record/test/isAgentAvailable.js +23 -0
- package/built/src/cmds/record/test/isAgentAvailable.js.map +1 -0
- package/built/src/cmds/record/test/isRecordingInProgress.js +13 -0
- package/built/src/cmds/record/test/isRecordingInProgress.js.map +1 -0
- package/built/src/cmds/record/types/exitCode.js +10 -0
- package/built/src/cmds/record/types/exitCode.js.map +1 -0
- package/built/src/cmds/record/types/fileName.js +3 -0
- package/built/src/cmds/record/types/fileName.js.map +1 -0
- package/built/src/cmds/record/types/remoteRecordingStatus.js +3 -0
- package/built/src/cmds/record/types/remoteRecordingStatus.js.map +1 -0
- package/built/src/cmds/record/types/state.js +3 -0
- package/built/src/cmds/record/types/state.js.map +1 -0
- package/built/src/cmds/userInteraction.js +11 -6
- package/built/src/cmds/userInteraction.js.map +1 -1
- package/built/src/openapi/command.js +33 -17
- package/built/src/openapi/command.js.map +1 -1
- package/built/src/openapi/index.js +28 -0
- package/built/src/openapi/index.js.map +1 -0
- package/built/src/openapi/method.js +54 -49
- package/built/src/openapi/method.js.map +1 -1
- package/built/src/openapi/model.js +19 -22
- package/built/src/openapi/model.js.map +1 -1
- package/built/src/openapi/objectSchema.js +47 -0
- package/built/src/openapi/objectSchema.js.map +1 -0
- package/built/src/openapi/parseHTTPServerRequests.js +11 -0
- package/built/src/openapi/parseHTTPServerRequests.js.map +1 -0
- package/built/src/openapi/path.js +13 -14
- package/built/src/openapi/path.js.map +1 -1
- package/built/src/openapi/provider.js +73 -0
- package/built/src/openapi/provider.js.map +1 -0
- package/built/src/openapi/response.js +37 -13
- package/built/src/openapi/response.js.map +1 -1
- package/built/src/openapi/rpcRequest.js +87 -0
- package/built/src/openapi/rpcRequest.js.map +1 -0
- package/built/src/openapi/schemaInferrer.js +59 -0
- package/built/src/openapi/schemaInferrer.js.map +1 -0
- package/built/src/openapi/securitySchemes.js +14 -39
- package/built/src/openapi/securitySchemes.js.map +1 -1
- package/built/src/openapi/statusCodes.js +68 -0
- package/built/src/openapi/statusCodes.js.map +1 -0
- package/built/src/openapi/util.js +67 -47
- package/built/src/openapi/util.js.map +1 -1
- package/package.json +5 -3
- package/built/src/cmds/record/configureConnection.js +0 -16
- package/built/src/cmds/record/configureConnection.js.map +0 -1
- package/built/src/cmds/record/configureHostAndPort.js +0 -38
- package/built/src/cmds/record/configureHostAndPort.js.map +0 -1
- package/built/src/cmds/record/configureRemainingRequestOptions.js +0 -28
- package/built/src/cmds/record/configureRemainingRequestOptions.js.map +0 -1
- package/built/src/cmds/record/confirmProcessCharacteristics.js +0 -75
- package/built/src/cmds/record/confirmProcessCharacteristics.js.map +0 -1
- package/built/src/cmds/record/createRecording.js.map +0 -1
- package/built/src/cmds/record/intro.js +0 -22
- package/built/src/cmds/record/intro.js.map +0 -1
- package/built/src/cmds/record/ready.js +0 -19
- package/built/src/cmds/record/ready.js.map +0 -1
- package/built/src/cmds/record/testConnection.js +0 -35
- package/built/src/cmds/record/testConnection.js.map +0 -1
- package/built/src/openapi/schema.js +0 -34
- package/built/src/openapi/schema.js.map +0 -1
- package/built/src/openapi/settings.js +0 -10
- package/built/src/openapi/settings.js.map +0 -1
package/built/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appland/appmap",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.21.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"bin": "built/src/cli.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@types/jsdom": "^16.2.13",
|
|
33
33
|
"@types/node": "^16.6.2",
|
|
34
34
|
"@types/sinon": "^10.0.2",
|
|
35
|
+
"@types/tmp": "^0.2.3",
|
|
35
36
|
"@types/w3c-xmlserializer": "^2.0.2",
|
|
36
37
|
"babel-loader": "^8.2.2",
|
|
37
38
|
"copy-webpack-plugin": "^9.0.1",
|
|
@@ -91,6 +92,7 @@
|
|
|
91
92
|
"jsdom": "^16.6.0",
|
|
92
93
|
"moo": "^0.5.1",
|
|
93
94
|
"open": "^8.2.1",
|
|
95
|
+
"openapi-types": "^10.0.0",
|
|
94
96
|
"ora": "^5.4.1",
|
|
95
97
|
"port-pid": "^0.0.7",
|
|
96
98
|
"ps-node": "^0.1.6",
|
|
@@ -3,6 +3,7 @@ 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 fs_1 = __importDefault(require("fs"));
|
|
6
7
|
const os_1 = __importDefault(require("os"));
|
|
7
8
|
const path_1 = require("path");
|
|
8
9
|
const chalk_1 = __importDefault(require("chalk"));
|
|
@@ -18,11 +19,26 @@ class GradleInstaller extends javaBuildToolInstaller_1.default {
|
|
|
18
19
|
constructor(path) {
|
|
19
20
|
super('Gradle', path);
|
|
20
21
|
}
|
|
21
|
-
get
|
|
22
|
+
get buildGradleFileName() {
|
|
22
23
|
return 'build.gradle';
|
|
23
24
|
}
|
|
25
|
+
get buildGradleKtsFileName() {
|
|
26
|
+
return 'build.gradle.kts';
|
|
27
|
+
}
|
|
28
|
+
get buildFile() {
|
|
29
|
+
return this.buildGradleFileName;
|
|
30
|
+
}
|
|
24
31
|
get buildFilePath() {
|
|
25
|
-
return (0, path_1.join)(this.path, this.
|
|
32
|
+
return (0, path_1.join)(this.path, this.identifyGradleFile);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* If a build.gradle.kts file is present in the project, the installer will
|
|
36
|
+
* choose that file as the build file.
|
|
37
|
+
* If not, the installer will pick the build.gradle.
|
|
38
|
+
*/
|
|
39
|
+
get identifyGradleFile() {
|
|
40
|
+
const buildGradleKtsExists = fs_1.default.existsSync((0, path_1.join)(this.path, this.buildGradleKtsFileName));
|
|
41
|
+
return buildGradleKtsExists ? this.buildGradleKtsFileName : this.buildGradleFileName;
|
|
26
42
|
}
|
|
27
43
|
async printJarPathCommand() {
|
|
28
44
|
return new commandStruct_1.default(await this.runCommand(), ['appmap-print-jar-path'], this.path);
|
|
@@ -67,7 +83,7 @@ class GradleInstaller extends javaBuildToolInstaller_1.default {
|
|
|
67
83
|
* from which copying should continue
|
|
68
84
|
*/
|
|
69
85
|
async insertPluginSpec(buildFileSource, parseResult, whitespace) {
|
|
70
|
-
const pluginSpec =
|
|
86
|
+
const pluginSpec = this.selectPluginSpec();
|
|
71
87
|
const lines = parseResult.plugins
|
|
72
88
|
? buildFileSource
|
|
73
89
|
.substring(parseResult.plugins.lbrace + 1, parseResult.plugins.rbrace)
|
|
@@ -122,6 +138,11 @@ ${whitespace.padLine(pluginSpec)}
|
|
|
122
138
|
const offset = parseResult.plugins.rbrace + 1;
|
|
123
139
|
return { updatedSrc, offset };
|
|
124
140
|
}
|
|
141
|
+
selectPluginSpec() {
|
|
142
|
+
const pluginSpecKotlinSyntax = `id("com.appland.appmap") version "1.1.0"`;
|
|
143
|
+
const pluginSpecGroovySyntax = `id 'com.appland.appmap' version '1.1.0'`;
|
|
144
|
+
return this.identifyGradleFile.endsWith('.gradle.kts') ? pluginSpecKotlinSyntax : pluginSpecGroovySyntax;
|
|
145
|
+
}
|
|
125
146
|
/**
|
|
126
147
|
* Ensure the build file contains a buildscript block with mavenCentral in its
|
|
127
148
|
* repositories.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradleInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/gradleInstaller.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,+BAAiC;AACjC,kDAA0B;AAC1B,oEAA4C;AAE5C,uCAA8C;AAC9C,yEAAoC;AACpC,6CAAoE;AACpE,sCAAuC;AACvC,sFAA8D;AAC9D,iDAAiE;AACjE,oEAA4C;AAE5C,MAAqB,eACnB,SAAQ,gCAAsB;IAE9B,YAAY,IAAY;QACtB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,
|
|
1
|
+
{"version":3,"file":"gradleInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/gradleInstaller.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,4CAAoB;AACpB,+BAAiC;AACjC,kDAA0B;AAC1B,oEAA4C;AAE5C,uCAA8C;AAC9C,yEAAoC;AACpC,6CAAoE;AACpE,sCAAuC;AACvC,sFAA8D;AAC9D,iDAAiE;AACjE,oEAA4C;AAE5C,MAAqB,eACnB,SAAQ,gCAAsB;IAE9B,YAAY,IAAY;QACtB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAY,mBAAmB;QAC7B,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,IAAY,sBAAsB;QAChC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAA,WAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,IAAI,kBAAkB;QACpB,MAAM,oBAAoB,GAAY,YAAE,CAAC,UAAU,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClG,OAAO,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,uBAAa,CACtB,MAAM,IAAI,CAAC,UAAU,EAAE,EACvB,CAAC,uBAAuB,CAAC,EACzB,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,MAAM,IAAA,cAAM,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,GAAG,GAAG,YAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,aAAa,GAAG,MAAM,IAAA,cAAM,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;QAErE,IAAI,aAAa,EAAE;YACjB,OAAO,IAAI,UAAG,UAAU,GAAG,EAAE,CAAC;SAC/B;aAAM,IAAI,IAAA,eAAO,GAAE,EAAE;YACpB,OAAO,CAAC,IAAI,CACV,GAAG,eAAK,CAAC,MAAM,CACb,UAAU,GAAG,UAAU,CACxB,iCAAiC,eAAK,CAAC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CACjE,CAAC;SACH;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,uBAAa,CACtB,MAAM,IAAI,CAAC,UAAU,EAAE,EACvB;YACE,mBAAmB;YACnB,cAAc;YACd,0BAA0B;YAC1B,iBAAiB;YACjB,aAAa;YACb,cAAc;SACf,EACD,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,gBAAgB,CACpB,eAAuB,EACvB,WAA8B,EAC9B,UAAsB;QAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE3C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO;YAC/B,CAAC,CAAC,eAAe;iBACZ,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;iBACrE,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;YAClC,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACtC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACnC,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,OAAO,eAAK,CAAC,GAAG,CACvB,QAAQ,CACT,2FAA2F;gBAC5F,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;aAC/B,CAAC,CAAC;YAEH,IAAI,gBAAgB,KAAK,OAAO,EAAE;gBAChC,MAAM,IAAI,mBAAU,CAAC,sBAAsB,CAAC,CAAC;aAC9C;SACF;QAED,2EAA2E;QAC3E,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YACxB,MAAM,YAAY,GAAG;;EAEzB,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;;CAE/B,CAAC;YACI,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW;gBAC5C,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBACpC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC;YAC5B,MAAM,UAAU,GAAG;gBACjB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC;gBAC5C,YAAY;aACb,CAAC,IAAI,CAAC,YAAE,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,cAAc,CAAC;YAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;SAC/B;QAED,iDAAiD;QACjD,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7C,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CACnC,CAAC;QAEF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;YACxB,KAAK,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC;SACnC;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACxB;QAED,MAAM,MAAM,GAAG,IAAA,sBAAS,EAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtE,MAAM,UAAU,GAAG;YACjB,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAC5D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAE,CAAC,GAAG,CAAC;YACpD,GAAG;SACJ,CAAC,IAAI,CAAC,YAAE,CAAC,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IAEO,gBAAgB;QACtB,MAAM,sBAAsB,GAAG,0CAA0C,CAAC;QAC1E,MAAM,sBAAsB,GAAG,yCAAyC,CAAC;QACzE,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAC;IAC3G,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,gBAAgB,CACpB,eAAuB,EACvB,UAAkB,EAClB,MAAc,EACd,WAA8B,EAC9B,UAAsB;QAEtB,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,+DAA+D;YAC/D,6DAA6D;YAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;SAC/B;QAED,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YAC1C,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EACL,0GAA0G;YAC5G,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,CAAC,CAAC;QACH,IAAI,eAAe,KAAK,KAAK,EAAE;YAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;SAC/B;QAED,MAAM,YAAY,GAAG,gBAAgB,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YAC7B,MAAM,iBAAiB,GAAG;;EAE9B,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;;CAEjC,CAAC;YACI,UAAU,IAAI,iBAAiB,CAAC;YAChC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;SAC/B;QAED,UAAU,GAAG;YACX,UAAU;YACV,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;YAClE,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;SACjC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACX,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,WAAW,GAAgB,IAAI,qBAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,2BAAY,EAAE,CAAC;QAClC,MAAM,WAAW,GAAsB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACrE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAA,0BAAa,EAAC,eAAe,CAAC,CAAC;QAElD,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACtD,eAAe,EACf,WAAW,EACX,UAAU,CACX,CAAC;QAEF,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACnD,eAAe,EACf,UAAU,EACV,MAAM,EACN,WAAW,EACX,UAAU,CACX,CAAC,CAAC;QAEH,UAAU,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhD,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF;AA3PD,kCA2PC"}
|
|
@@ -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 userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
|
+
const configuration_1 = require("../configuration");
|
|
8
|
+
const remoteRecording_1 = __importDefault(require("../remoteRecording"));
|
|
9
|
+
async function cancelRecording() {
|
|
10
|
+
await new remoteRecording_1.default(await (0, configuration_1.requestOptions)()).stop();
|
|
11
|
+
userInteraction_1.default.success('The recording has been cancelled.');
|
|
12
|
+
}
|
|
13
|
+
exports.default = cancelRecording;
|
|
14
|
+
//# sourceMappingURL=cancelRecording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancelRecording.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/cancelRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAAkD;AAClD,yEAAiD;AAElC,KAAK,UAAU,eAAe;IAC3C,MAAM,IAAI,yBAAe,CAAC,MAAM,IAAA,8BAAc,GAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzD,yBAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;AAClD,CAAC;AAHD,kCAGC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
async function configureHostAndPort() {
|
|
9
|
+
const defaultHostname = await (0, configuration_1.readSetting)('remote_recording.host', 'localhost');
|
|
10
|
+
const { hostname } = await userInteraction_1.default.prompt({
|
|
11
|
+
type: 'input',
|
|
12
|
+
name: 'hostname',
|
|
13
|
+
message: 'Enter the hostname that your server is running on:',
|
|
14
|
+
default: defaultHostname,
|
|
15
|
+
});
|
|
16
|
+
if (hostname !== defaultHostname) {
|
|
17
|
+
await (0, configuration_1.writeSetting)('remote_recording.host', hostname);
|
|
18
|
+
}
|
|
19
|
+
let port;
|
|
20
|
+
const defaultPort = await (0, configuration_1.readSetting)('remote_recording.port', 3000);
|
|
21
|
+
while (!port) {
|
|
22
|
+
const { portNumber: answer } = await userInteraction_1.default.prompt({
|
|
23
|
+
type: 'input',
|
|
24
|
+
name: 'portNumber',
|
|
25
|
+
message: 'Enter the port number on which your server is listening:',
|
|
26
|
+
default: defaultPort,
|
|
27
|
+
});
|
|
28
|
+
port = parseInt(answer);
|
|
29
|
+
if (port !== NaN && port !== defaultPort) {
|
|
30
|
+
await (0, configuration_1.writeSetting)('remote_recording.port', port);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.default = configureHostAndPort;
|
|
35
|
+
//# sourceMappingURL=configureHostAndPort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureHostAndPort.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/configureHostAndPort.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAA6D;AAE9C,KAAK,UAAU,oBAAoB;IAChD,MAAM,eAAe,GAAG,MAAM,IAAA,2BAAW,EACvC,uBAAuB,EACvB,WAAW,CACZ,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACnC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,oDAAoD;QAC7D,OAAO,EAAE,eAAe;KACzB,CAAC,CAAC;IAEH,IAAI,QAAQ,KAAK,eAAe,EAAE;QAChC,MAAM,IAAA,4BAAY,EAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;KACvD;IAED,IAAI,IAAwB,CAAC;IAC7B,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAW,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,EAAE;QACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YAC7C,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,0DAA0D;YACnE,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,WAAW,EAAE;YACxC,MAAM,IAAA,4BAAY,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;SACnD;KACF;AACH,CAAC;AA9BD,uCA8BC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
async function configureRemainingRequestOptions() {
|
|
9
|
+
const defaultPath = await (0, configuration_1.readConfigOption)('remote_recording.path', '/');
|
|
10
|
+
const { baseURL: path } = await userInteraction_1.default.prompt({
|
|
11
|
+
type: 'input',
|
|
12
|
+
name: 'baseURL',
|
|
13
|
+
message: `Enter the base URL of your application:`,
|
|
14
|
+
default: defaultPath,
|
|
15
|
+
});
|
|
16
|
+
if (path !== defaultPath) {
|
|
17
|
+
await (0, configuration_1.writeConfigOption)('remote_recording.path', path);
|
|
18
|
+
}
|
|
19
|
+
const defaultProtocol = await (0, configuration_1.readConfigOption)('remote_recording.protocol', 'http:');
|
|
20
|
+
const { useSSL } = await userInteraction_1.default.prompt({
|
|
21
|
+
type: 'confirm',
|
|
22
|
+
name: 'useSSL',
|
|
23
|
+
message: 'Does your application require SSL / HTTPS?',
|
|
24
|
+
default: defaultProtocol === 'https:',
|
|
25
|
+
});
|
|
26
|
+
const protocol = useSSL ? 'https:' : 'http:';
|
|
27
|
+
if (protocol !== defaultProtocol) {
|
|
28
|
+
await (0, configuration_1.writeConfigOption)('remote_recording.protocol', protocol);
|
|
29
|
+
}
|
|
30
|
+
const ro = await (0, configuration_1.requestOptions)();
|
|
31
|
+
userInteraction_1.default.progress(`Here's the URL I will use to try and connect to the AppMap agent:\n`);
|
|
32
|
+
userInteraction_1.default.progress(`${ro.protocol}//${ro.hostname}:${ro.port}${ro.path}_appmap/record`);
|
|
33
|
+
userInteraction_1.default.progress('');
|
|
34
|
+
}
|
|
35
|
+
exports.default = configureRemainingRequestOptions;
|
|
36
|
+
//# sourceMappingURL=configureRemainingRequestOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configureRemainingRequestOptions.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/configureRemainingRequestOptions.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAM0B;AAEX,KAAK,UAAU,gCAAgC;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAA,gCAAgB,EAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACzE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,MAAM,IAAA,iCAAiB,EAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;KACxD;IAED,MAAM,eAAe,GAAG,MAAM,IAAA,gCAAgB,EAC5C,2BAA2B,EAC3B,OAAO,CACR,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACjC,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,4CAA4C;QACrD,OAAO,EAAE,eAAe,KAAK,QAAQ;KACtC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7C,IAAI,QAAQ,KAAK,eAAe,EAAE;QAChC,MAAM,IAAA,iCAAiB,EAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;KAChE;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IAClC,yBAAE,CAAC,QAAQ,CACT,qEAAqE,CACtE,CAAC;IACF,yBAAE,CAAC,QAAQ,CACT,GAAG,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,gBAAgB,CACpE,CAAC;IACF,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAtCD,mDAsCC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
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 port_pid_1 = __importDefault(require("port-pid"));
|
|
8
|
+
const ps_node_1 = __importDefault(require("ps-node"));
|
|
9
|
+
const configuration_1 = require("../configuration");
|
|
10
|
+
async function detectProcessCharacteristics() {
|
|
11
|
+
const ro = await (0, configuration_1.requestOptions)();
|
|
12
|
+
if (ro.hostname !== 'localhost') {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
userInteraction_1.default.status = `Looking for your application process on port ${ro.port}...`;
|
|
16
|
+
const printPid = async (pid) => {
|
|
17
|
+
return new Promise((resolve) => {
|
|
18
|
+
ps_node_1.default.lookup({ pid }, function (err, resultList) {
|
|
19
|
+
if (err) {
|
|
20
|
+
userInteraction_1.default.error(`Process ${pid} not found: ${err}`);
|
|
21
|
+
resolve();
|
|
22
|
+
}
|
|
23
|
+
const process = resultList[0];
|
|
24
|
+
if (process) {
|
|
25
|
+
userInteraction_1.default.success(process.arguments.join(' '));
|
|
26
|
+
resolve();
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
userInteraction_1.default.error(`Process ${pid} not found`);
|
|
30
|
+
resolve();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const start = new Date().getTime();
|
|
36
|
+
const pids = await (0, port_pid_1.default)(ro.port).then(async (pids) => {
|
|
37
|
+
if (pids && pids.tcp.length > 0) {
|
|
38
|
+
await Promise.all(pids.tcp.map(printPid));
|
|
39
|
+
return pids;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
if (!pids) {
|
|
43
|
+
userInteraction_1.default.error();
|
|
44
|
+
userInteraction_1.default.progress('');
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
async function confirm() {
|
|
48
|
+
const { looksGood } = await userInteraction_1.default.prompt({
|
|
49
|
+
type: 'confirm',
|
|
50
|
+
name: 'looksGood',
|
|
51
|
+
message: `Does this look like your application?`,
|
|
52
|
+
default: 'y',
|
|
53
|
+
});
|
|
54
|
+
return looksGood;
|
|
55
|
+
}
|
|
56
|
+
userInteraction_1.default.progress('');
|
|
57
|
+
return !!pids && (await confirm());
|
|
58
|
+
}
|
|
59
|
+
exports.default = detectProcessCharacteristics;
|
|
60
|
+
//# sourceMappingURL=detectProcessCharacteristics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectProcessCharacteristics.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/detectProcessCharacteristics.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,wDAA+B;AAC/B,sDAAyB;AACzB,oDAAkD;AAEnC,KAAK,UAAU,4BAA4B;IACxD,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IAClC,IAAI,EAAE,CAAC,QAAQ,KAAK,WAAW,EAAE;QAC/B,OAAO,KAAK,CAAC;KACd;IAED,yBAAE,CAAC,MAAM,GAAG,gDAAgD,EAAE,CAAC,IAAI,KAAK,CAAC;IAEzE,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;QACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,iBAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,UAAU,GAAQ,EAAE,UAAiB;gBACtD,IAAI,GAAG,EAAE;oBACP,yBAAE,CAAC,KAAK,CAAC,WAAW,GAAG,eAAe,GAAG,EAAE,CAAC,CAAC;oBAC7C,OAAO,EAAE,CAAC;iBACX;gBAED,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,OAAO,EAAE;oBACX,yBAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC;iBACX;qBAAM;oBACL,yBAAE,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;oBACrC,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAMF,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,IAAI,GAAqB,MAAM,IAAA,kBAAO,EAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CACxD,KAAK,EAAE,IAAU,EAAE,EAAE;QACnB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,yBAAE,CAAC,KAAK,EAAE,CAAC;QACX,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEhB,OAAO,KAAK,CAAC;KACd;IAED,KAAK,UAAU,OAAO;QACpB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YACpC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AA7DD,+CA6DC"}
|
|
@@ -3,27 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
name: 'startRecording',
|
|
13
|
-
message: 'Start recording?',
|
|
14
|
-
default: 'y',
|
|
15
|
-
});
|
|
16
|
-
const rr = new remoteRecording_1.default(requestOptions);
|
|
17
|
-
rr.start();
|
|
18
|
-
userInteraction_1.default.progress('\nRecording started.\n');
|
|
19
|
-
userInteraction_1.default.progress(`Now, interact with your app in any way you'd like. Click through the UI, run Selenium tests that interact with it, make web service calls, whatever you like.`);
|
|
20
|
-
userInteraction_1.default.status = 'Recording is active';
|
|
21
|
-
await userInteraction_1.default.prompt({
|
|
22
|
-
type: 'confirm',
|
|
23
|
-
name: 'stopRecording',
|
|
24
|
-
message: 'Stop recording?',
|
|
25
|
-
default: 'y',
|
|
26
|
-
});
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
8
|
+
const configuration_1 = require("../configuration");
|
|
9
|
+
const remoteRecording_1 = __importDefault(require("../remoteRecording"));
|
|
10
|
+
async function saveRecording() {
|
|
11
|
+
const rr = new remoteRecording_1.default(await (0, configuration_1.requestOptions)());
|
|
27
12
|
let data = await rr.stop();
|
|
28
13
|
if (data) {
|
|
29
14
|
userInteraction_1.default.success(`Recording has finished, with ${data.length} bytes of data.`);
|
|
@@ -44,9 +29,9 @@ async function createRecording(requestOptions) {
|
|
|
44
29
|
data = JSON.stringify(jsonData);
|
|
45
30
|
const fileName = `${appMapName}.appmap.json`;
|
|
46
31
|
userInteraction_1.default.status = `Saving recording to ${fileName}`;
|
|
47
|
-
|
|
32
|
+
await (0, promises_1.writeFile)(fileName, data);
|
|
48
33
|
userInteraction_1.default.success('AppMap saved');
|
|
49
34
|
return fileName;
|
|
50
35
|
}
|
|
51
|
-
exports.default =
|
|
52
|
-
//# sourceMappingURL=
|
|
36
|
+
exports.default = saveRecording;
|
|
37
|
+
//# sourceMappingURL=saveRecording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveRecording.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/saveRecording.ts"],"names":[],"mappings":";;;;;AAAA,0CAAwC;AACxC,4EAAuC;AACvC,oDAAkD;AAClD,yEAAiD;AAElC,KAAK,UAAU,aAAa;IACzC,MAAM,EAAE,GAAG,IAAI,yBAAe,CAAC,MAAM,IAAA,8BAAc,GAAE,CAAC,CAAC;IACvD,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE3B,IAAI,IAAI,EAAE;QACR,yBAAE,CAAC,OAAO,CAAC,gCAAgC,IAAI,CAAC,MAAM,iBAAiB,CAAC,CAAC;KAC1E;SAAM;QACL,yBAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC5D,OAAO;KACR;IAED,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACrC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,gCAAgC;QACzC,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAClD,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;IAC1C,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,GAAG,UAAU,cAAc,CAAC;IAC7C,yBAAE,CAAC,MAAM,GAAG,uBAAuB,QAAQ,EAAE,CAAC;IAC9C,MAAM,IAAA,oBAAS,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEhC,yBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAE3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AA9BD,gCA8BC"}
|
|
@@ -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 userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
7
|
+
const configuration_1 = require("../configuration");
|
|
8
|
+
const remoteRecording_1 = __importDefault(require("../remoteRecording"));
|
|
9
|
+
async function startRecording() {
|
|
10
|
+
const ro = await (0, configuration_1.requestOptions)();
|
|
11
|
+
userInteraction_1.default.progress('');
|
|
12
|
+
await userInteraction_1.default.confirm('Press enter to start recording');
|
|
13
|
+
const rr = new remoteRecording_1.default(ro);
|
|
14
|
+
await rr.start();
|
|
15
|
+
userInteraction_1.default.progress(`
|
|
16
|
+
Now, interact with your app in any way you'd like. Click through the UI, run Selenium tests that interact with it, make web service calls, etc.
|
|
17
|
+
`);
|
|
18
|
+
}
|
|
19
|
+
exports.default = startRecording;
|
|
20
|
+
//# sourceMappingURL=startRecording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"startRecording.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/startRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AACvC,oDAAkD;AAClD,yEAAiD;AAElC,KAAK,UAAU,cAAc;IAC1C,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAc,GAAE,CAAC;IAElC,yBAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,yBAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAEnD,MAAM,EAAE,GAAG,IAAI,yBAAe,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAEjB,yBAAE,CAAC,QAAQ,CAAC;;CAEb,CAAC,CAAC;AACH,CAAC;AAZD,iCAYC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
async function stopRecording() {
|
|
8
|
+
await userInteraction_1.default.confirm('Press enter to stop recording');
|
|
9
|
+
}
|
|
10
|
+
exports.default = stopRecording;
|
|
11
|
+
//# sourceMappingURL=stopRecording.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stopRecording.js","sourceRoot":"","sources":["../../../../../src/cmds/record/action/stopRecording.ts"],"names":[],"mappings":";;;;;AAAA,4EAAuC;AAExB,KAAK,UAAU,aAAa;IACzC,MAAM,yBAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;AACpD,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.writeConfigOption = exports.writeSetting = exports.readConfigOption = exports.readSetting = exports.requestOptions = exports.setAppMapSettingsFilePath = exports.setAppMapConfigFilePath = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const promises_1 = require("fs/promises");
|
|
6
|
+
const js_yaml_1 = require("js-yaml");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
let AppMapConfigFilePath = (0, path_1.join)(process.cwd(), 'appmap.yml');
|
|
9
|
+
let AppMapSettingsFilePath = (0, path_1.join)(process.env.HOME || '', '.appmaprc');
|
|
10
|
+
// Returns the previous config file path.
|
|
11
|
+
function setAppMapConfigFilePath(appMapFile) {
|
|
12
|
+
const oldPath = AppMapConfigFilePath;
|
|
13
|
+
AppMapConfigFilePath = appMapFile;
|
|
14
|
+
if (!(0, fs_1.existsSync)(appMapFile)) {
|
|
15
|
+
console.log(`Warning: AppMap config file ${appMapFile} does not exist.`);
|
|
16
|
+
}
|
|
17
|
+
return oldPath;
|
|
18
|
+
}
|
|
19
|
+
exports.setAppMapConfigFilePath = setAppMapConfigFilePath;
|
|
20
|
+
// Returns the previous settings file path.
|
|
21
|
+
function setAppMapSettingsFilePath(appMapFile) {
|
|
22
|
+
const oldPath = AppMapSettingsFilePath;
|
|
23
|
+
AppMapSettingsFilePath = appMapFile;
|
|
24
|
+
return oldPath;
|
|
25
|
+
}
|
|
26
|
+
exports.setAppMapSettingsFilePath = setAppMapSettingsFilePath;
|
|
27
|
+
async function readConfig() {
|
|
28
|
+
let fileContents;
|
|
29
|
+
try {
|
|
30
|
+
fileContents = await (0, promises_1.readFile)(AppMapConfigFilePath);
|
|
31
|
+
}
|
|
32
|
+
catch (_a) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
return (0, js_yaml_1.load)(fileContents.toString());
|
|
36
|
+
}
|
|
37
|
+
async function readAllSettings() {
|
|
38
|
+
let settings;
|
|
39
|
+
try {
|
|
40
|
+
const fileContents = await (0, promises_1.readFile)(AppMapSettingsFilePath);
|
|
41
|
+
settings = (0, js_yaml_1.load)(fileContents.toString());
|
|
42
|
+
// Make sure settings is an object.
|
|
43
|
+
settings[AppMapConfigFilePath];
|
|
44
|
+
}
|
|
45
|
+
catch (_a) {
|
|
46
|
+
settings = {};
|
|
47
|
+
}
|
|
48
|
+
if (!settings[AppMapConfigFilePath]) {
|
|
49
|
+
settings[AppMapConfigFilePath] = {};
|
|
50
|
+
}
|
|
51
|
+
return settings;
|
|
52
|
+
}
|
|
53
|
+
async function readSettings() {
|
|
54
|
+
return (await readAllSettings())[AppMapConfigFilePath];
|
|
55
|
+
}
|
|
56
|
+
async function writeConfig(config) {
|
|
57
|
+
await (0, promises_1.writeFile)(AppMapConfigFilePath, (0, js_yaml_1.dump)(config));
|
|
58
|
+
}
|
|
59
|
+
async function writeSettings(settings) {
|
|
60
|
+
await (0, promises_1.writeFile)(AppMapSettingsFilePath, (0, js_yaml_1.dump)(settings));
|
|
61
|
+
}
|
|
62
|
+
async function requestOptions() {
|
|
63
|
+
const requestOptions = {};
|
|
64
|
+
requestOptions.hostname = (await readSetting('remote_recording.host', 'localhost')).toString();
|
|
65
|
+
requestOptions.port = await readSetting('remote_recording.port', 3000);
|
|
66
|
+
requestOptions.path = (await readConfigOption('remote_recording.path', '/')).toString();
|
|
67
|
+
requestOptions.protocol = (await readConfigOption('remote_recording.protocol', 'http:')).toString();
|
|
68
|
+
return requestOptions;
|
|
69
|
+
}
|
|
70
|
+
exports.requestOptions = requestOptions;
|
|
71
|
+
async function readSetting(path, defaultValue) {
|
|
72
|
+
const settings = await readSettings();
|
|
73
|
+
return findOption(settings, path, defaultValue);
|
|
74
|
+
}
|
|
75
|
+
exports.readSetting = readSetting;
|
|
76
|
+
async function readConfigOption(path, defaultValue) {
|
|
77
|
+
const config = await readConfig();
|
|
78
|
+
return findOption(config, path, defaultValue);
|
|
79
|
+
}
|
|
80
|
+
exports.readConfigOption = readConfigOption;
|
|
81
|
+
function findOption(data, path, defaultValue) {
|
|
82
|
+
if (!data)
|
|
83
|
+
return defaultValue;
|
|
84
|
+
const tokens = path.split('.');
|
|
85
|
+
let entry = data;
|
|
86
|
+
for (const token of tokens) {
|
|
87
|
+
if (!entry)
|
|
88
|
+
return defaultValue;
|
|
89
|
+
entry = entry[token];
|
|
90
|
+
}
|
|
91
|
+
if (typeof entry === 'object')
|
|
92
|
+
return defaultValue;
|
|
93
|
+
return entry || defaultValue;
|
|
94
|
+
}
|
|
95
|
+
async function writeSetting(path, value) {
|
|
96
|
+
const allSettings = await readAllSettings();
|
|
97
|
+
const settings = allSettings[AppMapConfigFilePath];
|
|
98
|
+
mergeConfigData(settings, path, value);
|
|
99
|
+
await writeSettings(allSettings);
|
|
100
|
+
}
|
|
101
|
+
exports.writeSetting = writeSetting;
|
|
102
|
+
async function writeConfigOption(path, value) {
|
|
103
|
+
const config = await readConfig();
|
|
104
|
+
if (!config)
|
|
105
|
+
return;
|
|
106
|
+
mergeConfigData(config, path, value);
|
|
107
|
+
await writeConfig(config);
|
|
108
|
+
}
|
|
109
|
+
exports.writeConfigOption = writeConfigOption;
|
|
110
|
+
function mergeConfigData(data, path, value) {
|
|
111
|
+
const tokens = path.split('.');
|
|
112
|
+
const lastToken = tokens.pop();
|
|
113
|
+
let entry = data;
|
|
114
|
+
for (const token of tokens) {
|
|
115
|
+
if (!entry[token]) {
|
|
116
|
+
entry[token] = {};
|
|
117
|
+
}
|
|
118
|
+
entry = entry[token];
|
|
119
|
+
}
|
|
120
|
+
if (typeof entry === 'object') {
|
|
121
|
+
if (entry[lastToken] !== value) {
|
|
122
|
+
entry[lastToken] = value;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../../../src/cmds/record/configuration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.RecordingAction = void 0;
|
|
7
|
+
const userInteraction_1 = __importDefault(require("../../userInteraction"));
|
|
8
|
+
var RecordingAction;
|
|
9
|
+
(function (RecordingAction) {
|
|
10
|
+
RecordingAction["Cancel"] = "cancel recording";
|
|
11
|
+
RecordingAction["Save"] = "save recording";
|
|
12
|
+
RecordingAction["Abort"] = "continue recording";
|
|
13
|
+
})(RecordingAction = exports.RecordingAction || (exports.RecordingAction = {}));
|
|
14
|
+
async function recordingInProgress() {
|
|
15
|
+
userInteraction_1.default.progress('The AppMap agent is already recording an AppMap.?');
|
|
16
|
+
const { recordingAction } = await userInteraction_1.default.prompt({
|
|
17
|
+
type: 'list',
|
|
18
|
+
choices: [
|
|
19
|
+
RecordingAction.Cancel,
|
|
20
|
+
RecordingAction.Save,
|
|
21
|
+
RecordingAction.Abort,
|
|
22
|
+
],
|
|
23
|
+
name: 'recordingAction',
|
|
24
|
+
message: "What would you like to do with the recording that's in progress?",
|
|
25
|
+
});
|
|
26
|
+
return recordingAction;
|
|
27
|
+
}
|
|
28
|
+
exports.default = recordingInProgress;
|
|
29
|
+
//# sourceMappingURL=recordingInProgress.js.map
|
|
@@ -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"}
|
|
@@ -6,27 +6,32 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.handler = exports.builder = exports.describe = exports.command = void 0;
|
|
7
7
|
const utils_1 = require("../../utils");
|
|
8
8
|
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
9
|
const showAppMap_1 = __importDefault(require("../open/showAppMap"));
|
|
10
|
+
const configuration_1 = require("./configuration");
|
|
11
|
+
const initial_1 = __importDefault(require("./state/initial"));
|
|
14
12
|
exports.command = 'record';
|
|
15
13
|
exports.describe = 'Create an AppMap via interactive recording, aka remote recording.';
|
|
16
14
|
const builder = (args) => {
|
|
15
|
+
args.option('appmap-config', {
|
|
16
|
+
describe: 'AppMap config file to check for default options.',
|
|
17
|
+
type: 'string',
|
|
18
|
+
alias: 'c',
|
|
19
|
+
});
|
|
17
20
|
return args.strict();
|
|
18
21
|
};
|
|
19
22
|
exports.builder = builder;
|
|
20
23
|
const handler = async (argv) => {
|
|
21
24
|
(0, utils_1.verbose)(argv.verbose);
|
|
25
|
+
if (argv.appmapConfig)
|
|
26
|
+
(0, configuration_1.setAppMapConfigFilePath)(argv.appmapConfig);
|
|
22
27
|
const commandFn = async () => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (
|
|
29
|
-
await (0, showAppMap_1.default)(
|
|
28
|
+
let state = initial_1.default;
|
|
29
|
+
while (state && typeof state === 'function') {
|
|
30
|
+
const newState = await state();
|
|
31
|
+
state = newState;
|
|
32
|
+
}
|
|
33
|
+
if (typeof state === 'string') {
|
|
34
|
+
await (0, showAppMap_1.default)(state);
|
|
30
35
|
}
|
|
31
36
|
};
|
|
32
37
|
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;
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["../../../../src/cmds/record/record.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAsC;AACtC,+DAAuC;AACvC,oEAA4C;AAE5C,mDAA0D;AAC1D,8DAAsC;AAIzB,QAAA,OAAO,GAAG,QAAQ,CAAC;AACnB,QAAA,QAAQ,GACnB,mEAAmE,CAAC;AAE/D,MAAM,OAAO,GAAG,CAAC,IAAgB,EAAE,EAAE;IAC1C,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;AARW,QAAA,OAAO,WAQlB;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,IAAS,EAAE,EAAE;IACzC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,IAAI,IAAI,CAAC,YAAY;QAAE,IAAA,uCAAuB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAElE,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,IAAI,KAAK,GAAsB,iBAAO,CAAC;QAEvC,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YAC3C,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;AAlBW,QAAA,OAAO,WAkBlB"}
|
|
@@ -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"}
|