@eclipse-glsp/cli 2.1.0-next.e32e40e.153 → 2.2.0-next.161
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 +40 -0
- package/bin/glsp +1 -1
- package/lib/app.d.ts.map +1 -1
- package/lib/app.js +5 -1
- package/lib/app.js.map +1 -1
- package/lib/commands/check-header.d.ts +3 -6
- package/lib/commands/check-header.d.ts.map +1 -1
- package/lib/commands/check-header.js +60 -110
- package/lib/commands/check-header.js.map +1 -1
- package/lib/commands/coverage-report.d.ts +1 -1
- package/lib/commands/coverage-report.js +12 -9
- package/lib/commands/coverage-report.js.map +1 -1
- package/lib/commands/generate-index.d.ts +46 -0
- package/lib/commands/generate-index.d.ts.map +1 -0
- package/lib/commands/generate-index.js +172 -0
- package/lib/commands/generate-index.js.map +1 -0
- package/lib/commands/release/common.d.ts +1 -1
- package/lib/commands/release/common.js +24 -24
- package/lib/commands/release/common.js.map +1 -1
- package/lib/commands/release/release-client.js +7 -27
- package/lib/commands/release/release-client.js.map +1 -1
- package/lib/commands/release/release-eclipse-integration.d.ts +2 -2
- package/lib/commands/release/release-eclipse-integration.d.ts.map +1 -1
- package/lib/commands/release/release-eclipse-integration.js +20 -40
- package/lib/commands/release/release-eclipse-integration.js.map +1 -1
- package/lib/commands/release/release-java-server.d.ts.map +1 -1
- package/lib/commands/release/release-java-server.js +9 -29
- package/lib/commands/release/release-java-server.js.map +1 -1
- package/lib/commands/release/release-server-node.d.ts +2 -2
- package/lib/commands/release/release-server-node.d.ts.map +1 -1
- package/lib/commands/release/release-server-node.js +13 -33
- package/lib/commands/release/release-server-node.js.map +1 -1
- package/lib/commands/release/release-theia-integration.d.ts +2 -2
- package/lib/commands/release/release-theia-integration.d.ts.map +1 -1
- package/lib/commands/release/release-theia-integration.js +13 -33
- package/lib/commands/release/release-theia-integration.js.map +1 -1
- package/lib/commands/release/release-vscode-integration.d.ts +2 -2
- package/lib/commands/release/release-vscode-integration.d.ts.map +1 -1
- package/lib/commands/release/release-vscode-integration.js +13 -33
- package/lib/commands/release/release-vscode-integration.js.map +1 -1
- package/lib/commands/release/release.d.ts +1 -1
- package/lib/commands/release/release.d.ts.map +1 -1
- package/lib/commands/release/release.js +20 -17
- package/lib/commands/release/release.js.map +1 -1
- package/lib/commands/update-next.d.ts +20 -0
- package/lib/commands/update-next.d.ts.map +1 -0
- package/lib/commands/update-next.js +146 -0
- package/lib/commands/update-next.js.map +1 -0
- package/lib/util/command-util.d.ts +2 -2
- package/lib/util/command-util.d.ts.map +1 -1
- package/lib/util/command-util.js +6 -26
- package/lib/util/command-util.js.map +1 -1
- package/lib/util/git-util.d.ts +1 -21
- package/lib/util/git-util.d.ts.map +1 -1
- package/lib/util/git-util.js +16 -90
- package/lib/util/git-util.js.map +1 -1
- package/lib/util/logger.d.ts +1 -1
- package/lib/util/logger.js +4 -4
- package/lib/util/logger.js.map +1 -1
- package/lib/util/validation-util.d.ts +0 -1
- package/lib/util/validation-util.d.ts.map +1 -1
- package/lib/util/validation-util.js +2 -3
- package/lib/util/validation-util.js.map +1 -1
- package/package.json +5 -4
- package/src/app.ts +5 -1
- package/src/commands/check-header.ts +60 -135
- package/src/commands/coverage-report.ts +2 -2
- package/src/commands/generate-index.ts +169 -0
- package/src/commands/release/common.ts +2 -2
- package/src/commands/release/release-client.ts +2 -2
- package/src/commands/release/release-eclipse-integration.ts +5 -5
- package/src/commands/release/release-java-server.ts +3 -3
- package/src/commands/release/release-server-node.ts +3 -3
- package/src/commands/release/release-theia-integration.ts +3 -3
- package/src/commands/release/release-vscode-integration.ts +5 -4
- package/src/commands/release/release.ts +4 -4
- package/src/commands/update-next.ts +129 -0
- package/src/util/command-util.ts +2 -2
- package/src/util/git-util.ts +2 -56
- package/src/util/logger.ts +1 -1
- package/src/util/validation-util.ts +1 -2
package/README.md
CHANGED
|
@@ -83,6 +83,46 @@ Options:
|
|
|
83
83
|
-h, --help display help for command
|
|
84
84
|
```
|
|
85
85
|
|
|
86
|
+
## updateNext
|
|
87
|
+
|
|
88
|
+
```console
|
|
89
|
+
$ glsp updateNext -h
|
|
90
|
+
Usage: glsp updateNext|u [options] [rootDir]
|
|
91
|
+
|
|
92
|
+
Updates all `next` dependencies in GLSP project to the latest version
|
|
93
|
+
|
|
94
|
+
Arguments:
|
|
95
|
+
rootDir The repository root (default: "<cwd>")
|
|
96
|
+
|
|
97
|
+
Options:
|
|
98
|
+
-v, --verbose Enable verbose (debug) log output (default: false)
|
|
99
|
+
-h, --help display help for command
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## generateIndex
|
|
103
|
+
|
|
104
|
+
Use this command to create an index file of all sources for a given directory and all it's sub directories.
|
|
105
|
+
|
|
106
|
+
```console
|
|
107
|
+
$ glsp generateIndex -h
|
|
108
|
+
Usage: glsp generateIndex [options] <rootDir>
|
|
109
|
+
|
|
110
|
+
Generate index files in a given source directory.
|
|
111
|
+
|
|
112
|
+
Arguments:
|
|
113
|
+
rootDir The source directory for index generation.
|
|
114
|
+
|
|
115
|
+
Options:
|
|
116
|
+
-s, --singleIndex Generate a single index file in the source directory instead of indices in each sub-directory (default: false)
|
|
117
|
+
-f, --forceOverwrite Overwrite existing index files and remove them if there are no entries (default: false)
|
|
118
|
+
-m, --match [match patterns...] File patterns to consider during indexing (default: ["**/*.ts","**/*.tsx"])
|
|
119
|
+
-i, --ignore [ignore patterns...] File patterns to ignore during indexing (default: ["**/*.spec.ts","**/*.spec.tsx","**/*.d.ts"])
|
|
120
|
+
-s, --style <importStyle> Import Style (choices: "commonjs", "esm", default: "commonjs")
|
|
121
|
+
--ignoreFile <ignoreFile> The file that is used to specify patterns that should be ignored during indexing (default: ".indexignore")
|
|
122
|
+
-v, --verbose Generate verbose output during generation (default: false)
|
|
123
|
+
-h, --help display help for command
|
|
124
|
+
```
|
|
125
|
+
|
|
86
126
|
## More information
|
|
87
127
|
|
|
88
128
|
For more information, please visit the [Eclipse GLSP Umbrella repository](https://github.com/eclipse-glsp/glsp) and the [Eclipse GLSP Website](https://www.eclipse.org/glsp/).
|
package/bin/glsp
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
require('../lib/app
|
|
2
|
+
require('../lib/app');
|
package/lib/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";AAuBA,eAAO,MAAM,eAAe,eAAe,CAAC"}
|
package/lib/app.js
CHANGED
|
@@ -19,7 +19,9 @@ exports.COMMAND_VERSION = void 0;
|
|
|
19
19
|
********************************************************************************/
|
|
20
20
|
const check_header_1 = require("./commands/check-header");
|
|
21
21
|
const coverage_report_1 = require("./commands/coverage-report");
|
|
22
|
+
const generate_index_1 = require("./commands/generate-index");
|
|
22
23
|
const release_1 = require("./commands/release/release");
|
|
24
|
+
const update_next_1 = require("./commands/update-next");
|
|
23
25
|
const command_util_1 = require("./util/command-util");
|
|
24
26
|
exports.COMMAND_VERSION = '1.1.0-next';
|
|
25
27
|
const app = (0, command_util_1.baseCommand)() //
|
|
@@ -27,6 +29,8 @@ const app = (0, command_util_1.baseCommand)() //
|
|
|
27
29
|
.name('glsp')
|
|
28
30
|
.addCommand(coverage_report_1.CoverageReportCommand)
|
|
29
31
|
.addCommand(release_1.ReleaseCommand)
|
|
30
|
-
.addCommand(check_header_1.CheckHeaderCommand)
|
|
32
|
+
.addCommand(check_header_1.CheckHeaderCommand)
|
|
33
|
+
.addCommand(update_next_1.UpdateNextCommand)
|
|
34
|
+
.addCommand(generate_index_1.GenerateIndex);
|
|
31
35
|
app.parse(process.argv);
|
|
32
36
|
//# sourceMappingURL=app.js.map
|
package/lib/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;AACA;;;;;;;;;;;;;;kFAckF;AAClF,0DAA6D;AAC7D,gEAAmE;AACnE,wDAA4D;AAC5D,sDAAkD;AAErC,QAAA,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,GAAG,GAAG,IAAA,0BAAW,GAAE,CAAC,EAAE;KACvB,OAAO,CAAC,uBAAe,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC;KACZ,UAAU,CAAC,uCAAqB,CAAC;KACjC,UAAU,CAAC,wBAAc,CAAC;KAC1B,UAAU,CAAC,iCAAkB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";;;;AACA;;;;;;;;;;;;;;kFAckF;AAClF,0DAA6D;AAC7D,gEAAmE;AACnE,8DAA0D;AAC1D,wDAA4D;AAC5D,wDAA2D;AAC3D,sDAAkD;AAErC,QAAA,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,GAAG,GAAG,IAAA,0BAAW,GAAE,CAAC,EAAE;KACvB,OAAO,CAAC,uBAAe,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC;KACZ,UAAU,CAAC,uCAAqB,CAAC;KACjC,UAAU,CAAC,wBAAc,CAAC;KAC1B,UAAU,CAAC,iCAAkB,CAAC;KAC9B,UAAU,CAAC,+BAAiB,CAAC;KAC7B,UAAU,CAAC,8BAAa,CAAC,CAAC;AAE/B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -5,20 +5,17 @@ export interface HeaderCheckOptions {
|
|
|
5
5
|
json: boolean;
|
|
6
6
|
excludeDefaults: boolean;
|
|
7
7
|
autoFix: boolean;
|
|
8
|
-
severity: Severity;
|
|
9
8
|
}
|
|
10
9
|
declare const checkTypes: readonly ["full", "changes", "lastCommit"];
|
|
11
|
-
type CheckType = typeof checkTypes[number];
|
|
12
|
-
declare const severityTypes: readonly ["error", "warn", "ok"];
|
|
13
|
-
type Severity = typeof severityTypes[number];
|
|
10
|
+
type CheckType = (typeof checkTypes)[number];
|
|
14
11
|
export declare const CheckHeaderCommand: import("commander").Command;
|
|
15
12
|
export declare function checkHeaders(rootDir: string, options: HeaderCheckOptions): void;
|
|
16
13
|
export declare function handleValidationResults(rootDir: string, results: ValidationResult[], options: HeaderCheckOptions): void;
|
|
17
14
|
interface ValidationResult {
|
|
18
15
|
file: string;
|
|
19
|
-
severity: Severity;
|
|
20
16
|
violation: Violation;
|
|
17
|
+
line?: string;
|
|
21
18
|
}
|
|
22
|
-
type Violation = 'none' | 'noOrMissingHeader' | '
|
|
19
|
+
type Violation = 'none' | 'noOrMissingHeader' | 'invalidEndYear' | 'noYear';
|
|
23
20
|
export {};
|
|
24
21
|
//# sourceMappingURL=check-header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-header.d.ts","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"check-header.d.ts","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,4CAA6C,CAAC;AAC9D,KAAK,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAO7C,eAAO,MAAM,kBAAkB,6BA0BN,CAAC;AAE1B,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAgB/E;AAoGD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI,CA2BvH;AA8CD,UAAU,gBAAgB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAYD,KAAK,SAAS,GAAG,MAAM,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,QAAQ,CAAC"}
|
|
@@ -22,10 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
29
|
exports.handleValidationResults = exports.checkHeaders = exports.CheckHeaderCommand = void 0;
|
|
27
30
|
/********************************************************************************
|
|
28
|
-
* Copyright (c) 2022-
|
|
31
|
+
* Copyright (c) 2022-2024 EclipseSource and others.
|
|
29
32
|
*
|
|
30
33
|
* This program and the accompanying materials are made available under the
|
|
31
34
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -45,21 +48,20 @@ const fs = __importStar(require("fs"));
|
|
|
45
48
|
const glob_1 = require("glob");
|
|
46
49
|
const minimatch = __importStar(require("minimatch"));
|
|
47
50
|
const readline = __importStar(require("readline-sync"));
|
|
48
|
-
const
|
|
51
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
49
52
|
const command_util_1 = require("../util/command-util");
|
|
50
53
|
const git_util_1 = require("../util/git-util");
|
|
54
|
+
const path = __importStar(require("path"));
|
|
51
55
|
const logger_1 = require("../util/logger");
|
|
52
56
|
const validation_util_1 = require("../util/validation-util");
|
|
53
|
-
const path = require("path");
|
|
54
57
|
const checkTypes = ['full', 'changes', 'lastCommit'];
|
|
55
|
-
const severityTypes = ['error', 'warn', 'ok'];
|
|
56
58
|
const DEFAULT_EXCLUDES = ['**/@(node_modules|lib|dist|bundle)/**'];
|
|
57
|
-
const YEAR_RANGE_REGEX = /\d{4}
|
|
58
|
-
const HEADER_PATTERN = 'Copyright \\([cC]\\) \\d{4}
|
|
59
|
+
const YEAR_RANGE_REGEX = /\d{4}/g;
|
|
60
|
+
const HEADER_PATTERN = 'Copyright \\([cC]\\) \\d{4}';
|
|
59
61
|
const AUTO_FIX_MESSAGE = 'Fix copyright header violations';
|
|
60
62
|
exports.CheckHeaderCommand = (0, command_util_1.baseCommand)() //
|
|
61
63
|
.name('checkHeaders')
|
|
62
|
-
.description('Validates the copyright year range of license header files')
|
|
64
|
+
.description('Validates the copyright year range (end year) of license header files')
|
|
63
65
|
.argument('<rootDir>', 'The starting directory for the check', validation_util_1.validateGitDirectory)
|
|
64
66
|
.addOption(new commander_1.Option('-t, --type <type>', 'The scope of the check. In addition to a full recursive check, is also possible to only' +
|
|
65
67
|
' consider pending changes or the last commit')
|
|
@@ -69,9 +71,6 @@ exports.CheckHeaderCommand = (0, command_util_1.baseCommand)() //
|
|
|
69
71
|
.addOption(new commander_1.Option('-e, --exclude <exclude...>', 'File patterns that should be excluded from the check. New exclude patterns are added to the default patterns').default([], `[${DEFAULT_EXCLUDES}]`))
|
|
70
72
|
.option('--no-exclude-defaults', 'Disables the default excludes patterns. Only explicitly passed exclude patterns (-e, --exclude) are considered')
|
|
71
73
|
.option('-j, --json', 'Also persist validation results as json file', false)
|
|
72
|
-
.addOption(new commander_1.Option('-s, --severity <severity>', 'The severity of validation results that should be printed.')
|
|
73
|
-
.choices(severityTypes)
|
|
74
|
-
.default('error', '"error" (only)'))
|
|
75
74
|
.option('-a, --autoFix', 'Auto apply & commit fixes without prompting the user', false)
|
|
76
75
|
.action(checkHeaders);
|
|
77
76
|
function checkHeaders(rootDir, options) {
|
|
@@ -79,7 +78,7 @@ function checkHeaders(rootDir, options) {
|
|
|
79
78
|
if (options.excludeDefaults) {
|
|
80
79
|
options.exclude.push(...DEFAULT_EXCLUDES);
|
|
81
80
|
}
|
|
82
|
-
|
|
81
|
+
shelljs_1.default.cd(rootDir);
|
|
83
82
|
const files = getFiles(rootDir, options);
|
|
84
83
|
logger_1.LOGGER.info(`Check copy right headers of ${files.length} files`);
|
|
85
84
|
if (files.length === 0) {
|
|
@@ -108,13 +107,8 @@ function getFiles(rootDir, options) {
|
|
|
108
107
|
}
|
|
109
108
|
function validate(rootDir, files, options) {
|
|
110
109
|
var _a;
|
|
111
|
-
// Derives all files with valid headers
|
|
112
|
-
const filesWithHeader =
|
|
113
|
-
const copyrightYears = sh
|
|
114
|
-
.grep(HEADER_PATTERN, files)
|
|
115
|
-
.stdout.trim()
|
|
116
|
-
.split('\n')
|
|
117
|
-
.map(line => line.match(YEAR_RANGE_REGEX).map(string => Number.parseInt(string, 10)));
|
|
110
|
+
// Derives all files with valid headers and all files with no or invalid headers
|
|
111
|
+
const filesWithHeader = shelljs_1.default.grep('-l', HEADER_PATTERN, files).stdout.trim().split('\n');
|
|
118
112
|
const noHeaders = files.filter(file => !filesWithHeader.includes(file));
|
|
119
113
|
const results = [];
|
|
120
114
|
const allFilesLength = files.length;
|
|
@@ -125,7 +119,7 @@ function validate(rootDir, files, options) {
|
|
|
125
119
|
}
|
|
126
120
|
noHeaders.forEach((file, i) => {
|
|
127
121
|
printFileProgress(i + 1, allFilesLength, `Validating ${file}`);
|
|
128
|
-
results.push({ file: path.resolve(rootDir, file), violation: 'noOrMissingHeader'
|
|
122
|
+
results.push({ file: path.resolve(rootDir, file), violation: 'noOrMissingHeader' });
|
|
129
123
|
});
|
|
130
124
|
// Performance optimization: avoid retrieving the dates for each individual file by precalculating the endYear if possible.
|
|
131
125
|
let defaultEndYear;
|
|
@@ -138,74 +132,38 @@ function validate(rootDir, files, options) {
|
|
|
138
132
|
// Create validation results for all files with valid headers
|
|
139
133
|
filesWithHeader.forEach((file, i) => {
|
|
140
134
|
printFileProgress(i + 1 + noHeadersLength, allFilesLength, `Validating ${file}`);
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
file,
|
|
147
|
-
severity: 'ok',
|
|
148
|
-
violation: 'none'
|
|
149
|
-
};
|
|
150
|
-
if (result.expectedStartYear === result.expectedEndYear) {
|
|
151
|
-
validateSingleYear(result);
|
|
135
|
+
const copyrightLine = shelljs_1.default.head({ '-n': 2 }, file).stdout.trim().split('\n')[1];
|
|
136
|
+
const copyRightYears = copyrightLine.match(YEAR_RANGE_REGEX);
|
|
137
|
+
if (!copyRightYears) {
|
|
138
|
+
const result = { file, violation: 'noYear', line: copyrightLine };
|
|
139
|
+
results.push(result);
|
|
152
140
|
}
|
|
153
141
|
else {
|
|
154
|
-
|
|
142
|
+
const currentStartYear = Number.parseInt(copyRightYears[0], 10);
|
|
143
|
+
const currentEndYear = copyRightYears[1] ? Number.parseInt(copyRightYears[1], 10) : undefined;
|
|
144
|
+
const result = {
|
|
145
|
+
currentStartYear,
|
|
146
|
+
currentEndYear,
|
|
147
|
+
expectedEndYear: defaultEndYear !== null && defaultEndYear !== void 0 ? defaultEndYear : (0, git_util_1.getLastModificationDate)(file, rootDir, AUTO_FIX_MESSAGE).getFullYear(),
|
|
148
|
+
file,
|
|
149
|
+
violation: 'none'
|
|
150
|
+
};
|
|
151
|
+
validateEndYear(result);
|
|
152
|
+
results.push(result);
|
|
155
153
|
}
|
|
156
|
-
results.push(result);
|
|
157
154
|
});
|
|
158
155
|
results.sort((a, b) => a.file.localeCompare(b.file));
|
|
159
156
|
process.stdout.clearLine(0);
|
|
160
157
|
return results;
|
|
161
158
|
}
|
|
162
|
-
function
|
|
163
|
-
const { currentStartYear,
|
|
164
|
-
result.violation = '
|
|
165
|
-
|
|
166
|
-
if (
|
|
167
|
-
if (currentStartYear === expectedStartYear) {
|
|
168
|
-
result.violation = 'none';
|
|
169
|
-
result.severity = 'ok';
|
|
170
|
-
}
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
// Cornercase: For files of the initial contribution the copyright header predates the first git modification date.
|
|
174
|
-
// => declare as warning if not part of the initial contribution.
|
|
175
|
-
if (expectedStartYear === currentEndYear && currentStartYear < expectedStartYear) {
|
|
176
|
-
if ((0, git_util_1.getFirstCommit)(result.file) === (0, git_util_1.getInitialCommit)()) {
|
|
177
|
-
result.violation = 'none';
|
|
178
|
-
result.severity = 'ok';
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
result.severity = 'warn';
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
function validateTimePeriod(result) {
|
|
186
|
-
const { currentStartYear, expectedStartYear, expectedEndYear, currentEndYear } = result;
|
|
187
|
-
result.violation = 'incorrectCopyrightPeriod';
|
|
188
|
-
result.severity = 'error';
|
|
189
|
-
if (!currentEndYear) {
|
|
190
|
-
result.severity = 'error';
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
if (currentStartYear === expectedStartYear && currentEndYear === expectedEndYear) {
|
|
159
|
+
function validateEndYear(result) {
|
|
160
|
+
const { currentStartYear, expectedEndYear, currentEndYear } = result;
|
|
161
|
+
result.violation = 'invalidEndYear';
|
|
162
|
+
const valid = currentEndYear ? currentEndYear === expectedEndYear : currentStartYear === expectedEndYear;
|
|
163
|
+
if (valid) {
|
|
194
164
|
result.violation = 'none';
|
|
195
|
-
result.severity = 'ok';
|
|
196
165
|
return;
|
|
197
166
|
}
|
|
198
|
-
// Cornercase: For files of the initial contribution the copyright header predates the first git modification date.
|
|
199
|
-
// => declare as warning if not part of the initial contribution.
|
|
200
|
-
if (currentEndYear === expectedEndYear && currentStartYear < expectedEndYear) {
|
|
201
|
-
if ((0, git_util_1.getFirstCommit)(result.file) === (0, git_util_1.getInitialCommit)()) {
|
|
202
|
-
result.violation = 'none';
|
|
203
|
-
result.severity = 'ok';
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
result.severity = 'warn';
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
167
|
}
|
|
210
168
|
function printFileProgress(currentFileCount, maxFileCount, message, clear = true) {
|
|
211
169
|
if (clear) {
|
|
@@ -220,15 +178,9 @@ function printFileProgress(currentFileCount, maxFileCount, message, clear = true
|
|
|
220
178
|
function handleValidationResults(rootDir, results, options) {
|
|
221
179
|
logger_1.LOGGER.newLine();
|
|
222
180
|
logger_1.LOGGER.info(`Header validation for ${results.length} files completed`);
|
|
223
|
-
const violations = results.filter(result => result.
|
|
181
|
+
const violations = results.filter(result => result.violation !== 'none');
|
|
224
182
|
// Adjust results to print based on configured severity level
|
|
225
|
-
|
|
226
|
-
if (options.severity === 'error') {
|
|
227
|
-
toPrint = violations;
|
|
228
|
-
}
|
|
229
|
-
else if (options.severity === 'warn') {
|
|
230
|
-
toPrint = results.filter(result => result.severity !== 'ok');
|
|
231
|
-
}
|
|
183
|
+
const toPrint = violations;
|
|
232
184
|
logger_1.LOGGER.info(`Found ${toPrint.length} copyright header violations:`);
|
|
233
185
|
logger_1.LOGGER.newLine();
|
|
234
186
|
toPrint.forEach((result, i) => logger_1.LOGGER.info(`${i + 1}. `, result.file, ':', toPrintMessage(result)));
|
|
@@ -236,55 +188,53 @@ function handleValidationResults(rootDir, results, options) {
|
|
|
236
188
|
if (options.json) {
|
|
237
189
|
fs.writeFileSync(path.join(rootDir, 'headerCheck.json'), JSON.stringify(results, undefined, 2));
|
|
238
190
|
}
|
|
239
|
-
if (violations.length > 0 &&
|
|
240
|
-
|
|
191
|
+
if (violations.length > 0 &&
|
|
192
|
+
(options.autoFix || readline.keyInYN('Do you want to automatically fix copyright year range violations?'))) {
|
|
193
|
+
const toFix = violations.filter(violation => isDateValidationResult(violation));
|
|
241
194
|
fixViolations(rootDir, toFix, options);
|
|
242
195
|
}
|
|
243
196
|
logger_1.LOGGER.info('Check completed');
|
|
244
197
|
}
|
|
245
198
|
exports.handleValidationResults = handleValidationResults;
|
|
246
199
|
function toPrintMessage(result) {
|
|
247
|
-
const
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
-
|
|
256
|
-
: result.expectedStartYear.toString();
|
|
257
|
-
const actual = result.currentEndYear ? `${result.currentStartYear}-${result.currentEndYear}` : result.currentStartYear.toString();
|
|
258
|
-
const message = result.violation === 'incorrectCopyrightPeriod' ? 'Invalid copyright period' : 'Invalid copyright year';
|
|
259
|
-
return `${colors[result.severity]} ${message}! Expected '${expected}' but is '${actual}'`;
|
|
200
|
+
const error = '\x1b[31m';
|
|
201
|
+
const info = '\x1b[32m';
|
|
202
|
+
if (isDateValidationResult(result) && result.violation === 'invalidEndYear') {
|
|
203
|
+
const expected = result.expectedEndYear.toString();
|
|
204
|
+
const actual = result.currentEndYear
|
|
205
|
+
? `${result.currentEndYear} (${result.currentStartYear}-${result.currentEndYear})`
|
|
206
|
+
: result.currentStartYear.toString();
|
|
207
|
+
const message = 'Invalid copyright end year';
|
|
208
|
+
return `${error} ${message}! Expected end year '${expected}' but is '${actual}'`;
|
|
260
209
|
}
|
|
261
210
|
else if (result.violation === 'noOrMissingHeader') {
|
|
262
|
-
return `${
|
|
211
|
+
return `${error} No or invalid copyright header!`;
|
|
263
212
|
}
|
|
264
|
-
|
|
213
|
+
else if (result.violation === 'noYear') {
|
|
214
|
+
return `${error} No year found!${result.line ? ' (line: ' + result.line + ')' : ''}`;
|
|
215
|
+
}
|
|
216
|
+
return `${info} OK`;
|
|
265
217
|
}
|
|
266
218
|
function fixViolations(rootDir, violations, options) {
|
|
267
219
|
logger_1.LOGGER.newLine();
|
|
268
220
|
violations.forEach((violation, i) => {
|
|
269
221
|
printFileProgress(i + 1, violations.length, `Fix ${violation.file}`, false);
|
|
270
|
-
const fixedStartYear = violation.currentStartYear < violation.expectedStartYear ? violation.currentStartYear : violation.expectedStartYear;
|
|
271
222
|
const currentRange = `${violation.currentStartYear}${violation.currentEndYear ? '-' + violation.currentEndYear : ''}`;
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}
|
|
276
|
-
sh.sed('-i', RegExp('Copyright \\([cC]\\) ' + currentRange), `Copyright (c) ${fixedRange}`, violation.file);
|
|
223
|
+
const fixedRange = violation.currentEndYear || violation.currentStartYear < violation.expectedEndYear
|
|
224
|
+
? `${violation.currentStartYear}-${violation.expectedEndYear}`
|
|
225
|
+
: `${violation.expectedEndYear}`;
|
|
226
|
+
shelljs_1.default.sed('-i', RegExp('Copyright \\([cC]\\) ' + currentRange), `Copyright (c) ${fixedRange}`, violation.file);
|
|
277
227
|
});
|
|
278
228
|
logger_1.LOGGER.newLine();
|
|
279
229
|
if (options.autoFix || readline.keyInYN('Do you want to create a commit for the fixed files?')) {
|
|
280
230
|
logger_1.LOGGER.newLine();
|
|
281
231
|
const files = violations.map(violation => violation.file).join(' ');
|
|
282
|
-
|
|
283
|
-
|
|
232
|
+
shelljs_1.default.exec(`git add ${files}`, (0, command_util_1.getShellConfig)());
|
|
233
|
+
shelljs_1.default.exec(`git commit -m "${AUTO_FIX_MESSAGE}"`);
|
|
284
234
|
logger_1.LOGGER.newLine();
|
|
285
235
|
}
|
|
286
236
|
}
|
|
287
237
|
function isDateValidationResult(object) {
|
|
288
|
-
return 'currentStartYear' in object && '
|
|
238
|
+
return 'currentStartYear' in object && 'expectedEndYear' in object;
|
|
289
239
|
}
|
|
290
240
|
//# sourceMappingURL=check-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-header.js","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check-header.js","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022 EclipseSource and others.
|
|
2
|
+
* Copyright (c) 2022-2024 EclipseSource and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/********************************************************************************
|
|
3
|
-
* Copyright (c) 2022 EclipseSource and others.
|
|
3
|
+
* Copyright (c) 2022-2024 EclipseSource and others.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made available under the
|
|
6
6
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -37,11 +37,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
__setModuleDefault(result, mod);
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
40
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
44
|
exports.collectPackageReportFiles = exports.validateAndRetrievePackages = exports.generateCoverageReport = exports.CoverageReportCommand = void 0;
|
|
42
45
|
const fs = __importStar(require("fs"));
|
|
43
46
|
const path = __importStar(require("path"));
|
|
44
|
-
const
|
|
47
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
45
48
|
const command_util_1 = require("../util/command-util");
|
|
46
49
|
const logger_1 = require("../util/logger");
|
|
47
50
|
const validation_util_1 = require("../util/validation-util");
|
|
@@ -57,7 +60,7 @@ exports.CoverageReportCommand = (0, command_util_1.baseCommand)() //
|
|
|
57
60
|
* @param options configuration options
|
|
58
61
|
*/
|
|
59
62
|
function generateCoverageReport(options) {
|
|
60
|
-
|
|
63
|
+
shelljs_1.default.cd(options.projectRoot);
|
|
61
64
|
const packages = validateAndRetrievePackages(options);
|
|
62
65
|
logger_1.LOGGER.info('Create individual package coverage reports');
|
|
63
66
|
const jsonReports = collectPackageReportFiles(packages, options);
|
|
@@ -84,11 +87,11 @@ function validateAndRetrievePackages(options) {
|
|
|
84
87
|
exports.validateAndRetrievePackages = validateAndRetrievePackages;
|
|
85
88
|
function collectPackageReportFiles(packages, options) {
|
|
86
89
|
logger_1.LOGGER.info('Create combined report');
|
|
87
|
-
|
|
90
|
+
shelljs_1.default.exec(`yarn ${options.coverageScript}`);
|
|
88
91
|
// collect reports
|
|
89
92
|
const reports = [];
|
|
90
93
|
packages.forEach(pkg => {
|
|
91
|
-
|
|
94
|
+
shelljs_1.default.find(pkg)
|
|
92
95
|
.filter(file => file.endsWith('coverage-final.json'))
|
|
93
96
|
.forEach(json => reports.push(path.resolve(options.projectRoot, json)));
|
|
94
97
|
});
|
|
@@ -106,18 +109,18 @@ function combineReports(reportFiles, options) {
|
|
|
106
109
|
fs.copyFileSync(reportFiles[i], path.resolve('.nyc_output', `coverage-final-${i}.json`));
|
|
107
110
|
}
|
|
108
111
|
// Temporarily remove root nyc configs otherwise the report command might fail.
|
|
109
|
-
|
|
112
|
+
shelljs_1.default.cd(options.projectRoot);
|
|
110
113
|
const configFiles = ['.nycrc', '.nycrc.json', '.nyc-config.js'];
|
|
111
114
|
const tempFiles = [];
|
|
112
115
|
configFiles.forEach(config => {
|
|
113
116
|
if (fs.existsSync(path.join(options.projectRoot, config))) {
|
|
114
|
-
|
|
117
|
+
shelljs_1.default.mv(config, '_' + config);
|
|
115
118
|
tempFiles.push('_' + config);
|
|
116
119
|
}
|
|
117
120
|
});
|
|
118
121
|
// Generate report
|
|
119
|
-
|
|
122
|
+
shelljs_1.default.exec('yarn nyc report --reporter html', (0, command_util_1.getShellConfig)());
|
|
120
123
|
// Restore nyc configs (if any)
|
|
121
|
-
tempFiles.forEach(config =>
|
|
124
|
+
tempFiles.forEach(config => shelljs_1.default.mv(config, config.substring(1)));
|
|
122
125
|
}
|
|
123
126
|
//# sourceMappingURL=coverage-report.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-report.js","sourceRoot":"","sources":["../../src/commands/coverage-report.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF
|
|
1
|
+
{"version":3,"file":"coverage-report.js","sourceRoot":"","sources":["../../src/commands/coverage-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2023-2024 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
export interface GenerateIndexCmdOptions {
|
|
17
|
+
singleIndex: boolean;
|
|
18
|
+
forceOverwrite: boolean;
|
|
19
|
+
match: string[] | boolean;
|
|
20
|
+
ignore: string[] | boolean;
|
|
21
|
+
ignoreFile: string;
|
|
22
|
+
style: 'commonjs' | 'esm';
|
|
23
|
+
verbose: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface GlobbyOptions {
|
|
26
|
+
ignore: string[];
|
|
27
|
+
cwd: string;
|
|
28
|
+
onlyFiles: boolean;
|
|
29
|
+
markDirectories: true;
|
|
30
|
+
ignoreFiles: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const GenerateIndex: import("commander").Command;
|
|
33
|
+
export declare function generateIndices(rootDirs: string[], options: GenerateIndexCmdOptions): Promise<void>;
|
|
34
|
+
export declare function generateIndex(rootDir: string, ignoreFilter: (pattern: string[], options: GlobbyOptions) => string[], options: GenerateIndexCmdOptions): Promise<void>;
|
|
35
|
+
export declare function isDirectChild(parent: string, child: string, childHasChildren: () => boolean): boolean;
|
|
36
|
+
export declare function isDirectory(file: string): boolean;
|
|
37
|
+
export declare function isFile(file: string): boolean;
|
|
38
|
+
export declare function getLevel(file: string): number;
|
|
39
|
+
export declare function isChild(parent: string, child: string): boolean;
|
|
40
|
+
export declare function isChildDirectory(parent: string, child: string): boolean;
|
|
41
|
+
export declare function isChildFile(parent: string, child: string): boolean;
|
|
42
|
+
export declare function writeIndex(directory: string, exports: string[], options: GenerateIndexCmdOptions): void;
|
|
43
|
+
export declare function createExport(directory: string, relativePath: string, options: GenerateIndexCmdOptions): string;
|
|
44
|
+
export declare function extractReusableContent(fileContent: string): string;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=generate-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-index.d.ts","sourceRoot":"","sources":["../../src/commands/generate-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAWlF,MAAM,WAAW,uBAAuB;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CACpB;AAGD,UAAU,aAAa;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,aAAa,6BAWE,CAAC;AAE7B,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzG;AAED,wBAAsB,aAAa,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,KAAK,MAAM,EAAE,EACrE,OAAO,EAAE,uBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CAiCf;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,OAAO,GAAG,OAAO,CAErG;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAElE;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAqBvG;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAQ9G;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGlE"}
|