From 5c8cc05a95e8df28b35cb67b05ef5ac998216a62 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Tue, 10 Oct 2023 11:52:28 -0400 Subject: [PATCH 01/36] add support for v14 --- CHANGELOG.md | 4 +++- nav-app/package-lock.json | 2 +- nav-app/package.json | 2 +- nav-app/src/app/services/data.service.ts | 4 ++-- nav-app/src/assets/config.json | 21 +++++++++++++++++++++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0ce6b7ec..c18811dee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,9 @@ The creation of the tag can be disabled with the --no-git-tag-version if desired. --> -# Changes Staged on Develop +# 4.9.0 - 31 October 2023 + +Adds support for ATT&CK v14.0. ## New Features - Consolidated the JSON, Excel, and SVG export options into a single dropdown. Added an option to the export interface to only download annotations on visible techniques. See issue [#215](https://github.com/mitre-attack/attack-navigator/issues/215). diff --git a/nav-app/package-lock.json b/nav-app/package-lock.json index 144f743de..0b1d88c38 100644 --- a/nav-app/package-lock.json +++ b/nav-app/package-lock.json @@ -1,6 +1,6 @@ { "name": "attack-navigator", - "version": "4.8.2", + "version": "4.9.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/nav-app/package.json b/nav-app/package.json index 5c06b423b..8aafd4b90 100644 --- a/nav-app/package.json +++ b/nav-app/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/mitre-attack/attack-navigator.git" }, - "version": "4.8.2", + "version": "4.9.0", "license": "Apache-2.0", "scripts": { "ng": "ng", diff --git a/nav-app/src/app/services/data.service.ts b/nav-app/src/app/services/data.service.ts index e75f4086a..2eea991c1 100755 --- a/nav-app/src/app/services/data.service.ts +++ b/nav-app/src/app/services/data.service.ts @@ -229,8 +229,8 @@ export class DataService { private domainData$: Observable; // URLs in case config file doesn't load properly - private latestVersion: Version = { name: "ATT&CK v13", number: "13" }; - private lowestSupportedVersion: Version; + private latestVersion: Version = { name: "ATT&CK v14", number: "14" }; + private lowestSupportedVersion: Version; // used by tabs component private enterpriseAttackURL: string = "https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json"; private mobileAttackURL: string = "https://raw.githubusercontent.com/mitre/cti/master/mobile-attack/mobile-attack.json"; private icsAttackURL: string = "https://raw.githubusercontent.com/mitre/cti/master/ics-attack/ics-attack.json"; diff --git a/nav-app/src/assets/config.json b/nav-app/src/assets/config.json index 240e2d9bc..934c7573a 100755 --- a/nav-app/src/assets/config.json +++ b/nav-app/src/assets/config.json @@ -1,5 +1,26 @@ { "versions": [ + { + "name": "ATT&CK v14", + "version": "14", + "domains": [ + { + "name": "Enterprise", + "identifier": "enterprise-attack", + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/enterprise-attack/enterprise-attack.json"] + }, + { + "name": "Mobile", + "identifier": "mobile-attack", + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/mobile-attack/mobile-attack.json"] + }, + { + "name": "ICS", + "identifier": "ics-attack", + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/ics-attack/ics-attack.json"] + } + ] + }, { "name": "ATT&CK v13", "version": "13", From 48aa775cd29b44714afa83f9611a0798ef6750e8 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 20 Oct 2023 10:18:06 -0400 Subject: [PATCH 02/36] code smells --- nav-app/src/app/classes/view-model.ts | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/nav-app/src/app/classes/view-model.ts b/nav-app/src/app/classes/view-model.ts index 290b5fc31..44224b064 100644 --- a/nav-app/src/app/classes/view-model.ts +++ b/nav-app/src/app/classes/view-model.ts @@ -918,9 +918,6 @@ export class ViewModel { */ private sortingAlgorithm(technique1: Technique, technique2: Technique, score1: number, score2: number) { switch (this.sorting) { - default: - case 0: // A-Z - return technique1.name.localeCompare(technique2.name); case 1: // Z-A return technique2.name.localeCompare(technique1.name); case 2: // 1-2 @@ -935,6 +932,9 @@ export class ViewModel { } else { return score2 - score1; } + case 0: // A-Z + default: + return technique1.name.localeCompare(technique2.name); } } @@ -958,13 +958,6 @@ export class ViewModel { let aggScore: any = 0; switch (this.layout.aggregateFunction) { - default: - case 'average': - // Divide by count of all subtechniques + 1 (for parent technique) if counting unscored is enabled - // Otherwise, divide by count of all scored only - score = scores.reduce((a, b) => a + b); - aggScore = score / (this.layout.countUnscored ? technique.subtechniques.length + 1 : validTechniquesCount); - break; case 'min': if (scores.length > 0) aggScore = Math.min(...scores); break; @@ -974,6 +967,13 @@ export class ViewModel { case 'sum': aggScore = scores.reduce((a, b) => a + b); break; + case 'average': + default: + // Divide by count of all subtechniques + 1 (for parent technique) if counting unscored is enabled + // Otherwise, divide by count of all scored only + score = scores.reduce((a, b) => a + b); + aggScore = score / (this.layout.countUnscored ? technique.subtechniques.length + 1 : validTechniquesCount); + break; } aggScore = aggScore.toFixed(2); @@ -1272,9 +1272,6 @@ export class ViewModel { */ if (typeof obj.viewMode === 'number') { switch (obj.viewMode) { - default: - case 0: - break; //default matrix layout already initialized case 1: this.layout.layout = 'side'; this.layout.showName = false; @@ -1284,6 +1281,10 @@ export class ViewModel { this.layout.layout = 'mini'; this.layout.showName = false; this.layout.showID = false; + break; + case 0: + default: + break; //default matrix layout already initialized } } else console.error('TypeError: viewMode field is not a number'); } From d36ec241aade284ae6355478d6503d9ed22793ae Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 20 Oct 2023 10:24:20 -0400 Subject: [PATCH 03/36] more code smells --- .../src/app/list-input/list-input.component.ts | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/nav-app/src/app/list-input/list-input.component.ts b/nav-app/src/app/list-input/list-input.component.ts index 2eeb5113c..aecd4fef1 100644 --- a/nav-app/src/app/list-input/list-input.component.ts +++ b/nav-app/src/app/list-input/list-input.component.ts @@ -18,10 +18,6 @@ export class ListInputComponent implements OnInit { return this.config.type == 'links'; } - constructor() { - // intentionally left blank - } - ngOnInit(): void { if (this.config.level == 'technique') { this.list = this.config.list.map((item) => { @@ -52,7 +48,7 @@ export class ListInputComponent implements OnInit { this.list.splice(i, 1); } - if (this.list[0] && this.list[0].divider) this.removeDivider(0); + if (this.list[0]?.divider) this.removeDivider(0); if (this.list[this.list.length - 1] && this.list[this.list.length - 1].divider) this.removeDivider(this.list.length - 1); this.updateList(); @@ -82,12 +78,10 @@ export class ListInputComponent implements OnInit { public canAddDivider(i: number): boolean { if (i < 1) return false; // cannot add divider before the first item if ( - this.list[i] && - this.list[i].valid() && - !this.list[i].divider && - this.list[i - 1] && - this.list[i - 1].valid() && - !this.list[i - 1].divider + this.list[i]?.valid() && + !this.list[i]?.divider && + this.list[i - 1]?.valid() && + !this.list[i - 1]?.divider ) { return true; } From 0f6a0621f7d4f05c07da3ddc7dd2b2e56aebaae3 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:00:08 -0400 Subject: [PATCH 04/36] update changelog --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20de83aec..4678e0f32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,7 @@ Adds support for ATT&CK v14.0. - Consolidated the JSON, Excel, and SVG export options into a single dropdown. Added an option to the export interface to only download annotations on visible techniques. See issue [#215](https://github.com/mitre-attack/attack-navigator/issues/215). - Extended search interface to support searching for techniques by asset. - Added the ability to configure how sub-techniques are displayed in the layer file through the `expandedSubtechniques` property - annotated, all, or none. See issue [#560](https://github.com/mitre-attack/attack-navigator/issues/560) and the `Layer File Format Changes` section. -- Added functionality to download all open layers in JSON or MS Excel format. Also added the functionality to upload file with multiple layers. See issue [#128](https://github.com/mitre-attack/attack-navigator/issues/128). +- Added functionality to download all open layers in JSON or MS Excel format. Also added the ability to upload a file with multiple layers. See issue [#128](https://github.com/mitre-attack/attack-navigator/issues/128). - Added a new toolbar option to enable or disable the sticky toolbar. ## Improvements @@ -38,8 +38,8 @@ Adds support for ATT&CK v14.0. Layer file format updated to version 4.5. See [layers/LAYERFORMATv4_5.md](layers/LAYERFORMATv4_5.md) for the full specification. - Added support for selecting only visible techniques. The `selectVisibleTechniques` field specifies whether or not hidden techniques will be included in the different select behaviors. -- Added support for configuring how to display sub-techniques in the layer file with the help of the `expandedSubtechniques` field. This property can be set to `all`, `none`, or `annotated` to display the sub-techniques. -- Added support for downloading all open layers in JSON or MS Excel (.xlsx) format. The user can now upload a file with multiple layers. +- Added support for configuring how sub-techniques are displayed in the layer with the `expandedSubtechniques` field. This property can be set to `all`, `annotated`, or `none` to expand all sub-techniques, expand only annotated sub-techniques, or collapse all sub-techniques, respectively. +- Added support for a list of layers. Users can now upload a layer file that contains multiple layers. # 4.8.2 - 9 May 2023 From b3d8aadebce86222c741ea563428bd22537a6ad0 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Mon, 30 Oct 2023 14:48:06 -0400 Subject: [PATCH 05/36] update layer format --- layers/LAYERFORMATv4_5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layers/LAYERFORMATv4_5.md b/layers/LAYERFORMATv4_5.md index b373f6c18..b37df21c8 100644 --- a/layers/LAYERFORMATv4_5.md +++ b/layers/LAYERFORMATv4_5.md @@ -37,7 +37,7 @@ This document describes **Version 4.5** of the MITRE ATT&CK Navigator Layer file | Name | Type | Required? | Default Value (if not present) | Description | | :------------- | :------------- | :------------- | :------------- | :------------- | | attack | String | No | Current version of ATT&CK | ATT&CK version of this layer | -| navigator | String | Yes | | Must be at least "4.8.0" | +| navigator | String | Yes | | Must be at least "4.9.0" | | layer | String | Yes | | Must be "4.5" | ## Technique Object properties From 4c81dd889139d9052d4d8e5106944c92a9a4748b Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Mon, 30 Oct 2023 14:48:48 -0400 Subject: [PATCH 06/36] update layer format --- layers/LAYERFORMATv4_5.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/layers/LAYERFORMATv4_5.md b/layers/LAYERFORMATv4_5.md index b37df21c8..6101d667f 100644 --- a/layers/LAYERFORMATv4_5.md +++ b/layers/LAYERFORMATv4_5.md @@ -232,8 +232,8 @@ The following example illustrates the layer file format of multiple layers. The { "name": "example layer", "versions": { - "attack": "13", - "navigator": "4.8.2", + "attack": "14", + "navigator": "4.9.0", "layer": "4.5" }, "domain": "enterprise-attack", @@ -350,8 +350,8 @@ The following example illustrates the layer file format of multiple layers. The { "name": "example layer", "versions": { - "attack": "13", - "navigator": "4.8.2", + "attack": "14", + "navigator": "4.9.0", "layer": "4.5" }, "domain": "enterprise-attack", From c0b83c397c741d56539cef17fb29d82ffea34a59 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:16:50 -0400 Subject: [PATCH 07/36] update dockerfile --- Dockerfile | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/Dockerfile b/Dockerfile index a3c3a9cc1..173243fc1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,22 +6,13 @@ ENV NODE_OPTIONS=--openssl-legacy-provider # install node packages - cache for faster future builds WORKDIR /src/nav-app -COPY nav-app/package*.json nav-app/patch-webpack.js . -# install packages and build -RUN npm install --unsafe-perm --legacy-peer-deps - -# NOTE on legacy-peer-deps: -# The --legacy-peer-deps flags is included to bypass the dependency peer resolution conflict that arises between Angular -# and @angular-devkit/build-angular@0.1100.7, the latter of which has peerDependency: karma: '~5.1.0'. However, -# upgrading karma to 5.1.0 cascades into a litany of other dependency conflicts, which would ultimately require us to -# upgrade from Angular v11 to v12. Therefore, legacy-peer-deps will be allowed until a major framework upgrade can occur +COPY ./nav-app/package*.json ./ -# give user permissions -RUN chown -R node:node ./ +# install packages and build +RUN npm install # copy over needed files -USER node -COPY nav-app/ ./ +COPY ./nav-app/ ./ WORKDIR /src COPY layers/*.md ./layers/ From 1b5bfb48321e661fd41bcc2d4e3843de284bac1a Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:18:05 -0400 Subject: [PATCH 08/36] update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f40022bd..a2bd2b48e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ This will patch the version number appropriately and create the correct tag on the current commit. The creation of the tag can be disabled with the --no-git-tag-version if desired. --> +# Staged Changes + +## Fixes +- Fixed an issue with the Dockerfile which was preventing the docker image from building. See issue [#598](https://github.com/mitre-attack/attack-navigator/pull/598). # 4.9.0 - 31 October 2023 From 219959e9b4cb699c48424c054e651f168664952e Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Mon, 13 Nov 2023 09:13:24 -0500 Subject: [PATCH 09/36] add support for v14.1 --- CHANGELOG.md | 4 +++- layers/LAYERFORMATv4_5.md | 6 +++--- nav-app/package-lock.json | 4 ++-- nav-app/package.json | 2 +- nav-app/src/assets/config.json | 6 +++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a2bd2b48e..d04b488cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,9 @@ This will patch the version number appropriately and create the correct tag on the current commit. The creation of the tag can be disabled with the --no-git-tag-version if desired. --> -# Staged Changes +# 4.9.1 - 14 November 2023 + +Adds support for ATT&CK v14.1. ## Fixes - Fixed an issue with the Dockerfile which was preventing the docker image from building. See issue [#598](https://github.com/mitre-attack/attack-navigator/pull/598). diff --git a/layers/LAYERFORMATv4_5.md b/layers/LAYERFORMATv4_5.md index 6101d667f..83e16a71d 100644 --- a/layers/LAYERFORMATv4_5.md +++ b/layers/LAYERFORMATv4_5.md @@ -109,7 +109,7 @@ The following example illustrates the layer file format of a single layer: "name": "example layer", "versions": { "attack": "13", - "navigator": "4.8.2", + "navigator": "4.9.1", "layer": "4.5" }, "domain": "enterprise-attack", @@ -233,7 +233,7 @@ The following example illustrates the layer file format of multiple layers. The "name": "example layer", "versions": { "attack": "14", - "navigator": "4.9.0", + "navigator": "4.9.1", "layer": "4.5" }, "domain": "enterprise-attack", @@ -351,7 +351,7 @@ The following example illustrates the layer file format of multiple layers. The "name": "example layer", "versions": { "attack": "14", - "navigator": "4.9.0", + "navigator": "4.9.1", "layer": "4.5" }, "domain": "enterprise-attack", diff --git a/nav-app/package-lock.json b/nav-app/package-lock.json index 3e7f9d249..d0b34c93d 100644 --- a/nav-app/package-lock.json +++ b/nav-app/package-lock.json @@ -1,12 +1,12 @@ { "name": "attack-navigator", - "version": "4.9.0", + "version": "4.9.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "attack-navigator", - "version": "4.9.0", + "version": "4.9.1", "license": "Apache-2.0", "dependencies": { "@angular/animations": "^14.3.0", diff --git a/nav-app/package.json b/nav-app/package.json index 9f7a853d0..9a0e72f18 100644 --- a/nav-app/package.json +++ b/nav-app/package.json @@ -5,7 +5,7 @@ "type": "git", "url": "https://github.com/mitre-attack/attack-navigator.git" }, - "version": "4.9.0", + "version": "4.9.1", "license": "Apache-2.0", "scripts": { "ng": "ng", diff --git a/nav-app/src/assets/config.json b/nav-app/src/assets/config.json index ee3ec409b..44271d80e 100755 --- a/nav-app/src/assets/config.json +++ b/nav-app/src/assets/config.json @@ -7,17 +7,17 @@ { "name": "Enterprise", "identifier": "enterprise-attack", - "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/enterprise-attack/enterprise-attack.json"] + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.1/enterprise-attack/enterprise-attack.json"] }, { "name": "Mobile", "identifier": "mobile-attack", - "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/mobile-attack/mobile-attack.json"] + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.1/mobile-attack/mobile-attack.json"] }, { "name": "ICS", "identifier": "ics-attack", - "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.0/ics-attack/ics-attack.json"] + "data": ["https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v14.1/ics-attack/ics-attack.json"] } ] }, From 083ed498420e3f7b651ac4afbef1cbb7fe81b3c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 06:18:32 +0000 Subject: [PATCH 10/36] Bump @adobe/css-tools from 4.3.1 to 4.3.2 in /nav-app Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2. - [Changelog](https://github.com/adobe/css-tools/blob/main/History.md) - [Commits](https://github.com/adobe/css-tools/commits) --- updated-dependencies: - dependency-name: "@adobe/css-tools" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- nav-app/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nav-app/package-lock.json b/nav-app/package-lock.json index d0b34c93d..64ee8bfa4 100644 --- a/nav-app/package-lock.json +++ b/nav-app/package-lock.json @@ -72,9 +72,9 @@ } }, "node_modules/@adobe/css-tools": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", - "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", + "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==", "dev": true }, "node_modules/@ampproject/remapping": { @@ -15177,9 +15177,9 @@ }, "dependencies": { "@adobe/css-tools": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", - "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", + "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==", "dev": true }, "@ampproject/remapping": { From feb1bdb27734eea92c66a87d994e2146bbc2ed38 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Mon, 8 Jan 2024 09:25:35 -0500 Subject: [PATCH 11/36] copyright 2024 --- NOTICE.txt | 2 +- README.md | 2 +- USAGE.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 428b4a119..84f26facb 100755 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -1,4 +1,4 @@ -Copyright 2023 The MITRE Corporation +Copyright 2024 The MITRE Corporation Approved for Public Release; Distribution Unlimited. Case Number 18-0128. diff --git a/README.md b/README.md index 7ccfccb3e..bc2421c08 100755 --- a/README.md +++ b/README.md @@ -256,7 +256,7 @@ STIX is designed to improve many different capabilities, such as collaborative t ## Notice -Copyright 2023 The MITRE Corporation +Copyright 2024 The MITRE Corporation Approved for Public Release; Distribution Unlimited. Case Number 18-0128. diff --git a/USAGE.md b/USAGE.md index 10158247a..10a2828d1 100644 --- a/USAGE.md +++ b/USAGE.md @@ -635,7 +635,7 @@ To get the full view of the matrix on a single page, be sure to disable the stic # Notice -Copyright 2023 The MITRE Corporation +Copyright 2024 The MITRE Corporation Approved for Public Release; Distribution Unlimited. Case Number 18-0128. From 0b7a7836e53d47146af24917bd0ee93d01159888 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 03:35:09 +0000 Subject: [PATCH 12/36] Bump follow-redirects from 1.15.3 to 1.15.4 in /nav-app Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- nav-app/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nav-app/package-lock.json b/nav-app/package-lock.json index d0b34c93d..6a0ae6c4d 100644 --- a/nav-app/package-lock.json +++ b/nav-app/package-lock.json @@ -7476,9 +7476,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ { @@ -20624,9 +20624,9 @@ "dev": true }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true }, "foreground-child": { From 6b1778684b8cb53c2ece9a3cfdf5f174dd35ea48 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:29:30 -0500 Subject: [PATCH 13/36] Create test.yml --- .github/workflows/test.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..88b9ff7a1 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,26 @@ +name: Jasmine Testing + +on: + push: + branches: [ "develop" ] + pull_request: + branches: [ "master", "develop" ] + +jobs: + run-jasmine-tests: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [16.x, 18.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm test From 40a3d969a65d0d03a301a9ee2c727ea4bc0b6d03 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:32:38 -0500 Subject: [PATCH 14/36] Update test.yml --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 88b9ff7a1..5802b6cad 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,12 +9,9 @@ on: jobs: run-jasmine-tests: runs-on: ubuntu-latest - strategy: matrix: - node-version: [16.x, 18.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - + node-version: [16.x] steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} @@ -22,5 +19,6 @@ jobs: with: node-version: ${{ matrix.node-version }} cache: 'npm' + cache-dependency-path: nav-app/package-lock.json - run: npm ci - run: npm test From 403254d09bd17e03f2cabe398d162427130a55f6 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:33:39 -0500 Subject: [PATCH 15/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5802b6cad..02ca28f83 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,5 +20,5 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: nav-app/package-lock.json - - run: npm ci + - run: npm install - run: npm test From eeeaa0a68424ee9b253fda2cb10cebe98c844864 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:36:50 -0500 Subject: [PATCH 16/36] Update test.yml --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 02ca28f83..2a056d544 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,6 +9,9 @@ on: jobs: run-jasmine-tests: runs-on: ubuntu-latest + defaults: + run: + working-directory: ./nav-app/ strategy: matrix: node-version: [16.x] From 4884328d45d67b222a4ad7f77fb38f8f54a3ce3b Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:44:49 -0500 Subject: [PATCH 17/36] Update test.yml --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2a056d544..dfba4c4c2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,5 +23,5 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: nav-app/package-lock.json - - run: npm install - - run: npm test + - run: npm ci + - run: npm test --no-watch --source-map=false --browsers=Chrome From accabcb49220171f2fc847d0ddc0e9572c80a606 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:52:19 -0500 Subject: [PATCH 18/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dfba4c4c2..22f56a522 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm test --no-watch --source-map=false --browsers=Chrome + - run: npm run test -- --browsers ChromeHeadlessCI From 2405805fcae66312c91e78b45865dec48ad7068b Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:54:48 -0500 Subject: [PATCH 19/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 22f56a522..2c1c547d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --browsers ChromeHeadlessCI + - run: npm run test -- --no-watch --browsers ChromeHeadlessCI From 1f3b833ab5430673458b59c58dbc50f82270921f Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:55:58 -0500 Subject: [PATCH 20/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2c1c547d6..43f650b4d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --single-run --browsers ChromeHeadlessCI From 753c430885c05a4165c833159123e656795b770c Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:58:48 -0500 Subject: [PATCH 21/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 43f650b4d..2272b25bf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --single-run --browsers ChromeHeadlessCI + - run: npm run test -- --coverage --no-watch --browsers ChromeHeadlessCI From 59b5f2c96522abc3ff3546844a0b4969d9d7bc43 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 13:59:48 -0500 Subject: [PATCH 22/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2272b25bf..2c1c547d6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --coverage --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --no-watch --browsers ChromeHeadlessCI From fa9db60cf2a198684296825ee086bd51989dd43f Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:02:23 -0500 Subject: [PATCH 23/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2c1c547d6..ae102a852 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,4 +24,4 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI From 527219e048575d8291f721253deb81f35d184f90 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:24:06 -0500 Subject: [PATCH 24/36] Update test.yml --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ae102a852..df1b8067b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -16,12 +16,12 @@ jobs: matrix: node-version: [16.x] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --no-watch --browsers ChromeHeadlessCI From f9f9dbd2172f4db9a9616fb47897389e3aa08395 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:28:01 -0500 Subject: [PATCH 25/36] Update karma.conf.js --- nav-app/karma.conf.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nav-app/karma.conf.js b/nav-app/karma.conf.js index 0dbe551e4..da90bc863 100755 --- a/nav-app/karma.conf.js +++ b/nav-app/karma.conf.js @@ -45,6 +45,8 @@ module.exports = function (config) { coverageReporter: { type: 'html', dir: 'coverage/', + subdir: 'chrome', + file: 'index.html' }, }); }; From 96099afc83a2e6b223ec7374e8eb0d52e235f89f Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:30:25 -0500 Subject: [PATCH 26/36] Update test.yml --- .github/workflows/test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index df1b8067b..31c897344 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,3 +25,8 @@ jobs: cache-dependency-path: nav-app/package-lock.json - run: npm ci - run: npm run test -- --no-watch --browsers ChromeHeadlessCI + - name: Archive code coverage results + uses: actions/upload-artifact@v4 + with: + name: code-coverage-report + path: coverage/chrome/index.html From 949ade6eac90122168fd5094796d9dd199bc901c Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:31:02 -0500 Subject: [PATCH 27/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 31c897344..03789fe3a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 with: From 590d22dea3d2d4894acb3ef7723c354fb6094e21 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:38:36 -0500 Subject: [PATCH 28/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03789fe3a..2019a0ef1 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI + - run: ng test --code-coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 with: From 3eff123f6f216d3a46f4d59167b8dad2f3a432cf Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:43:32 -0500 Subject: [PATCH 29/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2019a0ef1..db562125a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: ng test --code-coverage --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 with: From b03191c55303f7af944418fc8a6be3e12c8c46d0 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:49:10 -0500 Subject: [PATCH 30/36] Update angular.json --- nav-app/angular.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nav-app/angular.json b/nav-app/angular.json index 3d0bdc309..332f9be99 100644 --- a/nav-app/angular.json +++ b/nav-app/angular.json @@ -98,7 +98,8 @@ "node_modules/tinygradient/browser.js" ], "styles": ["src/styles.scss"], - "assets": ["src/assets", "src/favicon.ico"] + "assets": ["src/assets", "src/favicon.ico"], + "codeCoverage": true, } }, "lint": { From 27d0c0349466244bf98a1ede3afdb6bc7e47c1c2 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:49:37 -0500 Subject: [PATCH 31/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index db562125a..03789fe3a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -24,7 +24,7 @@ jobs: cache: 'npm' cache-dependency-path: nav-app/package-lock.json - run: npm ci - - run: npm run test -- --coverage --no-watch --browsers ChromeHeadlessCI + - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 with: From d2a24951c4f4c08d1fdf5aa38cd3098c5253e1f5 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:56:11 -0500 Subject: [PATCH 32/36] Update angular.json --- nav-app/angular.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nav-app/angular.json b/nav-app/angular.json index 332f9be99..79ebca7e1 100644 --- a/nav-app/angular.json +++ b/nav-app/angular.json @@ -99,7 +99,7 @@ ], "styles": ["src/styles.scss"], "assets": ["src/assets", "src/favicon.ico"], - "codeCoverage": true, + "codeCoverage": true } }, "lint": { From b085a3f19361371612600ad385b15fdbe3cc0e84 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:59:14 -0500 Subject: [PATCH 33/36] Update test.yml --- .github/workflows/test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03789fe3a..ef293c0d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -27,6 +27,7 @@ jobs: - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 + if: always() with: name: code-coverage-report path: coverage/chrome/index.html From f4a59d85e579c3e4f4e20ec81d6f54c249c6d58b Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 15:04:02 -0500 Subject: [PATCH 34/36] Update test.yml --- .github/workflows/test.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ef293c0d4..dfe631262 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,11 +23,13 @@ jobs: node-version: ${{ matrix.node-version }} cache: 'npm' cache-dependency-path: nav-app/package-lock.json - - run: npm ci - - run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI + - name: Install + run: npm ci + - name: Run Jasmine tests + run: npm run test -- --code-coverage --no-watch --browsers ChromeHeadlessCI - name: Archive code coverage results uses: actions/upload-artifact@v4 if: always() with: name: code-coverage-report - path: coverage/chrome/index.html + path: angular.json From 45542aabf90c49a82ba383f6f366ec23bc0dc3ef Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 15:05:31 -0500 Subject: [PATCH 35/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dfe631262..5a834a0ec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,4 +32,4 @@ jobs: if: always() with: name: code-coverage-report - path: angular.json + path: ./angular.json From 26ff829cdc4f1e907eea5362faa46a3e19efadb6 Mon Sep 17 00:00:00 2001 From: Charissa Miller <48832936+clemiller@users.noreply.github.com> Date: Fri, 26 Jan 2024 15:08:27 -0500 Subject: [PATCH 36/36] Update test.yml --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5a834a0ec..3c5026850 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,4 +32,4 @@ jobs: if: always() with: name: code-coverage-report - path: ./angular.json + path: nav-app/coverage/chrome/index.html