npm-update-package 0.31.2 → 0.32.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 (75) hide show
  1. package/dist/package.json +7 -10
  2. package/dist/src/bin.js +24 -0
  3. package/dist/src/core/FailedResult.js +2 -0
  4. package/dist/src/core/OutdatedPackage.js +2 -0
  5. package/dist/src/core/OutdatedPackageProcessor.js +79 -0
  6. package/dist/src/core/OutdatedPackagesProcessor.js +20 -0
  7. package/dist/src/core/SucceededResult.js +2 -0
  8. package/dist/src/core/index.js +17 -0
  9. package/dist/src/file/index.js +13 -0
  10. package/dist/src/file/readFile.js +12 -0
  11. package/dist/src/git/CommitMessageCreator.js +22 -0
  12. package/dist/src/git/Git.js +51 -0
  13. package/dist/src/git/GitRepository.js +41 -0
  14. package/dist/src/git/createBranchName.js +9 -0
  15. package/dist/src/git/index.js +16 -0
  16. package/dist/src/github/GitHub.js +94 -0
  17. package/dist/src/github/branch/finder/BranchFinder.js +12 -0
  18. package/dist/src/github/branch/finder/index.js +13 -0
  19. package/dist/src/github/branch/index.js +13 -0
  20. package/dist/src/github/createGitHub.js +13 -0
  21. package/dist/src/github/createOctokit.js +26 -0
  22. package/dist/src/github/errors/NotFoundError.js +10 -0
  23. package/dist/src/github/errors/index.js +13 -0
  24. package/dist/src/github/index.js +17 -0
  25. package/dist/src/github/label/creator/LabelCreator.js +46 -0
  26. package/dist/src/github/label/creator/index.js +13 -0
  27. package/dist/src/github/label/index.js +13 -0
  28. package/dist/src/github/pull-request/closer/PullRequestCloser.js +21 -0
  29. package/dist/src/github/pull-request/closer/index.js +13 -0
  30. package/dist/src/github/pull-request/creator/PullRequestCreator.js +45 -0
  31. package/dist/src/github/pull-request/creator/PullRequestTitleCreator.js +22 -0
  32. package/dist/src/github/pull-request/creator/createPullRequestBody.js +39 -0
  33. package/dist/src/github/pull-request/creator/index.js +14 -0
  34. package/dist/src/github/pull-request/finder/PullRequestFinder.js +27 -0
  35. package/dist/src/github/pull-request/finder/index.js +13 -0
  36. package/dist/src/github/pull-request/finder/isPullRequestByNpmUpdatePackage.js +7 -0
  37. package/dist/src/github/pull-request/index.js +15 -0
  38. package/dist/src/github/pull-request/metadata/PullRequestMetadata.js +15 -0
  39. package/dist/src/github/pull-request/metadata/createPullRequestMetadata.js +19 -0
  40. package/dist/src/github/pull-request/metadata/extractPullRequestMetadata.js +17 -0
  41. package/dist/src/github/pull-request/metadata/index.js +15 -0
  42. package/dist/src/json/index.js +13 -0
  43. package/dist/src/json/toJSON.js +14 -0
  44. package/dist/src/logger/LogLevel.js +15 -0
  45. package/dist/src/logger/Logger.js +2 -0
  46. package/dist/src/logger/createLogger.js +11 -0
  47. package/dist/src/logger/index.js +15 -0
  48. package/dist/src/main.js +112 -0
  49. package/dist/src/ncu/Ncu.js +71 -0
  50. package/dist/src/ncu/NcuResult.js +6 -0
  51. package/dist/src/ncu/index.js +13 -0
  52. package/dist/src/options/CLIOption.js +2 -0
  53. package/dist/src/options/OptionType.js +10 -0
  54. package/dist/src/options/Options.js +30 -0
  55. package/dist/src/options/cliOptions.js +61 -0
  56. package/dist/src/options/index.js +14 -0
  57. package/dist/src/options/initOptions.js +25 -0
  58. package/dist/src/options/toCommanderOption.js +32 -0
  59. package/dist/src/package-json/PackageMetadata.js +18 -0
  60. package/dist/src/package-json/PackageMetadataDependencies.js +6 -0
  61. package/dist/src/package-json/index.js +14 -0
  62. package/dist/src/package-json/parsePackageJson.js +15 -0
  63. package/dist/src/package-manager/Npm.js +18 -0
  64. package/dist/src/package-manager/PackageManager.js +2 -0
  65. package/dist/src/package-manager/PackageManagerName.js +10 -0
  66. package/dist/src/package-manager/Yarn.js +18 -0
  67. package/dist/src/package-manager/createPackageManager.js +15 -0
  68. package/dist/src/package-manager/index.js +17 -0
  69. package/dist/src/semver/SemVer.js +25 -0
  70. package/dist/src/semver/SemVerLevel.js +11 -0
  71. package/dist/src/semver/compareSemVers.js +16 -0
  72. package/dist/src/semver/index.js +15 -0
  73. package/dist/src/terminal/Terminal.js +14 -0
  74. package/dist/src/terminal/index.js +13 -0
  75. package/package.json +7 -10
@@ -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("./LabelCreator"), 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("./creator"), exports);
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestCloser = void 0;
4
+ class PullRequestCloser {
5
+ constructor(github) {
6
+ this.github = github;
7
+ }
8
+ async close(pullRequest) {
9
+ await this.github.closePullRequest({
10
+ owner: pullRequest.base.repo.owner.login,
11
+ repo: pullRequest.base.repo.name,
12
+ pullNumber: pullRequest.number
13
+ });
14
+ await this.github.deleteBranch({
15
+ owner: pullRequest.base.repo.owner.login,
16
+ repo: pullRequest.base.repo.name,
17
+ branch: pullRequest.head.ref
18
+ });
19
+ }
20
+ }
21
+ exports.PullRequestCloser = PullRequestCloser;
@@ -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("./PullRequestCloser"), exports);
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestCreator = void 0;
4
+ const createPullRequestBody_1 = require("./createPullRequestBody");
5
+ class PullRequestCreator {
6
+ constructor({ github, gitRepo, githubRepo, pullRequestTitleCreator, logger, reviewers }) {
7
+ this.github = github;
8
+ this.gitRepo = gitRepo;
9
+ this.githubRepo = githubRepo;
10
+ this.pullRequestTitleCreator = pullRequestTitleCreator;
11
+ this.logger = logger;
12
+ this.reviewers = reviewers;
13
+ }
14
+ async create({ outdatedPackage, branchName }) {
15
+ const title = this.pullRequestTitleCreator.create(outdatedPackage);
16
+ this.logger.debug(`title=${title}`);
17
+ const body = (0, createPullRequestBody_1.createPullRequestBody)(outdatedPackage);
18
+ this.logger.debug(`body=${body}`);
19
+ const pullRequest = await this.github.createPullRequest({
20
+ owner: this.gitRepo.owner,
21
+ repo: this.gitRepo.name,
22
+ baseBranch: this.githubRepo.default_branch,
23
+ headBranch: branchName,
24
+ title,
25
+ body
26
+ });
27
+ this.logger.debug(`pullRequest=${JSON.stringify(pullRequest)}`);
28
+ await this.github.addLabels({
29
+ owner: this.gitRepo.owner,
30
+ repo: this.gitRepo.name,
31
+ issueNumber: pullRequest.number,
32
+ labels: ['npm-update-package']
33
+ });
34
+ if (this.reviewers !== undefined) {
35
+ await this.github.requestReviewers({
36
+ owner: this.gitRepo.owner,
37
+ repo: this.gitRepo.name,
38
+ pullNumber: pullRequest.number,
39
+ reviewers: this.reviewers
40
+ });
41
+ }
42
+ return pullRequest;
43
+ }
44
+ }
45
+ exports.PullRequestCreator = PullRequestCreator;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestTitleCreator = void 0;
4
+ const mustache_1 = require("mustache");
5
+ class PullRequestTitleCreator {
6
+ constructor(template) {
7
+ this.template = template;
8
+ }
9
+ create(outdatedPackage) {
10
+ const packageName = outdatedPackage.name;
11
+ const currentVersion = outdatedPackage.currentVersion.version;
12
+ const newVersion = outdatedPackage.newVersion.version;
13
+ const level = outdatedPackage.level;
14
+ return (0, mustache_1.render)(this.template, {
15
+ packageName,
16
+ currentVersion,
17
+ newVersion,
18
+ level
19
+ });
20
+ }
21
+ }
22
+ exports.PullRequestTitleCreator = PullRequestTitleCreator;
@@ -0,0 +1,39 @@
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 json_1 = require("../../../json");
9
+ const metadata_1 = require("../metadata");
10
+ const createPullRequestBody = (outdatedPackage) => {
11
+ const currentVersion = outdatedPackage.currentVersion.version;
12
+ const newVersion = outdatedPackage.newVersion.version;
13
+ const packageName = outdatedPackage.name;
14
+ const level = outdatedPackage.level;
15
+ const metadata = (0, json_1.toJSON)((0, metadata_1.createPullRequestMetadata)([outdatedPackage]), { pretty: true });
16
+ return `This PR updates these packages:
17
+
18
+ |Package|Level|Current version|New version|
19
+ |---|---|---|---|
20
+ |[${packageName}](https://www.npmjs.com/package/${packageName})|${level}|\`${currentVersion}\`|\`${newVersion}\`|
21
+
22
+ <details>
23
+ <summary>Metadata</summary>
24
+
25
+ **Don't remove or edit this section because it will be used by npm-update-package.**
26
+
27
+ <div id="npm-update-package-metadata">
28
+
29
+ \`\`\`json
30
+ ${metadata}
31
+ \`\`\`
32
+
33
+ </div>
34
+ </details>
35
+
36
+ ---
37
+ This PR has been generated by [${package_json_1.default.name}](${package_json_1.default.homepage}) v${package_json_1.default.version}`;
38
+ };
39
+ exports.createPullRequestBody = createPullRequestBody;
@@ -0,0 +1,14 @@
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("./PullRequestCreator"), exports);
14
+ __exportStar(require("./PullRequestTitleCreator"), exports);
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PullRequestFinder = void 0;
4
+ const metadata_1 = require("../metadata");
5
+ const isPullRequestByNpmUpdatePackage_1 = require("./isPullRequestByNpmUpdatePackage");
6
+ // TODO: Add test
7
+ class PullRequestFinder {
8
+ constructor(pullRequests) {
9
+ this.pullRequests = pullRequests;
10
+ }
11
+ findByPackageName(packageName) {
12
+ return this.pullRequests
13
+ .filter(isPullRequestByNpmUpdatePackage_1.isPullRequestByNpmUpdatePackage)
14
+ .filter(({ body }) => {
15
+ if (body === null) {
16
+ return false;
17
+ }
18
+ const metadata = (0, metadata_1.extractPullRequestMetadata)(body);
19
+ if (metadata === undefined) {
20
+ return false;
21
+ }
22
+ const { packages } = metadata;
23
+ return packages.some(({ name }) => name === packageName);
24
+ });
25
+ }
26
+ }
27
+ exports.PullRequestFinder = PullRequestFinder;
@@ -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("./PullRequestFinder"), exports);
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPullRequestByNpmUpdatePackage = void 0;
4
+ const isPullRequestByNpmUpdatePackage = (pullRequest) => {
5
+ return pullRequest.labels.some(({ name }) => name === 'npm-update-package');
6
+ };
7
+ exports.isPullRequestByNpmUpdatePackage = isPullRequestByNpmUpdatePackage;
@@ -0,0 +1,15 @@
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("./closer"), exports);
14
+ __exportStar(require("./creator"), exports);
15
+ __exportStar(require("./finder"), exports);
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPullRequestMetadata = void 0;
4
+ const io_ts_1 = require("io-ts");
5
+ const semver_1 = require("../../../semver");
6
+ const PullRequestMetadata = (0, io_ts_1.type)({
7
+ version: io_ts_1.string,
8
+ packages: (0, io_ts_1.array)((0, io_ts_1.type)({
9
+ name: io_ts_1.string,
10
+ currentVersion: io_ts_1.string,
11
+ newVersion: io_ts_1.string,
12
+ level: (0, io_ts_1.union)([(0, io_ts_1.literal)(semver_1.SemVerLevel.Major), (0, io_ts_1.literal)(semver_1.SemVerLevel.Minor), (0, io_ts_1.literal)(semver_1.SemVerLevel.Patch)])
13
+ }))
14
+ });
15
+ exports.isPullRequestMetadata = PullRequestMetadata.is;
@@ -0,0 +1,19 @@
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.createPullRequestMetadata = void 0;
7
+ const package_json_1 = __importDefault(require("../../../../package.json"));
8
+ const createPullRequestMetadata = (outdatedPackages) => {
9
+ return {
10
+ version: package_json_1.default.version,
11
+ packages: outdatedPackages.map(({ name, currentVersion, newVersion, level }) => ({
12
+ name,
13
+ currentVersion: currentVersion.version,
14
+ newVersion: newVersion.version,
15
+ level
16
+ }))
17
+ };
18
+ };
19
+ exports.createPullRequestMetadata = createPullRequestMetadata;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractPullRequestMetadata = void 0;
4
+ const PullRequestMetadata_1 = require("./PullRequestMetadata");
5
+ const extractPullRequestMetadata = (pullRequestBody) => {
6
+ const matched = pullRequestBody.match(/<div id="npm-update-package-metadata">\s*```json\s*([\s\S]+?)\s*```\s*<\/div>/);
7
+ const json = matched === null || matched === void 0 ? void 0 : matched[1];
8
+ if (json === undefined) {
9
+ return undefined;
10
+ }
11
+ const metadata = JSON.parse(json);
12
+ if (!(0, PullRequestMetadata_1.isPullRequestMetadata)(metadata)) {
13
+ return undefined;
14
+ }
15
+ return metadata;
16
+ };
17
+ exports.extractPullRequestMetadata = extractPullRequestMetadata;
@@ -0,0 +1,15 @@
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("./createPullRequestMetadata"), exports);
14
+ __exportStar(require("./extractPullRequestMetadata"), exports);
15
+ __exportStar(require("./PullRequestMetadata"), 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("./toJSON"), exports);
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toJSON = void 0;
4
+ const toJSON = (value, options) => {
5
+ var _a;
6
+ const pretty = (_a = options === null || options === void 0 ? void 0 : options.pretty) !== null && _a !== void 0 ? _a : false;
7
+ if (pretty) {
8
+ return JSON.stringify(value, null, 2);
9
+ }
10
+ else {
11
+ return JSON.stringify(value);
12
+ }
13
+ };
14
+ exports.toJSON = toJSON;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isLogLevel = exports.LogLevel = void 0;
4
+ exports.LogLevel = {
5
+ Debug: 'debug',
6
+ Error: 'error',
7
+ Fatal: 'fatal',
8
+ Info: 'info',
9
+ Off: 'off',
10
+ Trace: 'trace',
11
+ Warn: 'warn'
12
+ };
13
+ const logLevels = Object.values(exports.LogLevel);
14
+ const isLogLevel = (value) => logLevels.includes(value);
15
+ exports.isLogLevel = isLogLevel;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createLogger = void 0;
4
+ const log4js_1 = require("log4js");
5
+ // TODO: add test
6
+ const createLogger = (logLevel) => {
7
+ const logger = (0, log4js_1.getLogger)();
8
+ logger.level = logLevel;
9
+ return logger;
10
+ };
11
+ exports.createLogger = createLogger;
@@ -0,0 +1,15 @@
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("./createLogger"), exports);
14
+ __exportStar(require("./Logger"), exports);
15
+ __exportStar(require("./LogLevel"), exports);
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.main = void 0;
4
+ const Either_1 = require("fp-ts/lib/Either");
5
+ const core_1 = require("./core");
6
+ const git_1 = require("./git");
7
+ const github_1 = require("./github");
8
+ const ncu_1 = require("./ncu");
9
+ const package_manager_1 = require("./package-manager");
10
+ const terminal_1 = require("./terminal");
11
+ // TODO: add test
12
+ const main = async ({ options, logger }) => {
13
+ logger.debug(`options=${JSON.stringify({
14
+ ...options,
15
+ githubToken: options.githubToken !== '' ? '***' : ''
16
+ })}`);
17
+ const ncu = new ncu_1.Ncu(logger);
18
+ const outdatedPackages = await ncu.check();
19
+ logger.debug(`outdatedPackages=${JSON.stringify(outdatedPackages)}`);
20
+ if (outdatedPackages.length === 0) {
21
+ logger.info('All packages are up-to-date.');
22
+ return;
23
+ }
24
+ logger.info(`There are ${outdatedPackages.length} outdated packages.`);
25
+ const terminal = new terminal_1.Terminal();
26
+ const git = new git_1.Git(terminal);
27
+ const gitRepo = await git.getRepository();
28
+ logger.debug(`gitRepo=${JSON.stringify(gitRepo)}`);
29
+ const github = (0, github_1.createGitHub)({
30
+ repository: gitRepo,
31
+ token: options.githubToken
32
+ });
33
+ const githubRepo = await github.fetchRepository({
34
+ owner: gitRepo.owner,
35
+ repo: gitRepo.name
36
+ });
37
+ logger.debug(`githubRepo=${JSON.stringify(githubRepo)}`);
38
+ const branches = await github.fetchBranches({
39
+ owner: gitRepo.owner,
40
+ repo: gitRepo.name
41
+ });
42
+ logger.debug(`branches=${JSON.stringify(branches)}`);
43
+ const pullRequests = await github.fetchPullRequests({
44
+ owner: gitRepo.owner,
45
+ repo: gitRepo.name
46
+ });
47
+ logger.debug(`pullRequests=${JSON.stringify(pullRequests)}`);
48
+ const labelCreator = new github_1.LabelCreator({
49
+ github,
50
+ gitRepo,
51
+ logger
52
+ });
53
+ await labelCreator.create({
54
+ name: 'npm-update-package',
55
+ description: 'Created by npm-update-package',
56
+ color: 'A00F21'
57
+ });
58
+ const branchFinder = new github_1.BranchFinder(branches);
59
+ const packageManager = (0, package_manager_1.createPackageManager)({
60
+ terminal,
61
+ packageManager: options.packageManager
62
+ });
63
+ const pullRequestTitleCreator = new github_1.PullRequestTitleCreator(options.pullRequestTitle);
64
+ const pullRequestCreator = new github_1.PullRequestCreator({
65
+ github,
66
+ gitRepo,
67
+ githubRepo,
68
+ pullRequestTitleCreator,
69
+ logger,
70
+ reviewers: options.reviewers
71
+ });
72
+ const commitMessageCreator = new git_1.CommitMessageCreator(options.commitMessage);
73
+ const pullRequestFinder = new github_1.PullRequestFinder(pullRequests);
74
+ const pullRequestCloser = new github_1.PullRequestCloser(github);
75
+ const outdatedPackageProcessor = new core_1.OutdatedPackageProcessor({
76
+ git,
77
+ ncu,
78
+ packageManager,
79
+ pullRequestCreator,
80
+ branchFinder,
81
+ logger,
82
+ commitMessageCreator,
83
+ pullRequestFinder,
84
+ pullRequestCloser
85
+ });
86
+ const outdatedPackagesProcessor = new core_1.OutdatedPackagesProcessor({
87
+ outdatedPackageProcessor,
88
+ logger
89
+ });
90
+ const results = await outdatedPackagesProcessor.process(outdatedPackages);
91
+ logger.debug(`results=${JSON.stringify(results)}`);
92
+ const succeededResults = results.filter(Either_1.isRight).map(({ right }) => right);
93
+ logger.debug(`succeededResults=${JSON.stringify(succeededResults)}`);
94
+ const createdPackages = succeededResults
95
+ .filter(({ created }) => created)
96
+ .map(({ outdatedPackage }) => outdatedPackage);
97
+ logger.debug(`createdPackages=${JSON.stringify(createdPackages)}`);
98
+ const skippedPackages = succeededResults
99
+ .filter(({ skipped }) => skipped)
100
+ .map(({ outdatedPackage }) => outdatedPackage);
101
+ logger.debug(`skippedPackages=${JSON.stringify(skippedPackages)}`);
102
+ const failedResults = results.filter(Either_1.isLeft).map(({ left }) => left);
103
+ logger.debug(`failedResults=${JSON.stringify(failedResults)}`);
104
+ const failedPackages = failedResults.map(({ outdatedPackage }) => outdatedPackage);
105
+ logger.debug(`failedPackages=${JSON.stringify(failedPackages)}`);
106
+ // TODO: show as table
107
+ logger.info(`Processed ${succeededResults.length + failedPackages.length} packages:
108
+ - ${createdPackages.length} packages: created (${createdPackages.map(({ name }) => name).join(',')})
109
+ - ${skippedPackages.length} packages: skipped: (${skippedPackages.map(({ name }) => name).join(',')})
110
+ - ${failedPackages.length} packages: failed: (${failedPackages.map(({ name }) => name).join(',')})`);
111
+ };
112
+ exports.main = main;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Ncu = void 0;
4
+ const npm_check_updates_1 = require("npm-check-updates");
5
+ const type_guards_1 = require("type-guards");
6
+ const file_1 = require("../file");
7
+ const package_json_1 = require("../package-json");
8
+ const semver_1 = require("../semver");
9
+ const NcuResult_1 = require("./NcuResult");
10
+ // TODO: add test
11
+ class Ncu {
12
+ constructor(logger) {
13
+ this.logger = logger;
14
+ }
15
+ async check() {
16
+ return await this.run({
17
+ jsonUpgraded: true
18
+ });
19
+ }
20
+ async update(outdatedPackage) {
21
+ return await this.run({
22
+ jsonUpgraded: true,
23
+ filter: outdatedPackage.name,
24
+ upgrade: true
25
+ });
26
+ }
27
+ async run(options) {
28
+ // Read package.json before running ncu
29
+ const json = await (0, file_1.readFile)('./package.json');
30
+ const pkg = (0, package_json_1.parsePackageJson)(json);
31
+ this.logger.debug(`pkg=${JSON.stringify(pkg)}`);
32
+ const result = await (0, npm_check_updates_1.run)(options);
33
+ this.logger.debug(`result=${JSON.stringify(result)}`);
34
+ if (!(0, NcuResult_1.isNcuResult)(result)) {
35
+ throw new Error('Failed to running ncu.');
36
+ }
37
+ const currentDependencies = {
38
+ ...pkg.dependencies,
39
+ ...pkg.devDependencies,
40
+ ...pkg.peerDependencies,
41
+ ...pkg.optionalDependencies
42
+ };
43
+ const resultEntries = Object.entries(result);
44
+ const outdatedPackages = resultEntries
45
+ .map(([name, newVersionString]) => {
46
+ const currentVersionString = currentDependencies[name];
47
+ if (currentVersionString === undefined) {
48
+ return undefined;
49
+ }
50
+ const currentVersion = semver_1.SemVer.of(currentVersionString);
51
+ const newVersion = semver_1.SemVer.of(newVersionString);
52
+ const level = (0, semver_1.compareSemVers)(currentVersion, newVersion);
53
+ if (level === undefined) {
54
+ return undefined;
55
+ }
56
+ const outdatedPackage = {
57
+ name,
58
+ currentVersion,
59
+ newVersion,
60
+ level
61
+ };
62
+ return outdatedPackage;
63
+ })
64
+ .filter(type_guards_1.isNotUndefined);
65
+ if (resultEntries.length !== outdatedPackages.length) {
66
+ throw new Error('Failed to running ncu.');
67
+ }
68
+ return outdatedPackages;
69
+ }
70
+ }
71
+ exports.Ncu = Ncu;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNcuResult = exports.NcuResult = void 0;
4
+ const io_ts_1 = require("io-ts");
5
+ exports.NcuResult = (0, io_ts_1.record)(io_ts_1.string, io_ts_1.string);
6
+ exports.isNcuResult = exports.NcuResult.is;
@@ -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("./Ncu"), exports);
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOptionType = exports.OptionType = void 0;
4
+ exports.OptionType = {
5
+ String: 'string',
6
+ StringArray: 'string[]'
7
+ };
8
+ const optionTypes = Object.values(exports.OptionType);
9
+ const isOptionType = (value) => optionTypes.includes(value);
10
+ exports.isOptionType = isOptionType;