@appland/appmap 3.27.1 → 3.27.4

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,25 @@
1
+ # [@appland/appmap-v3.27.4](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.27.3...@appland/appmap-v3.27.4) (2022-06-01)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Openapi template is packaged correctly and the command works again ([1c98f95](https://github.com/applandinc/appmap-js/commit/1c98f9547b3a2aaab6956c016839d862058b3216))
7
+
8
+ # [@appland/appmap-v3.27.3](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.27.2...@appland/appmap-v3.27.3) (2022-05-31)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * Warn and reject too large AppMaps instead of raising an error ([901756f](https://github.com/applandinc/appmap-js/commit/901756f4a506f58098dd7ad0204b8c8edc0e0d0a))
14
+
15
+ # [@appland/appmap-v3.27.2](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.27.1...@appland/appmap-v3.27.2) (2022-05-30)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * compare AppMap ctime to dependency mtime ([fd41733](https://github.com/applandinc/appmap-js/commit/fd4173372718cfabbe8c542d9bf757286404eb4d))
21
+ * Indexing no longer causes EXDEV on Linux ([f8b0481](https://github.com/applandinc/appmap-js/commit/f8b0481881cc48715b1dcaa6a3caeaf0782d7b08))
22
+
1
23
  # [@appland/appmap-v3.27.1](https://github.com/applandinc/appmap-js/compare/@appland/appmap-v3.27.0...@appland/appmap-v3.27.1) (2022-05-27)
2
24
 
3
25
 
package/built/depends.js CHANGED
@@ -67,11 +67,18 @@ class Depends {
67
67
  if (basename(indexDir) === 'Inventory') {
68
68
  return;
69
69
  }
70
- const mtimeFileName = joinPath(indexDir, 'mtime');
71
- const recordedCreatedAtStr = await fsp.readFile(mtimeFileName);
72
- const createdAt = parseInt(recordedCreatedAtStr, 10);
70
+ let appmapCreatedAtStr;
71
+ try {
72
+ appmapCreatedAtStr = await fsp.readFile(joinPath(indexDir, 'ctime'));
73
+ }
74
+ catch (err) {
75
+ if (err.code !== 'ENOENT')
76
+ console.warn(err);
77
+ return;
78
+ }
79
+ const appmapCreatedAt = parseInt(appmapCreatedAtStr, 10);
73
80
  if (verbose()) {
74
- console.warn(`Checking AppMap ${indexDir} with timestamp ${createdAt}`);
81
+ console.warn(`Checking AppMap ${indexDir} with timestamp ${appmapCreatedAt}`);
75
82
  }
76
83
  const classMap = JSON.parse(await fsp.readFile(fileName));
77
84
  const codeLocations = new Set();
@@ -94,7 +101,7 @@ class Depends {
94
101
  if (verbose()) {
95
102
  console.warn(`Timestamp of ${dependencyFilePath} is ${dependencyModifiedAt}`);
96
103
  }
97
- return dependencyModifiedAt && createdAt < dependencyModifiedAt;
104
+ return dependencyModifiedAt && appmapCreatedAt < dependencyModifiedAt;
98
105
  }
99
106
  if (this.testLocations && verbose()) {
100
107
  console.warn(`Checking whether AppMap contains any client-provided file: [ ${[
@@ -1 +1 @@
1
- {"version":3,"file":"depends.js","sourceRoot":"","sources":["../src/depends.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"depends.js","sourceRoot":"","sources":["../src/depends.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const pretty_bytes_1 = __importDefault(require("pretty-bytes"));
7
+ class FileTooLargeError extends Error {
8
+ constructor(path, bytes, maxBytes) {
9
+ super();
10
+ this.path = path;
11
+ this.bytes = bytes;
12
+ this.maxBytes = maxBytes;
13
+ }
14
+ get message() {
15
+ const size = (0, pretty_bytes_1.default)(this.bytes);
16
+ const maxSize = (0, pretty_bytes_1.default)(this.maxBytes);
17
+ return `File ${this.path} is too large to process (${size}).\nPlease make sure that appmaps are no larger than ${maxSize}.`;
18
+ }
19
+ }
20
+ exports.default = FileTooLargeError;
21
+ //# sourceMappingURL=fileTooLargeError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileTooLargeError.js","sourceRoot":"","sources":["../../src/fingerprint/fileTooLargeError.ts"],"names":[],"mappings":";;;;;AAAA,gEAAuC;AAEvC,MAAqB,iBAAkB,SAAQ,KAAK;IAClD,YAAmB,IAAY,EAAS,KAAa,EAAS,QAAgB;QAC5E,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAQ;QAAS,aAAQ,GAAR,QAAQ,CAAQ;IAE9E,CAAC;IAED,IAAI,OAAO;QACT,MAAM,IAAI,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,QAAQ,IAAI,CAAC,IAAI,6BAA6B,IAAI,wDAAwD,OAAO,GAAG,CAAC;IAC9H,CAAC;CACF;AAVD,oCAUC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  const { queue } = require('async');
3
+ const { default: FileTooLargeError } = require('./fileTooLargeError');
3
4
  const Fingerprinter = require('./fingerprinter');
4
5
  class FingerprintQueue {
5
6
  constructor(size = 5, printCanonicalAppMaps = true) {
@@ -15,7 +16,16 @@ class FingerprintQueue {
15
16
  async process() {
16
17
  return new Promise((resolve, reject) => {
17
18
  this.queue.drain(resolve);
18
- this.queue.error(reject);
19
+ this.queue.error((error) => {
20
+ if (error instanceof FileTooLargeError) {
21
+ console.warn([
22
+ `Skipped: ${error.message}`,
23
+ 'Tip: consider recording a shorter interaction or removing some classes from appmap.yml.',
24
+ ].join('\n'));
25
+ }
26
+ else
27
+ reject(error);
28
+ });
19
29
  this.queue.resume();
20
30
  });
21
31
  }
@@ -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,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,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,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,MAAM,CAAC,CAAC;YACzB,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.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,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,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;;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"}
@@ -4,11 +4,17 @@ const { join: joinPath } = require('path');
4
4
  const fsp = require('fs').promises;
5
5
  const semver = require('semver');
6
6
  const { buildAppMap } = require('@appland/models');
7
- const { verbose, baseName, buildDirectory, mtime, renameFile, } = require('../utils');
7
+ const writeFileAtomic = require('write-file-atomic');
8
+ const { default: FileTooLargeError } = require('./fileTooLargeError');
9
+ const { verbose, baseName, ctime } = require('../utils');
8
10
  const { algorithms, canonicalize } = require('./canonicalize');
9
11
  /**
10
12
  * CHANGELOG
11
13
  *
14
+ * # 1.1.2
15
+ *
16
+ * * Reject large appmaps instead of breaking randomly.
17
+ *
12
18
  * # 1.1.1
13
19
  *
14
20
  * * Fix parent assignment algorithm.
@@ -20,7 +26,8 @@ const { algorithms, canonicalize } = require('./canonicalize');
20
26
  * * Fix handling of parent assignment in normalization.
21
27
  * * sql can contain the analysis (action, tables, columns), and/or the normalized query string.
22
28
  */
23
- const VERSION = '1.1.1';
29
+ const VERSION = '1.1.2';
30
+ const MAX_APPMAP_SIZE = 50 * 1000 * 1000;
24
31
  class Fingerprinter {
25
32
  /**
26
33
  * @param {boolean} printCanonicalAppMaps
@@ -34,7 +41,7 @@ class Fingerprinter {
34
41
  }
35
42
  // eslint-disable-next-line class-methods-use-this
36
43
  async fingerprint(appMapFileName) {
37
- const appMapCreatedAt = await mtime(appMapFileName);
44
+ const appMapCreatedAt = await ctime(appMapFileName);
38
45
  if (!appMapCreatedAt) {
39
46
  return;
40
47
  }
@@ -82,6 +89,11 @@ class Fingerprinter {
82
89
  }
83
90
  return;
84
91
  }
92
+ {
93
+ const stat = await fsp.stat(appMapFileName);
94
+ if (stat.size > MAX_APPMAP_SIZE)
95
+ throw new FileTooLargeError(appMapFileName, stat.size, MAX_APPMAP_SIZE);
96
+ }
85
97
  let data;
86
98
  try {
87
99
  data = await fsp.readFile(appMapFileName);
@@ -98,6 +110,7 @@ class Fingerprinter {
98
110
  }
99
111
  let appmapData;
100
112
  try {
113
+ // TODO: Should we normalize, compress, etc here?
101
114
  appmapData = JSON.parse(data.toString());
102
115
  }
103
116
  catch (err) {
@@ -122,36 +135,37 @@ class Fingerprinter {
122
135
  const fingerprints = [];
123
136
  appmapData.metadata.fingerprints = fingerprints;
124
137
  const appmap = buildAppMap(appmapData).normalize().build();
125
- await buildDirectory(indexDir, async (tempDir) => {
126
- await Promise.all(Object.keys(algorithms).map(async (algorithmName) => {
127
- const canonicalForm = canonicalize(algorithmName, appmap);
128
- const canonicalJSON = JSON.stringify(canonicalForm, null, 2);
129
- if (this.printCanonicalAppMaps) {
130
- await fsp.writeFile(joinPath(tempDir, `canonical.${algorithmName}.json`), canonicalJSON);
131
- }
132
- const fingerprintDigest = createHash('sha256')
133
- .update(canonicalJSON)
134
- .digest('hex');
135
- if (verbose()) {
136
- console.warn(`Computed digest for ${algorithmName}`);
137
- }
138
- fingerprints.push({
139
- appmap_digest: appmapDigest,
140
- canonicalization_algorithm: algorithmName,
141
- digest: fingerprintDigest,
142
- fingerprint_algorithm: 'sha256',
143
- });
144
- }));
145
- appmapData.metadata.fingerprints.sort((a, b) => a.canonicalization_algorithm.localeCompare(b.canonicalization_algorithm));
146
- await fsp.writeFile(joinPath(tempDir, 'appmap.json'), JSON.stringify(appmapData, null, 2));
147
- await renameFile(joinPath(tempDir, 'appmap.json'), appMapFileName);
148
- const appMapIndexedAt = await mtime(appMapFileName);
149
- await fsp.writeFile(joinPath(tempDir, 'mtime'), `${appMapIndexedAt}`);
150
- await fsp.writeFile(joinPath(tempDir, 'ctime'), `${appMapCreatedAt}`);
151
- await fsp.writeFile(joinPath(tempDir, 'version'), VERSION);
152
- await fsp.writeFile(joinPath(tempDir, 'metadata.json'), JSON.stringify(appmap.metadata, null, 2));
153
- await fsp.writeFile(joinPath(tempDir, 'classMap.json'), JSON.stringify(appmap.classMap, null, 2));
154
- });
138
+ await fsp.mkdir(indexDir, { recursive: true });
139
+ await Promise.all(Object.keys(algorithms).map(async (algorithmName) => {
140
+ const canonicalForm = canonicalize(algorithmName, appmap);
141
+ const canonicalJSON = JSON.stringify(canonicalForm, null, 2);
142
+ if (this.printCanonicalAppMaps) {
143
+ await writeFileAtomic(joinPath(indexDir, `canonical.${algorithmName}.json`), canonicalJSON);
144
+ }
145
+ const fingerprintDigest = createHash('sha256')
146
+ .update(canonicalJSON)
147
+ .digest('hex');
148
+ if (verbose()) {
149
+ console.warn(`Computed digest for ${algorithmName}`);
150
+ }
151
+ fingerprints.push({
152
+ appmap_digest: appmapDigest,
153
+ canonicalization_algorithm: algorithmName,
154
+ digest: fingerprintDigest,
155
+ fingerprint_algorithm: 'sha256',
156
+ });
157
+ }));
158
+ appmapData.metadata.fingerprints.sort((a, b) => a.canonicalization_algorithm.localeCompare(b.canonicalization_algorithm));
159
+ await writeFileAtomic(appMapFileName, JSON.stringify(appmapData, null, 2));
160
+ const appMapIndexedAt = await ctime(appMapFileName);
161
+ await writeFileAtomic(joinPath(indexDir, 'ctime'), `${appMapCreatedAt}`);
162
+ await writeFileAtomic(joinPath(indexDir, 'version'), VERSION);
163
+ await writeFileAtomic(joinPath(indexDir, 'classMap.json'), JSON.stringify(appmap.classMap, null, 2));
164
+ await writeFileAtomic(joinPath(indexDir, 'metadata.json'), JSON.stringify(appmap.metadata, null, 2));
165
+ // NOTE: mtime needs to be written last.
166
+ // Downstream code will watch for this file and assume
167
+ // indexing is complete once it changes.
168
+ await writeFileAtomic(joinPath(indexDir, 'mtime'), `${appMapIndexedAt}`);
155
169
  this.counterFn();
156
170
  }
157
171
  }
@@ -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,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;AACnC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEnD,MAAM,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,KAAK,EACL,UAAU,GACX,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACxB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,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,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,EAAE;YACpB,OAAO;SACR;QAED,IAAI,OAAO,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;SAClD;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAEtD,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI,UAAU,GAAG,OAAO,CAAC;YACzB,IAAI;gBACF,UAAU,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;aAClD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,MAAM,GAAG,CAAC;iBACX;aACF;YACD,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;YAC1C,IAAI,OAAO,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,qBAAqB,UAAU,EAAE,CAAC,CAAC;aAClE;YACD,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACvD,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aACxC;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,MAAM,GAAG,CAAC;iBACX;aACF;YAED,IAAI,OAAO,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CACV,GAAG,cAAc,eAAe,eAAe,gBAAgB,SAAS,EAAE,CAC3E,CAAC;aACH;YACD,OAAO,SAAS,IAAI,eAAe,CAAC;QACtC,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,aAAa,EAAE,CAAC,EAAE;YACxD,IAAI,OAAO,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;aACxD;YACD,OAAO;SACR;QAED,IAAI,IAAI,CAAC;QACT,IAAI;YACF,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SAC3C;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACvB,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,8BAA8B,CAAC,CAAC;gBAC9D,OAAO;aACR;YACD,MAAM,CAAC,CAAC;SACT;QAED,IAAI,OAAO,EAAE,EAAE;YACb,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;SAC3C;QAED,IAAI,UAAU,CAAC;QACf,IAAI;YACF,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC1C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,WAAW,EAAE;gBAC9B,yCAAyC;gBACzC,OAAO,CAAC,IAAI,CACV,2BAA2B,cAAc,MAAM,GAAG,CAAC,OAAO,EAAE,CAC7D,CAAC;gBACF,OAAO;aACR;YACD,MAAM,GAAG,CAAC;SACX;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YACxB,IAAI,OAAO,EAAE,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,+BAA+B,CAAC,CAAC;aAChE;YACD,OAAO;SACR;QAED,MAAM,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,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;QAChD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;QAE3D,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/C,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBAClD,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;gBAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAE7D,IAAI,IAAI,CAAC,qBAAqB,EAAE;oBAC9B,MAAM,GAAG,CAAC,SAAS,CACjB,QAAQ,CAAC,OAAO,EAAE,aAAa,aAAa,OAAO,CAAC,EACpD,aAAa,CACd,CAAC;iBACH;gBAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC;qBAC3C,MAAM,CAAC,aAAa,CAAC;qBACrB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjB,IAAI,OAAO,EAAE,EAAE;oBACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,aAAa,EAAE,CAAC,CAAC;iBACtD;gBACD,YAAY,CAAC,IAAI,CAAC;oBAChB,aAAa,EAAE,YAAY;oBAC3B,0BAA0B,EAAE,aAAa;oBACzC,MAAM,EAAE,iBAAiB;oBACzB,qBAAqB,EAAE,QAAQ;iBAChC,CAAC,CAAC;YACL,CAAC,CAAC,CACH,CAAC;YAEF,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;YAEF,MAAM,GAAG,CAAC,SAAS,CACjB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,EAChC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CACpC,CAAC;YACF,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,cAAc,CAAC,CAAC;YACnE,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;YACpD,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;YACtE,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC;YACtE,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,GAAG,CAAC,SAAS,CACjB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CACzC,CAAC;YACF,MAAM,GAAG,CAAC,SAAS,CACjB,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,EAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CACzC,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,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.js"],"names":[],"mappings":"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"}
package/built/utils.js CHANGED
@@ -1,13 +1,10 @@
1
1
  "use strict";
2
2
  /* eslint-disable func-names */
3
- const { constants: fsConstants, promises: fsp, rm, readdir, utimes, } = require('fs');
4
- const fsExtra = require('fs-extra');
3
+ const { constants: fsConstants, promises: fsp } = require('fs');
5
4
  const { queue } = require('async');
6
5
  const glob = require('glob');
7
- const os = require('os');
8
- const { sep: pathSep, join: joinPath, basename, join } = require('path');
6
+ const { join: joinPath } = require('path');
9
7
  const { buildAppMap } = require('@appland/models');
10
- const { rename } = require('fs/promises');
11
8
  const StartTime = Date.now();
12
9
  function endTime() {
13
10
  return (Date.now() - StartTime) / 1000;
@@ -19,10 +16,10 @@ function verbose(/** @type {boolean|null} */ v = null) {
19
16
  }
20
17
  return isVerbose;
21
18
  }
22
- function baseName(fileName) {
19
+ function baseName(/** @type string */ fileName) {
23
20
  return fileName.substring(0, fileName.length - '.appmap.json'.length);
24
21
  }
25
- async function mtime(filePath) {
22
+ async function ctime(filePath) {
26
23
  let fileStat;
27
24
  try {
28
25
  fileStat = await fsp.stat(filePath);
@@ -35,6 +32,19 @@ async function mtime(filePath) {
35
32
  }
36
33
  return fileStat.ctime.getTime();
37
34
  }
35
+ async function mtime(filePath) {
36
+ let fileStat;
37
+ try {
38
+ fileStat = await fsp.stat(filePath);
39
+ }
40
+ catch (e) {
41
+ return null;
42
+ }
43
+ if (!fileStat.isFile()) {
44
+ return null;
45
+ }
46
+ return fileStat.mtime.getTime();
47
+ }
38
48
  /**
39
49
  * Call a function with each matching file. No guarantee is given that
40
50
  * files will be processed in any particular order.
@@ -112,76 +122,6 @@ async function loadAppMap(filePath) {
112
122
  .normalize()
113
123
  .build();
114
124
  }
115
- const renameFile = async (oldName, newName) => fsExtra.move(oldName, newName, { clobber: true });
116
- /**
117
- * @param {string} path
118
- */
119
- async function touch(path) {
120
- return new Promise((resolve) => {
121
- const time = Date.now();
122
- utimes(path, time, time, (utimesErr) => {
123
- if (utimesErr) {
124
- console.warn(utimesErr);
125
- }
126
- return resolve();
127
- });
128
- });
129
- }
130
- /**
131
- * Builds a directory using a tempdir, which is renamed at the end to
132
- * a specified directory name.
133
- *
134
- * @param {string} dirName
135
- * @param {function} contentFunction
136
- */
137
- const buildDirectory = async (dirName, contentFunction) => {
138
- const tempPath = await fsp.realpath(os.tmpdir());
139
- const tempDir = await fsp.mkdtemp(tempPath + pathSep);
140
- const discardDir = await fsp.mkdtemp(tempPath + pathSep);
141
- try {
142
- await contentFunction(tempDir);
143
- }
144
- catch (err) {
145
- rm(tempDir, { recursive: true }, (e) => {
146
- console.warn(`Unable to remove (cleanup) tempdir: ${e.message}`);
147
- });
148
- throw err;
149
- }
150
- // Move dirName to a temp dir
151
- // Move tempDir to the final dirName
152
- try {
153
- await rename(dirName, join(discardDir, basename(dirName)));
154
- setTimeout(() => rm(discardDir, { recursive: true }, (err) => {
155
- if (err)
156
- console.warn(err);
157
- }), 0);
158
- }
159
- catch (e) {
160
- if (e.code !== 'ENOENT') {
161
- console.log(`Unable to rename ${dirName} to ${discardDir}: ${e.message}`);
162
- throw e;
163
- }
164
- }
165
- try {
166
- await rename(tempDir, dirName);
167
- }
168
- catch (e) {
169
- console.log(`Unable to rename ${tempDir} to ${dirName}: ${e.message}`);
170
- return;
171
- }
172
- // Touch all the created files. This is to ensure that file watchers are notified, because
173
- // when the directory is renamed into place, filesystem watchers may not report on all the
174
- // files inside the directory.
175
- readdir(dirName, (readErr, files) => {
176
- if (readErr) {
177
- console.warn(`Unable to read directory ${dirName}: ${readErr.message}`);
178
- return;
179
- }
180
- files
181
- .filter((file) => !['.', '..'].includes(file))
182
- .map((file) => touch(join(dirName, file)));
183
- });
184
- };
185
125
  function formatValue(value) {
186
126
  if (!value) {
187
127
  return 'Null';
@@ -217,11 +157,10 @@ module.exports = {
217
157
  formatHttpServerRequest,
218
158
  listAppMapFiles,
219
159
  loadAppMap,
160
+ ctime,
220
161
  mtime,
221
162
  verbose,
222
163
  processFiles,
223
- buildDirectory,
224
- renameFile,
225
164
  exists,
226
165
  prefixLines,
227
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,MAAM,EACJ,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,GAAG,EACb,EAAE,EACF,OAAO,EACP,MAAM,GACP,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AACzE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE1C,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,QAAQ;IACxB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC;AAED,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,KAAK,CAAC,OAAO,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvB,CAAC,CAAC,KAAK,EAAE,CAAC;IACV,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACpC,6CAA6C;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC3B,IAAI,GAAG,EAAE;gBACP,OAAO,CAAC,IAAI,CAAC,uCAAuC,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC;gBACvE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC3B;YACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,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,KAAK,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,OAAO,CAAC,GAAG,CACf,KAAK;SACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAChD,iDAAiD;SAChD,GAAG,CAAC,KAAK,WAAW,IAAI;QACvB,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,MAAM,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YACjC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACL,CAAC;AACJ,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,MAAM,UAAU,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAC5C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpD;;GAEG;AACH,KAAK,UAAU,KAAK,CAAC,IAAI;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE;YACrC,IAAI,SAAS,EAAE;gBACb,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;YACD,OAAO,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE;IACxD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IAEzD,IAAI;QACF,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;KAChC;IAAC,OAAO,GAAG,EAAE;QACZ,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;KACX;IAED,6BAA6B;IAC7B,oCAAoC;IACpC,IAAI;QACF,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3D,UAAU,CACR,GAAG,EAAE,CACH,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1C,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EACJ,CAAC,CACF,CAAC;KACH;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,OAAO,UAAU,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,CAAC;SACT;KACF;IACD,IAAI;QACF,MAAM,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAChC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,OAAO,OAAO,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,OAAO;KACR;IAED,0FAA0F;IAC1F,0FAA0F;IAC1F,8BAA8B;IAC9B,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,4BAA4B,OAAO,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO;SACR;QACD,KAAK;aACF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,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,EACF,KAAK,CAAC,iBAAiB,CAAC,oBAAoB;YAC5C,KAAK,CAAC,iBAAiB,CAAC,SAAS;QACnC,UAAU,EACR,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,kBAAkB;YAC3C,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,WAAW;gBACpC,KAAK,CAAC,kBAAkB,CAAC,MAAM;YACjC,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,UAAU;IACV,KAAK;IACL,OAAO;IACP,YAAY;IACZ,cAAc;IACd,UAAU;IACV,MAAM;IACN,WAAW;CACZ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.27.1",
3
+ "version": "3.27.4",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
9
  "files": [
10
- "built"
10
+ "built",
11
+ "resources"
11
12
  ],
12
13
  "scripts": {
13
14
  "lint": "eslint 'src/**/*.js' 'tests/**/*.js'",
@@ -34,7 +35,7 @@
34
35
  "@types/sinon": "^10.0.2",
35
36
  "@types/tmp": "^0.2.3",
36
37
  "@types/w3c-xmlserializer": "^2.0.2",
37
- "copy-webpack-plugin": "^9.0.1",
38
+ "@types/write-file-atomic": "^4.0.0",
38
39
  "crypto": "^1.0.1",
39
40
  "css-loader": "^6.2.0",
40
41
  "eslint": "^7.25.0",
@@ -94,11 +95,13 @@
94
95
  "open": "^8.2.1",
95
96
  "ora": "^5.4.1",
96
97
  "port-pid": "^0.0.7",
98
+ "pretty-bytes": "^5.6.0",
97
99
  "ps-node": "^0.1.6",
98
100
  "read-pkg-up": "^7.0.1",
99
101
  "semver": "^7.3.5",
100
102
  "supports-hyperlinks": "^2.2.0",
101
103
  "w3c-xmlserializer": "^2.0.0",
104
+ "write-file-atomic": "^4.0.1",
102
105
  "yargs": "^17.1.1"
103
106
  }
104
107
  }