npm-update-package 0.32.0 → 0.35.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 CHANGED
@@ -27,7 +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
- - default: `chore(deps): {{level}} update {{{packageName}}} to v{{newVersion}}`
30
+ - default: `chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}`
31
31
 
32
32
  ### `--github-token`
33
33
 
@@ -74,7 +74,7 @@ Pull request title template
74
74
  - `newVersion`: new package version
75
75
  - `packageName`: package name
76
76
  - `level`: semver level (major/minor/patch)
77
- - default: `chore(deps): {{level}} update {{{packageName}}} to v{{newVersion}}`
77
+ - default: `chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}`
78
78
 
79
79
  ### `--reviewers`
80
80
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npm-update-package",
3
- "version": "0.32.0",
3
+ "version": "0.35.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",
@@ -35,7 +35,7 @@
35
35
  "@types/node": "12.20.40",
36
36
  "@types/parse-github-url": "1.0.0",
37
37
  "@types/semver": "7.3.9",
38
- "@typescript-eslint/eslint-plugin": "5.12.0",
38
+ "@typescript-eslint/eslint-plugin": "5.12.1",
39
39
  "eslint": "8.9.0",
40
40
  "eslint-config-standard-with-typescript": "21.0.1",
41
41
  "eslint-plugin-import": "2.25.4",
@@ -4,38 +4,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.GitRepository = void 0;
7
+ const url_1 = require("url");
7
8
  const parse_github_url_1 = __importDefault(require("parse-github-url"));
8
9
  class GitRepository {
9
- constructor({ host, owner, name }) {
10
- this.host = host;
10
+ constructor({ url, owner, name }) {
11
+ this.url = url;
11
12
  this.owner = owner;
12
13
  this.name = name;
13
14
  }
14
- static of(url) {
15
- const parsed = (0, parse_github_url_1.default)(url);
15
+ static of(repository) {
16
+ var _a;
17
+ const parsed = (0, parse_github_url_1.default)(repository);
16
18
  if (parsed === null) {
17
- throw new Error(`Failed to parse url. url=${url}`);
19
+ throw new Error(`Failed to parse repository. repository=${repository}`);
18
20
  }
19
21
  const { host, owner, name } = parsed;
20
22
  if (host === null || owner === null || name === null) {
21
- throw new Error(`Failed to parse url. url=${url}`);
23
+ throw new Error(`Failed to parse repository. repository=${repository}`);
22
24
  }
25
+ const protocol = (_a = parsed.protocol) !== null && _a !== void 0 ? _a : 'https:';
23
26
  return new GitRepository({
24
- host,
27
+ url: new url_1.URL(`${protocol}//${host}/${owner}/${name}`),
25
28
  owner,
26
29
  name
27
30
  });
28
31
  }
29
- get apiEndPoint() {
30
- if (this.isGitHubDotCom) {
31
- return 'https://api.github.com';
32
- }
33
- else {
34
- return `https://${this.host}/api/v3`;
35
- }
36
- }
37
- get isGitHubDotCom() {
38
- return this.host === 'github.com';
39
- }
40
32
  }
41
33
  exports.GitRepository = GitRepository;
@@ -7,9 +7,10 @@ exports.createOctokit = void 0;
7
7
  const rest_1 = require("@octokit/rest");
8
8
  const package_json_1 = __importDefault(require("../../package.json"));
9
9
  const createOctokit = ({ repository, token }) => {
10
+ const { host } = repository.url;
10
11
  const auth = `token ${token}`;
11
12
  const userAgent = `${package_json_1.default.name}/${package_json_1.default.version}`;
12
- if (repository.isGitHubDotCom) {
13
+ if (host === 'github.com') {
13
14
  return new rest_1.Octokit({
14
15
  auth,
15
16
  userAgent
@@ -19,7 +20,7 @@ const createOctokit = ({ repository, token }) => {
19
20
  return new rest_1.Octokit({
20
21
  auth,
21
22
  userAgent,
22
- baseUrl: repository.apiEndPoint
23
+ baseUrl: `https://${host}/api/v3`
23
24
  });
24
25
  }
25
26
  };
@@ -14,7 +14,7 @@ class PullRequestCreator {
14
14
  async create({ outdatedPackage, branchName }) {
15
15
  const title = this.pullRequestTitleCreator.create(outdatedPackage);
16
16
  this.logger.debug(`title=${title}`);
17
- const body = (0, createPullRequestBody_1.createPullRequestBody)(outdatedPackage);
17
+ const body = await (0, createPullRequestBody_1.createPullRequestBody)(outdatedPackage);
18
18
  this.logger.debug(`body=${body}`);
19
19
  const pullRequest = await this.github.createPullRequest({
20
20
  owner: this.gitRepo.owner,
@@ -5,19 +5,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createPullRequestBody = void 0;
7
7
  const package_json_1 = __importDefault(require("../../../../package.json"));
8
+ const file_1 = require("../../../file");
8
9
  const json_1 = require("../../../json");
10
+ const package_json_2 = require("../../../package-json");
9
11
  const metadata_1 = require("../metadata");
10
- const createPullRequestBody = (outdatedPackage) => {
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 gitRepo = (0, package_json_2.extractRepository)(pkg);
16
+ const repositoryLink = gitRepo !== undefined ? `[${gitRepo.owner}/${gitRepo.name}](${gitRepo.url.toString()})` : undefined;
11
17
  const currentVersion = outdatedPackage.currentVersion.version;
12
18
  const newVersion = outdatedPackage.newVersion.version;
13
19
  const packageName = outdatedPackage.name;
14
20
  const level = outdatedPackage.level;
21
+ const packageLink = `[${packageName}](https://www.npmjs.com/package/${packageName})`;
15
22
  const metadata = (0, json_1.toJSON)((0, metadata_1.createPullRequestMetadata)([outdatedPackage]), { pretty: true });
16
23
  return `This PR updates these packages:
17
24
 
18
- |Package|Level|Current version|New version|
19
- |---|---|---|---|
20
- |[${packageName}](https://www.npmjs.com/package/${packageName})|${level}|\`${currentVersion}\`|\`${newVersion}\`|
25
+ |Package|Repository|Level|Current version|New version|
26
+ |---|---|---|---|---|
27
+ |${packageLink}|${repositoryLink !== null && repositoryLink !== void 0 ? repositoryLink : '-'}|${level}|\`${currentVersion}\`|\`${newVersion}\`|
21
28
 
22
29
  <details>
23
30
  <summary>Metadata</summary>
@@ -10,7 +10,7 @@ exports.cliOptions = [
10
10
  description: 'Commit message template',
11
11
  type: OptionType_1.OptionType.String,
12
12
  required: false,
13
- default: 'chore(deps): {{level}} update {{{packageName}}} to v{{newVersion}}'
13
+ default: 'chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}'
14
14
  },
15
15
  {
16
16
  name: 'github-token',
@@ -50,7 +50,7 @@ exports.cliOptions = [
50
50
  description: 'Pull request title template',
51
51
  type: OptionType_1.OptionType.String,
52
52
  required: false,
53
- default: 'chore(deps): {{level}} update {{{packageName}}} to v{{newVersion}}'
53
+ default: 'chore(deps): {{{level}}} update {{{packageName}}} to v{{{newVersion}}}'
54
54
  },
55
55
  {
56
56
  name: 'reviewers',
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isPackageMetadata = void 0;
4
4
  const io_ts_1 = require("io-ts");
5
5
  const PackageMetadataDependencies_1 = require("./PackageMetadataDependencies");
6
+ const PackageMetadataRepository_1 = require("./PackageMetadataRepository");
6
7
  const PackageMetadata = (0, io_ts_1.intersection)([
7
8
  (0, io_ts_1.type)({
8
9
  name: io_ts_1.string,
@@ -12,7 +13,8 @@ const PackageMetadata = (0, io_ts_1.intersection)([
12
13
  dependencies: PackageMetadataDependencies_1.PackageMetadataDependencies,
13
14
  devDependencies: PackageMetadataDependencies_1.PackageMetadataDependencies,
14
15
  peerDependencies: PackageMetadataDependencies_1.PackageMetadataDependencies,
15
- optionalDependencies: PackageMetadataDependencies_1.PackageMetadataDependencies
16
+ optionalDependencies: PackageMetadataDependencies_1.PackageMetadataDependencies,
17
+ repository: (0, io_ts_1.union)([io_ts_1.string, PackageMetadataRepository_1.PackageMetadataRepository])
16
18
  })
17
19
  ]);
18
20
  exports.isPackageMetadata = PackageMetadata.is;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPackageMetadataRepository = exports.PackageMetadataRepository = void 0;
4
+ const io_ts_1 = require("io-ts");
5
+ exports.PackageMetadataRepository = (0, io_ts_1.type)({
6
+ url: io_ts_1.string
7
+ });
8
+ exports.isPackageMetadataRepository = exports.PackageMetadataRepository.is;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractRepository = void 0;
4
+ const git_1 = require("../git");
5
+ const parseRepositoryString_1 = require("./parseRepositoryString");
6
+ const extractRepository = ({ repository }) => {
7
+ if (repository === undefined) {
8
+ return undefined;
9
+ }
10
+ if (typeof repository === 'string') {
11
+ const { owner, repo, isGitHub } = (0, parseRepositoryString_1.parseRepositoryString)(repository);
12
+ if (!isGitHub) {
13
+ return undefined;
14
+ }
15
+ return git_1.GitRepository.of(`${owner}/${repo}`);
16
+ }
17
+ const { url } = repository;
18
+ return git_1.GitRepository.of(url.replace(/^git\+/, ''));
19
+ };
20
+ exports.extractRepository = extractRepository;
@@ -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("./extractRepository"), exports);
13
14
  __exportStar(require("./PackageMetadata"), exports);
14
15
  __exportStar(require("./parsePackageJson"), exports);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRepositoryString = void 0;
4
+ const parseRepositoryString = (repository) => {
5
+ const matched = repository.match(/^((.+):)?(.+)\/(.+)/);
6
+ if (matched === null) {
7
+ throw new Error(`Failed to parse repository. repository=${repository}`);
8
+ }
9
+ const [, , type, owner, repo] = matched;
10
+ /* istanbul ignore if: I can't write a test to reach here. */
11
+ if (owner === undefined || repo === undefined) {
12
+ throw new Error(`Failed to parse repository. repository=${repository}`);
13
+ }
14
+ return {
15
+ owner,
16
+ repo,
17
+ isGitHub: type === undefined || type === 'github'
18
+ };
19
+ };
20
+ exports.parseRepositoryString = parseRepositoryString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "npm-update-package",
3
- "version": "0.32.0",
3
+ "version": "0.35.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",
@@ -35,7 +35,7 @@
35
35
  "@types/node": "12.20.40",
36
36
  "@types/parse-github-url": "1.0.0",
37
37
  "@types/semver": "7.3.9",
38
- "@typescript-eslint/eslint-plugin": "5.12.0",
38
+ "@typescript-eslint/eslint-plugin": "5.12.1",
39
39
  "eslint": "8.9.0",
40
40
  "eslint-config-standard-with-typescript": "21.0.1",
41
41
  "eslint-plugin-import": "2.25.4",