npm-update-package 0.38.0 → 0.41.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/README.md +2 -0
- package/dist/package.json +2 -2
- package/dist/src/git/CommitMessageCreator.js +3 -1
- package/dist/src/github/GitHub.js +16 -0
- package/dist/src/github/createGitHub.js +2 -2
- package/dist/src/github/createOctokit.js +10 -8
- package/dist/src/github/index.js +1 -0
- package/dist/src/github/pull-request/creator/PullRequestBodyCreator.js +107 -0
- package/dist/src/github/pull-request/creator/PullRequestCreator.js +3 -3
- package/dist/src/github/pull-request/creator/PullRequestTitleCreator.js +3 -1
- package/dist/src/github/pull-request/creator/index.js +1 -0
- package/dist/src/github/releases/fetcher/ReleasesFetcher.js +17 -0
- package/dist/src/github/releases/fetcher/index.js +13 -0
- package/dist/src/github/releases/index.js +13 -0
- package/dist/src/main.js +9 -1
- package/dist/src/ncu/Ncu.js +35 -7
- package/dist/src/package-json/DependencyType.js +12 -0
- package/dist/src/package-json/index.js +1 -0
- package/package.json +2 -2
- package/dist/src/github/pull-request/creator/createPullRequestBody.js +0 -62
package/README.md
CHANGED
|
@@ -27,6 +27,7 @@ Commit message template
|
|
|
27
27
|
- `newVersion`: new package version
|
|
28
28
|
- `packageName`: package name
|
|
29
29
|
- `level`: semver level (major/minor/patch)
|
|
30
|
+
- `dependencyType`: dependency type (dependencies/devDependencies/peerDependencies/optionalDependencies)
|
|
30
31
|
- default: `chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}`
|
|
31
32
|
|
|
32
33
|
### `--github-token`
|
|
@@ -74,6 +75,7 @@ Pull request title template
|
|
|
74
75
|
- `newVersion`: new package version
|
|
75
76
|
- `packageName`: package name
|
|
76
77
|
- `level`: semver level (major/minor/patch)
|
|
78
|
+
- `dependencyType`: dependency type (dependencies/devDependencies/peerDependencies/optionalDependencies)
|
|
77
79
|
- default: `chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}`
|
|
78
80
|
|
|
79
81
|
### `--reviewers`
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-update-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "CLI tool for creating pull requests to update npm packages",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/parse-github-url": "1.0.0",
|
|
37
37
|
"@types/semver": "7.3.9",
|
|
38
38
|
"@typescript-eslint/eslint-plugin": "5.12.1",
|
|
39
|
-
"eslint": "8.
|
|
39
|
+
"eslint": "8.10.0",
|
|
40
40
|
"eslint-config-standard-with-typescript": "21.0.1",
|
|
41
41
|
"eslint-plugin-import": "2.25.4",
|
|
42
42
|
"eslint-plugin-jest": "26.1.1",
|
|
@@ -11,11 +11,13 @@ class CommitMessageCreator {
|
|
|
11
11
|
const currentVersion = outdatedPackage.currentVersion.version;
|
|
12
12
|
const newVersion = outdatedPackage.newVersion.version;
|
|
13
13
|
const level = outdatedPackage.level;
|
|
14
|
+
const dependencyType = outdatedPackage.dependencyType;
|
|
14
15
|
return (0, mustache_1.render)(this.template, {
|
|
15
16
|
packageName,
|
|
16
17
|
currentVersion,
|
|
17
18
|
newVersion,
|
|
18
|
-
level
|
|
19
|
+
level,
|
|
20
|
+
dependencyType
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -75,6 +75,22 @@ class GitHub {
|
|
|
75
75
|
});
|
|
76
76
|
return data;
|
|
77
77
|
}
|
|
78
|
+
async fetchReleases({ owner, repo }) {
|
|
79
|
+
const releases = [];
|
|
80
|
+
for (let page = 1;; page++) {
|
|
81
|
+
const { data } = await this.octokit.repos.listReleases({
|
|
82
|
+
owner,
|
|
83
|
+
repo,
|
|
84
|
+
per_page: 100,
|
|
85
|
+
page
|
|
86
|
+
});
|
|
87
|
+
if (data.length === 0) {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
releases.push(...data);
|
|
91
|
+
}
|
|
92
|
+
return releases;
|
|
93
|
+
}
|
|
78
94
|
async fetchRepository({ owner, repo }) {
|
|
79
95
|
const { data } = await this.octokit.repos.get({
|
|
80
96
|
owner,
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createGitHub = void 0;
|
|
4
4
|
const createOctokit_1 = require("./createOctokit");
|
|
5
5
|
const GitHub_1 = require("./GitHub");
|
|
6
|
-
const createGitHub = ({
|
|
6
|
+
const createGitHub = ({ host, token }) => {
|
|
7
7
|
const octokit = (0, createOctokit_1.createOctokit)({
|
|
8
|
-
|
|
8
|
+
host,
|
|
9
9
|
token
|
|
10
10
|
});
|
|
11
11
|
return new GitHub_1.GitHub(octokit);
|
|
@@ -6,22 +6,24 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.createOctokit = void 0;
|
|
7
7
|
const rest_1 = require("@octokit/rest");
|
|
8
8
|
const package_json_1 = __importDefault(require("../../package.json"));
|
|
9
|
-
const createOctokit = ({
|
|
10
|
-
const { host } = repository.url;
|
|
11
|
-
const auth = `token ${token}`;
|
|
9
|
+
const createOctokit = ({ host, token }) => {
|
|
12
10
|
const userAgent = `${package_json_1.default.name}/${package_json_1.default.version}`;
|
|
13
|
-
if (
|
|
11
|
+
if (token === undefined) {
|
|
14
12
|
return new rest_1.Octokit({
|
|
15
|
-
auth,
|
|
16
13
|
userAgent
|
|
17
14
|
});
|
|
18
15
|
}
|
|
19
|
-
|
|
16
|
+
const auth = `token ${token}`;
|
|
17
|
+
if (host === 'github.com') {
|
|
20
18
|
return new rest_1.Octokit({
|
|
21
19
|
auth,
|
|
22
|
-
userAgent
|
|
23
|
-
baseUrl: `https://${host}/api/v3`
|
|
20
|
+
userAgent
|
|
24
21
|
});
|
|
25
22
|
}
|
|
23
|
+
return new rest_1.Octokit({
|
|
24
|
+
auth,
|
|
25
|
+
userAgent,
|
|
26
|
+
baseUrl: `https://${host}/api/v3`
|
|
27
|
+
});
|
|
26
28
|
};
|
|
27
29
|
exports.createOctokit = createOctokit;
|
package/dist/src/github/index.js
CHANGED
|
@@ -0,0 +1,107 @@
|
|
|
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.PullRequestBodyCreator = void 0;
|
|
7
|
+
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
8
|
+
const file_1 = require("../../../file");
|
|
9
|
+
const json_1 = require("../../../json");
|
|
10
|
+
const package_json_2 = require("../../../package-json");
|
|
11
|
+
const metadata_1 = require("../metadata");
|
|
12
|
+
class PullRequestBodyCreator {
|
|
13
|
+
constructor({ releasesFetcher }) {
|
|
14
|
+
this.releasesFetcher = releasesFetcher;
|
|
15
|
+
}
|
|
16
|
+
async create(outdatedPackage) {
|
|
17
|
+
const gitRepo = await this.extractRepository(outdatedPackage);
|
|
18
|
+
const outdatedPackagesTable = this.createOutdatedPackagesTable(outdatedPackage);
|
|
19
|
+
const metadataSection = this.createMetadataSection(outdatedPackage);
|
|
20
|
+
const footer = this.createFooter();
|
|
21
|
+
const body = `This PR updates these packages:
|
|
22
|
+
|
|
23
|
+
${outdatedPackagesTable}
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
${metadataSection}
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
${footer}`;
|
|
30
|
+
if (gitRepo === undefined) {
|
|
31
|
+
return body;
|
|
32
|
+
}
|
|
33
|
+
const releaseNotesSection = await this.createReleaseNotesSection({
|
|
34
|
+
outdatedPackage,
|
|
35
|
+
gitRepo
|
|
36
|
+
});
|
|
37
|
+
if (releaseNotesSection === undefined) {
|
|
38
|
+
return body;
|
|
39
|
+
}
|
|
40
|
+
return `This PR updates these packages:
|
|
41
|
+
|
|
42
|
+
${outdatedPackagesTable}
|
|
43
|
+
|
|
44
|
+
${releaseNotesSection}
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
${metadataSection}
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
${footer}`;
|
|
51
|
+
}
|
|
52
|
+
async extractRepository(outdatedPackage) {
|
|
53
|
+
const packageJson = await (0, file_1.readFile)(`node_modules/${outdatedPackage.name}/package.json`);
|
|
54
|
+
const pkg = (0, package_json_2.parsePackageJson)(packageJson);
|
|
55
|
+
return (0, package_json_2.extractRepository)(pkg);
|
|
56
|
+
}
|
|
57
|
+
async createReleaseNotesSection({ outdatedPackage, gitRepo }) {
|
|
58
|
+
const releases = await this.releasesFetcher.fetch({
|
|
59
|
+
gitRepo,
|
|
60
|
+
from: outdatedPackage.currentVersion,
|
|
61
|
+
to: outdatedPackage.newVersion
|
|
62
|
+
});
|
|
63
|
+
if (releases.length === 0) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const items = releases.map(release => `- [${release.tag_name}](${release.html_url})`);
|
|
67
|
+
return `## Release notes
|
|
68
|
+
|
|
69
|
+
${items.join('\n')}`;
|
|
70
|
+
}
|
|
71
|
+
createOutdatedPackagesTable(outdatedPackage) {
|
|
72
|
+
const packageName = outdatedPackage.name;
|
|
73
|
+
const packageLink = `[${packageName}](https://www.npmjs.com/package/${packageName})`;
|
|
74
|
+
const dependencyType = outdatedPackage.dependencyType;
|
|
75
|
+
const level = outdatedPackage.level;
|
|
76
|
+
const currentVersion = outdatedPackage.currentVersion.version;
|
|
77
|
+
const currentVersionLink = `[\`${currentVersion}\`](https://www.npmjs.com/package/${packageName}/v/${currentVersion})`;
|
|
78
|
+
const newVersion = outdatedPackage.newVersion.version;
|
|
79
|
+
const newVersionLink = `[\`${newVersion}\`](https://www.npmjs.com/package/${packageName}/v/${newVersion})`;
|
|
80
|
+
const diffLink = `[diff](https://renovatebot.com/diffs/npm/${packageName}/${currentVersion}/${newVersion})`;
|
|
81
|
+
const version = `${currentVersionLink} -> ${newVersionLink} (${diffLink})`;
|
|
82
|
+
return `|Package|Dependency type|Level|Version|
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
|${packageLink}|${dependencyType}|${level}|${version}|`;
|
|
85
|
+
}
|
|
86
|
+
createMetadataSection(outdatedPackage) {
|
|
87
|
+
const metadata = (0, metadata_1.createPullRequestMetadata)([outdatedPackage]);
|
|
88
|
+
const json = (0, json_1.toJSON)(metadata, { pretty: true });
|
|
89
|
+
return `<details>
|
|
90
|
+
<summary>Metadata</summary>
|
|
91
|
+
|
|
92
|
+
**Don't remove or edit this section because it will be used by npm-update-package.**
|
|
93
|
+
|
|
94
|
+
<div id="npm-update-package-metadata">
|
|
95
|
+
|
|
96
|
+
\`\`\`json
|
|
97
|
+
${json}
|
|
98
|
+
\`\`\`
|
|
99
|
+
|
|
100
|
+
</div>
|
|
101
|
+
</details>`;
|
|
102
|
+
}
|
|
103
|
+
createFooter() {
|
|
104
|
+
return `This PR has been generated by [${package_json_1.default.name}](${package_json_1.default.homepage}) v${package_json_1.default.version}`;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.PullRequestBodyCreator = PullRequestBodyCreator;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PullRequestCreator = void 0;
|
|
4
|
-
const createPullRequestBody_1 = require("./createPullRequestBody");
|
|
5
4
|
class PullRequestCreator {
|
|
6
|
-
constructor({ github, gitRepo, githubRepo, pullRequestTitleCreator, logger, reviewers }) {
|
|
5
|
+
constructor({ github, gitRepo, githubRepo, pullRequestTitleCreator, pullRequestBodyCreator, logger, reviewers }) {
|
|
7
6
|
this.github = github;
|
|
8
7
|
this.gitRepo = gitRepo;
|
|
9
8
|
this.githubRepo = githubRepo;
|
|
10
9
|
this.pullRequestTitleCreator = pullRequestTitleCreator;
|
|
10
|
+
this.pullRequestBodyCreator = pullRequestBodyCreator;
|
|
11
11
|
this.logger = logger;
|
|
12
12
|
this.reviewers = reviewers;
|
|
13
13
|
}
|
|
14
14
|
async create({ outdatedPackage, branchName }) {
|
|
15
15
|
const title = this.pullRequestTitleCreator.create(outdatedPackage);
|
|
16
16
|
this.logger.debug(`title=${title}`);
|
|
17
|
-
const body = await
|
|
17
|
+
const body = await this.pullRequestBodyCreator.create(outdatedPackage);
|
|
18
18
|
this.logger.debug(`body=${body}`);
|
|
19
19
|
const pullRequest = await this.github.createPullRequest({
|
|
20
20
|
owner: this.gitRepo.owner,
|
|
@@ -11,11 +11,13 @@ class PullRequestTitleCreator {
|
|
|
11
11
|
const currentVersion = outdatedPackage.currentVersion.version;
|
|
12
12
|
const newVersion = outdatedPackage.newVersion.version;
|
|
13
13
|
const level = outdatedPackage.level;
|
|
14
|
+
const dependencyType = outdatedPackage.dependencyType;
|
|
14
15
|
return (0, mustache_1.render)(this.template, {
|
|
15
16
|
packageName,
|
|
16
17
|
currentVersion,
|
|
17
18
|
newVersion,
|
|
18
|
-
level
|
|
19
|
+
level,
|
|
20
|
+
dependencyType
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
}
|
|
@@ -10,5 +10,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./PullRequestBodyCreator"), exports);
|
|
13
14
|
__exportStar(require("./PullRequestCreator"), exports);
|
|
14
15
|
__exportStar(require("./PullRequestTitleCreator"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReleasesFetcher = void 0;
|
|
4
|
+
const semver_1 = require("semver");
|
|
5
|
+
class ReleasesFetcher {
|
|
6
|
+
constructor(github) {
|
|
7
|
+
this.github = github;
|
|
8
|
+
}
|
|
9
|
+
async fetch({ gitRepo, from, to }) {
|
|
10
|
+
const releases = await this.github.fetchReleases({
|
|
11
|
+
owner: gitRepo.owner,
|
|
12
|
+
repo: gitRepo.name
|
|
13
|
+
});
|
|
14
|
+
return releases.filter(({ tag_name: version }) => (0, semver_1.gte)(version, from.version) && (0, semver_1.lte)(version, to.version));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ReleasesFetcher = ReleasesFetcher;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./ReleasesFetcher"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./fetcher"), exports);
|
package/dist/src/main.js
CHANGED
|
@@ -27,7 +27,7 @@ const main = async ({ options, logger }) => {
|
|
|
27
27
|
const gitRepo = await git.getRepository();
|
|
28
28
|
logger.debug(`gitRepo=${JSON.stringify(gitRepo)}`);
|
|
29
29
|
const github = (0, github_1.createGitHub)({
|
|
30
|
-
|
|
30
|
+
host: gitRepo.url.host,
|
|
31
31
|
token: options.githubToken
|
|
32
32
|
});
|
|
33
33
|
const githubRepo = await github.fetchRepository({
|
|
@@ -61,11 +61,19 @@ const main = async ({ options, logger }) => {
|
|
|
61
61
|
packageManager: options.packageManager
|
|
62
62
|
});
|
|
63
63
|
const pullRequestTitleCreator = new github_1.PullRequestTitleCreator(options.pullRequestTitle);
|
|
64
|
+
const githubWithoutToken = (0, github_1.createGitHub)({
|
|
65
|
+
host: 'github.com'
|
|
66
|
+
});
|
|
67
|
+
const releasesFetcher = new github_1.ReleasesFetcher(githubWithoutToken);
|
|
68
|
+
const pullRequestBodyCreator = new github_1.PullRequestBodyCreator({
|
|
69
|
+
releasesFetcher
|
|
70
|
+
});
|
|
64
71
|
const pullRequestCreator = new github_1.PullRequestCreator({
|
|
65
72
|
github,
|
|
66
73
|
gitRepo,
|
|
67
74
|
githubRepo,
|
|
68
75
|
pullRequestTitleCreator,
|
|
76
|
+
pullRequestBodyCreator,
|
|
69
77
|
logger,
|
|
70
78
|
reviewers: options.reviewers
|
|
71
79
|
});
|
package/dist/src/ncu/Ncu.js
CHANGED
|
@@ -34,19 +34,46 @@ class Ncu {
|
|
|
34
34
|
if (!(0, NcuResult_1.isNcuResult)(result)) {
|
|
35
35
|
throw new Error('Failed to running ncu.');
|
|
36
36
|
}
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
const { dependencies, devDependencies, peerDependencies, optionalDependencies } = pkg;
|
|
38
|
+
const toCurrentVersionString = (packageName) => {
|
|
39
|
+
if ((dependencies === null || dependencies === void 0 ? void 0 : dependencies[packageName]) !== undefined) {
|
|
40
|
+
return dependencies[packageName];
|
|
41
|
+
}
|
|
42
|
+
else if ((devDependencies === null || devDependencies === void 0 ? void 0 : devDependencies[packageName]) !== undefined) {
|
|
43
|
+
return devDependencies[packageName];
|
|
44
|
+
}
|
|
45
|
+
else if ((peerDependencies === null || peerDependencies === void 0 ? void 0 : peerDependencies[packageName]) !== undefined) {
|
|
46
|
+
return peerDependencies[packageName];
|
|
47
|
+
}
|
|
48
|
+
else if ((optionalDependencies === null || optionalDependencies === void 0 ? void 0 : optionalDependencies[packageName]) !== undefined) {
|
|
49
|
+
return optionalDependencies[packageName];
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
const toDependencyType = (packageName) => {
|
|
53
|
+
if ((dependencies === null || dependencies === void 0 ? void 0 : dependencies[packageName]) !== undefined) {
|
|
54
|
+
return package_json_1.DependencyType.Dependencies;
|
|
55
|
+
}
|
|
56
|
+
else if ((devDependencies === null || devDependencies === void 0 ? void 0 : devDependencies[packageName]) !== undefined) {
|
|
57
|
+
return package_json_1.DependencyType.DevDependencies;
|
|
58
|
+
}
|
|
59
|
+
else if ((peerDependencies === null || peerDependencies === void 0 ? void 0 : peerDependencies[packageName]) !== undefined) {
|
|
60
|
+
return package_json_1.DependencyType.PeerDependencies;
|
|
61
|
+
}
|
|
62
|
+
else if ((optionalDependencies === null || optionalDependencies === void 0 ? void 0 : optionalDependencies[packageName]) !== undefined) {
|
|
63
|
+
return package_json_1.DependencyType.OptionalDependencies;
|
|
64
|
+
}
|
|
42
65
|
};
|
|
43
66
|
const resultEntries = Object.entries(result);
|
|
44
67
|
const outdatedPackages = resultEntries
|
|
45
68
|
.map(([name, newVersionString]) => {
|
|
46
|
-
const currentVersionString =
|
|
69
|
+
const currentVersionString = toCurrentVersionString(name);
|
|
47
70
|
if (currentVersionString === undefined) {
|
|
48
71
|
return undefined;
|
|
49
72
|
}
|
|
73
|
+
const dependencyType = toDependencyType(name);
|
|
74
|
+
if (dependencyType === undefined) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
50
77
|
const currentVersion = semver_1.SemVer.of(currentVersionString);
|
|
51
78
|
const newVersion = semver_1.SemVer.of(newVersionString);
|
|
52
79
|
const level = (0, semver_1.compareSemVers)(currentVersion, newVersion);
|
|
@@ -57,7 +84,8 @@ class Ncu {
|
|
|
57
84
|
name,
|
|
58
85
|
currentVersion,
|
|
59
86
|
newVersion,
|
|
60
|
-
level
|
|
87
|
+
level,
|
|
88
|
+
dependencyType
|
|
61
89
|
};
|
|
62
90
|
return outdatedPackage;
|
|
63
91
|
})
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDependencyType = exports.DependencyType = void 0;
|
|
4
|
+
exports.DependencyType = {
|
|
5
|
+
Dependencies: 'dependencies',
|
|
6
|
+
DevDependencies: 'devDependencies',
|
|
7
|
+
PeerDependencies: 'peerDependencies',
|
|
8
|
+
OptionalDependencies: 'optionalDependencies'
|
|
9
|
+
};
|
|
10
|
+
const dependencyTypes = Object.values(exports.DependencyType);
|
|
11
|
+
const isDependencyType = (value) => dependencyTypes.includes(value);
|
|
12
|
+
exports.isDependencyType = isDependencyType;
|
|
@@ -10,6 +10,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
10
10
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./DependencyType"), exports);
|
|
13
14
|
__exportStar(require("./extractRepository"), exports);
|
|
14
15
|
__exportStar(require("./PackageMetadata"), exports);
|
|
15
16
|
__exportStar(require("./parsePackageJson"), exports);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "npm-update-package",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "CLI tool for creating pull requests to update npm packages",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc --project tsconfig.build.json",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@types/parse-github-url": "1.0.0",
|
|
37
37
|
"@types/semver": "7.3.9",
|
|
38
38
|
"@typescript-eslint/eslint-plugin": "5.12.1",
|
|
39
|
-
"eslint": "8.
|
|
39
|
+
"eslint": "8.10.0",
|
|
40
40
|
"eslint-config-standard-with-typescript": "21.0.1",
|
|
41
41
|
"eslint-plugin-import": "2.25.4",
|
|
42
42
|
"eslint-plugin-jest": "26.1.1",
|
|
@@ -1,62 +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.createPullRequestBody = void 0;
|
|
7
|
-
const package_json_1 = __importDefault(require("../../../../package.json"));
|
|
8
|
-
const file_1 = require("../../../file");
|
|
9
|
-
const json_1 = require("../../../json");
|
|
10
|
-
const package_json_2 = require("../../../package-json");
|
|
11
|
-
const metadata_1 = require("../metadata");
|
|
12
|
-
const createPullRequestBody = async (outdatedPackage) => {
|
|
13
|
-
const packageJson = await (0, file_1.readFile)(`node_modules/${outdatedPackage.name}/package.json`);
|
|
14
|
-
const pkg = (0, package_json_2.parsePackageJson)(packageJson);
|
|
15
|
-
const repository = (0, package_json_2.extractRepository)(pkg);
|
|
16
|
-
const outdatedPackagesTable = createOutdatedPackagesTable({
|
|
17
|
-
outdatedPackage,
|
|
18
|
-
repository
|
|
19
|
-
});
|
|
20
|
-
const metadataSection = createMetadataSection(outdatedPackage);
|
|
21
|
-
return `This PR updates these packages:
|
|
22
|
-
|
|
23
|
-
${outdatedPackagesTable}
|
|
24
|
-
|
|
25
|
-
${metadataSection}
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
This PR has been generated by [${package_json_1.default.name}](${package_json_1.default.homepage}) v${package_json_1.default.version}`;
|
|
29
|
-
};
|
|
30
|
-
exports.createPullRequestBody = createPullRequestBody;
|
|
31
|
-
const createOutdatedPackagesTable = ({ outdatedPackage, repository }) => {
|
|
32
|
-
const packageName = outdatedPackage.name;
|
|
33
|
-
const packageLink = `[${packageName}](https://www.npmjs.com/package/${packageName})`;
|
|
34
|
-
const repositoryLink = repository !== undefined ? `[${repository.owner}/${repository.name}](${repository.url.toString()})` : '-';
|
|
35
|
-
const level = outdatedPackage.level;
|
|
36
|
-
const currentVersion = outdatedPackage.currentVersion.version;
|
|
37
|
-
const currentVersionLink = `[\`${currentVersion}\`](https://www.npmjs.com/package/${packageName}/v/${currentVersion})`;
|
|
38
|
-
const newVersion = outdatedPackage.newVersion.version;
|
|
39
|
-
const newVersionLink = `[\`${newVersion}\`](https://www.npmjs.com/package/${packageName}/v/${newVersion})`;
|
|
40
|
-
const diffLink = `[diff](https://renovatebot.com/diffs/npm/${packageName}/${currentVersion}/${newVersion})`;
|
|
41
|
-
const version = `${currentVersionLink} -> ${newVersionLink} (${diffLink})`;
|
|
42
|
-
return `|Package|Repository|Level|Version|
|
|
43
|
-
|---|---|---|---|
|
|
44
|
-
|${packageLink}|${repositoryLink}|${level}|${version}|`;
|
|
45
|
-
};
|
|
46
|
-
const createMetadataSection = (outdatedPackage) => {
|
|
47
|
-
const metadata = (0, metadata_1.createPullRequestMetadata)([outdatedPackage]);
|
|
48
|
-
const json = (0, json_1.toJSON)(metadata, { pretty: true });
|
|
49
|
-
return `<details>
|
|
50
|
-
<summary>Metadata</summary>
|
|
51
|
-
|
|
52
|
-
**Don't remove or edit this section because it will be used by npm-update-package.**
|
|
53
|
-
|
|
54
|
-
<div id="npm-update-package-metadata">
|
|
55
|
-
|
|
56
|
-
\`\`\`json
|
|
57
|
-
${json}
|
|
58
|
-
\`\`\`
|
|
59
|
-
|
|
60
|
-
</div>
|
|
61
|
-
</details>`;
|
|
62
|
-
};
|