@appland/appmap 3.13.4 → 3.14.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 CHANGED
@@ -1,3 +1,10 @@
1
+ # [@appland/appmap-v3.14.0](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.13.4...@appland/appmap-v3.14.0) (2021-11-29)
2
+
3
+
4
+ ### Features
5
+
6
+ * Add JavaScript project installers ([eb8f934](https://github.com/applandinc/appmap-js/commit/eb8f93476b85fab1a50f767c5774d5d2fc1910a7))
7
+
1
8
  # [@appland/appmap-v3.13.4](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.13.3...@appland/appmap-v3.13.4) (2021-11-19)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.13.4",
3
+ "version": "3.14.0",
4
4
  "description": "",
5
5
  "bin": "built/src/cli.js",
6
6
  "publishConfig": {
@@ -6,14 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.INSTALLERS = void 0;
7
7
  const gradleInstaller_1 = __importDefault(require("./gradleInstaller"));
8
8
  const mavenInstaller_1 = __importDefault(require("./mavenInstaller"));
9
+ const javaScriptAgentInstaller_1 = require("./javaScriptAgentInstaller");
9
10
  const pythonAgentInstaller_1 = require("./pythonAgentInstaller");
10
11
  const rubyAgentInstaller_1 = require("./rubyAgentInstaller");
11
12
  exports.INSTALLERS = [
12
13
  rubyAgentInstaller_1.BundleInstaller,
13
- mavenInstaller_1.default,
14
14
  gradleInstaller_1.default,
15
+ mavenInstaller_1.default,
16
+ javaScriptAgentInstaller_1.NpmInstaller,
15
17
  pythonAgentInstaller_1.PipInstaller,
16
18
  pythonAgentInstaller_1.PoetryInstaller,
19
+ javaScriptAgentInstaller_1.YarnInstaller
17
20
  ];
18
21
  /**
19
22
  * Retrieve the installers available for a given path
@@ -1 +1 @@
1
- {"version":3,"file":"installers.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/installers.ts"],"names":[],"mappings":";;;;;;AACA,wEAAgD;AAChD,sEAA8C;AAC9C,iEAAuE;AACvE,6DAAuD;AAG1C,QAAA,UAAU,GAAyC;IAC9D,oCAAe;IACf,wBAAc;IACd,yBAAe;IACf,mCAAY;IACZ,sCAAe;CAChB,CAAC;AAEF;;;;GAIG;AACY,KAAK,UAAU,sBAAsB,CAClD,IAAY;IAEZ,MAAM,aAAa,GAAG,kBAAU,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,gGAAgG;IAChG,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CACpE,CAAC;IAEF,mEAAmE;IACnE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAbD,yCAaC"}
1
+ {"version":3,"file":"installers.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/installers.ts"],"names":[],"mappings":";;;;;;AACA,wEAAgD;AAChD,sEAA8C;AAC9C,yEAAyE;AACzE,iEAAuE;AACvE,6DAAuD;AAG1C,QAAA,UAAU,GAAyC;IAC9D,oCAAe;IACf,yBAAe;IACf,wBAAc;IACd,uCAAY;IACZ,mCAAY;IACZ,sCAAe;IACf,wCAAa;CACd,CAAC;AAEF;;;;GAIG;AACY,KAAK,UAAU,sBAAsB,CAClD,IAAY;IAEZ,MAAM,aAAa,GAAG,kBAAU,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7E,gGAAgG;IAChG,iCAAiC;IACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CACpE,CAAC;IAEF,mEAAmE;IACnE,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAbD,yCAaC"}
@@ -0,0 +1,94 @@
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.YarnInstaller = exports.NpmInstaller = void 0;
7
+ const utils_1 = require("../../utils");
8
+ const commandUtil_1 = require("./commandUtil");
9
+ const path_1 = require("path");
10
+ const commandRunner_1 = require("./commandRunner");
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const commandStruct_1 = __importDefault(require("./commandStruct"));
13
+ const AGENT_PACKAGE = '@appland/appmap-agent-js@latest';
14
+ class JavaScriptInstaller {
15
+ constructor(path) {
16
+ this.path = path;
17
+ }
18
+ get documentation() {
19
+ return 'https://appland.com/docs/reference/appmap-agent-js';
20
+ }
21
+ async environment() {
22
+ const version = await commandUtil_1.getOutput('node', ['--version'], this.path);
23
+ return {
24
+ 'Node version': version.ok
25
+ ? version.output.split(/\s/)[1]
26
+ : chalk_1.default.red(version.output),
27
+ };
28
+ }
29
+ async initCommand() {
30
+ return new commandStruct_1.default('npx', ['appmap-agent-js', 'init', this.path], this.path);
31
+ }
32
+ async validateAgentCommand() {
33
+ return new commandStruct_1.default('npx', ['appmap-agent-js', 'status', this.path], this.path);
34
+ }
35
+ }
36
+ class NpmInstaller extends JavaScriptInstaller {
37
+ constructor(path) {
38
+ super(path);
39
+ this.path = path;
40
+ }
41
+ get name() {
42
+ return 'npm';
43
+ }
44
+ get buildFile() {
45
+ return 'package-lock.json';
46
+ }
47
+ get buildFilePath() {
48
+ return path_1.join(this.path, this.buildFile);
49
+ }
50
+ async postInstallMessage() {
51
+ return [
52
+ `Run your tests with ${chalk_1.default.blue('APPMAP=true')} in the environment.`,
53
+ `By default, AppMap files will be output to ${chalk_1.default.blue('tmp/appmap')}.`,
54
+ ].join('\n');
55
+ }
56
+ async available() {
57
+ return await utils_1.exists(this.buildFilePath);
58
+ }
59
+ async installAgent() {
60
+ const cmd = new commandStruct_1.default('npm', ['install', '--saveDev', AGENT_PACKAGE], this.path);
61
+ await commandRunner_1.run(cmd);
62
+ }
63
+ }
64
+ exports.NpmInstaller = NpmInstaller;
65
+ class YarnInstaller extends JavaScriptInstaller {
66
+ constructor(path) {
67
+ super(path);
68
+ this.path = path;
69
+ }
70
+ get name() {
71
+ return 'yarn';
72
+ }
73
+ get buildFile() {
74
+ return 'yarn.lock';
75
+ }
76
+ get buildFilePath() {
77
+ return path_1.join(this.path, this.buildFile);
78
+ }
79
+ async postInstallMessage() {
80
+ return [
81
+ `Run your tests with ${chalk_1.default.blue('APPMAP=true')} in the environment.`,
82
+ `By default, AppMap files will be output to ${chalk_1.default.blue('tmp/appmap')}.`,
83
+ ].join('\n');
84
+ }
85
+ async available() {
86
+ return await utils_1.exists(this.buildFilePath);
87
+ }
88
+ async installAgent() {
89
+ const cmd = new commandStruct_1.default('yarn', ['add', '--dev', AGENT_PACKAGE], this.path);
90
+ await commandRunner_1.run(cmd);
91
+ }
92
+ }
93
+ exports.YarnInstaller = YarnInstaller;
94
+ //# sourceMappingURL=javaScriptAgentInstaller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javaScriptAgentInstaller.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/javaScriptAgentInstaller.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,13 @@ class ConfigValidationError extends Error {
15
15
  exports.ConfigValidationError = ConfigValidationError;
16
16
  function validateConfig(schema, config) {
17
17
  const ajv = new ajv_1.default();
18
- const validate = ajv.compile(schema);
18
+ // If schema is an array, it's actually a collection of schemas, and the
19
+ // 'config' schema will be found within it (i.e. will have '"$id"' set to
20
+ // "config"). Otherwise, it's just a single schema, so just add it as a schema
21
+ // named "config".
22
+ const schemaKey = Array.isArray(schema) ? undefined : "config";
23
+ ajv.addSchema(schema, schemaKey);
24
+ const validate = ajv.getSchema('config');
19
25
  const valid = validate(config);
20
26
  let result = { valid };
21
27
  if (!valid) {
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/service/config/validator.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,mFAA2E;AAU3E,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAqB,MAAwB;QAC3C,KAAK,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QADjB,WAAM,GAAN,MAAM,CAAkB;IAE7C,CAAC;CACF;AAJD,sDAIC;AAED,SAAgB,cAAc,CAAC,MAAc,EAAE,MAAc;IAC3D,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAS,MAAM,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,IAAI,MAAM,GAAqB,EAAC,KAAK,EAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,mCACD,MAAM,KACT,MAAM,EAAE;gBACN,EAAE,EAAE,2BAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;gBACpE,GAAG,EAAE,2BAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;aACvE,GACF,CAAA;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,wCAgBC"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/service/config/validator.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AACtB,mFAA2E;AAU3E,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAqB,MAAwB;QAC3C,KAAK,CAAC,MAAM,CAAC,MAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QADjB,WAAM,GAAN,MAAM,CAAkB;IAE7C,CAAC;CACF;AAJD,sDAIC;AAED,SAAgB,cAAc,CAAC,MAAc,EAAE,MAAc;IAC3D,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;IACtB,wEAAwE;IACxE,yEAAyE;IACzE,8EAA8E;IAC9E,kBAAkB;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,SAAS,CAAA,CAAC,CAAC,QAAQ,CAAC;IAC7D,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAY,CAAC;IAC1C,IAAI,MAAM,GAAqB,EAAC,KAAK,EAAC,CAAC;IACvC,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,mCACD,MAAM,KACT,MAAM,EAAE;gBACN,EAAE,EAAE,2BAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC;gBACpE,GAAG,EAAE,2BAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC;aACvE,GACF,CAAA;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,wCAqBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.13.4",
3
+ "version": "3.14.0",
4
4
  "description": "",
5
5
  "bin": "built/src/cli.js",
6
6
  "publishConfig": {