@appland/appmap 3.44.0 → 3.44.2

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,17 @@
1
+ # [@appland/appmap-v3.44.2](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.44.1...@appland/appmap-v3.44.2) (2022-10-10)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * fix broken CLI tests ([92c6372](https://github.com/getappmap/appmap-js/commit/92c637206dc8edaa61c4542a217d66a932364455))
7
+
8
+ # [@appland/appmap-v3.44.1](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.44.0...@appland/appmap-v3.44.1) (2022-10-10)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * More reliable polling in index --watch ([8b6d18d](https://github.com/getappmap/appmap-js/commit/8b6d18de00aa61c5f7308b00e902ec6a18e09a59))
14
+
1
15
  # [@appland/appmap-v3.44.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.43.2...@appland/appmap-v3.44.0) (2022-10-07)
2
16
 
3
17
 
@@ -7,25 +7,15 @@ const errors_1 = require("./errors");
7
7
  const utils_1 = require("../utils");
8
8
  const userInteraction_1 = __importDefault(require("./userInteraction"));
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
- const yargs_1 = __importDefault(require("yargs"));
11
10
  const exitCode_1 = require("./record/types/exitCode");
12
11
  const telemetry_1 = __importDefault(require("../telemetry"));
13
- async function invokeCommand() { }
14
- function flushTelemetry(exitCode, err) {
15
- telemetry_1.default.flush(() => {
16
- // @types/yargs defines:
17
- // exit(code: number, err: Error): void;
18
- // but in the implementation, err appears to be optional.
19
- yargs_1.default.exit(exitCode, err);
20
- });
21
- }
22
12
  async function runCommand(commandPrefix, fn) {
23
13
  try {
24
14
  const ret = await fn();
25
15
  telemetry_1.default.sendEvent({
26
16
  name: `${commandPrefix}:exit-ok`,
27
17
  });
28
- flushTelemetry(0);
18
+ process.exitCode = 0;
29
19
  return ret;
30
20
  }
31
21
  catch (err) {
@@ -37,7 +27,7 @@ async function runCommand(commandPrefix, fn) {
37
27
  error: err.message,
38
28
  },
39
29
  });
40
- return flushTelemetry(exitCode_1.ExitCode.Error, err);
30
+ process.exitCode = exitCode_1.ExitCode.Error;
41
31
  }
42
32
  else if (err instanceof errors_1.AbortError) {
43
33
  telemetry_1.default.sendEvent({
@@ -46,7 +36,7 @@ async function runCommand(commandPrefix, fn) {
46
36
  error: err.message,
47
37
  },
48
38
  });
49
- return flushTelemetry(exitCode_1.ExitCode.Quit, err);
39
+ process.exitCode = exitCode_1.ExitCode.Quit;
50
40
  }
51
41
  else if (err instanceof Error) {
52
42
  telemetry_1.default.sendEvent({
@@ -63,7 +53,7 @@ async function runCommand(commandPrefix, fn) {
63
53
  userInteraction_1.default.error(`An error occurred: ${err.toString().split('\n')[0]}`);
64
54
  userInteraction_1.default.error(`Try re-running the command with the ${chalk_1.default.red('verbose')} flag (${chalk_1.default.red('-v')}).`);
65
55
  }
66
- flushTelemetry(exitCode_1.ExitCode.Error, err);
56
+ process.exitCode = exitCode_1.ExitCode.Error;
67
57
  }
68
58
  else {
69
59
  // You'll wind up here if the object thrown wasn't an instance of Error. An obvious way this
@@ -1 +1 @@
1
- {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/cmds/runCommand.ts"],"names":[],"mappings":";;;;;AAAA,qCAAuD;AACvD,oCAAmC;AACnC,wEAAmC;AACnC,kDAA0B;AAC1B,kDAAuC;AACvC,sDAAmD;AACnD,6DAAqC;AAErC,KAAK,UAAU,aAAa,KAAI,CAAC;AAEjC,SAAS,cAAc,CAAC,QAAkB,EAAE,GAAW;IACrD,mBAAS,CAAC,KAAK,CAAC,GAAG,EAAE;QACnB,wBAAwB;QACxB,0CAA0C;QAC1C,yDAAyD;QACzD,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAU,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAEc,KAAK,UAAU,UAAU,CACtC,aAAqB,EACrB,EAAsB;IAEtB,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QAEvB,mBAAS,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,GAAG,aAAa,UAAU;SACjC,CAAC,CAAC;QAEH,cAAc,CAAC,CAAC,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC;KACZ;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,wBAAe,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE1B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,mBAAmB;gBACzC,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM,IAAI,GAAG,YAAY,mBAAU,EAAE;YACpC,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC,mBAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC3C;aAAM,IAAI,GAAG,YAAY,KAAK,EAAE;YAC/B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,YAAY,EAAE,GAAG,CAAC,OAAO;oBACzB,UAAU,EAAE,GAAG,CAAC,KAAK;iBACtB;aACF,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,yBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,yBAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,yBAAE,CAAC,KAAK,CACN,uCAAuC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CACzF,CAAC;aACH;YACD,cAAc,CAAC,mBAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACrC;aAAM;YACL,4FAA4F;YAC5F,yFAAyF;YACzF,8CAA8C;YAC9C,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AA3DD,6BA2DC"}
1
+ {"version":3,"file":"runCommand.js","sourceRoot":"","sources":["../../src/cmds/runCommand.ts"],"names":[],"mappings":";;;;;AAAA,qCAAuD;AACvD,oCAAmC;AACnC,wEAAmC;AACnC,kDAA0B;AAC1B,sDAAmD;AACnD,6DAAqC;AAEtB,KAAK,UAAU,UAAU,CACtC,aAAqB,EACrB,EAAsB;IAEtB,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QAEvB,mBAAS,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,GAAG,aAAa,UAAU;SACjC,CAAC,CAAC;QAEH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO,GAAG,CAAC;KACZ;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,YAAY,wBAAe,EAAE;YAClC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE1B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,mBAAmB;gBACzC,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,GAAG,mBAAQ,CAAC,KAAK,CAAC;SACnC;aAAM,IAAI,GAAG,YAAY,mBAAU,EAAE;YACpC,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,OAAO;iBACnB;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,GAAG,mBAAQ,CAAC,IAAI,CAAC;SAClC;aAAM,IAAI,GAAG,YAAY,KAAK,EAAE;YAC/B,mBAAS,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,GAAG,aAAa,QAAQ;gBAC9B,UAAU,EAAE;oBACV,YAAY,EAAE,GAAG,CAAC,OAAO;oBACzB,UAAU,EAAE,GAAG,CAAC,KAAK;iBACtB;aACF,CAAC,CAAC;YAEH,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,yBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,yBAAE,CAAC,KAAK,CAAC,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAChE,yBAAE,CAAC,KAAK,CACN,uCAAuC,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CACzF,CAAC;aACH;YACD,OAAO,CAAC,QAAQ,GAAG,mBAAQ,CAAC,KAAK,CAAC;SACnC;aAAM;YACL,4FAA4F;YAC5F,yFAAyF;YACzF,8CAA8C;YAC9C,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AA3DD,6BA2DC"}
@@ -12,6 +12,7 @@ const intersectMaps_1 = require("../lib/intersectMaps");
12
12
  const telemetry_1 = __importDefault(require("../telemetry"));
13
13
  const utils_1 = require("../utils");
14
14
  const fingerprintQueue_1 = __importDefault(require("./fingerprintQueue"));
15
+ const globber_1 = __importDefault(require("./globber"));
15
16
  class FingerprintWatchCommand {
16
17
  constructor(directory) {
17
18
  this.directory = directory;
@@ -38,30 +39,26 @@ class FingerprintWatchCommand {
38
39
  }
39
40
  }
40
41
  async execute() {
41
- // Index existing AppMap files
42
- await (0, utils_1.listAppMapFiles)(this.directory, (file) => this.fpQueue.push(file));
43
42
  this.fpQueue.process().then(() => {
44
43
  this.fpQueue.handler.checkVersion = false;
45
44
  });
46
45
  const glob = `${this.directory}/**/*.appmap.json`;
46
+ this.poller = new globber_1.default(glob)
47
+ .on('add', this.added.bind(this))
48
+ .on('change', this.changed.bind(this))
49
+ .on('unlink', this.removed.bind(this));
50
+ const pollReady = new Promise((r) => { var _a; return (_a = this.poller) === null || _a === void 0 ? void 0 : _a.once('end', r); });
51
+ this.poller.start();
52
+ await pollReady;
47
53
  this.watcher = (0, chokidar_1.watch)(glob, {
48
54
  ignoreInitial: true,
49
55
  ignored: ['**/node_modules/**', '**/.git/**'],
50
- });
51
- this.poller = (0, chokidar_1.watch)(glob, {
52
- ignoreInitial: true,
53
- ignored: ['**/node_modules/**', '**/.git/**'],
54
- usePolling: true,
55
- interval: 1000,
56
- persistent: false,
57
- });
58
- // eslint-disable-next-line no-restricted-syntax
59
- for (const ch of [this.watcher, this.poller]) {
60
- ch.on('add', this.added.bind(this))
61
- .on('change', this.changed.bind(this))
62
- .on('unlink', this.removed.bind(this));
63
- }
64
- await Promise.all([this.watcher, this.poller].map((ch) => new Promise((resolve) => ch.on('ready', resolve))));
56
+ })
57
+ .on('add', this.added.bind(this))
58
+ .on('change', this.changed.bind(this))
59
+ .on('unlink', this.removed.bind(this));
60
+ const watchReady = new Promise((r) => { var _a; return (_a = this.watcher) === null || _a === void 0 ? void 0 : _a.once('ready', r); });
61
+ await Promise.all([pollReady, watchReady]);
65
62
  this.ready();
66
63
  }
67
64
  async close() {
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const stream_1 = require("stream");
4
+ const glob_1 = require("glob");
5
+ const console_1 = require("console");
6
+ const promises_1 = require("fs/promises");
7
+ class Globber extends stream_1.EventEmitter {
8
+ constructor(pattern, interval = 1000) {
9
+ super();
10
+ this.pattern = pattern;
11
+ this.interval = interval;
12
+ this.running = false;
13
+ this.mtimes = new Map();
14
+ }
15
+ scanNow() {
16
+ (0, console_1.assert)(!this.currentGlob);
17
+ this.timeout = undefined;
18
+ this.currentGlob = new glob_1.Glob(this.pattern, { ignore: ['**/node_modules/**', '**/.git/**'] })
19
+ .on('end', this.scanEnd.bind(this))
20
+ .on('match', this.matchFound.bind(this));
21
+ }
22
+ start() {
23
+ this.running = true;
24
+ this.scanNow();
25
+ }
26
+ close() {
27
+ if (this.currentGlob)
28
+ this.currentGlob.abort();
29
+ if (this.timeout)
30
+ clearTimeout(this.timeout);
31
+ this.running = false;
32
+ this.currentGlob = undefined;
33
+ this.timeout = undefined;
34
+ }
35
+ scanEnd(found) {
36
+ this.currentGlob = undefined;
37
+ const files = new Set(found);
38
+ for (const f of this.mtimes.keys()) {
39
+ if (!files.has(f))
40
+ this.remove(f);
41
+ }
42
+ this.emit('end');
43
+ if (this.running)
44
+ this.timeout = setTimeout(this.scanNow.bind(this), this.interval);
45
+ }
46
+ matchFound(file) {
47
+ (0, promises_1.stat)(file).then((stat) => this.update(file, stat), () => this.remove(file));
48
+ }
49
+ update(file, { mtimeMs }) {
50
+ const oldTime = this.mtimes.get(file);
51
+ if (oldTime === mtimeMs)
52
+ return;
53
+ this.mtimes.set(file, mtimeMs);
54
+ const event = oldTime ? 'change' : 'add';
55
+ this.emit(event, file);
56
+ }
57
+ remove(file) {
58
+ {
59
+ this.mtimes.delete(file);
60
+ this.emit('unlink', file);
61
+ }
62
+ }
63
+ }
64
+ exports.default = Globber;
65
+ //# sourceMappingURL=globber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globber.js","sourceRoot":"","sources":["../../src/fingerprint/globber.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.44.0",
3
+ "version": "3.44.2",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "publishConfig": {