npm-update-package 3.0.22 → 4.0.0-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/dist/package.json +5 -4
- package/dist/src/bin/npm-update-package.js +14 -20
- package/dist/src/core/FailedResult.js +1 -2
- package/dist/src/core/OutdatedPackage.js +1 -2
- package/dist/src/core/OutdatedPackagesProcessor.js +3 -7
- package/dist/src/core/PackageUpdater.js +1 -5
- package/dist/src/core/SucceededResult.js +1 -2
- package/dist/src/file/canReadWrite.js +3 -10
- package/dist/src/file/readFile.js +3 -10
- package/dist/src/git/CommitMessageCreator.js +3 -7
- package/dist/src/git/Git.js +1 -5
- package/dist/src/git/GitConfigInitializer.js +1 -5
- package/dist/src/git/GitRepository.js +5 -12
- package/dist/src/git/GitTransaction.js +4 -8
- package/dist/src/git/createBranchName.js +1 -5
- package/dist/src/github/GitHub.js +4 -8
- package/dist/src/github/branch/finder/BranchFinder.js +1 -5
- package/dist/src/github/createGitHub.js +5 -9
- package/dist/src/github/createOctokit.js +7 -14
- package/dist/src/github/errors/NotFoundError.js +4 -8
- package/dist/src/github/label/creator/LabelCreator.js +7 -11
- package/dist/src/github/pull-request/closer/PullRequestCloser.js +1 -5
- package/dist/src/github/pull-request/closer/PullRequestsCloser.js +3 -7
- package/dist/src/github/pull-request/creator/AssigneesAdder.js +3 -7
- package/dist/src/github/pull-request/creator/GitHubUrlOptimizer.js +3 -7
- package/dist/src/github/pull-request/creator/LabelsAdder.js +1 -5
- package/dist/src/github/pull-request/creator/PackageDiffsSectionCreator.js +1 -5
- package/dist/src/github/pull-request/creator/PullRequestBodyCreator.js +15 -18
- package/dist/src/github/pull-request/creator/PullRequestCreator.js +5 -9
- package/dist/src/github/pull-request/creator/PullRequestTitleCreator.js +3 -7
- package/dist/src/github/pull-request/creator/ReleaseNotesSectionCreator.js +1 -5
- package/dist/src/github/pull-request/creator/ReviewersAdder.js +3 -7
- package/dist/src/github/pull-request/creator/createFooter.js +3 -10
- package/dist/src/github/pull-request/creator/createMetadataSection.js +5 -9
- package/dist/src/github/pull-request/creator/createNotesSection.js +1 -5
- package/dist/src/github/pull-request/creator/createOutdatedPackagesTable.js +1 -5
- package/dist/src/github/pull-request/finder/PullRequestFinder.js +5 -9
- package/dist/src/github/pull-request/finder/isPullRequestByNpmUpdatePackage.js +1 -5
- package/dist/src/github/pull-request/metadata/PullRequestMetadata.js +10 -13
- package/dist/src/github/pull-request/metadata/createPullRequestMetadata.js +3 -10
- package/dist/src/github/pull-request/metadata/extractPullRequestMetadata.js +3 -7
- package/dist/src/github/releases/Release.js +1 -2
- package/dist/src/github/releases/fetcher/ReleasesFetcher.js +9 -16
- package/dist/src/json/toJSON.js +1 -5
- package/dist/src/logger/LogLevel.js +3 -7
- package/dist/src/logger/logger.js +2 -5
- package/dist/src/main.js +73 -58
- package/dist/src/npm-check-updates/Dependency.js +3 -7
- package/dist/src/npm-check-updates/NpmCheckUpdates.js +32 -34
- package/dist/src/npm-check-updates/NpmCheckUpdatesResult.js +3 -6
- package/dist/src/npm-check-updates/createDepOptionValue.js +3 -7
- package/dist/src/npm-check-updates/toDependency.js +13 -17
- package/dist/src/options/CLIOption.js +1 -2
- package/dist/src/options/OptionType.js +3 -7
- package/dist/src/options/Options.js +46 -49
- package/dist/src/options/cliOptions.js +50 -53
- package/dist/src/options/createOptions.js +11 -18
- package/dist/src/options/initOptions.js +4 -8
- package/dist/src/options/parseBooleanOption.js +3 -7
- package/dist/src/options/parseNumberOption.js +3 -7
- package/dist/src/options/toCommanderOption.js +14 -18
- package/dist/src/outdated-package-processor/OutdatedPackageProcessor.js +1 -2
- package/dist/src/outdated-package-processor/OutdatedPackageProcessorCreator.js +11 -15
- package/dist/src/outdated-package-processor/OutdatedPullRequestStrategy.js +3 -7
- package/dist/src/outdated-package-processor/create/Create.js +17 -20
- package/dist/src/outdated-package-processor/recreate/Recreate.js +18 -21
- package/dist/src/outdated-package-processor/skip/Skip.js +20 -23
- package/dist/src/package-json/DependencyType.js +3 -7
- package/dist/src/package-json/PackageMetadata.js +15 -18
- package/dist/src/package-json/PackageMetadataDependencies.js +3 -6
- package/dist/src/package-json/PackageMetadataRepository.js +4 -7
- package/dist/src/package-json/extractRepository.js +3 -7
- package/dist/src/package-json/parsePackageJson.js +3 -7
- package/dist/src/package-json/readPackageJson.js +5 -9
- package/dist/src/package-manager/PackageManager.js +1 -2
- package/dist/src/package-manager/PackageManagerCreator.js +15 -19
- package/dist/src/package-manager/PackageManagerName.js +3 -7
- package/dist/src/package-manager/detectPackageManager.js +7 -11
- package/dist/src/package-manager/npm/Npm.js +3 -7
- package/dist/src/package-manager/npm/NpmVersions.js +3 -6
- package/dist/src/package-manager/yarn/Yarn.js +3 -7
- package/dist/src/package-manager/yarn/YarnVersions.js +5 -8
- package/dist/src/semver/SemVer.js +3 -7
- package/dist/src/semver/SemVerLevel.js +3 -7
- package/dist/src/semver/compareSemVers.js +5 -9
- package/dist/src/terminal/Terminal.js +3 -10
- package/dist/src/util/range.js +1 -5
- package/dist/src/util/sampleSize.js +3 -10
- package/dist/src/util/sleep.js +1 -5
- package/package.json +5 -4
- package/dist/src/core/index.js +0 -21
- package/dist/src/file/index.js +0 -18
- package/dist/src/git/index.js +0 -22
- package/dist/src/github/branch/finder/index.js +0 -17
- package/dist/src/github/branch/index.js +0 -17
- package/dist/src/github/errors/index.js +0 -17
- package/dist/src/github/index.js +0 -22
- package/dist/src/github/label/creator/index.js +0 -17
- package/dist/src/github/label/index.js +0 -17
- package/dist/src/github/pull-request/closer/index.js +0 -18
- package/dist/src/github/pull-request/creator/index.js +0 -25
- package/dist/src/github/pull-request/finder/index.js +0 -17
- package/dist/src/github/pull-request/index.js +0 -19
- package/dist/src/github/pull-request/metadata/index.js +0 -19
- package/dist/src/github/releases/fetcher/index.js +0 -17
- package/dist/src/github/releases/index.js +0 -18
- package/dist/src/json/index.js +0 -17
- package/dist/src/logger/index.js +0 -18
- package/dist/src/npm-check-updates/index.js +0 -17
- package/dist/src/options/index.js +0 -18
- package/dist/src/outdated-package-processor/create/index.js +0 -17
- package/dist/src/outdated-package-processor/index.js +0 -19
- package/dist/src/outdated-package-processor/recreate/index.js +0 -17
- package/dist/src/outdated-package-processor/skip/index.js +0 -17
- package/dist/src/package-json/index.js +0 -21
- package/dist/src/package-manager/index.js +0 -21
- package/dist/src/package-manager/npm/index.js +0 -17
- package/dist/src/package-manager/yarn/index.js +0 -17
- package/dist/src/semver/index.js +0 -19
- package/dist/src/terminal/index.js +0 -17
- package/dist/src/util/index.js +0 -19
|
@@ -1,41 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const parseBooleanOption_1 = require("./parseBooleanOption");
|
|
7
|
-
const parseNumberOption_1 = require("./parseNumberOption");
|
|
8
|
-
const toCommanderOption = (cliOption) => {
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { OptionType } from './OptionType.js';
|
|
3
|
+
import { parseBooleanOption } from './parseBooleanOption.js';
|
|
4
|
+
import { parseNumberOption } from './parseNumberOption.js';
|
|
5
|
+
export const toCommanderOption = (cliOption) => {
|
|
9
6
|
const argument = createArgumentString(cliOption);
|
|
10
|
-
const option = new
|
|
7
|
+
const option = new Option(`--${cliOption.name} ${argument}`, cliOption.description);
|
|
11
8
|
if (cliOption.choices !== undefined) {
|
|
12
9
|
option.choices(cliOption.choices);
|
|
13
10
|
}
|
|
14
11
|
if (!cliOption.required && cliOption.default !== undefined) {
|
|
15
12
|
option.default(cliOption.default);
|
|
16
13
|
}
|
|
17
|
-
if (cliOption.type ===
|
|
18
|
-
option.argParser(
|
|
14
|
+
if (cliOption.type === OptionType.Boolean) {
|
|
15
|
+
option.argParser(parseBooleanOption);
|
|
19
16
|
}
|
|
20
|
-
if (cliOption.type ===
|
|
21
|
-
option.argParser(
|
|
17
|
+
if (cliOption.type === OptionType.Number) {
|
|
18
|
+
option.argParser(parseNumberOption);
|
|
22
19
|
}
|
|
23
20
|
return option;
|
|
24
21
|
};
|
|
25
|
-
exports.toCommanderOption = toCommanderOption;
|
|
26
22
|
const createArgumentString = (cliOption) => {
|
|
27
23
|
const name = createArgumentNameString(cliOption.type);
|
|
28
24
|
return cliOption.required ? `<${name}>` : `[${name}]`;
|
|
29
25
|
};
|
|
30
26
|
const createArgumentNameString = (optionType) => {
|
|
31
27
|
switch (optionType) {
|
|
32
|
-
case
|
|
28
|
+
case OptionType.Boolean:
|
|
33
29
|
return 'boolean';
|
|
34
|
-
case
|
|
30
|
+
case OptionType.Number:
|
|
35
31
|
return 'number';
|
|
36
|
-
case
|
|
32
|
+
case OptionType.String:
|
|
37
33
|
return 'string';
|
|
38
|
-
case
|
|
34
|
+
case OptionType.StringArray:
|
|
39
35
|
return 'strings...';
|
|
40
36
|
}
|
|
41
37
|
};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const recreate_1 = require("./recreate");
|
|
7
|
-
const skip_1 = require("./skip");
|
|
8
|
-
class OutdatedPackageProcessorCreator {
|
|
1
|
+
import { Create } from './create/Create.js';
|
|
2
|
+
import { OutdatedPullRequestStrategy } from './OutdatedPullRequestStrategy.js';
|
|
3
|
+
import { Recreate } from './recreate/Recreate.js';
|
|
4
|
+
import { Skip } from './skip/Skip.js';
|
|
5
|
+
export class OutdatedPackageProcessorCreator {
|
|
9
6
|
options;
|
|
10
7
|
constructor(options) {
|
|
11
8
|
this.options = options;
|
|
12
9
|
}
|
|
13
10
|
create({ git, packageManager, pullRequestCreator, branchFinder, commitMessageCreator, pullRequestFinder, pullRequestsCloser, packageUpdater }) {
|
|
14
11
|
switch (this.options.outdatedPrStrategy) {
|
|
15
|
-
case
|
|
16
|
-
return new
|
|
12
|
+
case OutdatedPullRequestStrategy.Create:
|
|
13
|
+
return new Create({
|
|
17
14
|
git,
|
|
18
15
|
packageManager,
|
|
19
16
|
pullRequestCreator,
|
|
@@ -21,8 +18,8 @@ class OutdatedPackageProcessorCreator {
|
|
|
21
18
|
commitMessageCreator,
|
|
22
19
|
packageUpdater
|
|
23
20
|
});
|
|
24
|
-
case
|
|
25
|
-
return new
|
|
21
|
+
case OutdatedPullRequestStrategy.Recreate:
|
|
22
|
+
return new Recreate({
|
|
26
23
|
git,
|
|
27
24
|
packageManager,
|
|
28
25
|
pullRequestCreator,
|
|
@@ -32,8 +29,8 @@ class OutdatedPackageProcessorCreator {
|
|
|
32
29
|
pullRequestsCloser,
|
|
33
30
|
packageUpdater
|
|
34
31
|
});
|
|
35
|
-
case
|
|
36
|
-
return new
|
|
32
|
+
case OutdatedPullRequestStrategy.Skip:
|
|
33
|
+
return new Skip({
|
|
37
34
|
git,
|
|
38
35
|
packageManager,
|
|
39
36
|
pullRequestCreator,
|
|
@@ -45,4 +42,3 @@ class OutdatedPackageProcessorCreator {
|
|
|
45
42
|
}
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
exports.OutdatedPackageProcessorCreator = OutdatedPackageProcessorCreator;
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isOutdatedPullRequestStrategy = exports.OutdatedPullRequestStrategy = void 0;
|
|
4
|
-
exports.OutdatedPullRequestStrategy = {
|
|
1
|
+
export const OutdatedPullRequestStrategy = {
|
|
5
2
|
Create: 'create',
|
|
6
3
|
Recreate: 'recreate',
|
|
7
4
|
Skip: 'skip'
|
|
8
5
|
};
|
|
9
|
-
const outdatedPullRequestStrategies = Object.values(
|
|
6
|
+
const outdatedPullRequestStrategies = Object.values(OutdatedPullRequestStrategy);
|
|
10
7
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
11
|
-
const isOutdatedPullRequestStrategy = (value) => outdatedPullRequestStrategies.includes(value);
|
|
12
|
-
exports.isOutdatedPullRequestStrategy = isOutdatedPullRequestStrategy;
|
|
8
|
+
export const isOutdatedPullRequestStrategy = (value) => outdatedPullRequestStrategies.includes(value);
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const git_1 = require("../../git");
|
|
6
|
-
const logger_1 = require("../../logger");
|
|
1
|
+
import { left, right } from 'fp-ts/lib/Either.js';
|
|
2
|
+
import { createBranchName } from '../../git/createBranchName.js';
|
|
3
|
+
import { GitTransaction } from '../../git/GitTransaction.js';
|
|
4
|
+
import { logger } from '../../logger/logger.js';
|
|
7
5
|
// TODO: Add test
|
|
8
|
-
class Create {
|
|
6
|
+
export class Create {
|
|
9
7
|
git;
|
|
10
8
|
packageManager;
|
|
11
9
|
pullRequestCreator;
|
|
@@ -21,16 +19,16 @@ class Create {
|
|
|
21
19
|
this.packageUpdater = packageUpdater;
|
|
22
20
|
}
|
|
23
21
|
async process(outdatedPackage) {
|
|
24
|
-
const branchName =
|
|
25
|
-
|
|
22
|
+
const branchName = createBranchName(outdatedPackage);
|
|
23
|
+
logger.trace(`branchName=${branchName}`);
|
|
26
24
|
if (this.branchFinder.findByName(branchName) !== undefined) {
|
|
27
|
-
|
|
28
|
-
return
|
|
25
|
+
logger.info(`Skip ${outdatedPackage.name} because ${branchName} branch already exists on remote.`);
|
|
26
|
+
return right({
|
|
29
27
|
outdatedPackage,
|
|
30
28
|
skipped: true
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
|
-
const transaction = new
|
|
31
|
+
const transaction = new GitTransaction({
|
|
34
32
|
git: this.git,
|
|
35
33
|
branchName,
|
|
36
34
|
files: [this.packageManager.packageFile, this.packageManager.lockFile]
|
|
@@ -40,29 +38,28 @@ class Create {
|
|
|
40
38
|
await this.packageUpdater.update(outdatedPackage);
|
|
41
39
|
}
|
|
42
40
|
catch (error) {
|
|
43
|
-
|
|
44
|
-
return
|
|
41
|
+
logger.error(error);
|
|
42
|
+
return left({
|
|
45
43
|
outdatedPackage,
|
|
46
44
|
error
|
|
47
45
|
});
|
|
48
46
|
}
|
|
49
|
-
|
|
47
|
+
logger.info(`${outdatedPackage.name} has updated from v${outdatedPackage.currentVersion.version} to v${outdatedPackage.newVersion.version}`);
|
|
50
48
|
await git.add(this.packageManager.packageFile, this.packageManager.lockFile);
|
|
51
49
|
const message = this.commitMessageCreator.create(outdatedPackage);
|
|
52
|
-
|
|
50
|
+
logger.trace(`message=${message}`);
|
|
53
51
|
await git.commit(message);
|
|
54
52
|
await git.push(branchName);
|
|
55
53
|
const pullRequest = await this.pullRequestCreator.create({
|
|
56
54
|
outdatedPackage,
|
|
57
55
|
branchName
|
|
58
56
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
return
|
|
57
|
+
logger.trace(`pullRequest=${JSON.stringify(pullRequest)}`);
|
|
58
|
+
logger.info(`Pull request for ${outdatedPackage.name} has created. ${pullRequest.html_url}`);
|
|
59
|
+
return right({
|
|
62
60
|
outdatedPackage,
|
|
63
61
|
created: true
|
|
64
62
|
});
|
|
65
63
|
});
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
|
-
exports.Create = Create;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const git_1 = require("../../git");
|
|
6
|
-
const logger_1 = require("../../logger");
|
|
1
|
+
import { left, right } from 'fp-ts/lib/Either.js';
|
|
2
|
+
import { createBranchName } from '../../git/createBranchName.js';
|
|
3
|
+
import { GitTransaction } from '../../git/GitTransaction.js';
|
|
4
|
+
import { logger } from '../../logger/logger.js';
|
|
7
5
|
// TODO: Add test
|
|
8
|
-
class Recreate {
|
|
6
|
+
export class Recreate {
|
|
9
7
|
git;
|
|
10
8
|
packageManager;
|
|
11
9
|
pullRequestCreator;
|
|
@@ -25,16 +23,16 @@ class Recreate {
|
|
|
25
23
|
this.pullRequestsCloser = pullRequestsCloser;
|
|
26
24
|
}
|
|
27
25
|
async process(outdatedPackage) {
|
|
28
|
-
const branchName =
|
|
29
|
-
|
|
26
|
+
const branchName = createBranchName(outdatedPackage);
|
|
27
|
+
logger.trace(`branchName=${branchName}`);
|
|
30
28
|
if (this.branchFinder.findByName(branchName) !== undefined) {
|
|
31
|
-
|
|
32
|
-
return
|
|
29
|
+
logger.info(`Skip ${outdatedPackage.name} because ${branchName} branch already exists on remote.`);
|
|
30
|
+
return right({
|
|
33
31
|
outdatedPackage,
|
|
34
32
|
skipped: true
|
|
35
33
|
});
|
|
36
34
|
}
|
|
37
|
-
const transaction = new
|
|
35
|
+
const transaction = new GitTransaction({
|
|
38
36
|
git: this.git,
|
|
39
37
|
branchName,
|
|
40
38
|
files: [this.packageManager.packageFile, this.packageManager.lockFile]
|
|
@@ -44,32 +42,31 @@ class Recreate {
|
|
|
44
42
|
await this.packageUpdater.update(outdatedPackage);
|
|
45
43
|
}
|
|
46
44
|
catch (error) {
|
|
47
|
-
|
|
48
|
-
return
|
|
45
|
+
logger.error(error);
|
|
46
|
+
return left({
|
|
49
47
|
outdatedPackage,
|
|
50
48
|
error
|
|
51
49
|
});
|
|
52
50
|
}
|
|
53
|
-
|
|
51
|
+
logger.info(`${outdatedPackage.name} has updated from v${outdatedPackage.currentVersion.version} to v${outdatedPackage.newVersion.version}`);
|
|
54
52
|
await git.add(this.packageManager.packageFile, this.packageManager.lockFile);
|
|
55
53
|
const message = this.commitMessageCreator.create(outdatedPackage);
|
|
56
|
-
|
|
54
|
+
logger.trace(`message=${message}`);
|
|
57
55
|
await git.commit(message);
|
|
58
56
|
await git.push(branchName);
|
|
59
57
|
const pullRequest = await this.pullRequestCreator.create({
|
|
60
58
|
outdatedPackage,
|
|
61
59
|
branchName
|
|
62
60
|
});
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
logger.trace(`pullRequest=${JSON.stringify(pullRequest)}`);
|
|
62
|
+
logger.info(`Pull request for ${outdatedPackage.name} has created. ${pullRequest.html_url}`);
|
|
65
63
|
const pullRequests = this.pullRequestFinder.findByPackageName(outdatedPackage.name);
|
|
66
|
-
|
|
64
|
+
logger.trace(`pullRequests=${JSON.stringify(pullRequests)}`);
|
|
67
65
|
await this.pullRequestsCloser.close(pullRequests);
|
|
68
|
-
return
|
|
66
|
+
return right({
|
|
69
67
|
outdatedPackage,
|
|
70
68
|
created: true
|
|
71
69
|
});
|
|
72
70
|
});
|
|
73
71
|
}
|
|
74
72
|
}
|
|
75
|
-
exports.Recreate = Recreate;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const git_1 = require("../../git");
|
|
6
|
-
const logger_1 = require("../../logger");
|
|
1
|
+
import { left, right } from 'fp-ts/lib/Either.js';
|
|
2
|
+
import { createBranchName } from '../../git/createBranchName.js';
|
|
3
|
+
import { GitTransaction } from '../../git/GitTransaction.js';
|
|
4
|
+
import { logger } from '../../logger/logger.js';
|
|
7
5
|
// TODO: Add test
|
|
8
|
-
class Skip {
|
|
6
|
+
export class Skip {
|
|
9
7
|
git;
|
|
10
8
|
packageManager;
|
|
11
9
|
pullRequestCreator;
|
|
@@ -23,25 +21,25 @@ class Skip {
|
|
|
23
21
|
this.pullRequestFinder = pullRequestFinder;
|
|
24
22
|
}
|
|
25
23
|
async process(outdatedPackage) {
|
|
26
|
-
const branchName =
|
|
27
|
-
|
|
24
|
+
const branchName = createBranchName(outdatedPackage);
|
|
25
|
+
logger.trace(`branchName=${branchName}`);
|
|
28
26
|
if (this.branchFinder.findByName(branchName) !== undefined) {
|
|
29
|
-
|
|
30
|
-
return
|
|
27
|
+
logger.info(`Skip ${outdatedPackage.name} because ${branchName} branch already exists on remote.`);
|
|
28
|
+
return right({
|
|
31
29
|
outdatedPackage,
|
|
32
30
|
skipped: true
|
|
33
31
|
});
|
|
34
32
|
}
|
|
35
33
|
const pullRequests = this.pullRequestFinder.findByPackageName(outdatedPackage.name);
|
|
36
|
-
|
|
34
|
+
logger.trace(`pullRequests=${JSON.stringify(pullRequests)}`);
|
|
37
35
|
if (pullRequests.length > 0) {
|
|
38
|
-
|
|
39
|
-
return
|
|
36
|
+
logger.info(`Skip ${outdatedPackage.name} because outdated pull requests exist.`);
|
|
37
|
+
return right({
|
|
40
38
|
outdatedPackage,
|
|
41
39
|
skipped: true
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
|
-
const transaction = new
|
|
42
|
+
const transaction = new GitTransaction({
|
|
45
43
|
git: this.git,
|
|
46
44
|
branchName,
|
|
47
45
|
files: [this.packageManager.packageFile, this.packageManager.lockFile]
|
|
@@ -51,29 +49,28 @@ class Skip {
|
|
|
51
49
|
await this.packageUpdater.update(outdatedPackage);
|
|
52
50
|
}
|
|
53
51
|
catch (error) {
|
|
54
|
-
|
|
55
|
-
return
|
|
52
|
+
logger.error(error);
|
|
53
|
+
return left({
|
|
56
54
|
outdatedPackage,
|
|
57
55
|
error
|
|
58
56
|
});
|
|
59
57
|
}
|
|
60
|
-
|
|
58
|
+
logger.info(`${outdatedPackage.name} has updated from v${outdatedPackage.currentVersion.version} to v${outdatedPackage.newVersion.version}`);
|
|
61
59
|
await git.add(this.packageManager.packageFile, this.packageManager.lockFile);
|
|
62
60
|
const message = this.commitMessageCreator.create(outdatedPackage);
|
|
63
|
-
|
|
61
|
+
logger.trace(`message=${message}`);
|
|
64
62
|
await git.commit(message);
|
|
65
63
|
await git.push(branchName);
|
|
66
64
|
const pullRequest = await this.pullRequestCreator.create({
|
|
67
65
|
outdatedPackage,
|
|
68
66
|
branchName
|
|
69
67
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return
|
|
68
|
+
logger.trace(`pullRequest=${JSON.stringify(pullRequest)}`);
|
|
69
|
+
logger.info(`Pull request for ${outdatedPackage.name} has created. ${pullRequest.html_url}`);
|
|
70
|
+
return right({
|
|
73
71
|
outdatedPackage,
|
|
74
72
|
created: true
|
|
75
73
|
});
|
|
76
74
|
});
|
|
77
75
|
}
|
|
78
76
|
}
|
|
79
|
-
exports.Skip = Skip;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isDependencyType = exports.DependencyType = void 0;
|
|
4
|
-
exports.DependencyType = {
|
|
1
|
+
export const DependencyType = {
|
|
5
2
|
Dependencies: 'dependencies',
|
|
6
3
|
DevDependencies: 'devDependencies',
|
|
7
4
|
PeerDependencies: 'peerDependencies',
|
|
8
5
|
BundledDependencies: 'bundledDependencies',
|
|
9
6
|
OptionalDependencies: 'optionalDependencies'
|
|
10
7
|
};
|
|
11
|
-
const dependencyTypes = Object.values(
|
|
8
|
+
const dependencyTypes = Object.values(DependencyType);
|
|
12
9
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
13
|
-
const isDependencyType = (value) => dependencyTypes.includes(value);
|
|
14
|
-
exports.isDependencyType = isDependencyType;
|
|
10
|
+
export const isDependencyType = (value) => dependencyTypes.includes(value);
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
(0, io_ts_1.type)({
|
|
9
|
-
name: io_ts_1.string,
|
|
10
|
-
version: io_ts_1.string
|
|
1
|
+
import { intersection, partial, string, type, union } from 'io-ts';
|
|
2
|
+
import { PackageMetadataDependencies } from './PackageMetadataDependencies.js';
|
|
3
|
+
import { PackageMetadataRepository } from './PackageMetadataRepository.js';
|
|
4
|
+
const PackageMetadata = intersection([
|
|
5
|
+
type({
|
|
6
|
+
name: string,
|
|
7
|
+
version: string
|
|
11
8
|
}),
|
|
12
|
-
|
|
13
|
-
dependencies:
|
|
14
|
-
devDependencies:
|
|
15
|
-
peerDependencies:
|
|
16
|
-
bundledDependencies:
|
|
17
|
-
optionalDependencies:
|
|
18
|
-
repository:
|
|
9
|
+
partial({
|
|
10
|
+
dependencies: PackageMetadataDependencies,
|
|
11
|
+
devDependencies: PackageMetadataDependencies,
|
|
12
|
+
peerDependencies: PackageMetadataDependencies,
|
|
13
|
+
bundledDependencies: PackageMetadataDependencies,
|
|
14
|
+
optionalDependencies: PackageMetadataDependencies,
|
|
15
|
+
repository: union([string, PackageMetadataRepository])
|
|
19
16
|
})
|
|
20
17
|
]);
|
|
21
|
-
|
|
18
|
+
export const isPackageMetadata = PackageMetadata.is;
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const io_ts_1 = require("io-ts");
|
|
5
|
-
exports.PackageMetadataDependencies = (0, io_ts_1.record)(io_ts_1.string, io_ts_1.string);
|
|
6
|
-
exports.isPackageMetadataDependencies = exports.PackageMetadataDependencies.is;
|
|
1
|
+
import { record, string } from 'io-ts';
|
|
2
|
+
export const PackageMetadataDependencies = record(string, string);
|
|
3
|
+
export const isPackageMetadataDependencies = PackageMetadataDependencies.is;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const io_ts_1 = require("io-ts");
|
|
5
|
-
exports.PackageMetadataRepository = (0, io_ts_1.type)({
|
|
6
|
-
url: io_ts_1.string
|
|
1
|
+
import { string, type } from 'io-ts';
|
|
2
|
+
export const PackageMetadataRepository = type({
|
|
3
|
+
url: string
|
|
7
4
|
});
|
|
8
|
-
|
|
5
|
+
export const isPackageMetadataRepository = PackageMetadataRepository.is;
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.extractRepository = void 0;
|
|
4
|
-
const git_1 = require("../git");
|
|
5
|
-
const extractRepository = (pkg) => {
|
|
1
|
+
import { GitRepository } from '../git/GitRepository.js';
|
|
2
|
+
export const extractRepository = (pkg) => {
|
|
6
3
|
const { repository } = pkg;
|
|
7
4
|
if (repository === undefined) {
|
|
8
5
|
return undefined;
|
|
9
6
|
}
|
|
10
7
|
const repositoryString = typeof repository === 'string' ? repository : repository.url;
|
|
11
|
-
return
|
|
8
|
+
return GitRepository.of(repositoryString);
|
|
12
9
|
};
|
|
13
|
-
exports.extractRepository = extractRepository;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.parsePackageJson = void 0;
|
|
4
|
-
const PackageMetadata_1 = require("./PackageMetadata");
|
|
5
|
-
const parsePackageJson = (json) => {
|
|
1
|
+
import { isPackageMetadata } from './PackageMetadata.js';
|
|
2
|
+
export const parsePackageJson = (json) => {
|
|
6
3
|
const parsed = JSON.parse(json);
|
|
7
|
-
if (
|
|
4
|
+
if (isPackageMetadata(parsed)) {
|
|
8
5
|
return parsed;
|
|
9
6
|
}
|
|
10
7
|
else {
|
|
11
8
|
throw new Error(`Failed to parse package.json. json=${json}`);
|
|
12
9
|
}
|
|
13
10
|
};
|
|
14
|
-
exports.parsePackageJson = parsePackageJson;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.readPackageJson = void 0;
|
|
4
|
-
const file_1 = require("../file");
|
|
5
|
-
const parsePackageJson_1 = require("./parsePackageJson");
|
|
1
|
+
import { readFile } from '../file/readFile.js';
|
|
2
|
+
import { parsePackageJson } from './parsePackageJson.js';
|
|
6
3
|
// TODO: Add test
|
|
7
|
-
const readPackageJson = async (path) => {
|
|
8
|
-
const json = await
|
|
9
|
-
return
|
|
4
|
+
export const readPackageJson = async (path) => {
|
|
5
|
+
const json = await readFile(path);
|
|
6
|
+
return parsePackageJson(json);
|
|
10
7
|
};
|
|
11
|
-
exports.readPackageJson = readPackageJson;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1
|
+
export {};
|
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const PackageManagerName_1 = require("./PackageManagerName");
|
|
8
|
-
const yarn_1 = require("./yarn");
|
|
9
|
-
class PackageManagerCreator {
|
|
1
|
+
import { logger } from '../logger/logger.js';
|
|
2
|
+
import { detectPackageManager } from './detectPackageManager.js';
|
|
3
|
+
import { Npm } from './npm/Npm.js';
|
|
4
|
+
import { PackageManagerName } from './PackageManagerName.js';
|
|
5
|
+
import { Yarn } from './yarn/Yarn.js';
|
|
6
|
+
export class PackageManagerCreator {
|
|
10
7
|
options;
|
|
11
8
|
constructor(options) {
|
|
12
9
|
this.options = options;
|
|
13
10
|
}
|
|
14
11
|
async create(terminal) {
|
|
15
12
|
const packageManagerName = await this.getPackageManagerName();
|
|
16
|
-
|
|
13
|
+
logger.trace(`packageManagerName=${packageManagerName}`);
|
|
17
14
|
switch (packageManagerName) {
|
|
18
|
-
case
|
|
19
|
-
|
|
20
|
-
return new
|
|
21
|
-
case
|
|
22
|
-
|
|
23
|
-
return new
|
|
15
|
+
case PackageManagerName.Npm:
|
|
16
|
+
logger.info('Use npm as package manager');
|
|
17
|
+
return new Npm(terminal);
|
|
18
|
+
case PackageManagerName.Yarn:
|
|
19
|
+
logger.info('Use Yarn as package manager');
|
|
20
|
+
return new Yarn(terminal);
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
async getPackageManagerName() {
|
|
27
24
|
if (this.options.packageManager !== undefined) {
|
|
28
25
|
return this.options.packageManager;
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
return await
|
|
27
|
+
logger.info('Try to detect package manager from lock file.');
|
|
28
|
+
return await detectPackageManager();
|
|
32
29
|
}
|
|
33
30
|
}
|
|
34
|
-
exports.PackageManagerCreator = PackageManagerCreator;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isPackageManagerName = exports.PackageManagerName = void 0;
|
|
4
|
-
exports.PackageManagerName = {
|
|
1
|
+
export const PackageManagerName = {
|
|
5
2
|
Npm: 'npm',
|
|
6
3
|
Yarn: 'yarn'
|
|
7
4
|
};
|
|
8
|
-
const packageManagerNames = Object.values(
|
|
5
|
+
const packageManagerNames = Object.values(PackageManagerName);
|
|
9
6
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
10
|
-
const isPackageManagerName = (value) => packageManagerNames.includes(value);
|
|
11
|
-
exports.isPackageManagerName = isPackageManagerName;
|
|
7
|
+
export const isPackageManagerName = (value) => packageManagerNames.includes(value);
|
|
@@ -1,15 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const detectPackageManager = async () => {
|
|
7
|
-
if (await (0, file_1.canReadWrite)('package-lock.json')) {
|
|
8
|
-
return PackageManagerName_1.PackageManagerName.Npm;
|
|
1
|
+
import { canReadWrite } from '../file/canReadWrite.js';
|
|
2
|
+
import { PackageManagerName } from './PackageManagerName.js';
|
|
3
|
+
export const detectPackageManager = async () => {
|
|
4
|
+
if (await canReadWrite('package-lock.json')) {
|
|
5
|
+
return PackageManagerName.Npm;
|
|
9
6
|
}
|
|
10
|
-
if (await
|
|
11
|
-
return
|
|
7
|
+
if (await canReadWrite('yarn.lock')) {
|
|
8
|
+
return PackageManagerName.Yarn;
|
|
12
9
|
}
|
|
13
10
|
throw new Error('No lock file exists.');
|
|
14
11
|
};
|
|
15
|
-
exports.detectPackageManager = detectPackageManager;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.Npm = void 0;
|
|
4
|
-
const NpmVersions_1 = require("./NpmVersions");
|
|
5
|
-
class Npm {
|
|
1
|
+
import { isNpmVersions } from './NpmVersions.js';
|
|
2
|
+
export class Npm {
|
|
6
3
|
terminal;
|
|
7
4
|
packageFile = 'package.json';
|
|
8
5
|
lockFile = 'package-lock.json';
|
|
@@ -15,7 +12,7 @@ class Npm {
|
|
|
15
12
|
async getVersions(packageName) {
|
|
16
13
|
const { stdout } = await this.terminal.run('npm', 'info', packageName, 'versions', '--json');
|
|
17
14
|
const versions = JSON.parse(stdout);
|
|
18
|
-
if (!
|
|
15
|
+
if (!isNpmVersions(versions)) {
|
|
19
16
|
throw new Error(`Failed to parse versions. versions=${JSON.stringify(versions)}`);
|
|
20
17
|
}
|
|
21
18
|
return versions;
|
|
@@ -27,4 +24,3 @@ class Npm {
|
|
|
27
24
|
await this.terminal.run('npm', 'install');
|
|
28
25
|
}
|
|
29
26
|
}
|
|
30
|
-
exports.Npm = Npm;
|