@appland/appmap 3.42.0 → 3.43.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 +7 -0
- package/built/fingerprint/fingerprintQueue.js +0 -3
- package/built/fingerprint/fingerprintQueue.js.map +1 -1
- package/built/fingerprint/fingerprintWatchCommand.js +42 -26
- package/built/fingerprint/fingerprintWatchCommand.js.map +1 -1
- package/built/fingerprint/fingerprinter.js +5 -10
- package/built/fingerprint/fingerprinter.js.map +1 -1
- package/built/fingerprint/index.js +1 -1
- package/built/fingerprint/index.js.map +1 -1
- package/built/lib/eventAggregator.js +28 -0
- package/built/lib/eventAggregator.js.map +1 -0
- package/built/lib/flattenMetadata.js +39 -0
- package/built/lib/flattenMetadata.js.map +1 -0
- package/built/lib/intersectMaps.js +17 -0
- package/built/lib/intersectMaps.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [@appland/appmap-v3.43.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.42.0...@appland/appmap-v3.43.0) (2022-09-30)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* Send telemetry events when indexing AppMaps ([53935b1](https://github.com/getappmap/appmap-js/commit/53935b19b597646fdc454f7fe2b146318e260717))
|
|
7
|
+
|
|
1
8
|
# [@appland/appmap-v3.42.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.41.0...@appland/appmap-v3.42.0) (2022-09-29)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,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;AA3CD,mCA2CC"}
|
|
@@ -1,37 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
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 chokidar_1 = require("chokidar");
|
|
7
|
+
const fs_extra_1 = require("fs-extra");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const eventAggregator_1 = __importDefault(require("../lib/eventAggregator"));
|
|
10
|
+
const flattenMetadata_1 = __importDefault(require("../lib/flattenMetadata"));
|
|
11
|
+
const intersectMaps_1 = require("../lib/intersectMaps");
|
|
12
|
+
const telemetry_1 = __importDefault(require("../telemetry"));
|
|
13
|
+
const utils_1 = require("../utils");
|
|
14
|
+
const fingerprintQueue_1 = __importDefault(require("./fingerprintQueue"));
|
|
7
15
|
class FingerprintWatchCommand {
|
|
8
16
|
constructor(directory) {
|
|
9
17
|
this.directory = directory;
|
|
10
|
-
this.
|
|
11
|
-
this.
|
|
12
|
-
|
|
18
|
+
this.pidfilePath = process.env.APPMAP_WRITE_PIDFILE && (0, path_1.join)(this.directory, 'index.pid');
|
|
19
|
+
this.fpQueue = new fingerprintQueue_1.default();
|
|
20
|
+
new eventAggregator_1.default((events) => {
|
|
21
|
+
const indexEvents = events.map(({ args: [event] }) => event);
|
|
22
|
+
this.sendTelemetry(indexEvents.map(({ metadata }) => metadata));
|
|
23
|
+
}).attach(this.fpQueue.handler, 'index');
|
|
13
24
|
}
|
|
14
25
|
removePidfile() {
|
|
15
26
|
if (this.pidfilePath) {
|
|
16
27
|
console.log(`Removing ${this.pidfilePath}`);
|
|
17
|
-
|
|
18
|
-
this.pidfilePath =
|
|
28
|
+
(0, fs_extra_1.removeSync)(this.pidfilePath);
|
|
29
|
+
this.pidfilePath = undefined;
|
|
19
30
|
}
|
|
20
31
|
}
|
|
21
32
|
async execute() {
|
|
22
|
-
this.fpQueue = new FingerprintQueue();
|
|
23
|
-
this.fpQueue.setCounterFn(() => {
|
|
24
|
-
this.numProcessed += 1;
|
|
25
|
-
});
|
|
26
33
|
// Index existing AppMap files
|
|
27
|
-
await listAppMapFiles(this.directory, (file) => this.fpQueue.push(file));
|
|
34
|
+
await (0, utils_1.listAppMapFiles)(this.directory, (file) => this.fpQueue.push(file));
|
|
28
35
|
this.fpQueue.process();
|
|
29
36
|
const glob = `${this.directory}/**/*.appmap.json`;
|
|
30
|
-
this.watcher =
|
|
37
|
+
this.watcher = (0, chokidar_1.watch)(glob, {
|
|
31
38
|
ignoreInitial: true,
|
|
32
39
|
ignored: ['**/node_modules/**', '**/.git/**'],
|
|
33
40
|
});
|
|
34
|
-
this.poller =
|
|
41
|
+
this.poller = (0, chokidar_1.watch)(glob, {
|
|
35
42
|
ignoreInitial: true,
|
|
36
43
|
ignored: ['**/node_modules/**', '**/.git/**'],
|
|
37
44
|
usePolling: true,
|
|
@@ -50,32 +57,31 @@ class FingerprintWatchCommand {
|
|
|
50
57
|
async close() {
|
|
51
58
|
await Promise.all([this.watcher, this.poller].map((ch) => ch === null || ch === void 0 ? void 0 : ch.close()));
|
|
52
59
|
this.removePidfile();
|
|
53
|
-
this.watcher =
|
|
54
|
-
this.poller =
|
|
60
|
+
this.watcher = undefined;
|
|
61
|
+
this.poller = undefined;
|
|
55
62
|
}
|
|
56
63
|
added(file) {
|
|
57
|
-
if (verbose()) {
|
|
64
|
+
if ((0, utils_1.verbose)()) {
|
|
58
65
|
console.warn(`AppMap added: ${file}`);
|
|
59
66
|
}
|
|
60
67
|
this.enqueue(file);
|
|
61
68
|
}
|
|
62
69
|
changed(file) {
|
|
63
|
-
if (verbose()) {
|
|
70
|
+
if ((0, utils_1.verbose)()) {
|
|
64
71
|
console.warn(`AppMap changed: ${file}`);
|
|
65
72
|
}
|
|
66
73
|
this.enqueue(file);
|
|
67
74
|
}
|
|
68
|
-
// eslint-disable-next-line class-methods-use-this
|
|
69
75
|
removed(file) {
|
|
70
76
|
console.warn(`TODO: AppMap removed: ${file}`);
|
|
71
77
|
}
|
|
72
78
|
ready() {
|
|
73
79
|
if (this.pidfilePath) {
|
|
74
|
-
|
|
80
|
+
(0, fs_extra_1.outputFileSync)(this.pidfilePath, `${process.pid}`);
|
|
75
81
|
process.on('exit', this.removePidfile.bind(this));
|
|
76
82
|
}
|
|
77
|
-
if (verbose()) {
|
|
78
|
-
console.warn(`Watching appmaps in ${
|
|
83
|
+
if ((0, utils_1.verbose)()) {
|
|
84
|
+
console.warn(`Watching appmaps in ${(0, path_1.resolve)(process.cwd(), this.directory)}`);
|
|
79
85
|
}
|
|
80
86
|
}
|
|
81
87
|
enqueue(file) {
|
|
@@ -85,6 +91,16 @@ class FingerprintWatchCommand {
|
|
|
85
91
|
}
|
|
86
92
|
this.fpQueue.push(file);
|
|
87
93
|
}
|
|
94
|
+
sendTelemetry(metadata) {
|
|
95
|
+
const properties = Object.fromEntries((0, intersectMaps_1.intersectMaps)(...metadata.map(flattenMetadata_1.default)).entries());
|
|
96
|
+
telemetry_1.default.sendEvent({
|
|
97
|
+
name: 'appmap:index',
|
|
98
|
+
properties,
|
|
99
|
+
metrics: {
|
|
100
|
+
appmaps: metadata.length,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
88
104
|
}
|
|
89
|
-
|
|
105
|
+
exports.default = FingerprintWatchCommand;
|
|
90
106
|
//# sourceMappingURL=fingerprintWatchCommand.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.
|
|
1
|
+
{"version":3,"file":"fingerprintWatchCommand.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprintWatchCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const fileTooLargeError_1 = __importDefault(require("./fileTooLargeError"));
|
|
|
12
12
|
const utils_1 = require("../utils");
|
|
13
13
|
const canonicalize_1 = require("./canonicalize");
|
|
14
14
|
const appmapIndex_1 = __importDefault(require("./appmapIndex"));
|
|
15
|
+
const events_1 = __importDefault(require("events"));
|
|
15
16
|
/**
|
|
16
17
|
* CHANGELOG
|
|
17
18
|
*
|
|
@@ -37,18 +38,11 @@ const appmapIndex_1 = __importDefault(require("./appmapIndex"));
|
|
|
37
38
|
*/
|
|
38
39
|
const VERSION = '1.1.3';
|
|
39
40
|
const MAX_APPMAP_SIZE = 50 * 1000 * 1000;
|
|
40
|
-
class Fingerprinter {
|
|
41
|
-
/**
|
|
42
|
-
* @param {boolean} printCanonicalAppMaps
|
|
43
|
-
*/
|
|
41
|
+
class Fingerprinter extends events_1.default {
|
|
44
42
|
constructor(printCanonicalAppMaps) {
|
|
43
|
+
super();
|
|
45
44
|
this.printCanonicalAppMaps = printCanonicalAppMaps;
|
|
46
|
-
this.counterFn = () => { };
|
|
47
45
|
}
|
|
48
|
-
setCounterFn(counterFn) {
|
|
49
|
-
this.counterFn = counterFn;
|
|
50
|
-
}
|
|
51
|
-
// eslint-disable-next-line class-methods-use-this
|
|
52
46
|
async fingerprint(appMapFileName) {
|
|
53
47
|
if ((0, utils_1.verbose)()) {
|
|
54
48
|
console.log(`Fingerprinting ${appMapFileName}`);
|
|
@@ -108,8 +102,9 @@ class Fingerprinter {
|
|
|
108
102
|
// But the mtime will match the file modification time, so the algorithm will
|
|
109
103
|
// determine that the index is up-to-date.
|
|
110
104
|
await fs_1.promises.rename(tempAppMapFileName, appMapFileName);
|
|
111
|
-
this.
|
|
105
|
+
this.emit('index', { path: appMapFileName, metadata: appmap.metadata });
|
|
112
106
|
}
|
|
113
107
|
}
|
|
108
|
+
;
|
|
114
109
|
exports.default = Fingerprinter;
|
|
115
110
|
//# sourceMappingURL=fingerprinter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprinter.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprinter.ts"],"names":[],"mappings":";;;;;AAAA,mCAAoC;AACpC,+BAAkD;AAClD,2BAAqC;AACrC,
|
|
1
|
+
{"version":3,"file":"fingerprinter.js","sourceRoot":"","sources":["../../src/fingerprint/fingerprinter.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
const { verbose } = require('../utils');
|
|
3
3
|
const { algorithms, canonicalize } = require('./canonicalize');
|
|
4
4
|
const FingerprintDirectoryCommand = require('./fingerprintDirectoryCommand');
|
|
5
|
-
const FingerprintWatchCommand = require('./fingerprintWatchCommand');
|
|
5
|
+
const FingerprintWatchCommand = require('./fingerprintWatchCommand').default;
|
|
6
6
|
async function fingerprintDirectory(dir, watch = false) {
|
|
7
7
|
if (verbose) {
|
|
8
8
|
verbose(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fingerprint/index.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACxC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,2BAA2B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC7E,MAAM,uBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fingerprint/index.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACxC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,2BAA2B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC7E,MAAM,uBAAuB,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC,OAAO,CAAC;AAE7E,KAAK,UAAU,oBAAoB,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK;IACpD,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,IAAI,CAAC,CAAC;KACf;IAED,IAAI,GAAG,CAAC;IACR,IAAI,KAAK,EAAE;QACT,GAAG,GAAG,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;KACxC;SAAM;QACL,GAAG,GAAG,IAAI,2BAA2B,CAAC,GAAG,CAAC,CAAC;KAC5C;IACD,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,UAAU;IACV,YAAY;IACZ,oBAAoB;CACrB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class EventAggregator {
|
|
4
|
+
constructor(callback, maxMsBetween = 1000) {
|
|
5
|
+
this.callback = callback;
|
|
6
|
+
this.maxMsBetween = maxMsBetween;
|
|
7
|
+
this.pending = [];
|
|
8
|
+
}
|
|
9
|
+
push(emitter, event, args) {
|
|
10
|
+
this.pending.push({ emitter, event, args });
|
|
11
|
+
this.refresh();
|
|
12
|
+
}
|
|
13
|
+
refresh() {
|
|
14
|
+
if (this.timeout)
|
|
15
|
+
clearTimeout(this.timeout);
|
|
16
|
+
this.timeout = setTimeout(this.emitPending.bind(this), this.maxMsBetween);
|
|
17
|
+
}
|
|
18
|
+
emitPending() {
|
|
19
|
+
this.callback(this.pending);
|
|
20
|
+
this.timeout = undefined;
|
|
21
|
+
this.pending = [];
|
|
22
|
+
}
|
|
23
|
+
attach(emitter, event) {
|
|
24
|
+
emitter.on(event, (...args) => this.push(emitter, event, args));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = EventAggregator;
|
|
28
|
+
//# sourceMappingURL=eventAggregator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventAggregator.js","sourceRoot":"","sources":["../../src/lib/eventAggregator.ts"],"names":[],"mappings":";;AAQA,MAAqB,eAAe;IAClC,YAAoB,QAA0C,EAAU,eAAe,IAAI;QAAvE,aAAQ,GAAR,QAAQ,CAAkC;QAAU,iBAAY,GAAZ,YAAY,CAAO;QAEnF,YAAO,GAAmB,EAAE,CAAC;IAFyD,CAAC;IAGvF,IAAI,CAAC,OAAqB,EAAE,KAAa,EAAE,IAAW;QAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAGO,OAAO;QACb,IAAI,IAAI,CAAC,OAAO;YAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,KAAa;QACzC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;CACF;AAxBD,kCAwBC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/** Flattens metadata into a string-string map suitable for use in telemetry.
|
|
4
|
+
* Ignores git, exception and fingerprints.
|
|
5
|
+
*/
|
|
6
|
+
function flattenMetadata(metadata) {
|
|
7
|
+
const result = new Map();
|
|
8
|
+
if (metadata.app)
|
|
9
|
+
result.set('app', metadata.app);
|
|
10
|
+
if (metadata.client) {
|
|
11
|
+
result.set('client.name', metadata.client.name);
|
|
12
|
+
result.set('client.url', metadata.client.url);
|
|
13
|
+
if (metadata.client.version)
|
|
14
|
+
result.set('client.version', metadata.client.version);
|
|
15
|
+
}
|
|
16
|
+
if (metadata.frameworks)
|
|
17
|
+
for (const { name, version } of metadata.frameworks)
|
|
18
|
+
result.set(`framework.${name}`, version);
|
|
19
|
+
if (metadata.labels)
|
|
20
|
+
result.set('labels', metadata.labels.join(', '));
|
|
21
|
+
if (metadata.language) {
|
|
22
|
+
result.set('language.name', metadata.language.name);
|
|
23
|
+
result.set('language.version', metadata.language.version);
|
|
24
|
+
if (metadata.language.engine)
|
|
25
|
+
result.set('language.engine', metadata.language.engine);
|
|
26
|
+
}
|
|
27
|
+
if (metadata.name)
|
|
28
|
+
result.set('name', metadata.name);
|
|
29
|
+
if (metadata.recorder) {
|
|
30
|
+
result.set('recorder.name', metadata.recorder.name);
|
|
31
|
+
if (metadata.recorder.type)
|
|
32
|
+
result.set('recorder.type', metadata.recorder.type);
|
|
33
|
+
}
|
|
34
|
+
if (metadata.testStatus)
|
|
35
|
+
result.set('testStatus', metadata.testStatus);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
exports.default = flattenMetadata;
|
|
39
|
+
//# sourceMappingURL=flattenMetadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattenMetadata.js","sourceRoot":"","sources":["../../src/lib/flattenMetadata.ts"],"names":[],"mappings":";;AAEA;;GAEG;AACH,SAAwB,eAAe,CAAC,QAAkB;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,IAAI,QAAQ,CAAC,GAAG;QAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAElD,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACpF;IAED,IAAI,QAAQ,CAAC,UAAU;QACrB,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAAQ,CAAC,UAAU;YAAE,MAAM,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAEhG,IAAI,QAAQ,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,IAAI,QAAQ,CAAC,QAAQ,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACvF;IAED,IAAI,QAAQ,CAAC,IAAI;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,QAAQ,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACjF;IAED,IAAI,QAAQ,CAAC,UAAU;QAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEvE,OAAO,MAAM,CAAC;AAChB,CAAC;AA/BD,kCA+BC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.intersectMaps = void 0;
|
|
4
|
+
/** Creates a map that only contains entries that exist in all arguments. */
|
|
5
|
+
function intersectMaps(...maps) {
|
|
6
|
+
const first = maps.shift();
|
|
7
|
+
if (!first)
|
|
8
|
+
return new Map();
|
|
9
|
+
const result = new Map(first.entries());
|
|
10
|
+
for (const map of maps)
|
|
11
|
+
for (const [k, v] of map.entries())
|
|
12
|
+
if (result.get(k) !== v)
|
|
13
|
+
result.delete(k);
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
exports.intersectMaps = intersectMaps;
|
|
17
|
+
//# sourceMappingURL=intersectMaps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intersectMaps.js","sourceRoot":"","sources":["../../src/lib/intersectMaps.ts"],"names":[],"mappings":";;;AAAA,4EAA4E;AAC5E,SAAgB,aAAa,CAAO,GAAG,IAAiB;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,IAAI;QACpB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,EAAE;YAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO,MAAM,CAAC;AAChB,CAAC;AAVD,sCAUC"}
|