@appland/appmap 3.96.2 → 3.97.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 (37) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/built/cmds/archive/analyzeTask.js +0 -7
  3. package/built/cmds/archive/analyzeTask.js.map +1 -1
  4. package/built/cmds/compare/ChangeReporter.js +3 -3
  5. package/built/cmds/compare/ChangeReporter.js.map +1 -1
  6. package/built/cmds/compare/loadFindings.js +1 -1
  7. package/built/cmds/compare/loadFindings.js.map +1 -1
  8. package/built/cmds/compare-report/ChangeReport.js +199 -0
  9. package/built/cmds/compare-report/ChangeReport.js.map +1 -0
  10. package/built/cmds/compare-report/MarkdownReport.js +52 -200
  11. package/built/cmds/compare-report/MarkdownReport.js.map +1 -1
  12. package/built/cmds/compare-report/Preprocessor.js +115 -0
  13. package/built/cmds/compare-report/Preprocessor.js.map +1 -0
  14. package/built/cmds/compare-report/ReportSection.js +167 -0
  15. package/built/cmds/compare-report/ReportSection.js.map +1 -0
  16. package/built/cmds/compare-report/compareReport.js +1 -2
  17. package/built/cmds/compare-report/compareReport.js.map +1 -1
  18. package/built/html/appmap.js +90 -90
  19. package/built/html/appmap.js.map +3 -3
  20. package/built/html/sequenceDiagram.js +91 -91
  21. package/built/html/sequenceDiagram.js.map +3 -3
  22. package/built/lib/processAppMapDir.js +0 -2
  23. package/built/lib/processAppMapDir.js.map +1 -1
  24. package/package.json +2 -2
  25. package/resources/change-report/changed-appmaps/details.hbs +25 -0
  26. package/resources/change-report/changed-appmaps/heading.hbs +7 -0
  27. package/resources/change-report/failed-tests/details.hbs +57 -0
  28. package/resources/change-report/failed-tests/heading.hbs +1 -0
  29. package/resources/change-report/findings/details.hbs +80 -0
  30. package/resources/change-report/findings/heading.hbs +13 -0
  31. package/resources/change-report/new-appmaps/details.hbs +11 -0
  32. package/resources/change-report/new-appmaps/heading.hbs +3 -0
  33. package/resources/change-report/openapi-diff/details.hbs +55 -0
  34. package/resources/change-report/openapi-diff/heading.hbs +8 -0
  35. package/built/lib/findings.js +0 -6
  36. package/built/lib/findings.js.map +0 -1
  37. package/resources/change-report.hbs +0 -279
@@ -30,8 +30,6 @@ async function processAppMapDir(name, pool, taskFunction, appmapDir, appmapFiles
30
30
  oversized.add(file);
31
31
  }
32
32
  else if (result.error) {
33
- // warn(`${name} failed to process ${file}: ${(result.error as Error).message}`);
34
- // TODO: Change ^ to this:
35
33
  (0, console_1.warn)(`${name} failed to process ${file}: ${result.error}`);
36
34
  errors.push(result.error);
37
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"processAppMapDir.js","sourceRoot":"","sources":["../../src/lib/processAppMapDir.ts"],"names":[],"mappings":";;;;;AAAA,qCAA+B;AAC/B,oCAAqC;AAErC,oDAA4B;AAwBb,KAAK,UAAU,gBAAgB,CAC5C,IAAY,EACZ,IAAgB,EAChB,YAA6B,EAC7B,SAAkB,EAClB,WAAsB,EACtB,aAAgD;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,IAAI,KAAe,CAAC;IACpB,IAAI,WAAW,EAAE;QACf,KAAK,GAAG,WAAW,CAAC;KACrB;SAAM;QACL,IAAA,gBAAM,EAAC,SAAS,EAAE,6DAA6D,CAAC,CAAC;QACjF,KAAK,GAAG,MAAM,IAAA,iBAAS,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;KACpD;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,KAAK,EAAS,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CACP,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAiB,EAAE,MAAqB,EAAE,EAAE;QAClF,IAAI,GAAG,EAAE;YACP,IAAA,cAAI,EAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAChC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;aAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC3B,IAAA,cAAI,EAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;YAC1C,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YACvB,iFAAiF;YACjF,0BAA0B;YAC1B,IAAA,cAAI,EAAC,GAAG,IAAI,sBAAsB,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAE3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,aAAa,EAAE;gBACjB,IAAI;oBACF,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBACnC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAA,cAAI,EACF,GAAG,IAAI,2CAA2C,IAAI,KACnD,GAAa,CAAC,OACjB,EAAE,CACH,CAAC;iBACH;aACF;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CACH,CACJ,CACF,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AA5DD,mCA4DC"}
1
+ {"version":3,"file":"processAppMapDir.js","sourceRoot":"","sources":["../../src/lib/processAppMapDir.ts"],"names":[],"mappings":";;;;;AAAA,qCAA+B;AAC/B,oCAAqC;AAErC,oDAA4B;AAwBb,KAAK,UAAU,gBAAgB,CAC5C,IAAY,EACZ,IAAgB,EAChB,YAA6B,EAC7B,SAAkB,EAClB,WAAsB,EACtB,aAAgD;IAEhD,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,IAAI,KAAe,CAAC;IACpB,IAAI,WAAW,EAAE;QACf,KAAK,GAAG,WAAW,CAAC;KACrB;SAAM;QACL,IAAA,gBAAM,EAAC,SAAS,EAAE,6DAA6D,CAAC,CAAC;QACjF,KAAK,GAAG,MAAM,IAAA,iBAAS,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC;KACpD;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,KAAK,EAAS,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,KAAK,EAAS,CAAC;IAClC,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,GAAG,CACP,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAC5B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAiB,EAAE,MAAqB,EAAE,EAAE;QAClF,IAAI,GAAG,EAAE;YACP,IAAA,cAAI,EAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;YAChC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;aAAM,IAAI,MAAM,CAAC,SAAS,EAAE;YAC3B,IAAA,cAAI,EAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;YAC1C,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YACvB,IAAA,cAAI,EAAC,GAAG,IAAI,sBAAsB,IAAI,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,aAAa,EAAE;gBACjB,IAAI;oBACF,MAAM,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;iBACnC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAA,cAAI,EACF,GAAG,IAAI,2CAA2C,IAAI,KACnD,GAAa,CAAC,OACjB,EAAE,CACH,CAAC;iBACH;aACF;SACF;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CACH,CACJ,CACF,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AAC5E,CAAC;AAzDD,mCAyDC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appland/appmap",
3
- "version": "3.96.2",
3
+ "version": "3.97.0",
4
4
  "description": "",
5
5
  "bin": "built/cli.js",
6
6
  "engines": {
@@ -80,7 +80,7 @@
80
80
  ],
81
81
  "dependencies": {
82
82
  "@appland/client": "^1.8.0",
83
- "@appland/components": "^2",
83
+ "@appland/components": "^3",
84
84
  "@appland/diagrams": "^1.7.0",
85
85
  "@appland/models": "^2.6.3",
86
86
  "@appland/openapi": "^1.4.3",
@@ -0,0 +1,25 @@
1
+ {{#if (length changedAppMaps) }}
2
+ <h2 id="changed-appmaps">🔀 Changed AppMaps</h2>
3
+
4
+ <details>
5
+
6
+ <summary>
7
+ Review changes
8
+ </summary>
9
+
10
+ {{#each changedAppMaps}}
11
+
12
+ ```
13
+ {{{@key}}}
14
+ ```
15
+
16
+ {{#each this}}
17
+ - [{{name}}]({{ appmap_diff_url . }})
18
+ {{/each}}
19
+ {{/each}}
20
+
21
+ {{#if pruned}}
22
+ Because there are so many changed AppMaps, some of them are not listed in this report.
23
+ {{/if}}
24
+ </details>
25
+ {{/if}}
@@ -0,0 +1,7 @@
1
+ | [Changed AppMaps](#changed-appmaps) |
2
+ {{~#unless (length changedAppMaps) }}
3
+ :white_check_mark: No changes
4
+ {{~else}}
5
+ :twisted_rightwards_arrows: {{length changedAppMaps}} changes
6
+ {{~/unless}}
7
+ |
@@ -0,0 +1,57 @@
1
+ {{#if testFailures.length}}
2
+ <h2 id="failed-tests">⚠️ Failed tests</h2>
3
+
4
+ {{#each testFailures}}
5
+ <details>
6
+ <summary>
7
+ {{ testLocation }}
8
+ </summary>
9
+
10
+ <p/>
11
+
12
+ <!-- testLocation -->
13
+ [{{testLocation}}]({{ source_url testLocation }}) failed with error:
14
+
15
+ {{#if failureMessage}}
16
+ <!-- failureMessage -->
17
+ ```
18
+ {{{failureMessage}}}
19
+ ```
20
+ {{/if}}
21
+
22
+ <!-- failureLocation -->
23
+ {{#if failureLocation}}
24
+ The error occurred at [{{failureLocation}}]({{ source_url failureLocation }}):
25
+ {{/if}}
26
+
27
+ {{#if testSnippet}}
28
+ {{#with testSnippet}}
29
+ <!-- testSnippet -->
30
+ ```{{language}}
31
+ {{{codeFragment}}}
32
+ ```
33
+ {{/with}}
34
+ {{/if}}
35
+
36
+ <!-- sourceDiff -->
37
+ {{#if appmap.sourceDiff }}
38
+ ##### Related code changes
39
+
40
+ ```diff
41
+ {{{appmap.sourceDiff}}}
42
+ ```
43
+ {{/if}}
44
+
45
+ [View AppMap of this test &raquo;]({{ appmap_url 'head' appmap }})
46
+ {{#if appmap.changed}}
47
+ [View sequence diagram diff of this test &raquo;]({{ appmap_diff_url appmap }})
48
+ {{/if}}
49
+
50
+ <hr/>
51
+ </details>
52
+
53
+ {{/each}}
54
+ {{#if pruned}}
55
+ Because there are so many failed tests, some of them are not listed in this report.
56
+ {{/if}}
57
+ {{/if}}
@@ -0,0 +1 @@
1
+ | [Failed tests](#failed-tests) | {{#if testFailures.length}}:warning: {{testFailures.length}} failed{{else}}:white_check_mark: All tests passed{{/if}} |
@@ -0,0 +1,80 @@
1
+ {{#*inline "finding-stack" }}
2
+ {{#with stack }}
3
+ {{#each this }}
4
+ {{#if (source_url this)}}
5
+ - [{{this}}]({{ source_url this }})
6
+ {{else}}
7
+ - {{ this }}
8
+ {{/if}}
9
+ {{/each}}
10
+ {{/with}}
11
+
12
+ {{/inline}}
13
+ {{#*inline "finding"}}
14
+
15
+ <details>
16
+ <summary>
17
+ {{ finding.ruleTitle }}
18
+ </summary>
19
+
20
+
21
+ ##### Description
22
+
23
+ > {{ finding.message }}
24
+
25
+ | Field | Value |
26
+ | --- | --- |
27
+ | Rule | [{{ finding.ruleId }}](https://appmap.io/docs/analysis/rules-reference.html#{{finding.ruleId }}) |
28
+ | Impact domain | {{ finding.impactDomain }} |
29
+
30
+ ##### View in AppMap
31
+
32
+ - [Full AppMap &raquo;]({{ appmap_url 'head' appmap }})
33
+ {{#if appmap.changed}}
34
+ - [Sequence diagram diff &raquo;]({{ appmap_diff_url appmap }})
35
+ {{/if}}
36
+
37
+ {{#if appmap.sourceDiff}}
38
+
39
+ ##### Related code changes
40
+
41
+ ```diff
42
+ {{{ appmap.sourceDiff }}}
43
+ ```
44
+ {{/if}}
45
+
46
+ ##### Stack trace
47
+
48
+ {{#with finding}}
49
+ {{> finding-stack}}
50
+ {{/with}}
51
+
52
+ </details>
53
+ {{/inline}}
54
+ {{#with findingDiff}}
55
+ {{#if (length newFindings resolvedFindings)}}
56
+ <h2 id="findings">Findings</h2>
57
+
58
+ {{#with newFindings}}
59
+ ### :beetle: New findings ({{ length this}})
60
+
61
+ {{#each this}}
62
+ {{> finding}}
63
+ {{/each}}
64
+
65
+ {{/with}}
66
+
67
+ {{#with resolvedFindings}}
68
+ ### :tada: Resolved findings ({{ length this}})
69
+
70
+ {{#each this}}
71
+ {{> finding}}
72
+ {{/each}}
73
+
74
+ {{/with}}
75
+
76
+ {{#if pruned}}
77
+ Because there are so many new and resolved findings, some of them are not listed in this report.
78
+ {{/if}}
79
+ {{/if}}
80
+ {{/with}}
@@ -0,0 +1,13 @@
1
+ | [Findings](#findings) |
2
+ {{~#with findingDiff}}
3
+ {{~#unless (length newFindings resolvedFindings) }}
4
+ :white_check_mark: None
5
+ {{~/unless}}
6
+ {{~#if (length newFindings) }}
7
+ :beetle: {{length newFindings}} new
8
+ {{~/if}}
9
+ {{~#if (length resolvedFindings) }}
10
+ :tada: {{length resolvedFindings}} resolved
11
+ {{~/if}}
12
+ {{~/with}}
13
+ |
@@ -0,0 +1,11 @@
1
+ {{#if newAppMaps.length }}
2
+ <h2 id="new-appmaps">New AppMaps</h2>
3
+ {{#each newAppMaps}}
4
+
5
+ - [{{appmap_title this}}]({{ appmap_url 'head' this }})
6
+
7
+ {{/each}}
8
+ {{#if pruned}}
9
+ Because there are so many new AppMaps, some of them are not listed in this report.
10
+ {{/if}}
11
+ {{/if}}
@@ -0,0 +1,3 @@
1
+ | [New AppMaps](#new-appmaps) |
2
+ {{~#unless newAppMaps.length }} :white_check_mark: None {{else}} :star: {{newAppMaps.length}} new {{/unless~}}
3
+ |
@@ -0,0 +1,55 @@
1
+ {{#*inline "api-change"}}
2
+ {{title}} {{#each sourceSpecEntityDetails}}`{{location}}`{{/each}} {{#each destinationSpecEntityDetails}}`{{location}}`{{/each}}
3
+ {{~/inline}}
4
+ {{#if openapiDiff.differenceCount}}
5
+ <h2 id="openapi-changes">🔄 API changes</h2>
6
+
7
+ {{#with openapiDiff}}
8
+ {{#if differenceCount}}
9
+ {{#if breakingDifferences}}
10
+ ### 🚧 Breaking changes
11
+
12
+ <small>These changes <b>are not</b> backwards-compatible, according to the OpenAPI specification.</small>
13
+
14
+ {{#each breakingDifferences}}
15
+ - {{> api-change }}
16
+ {{/each}}
17
+ {{/if}}
18
+
19
+ {{#if nonBreakingDifferences}}
20
+ ### :wrench: Non-breaking changes
21
+
22
+ <small>These changes <b>are</b> backwards-compatible, according to the OpenAPI specification.</small>
23
+
24
+ {{#each nonBreakingDifferences}}
25
+ - {{> api-change }}
26
+ {{/each}}
27
+ {{/if}}
28
+
29
+ {{#if unclassifiedDifferences}}
30
+ ### Unclassified changes
31
+
32
+ <small>The backwards-compatible of these changes <b>cannot be determined</b>, according to the OpenAPI specification.</small>
33
+
34
+ {{#each unclassifiedDifferences}}
35
+ - {{> api-change }}
36
+ {{/each}}
37
+ {{/if}}
38
+
39
+ {{#if pruned}}
40
+ Because there are so many OpenAPI changes, some of them are not listed in this report,
41
+ and the full diff has not been printed either.
42
+ {{else}}
43
+ <details>
44
+ <summary>
45
+ Detailed OpenAPI diff
46
+ </summary>
47
+
48
+ ```diff
49
+ {{{sourceDiff}}}
50
+ ```
51
+ </details>
52
+ {{/if}}
53
+ {{/if}}
54
+ {{/with}}
55
+ {{/if}}
@@ -0,0 +1,8 @@
1
+ {{#with openapiDiff }}
2
+ | [API changes](#openapi-changes) |
3
+ {{~#if differenceCount }}
4
+ {{~#if breakingDifferenceCount }} 🚧 {{breakingDifferenceCount}} breaking{{~/if}}
5
+ {{~#if nonBreakingDifferenceCount }}{{#if breakingDifferenceCount }},{{~/if}} :wrench: {{nonBreakingDifferenceCount}} non-breaking{{/if~}}
6
+ {{~else}} :white_check_mark: No API changes
7
+ {{~/if}} |
8
+ {{~/with}}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- // TODO: These types are copied from @appland/scanner. @appland/scanner should become a dependency of @appland/appmap,
3
- // and the CLI commands should be removed from @appland/scanner.
4
- // The fact that the two projects both have a CLI is just a historical artifact, that can now be resoved.
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=findings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"findings.js","sourceRoot":"","sources":["../../src/lib/findings.ts"],"names":[],"mappings":";AAAA,sHAAsH;AACtH,gEAAgE;AAChE,yGAAyG"}
@@ -1,279 +0,0 @@
1
- # AppMap
2
-
3
- {{#*inline "api-change"}}
4
- {{title}} {{#each sourceSpecEntityDetails}}`{{location}}`{{/each}} {{#each destinationSpecEntityDetails}}`{{location}}`{{/each}}
5
- {{~/inline}}
6
-
7
- {{#*inline "sequence-diagram-diff-link"}}
8
- {{#if sequenceDiagramDiff}}[{{sequenceDiagramDiff}}]({{ appmap_diff_url sequenceDiagramDiff}}){{/if}}{{#unless sequenceDiagramDiff}}No structural changes detected{{/unless}}
9
- {{~/inline}}
10
-
11
- {{#*inline "finding-source-diff"}}
12
- {{#if (has_source_diff appmap) }}
13
-
14
- The following code changes are related to this finding:
15
-
16
- ```diff
17
- {{{source_diff appmap}}}
18
- ```
19
- {{else}}
20
-
21
- No relevant code changes found.
22
- {{/if}}
23
- {{/inline}}
24
-
25
- {{#*inline "finding-stack" }}
26
- {{#with stack }}
27
- {{#each this }}
28
- {{#if (source_url this)}}
29
- - [{{this}}]({{ source_url this }})
30
- {{else}}
31
- - {{ this }}
32
- {{/if}}
33
- {{/each}}
34
- {{/with}}
35
-
36
- {{/inline}}
37
-
38
- {{#*inline "finding"}}
39
-
40
- ### {{ ruleTitle }}
41
-
42
- <details>
43
- <summary>
44
- Finding details
45
- </summary>
46
-
47
- | Field | Value |
48
- | --- | --- |
49
- | Message | {{ message }} |
50
- | AppMap | [{{appmap}}]({{~ appmap_url 'head' appmap }}) |
51
-
52
- ##### Related code changes
53
-
54
- {{~> finding-source-diff}}
55
-
56
- ##### Stack trace
57
-
58
- {{> finding-stack}}
59
-
60
- </details>
61
- {{/inline}}
62
-
63
- | Summary | Status |
64
- | --- | --- |
65
- {{#if (enabled 'failed-tests') }}
66
- | [Failed tests](#failed-tests) | {{#if testFailures.length}}:warning: {{testFailures.length}} failed{{else}}:white_check_mark: All tests passed{{/if}} |
67
- {{~/if}}
68
- {{~#if (enabled 'openapi-diff')}}{{~#if (defined apiDiff) }}
69
- | [API changes](#api-changes) |
70
- {{~#unless apiDiff.differenceCount }}
71
- :white_check_mark: No API changes
72
- {{~/unless}}
73
- {{~#if apiDiff.differenceCount }}
74
- {{~#if apiDiff.breakingDifferenceCount }}🚧 {{apiDiff.breakingDifferenceCount}} breaking{{~/if}}
75
- {{~#if apiDiff.nonBreakingDifferenceCount }}{{#if apiDiff.breakingDifferenceCount }},&nbsp;{{~/if}}:wrench: {{apiDiff.nonBreakingDifferenceCount}} non-breaking{{~/if}}
76
- {{~/if}}
77
- |
78
- {{~/if}}{{~/if}}
79
- {{~#if (enabled 'findings')}}{{~#if (defined findingDiff) }}
80
- | [Findings](#findings) |
81
- {{~#with findingDiff}}
82
- {{~#unless (length new resolved) }}
83
- :white_check_mark: None
84
- {{~/unless}}
85
- {{~#if (length new) }}
86
- :beetle: {{length new}} new
87
- {{~/if}}
88
- {{~#if (length resolved) }}
89
- :tada: {{length resolved}} resolved
90
- {{~/if}}
91
- {{~/with}}
92
- |
93
- {{~/if}}{{~/if}}
94
- {{#if (enabled 'new-appmaps')}}
95
- | [New AppMaps](#new-appmaps) |
96
- {{~#unless newAppMaps.length }}
97
- :white_check_mark: None
98
- {{~else}}
99
- :star: {{newAppMaps.length}} new
100
- {{~/unless}}
101
- |
102
- {{/if}}
103
- {{#if (enabled 'changed-appmaps')}}
104
- | [Changed AppMaps](#changed-appmaps) |
105
- {{~#unless sequenceDiagramDiffSnippetCount }}
106
- :white_check_mark: No changes
107
- {{~else}}
108
- :twisted_rightwards_arrows: {{sequenceDiagramDiffSnippetCount}} changes
109
- {{~/unless}}
110
- |
111
- {{~/if}}
112
-
113
- {{#if (enabled 'failed-tests')}}
114
- {{#if testFailures.length}}
115
- ## :warning: Failed tests
116
-
117
- {{#each testFailures}}
118
-
119
- <details>
120
- <summary>
121
- {{ testLocation }}
122
- </summary>
123
-
124
- <p/>
125
-
126
- [{{testLocation}}]({{ source_url testLocation }}) failed with error:
127
-
128
- ```
129
- {{{failureMessage}}}
130
- ```
131
-
132
- {{#if failureLocation}}
133
- The error occurred at [{{failureLocation}}]({{ source_url failureLocation }}):
134
- {{/if}}
135
-
136
- {{#if testSnippet}}
137
- {{#with testSnippet}}
138
- ```{{language}}
139
- {{{codeFragment}}}
140
- ```
141
- {{/with}}
142
- {{/if}}
143
-
144
- {{#if (has_source_diff appmap)}}
145
-
146
- The following code changes may be related to this test failure:
147
-
148
- ```diff
149
- {{{source_diff appmap}}}
150
- ```
151
- {{else}}
152
-
153
- No relevant code changes found.
154
- {{/if}}
155
-
156
- | Diagram | Link |
157
- | --- | --- |
158
- {{#if changedAppMap}}
159
- {{#with changedAppMap}}
160
- | Sequence diagram diff | {{> sequence-diagram-diff-link }} |
161
- {{/with}}
162
- {{/if}}
163
- | AppMap | [{{appmap}}]({{ appmap_url 'head' appmap }}) |
164
-
165
- </details>
166
-
167
- {{/each}}
168
- {{/if}}
169
- {{/if}}
170
-
171
- {{#if (enabled 'openapi-diff')}}
172
- {{#if apiDiff.differenceCount }}
173
-
174
- ## 🔄 API changes
175
-
176
- {{#if apiDiff.breakingDifferences}}
177
- ### 🚧 Breaking changes
178
-
179
- {{#each apiDiff.breakingDifferences}}
180
- - {{> api-change }}
181
- {{/each}}
182
- {{/if}}
183
-
184
- {{#if apiDiff.nonBreakingDifferences}}
185
- ### :wrench: Non-breaking changes
186
-
187
- {{#each apiDiff.nonBreakingDifferences}}
188
- - {{> api-change }}
189
- {{/each}}
190
- {{/if}}
191
-
192
- {{#if apiDiff.unclassifiedDifferences}}
193
- ### Unclassified changes
194
-
195
- {{#each apiDiff.unclassifiedDifferences}}
196
- - {{> api-change }}
197
- {{/each}}
198
- {{/if}}
199
-
200
- <details>
201
- <summary>
202
- Detailed OpenAPI diff
203
- </summary>
204
-
205
- ```diff
206
- {{{apiDiff.sourceDiff}}}
207
- ```
208
- </details>
209
-
210
- {{/if}}
211
- {{/if}}
212
-
213
- {{#if (enabled 'findings') }}
214
- {{#with findingDiff}}
215
- {{#if (length new resolved)}}
216
-
217
- <h2 id="findings">Findings</h2>
218
-
219
- {{#with new}}
220
- ### :beetle: New findings ({{ length this}})
221
-
222
- {{#each this}}
223
- {{> finding}}
224
- {{/each}}
225
-
226
- {{/with}}
227
-
228
- {{#with resolved}}
229
- ### :tada: Resolved findings ({{ length this}})
230
-
231
- {{#each this}}
232
- {{> finding}}
233
- {{/each}}
234
-
235
- {{/with}}
236
-
237
- {{/if}}
238
- {{/with}}
239
- {{/if}}
240
-
241
- {{#if (enabled 'new-appmaps')}}
242
- {{#if newAppMaps.length }}
243
-
244
- <h2 id="new-appmaps">New AppMaps</h2>
245
-
246
- {{#each newAppMaps}}
247
-
248
- [{{this}}]({{ appmap_url 'head' this }})
249
-
250
- {{/each}}
251
-
252
- {{/if}}
253
- {{/if}}
254
-
255
- {{#if (enabled 'changed-appmaps')}}
256
- {{#if sequenceDiagramDiffSnippetCount }}
257
- ## :twisted_rightwards_arrows: Changed AppMaps
258
-
259
- <details>
260
-
261
- <summary>
262
- Review {{ sequenceDiagramDiffSnippetCount }} changes
263
- </summary>
264
-
265
- {{#each sequenceDiagramDiff}}
266
-
267
- ```
268
- {{{@key}}}
269
- ```
270
-
271
- {{#each this}}
272
- - [{{.}}]({{ appmap_diff_url . }})
273
- {{/each}}
274
-
275
- {{/each}}
276
-
277
- </details>
278
- {{/if}}
279
- {{/if}}