@appland/appmap 3.106.0 → 3.107.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.
Files changed (36) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/built/cmds/inventory/analyzers/collectAppMapSize.js +19 -0
  3. package/built/cmds/inventory/analyzers/collectAppMapSize.js.map +1 -0
  4. package/built/cmds/inventory/analyzers/collectFindings.js +2 -1
  5. package/built/cmds/inventory/analyzers/collectFindings.js.map +1 -1
  6. package/built/cmds/inventory/analyzers/collectFunctionOccurances.js +20 -0
  7. package/built/cmds/inventory/analyzers/collectFunctionOccurances.js.map +1 -0
  8. package/built/cmds/inventory/analyzers/collectMetadata.js +1 -2
  9. package/built/cmds/inventory/analyzers/collectMetadata.js.map +1 -1
  10. package/built/cmds/inventory/buildReport.js +34 -3
  11. package/built/cmds/inventory/buildReport.js.map +1 -1
  12. package/built/cmds/inventory/inventory.js +21 -2
  13. package/built/cmds/inventory/inventory.js.map +1 -1
  14. package/built/cmds/inventory-report/SummaryReport.js +3 -0
  15. package/built/cmds/inventory-report/SummaryReport.js.map +1 -0
  16. package/built/cmds/inventory-report/SummaryReporter.js +18 -4
  17. package/built/cmds/inventory-report/SummaryReporter.js.map +1 -1
  18. package/built/cmds/inventory-report/WelcomeReport.js +3 -0
  19. package/built/cmds/inventory-report/WelcomeReport.js.map +1 -0
  20. package/built/cmds/inventory-report/WelcomeReporter.js +35 -1
  21. package/built/cmds/inventory-report/WelcomeReporter.js.map +1 -1
  22. package/built/cmds/stats/{directory/statsForMap.js → accumulateEvents.js} +3 -40
  23. package/built/cmds/stats/accumulateEvents.js.map +1 -0
  24. package/built/cmds/stats/stats.js +2 -2
  25. package/built/cmds/stats/stats.js.map +1 -1
  26. package/built/cmds/stats/{directory/statsForDirectory.js → statsForDirectory.js} +3 -3
  27. package/built/cmds/stats/statsForDirectory.js.map +1 -0
  28. package/built/cmds/stats/statsForMap.js +43 -0
  29. package/built/cmds/stats/statsForMap.js.map +1 -0
  30. package/built/lib/emitUsage.js +31 -15
  31. package/built/lib/emitUsage.js.map +1 -1
  32. package/package.json +1 -1
  33. package/resources/inventory-report/summary/summary.hbs +7 -8
  34. package/resources/inventory-report/welcome/welcome.hbs +82 -6
  35. package/built/cmds/stats/directory/statsForDirectory.js.map +0 -1
  36. package/built/cmds/stats/directory/statsForMap.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # [@appland/appmap-v3.107.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.106.0...@appland/appmap-v3.107.0) (2023-11-04)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * emitUsage reports metadata as an object ([d07e795](https://github.com/getappmap/appmap-js/commit/d07e795ccb084024d4abe1e724c3147c46f2b7e1))
7
+
8
+
9
+ ### Features
10
+
11
+ * Apply wording update suggestions from code review ([5be8529](https://github.com/getappmap/appmap-js/commit/5be852954cb5b1e9a6cb16e2728aa3f27aa32bb5))
12
+ * Include AppMap config in run-stats report ([4ffe1a4](https://github.com/getappmap/appmap-js/commit/4ffe1a47cf2ffbe9b36caac3e9eae1cb8ac3a60b))
13
+ * Report large appmaps and frequent functions ([ccf7b6c](https://github.com/getappmap/appmap-js/commit/ccf7b6c40e9ffad9ceeaa57393d9e0c3890136c7))
14
+ * Report large appmaps and frequent functions ([b576e64](https://github.com/getappmap/appmap-js/commit/b576e649d7c48a78ab086d1201817ca84fb6937f))
15
+ * Report large appmaps and frequent functions ([5b31a58](https://github.com/getappmap/appmap-js/commit/5b31a583872f1cb884e7b6243d498d692a8d59d0))
16
+ * Show a rule summary rather than finding summary ([ccf88bb](https://github.com/getappmap/appmap-js/commit/ccf88bbad9b3b23baeddda9b79078fde5268247d))
17
+
1
18
  # [@appland/appmap-v3.106.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.105.0...@appland/appmap-v3.106.0) (2023-10-31)
2
19
 
3
20
 
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const console_1 = require("console");
4
+ const promises_1 = require("fs/promises");
5
+ function collectAppMapSize(appmapSizeInBytes) {
6
+ return async (appmap) => {
7
+ let stats;
8
+ try {
9
+ stats = await (0, promises_1.stat)(appmap);
10
+ }
11
+ catch (e) {
12
+ (0, console_1.warn)(`Error reading stats for ${appmap}: ${e}`);
13
+ return;
14
+ }
15
+ appmapSizeInBytes[appmap] = stats.size;
16
+ };
17
+ }
18
+ exports.default = collectAppMapSize;
19
+ //# sourceMappingURL=collectAppMapSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectAppMapSize.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectAppMapSize.ts"],"names":[],"mappings":";;AAAA,qCAA+B;AAE/B,0CAAmC;AAEnC,SAAwB,iBAAiB,CAAC,iBAAyC;IACjF,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,IAAI,KAAY,CAAC;QACjB,IAAI;YACF,KAAK,GAAG,MAAM,IAAA,eAAI,EAAC,MAAM,CAAC,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,cAAI,EAAC,2BAA2B,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;YAChD,OAAO;SACR;QAED,iBAAiB,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC;AACJ,CAAC;AAZD,oCAYC"}
@@ -14,7 +14,8 @@ function collectFindings(findings) {
14
14
  const mDate = modifiedDate(finding);
15
15
  if (mDate)
16
16
  findings.push({
17
- appmap,
17
+ appmap: appmap.slice(0, -'.appmap.json'.length),
18
+ ruleId: finding.ruleId,
18
19
  impactDomain: finding.impactDomain,
19
20
  modifiedDate: new Date(mDate),
20
21
  hash_v2: finding.hash_v2,
@@ -1 +1 @@
1
- {"version":3,"file":"collectFindings.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectFindings.ts"],"names":[],"mappings":";;;;;AACA,qEAA6C;AAG7C,SAAwB,eAAe,CAAC,QAA0B;IAChE,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAC1D,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAE1D,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,sBAAsB,CAAC,CAAgB,CAAC;QACzF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;YAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK;gBACP,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM;oBACN,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;SACN;IACH,CAAC,CAAC;AACJ,CAAC;AAnBD,kCAmBC"}
1
+ {"version":3,"file":"collectFindings.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectFindings.ts"],"names":[],"mappings":";;;;;AACA,qEAA6C;AAG7C,SAAwB,eAAe,CAAC,QAA0B;IAChE,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAoB,EAAE,CAC1D,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAE1D,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,sBAAsB,CAAC,CAAgB,CAAC;QACzF,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE;YAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,KAAK;gBACP,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;oBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,YAAY,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;SACN;IACH,CAAC,CAAC;AACJ,CAAC;AApBD,kCAoBC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const accumulateEvents_1 = require("../../stats/accumulateEvents");
4
+ function collectFunctionOccurances(functionOccurrances) {
5
+ return async (appmap) => {
6
+ const eventInfos = await (0, accumulateEvents_1.accumulateEvents)(appmap);
7
+ for (const eventInfo of eventInfos) {
8
+ if (!functionOccurrances[eventInfo.function]) {
9
+ functionOccurrances[eventInfo.function] = eventInfo;
10
+ }
11
+ else {
12
+ const existing = functionOccurrances[eventInfo.function];
13
+ existing.count += eventInfo.count;
14
+ existing.size += eventInfo.size;
15
+ }
16
+ }
17
+ };
18
+ }
19
+ exports.default = collectFunctionOccurances;
20
+ //# sourceMappingURL=collectFunctionOccurances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectFunctionOccurances.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectFunctionOccurances.ts"],"names":[],"mappings":";;AAAA,mEAA2E;AAE3E,SAAwB,yBAAyB,CAAC,mBAA8C;IAC9F,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,MAAM,UAAU,GAAG,MAAM,IAAA,mCAAgB,EAAC,MAAM,CAAC,CAAC;QAClD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBAC5C,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;aACrD;iBAAM;gBACL,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACzD,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;gBAClC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC;aACjC;SACF;IACH,CAAC,CAAC;AACJ,CAAC;AAbD,4CAaC"}
@@ -7,9 +7,8 @@ const readIndexFile_1 = __importDefault(require("../readIndexFile"));
7
7
  function collectMetadata(appmapCountByRecorderName) {
8
8
  return async (appmap) => {
9
9
  var _a;
10
+ // Existance of metadata.json is assured by buildReport
10
11
  const metadata = await (0, readIndexFile_1.default)(appmap, 'metadata.json');
11
- if (!metadata)
12
- return;
13
12
  const recorderName = ((_a = metadata.recorder) === null || _a === void 0 ? void 0 : _a.name) || 'unknown';
14
13
  if (!appmapCountByRecorderName[recorderName])
15
14
  appmapCountByRecorderName[recorderName] = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"collectMetadata.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectMetadata.ts"],"names":[],"mappings":";;;;;AACA,qEAA6C;AAE7C,SAAwB,eAAe,CAAC,yBAAiD;IACvF,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;;QAC9B,MAAM,QAAQ,GAAa,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,YAAY,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,IAAI,KAAI,SAAS,CAAC;QAC1D,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC;YAAE,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;;YACrF,yBAAyB,CAAC,YAAY,CAAC,GAAG,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AATD,kCASC"}
1
+ {"version":3,"file":"collectMetadata.js","sourceRoot":"","sources":["../../../../src/cmds/inventory/analyzers/collectMetadata.ts"],"names":[],"mappings":";;;;;AACA,qEAA6C;AAE7C,SAAwB,eAAe,CAAC,yBAAiD;IACvF,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;;QAC9B,uDAAuD;QACvD,MAAM,QAAQ,GAAa,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,CAAA,MAAA,QAAQ,CAAC,QAAQ,0CAAE,IAAI,KAAI,SAAS,CAAC;QAC1D,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC;YAAE,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;;YACrF,yBAAyB,CAAC,YAAY,CAAC,GAAG,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AARD,kCAQC"}
@@ -13,11 +13,13 @@ const collectPackageDependencies_1 = require("./analyzers/collectPackageDependen
13
13
  const collectSQLTables_1 = require("./analyzers/collectSQLTables");
14
14
  const collectLabels_1 = require("./analyzers/collectLabels");
15
15
  const collectRoutes_1 = __importDefault(require("./analyzers/collectRoutes"));
16
+ const collectAppMapSize_1 = __importDefault(require("./analyzers/collectAppMapSize"));
17
+ const collectFunctionOccurances_1 = __importDefault(require("./analyzers/collectFunctionOccurances"));
16
18
  const path_1 = require("path");
17
19
  const console_1 = require("console");
18
20
  const readIndexFile_1 = __importDefault(require("./readIndexFile"));
19
21
  const collectFindings_1 = __importDefault(require("./analyzers/collectFindings"));
20
- async function buildReport(appmapDir, appmaps, resourceTokens) {
22
+ async function buildReport(appmapDir, appmaps, options) {
21
23
  const appmapCountByRecorderName = {};
22
24
  const appmapCountByHTTPServerRequestCount = {};
23
25
  const appmapCountBySQLQueryCount = {};
@@ -28,15 +30,17 @@ async function buildReport(appmapDir, appmaps, resourceTokens) {
28
30
  const routeCountByResource = {};
29
31
  const routeCountByContentType = {};
30
32
  const findings = [];
33
+ const appmapSize = {};
31
34
  const analyzers = [
32
35
  (0, collectMetadata_1.default)(appmapCountByRecorderName),
33
36
  (0, collectHTTPServerRequests_1.default)(appmapCountByHTTPServerRequestCount),
34
37
  (0, collectSQLQueries_1.default)(appmapCountBySQLQueryCount),
35
- (0, collectHTTPClientRequests_1.default)(clientRouteCountByResource, resourceTokens),
38
+ (0, collectHTTPClientRequests_1.default)(clientRouteCountByResource, options.resourceTokens),
36
39
  (0, collectPackageDependencies_1.collectPackageDependencies)(uniquePackageDependencies),
37
40
  (0, collectSQLTables_1.collectSQLTables)(sqlTables),
38
41
  (0, collectLabels_1.collectLabels)(labels),
39
42
  (0, collectFindings_1.default)(findings),
43
+ (0, collectAppMapSize_1.default)(appmapSize),
40
44
  ];
41
45
  for (const appmap of appmaps) {
42
46
  const metadata = await (0, readIndexFile_1.default)(appmap, 'metadata.json');
@@ -64,8 +68,33 @@ async function buildReport(appmapDir, appmaps, resourceTokens) {
64
68
  }
65
69
  }
66
70
  }
71
+ const largeAppMaps = {};
72
+ {
73
+ const appmaps = Object.keys(appmapSize);
74
+ appmaps.sort((a, b) => appmapSize[b] - appmapSize[a]);
75
+ appmaps.slice(0, options.largeAppMapLimit).reduce((acc, appmap) => {
76
+ acc[appmap] = appmapSize[appmap];
77
+ return acc;
78
+ }, largeAppMaps);
79
+ }
80
+ const frequentFunctions = {};
81
+ {
82
+ const functionOccurrances = {};
83
+ {
84
+ const analyzer = (0, collectFunctionOccurances_1.default)(functionOccurrances);
85
+ for (const appmap of Object.keys(largeAppMaps)) {
86
+ await analyzer(appmap);
87
+ }
88
+ }
89
+ const functions = Object.keys(functionOccurrances);
90
+ functions.sort((a, b) => functionOccurrances[b].count - functionOccurrances[a].count);
91
+ functions.slice(0, options.frequentFunctionLimit).reduce((acc, fn) => {
92
+ acc[fn] = functionOccurrances[fn];
93
+ return acc;
94
+ }, frequentFunctions);
95
+ }
67
96
  const openapiFile = (0, path_1.join)(appmapDir, 'openapi.yml');
68
- await (0, collectRoutes_1.default)(openapiFile, resourceTokens, routeCountByResource, routeCountByContentType);
97
+ await (0, collectRoutes_1.default)(openapiFile, options.resourceTokens, routeCountByResource, routeCountByContentType);
69
98
  return {
70
99
  appmapCountByRecorderName,
71
100
  appmapCountByHTTPServerRequestCount,
@@ -80,6 +109,8 @@ async function buildReport(appmapDir, appmaps, resourceTokens) {
80
109
  ].sort(),
81
110
  packageDependencies: uniquePackageDependencies.dependencies,
82
111
  findings: uniqueFindings,
112
+ largeAppMaps,
113
+ frequentFunctions,
83
114
  };
84
115
  }
85
116
  exports.buildReport = buildReport;
@@ -1 +1 @@
1
- {"version":3,"file":"buildReport.js","sourceRoot":"","sources":["../../../src/cmds/inventory/buildReport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildReport.js","sourceRoot":"","sources":["../../../src/cmds/inventory/buildReport.ts"],"names":[],"mappings":"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"}
@@ -35,12 +35,27 @@ const builder = (args) => {
35
35
  type: 'number',
36
36
  default: 2,
37
37
  });
38
+ args.option('resource-tokens', {
39
+ describe: `number of path tokens to include in the 'by resource' output`,
40
+ type: 'number',
41
+ default: 2,
42
+ });
43
+ args.option('large-appmaps', {
44
+ describe: `number of largest AppMaps to report`,
45
+ type: 'number',
46
+ default: 20,
47
+ });
48
+ args.option('frequent-functions', {
49
+ describe: `number of most frequently occurring functions to report (this is an estimate based on inspecting the large AppMaps)`,
50
+ type: 'number',
51
+ default: 50,
52
+ });
38
53
  return args.strict();
39
54
  };
40
55
  exports.builder = builder;
41
56
  const handler = async (argv) => {
42
57
  (0, utils_1.verbose)(argv.verbose);
43
- const { outputFile, directory, resourceTokens, findingLimit } = argv;
58
+ const { outputFile, directory, resourceTokens, frequentFunctions: frequentFunctionLimit, largeAppmaps: largeAppMapLimit, } = argv;
44
59
  (0, assert_1.default)(resourceTokens);
45
60
  (0, assert_1.default)(typeof resourceTokens === 'number');
46
61
  (0, assert_1.default)(resourceTokens > 0);
@@ -60,7 +75,11 @@ const handler = async (argv) => {
60
75
  return;
61
76
  }
62
77
  (0, console_1.warn)(`Building inventory data from ${appmaps.length} AppMaps in ${appmapDir}`);
63
- const report = await (0, buildReport_1.buildReport)(appmapDir, appmaps, resourceTokens + 1 /* The url '/' is actually 2 tokens, so add 1 to the user input */);
78
+ const report = await (0, buildReport_1.buildReport)(appmapDir, appmaps, {
79
+ resourceTokens: resourceTokens + 1 /* The url '/' is actually 2 tokens, so add 1 to the user input */,
80
+ frequentFunctionLimit,
81
+ largeAppMapLimit,
82
+ });
64
83
  const reportJSONStr = JSON.stringify(report, null, 2);
65
84
  if (outputFile) {
66
85
  await (0, promises_1.writeFile)(outputFile, reportJSONStr);
@@ -1 +1 @@
1
- {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../src/cmds/inventory/inventory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../../src/cmds/inventory/inventory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=SummaryReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryReport.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/SummaryReport.ts"],"names":[],"mappings":""}
@@ -12,9 +12,19 @@ const readIndexFile_1 = __importDefault(require("../inventory/readIndexFile"));
12
12
  const loadReportTemplate_1 = __importDefault(require("../../report/loadReportTemplate"));
13
13
  const urlHelpers_1 = __importDefault(require("../../report/urlHelpers"));
14
14
  const helpers_1 = __importDefault(require("../../report/helpers"));
15
+ const handlebars_1 = require("handlebars");
15
16
  async function buildReportData(inventoryReport, findingLimit) {
16
- const findingCountByImpactDomain = inventoryReport.findings.reduce((acc, finding) => {
17
- const domain = finding.impactDomain;
17
+ const distinctRuleIds = new Set();
18
+ const findingRules = inventoryReport.findings.reduce((acc, f) => {
19
+ if (f.impactDomain && !distinctRuleIds.has(f.ruleId)) {
20
+ distinctRuleIds.add(f.ruleId);
21
+ acc.push({ ruleId: f.ruleId, impactDomain: f.impactDomain });
22
+ }
23
+ return acc;
24
+ }, new Array());
25
+ findingRules.sort((a, b) => a.ruleId.localeCompare(b.ruleId));
26
+ const findingRuleCountByImpactDomain = findingRules.reduce((acc, rule) => {
27
+ const { impactDomain: domain } = rule;
18
28
  if (domain) {
19
29
  if (!acc[domain])
20
30
  acc[domain] = 1;
@@ -48,8 +58,9 @@ async function buildReportData(inventoryReport, findingLimit) {
48
58
  newFindings.push({ appmap, finding });
49
59
  }
50
60
  return {
61
+ findingRules,
62
+ findingRuleCountByImpactDomain,
51
63
  findingCount,
52
- findingCountByImpactDomain,
53
64
  findings: newFindings,
54
65
  };
55
66
  }
@@ -66,6 +77,9 @@ class SummaryReporter {
66
77
  return template.generateMarkdown(report);
67
78
  }
68
79
  static helpers() {
80
+ const rule_url = (rule) => {
81
+ return new handlebars_1.SafeString(`[${rule}](https://appmap.io/docs/reference/rules/${rule})`);
82
+ };
69
83
  const time_ago = (...dates) => {
70
84
  const firstDate = dates.find(Boolean);
71
85
  if (!firstDate)
@@ -90,7 +104,7 @@ class SummaryReporter {
90
104
  return `${interval} minutes`;
91
105
  return `${Math.floor(seconds)} seconds`;
92
106
  };
93
- return { time_ago };
107
+ return { rule_url, time_ago };
94
108
  }
95
109
  }
96
110
  exports.default = SummaryReporter;
@@ -1 +1 @@
1
- {"version":3,"file":"SummaryReporter.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/SummaryReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SummaryReporter.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/SummaryReporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=WelcomeReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WelcomeReport.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/WelcomeReport.ts"],"names":[],"mappings":""}
@@ -10,6 +10,7 @@ const ReportTemplate_1 = require("../../report/ReportTemplate");
10
10
  const loadReportTemplate_1 = __importDefault(require("../../report/loadReportTemplate"));
11
11
  const urlHelpers_1 = __importDefault(require("../../report/urlHelpers"));
12
12
  const helpers_1 = __importDefault(require("../../report/helpers"));
13
+ const readIndexFile_1 = __importDefault(require("../inventory/readIndexFile"));
13
14
  class WelcomeReporter {
14
15
  constructor(appmapURL, sourceURL) {
15
16
  this.appmapURL = appmapURL;
@@ -19,10 +20,40 @@ class WelcomeReporter {
19
20
  (0, assert_1.default)(Reporter_1.TemplateDirectory);
20
21
  const templateText = await (0, loadReportTemplate_1.default)((0, path_1.join)(Reporter_1.TemplateDirectory, 'welcome', 'welcome.hbs'));
21
22
  const template = new ReportTemplate_1.ReportTemplate(templateText, Object.assign(Object.assign(Object.assign({}, helpers_1.default), (0, urlHelpers_1.default)({ appmapURL: this.appmapURL, sourceURL: this.sourceURL })), WelcomeReporter.helpers()));
22
- const data = Object.assign(Object.assign({}, reportData), { appmapConfig });
23
+ const largeAppMapsGreaterThan1MB = Object.entries(reportData.largeAppMaps)
24
+ .filter((entry) => entry[1] > 1024 * 1024)
25
+ .reduce((acc, entry) => ((acc[entry[0]] = entry[1]), acc), {});
26
+ const largeAppMaps = {};
27
+ for (const appmap of Object.keys(largeAppMapsGreaterThan1MB)) {
28
+ const metadata = await (0, readIndexFile_1.default)(appmap, 'metadata.json');
29
+ const name = metadata.name;
30
+ const sourceLocation = metadata.source_location;
31
+ largeAppMaps[appmap] = { name, sourceLocation, size: reportData.largeAppMaps[appmap] };
32
+ }
33
+ const frequentlyOccurringFunctionsMoreThan1000 = Object.entries(reportData.frequentFunctions)
34
+ .filter((entry) => entry[1].count > 1000)
35
+ .reduce((acc, entry) => ((acc[entry[0]] = entry[1]), acc), {});
36
+ const data = Object.assign(Object.assign(Object.assign({}, reportData), { largeAppMaps, frequentFunctions: frequentlyOccurringFunctionsMoreThan1000 }), { appmapConfig });
23
37
  return template.generateMarkdown(data);
24
38
  }
25
39
  static helpers() {
40
+ const agent_reference_name = (language) => {
41
+ if (language === 'javascript')
42
+ return 'agent-js';
43
+ else
44
+ return language;
45
+ };
46
+ const format_mb = (sizeInBytes) => {
47
+ const sizeInMB = Math.round((sizeInBytes / 1024 / 1024) * 100) / 100;
48
+ return `${sizeInMB} MB`;
49
+ };
50
+ const function_name = (functionId) => {
51
+ // Example: function:ruby/Array#pack
52
+ if (!functionId.startsWith('function:'))
53
+ return functionId;
54
+ const parts = functionId.split('/');
55
+ return parts[parts.length - 1];
56
+ };
26
57
  const select_values_by_key_range = (data, keyMin, keyMax) => {
27
58
  if (typeof keyMax === 'object')
28
59
  keyMax = undefined;
@@ -44,6 +75,9 @@ class WelcomeReporter {
44
75
  });
45
76
  };
46
77
  return {
78
+ agent_reference_name,
79
+ format_mb,
80
+ function_name,
47
81
  packages_matching_configuration,
48
82
  select_values_by_key_range,
49
83
  sum_values_by_key_range,
@@ -1 +1 @@
1
- {"version":3,"file":"WelcomeReporter.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/WelcomeReporter.ts"],"names":[],"mappings":";;;;;AAAA,+BAA4B;AAC5B,oDAA4B;AAG5B,yCAA8E;AAC9E,gEAA6D;AAC7D,yFAAiE;AACjE,yEAAiD;AACjD,mEAA2C;AAE3C,MAAqB,eAAe;IAClC,YAAmB,SAAiB,EAAS,SAAkB;QAA5C,cAAS,GAAT,SAAS,CAAQ;QAAS,cAAS,GAAT,SAAS,CAAS;IAAG,CAAC;IAEnE,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,YAA0B;QACjE,IAAA,gBAAM,EAAC,4BAAiB,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,MAAM,IAAA,4BAAkB,EAC3C,IAAA,WAAI,EAAC,4BAAiB,EAAE,SAAS,EAAE,aAAa,CAAC,CAClD,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,+BAAc,CAAC,YAAY,gDAC3C,iBAAO,GACP,IAAA,oBAAU,EAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,GACpE,eAAe,CAAC,OAAO,EAAE,EAC5B,CAAC;QACH,MAAM,IAAI,mCAA6B,UAAU,KAAE,YAAY,GAAE,CAAC;QAClE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,0BAA0B,GAAG,CACjC,IAA4B,EAC5B,MAAc,EACd,MAAe,EACL,EAAE;YACZ,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,GAAG,SAAS,CAAC;YACnD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;iBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;iBAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,uBAAuB,GAAG,CAC9B,IAA4B,EAC5B,MAAc,EACd,MAAe,EACP,EAAE;YACV,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,MAAM,+BAA+B,GAAG,CACtC,QAAkB,EAClB,kBAAuC,EACvC,EAAE;YACF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAEhF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,iBAAiB,EAAE,EAAE,CACpB,iBAAiB,CAAC,IAAI;oBACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAC7E,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO;YACL,+BAA+B;YAC/B,0BAA0B;YAC1B,uBAAuB;SACxB,CAAC;IACJ,CAAC;CACF;AA7DD,kCA6DC"}
1
+ {"version":3,"file":"WelcomeReporter.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/WelcomeReporter.ts"],"names":[],"mappings":"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"}
@@ -26,35 +26,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.statsForMap = void 0;
29
+ exports.accumulateEvents = void 0;
30
30
  const fs = __importStar(require("fs"));
31
31
  const models_1 = require("@appland/models");
32
32
  const JSONStream_1 = __importDefault(require("JSONStream"));
33
- const KILOBYTE = 1000;
34
- const MEGABYTE = KILOBYTE * 1000;
35
- const GIGABYTE = MEGABYTE * 1000;
36
33
  const sizeof = (obj) => JSON.stringify(obj).length;
37
- function displaySize(size) {
38
- let divisor;
39
- let suffix;
40
- if (size > GIGABYTE) {
41
- divisor = GIGABYTE;
42
- suffix = 'GB';
43
- }
44
- else if (size > MEGABYTE) {
45
- divisor = MEGABYTE;
46
- suffix = 'MB';
47
- }
48
- else if (size > KILOBYTE) {
49
- divisor = KILOBYTE;
50
- suffix = 'KB';
51
- }
52
- else {
53
- divisor = 1;
54
- suffix = 'bytes';
55
- }
56
- return `${(size / divisor).toFixed(1)} ${suffix}`;
57
- }
58
34
  async function parseClassMap(mapPath) {
59
35
  let classMap;
60
36
  return new Promise((resolve) => {
@@ -109,18 +85,5 @@ async function accumulateEvents(mapPath) {
109
85
  }));
110
86
  });
111
87
  }
112
- async function statsForMap(format, limit, mapPath) {
113
- const eventsStats = (await accumulateEvents(mapPath)).slice(0, limit);
114
- if (format === 'json') {
115
- console.log(JSON.stringify(eventsStats, null, 2));
116
- }
117
- else {
118
- eventsStats.forEach((callData, index) => {
119
- const { function: fn, count, size } = callData;
120
- console.log([`${index + 1}. ${fn}`, `count: ${count}`, `estimated size: ${displaySize(size)}`, ''].join('\n '));
121
- });
122
- }
123
- return eventsStats;
124
- }
125
- exports.statsForMap = statsForMap;
126
- //# sourceMappingURL=statsForMap.js.map
88
+ exports.accumulateEvents = accumulateEvents;
89
+ //# sourceMappingURL=accumulateEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulateEvents.js","sourceRoot":"","sources":["../../../src/cmds/stats/accumulateEvents.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@ exports.handler = exports.builder = exports.describe = exports.command = void 0;
7
7
  const fs_1 = require("fs");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const chalk_1 = __importDefault(require("chalk"));
10
- const statsForDirectory_1 = require("./directory/statsForDirectory");
11
- const statsForMap_1 = require("./directory/statsForMap");
10
+ const statsForDirectory_1 = require("./statsForDirectory");
11
+ const statsForMap_1 = require("./statsForMap");
12
12
  const locateAppMapDir_1 = require("../../lib/locateAppMapDir");
13
13
  const utils_1 = require("../../utils");
14
14
  const handleWorkingDirectory_1 = require("../../lib/handleWorkingDirectory");
@@ -1 +1 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/cmds/stats/stats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/cmds/stats/stats.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.statsForDirectory = exports.sizeInMB = void 0;
30
30
  const fs = __importStar(require("fs"));
31
- const userInteraction_1 = __importDefault(require("../../userInteraction"));
32
- const telemetry_1 = __importDefault(require("../../../telemetry"));
33
- const utils_1 = require("../../../utils");
31
+ const userInteraction_1 = __importDefault(require("../userInteraction"));
32
+ const telemetry_1 = __importDefault(require("../../telemetry"));
33
+ const utils_1 = require("../../utils");
34
34
  const models_1 = require("@appland/models");
35
35
  const chalk_1 = __importDefault(require("chalk"));
36
36
  const path_1 = require("path");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsForDirectory.js","sourceRoot":"","sources":["../../../src/cmds/stats/statsForDirectory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statsForMap = void 0;
4
+ const accumulateEvents_1 = require("./accumulateEvents");
5
+ const KILOBYTE = 1000;
6
+ const MEGABYTE = KILOBYTE * 1000;
7
+ const GIGABYTE = MEGABYTE * 1000;
8
+ function displaySize(size) {
9
+ let divisor;
10
+ let suffix;
11
+ if (size > GIGABYTE) {
12
+ divisor = GIGABYTE;
13
+ suffix = 'GB';
14
+ }
15
+ else if (size > MEGABYTE) {
16
+ divisor = MEGABYTE;
17
+ suffix = 'MB';
18
+ }
19
+ else if (size > KILOBYTE) {
20
+ divisor = KILOBYTE;
21
+ suffix = 'KB';
22
+ }
23
+ else {
24
+ divisor = 1;
25
+ suffix = 'bytes';
26
+ }
27
+ return `${(size / divisor).toFixed(1)} ${suffix}`;
28
+ }
29
+ async function statsForMap(format, limit, mapPath) {
30
+ const eventsStats = (await (0, accumulateEvents_1.accumulateEvents)(mapPath)).slice(0, limit);
31
+ if (format === 'json') {
32
+ console.log(JSON.stringify(eventsStats, null, 2));
33
+ }
34
+ else {
35
+ eventsStats.forEach((callData, index) => {
36
+ const { function: fn, count, size } = callData;
37
+ console.log([`${index + 1}. ${fn}`, `count: ${count}`, `estimated size: ${displaySize(size)}`, ''].join('\n '));
38
+ });
39
+ }
40
+ return eventsStats;
41
+ }
42
+ exports.statsForMap = statsForMap;
43
+ //# sourceMappingURL=statsForMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statsForMap.js","sourceRoot":"","sources":["../../../src/cmds/stats/statsForMap.ts"],"names":[],"mappings":";;;AAAA,yDAAiE;AAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AACjC,MAAM,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEjC,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,OAAe,CAAC;IACpB,IAAI,MAAc,CAAC;IAEnB,IAAI,IAAI,GAAG,QAAQ,EAAE;QACnB,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,IAAI,CAAC;KACf;SAAM,IAAI,IAAI,GAAG,QAAQ,EAAE;QAC1B,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,IAAI,CAAC;KACf;SAAM,IAAI,IAAI,GAAG,QAAQ,EAAE;QAC1B,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,IAAI,CAAC;KACf;SAAM;QACL,OAAO,GAAG,CAAC,CAAC;QACZ,MAAM,GAAG,OAAO,CAAC;KAClB;IAED,OAAO,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;AACpD,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,MAAc,EACd,KAAa,EACb,OAAe;IAEf,MAAM,WAAW,GAAG,CAAC,MAAM,IAAA,mCAAgB,EAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEtE,IAAI,MAAM,KAAK,MAAM,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KACnD;SAAM;QACL,WAAW,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACtC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC/C,OAAO,CAAC,GAAG,CACT,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,KAAK,EAAE,EAAE,mBAAmB,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CACzF,UAAU,CACX,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AArBD,kCAqBC"}
@@ -7,29 +7,45 @@ const telemetry_1 = require("../telemetry");
7
7
  const repositoryInfo_1 = __importDefault(require("./repositoryInfo"));
8
8
  const promises_1 = require("node:fs/promises");
9
9
  const node_path_1 = require("node:path");
10
+ const loadAppMapConfig_1 = __importDefault(require("./loadAppMapConfig"));
11
+ const node_console_1 = require("node:console");
10
12
  async function buildMetadata(appmapDir, metadata) {
11
13
  const repository = await telemetry_1.Git.repository(appmapDir);
12
- const branch = await telemetry_1.Git.branch(appmapDir);
13
- const commit = await telemetry_1.Git.commit(appmapDir);
14
- return JSON.stringify({
15
- app: metadata === null || metadata === void 0 ? void 0 : metadata.app,
16
- language: metadata === null || metadata === void 0 ? void 0 : metadata.language,
17
- client: metadata === null || metadata === void 0 ? void 0 : metadata.client,
18
- frameworks: metadata === null || metadata === void 0 ? void 0 : metadata.frameworks,
19
- git: {
20
- repository: repository ? (0, repositoryInfo_1.default)(repository) : undefined,
21
- branch: branch,
22
- commit: commit,
23
- },
24
- recorder: metadata === null || metadata === void 0 ? void 0 : metadata.recorder,
25
- });
14
+ const result = {
15
+ name: metadata.name,
16
+ app: metadata.app,
17
+ language: metadata.language,
18
+ client: metadata.client,
19
+ frameworks: metadata.frameworks,
20
+ recorder: metadata.recorder,
21
+ };
22
+ if (repository) {
23
+ const branch = await telemetry_1.Git.branch(appmapDir);
24
+ const commit = await telemetry_1.Git.commit(appmapDir);
25
+ const git = {
26
+ repository: (0, repositoryInfo_1.default)(repository),
27
+ }; // Technically, branch and commit are required
28
+ if (branch)
29
+ git.branch = branch;
30
+ if (commit)
31
+ git.commit = commit;
32
+ result.git = git;
33
+ }
34
+ return result;
26
35
  }
27
36
  async function emitUsage(appmapDir, numEvents, numAppMaps, sampleMetadata) {
37
+ let metadata;
38
+ if (sampleMetadata)
39
+ metadata = await buildMetadata(appmapDir, sampleMetadata);
40
+ const appmapConfig = await (0, loadAppMapConfig_1.default)();
41
+ if (!appmapConfig)
42
+ (0, node_console_1.warn)(`Unable to load appmap.yml config file`);
28
43
  const dto = {
29
44
  events: numEvents,
30
45
  appmaps: numAppMaps,
31
- metadata: await buildMetadata(appmapDir, sampleMetadata),
46
+ metadata,
32
47
  ci: process.env.CI !== undefined,
48
+ appmapConfig,
33
49
  };
34
50
  try {
35
51
  const stats = await (0, promises_1.stat)('.appmap');
@@ -1 +1 @@
1
- {"version":3,"file":"emitUsage.js","sourceRoot":"","sources":["../../src/lib/emitUsage.ts"],"names":[],"mappings":";;;;;AAEA,4CAAmC;AAEnC,sEAA2C;AAC3C,+CAA0D;AAC1D,yCAAiC;AAEjC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAmB;IACjE,MAAM,UAAU,GAAG,MAAM,eAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,eAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,eAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,GAAG,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG;QAClB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ;QAC5B,MAAM,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM;QACxB,UAAU,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU;QAChC,GAAG,EAAE;YACH,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,wBAAW,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACf;QACD,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ;KAC7B,CAAC,CAAC;AACL,CAAC;AAEc,KAAK,UAAU,SAAS,CACrC,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,cAAyB;IAEzB,MAAM,GAAG,GAAmB;QAC1B,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,MAAM,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC;QACxD,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS;KACjC,CAAC;IAEF,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,eAAI,EAAC,SAAS,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,IAAA,gBAAK,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,IAAA,oBAAS,EAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,aAAa,CAAC;SACtB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5D,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;SACjD;KACF;AACH,CAAC;AA5BD,4BA4BC"}
1
+ {"version":3,"file":"emitUsage.js","sourceRoot":"","sources":["../../src/lib/emitUsage.ts"],"names":[],"mappings":";;;;;AACA,4CAAmC;AAEnC,sEAA2C;AAC3C,+CAA0D;AAC1D,yCAAiC;AACjC,0EAAkD;AAClD,+CAAoC;AAEpC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAkB;IAChE,MAAM,UAAU,GAAG,MAAM,eAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAa;QACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;IAEF,IAAI,UAAU,EAAE;QACd,MAAM,MAAM,GAAG,MAAM,eAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,eAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG;YACV,UAAU,EAAE,IAAA,wBAAW,EAAC,UAAU,CAAC;SACpB,CAAC,CAAC,8CAA8C;QACjE,IAAI,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,IAAI,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QAEhC,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;KAClB;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAEc,KAAK,UAAU,SAAS,CACrC,SAAiB,EACjB,SAAiB,EACjB,UAAkB,EAClB,cAAyB;IAEzB,IAAI,QAA8B,CAAC;IACnC,IAAI,cAAc;QAAE,QAAQ,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAE9E,MAAM,YAAY,GAAG,MAAM,IAAA,0BAAgB,GAAE,CAAC;IAC9C,IAAI,CAAC,YAAY;QAAE,IAAA,mBAAI,EAAC,uCAAuC,CAAC,CAAC;IAEjE,MAAM,GAAG,GAAmB;QAC1B,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,UAAU;QACnB,QAAQ;QACR,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS;QAChC,YAAY;KACK,CAAC;IAEpB,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,eAAI,EAAC,SAAS,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;YACvB,MAAM,iBAAiB,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACvD,MAAM,IAAA,gBAAK,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,MAAM,aAAa,GAAG,IAAA,gBAAI,EAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/E,MAAM,IAAA,oBAAS,EAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,OAAO,aAAa,CAAC;SACtB;KACF;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,CAAC,YAAY,KAAK,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC5D,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;SACjD;KACF;AACH,CAAC;AAnCD,4BAmCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.106.0",
3
+ "version": "3.107.0",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "engines": {
@@ -45,18 +45,17 @@ AppMap runtime code review scans the AppMaps for security flaws, performance
45
45
  problems, and code anti-patterns. When you use AppMap runtime code review on a pull request,
46
46
  only the new problems and resolved problems are shown in the report.
47
47
 
48
- {{#if findings.length}}
48
+ {{#if findingRules.length}}
49
49
  ### Overview of problems and flaws
50
50
 
51
- AppMap detected {{ findingCount }} problems and flaws in the runtime code review of your project.
52
- Here's an overview of the types of problems that have been found:
51
+ AppMap detected {{ length findingRules }} types of problems and flaws in the runtime code review of your project.
52
+ Here's a list of the types of problems that have been found:
53
53
 
54
- ```mermaid
55
- pie showData
56
- {{#each findingCountByImpactDomain}}
57
- "{{@key}}" : {{@this}}
54
+ | Rule | Impact Domain |
55
+ | --- | --- |
56
+ {{#each findingRules }}
57
+ | {{ rule_url ruleId }} | {{impactDomain}} |
58
58
  {{/each}}
59
- ```
60
59
 
61
60
  ### Recently introduced code flaws and problems
62
61
 
@@ -7,12 +7,12 @@ you run your tests.
7
7
 
8
8
  <hr/>
9
9
 
10
+ The following sections contain detailed information about the AppMap integration with your project.
11
+
10
12
  <details>
11
13
  <summary>
12
- View details
13
- </summary>
14
-
15
14
  <h3><a id="data-sources">AppMap data sources</a></h3>
15
+ </summary>
16
16
 
17
17
  In GitHub Actions and other CI systems, AppMaps are created by recording
18
18
  test cases. Here's how the AppMaps in this project were created:
@@ -33,7 +33,12 @@ pie showData
33
33
  ```
34
34
  {{/if}}
35
35
 
36
- <h3><a id="code-profile">Code profile</a></h3>
36
+ </details>
37
+
38
+ <details>
39
+ <summary>
40
+ <h3><a id="code-profile">Code recording settings</a></h3>
41
+ </summary>
37
42
 
38
43
  Your _appmap.yml_ configuration file specifies all the code that you want AppMap to instrument and record.
39
44
  By default, sub-modules of any requested code are recorded as well. In this project, the packages specified
@@ -47,7 +52,12 @@ following packages and modules:
47
52
 
48
53
  {{#each (packages_matching_configuration packages appmapConfig.packages) }}`{{ @this }}` {{/each}}
49
54
 
55
+ </details>
56
+
57
+ <details>
58
+ <summary>
50
59
  <h3><a id="ws-api-profile">Web service API profile</a></h3>
60
+ </summary>
51
61
 
52
62
  When you record AppMaps that include HTTP server requests, AppMap automatically generates OpenAPI definitions
53
63
  based on the observed data.
@@ -99,7 +109,12 @@ the better the AppMap data will be for generating OpenAPI definitions and compar
99
109
  changes in each pull request.
100
110
  {{/if}}
101
111
 
112
+ </details>
113
+
114
+ <details>
115
+ <summary>
102
116
  <h3><a id="sql-profile">SQL profile</a></h3>
117
+ </summary>
103
118
 
104
119
  When your code makes a SQL query, AppMap records the SQL query in detail. It even parses the queries
105
120
  to figure out which tables your app is using, and how it's using them.
@@ -142,9 +157,70 @@ and you don't see SQL queries here, you can add some test cases that interact wi
142
157
  the better the AppMap data will be for analyzing the SQL changes in each pull request.
143
158
  {{/if}}
144
159
 
160
+ </details>
161
+
162
+ <details>
163
+ <summary>
164
+ <h3><a id="large-appmaps">Large AppMaps</a></h3>
165
+ </summary>
166
+
167
+ Some tests can produce large AppMaps, because they exercise longer or highly repeated code paths.
168
+ AppMap runtime code review is optimized for AppMaps that
169
+ are less than 10 MB in size. You may want to consider disabling AppMap for tests that produce
170
+ large AppMaps, since they can slow down your CI job and they are hard to analyze. Also, note that
171
+ AppMaps greater than 50 MB in size will not be analyzed at all.
172
+
173
+ You can disable recording of a test case by adding a code comment or annotation to the test case file.
174
+ Learn how by visiting the
175
+ [reference documentation for `appmap-{{ appmapConfig.language }}`](https://appmap.io/docs/reference/appmap-{{ agent_reference_name appmapConfig.language }}.html).
176
+
177
+ {{#if (length largeAppMaps)}}
178
+ Here are the largest AppMaps that are greater than 1 MB:
179
+
180
+ | Size | Location | Test name | AppMap path |
181
+ | --- | --- | --- | --- |
182
+ {{#each largeAppMaps}}
183
+ | {{ format_mb size }} | {{ sourceLocation }} | {{ name }} | {{ @key}} |
184
+ {{/each}}
185
+ {{else}}
186
+ This project doesn't have any AppMaps that are greater than 1 MB in size.
187
+ {{/if}}
188
+
189
+ </details>
190
+
191
+ <details>
192
+ <summary>
193
+ <h3><a id="frequent-functions">Frequently recorded functions</a></h3>
194
+ </summary>
195
+
196
+ The AppMap configuration file _appmap.yml_ specifies which functions to record.
197
+ Some functions may be called very frequently, adding little to the understandability of the code
198
+ while adding a lot of overhead to the AppMap recording process.
199
+
200
+ Note that some functions are automatically added to the recording by
201
+ the AppMap agent. For example, the AppMap agent automatically records functions that are
202
+ relevant to detecting security flaws and performance problems. If you disable recording of these
203
+ functions, then some problems may become undetectable.
204
+
205
+ You can disable recording of a class or function by updating the _appmap.yml_ configuration file.
206
+ Learn how by visiting the
207
+ [reference documentation for `appmap-{{ appmapConfig.language }}`](https://appmap.io/docs/reference/appmap-{{ agent_reference_name appmapConfig.language }}.html).
208
+
209
+ {{#if (length frequentFunctions)}}
210
+ Here are some of the most frequently recorded functions in this project:
211
+
212
+ | Number of occurrences | Function name | Source location |
213
+ | --- | --- | --- |
214
+ {{#each frequentFunctions}}
215
+ | {{ count }} | {{ function_name @key }} | {{ location }} |
216
+ {{/each}}
217
+ {{else}}
218
+ This project doesn't have any recorded functions that occur more than 1000 times.
219
+ {{/if}}
220
+
221
+ </details>
222
+
145
223
  ### Learn more
146
224
 
147
225
  To learn more about AppMap, visit
148
226
  [appmap.io/docs](https://appmap.io/docs).
149
-
150
- </details>
@@ -1 +0,0 @@
1
- {"version":3,"file":"statsForDirectory.js","sourceRoot":"","sources":["../../../../src/cmds/stats/directory/statsForDirectory.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"statsForMap.js","sourceRoot":"","sources":["../../../../src/cmds/stats/directory/statsForMap.ts"],"names":[],"mappings":"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"}