@appland/appmap 3.40.0 → 3.41.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,23 @@
1
+ # [@appland/appmap-v3.41.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.40.1...@appland/appmap-v3.41.0) (2022-09-27)
2
+
3
+
4
+ ### Features
5
+
6
+ * detect architecture mismatch errors in Ruby ([ff775f7](https://github.com/getappmap/appmap-js/commit/ff775f73eb76326ebac57fc9a6de05327cf158d6))
7
+
8
+ # [@appland/appmap-v3.40.1](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.40.0...@appland/appmap-v3.40.1) (2022-09-27)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Ignore node_modules and .git when watching files ([a53e2a8](https://github.com/getappmap/appmap-js/commit/a53e2a8c0de25e0e7ae7c0515763a9f46d3bc307))
14
+ * More reliable AppMap change detection when indexing ([ef5f184](https://github.com/getappmap/appmap-js/commit/ef5f184fce5e3cdf6f7a645ae1fabf78ec733f0f))
15
+
16
+
17
+ ### Performance Improvements
18
+
19
+ * Don't try to index the same AppMaps more than once ([6e6e88c](https://github.com/getappmap/appmap-js/commit/6e6e88cd48dbba67cdc81a68c6c753609e04cdee))
20
+
1
21
  # [@appland/appmap-v3.40.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.39.0...@appland/appmap-v3.40.0) (2022-09-27)
2
22
 
3
23
 
@@ -10,6 +10,8 @@ const errors_1 = require("../errors");
10
10
  const commandRunner_1 = require("./commandRunner");
11
11
  const userInteraction_1 = __importDefault(require("../userInteraction"));
12
12
  const agentProcedure_1 = __importDefault(require("./agentProcedure"));
13
+ const telemetry_1 = __importDefault(require("../../telemetry"));
14
+ const commandStruct_1 = __importDefault(require("./commandStruct"));
13
15
  class AgentInstallerProcedure extends agentProcedure_1.default {
14
16
  async run() {
15
17
  const { confirm } = await userInteraction_1.default.prompt({
@@ -50,27 +52,57 @@ class AgentInstallerProcedure extends agentProcedure_1.default {
50
52
  useExistingAppMapYml = true;
51
53
  }
52
54
  }
53
- userInteraction_1.default.status = 'Installing the AppMap agent...';
55
+ userInteraction_1.default.status = 'Installing AppMap...';
54
56
  await this.installer.checkCurrentConfig();
55
57
  await this.installer.installAgent();
56
58
  await this.verifyProject();
57
59
  const appMapYml = this.configPath;
58
- if (!useExistingAppMapYml) {
59
- const initCommand = await this.installer.initCommand();
60
- const { stdout } = await (0, commandRunner_1.run)(initCommand);
61
- const json = JSON.parse(stdout);
62
- fs_1.default.writeFileSync(appMapYml, json.configuration.contents);
60
+ try {
61
+ if (!useExistingAppMapYml) {
62
+ const initCommand = await this.installer.initCommand();
63
+ const { stdout } = await (0, commandRunner_1.run)(initCommand);
64
+ const json = JSON.parse(stdout);
65
+ fs_1.default.writeFileSync(appMapYml, json.configuration.contents);
66
+ }
67
+ await this.validateProject(useExistingAppMapYml);
68
+ const successMessage = [
69
+ chalk_1.default.green('Success! AppMap has finished installing.'),
70
+ '',
71
+ chalk_1.default.blue('NEXT STEP: Record AppMaps'),
72
+ '',
73
+ 'You can consult the AppMap documentation, or continue with the ',
74
+ 'instructions provided in the AppMap code editor extension.',
75
+ ];
76
+ userInteraction_1.default.success(successMessage.join('\n'));
77
+ }
78
+ catch (e) {
79
+ const error = e;
80
+ if (this.installer.name === 'Bundler' &&
81
+ (error === null || error === void 0 ? void 0 : error.message.includes('but is an incompatible architecture'))) {
82
+ await (0, commandRunner_1.run)(new commandStruct_1.default('gem', ['uninstall', 'appmap', '-x', '--force'], this.path));
83
+ const incompatibleArchitectureMessage = [
84
+ '\n',
85
+ chalk_1.default.bold.red('AppMap Installation Error!'),
86
+ '',
87
+ 'Please run the following command in your terminal, then re-run the installer:',
88
+ '',
89
+ chalk_1.default.blue('bundle'),
90
+ '\n',
91
+ ];
92
+ telemetry_1.default.sendEvent({
93
+ name: 'install-agent:architecture-mismatch-error',
94
+ properties: {
95
+ error: error === null || error === void 0 ? void 0 : error.message,
96
+ directory: this.path,
97
+ installer: this.installer.name,
98
+ },
99
+ });
100
+ userInteraction_1.default.error(incompatibleArchitectureMessage.join('\n'));
101
+ }
102
+ else {
103
+ throw e;
104
+ }
63
105
  }
64
- await this.validateProject(useExistingAppMapYml);
65
- const successMessage = [
66
- chalk_1.default.green('Success! The AppMap agent has been installed.'),
67
- '',
68
- chalk_1.default.blue('NEXT STEP: Record AppMaps'),
69
- '',
70
- 'You can consult the AppMap documentation, or continue with the ',
71
- 'instructions provided in the AppMap code editor extension.',
72
- ];
73
- userInteraction_1.default.success(successMessage.join('\n'));
74
106
  }
75
107
  }
76
108
  exports.default = AgentInstallerProcedure;
@@ -1 +1 @@
1
- {"version":3,"file":"agentInstallerProcedure.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/agentInstallerProcedure.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,4CAAoB;AACpB,kDAA0B;AAE1B,sCAAuC;AACvC,mDAAsC;AACtC,yEAAoC;AACpC,sEAA8C;AAE9C,MAAqB,uBAAwB,SAAQ,wBAAc;IACjE,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;YAClC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,SAAS;YACf,OAAO,EAAE;gBACP,6DAA6D;gBAC7D,MAAM,IAAI,CAAC,wBAAwB,EAAE;gBACrC,EAAE;gBACF,oBAAoB;aACrB;iBACE,IAAI,EAAE;iBACN,IAAI,CAAC,IAAI,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE;YACZ,yBAAE,CAAC,MAAM,GAAG,wBAAwB,CAAC;YACrC,yBAAE,CAAC,KAAK,CACN;gBACE,wEAAwE;gBACxE,OAAO,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB;aACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;YACF,MAAM,IAAI,mBAAU,CAAC,mDAAmD,CAAC,CAAC;SAC3E;QAED,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,SAAS,GAAG,WAAW,CAAC;YAC9B,MAAM,KAAK,GAAG,OAAO,CAAC;YAEtB,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;gBAC7C,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EACL,uFAAuF;gBACzF,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,CAAC;aAC1C,CAAC,CAAC;YAEH,IAAI,kBAAkB,KAAK,KAAK,EAAE;gBAChC,eAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,CAAC;aAC5B;YAED,IAAI,kBAAkB,KAAK,YAAY,EAAE;gBACvC,oBAAoB,GAAG,IAAI,CAAC;aAC7B;SACF;QAED,yBAAE,CAAC,MAAM,GAAG,gCAAgC,CAAC;QAE7C,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAEpC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,mBAAG,EAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEhC,YAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAC1D;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG;YACrB,eAAK,CAAC,KAAK,CAAC,+CAA+C,CAAC;YAC5D,EAAE;YACF,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC;YACvC,EAAE;YACF,iEAAiE;YACjE,4DAA4D;SAC7D,CAAC;QAEF,yBAAE,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;CACF;AA9ED,0CA8EC"}
1
+ {"version":3,"file":"agentInstallerProcedure.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/agentInstallerProcedure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/cmds/open/open.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA+D;AAC/D,kDAA0B;AAC1B,yEAAoC;AACpC,+DAAuC;AACvC,8DAAsC;AACtC,sCAA4C;AAC5C,gEAAwC;AAE3B,QAAA,OAAO,GAAG,oBAAoB,CAAC;AAC/B,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAEhE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE;IAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;QAC7B,QAAQ,EAAE,6BAA6B;QACvC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;IACpC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,UAAU,EAAE;YACf,yBAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC9C,MAAM,IAAI,wBAAe,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,CAAC,MAAM,IAAA,cAAM,EAAC,UAAU,CAAC,CAAC,EAAE;YAC/B,yBAAE,CAAC,KAAK,CAAC,eAAe,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACjE,MAAM,IAAI,wBAAe,EAAE,CAAC;SAC7B;QAED,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,mBAAS,CAAC,SAAS,CAAC;QAClB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAU,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAvBW,QAAA,OAAO,WAuBlB"}
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/cmds/open/open.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA8C;AAC9C,kDAA0B;AAC1B,yEAAoC;AACpC,+DAAuC;AACvC,8DAAsC;AACtC,sCAA4C;AAC5C,gEAAwC;AAE3B,QAAA,OAAO,GAAG,oBAAoB,CAAC;AAC/B,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAEhE,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,EAAE;IAC9B,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;QAC7B,QAAQ,EAAE,6BAA6B;QACvC,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;AACvB,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB;AAEK,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;IACpC,IAAA,eAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,UAAU,EAAE;YACf,yBAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC9C,MAAM,IAAI,wBAAe,EAAE,CAAC;SAC7B;QACD,IAAI,CAAC,CAAC,MAAM,IAAA,cAAM,EAAC,UAAU,CAAC,CAAC,EAAE;YAC/B,yBAAE,CAAC,KAAK,CAAC,eAAe,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACjE,MAAM,IAAI,wBAAe,EAAE,CAAC;SAC7B;QAED,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,mBAAS,CAAC,SAAS,CAAC;QAClB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,OAAO,IAAA,oBAAU,EAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACvC,CAAC,CAAC;AAvBW,QAAA,OAAO,WAuBlB"}
@@ -6,7 +6,7 @@ async function countAppMaps(appMapDir) {
6
6
  // This function is too verbose to be useful in this context.
7
7
  const v = (0, utils_1.verbose)();
8
8
  (0, utils_1.verbose)(false);
9
- await (0, utils_1.listAppMapFiles)(appMapDir, (_fileName) => (fileCount += 1));
9
+ await (0, utils_1.listAppMapFiles)(appMapDir, () => { fileCount += 1; });
10
10
  (0, utils_1.verbose)(v);
11
11
  return fileCount;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"countAppMaps.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/countAppMaps.ts"],"names":[],"mappings":";;AAAA,0CAA0D;AAE3C,KAAK,UAAU,YAAY,CAAC,SAAiB;IAC1D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,6DAA6D;IAC7D,MAAM,CAAC,GAAG,IAAA,eAAO,GAAE,CAAC;IACpB,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IACf,MAAM,IAAA,uBAAe,EAAC,SAAS,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAA,eAAO,EAAC,CAAC,CAAC,CAAC;IAEX,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,+BAUC"}
1
+ {"version":3,"file":"countAppMaps.js","sourceRoot":"","sources":["../../../../src/cmds/record/action/countAppMaps.ts"],"names":[],"mappings":";;AAAA,0CAA0D;AAE3C,KAAK,UAAU,YAAY,CAAC,SAAiB;IAC1D,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,6DAA6D;IAC7D,MAAM,CAAC,GAAG,IAAA,eAAO,GAAE,CAAC;IACpB,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IACf,MAAM,IAAA,uBAAe,EAAC,SAAS,EAAE,GAAG,EAAE,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAA,eAAO,EAAC,CAAC,CAAC,CAAC;IAEX,OAAO,SAAS,CAAC;AACnB,CAAC;AAVD,+BAUC"}
@@ -56,7 +56,8 @@ class AppMapIndex {
56
56
  * @param data Raw data to store.
57
57
  */
58
58
  async writeFileAtomic(fileName, data) {
59
- await (0, utils_1.writeFileAtomic)(this.indexDir, fileName, this.appmapCreatedAt, data);
59
+ (0, assert_1.default)(this.appmapCreatedAt);
60
+ await (0, utils_1.writeFileAtomic)(this.indexDir, fileName, this.appmapCreatedAt.toString(), data);
60
61
  }
61
62
  /**
62
63
  * Loads the raw AppMap data that will be indexed.
@@ -1 +1 @@
1
- {"version":3,"file":"appmapIndex.js","sourceRoot":"","sources":["../../src/fingerprint/appmapIndex.ts"],"names":[],"mappings":";;;;;AAAA,oDAA4B;AAC5B,0CAA6D;AAC7D,+BAA4B;AAC5B,mCAAuD;AACvD,oCAAqE;AAErE;;;;;;;;;;GAUG;AACH,MAAqB,WAAW;IAI9B;;;;;OAKG;IACH,YAAmB,cAAsB;QAAtB,mBAAc,GAAd,cAAc,CAAQ;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAA,gBAAQ,EAAC,cAAc,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,eAAe,GAAG,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,cAAc,mCAAmC,CAAC,CAAC;YAC5E,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAA,gBAAK,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,IAAY;QAClD,MAAM,IAAA,uBAAe,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,SAAiB,CAAC;QACtB,IAAI;YACF,SAAS,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACV,IAAK,CAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAChC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,kBAAkB,CAAC,CAAC;gBACtD,OAAO;aACR;YAED,MAAM,CAAC,CAAC;SACT;QAED,IAAI,IAAA,eAAO,GAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,QAAQ,SAAS,CAAC,MAAM,eAAe,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;SAC3E;QAED,IAAI,UAAe,CAAC;QACpB,IAAI;YACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACpC;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,WAAW,EAAE;gBAC9B,yCAAyC;gBACzC,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,cAAc,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChF,OAAO;aACR;YAED,MAAM,GAAG,CAAC;SACX;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YACxB,IAAI,IAAA,eAAO,GAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,+BAA+B,CAAC,CAAC;aACrE;YACD,OAAO;SACR;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,CAAC,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,eAAuB;QAC3C,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,UAA8B,CAAC;QACnC,IAAI;YACF,UAAU,GAAG,MAAM,IAAA,mBAAQ,EAAC,eAAe,EAAE,OAAO,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAK,GAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAClC,MAAM,GAAG,CAAC;aACX;SACF;QACD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAE9B,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,IAAA,eAAO,GAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,qBAAqB,UAAU,EAAE,CAAC,CAAC;SAChE;QACD,OAAO,IAAA,kBAAgB,EAAC,UAAU,EAAE,MAAM,eAAe,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QACjB,IAAA,gBAAM,EAAC,IAAI,CAAC,eAAe,EAAE,iCAAiC,CAAC,CAAC;QAEhE,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,YAAgC,CAAC;QACrC,IAAI;YACF,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC;SACvD;QAAC,OAAO,GAAG,EAAE;YACZ,IAAK,GAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAClC,MAAM,GAAG,CAAC;aACX;SACF;QACD,IAAI,CAAC,YAAY;YAAE,OAAO,KAAK,CAAC;QAEhC,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAE3C,IAAI,IAAA,eAAO,GAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,eAAe,IAAI,CAAC,eAAe,gBAAgB,SAAS,EAAE,CAAC,CAAC;SAC7F;QACD,OAAO,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC;IAC3C,CAAC;CACF;AAnJD,8BAmJC"}
1
+ {"version":3,"file":"appmapIndex.js","sourceRoot":"","sources":["../../src/fingerprint/appmapIndex.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const { verbose, listAppMapFiles } = require('../utils');
3
- const FingerprintQueue = require('./fingerprintQueue');
3
+ const FingerprintQueue = require('./fingerprintQueue').default;
4
4
  class FingerprintDirectoryCommand {
5
5
  constructor(directory) {
6
6
  this.directory = directory;
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprintDirectoryCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintDirectoryCommand.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEvD,MAAM,2BAA2B;IAC/B,YAAY,SAAS;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,OAAO,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SAC7D;QAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC"}
1
+ {"version":3,"file":"fingerprintDirectoryCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintDirectoryCommand.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAE/D,MAAM,2BAA2B;IAC/B,YAAY,SAAS;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,OAAO,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;SAC7D;QAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,KAAK,IAAI,CAAC,CAAC;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,2BAA2B,CAAC"}
@@ -1,19 +1,28 @@
1
1
  "use strict";
2
- const { queue } = require('async');
3
- const { default: FileTooLargeError } = require('./fileTooLargeError');
4
- const Fingerprinter = require('./fingerprinter');
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 async_1 = require("async");
7
+ const fileTooLargeError_1 = __importDefault(require("./fileTooLargeError"));
8
+ const fingerprinter_1 = __importDefault(require("./fingerprinter"));
9
+ function isNodeError(error, code) {
10
+ return error instanceof Error && (!code || error.code === code);
11
+ }
5
12
  class FingerprintQueue {
6
- constructor(size = 5, printCanonicalAppMaps = true) {
13
+ constructor(size = 2, printCanonicalAppMaps = true) {
7
14
  this.size = size;
15
+ this.pending = new Set();
8
16
  // eslint-disable-next-line no-use-before-define
9
- this.handler = new Fingerprinter(printCanonicalAppMaps);
10
- this.queue = queue(async (appmapFileName) => {
17
+ this.handler = new fingerprinter_1.default(printCanonicalAppMaps);
18
+ this.queue = (0, async_1.queue)(async (appmapFileName) => {
11
19
  try {
12
20
  await this.handler.fingerprint(appmapFileName);
13
21
  }
14
22
  catch (e) {
15
23
  console.warn(`Error fingerprinting ${appmapFileName}: ${e}`);
16
24
  }
25
+ this.pending.delete(appmapFileName);
17
26
  }, this.size);
18
27
  this.queue.pause();
19
28
  }
@@ -24,13 +33,13 @@ class FingerprintQueue {
24
33
  return new Promise((resolve, reject) => {
25
34
  this.queue.drain(resolve);
26
35
  this.queue.error((error) => {
27
- if (error instanceof FileTooLargeError) {
36
+ if (error instanceof fileTooLargeError_1.default) {
28
37
  console.warn([
29
38
  `Skipped: ${error.message}`,
30
39
  'Tip: consider recording a shorter interaction or removing some classes from appmap.yml.',
31
40
  ].join('\n'));
32
41
  }
33
- else if (error.code === 'ENOENT') {
42
+ else if (isNodeError(error, 'ENOENT')) {
34
43
  console.warn(`Skipped: ${error.path}\nThe file does not exist.`);
35
44
  }
36
45
  else
@@ -40,8 +49,11 @@ class FingerprintQueue {
40
49
  });
41
50
  }
42
51
  push(job) {
52
+ if (this.pending.has(job))
53
+ return;
54
+ this.pending.add(job);
43
55
  this.queue.push(job);
44
56
  }
45
57
  }
46
- module.exports = FingerprintQueue;
58
+ exports.default = FingerprintQueue;
47
59
  //# sourceMappingURL=fingerprintQueue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprintQueue.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintQueue.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACtE,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEjD,MAAM,gBAAgB;IACpB,YAAY,IAAI,GAAG,CAAC,EAAE,qBAAqB,GAAG,IAAI;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,gDAAgD;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC1C,IAAI;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;aAChD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,wBAAwB,cAAc,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9D;QACH,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,SAAS;QACpB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,KAAK,YAAY,iBAAiB,EAAE;oBACtC,OAAO,CAAC,IAAI,CACV;wBACE,YAAY,KAAK,CAAC,OAAO,EAAE;wBAC3B,yFAAyF;qBAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;iBACH;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAClC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,4BAA4B,CAAC,CAAC;iBAClE;;oBAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAG;QACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"fingerprintQueue.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintQueue.ts"],"names":[],"mappings":";;;;;AAAA,iCAA2C;AAC3C,4EAAoD;AACpD,oEAA4C;AAE5C,SAAS,WAAW,CAAC,KAAc,EAAE,IAAa;IAChD,OAAO,KAAK,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,IAAK,KAA+B,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED,MAAqB,gBAAgB;IAKnC,YAAoB,OAAO,CAAC,EAAE,qBAAqB,GAAG,IAAI;QAAtC,SAAI,GAAJ,IAAI,CAAI;QAFpB,YAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAGlC,gDAAgD;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,qBAAqB,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,GAAG,IAAA,aAAK,EAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC1C,IAAI;gBACF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;aAChD;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,IAAI,CAAC,wBAAwB,cAAc,KAAK,CAAC,EAAE,CAAC,CAAC;aAC9D;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,SAAqB;QAChC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,KAAK,YAAY,2BAAiB,EAAE;oBACtC,OAAO,CAAC,IAAI,CACV;wBACE,YAAY,KAAK,CAAC,OAAO,EAAE;wBAC3B,yFAAyF;qBAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;iBACH;qBAAM,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;oBACvC,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,4BAA4B,CAAC,CAAC;iBAClE;;oBAAM,MAAM,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACF;AA/CD,mCA+CC"}
@@ -3,7 +3,7 @@ const chokidar = require('chokidar');
3
3
  const fs = require('fs-extra');
4
4
  const path = require('path');
5
5
  const { verbose, listAppMapFiles } = require('../utils');
6
- const FingerprintQueue = require('./fingerprintQueue');
6
+ const FingerprintQueue = require('./fingerprintQueue').default;
7
7
  class FingerprintWatchCommand {
8
8
  constructor(directory) {
9
9
  this.directory = directory;
@@ -26,21 +26,32 @@ class FingerprintWatchCommand {
26
26
  // Index existing AppMap files
27
27
  await listAppMapFiles(this.directory, (file) => this.fpQueue.push(file));
28
28
  this.fpQueue.process();
29
- this.watcher = chokidar.watch(`${this.directory}/**/*.appmap.json`, {
29
+ const glob = `${this.directory}/**/*.appmap.json`;
30
+ this.watcher = chokidar.watch(glob, {
30
31
  ignoreInitial: true,
32
+ ignored: ['**/node_modules/**', '**/.git/**'],
31
33
  });
32
- return new Promise((resolve) => {
33
- this.watcher
34
- .on('add', this.added.bind(this))
35
- .on('change', this.changed.bind(this))
36
- .on('unlink', this.removed.bind(this))
37
- .on('ready', this.ready.bind(this, resolve));
34
+ this.poller = chokidar.watch(glob, {
35
+ ignoreInitial: true,
36
+ ignored: ['**/node_modules/**', '**/.git/**'],
37
+ usePolling: true,
38
+ interval: 1000,
39
+ persistent: false,
38
40
  });
41
+ // eslint-disable-next-line no-restricted-syntax
42
+ for (const ch of [this.watcher, this.poller]) {
43
+ ch.on('add', this.added.bind(this))
44
+ .on('change', this.changed.bind(this))
45
+ .on('unlink', this.removed.bind(this));
46
+ }
47
+ await Promise.all([this.watcher, this.poller].map((ch) => new Promise((resolve) => ch.on('ready', resolve))));
48
+ this.ready();
39
49
  }
40
50
  async close() {
41
- await this.watcher.close();
51
+ await Promise.all([this.watcher, this.poller].map((ch) => ch === null || ch === void 0 ? void 0 : ch.close()));
42
52
  this.removePidfile();
43
53
  this.watcher = null;
54
+ this.poller = null;
44
55
  }
45
56
  added(file) {
46
57
  if (verbose()) {
@@ -58,7 +69,7 @@ class FingerprintWatchCommand {
58
69
  removed(file) {
59
70
  console.warn(`TODO: AppMap removed: ${file}`);
60
71
  }
61
- ready(resolve) {
72
+ ready() {
62
73
  if (this.pidfilePath) {
63
74
  fs.outputFileSync(this.pidfilePath, `${process.pid}`);
64
75
  process.on('exit', this.removePidfile.bind(this));
@@ -66,7 +77,6 @@ class FingerprintWatchCommand {
66
77
  if (verbose()) {
67
78
  console.warn(`Watching appmaps in ${path.resolve(process.cwd(), this.directory)}`);
68
79
  }
69
- resolve();
70
80
  }
71
81
  enqueue(file) {
72
82
  // This shouldn't be necessary, but it's passing through the wrong file names.
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.js"],"names":[],"mappings":"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"}
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
- const { createHash } = require('crypto');
3
- const { join: joinPath, basename } = require('path');
4
- const fsp = require('fs').promises;
5
- const { buildAppMap } = require('@appland/models');
6
- const assert = require('assert');
7
- const { default: FileTooLargeError } = require('./fileTooLargeError');
8
- const { verbose, mtime } = require('../utils');
9
- const { algorithms, canonicalize } = require('./canonicalize');
10
- const { default: AppMapIndex } = require('./appmapIndex');
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 crypto_1 = require("crypto");
7
+ const path_1 = require("path");
8
+ const fs_1 = require("fs");
9
+ const models_1 = require("@appland/models");
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const fileTooLargeError_1 = __importDefault(require("./fileTooLargeError"));
12
+ const utils_1 = require("../utils");
13
+ const canonicalize_1 = require("./canonicalize");
14
+ const appmapIndex_1 = __importDefault(require("./appmapIndex"));
11
15
  /**
12
16
  * CHANGELOG
13
17
  *
@@ -46,21 +50,21 @@ class Fingerprinter {
46
50
  }
47
51
  // eslint-disable-next-line class-methods-use-this
48
52
  async fingerprint(appMapFileName) {
49
- if (verbose()) {
53
+ if ((0, utils_1.verbose)()) {
50
54
  console.log(`Fingerprinting ${appMapFileName}`);
51
55
  }
52
- const index = new AppMapIndex(appMapFileName);
56
+ const index = new appmapIndex_1.default(appMapFileName);
53
57
  if (!(await index.initialize())) {
54
58
  return;
55
59
  }
56
60
  if ((await index.versionUpToDate(VERSION)) && (await index.indexUpToDate())) {
57
- if (verbose()) {
61
+ if ((0, utils_1.verbose)()) {
58
62
  console.log('Fingerprint is up to date. Skipping...');
59
63
  }
60
64
  return;
61
65
  }
62
66
  if ((await index.appmapFileSize()) > MAX_APPMAP_SIZE)
63
- throw new FileTooLargeError(appMapFileName, await index.appmapFileSize(), MAX_APPMAP_SIZE);
67
+ throw new fileTooLargeError_1.default(appMapFileName, await index.appmapFileSize(), MAX_APPMAP_SIZE);
64
68
  const appmapData = await index.loadAppMapData();
65
69
  if (!appmapData)
66
70
  return;
@@ -68,20 +72,20 @@ class Fingerprinter {
68
72
  if (!appmapDataWithoutMetadata)
69
73
  return;
70
74
  delete appmapDataWithoutMetadata.metadata;
71
- const appmapDigest = createHash('sha256')
75
+ const appmapDigest = (0, crypto_1.createHash)('sha256')
72
76
  .update(JSON.stringify(appmapDataWithoutMetadata, null, 2))
73
77
  .digest('hex');
74
78
  const fingerprints = [];
75
79
  appmapData.metadata.fingerprints = fingerprints;
76
- const appmap = buildAppMap(appmapData).normalize().build();
80
+ const appmap = (0, models_1.buildAppMap)(appmapData).normalize().build();
77
81
  await index.mkdir_p();
78
- await Promise.all(Object.keys(algorithms).map(async (algorithmName) => {
79
- const canonicalForm = canonicalize(algorithmName, appmap);
82
+ await Promise.all(Object.keys(canonicalize_1.algorithms).map(async (algorithmName) => {
83
+ const canonicalForm = (0, canonicalize_1.canonicalize)(algorithmName, appmap);
80
84
  const canonicalJSON = JSON.stringify(canonicalForm, null, 2);
81
85
  if (this.printCanonicalAppMaps) {
82
86
  await index.writeFileAtomic(`canonical.${algorithmName}.json`, canonicalJSON);
83
87
  }
84
- const fingerprintDigest = createHash('sha256').update(canonicalJSON).digest('hex');
88
+ const fingerprintDigest = (0, crypto_1.createHash)('sha256').update(canonicalJSON).digest('hex');
85
89
  fingerprints.push({
86
90
  appmap_digest: appmapDigest,
87
91
  canonicalization_algorithm: algorithmName,
@@ -90,10 +94,10 @@ class Fingerprinter {
90
94
  });
91
95
  }));
92
96
  appmapData.metadata.fingerprints.sort((a, b) => a.canonicalization_algorithm.localeCompare(b.canonicalization_algorithm));
93
- const tempAppMapFileName = joinPath(index.indexDir, 'appmap.tmp');
94
- await index.writeFileAtomic(basename(tempAppMapFileName), JSON.stringify(appmap, null, 2));
95
- const appMapIndexedAt = await mtime(tempAppMapFileName);
96
- assert(appMapIndexedAt, `${tempAppMapFileName} should always exist and be a readable file`);
97
+ const tempAppMapFileName = (0, path_1.join)(index.indexDir, 'appmap.tmp');
98
+ await index.writeFileAtomic((0, path_1.basename)(tempAppMapFileName), JSON.stringify(appmap, null, 2));
99
+ const appMapIndexedAt = await (0, utils_1.mtime)(tempAppMapFileName);
100
+ (0, assert_1.default)(appMapIndexedAt, `${tempAppMapFileName} should always exist and be a readable file`);
97
101
  await Promise.all([
98
102
  index.writeFileAtomic('version', VERSION),
99
103
  index.writeFileAtomic('classMap.json', JSON.stringify(appmap.classMap, null, 2)),
@@ -103,9 +107,9 @@ class Fingerprinter {
103
107
  // At this point, moving the AppMap file into place will trigger re-indexing.
104
108
  // But the mtime will match the file modification time, so the algorithm will
105
109
  // determine that the index is up-to-date.
106
- await fsp.rename(tempAppMapFileName, appMapFileName, { overwrite: true });
110
+ await fs_1.promises.rename(tempAppMapFileName, appMapFileName);
107
111
  this.counterFn();
108
112
  }
109
113
  }
110
- module.exports = Fingerprinter;
114
+ exports.default = Fingerprinter;
111
115
  //# sourceMappingURL=fingerprinter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprinter.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprinter.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACnC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEtE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAC/C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAEzC,MAAM,aAAa;IACjB;;OAEG;IACH,YAAY,qBAAqB;QAC/B,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,SAAS;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,WAAW,CAAC,cAAc;QAC9B,IAAI,OAAO,EAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;SACjD;QAED,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE;YAC/B,OAAO;SACR;QAED,IAAI,CAAC,MAAM,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE;YAC3E,IAAI,OAAO,EAAE,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;aACvD;YACD,OAAO;SACR;QAED,IAAI,CAAC,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,eAAe;YAClD,MAAM,IAAI,iBAAiB,CAAC,cAAc,EAAE,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,eAAe,CAAC,CAAC;QAE7F,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,yBAAyB,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/D,IAAI,CAAC,yBAAyB;YAAE,OAAO;QAEvC,OAAO,yBAAyB,CAAC,QAAQ,CAAC;QAC1C,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;aACtC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;aAC1D,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,UAAU,CAAC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;QAEhD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;QAE3D,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;YAClD,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,MAAM,KAAK,CAAC,eAAe,CAAC,aAAa,aAAa,OAAO,EAAE,aAAa,CAAC,CAAC;aAC/E;YAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnF,YAAY,CAAC,IAAI,CAAC;gBAChB,aAAa,EAAE,YAAY;gBAC3B,0BAA0B,EAAE,aAAa;gBACzC,MAAM,EAAE,iBAAiB;gBACzB,qBAAqB,EAAE,QAAQ;aAChC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QAEF,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC7C,CAAC,CAAC,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B,CAAC,CACzE,CAAC;QAEF,MAAM,kBAAkB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAExD,MAAM,CAAC,eAAe,EAAE,GAAG,kBAAkB,6CAA6C,CAAC,CAAC;QAE5F,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,KAAK,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC;YACzC,KAAK,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,KAAK,CAAC,eAAe,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChF,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;SACrD,CAAC,CAAC;QAEH,6EAA6E;QAC7E,6EAA6E;QAC7E,0CAA0C;QAC1C,MAAM,GAAG,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"fingerprinter.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprinter.ts"],"names":[],"mappings":"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"}
package/built/utils.js CHANGED
@@ -1,40 +1,46 @@
1
1
  "use strict";
2
- /* eslint-disable func-names */
3
- const { constants: fsConstants, promises: fsp } = require('fs');
4
- const { queue } = require('async');
5
- const glob = require('glob');
6
- const { buildAppMap } = require('@appland/models');
7
- const { promisify } = require('util');
8
- const { join } = require('path');
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.prefixLines = exports.exists = exports.listAppMapFiles = exports.processFiles = exports.writeFileAtomic = exports.mtime = exports.baseName = exports.verbose = exports.endTime = void 0;
7
+ const fs_1 = require("fs");
8
+ const async_1 = require("async");
9
+ const glob_1 = __importDefault(require("glob"));
10
+ const util_1 = require("util");
11
+ const path_1 = require("path");
9
12
  const StartTime = Date.now();
10
13
  function endTime() {
11
14
  return (Date.now() - StartTime) / 1000;
12
15
  }
16
+ exports.endTime = endTime;
13
17
  let isVerbose = false;
14
- function verbose(/** @type {boolean|null} */ v = null) {
18
+ function verbose(v = null) {
15
19
  if (v !== null) {
16
20
  isVerbose = v;
17
21
  }
18
22
  return isVerbose;
19
23
  }
20
- function baseName(/** @type string */ fileName) {
24
+ exports.verbose = verbose;
25
+ function baseName(fileName) {
21
26
  return fileName.substring(0, fileName.length - '.appmap.json'.length);
22
27
  }
28
+ exports.baseName = baseName;
23
29
  /**
24
30
  * Gets the last modified time of a file.
25
31
  *
26
- * @returns {Promise<number|null>} file mtime, or null if the file does not exist or
32
+ * @returns file mtime in ms, or null if the file does not exist or
27
33
  * is not a file.
28
34
  */
29
- // NB: 'ctime' is actually the time that the stats of the file were last changed.
30
- // And 'birthtime' is not guaranteed across platforms.
31
- // Therefore mtime is the most reliable indicator of when the file was created,
32
- // especially since we write files atomically (e.g. by moving them into place after writing them
33
- // as temp files).
34
35
  async function mtime(filePath) {
36
+ // NB: 'ctime' is actually the time that the stats of the file were last changed.
37
+ // And 'birthtime' is not guaranteed across platforms.
38
+ // Therefore mtime is the most reliable indicator of when the file was created,
39
+ // especially since we write files atomically (e.g. by moving them into place after writing them
40
+ // as temp files).
35
41
  let fileStat;
36
42
  try {
37
- fileStat = await fsp.stat(filePath);
43
+ fileStat = await fs_1.promises.stat(filePath);
38
44
  }
39
45
  catch (e) {
40
46
  return null;
@@ -44,37 +50,32 @@ async function mtime(filePath) {
44
50
  }
45
51
  return fileStat.mtimeMs;
46
52
  }
53
+ exports.mtime = mtime;
47
54
  /**
48
55
  * Atomically write a file by first writing to a temporary file in the same
49
56
  * directory then renaming in place.
50
- * @param {string} dirName target directory path
51
- * @param {string} fileName target file name
52
- * @param {unknown} jobId used to create the temporary file name
53
- * @param {string} data
57
+ * @param dirName target directory path
58
+ * @param fileName target file name
59
+ * @param suffix used to create the temporary file name
60
+ * @param data
54
61
  */
55
- async function writeFileAtomic(dirName, fileName, jobId, data) {
56
- const suffix = jobId.toString();
62
+ async function writeFileAtomic(dirName, fileName, suffix, data) {
57
63
  // first make sure the temp name isn't too long
58
64
  const NAME_MAX = 255; // note: might not be true on some esoteric systems
59
65
  const name = fileName.slice(0, NAME_MAX - suffix.length - 1);
60
- const tempFilePath = join(dirName, `${name}.${suffix}`);
61
- await fsp.writeFile(tempFilePath, data);
62
- await fsp.rename(tempFilePath, join(dirName, fileName));
66
+ const tempFilePath = (0, path_1.join)(dirName, `${name}.${suffix}`);
67
+ await fs_1.promises.writeFile(tempFilePath, data);
68
+ await fs_1.promises.rename(tempFilePath, (0, path_1.join)(dirName, fileName));
63
69
  }
70
+ exports.writeFileAtomic = writeFileAtomic;
64
71
  /**
65
72
  * Call a function with each matching file. No guarantee is given that
66
73
  * files will be processed in any particular order.
67
- *
68
- * @param {string} pattern
69
- * @param {(filePath: string): void} fn
70
- * @param {(fileCount: number): void} fileCountFn
71
74
  */
72
- async function processFiles(pattern, fn,
73
- // eslint-disable-next-line no-unused-vars
74
- fileCountFn = (/** @type {number} */ count) => { }) {
75
- const q = queue(fn, 5);
75
+ async function processFiles(pattern, fn, fileCountFn = (count) => { }) {
76
+ const q = (0, async_1.queue)(fn, 5);
76
77
  q.pause();
77
- const files = await promisify(glob)(pattern);
78
+ const files = await (0, util_1.promisify)(glob_1.default)(pattern);
78
79
  if (fileCountFn) {
79
80
  fileCountFn(files.length);
80
81
  }
@@ -84,27 +85,22 @@ fileCountFn = (/** @type {number} */ count) => { }) {
84
85
  q.resume();
85
86
  await q.drain();
86
87
  }
88
+ exports.processFiles = processFiles;
87
89
  /**
88
90
  * Lists all appmap.json files in a directory, and passes them to a function.
89
91
  * With `await`, `listAppMapFiles` blocks until all the files have been processed.
90
- *
91
- * @param {string} directory
92
- * @param {Function(string)} fn
93
92
  */
94
93
  async function listAppMapFiles(directory, fn) {
95
94
  if (verbose()) {
96
95
  console.warn(`Scanning ${directory} for AppMaps`);
97
96
  }
98
- await Promise.all((await promisify(glob)(`${directory}/**/*.appmap.json`)).map(fn));
97
+ await Promise.all((await (0, util_1.promisify)(glob_1.default)(`${directory}/**/*.appmap.json`)).map(fn));
99
98
  }
100
- /**
101
- * @param {PathLike} path
102
- * @returns {Promise<boolean>}
103
- */
99
+ exports.listAppMapFiles = listAppMapFiles;
104
100
  function exists(path) {
105
101
  return new Promise((resolve) => {
106
- fsp
107
- .access(path, fsConstants.R_OK)
102
+ fs_1.promises
103
+ .access(path, fs_1.constants.R_OK)
108
104
  .then(() => {
109
105
  resolve(true);
110
106
  })
@@ -113,50 +109,15 @@ function exists(path) {
113
109
  });
114
110
  });
115
111
  }
116
- async function loadAppMap(filePath) {
117
- return buildAppMap()
118
- .source(JSON.parse(await fsp.readFile(filePath)))
119
- .normalize()
120
- .build();
121
- }
122
- function formatValue(value) {
123
- if (!value) {
124
- return 'Null';
125
- }
126
- const valueStr = value.value.indexOf('#<') === 0 ? null : value.value;
127
- return [value.class, valueStr].filter((e) => e).join(' ');
128
- }
129
- function formatHttpServerRequest(event) {
130
- const data = {
131
- method: event.httpServerRequest.request_method,
132
- path: event.httpServerRequest.normalized_path_info || event.httpServerRequest.path_info,
133
- statusCode: event.returnEvent && event.httpServerResponse
134
- ? event.httpServerResponse.status_code || event.httpServerResponse.status
135
- : '<none>',
136
- };
137
- return [data.method, data.path, `(${data.statusCode})`].join(' ');
138
- }
112
+ exports.exists = exists;
139
113
  /**
140
114
  * Append a prefix to each line in a string
141
- * @param {string} str the string to be prefixed
142
- * @param {string} prefix a string to prefix each line with
143
- * @returns {string} the resulting string which starts each line with a prefix
115
+ * @param str the string to be prefixed
116
+ * @param prefix a string to prefix each line with
117
+ * @returns the resulting string which starts each line with a prefix
144
118
  */
145
119
  function prefixLines(str, prefix) {
146
120
  return str.replace(/^/gm, prefix);
147
121
  }
148
- module.exports = {
149
- baseName,
150
- endTime,
151
- formatValue,
152
- formatHttpServerRequest,
153
- writeFileAtomic,
154
- listAppMapFiles,
155
- loadAppMap,
156
- mtime,
157
- verbose,
158
- processFiles,
159
- exists,
160
- prefixLines,
161
- };
122
+ exports.prefixLines = prefixLines;
162
123
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAChE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACtC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE7B,SAAS,OAAO;IACd,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC;AAED,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,SAAS,OAAO,CAAC,2BAA2B,CAAC,CAAC,GAAG,IAAI;IACnD,IAAI,CAAC,KAAK,IAAI,EAAE;QACd,SAAS,GAAG,CAAC,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,QAAQ,CAAC,mBAAmB,CAAC,QAAQ;IAC5C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,iFAAiF;AACjF,sDAAsD;AACtD,+EAA+E;AAC/E,gGAAgG;AAChG,kBAAkB;AAClB,KAAK,UAAU,KAAK,CAAC,QAAQ;IAC3B,IAAI,QAAQ,CAAC;IACb,IAAI;QACF,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE;QACtB,OAAO,IAAI,CAAC;KACb;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI;IAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAEhC,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,mDAAmD;IACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE7D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;IACxD,MAAM,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CACzB,OAAO,EACP,EAAE;AACF,0CAA0C;AAC1C,WAAW,GAAG,CAAC,qBAAqB,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC;IAEjD,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,WAAW,EAAE;QACf,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAC3B;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,MAAM,EAAE,CAAC;IACX,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,eAAe,CAAC,SAAS,EAAE,EAAE;IAC1C,IAAI,OAAO,EAAE,EAAE;QACb,OAAO,CAAC,IAAI,CAAC,YAAY,SAAS,cAAc,CAAC,CAAC;KACnD;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAAC,IAAI;IAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,GAAG;aACA,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;aAC9B,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAQ;IAChC,OAAO,WAAW,EAAE;SACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;SAChD,SAAS,EAAE;SACX,KAAK,EAAE,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,KAAK;IACxB,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,MAAM,CAAC;KACf;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAEtE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAK;IACpC,MAAM,IAAI,GAAG;QACX,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,cAAc;QAC9C,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,oBAAoB,IAAI,KAAK,CAAC,iBAAiB,CAAC,SAAS;QACvF,UAAU,EACR,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,kBAAkB;YAC3C,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM;YACzE,CAAC,CAAC,QAAQ;KACf,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,QAAQ;IACR,OAAO;IACP,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,UAAU;IACV,KAAK;IACL,OAAO;IACP,YAAY;IACZ,MAAM;IACN,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.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.40.0",
3
+ "version": "3.41.0",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "publishConfig": {