@appland/appmap 3.72.0 → 3.74.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 +20 -0
- package/built/cmds/prune/prune.js +25 -19
- package/built/cmds/prune/prune.js.map +1 -1
- package/built/cmds/prune/pruneAppMap.js +42 -3
- package/built/cmds/prune/pruneAppMap.js.map +1 -1
- package/built/cmds/stats/stats.js +20 -13
- package/built/cmds/stats/stats.js.map +1 -1
- package/built/html/appmap.js +104 -76
- package/built/html/appmap.js.map +3 -3
- package/built/html/sequenceDiagram.js +104 -76
- package/built/html/sequenceDiagram.js.map +3 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
# [@appland/appmap-v3.74.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.73.0...@appland/appmap-v3.74.0) (2023-03-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* handle base64url-filter pruning of previously pruned map ([e0ea606](https://github.com/getappmap/appmap-js/commit/e0ea60670ea2e5b6ab2d34fde03d4d3697ab45bf))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add hidden option to indicate automatic pruning ([0240cc8](https://github.com/getappmap/appmap-js/commit/0240cc86f35b64f2bd9eaf69da14a57344d5f4c6))
|
|
12
|
+
* add prune option to display all appmap data ([a02eb7d](https://github.com/getappmap/appmap-js/commit/a02eb7d3ea6c32b1db869c0799839618ec3bde3b))
|
|
13
|
+
|
|
14
|
+
# [@appland/appmap-v3.73.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.72.0...@appland/appmap-v3.73.0) (2023-03-22)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Features
|
|
18
|
+
|
|
19
|
+
* more robust appmap locating ([c52a390](https://github.com/getappmap/appmap-js/commit/c52a3902edfa214ed4637d0ed8de6932248fceb4))
|
|
20
|
+
|
|
1
21
|
# [@appland/appmap-v3.72.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.71.0...@appland/appmap-v3.72.0) (2023-03-22)
|
|
2
22
|
|
|
3
23
|
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fromFile = void 0;
|
|
6
7
|
const fs_1 = __importDefault(require("fs"));
|
|
7
8
|
const JSONStream_1 = __importDefault(require("JSONStream"));
|
|
8
9
|
const path_1 = require("path");
|
|
@@ -19,6 +20,7 @@ async function fromFile(filePath) {
|
|
|
19
20
|
fs_1.default.createReadStream(filePath).pipe(jsonStream);
|
|
20
21
|
});
|
|
21
22
|
}
|
|
23
|
+
exports.fromFile = fromFile;
|
|
22
24
|
const binaryPrefixes = {
|
|
23
25
|
B: 1,
|
|
24
26
|
KB: 1 << 10,
|
|
@@ -41,7 +43,7 @@ function parseSize(size) {
|
|
|
41
43
|
}
|
|
42
44
|
return Number(byteStr) * p;
|
|
43
45
|
}
|
|
44
|
-
function
|
|
46
|
+
function generateConsoleMessage(filters) {
|
|
45
47
|
let exclusions = [];
|
|
46
48
|
if ('hideUnlabeled' in filters)
|
|
47
49
|
exclusions.push('All unlabeled functions');
|
|
@@ -53,22 +55,11 @@ function messageWhenUsingFilter(filters) {
|
|
|
53
55
|
exclusions.push(`All functions with elapsed time under ${filters.hideElapsedTimeUnder} ms`);
|
|
54
56
|
if ('hideName' in filters)
|
|
55
57
|
exclusions = [...exclusions, ...filters.hideName];
|
|
56
|
-
return `The following
|
|
58
|
+
return `The following has been pruned from the original map: \n ${exclusions.join('\n ')}`;
|
|
57
59
|
}
|
|
58
|
-
function displayMessage(appMap, format
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const filters = appMap.data.exclusions;
|
|
62
|
-
message =
|
|
63
|
-
format === 'json' ? JSON.stringify({ filters }, null, 2) : messageWhenUsingFilter(filters);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
const exclusions = Array.from(appMap.data.exclusions.values());
|
|
67
|
-
message =
|
|
68
|
-
format === 'json'
|
|
69
|
-
? JSON.stringify({ exclusions }, null, 2)
|
|
70
|
-
: `The following was pruned from the map:\n ${exclusions.join('\n ')}`;
|
|
71
|
-
}
|
|
60
|
+
function displayMessage(appMap, format) {
|
|
61
|
+
const { pruneFilter } = appMap.data;
|
|
62
|
+
const message = format === 'json' ? JSON.stringify(pruneFilter, null, 2) : generateConsoleMessage(pruneFilter);
|
|
72
63
|
console.log(message);
|
|
73
64
|
}
|
|
74
65
|
exports.default = {
|
|
@@ -104,6 +95,14 @@ exports.default = {
|
|
|
104
95
|
describe: 'Filter to use to prune the map',
|
|
105
96
|
type: 'string',
|
|
106
97
|
});
|
|
98
|
+
argv.option('output-data', {
|
|
99
|
+
describe: 'Whether to output all AppMap data or just output what was removed',
|
|
100
|
+
type: 'boolean',
|
|
101
|
+
});
|
|
102
|
+
argv.option('auto', {
|
|
103
|
+
describe: 'Indicate whether the map was pruned automatically by the code editor extension/plugin',
|
|
104
|
+
hidden: true,
|
|
105
|
+
});
|
|
107
106
|
},
|
|
108
107
|
handler: async (argv) => {
|
|
109
108
|
(0, handleWorkingDirectory_1.handleWorkingDirectory)(argv.directory);
|
|
@@ -118,9 +117,16 @@ exports.default = {
|
|
|
118
117
|
else {
|
|
119
118
|
throw Error('Invalid usage');
|
|
120
119
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
120
|
+
if (argv.auto)
|
|
121
|
+
appMap.data.pruneFilter.auto = true;
|
|
122
|
+
if (argv.outputData) {
|
|
123
|
+
console.log(JSON.stringify(appMap));
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const outputPath = `${argv.outputDir}/${(0, path_1.basename)(argv.file)}`;
|
|
127
|
+
fs_1.default.writeFileSync(outputPath, JSON.stringify(appMap));
|
|
128
|
+
displayMessage(appMap, argv.format);
|
|
129
|
+
}
|
|
124
130
|
},
|
|
125
131
|
};
|
|
126
132
|
//# sourceMappingURL=prune.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../src/cmds/prune/prune.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prune.js","sourceRoot":"","sources":["../../../src/cmds/prune/prune.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,20 +2,59 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.pruneWithFilter = exports.pruneAppMap = void 0;
|
|
4
4
|
const models_1 = require("@appland/models");
|
|
5
|
+
function combinePruneFilters(oldFilter, currentFilter) {
|
|
6
|
+
const newFilter = currentFilter;
|
|
7
|
+
if (oldFilter.hideUnlabeled)
|
|
8
|
+
newFilter.hideUnlabeled = oldFilter.hideUnlabeled || currentFilter.hideUnlabeled;
|
|
9
|
+
if (oldFilter.hideMediaRequests)
|
|
10
|
+
newFilter.hideMediaRequests = oldFilter.hideMediaRequests || currentFilter.hideMediaRequests;
|
|
11
|
+
if (oldFilter.hideExternalPaths)
|
|
12
|
+
newFilter.hideExternalPaths = oldFilter.hideExternalPaths || currentFilter.hideExternalPaths;
|
|
13
|
+
if (oldFilter.hideElapsedTimeUnder) {
|
|
14
|
+
if (currentFilter.hideElapsedTimeUnder) {
|
|
15
|
+
const oldValue = Number(oldFilter.hideElapsedTimeUnder);
|
|
16
|
+
const currentValue = Number(currentFilter.hideElapsedTimeUnder);
|
|
17
|
+
const newValue = oldValue > currentValue ? oldValue : currentValue;
|
|
18
|
+
newFilter.hideElapsedTimeUnder = String(newValue);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
newFilter.hideElapsedTimeUnder = oldFilter.hideElapsedTimeUnder;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (oldFilter.hideName) {
|
|
25
|
+
if (currentFilter.hideName) {
|
|
26
|
+
const oldValue = oldFilter.hideName;
|
|
27
|
+
const currentValue = currentFilter.hideName;
|
|
28
|
+
newFilter.hideName = oldValue.reduce((result, nameToHide) => {
|
|
29
|
+
if (!currentValue.includes(nameToHide))
|
|
30
|
+
currentValue.push(nameToHide);
|
|
31
|
+
return result;
|
|
32
|
+
}, currentValue);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
newFilter.hideName = oldFilter.hideName;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return newFilter;
|
|
39
|
+
}
|
|
5
40
|
const pruneAppMap = (appMap, size) => {
|
|
6
41
|
return (0, models_1.buildAppMap)().source(appMap).prune(size).normalize().build();
|
|
7
42
|
};
|
|
8
43
|
exports.pruneAppMap = pruneAppMap;
|
|
9
44
|
const pruneWithFilter = (appMap, serializedFilter) => {
|
|
45
|
+
// TODO: update type for AppMap
|
|
10
46
|
const fullMap = (0, models_1.buildAppMap)().source(appMap).normalize().build();
|
|
47
|
+
const filterBefore = fullMap.data.pruneFilter || {};
|
|
11
48
|
const filterOrState = (0, models_1.deserializeAppmapState)(serializedFilter);
|
|
12
|
-
const
|
|
49
|
+
const filter = 'filters' in filterOrState ? filterOrState.filters : filterOrState;
|
|
13
50
|
const appmapFilter = new models_1.AppMapFilter();
|
|
14
51
|
appmapFilter.declutter.limitRootEvents.on = false;
|
|
15
52
|
appmapFilter.declutter.hideMediaRequests.on = false;
|
|
16
|
-
appmapFilter.apply(
|
|
53
|
+
appmapFilter.apply(filter);
|
|
54
|
+
// TODO: update type for AppMap
|
|
17
55
|
const prunedMap = appmapFilter.filter(fullMap, []);
|
|
18
|
-
|
|
56
|
+
const pruneFilter = combinePruneFilters(filterBefore, filter);
|
|
57
|
+
prunedMap.data = Object.assign(Object.assign({}, prunedMap.data), { pruneFilter });
|
|
19
58
|
return prunedMap;
|
|
20
59
|
};
|
|
21
60
|
exports.pruneWithFilter = pruneWithFilter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pruneAppMap.js","sourceRoot":"","sources":["../../../src/cmds/prune/pruneAppMap.ts"],"names":[],"mappings":";;;AAAA,4CAAoF;
|
|
1
|
+
{"version":3,"file":"pruneAppMap.js","sourceRoot":"","sources":["../../../src/cmds/prune/pruneAppMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,17 +25,18 @@ async function locateAppMapFile(userInput, appmapDir) {
|
|
|
25
25
|
else if (userInput.endsWith('.appmap')) {
|
|
26
26
|
extension = '.json';
|
|
27
27
|
}
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
const mapFile = userInput + extension;
|
|
29
|
+
const appmapDirIsCwd = () => path_1.default.resolve(appmapDir) === process.cwd();
|
|
30
|
+
// if --appmap-file is a valid exact path, then return it
|
|
31
|
+
if (path_1.default.isAbsolute(mapFile) && (0, fs_1.existsSync)(mapFile))
|
|
32
|
+
return mapFile;
|
|
33
|
+
// resolve --appmap-dir and --appmap-file and check for an exact match
|
|
34
|
+
const searchPath = appmapDirIsCwd() ? mapFile : path_1.default.join(appmapDir, mapFile);
|
|
35
|
+
if ((0, fs_1.existsSync)(path_1.default.resolve(searchPath)))
|
|
36
|
+
return searchPath;
|
|
37
|
+
// recursively search in the --appmap-dir
|
|
38
|
+
const globArray = appmapDirIsCwd() ? ['**', mapFile] : [appmapDir, '**', mapFile];
|
|
39
|
+
const matches = glob_1.default.sync(path_1.default.join(...globArray));
|
|
39
40
|
if (matches.length === 0) {
|
|
40
41
|
console.error(chalk_1.default.red('No matching AppMap found'));
|
|
41
42
|
return;
|
|
@@ -83,13 +84,19 @@ exports.builder = builder;
|
|
|
83
84
|
async function handler(argv, handlerCaller = 'from_stats') {
|
|
84
85
|
(0, utils_1.verbose)(argv.verbose);
|
|
85
86
|
(0, handleWorkingDirectory_1.handleWorkingDirectory)(argv.directory);
|
|
86
|
-
|
|
87
|
+
let appmapDir;
|
|
88
|
+
try {
|
|
89
|
+
appmapDir = await (0, locateAppMapDir_1.locateAppMapDir)(argv.appmapDir);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
appmapDir = process.cwd();
|
|
93
|
+
}
|
|
87
94
|
const { format, limit, appmapFile } = argv;
|
|
88
95
|
if (appmapFile) {
|
|
89
96
|
const fileToAnalyze = await locateAppMapFile(appmapFile, appmapDir);
|
|
90
97
|
if (!fileToAnalyze)
|
|
91
98
|
return;
|
|
92
|
-
console.warn(`Analyzing AppMap: ${fileToAnalyze}`);
|
|
99
|
+
console.warn(chalk_1.default.yellow(`Analyzing AppMap: ${fileToAnalyze}\n`));
|
|
93
100
|
return await (0, statsForMap_1.statsForMap)(format, limit, fileToAnalyze);
|
|
94
101
|
}
|
|
95
102
|
return await (0, statsForDirectory_1.statsForDirectory)(appmapDir, format, limit, handlerCaller);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/cmds/stats/stats.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/cmds/stats/stats.ts"],"names":[],"mappings":"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"}
|