@appland/appmap 3.6.4 → 3.7.3
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 +35 -0
- package/built/appmap.html +1 -1
- package/built/main.js.map +1 -1
- package/built/package.json +1 -1
- package/built/src/cli.js +6 -2
- package/built/src/cli.js.map +1 -1
- package/built/src/cmds/agentInstaller/agentInstallerProcedure.js +69 -51
- package/built/src/cmds/agentInstaller/agentInstallerProcedure.js.map +1 -1
- package/built/src/cmds/agentInstaller/commandRunner.js +38 -6
- package/built/src/cmds/agentInstaller/commandRunner.js.map +1 -1
- package/built/src/cmds/agentInstaller/gradleInstaller.js +16 -17
- package/built/src/cmds/agentInstaller/gradleInstaller.js.map +1 -1
- package/built/src/cmds/agentInstaller/gradleParser.js +2 -2
- package/built/src/cmds/agentInstaller/gradleParser.js.map +1 -1
- package/built/src/cmds/agentInstaller/install-agent.js +140 -169
- package/built/src/cmds/agentInstaller/install-agent.js.map +1 -1
- package/built/src/cmds/agentInstaller/javaBuildToolInstaller.js +4 -2
- package/built/src/cmds/agentInstaller/javaBuildToolInstaller.js.map +1 -1
- package/built/src/cmds/agentInstaller/mavenInstaller.js +17 -18
- package/built/src/cmds/agentInstaller/mavenInstaller.js.map +1 -1
- package/built/src/cmds/agentInstaller/pythonAgentInstaller.js +14 -15
- package/built/src/cmds/agentInstaller/pythonAgentInstaller.js.map +1 -1
- package/built/src/cmds/agentInstaller/rubyAgentInstaller.js +12 -13
- package/built/src/cmds/agentInstaller/rubyAgentInstaller.js.map +1 -1
- package/built/src/cmds/errors.js +21 -1
- package/built/src/cmds/errors.js.map +1 -1
- package/built/src/cmds/userInteraction.js +4 -3
- package/built/src/cmds/userInteraction.js.map +1 -1
- package/built/src/encodedFile.js +62 -0
- package/built/src/encodedFile.js.map +1 -0
- package/built/src/telemetry.js +11 -10
- package/built/src/telemetry.js.map +1 -1
- package/built/src/utils.js +10 -0
- package/built/src/utils.js.map +1 -1
- package/package.json +4 -4
- package/built/src/cmds/agentInstaller/javaAgentInstaller.js +0 -13
- package/built/src/cmds/agentInstaller/javaAgentInstaller.js.map +0 -1
|
@@ -3,11 +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
|
-
exports.handler = exports.builder = exports.describe = exports.command = void 0;
|
|
7
6
|
const fs_1 = require("fs");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const pythonAgentInstaller_1 = __importDefault(require("./pythonAgentInstaller"));
|
|
7
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
8
|
+
const path_1 = require("path");
|
|
11
9
|
const errors_1 = require("../errors");
|
|
12
10
|
const utils_1 = require("../../utils");
|
|
13
11
|
const agentInstallerProcedure_1 = __importDefault(require("./agentInstallerProcedure"));
|
|
@@ -15,190 +13,163 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
15
13
|
const userInteraction_1 = __importDefault(require("../userInteraction"));
|
|
16
14
|
const telemetry_1 = __importDefault(require("../../telemetry"));
|
|
17
15
|
const commandRunner_1 = require("./commandRunner");
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
[
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return [
|
|
47
|
-
`Supported languages: ${supportedLanguages}`,
|
|
48
|
-
`Supported project frameworks: ${supportedFrameworks}`,
|
|
49
|
-
].join('\n');
|
|
50
|
-
}
|
|
51
|
-
const builder = (args) => {
|
|
52
|
-
args.positional('project-type', {
|
|
53
|
-
describe: [
|
|
54
|
-
'Specifies the installation target. This may be a language or project framework. Case-insensitive.',
|
|
55
|
-
supportedTargetsMessage(),
|
|
56
|
-
].join('\n'),
|
|
57
|
-
type: 'string',
|
|
58
|
-
default: undefined,
|
|
59
|
-
});
|
|
60
|
-
args.option('dir', {
|
|
61
|
-
describe: 'directory in which to install',
|
|
62
|
-
default: '.',
|
|
63
|
-
alias: 'd',
|
|
64
|
-
});
|
|
65
|
-
return args.strict();
|
|
66
|
-
};
|
|
67
|
-
exports.builder = builder;
|
|
68
|
-
const handler = async (argv) => {
|
|
69
|
-
var _a, _b;
|
|
70
|
-
utils_1.verbose(argv.verbose);
|
|
71
|
-
const startTime = Date.now();
|
|
72
|
-
const endTime = () => (Date.now() - startTime) / 1000;
|
|
73
|
-
const { projectType, dir } = argv;
|
|
74
|
-
let installer;
|
|
75
|
-
let err;
|
|
76
|
-
try {
|
|
77
|
-
let installTarget = projectType;
|
|
78
|
-
if (!installTarget) {
|
|
79
|
-
const { result } = await userInteraction_1.default.prompt({
|
|
80
|
-
type: 'list',
|
|
81
|
-
name: 'result',
|
|
82
|
-
message: 'Select a target language for agent installation.',
|
|
83
|
-
choices: Object.values(AGENT_INSTALLERS).map((i) => i.name),
|
|
84
|
-
});
|
|
85
|
-
installTarget = result;
|
|
86
|
-
}
|
|
87
|
-
installTarget = installTarget.toLowerCase();
|
|
88
|
-
let installerOptions = AGENT_INSTALLERS[installTarget];
|
|
89
|
-
let installerFramework;
|
|
90
|
-
if (!installerOptions) {
|
|
91
|
-
const installerInfo = AGENT_FRAMEWORK_INSTALLERS[installTarget];
|
|
92
|
-
if (!installerInfo) {
|
|
93
|
-
userInteraction_1.default.error([
|
|
94
|
-
`${chalk_1.default.red(installTarget)} is not a supported installer type.`,
|
|
95
|
-
supportedTargetsMessage(),
|
|
96
|
-
].join('\n'));
|
|
97
|
-
throw new errors_1.AbortError(`unsupported installer type \'${installTarget}\'`);
|
|
98
|
-
}
|
|
99
|
-
// The user has specified a framework
|
|
100
|
-
installerOptions = installerInfo.installerLanguage;
|
|
101
|
-
installerFramework = installTarget;
|
|
102
|
-
}
|
|
103
|
-
const installProcedure = new agentInstallerProcedure_1.default(installerOptions, dir);
|
|
104
|
-
installer = await installProcedure.run(installerFramework);
|
|
105
|
-
telemetry_1.default.sendEvent({
|
|
106
|
-
name: 'install-agent:success',
|
|
107
|
-
properties: {
|
|
108
|
-
installer: installer.name,
|
|
109
|
-
},
|
|
110
|
-
metrics: {
|
|
111
|
-
duration: endTime(),
|
|
112
|
-
},
|
|
16
|
+
const mavenInstaller_1 = __importDefault(require("./mavenInstaller"));
|
|
17
|
+
const gradleInstaller_1 = __importDefault(require("./gradleInstaller"));
|
|
18
|
+
const pythonAgentInstaller_1 = require("./pythonAgentInstaller");
|
|
19
|
+
const rubyAgentInstaller_1 = require("./rubyAgentInstaller");
|
|
20
|
+
const INSTALLERS = [
|
|
21
|
+
rubyAgentInstaller_1.BundleInstaller,
|
|
22
|
+
mavenInstaller_1.default,
|
|
23
|
+
gradleInstaller_1.default,
|
|
24
|
+
pythonAgentInstaller_1.PipInstaller,
|
|
25
|
+
pythonAgentInstaller_1.PoetryInstaller,
|
|
26
|
+
];
|
|
27
|
+
exports.default = {
|
|
28
|
+
command: 'install [directory]',
|
|
29
|
+
aliases: ['i', 'install-agent'],
|
|
30
|
+
describe: 'Install and configure an AppMap language agent',
|
|
31
|
+
builder(args) {
|
|
32
|
+
// FIXME: This method takes advantage of the fact that each implementation returns a static string
|
|
33
|
+
// as the installer name. In the future, this may not be the case. After all, `name` is a non-static
|
|
34
|
+
// getter.
|
|
35
|
+
const installerNames = INSTALLERS.map((installer) => chalk_1.default.blue(installer.prototype.name)).join(', ');
|
|
36
|
+
args.option('project-type', {
|
|
37
|
+
describe: [
|
|
38
|
+
'Specifies the installation target. This may be a language or project framework. Case-insensitive.',
|
|
39
|
+
`Supported project types: ${installerNames}`,
|
|
40
|
+
].join('\n'),
|
|
41
|
+
type: 'string',
|
|
42
|
+
default: undefined,
|
|
43
|
+
alias: 'p',
|
|
113
44
|
});
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
45
|
+
args.positional('directory', {
|
|
46
|
+
describe: 'directory in which to install',
|
|
47
|
+
default: '.',
|
|
48
|
+
});
|
|
49
|
+
return args.strict();
|
|
50
|
+
},
|
|
51
|
+
async handler(args) {
|
|
52
|
+
var _a, _b;
|
|
53
|
+
const { projectType, directory, verbose: isVerbose } = args;
|
|
54
|
+
const startTime = Date.now();
|
|
55
|
+
const endTime = () => (Date.now() - startTime) / 1000;
|
|
56
|
+
let installer;
|
|
57
|
+
const installers = INSTALLERS.map((constructor) => new constructor(directory));
|
|
58
|
+
utils_1.verbose(isVerbose);
|
|
122
59
|
try {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
60
|
+
const installProcedure = new agentInstallerProcedure_1.default(installers, directory);
|
|
61
|
+
installer = await installProcedure.run(projectType);
|
|
62
|
+
telemetry_1.default.sendEvent({
|
|
63
|
+
name: 'install-agent:success',
|
|
64
|
+
properties: {
|
|
65
|
+
installer: installer.name,
|
|
66
|
+
path: path_1.resolve(directory),
|
|
67
|
+
},
|
|
68
|
+
metrics: {
|
|
69
|
+
duration: endTime(),
|
|
70
|
+
},
|
|
71
|
+
});
|
|
134
72
|
}
|
|
135
73
|
catch (e) {
|
|
136
|
-
|
|
137
|
-
|
|
74
|
+
let installersAvailable;
|
|
75
|
+
let err = e;
|
|
76
|
+
if (e instanceof errors_1.InstallError) {
|
|
77
|
+
err = e.error;
|
|
78
|
+
installer = e.installer;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
// Map installers to their available status, e.g.,
|
|
82
|
+
// { maven: true, gradle: false, pip: false }
|
|
83
|
+
const installerStatuses = await Promise.all(installers.map(async (installer) => [
|
|
84
|
+
installer.name,
|
|
85
|
+
await installer.available(),
|
|
86
|
+
]));
|
|
87
|
+
// Join the available installers into a string
|
|
88
|
+
installersAvailable = installerStatuses
|
|
89
|
+
.filter(([_, available]) => available)
|
|
90
|
+
.map(([name]) => name)
|
|
91
|
+
.join(', ');
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
if (e instanceof Error) {
|
|
95
|
+
installersAvailable = e.stack;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
installersAvailable = String(e);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (err instanceof errors_1.AbortError) {
|
|
102
|
+
await telemetry_1.default.sendEvent({
|
|
103
|
+
name: 'install-agent:abort',
|
|
104
|
+
properties: {
|
|
105
|
+
installer: installer === null || installer === void 0 ? void 0 : installer.name,
|
|
106
|
+
installers_available: installersAvailable,
|
|
107
|
+
reason: err.message,
|
|
108
|
+
path: path_1.resolve(directory),
|
|
109
|
+
},
|
|
110
|
+
metrics: {
|
|
111
|
+
duration: endTime(),
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
yargs_1.default.exit(2, err);
|
|
115
|
+
}
|
|
116
|
+
let exception;
|
|
117
|
+
if (err instanceof Error) {
|
|
118
|
+
exception = err.stack;
|
|
138
119
|
}
|
|
139
120
|
else {
|
|
140
|
-
|
|
121
|
+
exception = String(err);
|
|
122
|
+
}
|
|
123
|
+
let directoryContents;
|
|
124
|
+
try {
|
|
125
|
+
directoryContents = (await fs_1.promises.readdir(directory)).join('\n');
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
if (e instanceof Error) {
|
|
129
|
+
directoryContents = e.stack;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
directoryContents = String(e);
|
|
133
|
+
}
|
|
141
134
|
}
|
|
142
|
-
}
|
|
143
|
-
if (err instanceof errors_1.AbortError) {
|
|
144
135
|
await telemetry_1.default.sendEvent({
|
|
145
|
-
name: 'install-agent:
|
|
136
|
+
name: 'install-agent:failure',
|
|
146
137
|
properties: {
|
|
147
138
|
installer: installer === null || installer === void 0 ? void 0 : installer.name,
|
|
148
139
|
installers_available: installersAvailable,
|
|
149
|
-
|
|
140
|
+
exception_type: (_b = (_a = err) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name,
|
|
141
|
+
log: commandRunner_1.ProcessLog.buffer,
|
|
142
|
+
exception,
|
|
143
|
+
directory: directoryContents,
|
|
144
|
+
path: path_1.resolve(directory),
|
|
150
145
|
},
|
|
151
146
|
metrics: {
|
|
152
147
|
duration: endTime(),
|
|
153
148
|
},
|
|
154
149
|
});
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
150
|
+
if (err instanceof errors_1.ValidationError) {
|
|
151
|
+
console.warn(err.message);
|
|
152
|
+
return yargs_1.default.exit(1, err);
|
|
153
|
+
}
|
|
154
|
+
if (err instanceof errors_1.ChildProcessError) {
|
|
155
|
+
const { showError } = await userInteraction_1.default.prompt({
|
|
156
|
+
name: 'showError',
|
|
157
|
+
type: 'confirm',
|
|
158
|
+
message: `An error has occurred while running:\n ${chalk_1.default.red(err.command)}\n${chalk_1.default.green('?')} View error details?`,
|
|
159
|
+
prefix: chalk_1.default.red('!'),
|
|
160
|
+
}, { supressSpinner: true });
|
|
161
|
+
if (showError) {
|
|
162
|
+
userInteraction_1.default.error(err.message);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (err instanceof Error) {
|
|
166
|
+
userInteraction_1.default.error(err.stack);
|
|
171
167
|
}
|
|
172
168
|
else {
|
|
173
|
-
|
|
169
|
+
userInteraction_1.default.error(err);
|
|
174
170
|
}
|
|
171
|
+
yargs_1.default.exit(3, err);
|
|
175
172
|
}
|
|
176
|
-
|
|
177
|
-
name: 'install-agent:failure',
|
|
178
|
-
properties: {
|
|
179
|
-
installer: installer === null || installer === void 0 ? void 0 : installer.name,
|
|
180
|
-
installers_available: installersAvailable,
|
|
181
|
-
exception_type: (_b = (_a = err) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name,
|
|
182
|
-
log: commandRunner_1.ProcessLog.buffer,
|
|
183
|
-
exception,
|
|
184
|
-
directory,
|
|
185
|
-
},
|
|
186
|
-
metrics: {
|
|
187
|
-
duration: endTime(),
|
|
188
|
-
},
|
|
189
|
-
});
|
|
190
|
-
if (err instanceof errors_1.ValidationError) {
|
|
191
|
-
console.warn(err.message);
|
|
192
|
-
return yargs_1.default.exit(1, err);
|
|
193
|
-
}
|
|
194
|
-
if (utils_1.verbose()) {
|
|
195
|
-
userInteraction_1.default.error(err);
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
userInteraction_1.default.error(`An error occurred. Try re-running the command with the ${chalk_1.default.red('verbose')} flag (${chalk_1.default.red('-v')}).`);
|
|
199
|
-
}
|
|
200
|
-
yargs_1.default.exit(3, err);
|
|
201
|
-
}
|
|
173
|
+
},
|
|
202
174
|
};
|
|
203
|
-
exports.handler = handler;
|
|
204
175
|
//# sourceMappingURL=install-agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-agent.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/install-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-agent.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/install-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.JavaBuildToolInstaller = void 0;
|
|
7
6
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
7
|
const commandStruct_1 = __importDefault(require("./commandStruct"));
|
|
9
8
|
const commandRunner_1 = require("./commandRunner");
|
|
@@ -13,6 +12,9 @@ class JavaBuildToolInstaller {
|
|
|
13
12
|
this.path = path;
|
|
14
13
|
this.path = path;
|
|
15
14
|
}
|
|
15
|
+
get documentation() {
|
|
16
|
+
return 'https://appland.com/docs/reference/appmap-java';
|
|
17
|
+
}
|
|
16
18
|
async initCommand() {
|
|
17
19
|
return new commandStruct_1.default('java', ['-jar', await this.agentJar(), '-d', this.path, 'init'], this.path);
|
|
18
20
|
}
|
|
@@ -42,5 +44,5 @@ class JavaBuildToolInstaller {
|
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
|
-
exports.
|
|
47
|
+
exports.default = JavaBuildToolInstaller;
|
|
46
48
|
//# sourceMappingURL=javaBuildToolInstaller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javaBuildToolInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/javaBuildToolInstaller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"javaBuildToolInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/javaBuildToolInstaller.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,oEAA4C;AAC5C,mDAAsC;AACtC,+CAA0C;AAE1C,MAA8B,sBAAsB;IAIlD,YAA+B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,aAAa;QACf,OAAO,gDAAgD,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,uBAAa,CACtB,MAAM,EACN,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EACxD,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO,IAAI,uBAAa,CACtB,MAAM,EACN,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAC5D,IAAI,CAAC,IAAI,CACV,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,mBAAG,CAAC,GAAG,CAAC,CAAC;YAElC,IAAI,CAAC,SAAS,GAAG,MAAM;iBACpB,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,SAAU,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,kDAAkD;QAClD,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,uBAAS,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,eAAK,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/D,aAAa,EAAE,OAAO,CAAC,EAAE;gBACvB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF;AArDD,yCAqDC"}
|
|
@@ -3,16 +3,16 @@ 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
|
-
|
|
7
|
-
const
|
|
6
|
+
const os_1 = __importDefault(require("os"));
|
|
7
|
+
const path_1 = require("path");
|
|
8
8
|
const jsdom_1 = require("jsdom");
|
|
9
9
|
const w3c_xmlserializer_1 = __importDefault(require("w3c-xmlserializer"));
|
|
10
|
-
const path_1 = require("path");
|
|
11
10
|
const chalk_1 = __importDefault(require("chalk"));
|
|
12
11
|
const commandStruct_1 = __importDefault(require("./commandStruct"));
|
|
13
12
|
const utils_1 = require("../../utils");
|
|
14
|
-
const javaBuildToolInstaller_1 = require("./javaBuildToolInstaller");
|
|
15
|
-
|
|
13
|
+
const javaBuildToolInstaller_1 = __importDefault(require("./javaBuildToolInstaller"));
|
|
14
|
+
const encodedFile_1 = __importDefault(require("../../encodedFile"));
|
|
15
|
+
class MavenInstaller extends javaBuildToolInstaller_1.default {
|
|
16
16
|
constructor(path) {
|
|
17
17
|
super(path);
|
|
18
18
|
this.path = path;
|
|
@@ -27,10 +27,7 @@ class MavenInstaller extends javaBuildToolInstaller_1.JavaBuildToolInstaller {
|
|
|
27
27
|
return path_1.join(this.path, this.buildFile);
|
|
28
28
|
}
|
|
29
29
|
async postInstallMessage() {
|
|
30
|
-
let mvnBin =
|
|
31
|
-
if (await utils_1.exists(path_1.join(this.path, 'mvnw'))) {
|
|
32
|
-
mvnBin = `.${path_1.sep}mvnw`;
|
|
33
|
-
}
|
|
30
|
+
let mvnBin = await this.runCommand();
|
|
34
31
|
return [
|
|
35
32
|
`The AppMap agent will automatically record your tests when you run ${chalk_1.default.blue(`${mvnBin} test`)}`,
|
|
36
33
|
`By default, AppMap files will be output to ${chalk_1.default.blue('target/appmap')}`,
|
|
@@ -40,12 +37,13 @@ class MavenInstaller extends javaBuildToolInstaller_1.JavaBuildToolInstaller {
|
|
|
40
37
|
return await utils_1.exists(this.buildFilePath);
|
|
41
38
|
}
|
|
42
39
|
async runCommand() {
|
|
43
|
-
const
|
|
40
|
+
const ext = os_1.default.platform() === 'win32' ? '.cmd' : '';
|
|
41
|
+
const wrapperExists = await utils_1.exists(path_1.join(this.path, `mvnw${ext}`));
|
|
44
42
|
if (wrapperExists) {
|
|
45
|
-
return `.${path_1.sep}mvnw`;
|
|
43
|
+
return `.${path_1.sep}mvnw${ext}`;
|
|
46
44
|
}
|
|
47
45
|
else if (utils_1.verbose()) {
|
|
48
|
-
console.warn(`${chalk_1.default.yellow(
|
|
46
|
+
console.warn(`${chalk_1.default.yellow(`mvnw${ext} wrapper`)} not found, falling back to ${chalk_1.default.yellow(`mvn${ext}`)}`);
|
|
49
47
|
}
|
|
50
48
|
return 'mvn';
|
|
51
49
|
}
|
|
@@ -56,7 +54,8 @@ class MavenInstaller extends javaBuildToolInstaller_1.JavaBuildToolInstaller {
|
|
|
56
54
|
return new commandStruct_1.default(await this.runCommand(), ['appmap:print-jar-path'], this.path);
|
|
57
55
|
}
|
|
58
56
|
async installAgent() {
|
|
59
|
-
const
|
|
57
|
+
const encodedFile = new encodedFile_1.default(this.buildFilePath);
|
|
58
|
+
const buildFileSource = encodedFile.toString();
|
|
60
59
|
const jsdom = new jsdom_1.JSDOM();
|
|
61
60
|
const domParser = new jsdom.window.DOMParser();
|
|
62
61
|
const doc = domParser.parseFromString(buildFileSource, 'text/xml');
|
|
@@ -96,13 +95,13 @@ class MavenInstaller extends javaBuildToolInstaller_1.JavaBuildToolInstaller {
|
|
|
96
95
|
if (!buildSection) {
|
|
97
96
|
buildSection = createEmptySection('build', ns);
|
|
98
97
|
projectSection.appendChild(buildSection);
|
|
99
|
-
projectSection.appendChild(doc.createTextNode(
|
|
98
|
+
projectSection.appendChild(doc.createTextNode(os_1.default.EOL));
|
|
100
99
|
}
|
|
101
100
|
let pluginsSection = doc.evaluate('/project/build/plugins', doc, doc.createNSResolver(doc.getRootNode()), 9).singleNodeValue;
|
|
102
101
|
if (!pluginsSection) {
|
|
103
102
|
pluginsSection = createEmptySection('plugins', ns);
|
|
104
103
|
buildSection.appendChild(pluginsSection);
|
|
105
|
-
buildSection.appendChild(doc.createTextNode(
|
|
104
|
+
buildSection.appendChild(doc.createTextNode(os_1.default.EOL));
|
|
106
105
|
}
|
|
107
106
|
const appmapPlugin = doc.evaluate(`/project/build/plugins/plugin[groupId/text() = 'com.appland' and artifactId/text() = 'appmap-maven-plugin']`, doc, doc.createNSResolver(doc.getRootNode()), 9).singleNodeValue;
|
|
108
107
|
if (appmapPlugin) {
|
|
@@ -121,11 +120,11 @@ class MavenInstaller extends javaBuildToolInstaller_1.JavaBuildToolInstaller {
|
|
|
121
120
|
const node = pluginNode.childNodes[0];
|
|
122
121
|
pluginsSection.appendChild(node);
|
|
123
122
|
}
|
|
124
|
-
pluginsSection.appendChild(doc.createTextNode(
|
|
123
|
+
pluginsSection.appendChild(doc.createTextNode(os_1.default.EOL));
|
|
125
124
|
}
|
|
126
125
|
const serialized = w3c_xmlserializer_1.default(doc.getRootNode());
|
|
127
|
-
|
|
126
|
+
encodedFile.write(serialized);
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
|
-
exports.
|
|
129
|
+
exports.default = MavenInstaller;
|
|
131
130
|
//# sourceMappingURL=mavenInstaller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mavenInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/mavenInstaller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mavenInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/mavenInstaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable class-methods-use-this */
|
|
3
|
-
/* eslint-disable max-classes-per-file */
|
|
4
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
4
|
};
|
|
7
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
6
|
exports.PipInstaller = exports.PoetryInstaller = void 0;
|
|
7
|
+
/* eslint-disable class-methods-use-this */
|
|
8
|
+
/* eslint-disable max-classes-per-file */
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
9
10
|
const path_1 = require("path");
|
|
10
|
-
const fs_1 = require("fs");
|
|
11
11
|
const commandStruct_1 = __importDefault(require("./commandStruct"));
|
|
12
12
|
const utils_1 = require("../../utils");
|
|
13
13
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
14
|
const commandRunner_1 = require("./commandRunner");
|
|
15
15
|
const commandUtil_1 = require("./commandUtil");
|
|
16
|
+
const encodedFile_1 = __importDefault(require("../../encodedFile"));
|
|
16
17
|
const REGEX_PKG_DEPENDENCY = /^\s*appmap\s*[=>~]+=.*$/m;
|
|
17
18
|
// include .dev0 so pip will allow prereleases
|
|
18
19
|
const PKG_DEPENDENCY = 'appmap>=1.1.0.dev0';
|
|
19
|
-
class
|
|
20
|
+
class PythonInstaller {
|
|
20
21
|
constructor(path) {
|
|
21
22
|
this.path = path;
|
|
22
23
|
}
|
|
24
|
+
get documentation() {
|
|
25
|
+
return 'https://appland.com/docs/reference/appmap-python';
|
|
26
|
+
}
|
|
23
27
|
async environment() {
|
|
24
28
|
// Python version is returned as a string similar to:
|
|
25
29
|
// Python 3.7.0
|
|
@@ -35,7 +39,7 @@ class PythonEnvironment {
|
|
|
35
39
|
};
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
|
-
class PoetryInstaller extends
|
|
42
|
+
class PoetryInstaller extends PythonInstaller {
|
|
39
43
|
constructor(path) {
|
|
40
44
|
super(path);
|
|
41
45
|
this.path = path;
|
|
@@ -67,7 +71,7 @@ class PoetryInstaller extends PythonEnvironment {
|
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
exports.PoetryInstaller = PoetryInstaller;
|
|
70
|
-
class PipInstaller extends
|
|
74
|
+
class PipInstaller extends PythonInstaller {
|
|
71
75
|
constructor(path) {
|
|
72
76
|
super(path);
|
|
73
77
|
this.path = path;
|
|
@@ -91,7 +95,8 @@ class PipInstaller extends PythonEnvironment {
|
|
|
91
95
|
return await utils_1.exists(this.buildFilePath);
|
|
92
96
|
}
|
|
93
97
|
async installAgent() {
|
|
94
|
-
|
|
98
|
+
const encodedFile = new encodedFile_1.default(this.buildFilePath);
|
|
99
|
+
let requirements = encodedFile.toString();
|
|
95
100
|
const pkgExists = requirements.search(REGEX_PKG_DEPENDENCY) !== -1;
|
|
96
101
|
if (pkgExists) {
|
|
97
102
|
// Replace the existing package declaration entirely.
|
|
@@ -100,9 +105,9 @@ class PipInstaller extends PythonEnvironment {
|
|
|
100
105
|
else {
|
|
101
106
|
// Insert a new package declaration.
|
|
102
107
|
// eslint-disable-next-line prefer-template
|
|
103
|
-
requirements =
|
|
108
|
+
requirements = PKG_DEPENDENCY + os_1.default.EOL + requirements;
|
|
104
109
|
}
|
|
105
|
-
|
|
110
|
+
encodedFile.write(requirements);
|
|
106
111
|
const cmd = new commandStruct_1.default('pip', ['install', '-r', this.buildFile], this.path);
|
|
107
112
|
await commandRunner_1.run(cmd);
|
|
108
113
|
}
|
|
@@ -111,10 +116,4 @@ class PipInstaller extends PythonEnvironment {
|
|
|
111
116
|
}
|
|
112
117
|
}
|
|
113
118
|
exports.PipInstaller = PipInstaller;
|
|
114
|
-
const PythonAgentInstaller = {
|
|
115
|
-
name: 'Python',
|
|
116
|
-
documentation: 'https://appland.com/docs/reference/appmap-python',
|
|
117
|
-
installers: [PipInstaller, PoetryInstaller],
|
|
118
|
-
};
|
|
119
|
-
exports.default = PythonAgentInstaller;
|
|
120
119
|
//# sourceMappingURL=pythonAgentInstaller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pythonAgentInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/pythonAgentInstaller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pythonAgentInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/pythonAgentInstaller.ts"],"names":[],"mappings":"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"}
|