Skip to content

Commit

Permalink
feat: improve labels for scope and missing deps (#163)
Browse files Browse the repository at this point in the history
  • Loading branch information
xzhou-snyk authored Oct 31, 2022
1 parent ce20f55 commit 266b66d
Show file tree
Hide file tree
Showing 55 changed files with 1,046 additions and 70 deletions.
28 changes: 14 additions & 14 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: 2.1

orbs:
win: circleci/windows@2.2.0
win: circleci/windows@2.4.0

defaults: &defaults
parameters:
Expand Down Expand Up @@ -54,7 +54,7 @@ jobs:
lint:
<<: *defaults
docker:
- image: circleci/node:<< parameters.node_version >>
- image: cimg/node:<< parameters.node_version >>
steps:
- show_node_version
- checkout
Expand Down Expand Up @@ -84,7 +84,7 @@ jobs:
test-unix:
<<: *defaults
docker:
- image: circleci/node:<< parameters.node_version >>
- image: cimg/node:<< parameters.node_version >>
steps:
- checkout
- attach_workspace:
Expand All @@ -98,7 +98,7 @@ jobs:
release:
<<: *defaults
docker:
- image: circleci/node:<< parameters.node_version >>
- image: cimg/node:<< parameters.node_version >>
resource_class: small
steps:
- install_deps
Expand All @@ -114,45 +114,45 @@ workflows:
- lint:
name: Lint
context: nodejs-install
node_version: "10"
node_version: "16.13.2"
filters:
branches:
ignore:
- master
- test-windows:
name: Windows Tests for Node v12 support
name: Windows Tests for Node v16 support
context: nodejs-install
node_version: "12.0.0"
node_version: "16.13.2"
requires:
- Lint
filters:
branches:
ignore:
- master
- test-windows:
name: Windows Tests for Node v10 support
name: Windows Tests for Node v14 support
context: nodejs-install
node_version: "10.21.0"
node_version: "14.17.6"
requires:
- Lint
filters:
branches:
ignore:
- master
- test-unix:
name: Unix Tests for Node v12 support
name: Unix Tests for Node v16 support
context: nodejs-install
node_version: "12.16.2"
node_version: "16.13.2"
requires:
- Lint
filters:
branches:
ignore:
- master
- test-unix:
name: Unix Tests for Node v10 support
name: Unix Tests for Node v14 support
context: nodejs-install
node_version: "10"
node_version: "14.17.6"
requires:
- Lint
filters:
Expand All @@ -162,7 +162,7 @@ workflows:
- release:
name: Release
context: nodejs-app-release
node_version: "10"
node_version: "16.13.2"
filters:
branches:
only:
Expand Down
3 changes: 1 addition & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
"prettier/@typescript-eslint"
"prettier"
],
"rules": {
"@typescript-eslint/explicit-function-return-type": "off",
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
10
16
2 changes: 1 addition & 1 deletion lib/dep-graph-builders/util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export function parsePkgJson(pkgJsonContent: string): PackageJsonBase {
return parsedPkgJson;
} catch (e) {
throw new InvalidUserInputError(
'package.json parsing failed with error ' + e.message,
'package.json parsing failed with error ' + (e as Error).message,
);
}
}
Expand Down
4 changes: 2 additions & 2 deletions lib/parsers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export function parseManifestFile(manifestFileContents: string): ManifestFile {
return JSON.parse(manifestFileContents);
} catch (e) {
throw new InvalidUserInputError(
'package.json parsing failed with error ' + e.message,
'package.json parsing failed with error ' + (e as Error).message,
);
}
}
Expand Down Expand Up @@ -188,7 +188,7 @@ export function getYarnWorkspaces(targetFile: string): string[] | false {
return false;
} catch (e) {
throw new InvalidUserInputError(
'package.json parsing failed with ' + `error ${e.message}`,
'package.json parsing failed with ' + `error ${(e as Error).message}`,
);
}
}
2 changes: 2 additions & 0 deletions lib/parsers/lock-parser-base.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ export abstract class LockParserBase implements LockfileParser {
pkgTree.dependencies![name] = this.setDevDepRec(subTree);
}
pkgTree.labels = {
...pkgTree.labels,
scope: Scope.dev,
};

Expand Down Expand Up @@ -426,6 +427,7 @@ export abstract class LockParserBase implements LockfileParser {
dependencies: {},
labels: {
missingLockFileEntry: 'true',
...(dep.labels?.scope && { scope: dep.labels.scope }),
},
};

Expand Down
3 changes: 2 additions & 1 deletion lib/parsers/package-lock-parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ export class PackageLockParser extends LockParserBase {
return packageLock;
} catch (e) {
throw new InvalidUserInputError(
'package-lock.json parsing failed with ' + `error ${e.message}`,
'package-lock.json parsing failed with ' +
`error ${(e as Error).message}`,
);
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/parsers/yarn-lock-parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ export class YarnLockParser extends LockParserBase {
return yarnLock;
} catch (e) {
throw new InvalidUserInputError(
`yarn.lock parsing failed with an error: ${e.message}`,
`yarn.lock parsing failed with an error: ${(e as Error).message}`,
);
}
}
Expand Down
2 changes: 1 addition & 1 deletion lib/parsers/yarn2-lock-parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class Yarn2LockParser extends LockParserBase {
};
} catch (e) {
throw new InvalidUserInputError(
`yarn.lock parsing failed with an error: ${e.message}`,
`yarn.lock parsing failed with an error: ${(e as Error).message}`,
);
}
}
Expand Down
24 changes: 12 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,20 @@
"uuid": "^8.3.0"
},
"devDependencies": {
"@types/jest": "^26.0.23",
"@types/node": "^12.0.0",
"@types/jest": "^28.1.3",
"@types/node": "^16.11.66",
"@types/semver": "^7.3.6",
"@types/uuid": "^8.3.0",
"@typescript-eslint/eslint-plugin": "^4.20.0",
"@typescript-eslint/parser": "^4.0.0",
"eslint": "6.8.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-prettier": "^3.1.3",
"jest": "^26.6.3",
"@typescript-eslint/eslint-plugin": "^4.33.0",
"@typescript-eslint/parser": "^4.33.0",
"eslint": "7.32.0",
"eslint-config-prettier": "^8.3.0",
"jest": "^28.1.3",
"prettier": "^2.7.1",
"tap": "^15.0.4",
"ts-jest": "^26.5.6",
"ts-node": "^9.1.1",
"typescript": "4.1.*"
}
"ts-jest": "^28.0.8",
"ts-node": "^8.10.2",
"typescript": "4.8.4"
},
"packageManager": "[email protected]"
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
"version": "unknown",
"dependencies": {},
"labels": {
"scope": "prod",
"missingLockFileEntry": "true"
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"dependencies": {
"adm-zip": {
"labels": {
"scope": "dev"
},
"name": "adm-zip",
"version": "0.4.7"
},
"debug": {
"labels": {
"scope": "dev"
},
"name": "debug",
"version": "2.6.9",
"dependencies": {
"ms": {
"name": "ms",
"version": "unknown",
"dependencies": {},
"labels": {
"scope": "dev",
"missingLockFileEntry": "true"
}
}
}
}
},
"hasDevDependencies": true,
"name": "goof",
"size": 4,
"version": "0.0.3",
"meta": {
"lockfileVersion": 2,
"packageManager": "npm"
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "goof",
"version": "0.0.3",
"description": "A vulnerable todo demo application",
"homepage": "https://snyk.io/",
"repository": {
"type": "git",
"url": "https://github.com/Snyk/snyk-todo-list-demo-app/"
},
"dependencies": {},
"devDependencies": {
"adm-zip": "0.4.7",
"debug": "^2.2.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
{
"dependencies": {
"adm-zip": {
"labels": {
"scope": "prod",
"missingLockFileEntry": "true"
},
"name": "adm-zip",
"version": "0.4.7"
},
"debug": {
"labels": {
"scope": "prod"
},
"name": "debug",
"version": "2.6.9",
"dependencies": {
"ms": {
"labels": {
"scope": "prod"
},
"name": "ms",
"version": "2.0.0"
}
}
}
},
"hasDevDependencies": false,
"name": "goof",
"size": 4,
"version": "0.0.3",
"meta": {
"lockfileVersion": 2,
"packageManager": "npm"
}
}
Loading

0 comments on commit 266b66d

Please sign in to comment.