@appland/appmap 3.104.0 → 3.106.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 (63) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/built/cmds/compare/reportChanges.js +4 -1
  3. package/built/cmds/compare/reportChanges.js.map +1 -1
  4. package/built/cmds/compare-report/ChangeReport.js +1 -3
  5. package/built/cmds/compare-report/ChangeReport.js.map +1 -1
  6. package/built/cmds/compare-report/MarkdownReport.js +3 -3
  7. package/built/cmds/compare-report/MarkdownReport.js.map +1 -1
  8. package/built/cmds/compare-report/ReportSection.js +12 -79
  9. package/built/cmds/compare-report/ReportSection.js.map +1 -1
  10. package/built/cmds/inventory/analyzers/collectFindings.js +26 -0
  11. package/built/cmds/inventory/analyzers/collectFindings.js.map +1 -0
  12. package/built/cmds/inventory/analyzers/collectHTTPClientRequests.js +37 -0
  13. package/built/cmds/inventory/analyzers/collectHTTPClientRequests.js.map +1 -0
  14. package/built/cmds/inventory/analyzers/collectHTTPServerRequests.js +21 -0
  15. package/built/cmds/inventory/analyzers/collectHTTPServerRequests.js.map +1 -0
  16. package/built/cmds/inventory/analyzers/collectLabels.js +18 -0
  17. package/built/cmds/inventory/analyzers/collectLabels.js.map +1 -0
  18. package/built/cmds/inventory/analyzers/collectMetadata.js +21 -0
  19. package/built/cmds/inventory/analyzers/collectMetadata.js.map +1 -0
  20. package/built/cmds/inventory/analyzers/collectPackageDependencies.js +19 -0
  21. package/built/cmds/inventory/analyzers/collectPackageDependencies.js.map +1 -0
  22. package/built/cmds/inventory/analyzers/collectRoutes.js +39 -0
  23. package/built/cmds/inventory/analyzers/collectRoutes.js.map +1 -0
  24. package/built/cmds/inventory/analyzers/collectSQLQueries.js +20 -0
  25. package/built/cmds/inventory/analyzers/collectSQLQueries.js.map +1 -0
  26. package/built/cmds/inventory/analyzers/collectSQLTables.js +18 -0
  27. package/built/cmds/inventory/analyzers/collectSQLTables.js.map +1 -0
  28. package/built/cmds/inventory/buildReport.js +86 -0
  29. package/built/cmds/inventory/buildReport.js.map +1 -0
  30. package/built/cmds/inventory/inventory.js +3 -141
  31. package/built/cmds/inventory/inventory.js.map +1 -1
  32. package/built/cmds/inventory/readIndexFile.js +13 -0
  33. package/built/cmds/inventory/readIndexFile.js.map +1 -0
  34. package/built/cmds/inventory-report/Reporter.js +38 -0
  35. package/built/cmds/inventory-report/Reporter.js.map +1 -0
  36. package/built/cmds/inventory-report/SummaryReporter.js +97 -0
  37. package/built/cmds/inventory-report/SummaryReporter.js.map +1 -0
  38. package/built/cmds/inventory-report/WelcomeReporter.js +54 -0
  39. package/built/cmds/inventory-report/WelcomeReporter.js.map +1 -0
  40. package/built/cmds/inventory-report/inventoryReport.js +19 -10
  41. package/built/cmds/inventory-report/inventoryReport.js.map +1 -1
  42. package/built/diffArchive/ChangeAnalysis.js +3 -1
  43. package/built/diffArchive/ChangeAnalysis.js.map +1 -1
  44. package/built/html/appmap.js +98 -98
  45. package/built/html/appmap.js.map +3 -3
  46. package/built/html/sequenceDiagram.js +98 -98
  47. package/built/html/sequenceDiagram.js.map +3 -3
  48. package/built/report/ReportTemplate.js +17 -0
  49. package/built/report/ReportTemplate.js.map +1 -0
  50. package/built/report/helpers.js.map +1 -0
  51. package/built/report/loadReportTemplate.js +31 -0
  52. package/built/report/loadReportTemplate.js.map +1 -0
  53. package/built/report/urlHelpers.js +108 -0
  54. package/built/report/urlHelpers.js.map +1 -0
  55. package/package.json +1 -1
  56. package/resources/change-report/findings/details.hbs +4 -12
  57. package/resources/change-report/findings/inline/finding.hbs +47 -0
  58. package/resources/inlines/stack.hbs +6 -0
  59. package/resources/inventory-report/summary/summary.hbs +90 -0
  60. package/built/cmds/compare-report/helpers.js.map +0 -1
  61. package/built/cmds/inventory-report/MarkdownReport.js +0 -84
  62. package/built/cmds/inventory-report/MarkdownReport.js.map +0 -1
  63. /package/built/{cmds/compare-report → report}/helpers.js +0 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReportTemplate = void 0;
4
+ class ReportTemplate {
5
+ constructor(template, helpers) {
6
+ this.template = template;
7
+ this.helpers = helpers;
8
+ }
9
+ generateMarkdown(data) {
10
+ return this.template(data, {
11
+ helpers: this.helpers,
12
+ allowProtoPropertiesByDefault: true,
13
+ });
14
+ }
15
+ }
16
+ exports.ReportTemplate = ReportTemplate;
17
+ //# sourceMappingURL=ReportTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportTemplate.js","sourceRoot":"","sources":["../../src/report/ReportTemplate.ts"],"names":[],"mappings":";;;AAAA,MAAa,cAAc;IACzB,YACS,QAAoC,EACpC,OAAiC;QADjC,aAAQ,GAAR,QAAQ,CAA4B;QACpC,YAAO,GAAP,OAAO,CAA0B;IACvC,CAAC;IAEJ,gBAAgB,CAAC,IAAS;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,6BAA6B,EAAE,IAAI;SACpC,CAAC,CAAC;IACL,CAAC;CACF;AAZD,wCAYC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/report/helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
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
+ exports.TemplateInlinesDirectory = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const fs_1 = require("fs");
9
+ const promises_1 = require("fs/promises");
10
+ const path_1 = require("path");
11
+ const handlebars_1 = __importDefault(require("handlebars"));
12
+ exports.TemplateInlinesDirectory = [
13
+ '../../resources/inlines',
14
+ '../../../resources/inlines', // In development
15
+ ]
16
+ .map((dirName) => (0, path_1.join)(__dirname, dirName))
17
+ .find((dirName) => (0, fs_1.existsSync)(dirName));
18
+ (0, assert_1.default)(exports.TemplateInlinesDirectory, "Report template directory 'inlines' not found");
19
+ async function loadReportTemplate(templateFile) {
20
+ (0, assert_1.default)(exports.TemplateInlinesDirectory);
21
+ const inlineFiles = await (0, promises_1.readdir)(exports.TemplateInlinesDirectory);
22
+ const inlines = new Array();
23
+ for (const inlineFile of inlineFiles) {
24
+ const inline = await (0, promises_1.readFile)((0, path_1.join)(exports.TemplateInlinesDirectory, inlineFile), 'utf8');
25
+ inlines.push(inline);
26
+ }
27
+ const mainTemplate = await (0, promises_1.readFile)(templateFile, 'utf8');
28
+ return handlebars_1.default.compile([...inlines, mainTemplate].join('\n'));
29
+ }
30
+ exports.default = loadReportTemplate;
31
+ //# sourceMappingURL=loadReportTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadReportTemplate.js","sourceRoot":"","sources":["../../src/report/loadReportTemplate.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,2BAAgC;AAChC,0CAAgD;AAChD,+BAA4B;AAC5B,4DAAoC;AAEvB,QAAA,wBAAwB,GAAG;IACtC,yBAAyB;IACzB,4BAA4B,EAAE,iBAAiB;CAChD;KACE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KAC1C,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC,CAAC,CAAC;AAE1C,IAAA,gBAAM,EAAC,gCAAwB,EAAE,+CAA+C,CAAC,CAAC;AAEnE,KAAK,UAAU,kBAAkB,CAC9C,YAAoB;IAEpB,IAAA,gBAAM,EAAC,gCAAwB,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAO,EAAC,gCAAwB,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;IACpC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAA,WAAI,EAAC,gCAAwB,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtB;IACD,MAAM,YAAY,GAAG,MAAM,IAAA,mBAAQ,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,oBAAU,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAZD,qCAYC"}
@@ -0,0 +1,108 @@
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 path_1 = require("path");
7
+ const handlebars_1 = require("handlebars");
8
+ const models_1 = require("@appland/models");
9
+ const assert_1 = __importDefault(require("assert"));
10
+ function buildUrlString(appmapURL, searchParams) {
11
+ const url = new URL(appmapURL);
12
+ Object.keys(searchParams).forEach((key) => url.searchParams.append(key, searchParams[key]));
13
+ return url.toString();
14
+ }
15
+ function urlHelpers(options) {
16
+ let { baseDir } = options;
17
+ if (!baseDir)
18
+ baseDir = process.cwd();
19
+ const source_url = (location, fileLinenoSeparator = '#L') => {
20
+ if (typeof fileLinenoSeparator === 'object') {
21
+ fileLinenoSeparator = '#L';
22
+ }
23
+ const [path, lineno] = location.split(':');
24
+ if ((0, path_1.isAbsolute)(path))
25
+ return;
26
+ if (path.startsWith('vendor/') || path.startsWith('node_modules/'))
27
+ return;
28
+ if (options.sourceURL) {
29
+ const url = new URL(options.sourceURL.toString());
30
+ if (url.protocol === 'file:') {
31
+ (0, assert_1.default)(baseDir);
32
+ const sourcePath = (0, path_1.relative)(baseDir, (0, path_1.join)(url.pathname, path));
33
+ return new handlebars_1.SafeString([sourcePath, lineno].filter(Boolean).join(fileLinenoSeparator));
34
+ }
35
+ else {
36
+ url.pathname = (0, path_1.join)(url.pathname, path);
37
+ if (lineno)
38
+ url.hash = `L${lineno}`;
39
+ return new handlebars_1.SafeString(url.toString());
40
+ }
41
+ }
42
+ else {
43
+ return new handlebars_1.SafeString(location);
44
+ }
45
+ };
46
+ const appmap_url = (revisionName, appmap) => {
47
+ let { id } = appmap;
48
+ const path = [revisionName, `${id}.appmap.json`].join('/');
49
+ let url = path;
50
+ if (options.appmapURL)
51
+ url = buildUrlString(options.appmapURL, { path });
52
+ return new handlebars_1.SafeString(url);
53
+ };
54
+ const appmap_diff_url = (appmap) => {
55
+ const path = ['diff', `${appmap.id}.diff.sequence.json`].join('/');
56
+ let url = path;
57
+ if (options.appmapURL)
58
+ url = buildUrlString(options.appmapURL, { path });
59
+ return new handlebars_1.SafeString(url);
60
+ };
61
+ const appmap_url_with_finding = (revisionName, appmap, findingHash) => {
62
+ let { id } = appmap;
63
+ const path = [revisionName, `${id}.appmap.json`].join('/');
64
+ let url = path;
65
+ if (options.appmapURL) {
66
+ const searchParams = { path };
67
+ try {
68
+ const stateObject = { selectedObject: `analysis-finding:${findingHash}` };
69
+ const state = (0, models_1.base64UrlEncode)(JSON.stringify(stateObject));
70
+ searchParams.state = state;
71
+ }
72
+ catch (e) {
73
+ // do not add state
74
+ }
75
+ url = buildUrlString(options.appmapURL, searchParams);
76
+ }
77
+ return new handlebars_1.SafeString(url);
78
+ };
79
+ const source_link = (location, fileLinenoSeparator = '#L') => {
80
+ const label = location;
81
+ const url = source_url(location, fileLinenoSeparator);
82
+ return url ? new handlebars_1.SafeString(`[\`${label}\`](${url})`) : new handlebars_1.SafeString(`\`${label}\``);
83
+ };
84
+ const first_source_link = (locations, fileLinenoSeparator = '#L') => {
85
+ const location = locations.find((loc) => source_url(loc, fileLinenoSeparator));
86
+ if (!location)
87
+ return;
88
+ return source_link(location, fileLinenoSeparator);
89
+ };
90
+ const source_link_html = (location, fileLinenoSeparator = '#L') => {
91
+ const label = location;
92
+ const url = source_url(location, fileLinenoSeparator);
93
+ return url
94
+ ? new handlebars_1.SafeString(`<a href="${url}"><code>${label}</code></a>`)
95
+ : new handlebars_1.SafeString(label);
96
+ };
97
+ return {
98
+ appmap_url,
99
+ appmap_diff_url,
100
+ appmap_url_with_finding,
101
+ first_source_link,
102
+ source_link,
103
+ source_link_html,
104
+ source_url,
105
+ };
106
+ }
107
+ exports.default = urlHelpers;
108
+ //# sourceMappingURL=urlHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urlHelpers.js","sourceRoot":"","sources":["../../src/report/urlHelpers.ts"],"names":[],"mappings":";;;;;AAAA,+BAAkD;AAGlD,2CAAwC;AACxC,4CAAkD;AAClD,oDAA4B;AAQ5B,SAAS,cAAc,CAAC,SAAiB,EAAE,YAAoC;IAC7E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,SAAwB,UAAU,CAAC,OAAmB;IACpD,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC1B,IAAI,CAAC,OAAO;QAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,mBAAmB,GAAG,IAAI,EAAE,EAAE;QAClE,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;YAC3C,mBAAmB,GAAG,IAAI,CAAC;SAC5B;QAED,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,IAAA,iBAAU,EAAC,IAAI,CAAC;YAAE,OAAO;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;YAAE,OAAO;QAE3E,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAClD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC5B,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC;gBAChB,MAAM,UAAU,GAAG,IAAA,eAAQ,EAAC,OAAO,EAAE,IAAA,WAAI,EAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/D,OAAO,IAAI,uBAAU,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;aACvF;iBAAM;gBACL,GAAG,CAAC,QAAQ,GAAG,IAAA,WAAI,EAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACxC,IAAI,MAAM;oBAAE,GAAG,CAAC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;gBACpC,OAAO,IAAI,uBAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvC;SACF;aAAM;YACL,OAAO,IAAI,uBAAU,CAAC,QAAQ,CAAC,CAAC;SACjC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,YAA0B,EAAE,MAAc,EAAc,EAAE;QAC5E,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,OAAO,CAAC,SAAS;YAAE,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,uBAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,CAAC,MAAc,EAAc,EAAE;QACrD,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnE,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,OAAO,CAAC,SAAS;YAAE,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,uBAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAC9B,YAA0B,EAC1B,MAAc,EACd,WAAmB,EACnB,EAAE;QACF,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,MAAM,YAAY,GAAG,EAAE,IAAI,EAA4B,CAAC;YACxD,IAAI;gBACF,MAAM,WAAW,GAAG,EAAE,cAAc,EAAE,oBAAoB,WAAW,EAAE,EAAE,CAAC;gBAC1E,MAAM,KAAK,GAAG,IAAA,wBAAe,EAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC3D,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;aAC5B;YAAC,OAAO,CAAC,EAAE;gBACV,mBAAmB;aACpB;YACD,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;SACvD;QACD,OAAO,IAAI,uBAAU,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,mBAAmB,GAAG,IAAI,EAAc,EAAE;QAC/E,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACtD,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,uBAAU,CAAC,MAAM,KAAK,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,uBAAU,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACzF,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,SAAmB,EACnB,mBAAmB,GAAG,IAAI,EACF,EAAE;QAC1B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,OAAO,WAAW,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IACpD,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAE,mBAAmB,GAAG,IAAI,EAAc,EAAE;QACpF,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACtD,OAAO,GAAG;YACR,CAAC,CAAC,IAAI,uBAAU,CAAC,YAAY,GAAG,WAAW,KAAK,aAAa,CAAC;YAC9D,CAAC,CAAC,IAAI,uBAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,UAAU;QACV,eAAe;QACf,uBAAuB;QACvB,iBAAiB;QACjB,WAAW;QACX,gBAAgB;QAChB,UAAU;KACX,CAAC;AACJ,CAAC;AAvGD,6BAuGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.104.0",
3
+ "version": "3.106.0",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "engines": {
@@ -1,11 +1,3 @@
1
- {{#*inline "finding-stack" }}
2
- {{#with stack }}
3
- {{#each this }}
4
- - {{ source_link this }}
5
- {{/each}}
6
- {{/with}}
7
-
8
- {{/inline}}
9
1
  {{#*inline "finding"}}
10
2
 
11
3
  <details>
@@ -25,7 +17,7 @@
25
17
 
26
18
  ##### View in AppMap
27
19
 
28
- - [Full AppMap &raquo;]({{ appmap_url 'head' appmap }})
20
+ - [Full AppMap &raquo;]({{ appmap_url_with_finding 'head' appmap finding.hash_v2 }})
29
21
  {{#if appmap.changed}}
30
22
  - [Sequence diagram diff &raquo;]({{ appmap_diff_url appmap }})
31
23
  {{/if}}
@@ -39,11 +31,11 @@
39
31
  ```
40
32
  {{/if}}
41
33
 
34
+ {{#if finding.stack }}
42
35
  ##### Stack trace
43
36
 
44
- {{#with finding}}
45
- {{> finding-stack}}
46
- {{/with}}
37
+ {{> stack finding.stack}}
38
+ {{/if}}
47
39
 
48
40
  </details>
49
41
  {{/inline}}
@@ -0,0 +1,47 @@
1
+ {{#*inline "stack" }}
2
+ {{#each this }}
3
+ - {{ source_link this }}
4
+ {{/each}}
5
+
6
+ {{/inline}}
7
+ {{#*inline "finding"}}
8
+
9
+ <details>
10
+ <summary>
11
+ {{ finding.ruleTitle }}
12
+ </summary>
13
+
14
+
15
+ ##### Description
16
+
17
+ > {{ finding.message }}
18
+
19
+ | Field | Value |
20
+ | --- | --- |
21
+ | Rule | [{{ finding.ruleId }}](https://appmap.io/docs/analysis/rules-reference.html#{{finding.ruleId }}) |
22
+ | Impact domain | {{ finding.impactDomain }} |
23
+
24
+ ##### View in AppMap
25
+
26
+ - [Full AppMap &raquo;]({{ appmap_url_with_finding 'head' appmap finding.hash_v2 }})
27
+ {{#if appmap.changed}}
28
+ - [Sequence diagram diff &raquo;]({{ appmap_diff_url appmap }})
29
+ {{/if}}
30
+
31
+ {{#if appmap.sourceDiff}}
32
+
33
+ ##### Related code changes
34
+
35
+ ```diff
36
+ {{{ appmap.sourceDiff }}}
37
+ ```
38
+ {{/if}}
39
+
40
+ {{#if finding.stack }}
41
+ ##### Stack trace
42
+
43
+ {{> stack finding.stack}}
44
+ {{/if}}
45
+
46
+ </details>
47
+ {{/inline}}
@@ -0,0 +1,6 @@
1
+ {{#*inline "stack" }}
2
+ {{#each this }}
3
+ - {{ source_link this }}
4
+ {{/each}}
5
+
6
+ {{/inline}}
@@ -0,0 +1,90 @@
1
+ {{#*inline "finding"}}
2
+
3
+ {{~#if (eq finding.impactDomain 'Performance') }}
4
+ 🐌&nbsp;
5
+ {{~else~}}
6
+ {{~#if (eq finding.impactDomain 'Security') }}
7
+ 🔒&nbsp;
8
+ {{~else}}
9
+ 🚨&nbsp;
10
+ {{~/if}}
11
+ {{~/if~}}
12
+ {{ finding.ruleTitle }}
13
+ {{~#if (first_source_link finding.stack) }}
14
+ at {{ first_source_link finding.stack }}
15
+ {{~/if}}
16
+
17
+
18
+ _{{ time_ago finding.eventsModifiedDate finding.scopeModifiedDate }} old_
19
+
20
+ <details>
21
+ <summary>
22
+ View details
23
+ </summary>
24
+
25
+ ##### Description
26
+
27
+ > {{ finding.message }}
28
+
29
+ | Field | Value |
30
+ | --- | --- |
31
+ | Rule | [{{ finding.ruleId }}](https://appmap.io/docs/analysis/rules-reference.html#{{finding.ruleId }}) |
32
+ | Impact domain | {{ finding.impactDomain }} |
33
+
34
+ {{#if finding.stack }}
35
+ ##### Stack trace
36
+
37
+ {{> stack finding.stack}}
38
+ {{/if}}
39
+
40
+ </details>
41
+ {{/inline}}
42
+ ## AppMap project summary
43
+
44
+ AppMap runtime code review scans the AppMaps for security flaws, performance
45
+ problems, and code anti-patterns. When you use AppMap runtime code review on a pull request,
46
+ only the new problems and resolved problems are shown in the report.
47
+
48
+ {{#if findings.length}}
49
+ ### Overview of problems and flaws
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:
53
+
54
+ ```mermaid
55
+ pie showData
56
+ {{#each findingCountByImpactDomain}}
57
+ "{{@key}}" : {{@this}}
58
+ {{/each}}
59
+ ```
60
+
61
+ ### Recently introduced code flaws and problems
62
+
63
+ A sample of all the problems that were found in the AppMaps. Problems are listed in order of
64
+ when they were most likely introduced, with most recent first.
65
+
66
+ {{#each findings }}
67
+ {{#unless @first }}
68
+
69
+ <hr>
70
+
71
+ {{/unless}}
72
+ {{> finding}}
73
+ {{/each}}
74
+ {{#if (gt findingCount findings.length) }}
75
+ The number of displayed problems is limited to {{ summaryLimit }}, because GitHub pull request
76
+ comments are limited to 64kb in length.
77
+ {{/if}}
78
+ {{else}}
79
+ AppMap didn't detect any flaws or problems in the runtime code review of your project.
80
+
81
+ Note that AppMap runtime code review is optimized for projects that use SQL databases,
82
+ serve HTTP requests, and make HTTP client requests to other services.
83
+
84
+ If your project doesn't do any of these things, then AppMap runtime code review will be primarily
85
+ useful for:
86
+
87
+ * Fixing broken test cases.
88
+ * Determining whether a pull request has new test cases, and if so, what they do.
89
+ * Reviewing AppMaps of new and changed test cases
90
+ {{/if}}
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/cmds/compare-report/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,84 +0,0 @@
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
- exports.ReportTemplate = exports.WelcomeReport = void 0;
7
- const handlebars_1 = __importDefault(require("handlebars"));
8
- const path_1 = require("path");
9
- const promises_1 = require("fs/promises");
10
- const assert_1 = __importDefault(require("assert"));
11
- const fs_1 = require("fs");
12
- const helpers_1 = __importDefault(require("../compare-report/helpers"));
13
- const TemplateDirectory = [
14
- '../../../resources/inventory-report',
15
- '../../../../resources/inventory-report', // In development
16
- ]
17
- .map((dirName) => (0, path_1.join)(__dirname, dirName))
18
- .find((dirName) => (0, fs_1.existsSync)(dirName));
19
- (0, assert_1.default)(TemplateDirectory, "Report template directory 'inventory-report' not found");
20
- var TemplateName;
21
- (function (TemplateName) {
22
- TemplateName["Welcome"] = "welcome";
23
- })(TemplateName || (TemplateName = {}));
24
- async function generateReport(templateName, report, appmapConfig) {
25
- let reportTemplate;
26
- switch (templateName) {
27
- case TemplateName.Welcome:
28
- reportTemplate = new WelcomeReport();
29
- break;
30
- }
31
- return reportTemplate.generateReport(report, appmapConfig);
32
- }
33
- exports.default = generateReport;
34
- class WelcomeReport {
35
- async generateReport(reportData, appmapConfig) {
36
- (0, assert_1.default)(TemplateDirectory);
37
- const templateFile = (0, path_1.join)(TemplateDirectory, 'welcome', 'welcome.hbs');
38
- const template = await ReportTemplate.build(templateFile);
39
- const data = Object.assign(Object.assign({}, reportData), { appmapConfig });
40
- return template.generateMarkdown(data);
41
- }
42
- }
43
- exports.WelcomeReport = WelcomeReport;
44
- class ReportTemplate {
45
- constructor(template) {
46
- this.template = template;
47
- }
48
- generateMarkdown(data) {
49
- return this.template(data, {
50
- helpers: ReportTemplate.helpers(),
51
- allowProtoPropertiesByDefault: true,
52
- });
53
- }
54
- static helpers() {
55
- const select_values_by_key_range = (data, keyMin, keyMax) => {
56
- if (typeof keyMax === 'object')
57
- keyMax = undefined;
58
- const result = Object.keys(data)
59
- .map((k) => parseInt(k, 10))
60
- .filter((k) => k >= keyMin && (keyMax === undefined || k < keyMax))
61
- .map((k) => data[k]);
62
- return result;
63
- };
64
- const sum_values_by_key_range = (data, keyMin, keyMax) => {
65
- const values = select_values_by_key_range(data, keyMin, keyMax);
66
- return values.reduce((a, b) => a + (b || 0), 0);
67
- };
68
- const packages_matching_configuration = (packages, configuredPackages) => {
69
- const normalizePackage = (pkg) => pkg.replace(/\//g, '.').toLowerCase();
70
- return packages.filter((pkg) => {
71
- return configuredPackages.find((configuredPackage) => normalizePackage(pkg).startsWith(normalizePackage(configuredPackage.path)));
72
- });
73
- };
74
- return Object.assign({ packages_matching_configuration,
75
- select_values_by_key_range,
76
- sum_values_by_key_range }, helpers_1.default);
77
- }
78
- static async build(templateFile) {
79
- const template = handlebars_1.default.compile(await (0, promises_1.readFile)(templateFile, 'utf8'));
80
- return new ReportTemplate(template);
81
- }
82
- }
83
- exports.ReportTemplate = ReportTemplate;
84
- //# sourceMappingURL=MarkdownReport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownReport.js","sourceRoot":"","sources":["../../../src/cmds/inventory-report/MarkdownReport.ts"],"names":[],"mappings":"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"}