@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.
- package/CHANGELOG.md +21 -0
- package/built/cmds/compare/reportChanges.js +4 -1
- package/built/cmds/compare/reportChanges.js.map +1 -1
- package/built/cmds/compare-report/ChangeReport.js +1 -3
- package/built/cmds/compare-report/ChangeReport.js.map +1 -1
- package/built/cmds/compare-report/MarkdownReport.js +3 -3
- package/built/cmds/compare-report/MarkdownReport.js.map +1 -1
- package/built/cmds/compare-report/ReportSection.js +12 -79
- package/built/cmds/compare-report/ReportSection.js.map +1 -1
- package/built/cmds/inventory/analyzers/collectFindings.js +26 -0
- package/built/cmds/inventory/analyzers/collectFindings.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectHTTPClientRequests.js +37 -0
- package/built/cmds/inventory/analyzers/collectHTTPClientRequests.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectHTTPServerRequests.js +21 -0
- package/built/cmds/inventory/analyzers/collectHTTPServerRequests.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectLabels.js +18 -0
- package/built/cmds/inventory/analyzers/collectLabels.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectMetadata.js +21 -0
- package/built/cmds/inventory/analyzers/collectMetadata.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectPackageDependencies.js +19 -0
- package/built/cmds/inventory/analyzers/collectPackageDependencies.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectRoutes.js +39 -0
- package/built/cmds/inventory/analyzers/collectRoutes.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectSQLQueries.js +20 -0
- package/built/cmds/inventory/analyzers/collectSQLQueries.js.map +1 -0
- package/built/cmds/inventory/analyzers/collectSQLTables.js +18 -0
- package/built/cmds/inventory/analyzers/collectSQLTables.js.map +1 -0
- package/built/cmds/inventory/buildReport.js +86 -0
- package/built/cmds/inventory/buildReport.js.map +1 -0
- package/built/cmds/inventory/inventory.js +3 -141
- package/built/cmds/inventory/inventory.js.map +1 -1
- package/built/cmds/inventory/readIndexFile.js +13 -0
- package/built/cmds/inventory/readIndexFile.js.map +1 -0
- package/built/cmds/inventory-report/Reporter.js +38 -0
- package/built/cmds/inventory-report/Reporter.js.map +1 -0
- package/built/cmds/inventory-report/SummaryReporter.js +97 -0
- package/built/cmds/inventory-report/SummaryReporter.js.map +1 -0
- package/built/cmds/inventory-report/WelcomeReporter.js +54 -0
- package/built/cmds/inventory-report/WelcomeReporter.js.map +1 -0
- package/built/cmds/inventory-report/inventoryReport.js +19 -10
- package/built/cmds/inventory-report/inventoryReport.js.map +1 -1
- package/built/diffArchive/ChangeAnalysis.js +3 -1
- package/built/diffArchive/ChangeAnalysis.js.map +1 -1
- package/built/html/appmap.js +98 -98
- package/built/html/appmap.js.map +3 -3
- package/built/html/sequenceDiagram.js +98 -98
- package/built/html/sequenceDiagram.js.map +3 -3
- package/built/report/ReportTemplate.js +17 -0
- package/built/report/ReportTemplate.js.map +1 -0
- package/built/report/helpers.js.map +1 -0
- package/built/report/loadReportTemplate.js +31 -0
- package/built/report/loadReportTemplate.js.map +1 -0
- package/built/report/urlHelpers.js +108 -0
- package/built/report/urlHelpers.js.map +1 -0
- package/package.json +1 -1
- package/resources/change-report/findings/details.hbs +4 -12
- package/resources/change-report/findings/inline/finding.hbs +47 -0
- package/resources/inlines/stack.hbs +6 -0
- package/resources/inventory-report/summary/summary.hbs +90 -0
- package/built/cmds/compare-report/helpers.js.map +0 -1
- package/built/cmds/inventory-report/MarkdownReport.js +0 -84
- package/built/cmds/inventory-report/MarkdownReport.js.map +0 -1
- /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":"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"}
|
package/package.json
CHANGED
|
@@ -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 »]({{
|
|
20
|
+
- [Full AppMap »]({{ appmap_url_with_finding 'head' appmap finding.hash_v2 }})
|
|
29
21
|
{{#if appmap.changed}}
|
|
30
22
|
- [Sequence diagram diff »]({{ 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
|
-
{{
|
|
45
|
-
{{
|
|
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 »]({{ appmap_url_with_finding 'head' appmap finding.hash_v2 }})
|
|
27
|
+
{{#if appmap.changed}}
|
|
28
|
+
- [Sequence diagram diff »]({{ 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,90 @@
|
|
|
1
|
+
{{#*inline "finding"}}
|
|
2
|
+
|
|
3
|
+
{{~#if (eq finding.impactDomain 'Performance') }}
|
|
4
|
+
🐌
|
|
5
|
+
{{~else~}}
|
|
6
|
+
{{~#if (eq finding.impactDomain 'Security') }}
|
|
7
|
+
🔒
|
|
8
|
+
{{~else}}
|
|
9
|
+
🚨
|
|
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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"}
|
|
File without changes
|