@appland/appmap 3.73.0 → 3.75.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/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.75.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.74.0...@appland/appmap-v3.75.0) (2023-03-31)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* update @appland/models to 2.4.2 ([4691796](https://github.com/getappmap/appmap-js/commit/469179691b5611fdb821f685e740b77c1747588f))
|
|
7
|
+
|
|
8
|
+
# [@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)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* handle base64url-filter pruning of previously pruned map ([e0ea606](https://github.com/getappmap/appmap-js/commit/e0ea60670ea2e5b6ab2d34fde03d4d3697ab45bf))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add hidden option to indicate automatic pruning ([0240cc8](https://github.com/getappmap/appmap-js/commit/0240cc86f35b64f2bd9eaf69da14a57344d5f4c6))
|
|
19
|
+
* add prune option to display all appmap data ([a02eb7d](https://github.com/getappmap/appmap-js/commit/a02eb7d3ea6c32b1db869c0799839618ec3bde3b))
|
|
20
|
+
|
|
1
21
|
# [@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)
|
|
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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"}
|