@eclipse-glsp/cli 2.1.0-next.de11704.146 → 2.2.0-next.063af47.158
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 +14 -13
- 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 +85 -166
- package/lib/commands/check-header.js.map +1 -1
- package/lib/commands/coverage-report.js +19 -48
- package/lib/commands/coverage-report.js.map +1 -1
- package/lib/commands/generate-index.d.ts +38 -0
- package/lib/commands/generate-index.d.ts.map +1 -0
- package/lib/commands/generate-index.js +130 -0
- package/lib/commands/generate-index.js.map +1 -0
- package/lib/commands/release/common.d.ts +2 -3
- package/lib/commands/release/common.d.ts.map +1 -1
- package/lib/commands/release/common.js +78 -126
- package/lib/commands/release/common.js.map +1 -1
- package/lib/commands/release/release-client.d.ts +1 -1
- package/lib/commands/release/release-client.d.ts.map +1 -1
- package/lib/commands/release/release-client.js +23 -46
- package/lib/commands/release/release-client.js.map +1 -1
- package/lib/commands/release/release-eclipse-integration.d.ts +1 -1
- package/lib/commands/release/release-eclipse-integration.d.ts.map +1 -1
- package/lib/commands/release/release-eclipse-integration.js +32 -59
- package/lib/commands/release/release-eclipse-integration.js.map +1 -1
- package/lib/commands/release/release-java-server.d.ts +1 -1
- package/lib/commands/release/release-java-server.d.ts.map +1 -1
- package/lib/commands/release/release-java-server.js +25 -52
- package/lib/commands/release/release-java-server.js.map +1 -1
- package/lib/commands/release/release-server-node.d.ts +1 -1
- package/lib/commands/release/release-server-node.d.ts.map +1 -1
- package/lib/commands/release/release-server-node.js +16 -43
- package/lib/commands/release/release-server-node.js.map +1 -1
- package/lib/commands/release/release-theia-integration.d.ts +1 -1
- package/lib/commands/release/release-theia-integration.d.ts.map +1 -1
- package/lib/commands/release/release-theia-integration.js +16 -43
- package/lib/commands/release/release-theia-integration.js.map +1 -1
- package/lib/commands/release/release-vscode-integration.d.ts +1 -1
- package/lib/commands/release/release-vscode-integration.d.ts.map +1 -1
- package/lib/commands/release/release-vscode-integration.js +16 -43
- 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 +61 -88
- 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 +116 -0
- package/lib/commands/update-next.js.map +1 -0
- package/lib/util/command-util.d.ts +1 -1
- package/lib/util/command-util.d.ts.map +1 -1
- package/lib/util/command-util.js +10 -40
- package/lib/util/command-util.js.map +1 -1
- package/lib/util/git-util.d.ts +0 -20
- package/lib/util/git-util.d.ts.map +1 -1
- package/lib/util/git-util.js +27 -118
- package/lib/util/git-util.js.map +1 -1
- package/lib/util/logger.js +2 -6
- 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 +21 -52
- package/lib/util/validation-util.js.map +1 -1
- package/package.json +6 -3
- package/src/app.ts +9 -5
- package/src/commands/check-header.ts +63 -138
- package/src/commands/coverage-report.ts +4 -4
- package/src/commands/generate-index.ts +154 -0
- package/src/commands/release/common.ts +7 -13
- package/src/commands/release/release-client.ts +11 -16
- package/src/commands/release/release-eclipse-integration.ts +6 -6
- package/src/commands/release/release-java-server.ts +4 -4
- 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 +12 -12
- package/src/commands/update-next.ts +129 -0
- package/src/util/command-util.ts +1 -1
- package/src/util/git-util.ts +2 -56
- package/src/util/validation-util.ts +2 -3
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
|
-
|
|
2
|
+
import('../lib/app.js');
|
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
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.COMMAND_VERSION = void 0;
|
|
5
2
|
/********************************************************************************
|
|
6
3
|
* Copyright (c) 2022 EclipseSource and others.
|
|
7
4
|
*
|
|
@@ -17,16 +14,20 @@ exports.COMMAND_VERSION = void 0;
|
|
|
17
14
|
*
|
|
18
15
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
19
16
|
********************************************************************************/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
import { CheckHeaderCommand } from './commands/check-header.js';
|
|
18
|
+
import { CoverageReportCommand } from './commands/coverage-report.js';
|
|
19
|
+
import { GenerateIndex } from './commands/generate-index.js';
|
|
20
|
+
import { ReleaseCommand } from './commands/release/release.js';
|
|
21
|
+
import { UpdateNextCommand } from './commands/update-next.js';
|
|
22
|
+
import { baseCommand } from './util/command-util.js';
|
|
23
|
+
export const COMMAND_VERSION = '1.1.0-next';
|
|
24
|
+
const app = baseCommand() //
|
|
25
|
+
.version(COMMAND_VERSION)
|
|
27
26
|
.name('glsp')
|
|
28
|
-
.addCommand(
|
|
29
|
-
.addCommand(
|
|
30
|
-
.addCommand(
|
|
27
|
+
.addCommand(CoverageReportCommand)
|
|
28
|
+
.addCommand(ReleaseCommand)
|
|
29
|
+
.addCommand(CheckHeaderCommand)
|
|
30
|
+
.addCommand(UpdateNextCommand)
|
|
31
|
+
.addCommand(GenerateIndex);
|
|
31
32
|
app.parse(process.argv);
|
|
32
33
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,EAAE;KACvB,OAAO,CAAC,eAAe,CAAC;KACxB,IAAI,CAAC,MAAM,CAAC;KACZ,UAAU,CAAC,qBAAqB,CAAC;KACjC,UAAU,CAAC,cAAc,CAAC;KAC1B,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,aAAa,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"}
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.handleValidationResults = exports.checkHeaders = exports.CheckHeaderCommand = void 0;
|
|
27
1
|
/********************************************************************************
|
|
28
2
|
* Copyright (c) 2022-2023 EclipseSource and others.
|
|
29
3
|
*
|
|
@@ -40,66 +14,61 @@ exports.handleValidationResults = exports.checkHeaders = exports.CheckHeaderComm
|
|
|
40
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
41
15
|
********************************************************************************/
|
|
42
16
|
/* eslint-disable max-len */
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
17
|
+
import { Option } from 'commander';
|
|
18
|
+
import * as fs from 'fs';
|
|
19
|
+
import { glob } from 'glob';
|
|
20
|
+
import * as minimatch from 'minimatch';
|
|
21
|
+
import * as readline from 'readline-sync';
|
|
22
|
+
import sh from 'shelljs';
|
|
23
|
+
import { baseCommand, configureShell, getShellConfig } from '../util/command-util.js';
|
|
24
|
+
import { getChangesOfLastCommit, getLastModificationDate, getUncommittedChanges } from '../util/git-util.js';
|
|
25
|
+
import * as path from 'path';
|
|
26
|
+
import { LOGGER } from '../util/logger.js';
|
|
27
|
+
import { validateGitDirectory } from '../util/validation-util.js';
|
|
54
28
|
const checkTypes = ['full', 'changes', 'lastCommit'];
|
|
55
|
-
const severityTypes = ['error', 'warn', 'ok'];
|
|
56
29
|
const DEFAULT_EXCLUDES = ['**/@(node_modules|lib|dist|bundle)/**'];
|
|
57
|
-
const YEAR_RANGE_REGEX = /\d{4}
|
|
58
|
-
const HEADER_PATTERN = 'Copyright \\([cC]\\) \\d{4}
|
|
30
|
+
const YEAR_RANGE_REGEX = /\d{4}/g;
|
|
31
|
+
const HEADER_PATTERN = 'Copyright \\([cC]\\) \\d{4}';
|
|
59
32
|
const AUTO_FIX_MESSAGE = 'Fix copyright header violations';
|
|
60
|
-
|
|
33
|
+
export const CheckHeaderCommand = baseCommand() //
|
|
61
34
|
.name('checkHeaders')
|
|
62
|
-
.description('Validates the copyright year range of license header files')
|
|
63
|
-
.argument('<rootDir>', 'The starting directory for the check',
|
|
64
|
-
.addOption(new
|
|
35
|
+
.description('Validates the copyright year range (end year) of license header files')
|
|
36
|
+
.argument('<rootDir>', 'The starting directory for the check', validateGitDirectory)
|
|
37
|
+
.addOption(new Option('-t, --type <type>', 'The scope of the check. In addition to a full recursive check, is also possible to only' +
|
|
65
38
|
' consider pending changes or the last commit')
|
|
66
39
|
.choices(checkTypes)
|
|
67
40
|
.default('full'))
|
|
68
41
|
.option('-f, --fileExtensions <extensions...>', 'File extensions that should be checked', ['ts', 'tsx'])
|
|
69
|
-
.addOption(new
|
|
42
|
+
.addOption(new 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
43
|
.option('--no-exclude-defaults', 'Disables the default excludes patterns. Only explicitly passed exclude patterns (-e, --exclude) are considered')
|
|
71
44
|
.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
45
|
.option('-a, --autoFix', 'Auto apply & commit fixes without prompting the user', false)
|
|
76
46
|
.action(checkHeaders);
|
|
77
|
-
function checkHeaders(rootDir, options) {
|
|
78
|
-
|
|
47
|
+
export function checkHeaders(rootDir, options) {
|
|
48
|
+
configureShell({ silent: true, fatal: true });
|
|
79
49
|
if (options.excludeDefaults) {
|
|
80
50
|
options.exclude.push(...DEFAULT_EXCLUDES);
|
|
81
51
|
}
|
|
82
52
|
sh.cd(rootDir);
|
|
83
53
|
const files = getFiles(rootDir, options);
|
|
84
|
-
|
|
54
|
+
LOGGER.info(`Check copy right headers of ${files.length} files`);
|
|
85
55
|
if (files.length === 0) {
|
|
86
|
-
|
|
56
|
+
LOGGER.info('Check completed');
|
|
87
57
|
return;
|
|
88
58
|
}
|
|
89
59
|
const results = validate(rootDir, files, options);
|
|
90
60
|
handleValidationResults(rootDir, results, options);
|
|
91
61
|
}
|
|
92
|
-
exports.checkHeaders = checkHeaders;
|
|
93
62
|
function getFiles(rootDir, options) {
|
|
94
63
|
const includePattern = `**/*.@(${options.fileExtensions.join('|')})`;
|
|
95
64
|
const excludePattern = options.exclude;
|
|
96
65
|
if (options.type === 'full') {
|
|
97
|
-
return
|
|
66
|
+
return glob.sync(includePattern, {
|
|
98
67
|
cwd: rootDir,
|
|
99
68
|
ignore: excludePattern
|
|
100
69
|
});
|
|
101
70
|
}
|
|
102
|
-
let changedFiles = options.type === 'changes' ?
|
|
71
|
+
let changedFiles = options.type === 'changes' ? getUncommittedChanges(rootDir) : getChangesOfLastCommit(rootDir);
|
|
103
72
|
changedFiles = changedFiles.filter(minimatch.filter(includePattern));
|
|
104
73
|
excludePattern.forEach(pattern => {
|
|
105
74
|
changedFiles = changedFiles.filter(minimatch.filter(`!${pattern}`));
|
|
@@ -108,24 +77,19 @@ function getFiles(rootDir, options) {
|
|
|
108
77
|
}
|
|
109
78
|
function validate(rootDir, files, options) {
|
|
110
79
|
var _a;
|
|
111
|
-
// Derives all files with valid headers
|
|
80
|
+
// Derives all files with valid headers and all files with no or invalid headers
|
|
112
81
|
const filesWithHeader = sh.grep('-l', HEADER_PATTERN, files).stdout.trim().split('\n');
|
|
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)));
|
|
118
82
|
const noHeaders = files.filter(file => !filesWithHeader.includes(file));
|
|
119
83
|
const results = [];
|
|
120
84
|
const allFilesLength = files.length;
|
|
121
85
|
// Create validation results for all files with no or invalid headers
|
|
122
86
|
const noHeadersLength = noHeaders.length;
|
|
123
87
|
if (noHeadersLength > 0) {
|
|
124
|
-
|
|
88
|
+
LOGGER.info(`Found ${noHeadersLength} files with no (or an invalid) copyright header`);
|
|
125
89
|
}
|
|
126
90
|
noHeaders.forEach((file, i) => {
|
|
127
91
|
printFileProgress(i + 1, allFilesLength, `Validating ${file}`);
|
|
128
|
-
results.push({ file: path.resolve(rootDir, file), violation: 'noOrMissingHeader'
|
|
92
|
+
results.push({ file: path.resolve(rootDir, file), violation: 'noOrMissingHeader' });
|
|
129
93
|
});
|
|
130
94
|
// Performance optimization: avoid retrieving the dates for each individual file by precalculating the endYear if possible.
|
|
131
95
|
let defaultEndYear;
|
|
@@ -133,79 +97,43 @@ function validate(rootDir, files, options) {
|
|
|
133
97
|
defaultEndYear = new Date().getFullYear();
|
|
134
98
|
}
|
|
135
99
|
else if (options.type === 'lastCommit') {
|
|
136
|
-
defaultEndYear = (_a =
|
|
100
|
+
defaultEndYear = (_a = getLastModificationDate(undefined, rootDir)) === null || _a === void 0 ? void 0 : _a.getFullYear();
|
|
137
101
|
}
|
|
138
102
|
// Create validation results for all files with valid headers
|
|
139
103
|
filesWithHeader.forEach((file, i) => {
|
|
140
104
|
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);
|
|
105
|
+
const copyrightLine = sh.head({ '-n': 2 }, file).stdout.trim().split('\n')[1];
|
|
106
|
+
const copyRightYears = copyrightLine.match(YEAR_RANGE_REGEX);
|
|
107
|
+
if (!copyRightYears) {
|
|
108
|
+
const result = { file, violation: 'noYear', line: copyrightLine };
|
|
109
|
+
results.push(result);
|
|
152
110
|
}
|
|
153
111
|
else {
|
|
154
|
-
|
|
112
|
+
const currentStartYear = Number.parseInt(copyRightYears[0], 10);
|
|
113
|
+
const currentEndYear = copyRightYears[1] ? Number.parseInt(copyRightYears[1], 10) : undefined;
|
|
114
|
+
const result = {
|
|
115
|
+
currentStartYear,
|
|
116
|
+
currentEndYear,
|
|
117
|
+
expectedEndYear: defaultEndYear !== null && defaultEndYear !== void 0 ? defaultEndYear : getLastModificationDate(file, rootDir, AUTO_FIX_MESSAGE).getFullYear(),
|
|
118
|
+
file,
|
|
119
|
+
violation: 'none'
|
|
120
|
+
};
|
|
121
|
+
validateEndYear(result);
|
|
122
|
+
results.push(result);
|
|
155
123
|
}
|
|
156
|
-
results.push(result);
|
|
157
124
|
});
|
|
158
125
|
results.sort((a, b) => a.file.localeCompare(b.file));
|
|
159
126
|
process.stdout.clearLine(0);
|
|
160
127
|
return results;
|
|
161
128
|
}
|
|
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) {
|
|
129
|
+
function validateEndYear(result) {
|
|
130
|
+
const { currentStartYear, expectedEndYear, currentEndYear } = result;
|
|
131
|
+
result.violation = 'invalidEndYear';
|
|
132
|
+
const valid = currentEndYear ? currentEndYear === expectedEndYear : currentStartYear === expectedEndYear;
|
|
133
|
+
if (valid) {
|
|
194
134
|
result.violation = 'none';
|
|
195
|
-
result.severity = 'ok';
|
|
196
135
|
return;
|
|
197
136
|
}
|
|
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
137
|
}
|
|
210
138
|
function printFileProgress(currentFileCount, maxFileCount, message, clear = true) {
|
|
211
139
|
if (clear) {
|
|
@@ -217,74 +145,65 @@ function printFileProgress(currentFileCount, maxFileCount, message, clear = true
|
|
|
217
145
|
process.stdout.write('\n');
|
|
218
146
|
}
|
|
219
147
|
}
|
|
220
|
-
function handleValidationResults(rootDir, results, options) {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
const violations = results.filter(result => result.
|
|
148
|
+
export function handleValidationResults(rootDir, results, options) {
|
|
149
|
+
LOGGER.newLine();
|
|
150
|
+
LOGGER.info(`Header validation for ${results.length} files completed`);
|
|
151
|
+
const violations = results.filter(result => result.violation !== 'none');
|
|
224
152
|
// Adjust results to print based on configured severity level
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
toPrint = results.filter(result => result.severity !== 'ok');
|
|
231
|
-
}
|
|
232
|
-
logger_1.LOGGER.info(`Found ${toPrint.length} copyright header violations:`);
|
|
233
|
-
logger_1.LOGGER.newLine();
|
|
234
|
-
toPrint.forEach((result, i) => logger_1.LOGGER.info(`${i + 1}. `, result.file, ':', toPrintMessage(result)));
|
|
235
|
-
logger_1.LOGGER.newLine();
|
|
153
|
+
const toPrint = violations;
|
|
154
|
+
LOGGER.info(`Found ${toPrint.length} copyright header violations:`);
|
|
155
|
+
LOGGER.newLine();
|
|
156
|
+
toPrint.forEach((result, i) => LOGGER.info(`${i + 1}. `, result.file, ':', toPrintMessage(result)));
|
|
157
|
+
LOGGER.newLine();
|
|
236
158
|
if (options.json) {
|
|
237
159
|
fs.writeFileSync(path.join(rootDir, 'headerCheck.json'), JSON.stringify(results, undefined, 2));
|
|
238
160
|
}
|
|
239
|
-
if (violations.length > 0 &&
|
|
240
|
-
|
|
161
|
+
if (violations.length > 0 &&
|
|
162
|
+
(options.autoFix || readline.keyInYN('Do you want to automatically fix copyright year range violations?'))) {
|
|
163
|
+
const toFix = violations.filter(violation => isDateValidationResult(violation));
|
|
241
164
|
fixViolations(rootDir, toFix, options);
|
|
242
165
|
}
|
|
243
|
-
|
|
166
|
+
LOGGER.info('Check completed');
|
|
244
167
|
}
|
|
245
|
-
exports.handleValidationResults = handleValidationResults;
|
|
246
168
|
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}'`;
|
|
169
|
+
const error = '\x1b[31m';
|
|
170
|
+
const info = '\x1b[32m';
|
|
171
|
+
if (isDateValidationResult(result) && result.violation === 'invalidEndYear') {
|
|
172
|
+
const expected = result.expectedEndYear.toString();
|
|
173
|
+
const actual = result.currentEndYear
|
|
174
|
+
? `${result.currentEndYear} (${result.currentStartYear}-${result.currentEndYear})`
|
|
175
|
+
: result.currentStartYear.toString();
|
|
176
|
+
const message = 'Invalid copyright end year';
|
|
177
|
+
return `${error} ${message}! Expected end year '${expected}' but is '${actual}'`;
|
|
260
178
|
}
|
|
261
179
|
else if (result.violation === 'noOrMissingHeader') {
|
|
262
|
-
return `${
|
|
180
|
+
return `${error} No or invalid copyright header!`;
|
|
263
181
|
}
|
|
264
|
-
|
|
182
|
+
else if (result.violation === 'noYear') {
|
|
183
|
+
return `${error} No year found!${result.line ? ' (line: ' + result.line + ')' : ''}`;
|
|
184
|
+
}
|
|
185
|
+
return `${info} OK`;
|
|
265
186
|
}
|
|
266
187
|
function fixViolations(rootDir, violations, options) {
|
|
267
|
-
|
|
188
|
+
LOGGER.newLine();
|
|
268
189
|
violations.forEach((violation, i) => {
|
|
269
190
|
printFileProgress(i + 1, violations.length, `Fix ${violation.file}`, false);
|
|
270
|
-
const fixedStartYear = violation.currentStartYear < violation.expectedStartYear ? violation.currentStartYear : violation.expectedStartYear;
|
|
271
191
|
const currentRange = `${violation.currentStartYear}${violation.currentEndYear ? '-' + violation.currentEndYear : ''}`;
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}
|
|
192
|
+
const fixedRange = violation.currentEndYear || violation.currentStartYear < violation.expectedEndYear
|
|
193
|
+
? `${violation.currentStartYear}-${violation.expectedEndYear}`
|
|
194
|
+
: `${violation.expectedEndYear}`;
|
|
276
195
|
sh.sed('-i', RegExp('Copyright \\([cC]\\) ' + currentRange), `Copyright (c) ${fixedRange}`, violation.file);
|
|
277
196
|
});
|
|
278
|
-
|
|
197
|
+
LOGGER.newLine();
|
|
279
198
|
if (options.autoFix || readline.keyInYN('Do you want to create a commit for the fixed files?')) {
|
|
280
|
-
|
|
199
|
+
LOGGER.newLine();
|
|
281
200
|
const files = violations.map(violation => violation.file).join(' ');
|
|
282
|
-
sh.exec(`git add ${files}`,
|
|
201
|
+
sh.exec(`git add ${files}`, getShellConfig());
|
|
283
202
|
sh.exec(`git commit -m "${AUTO_FIX_MESSAGE}"`);
|
|
284
|
-
|
|
203
|
+
LOGGER.newLine();
|
|
285
204
|
}
|
|
286
205
|
}
|
|
287
206
|
function isDateValidationResult(object) {
|
|
288
|
-
return 'currentStartYear' in object && '
|
|
207
|
+
return 'currentStartYear' in object && 'expectedEndYear' in object;
|
|
289
208
|
}
|
|
290
209
|
//# sourceMappingURL=check-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-header.js","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,4BAA4B;AAC5B,yCAAmC;AACnC,uCAAyB;AACzB,+BAA4B;AAC5B,qDAAuC;AACvC,wDAA0C;AAC1C,4CAA8B;AAC9B,uDAAmF;AACnF,+CAO0B;AAE1B,2CAAwC;AACxC,6DAA+D;AAC/D,6BAA8B;AAW9B,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAG9D,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAU,CAAC;AAIvD,MAAM,gBAAgB,GAAG,CAAC,uCAAuC,CAAC,CAAC;AACnE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAE9C,QAAA,kBAAkB,GAAG,IAAA,0BAAW,GAAE,CAAC,EAAE;KAC7C,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,4DAA4D,CAAC;KACzE,QAAQ,CAAC,WAAW,EAAE,sCAAsC,EAAE,sCAAoB,CAAC;KACnF,SAAS,CACN,IAAI,kBAAM,CACN,mBAAmB,EACnB,yFAAyF;IACrF,8CAA8C,CACrD;KACI,OAAO,CAAC,UAAU,CAAC;KACnB,OAAO,CAAC,MAAM,CAAC,CACvB;KACA,MAAM,CAAC,sCAAsC,EAAE,wCAAwC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACvG,SAAS,CACN,IAAI,kBAAM,CACN,4BAA4B,EAC5B,8GAA8G,CACjH,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,gBAAgB,GAAG,CAAC,CACzC;KACA,MAAM,CACH,uBAAuB,EACvB,gHAAgH,CACnH;KACA,MAAM,CAAC,YAAY,EAAE,8CAA8C,EAAE,KAAK,CAAC;KAC3E,SAAS,CACN,IAAI,kBAAM,CAAC,2BAA2B,EAAE,4DAA4D,CAAC;KAChG,OAAO,CAAC,aAAa,CAAC;KACtB,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC1C;KACA,MAAM,CAAC,eAAe,EAAE,sDAAsD,EAAE,KAAK,CAAC;KACtF,MAAM,CAAC,YAAY,CAAC,CAAC;AAE1B,SAAgB,YAAY,CAAC,OAAe,EAAE,OAA2B;IACrE,IAAA,6BAAc,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,eAAe,EAAE;QACzB,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;KAC7C;IAED,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,eAAM,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACpB,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO;KACV;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAhBD,oCAgBC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,OAA2B;IAC1D,MAAM,cAAc,GAAG,UAAU,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAEvC,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;QACzB,OAAO,WAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YAC7B,GAAG,EAAE,OAAO;YACZ,MAAM,EAAE,cAAc;SACzB,CAAC,CAAC;KACN;IAED,IAAI,YAAY,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAsB,EAAC,OAAO,CAAC,CAAC;IACjH,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IAErE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QAC7B,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAe,EAAE,OAA2B;;IAC3E,uGAAuG;IACvG,MAAM,eAAe,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,EAAE;SACpB,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC;SAC3B,MAAM,CAAC,IAAI,EAAE;SACb,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAExE,MAAM,OAAO,GAAuB,EAAE,CAAC;IAEvC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;IAEpC,qEAAqE;IACrE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;IACzC,IAAI,eAAe,GAAG,CAAC,EAAE;QACrB,eAAM,CAAC,IAAI,CAAC,SAAS,eAAe,iDAAiD,CAAC,CAAC;KAC1F;IACD,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC1B,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IAEH,2HAA2H;IAC3H,IAAI,cAAkC,CAAC;IACvC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QAC5B,cAAc,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KAC7C;SAAM,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE;QACtC,cAAc,GAAG,MAAA,IAAA,kCAAuB,EAAC,SAAS,EAAE,OAAO,CAAC,0CAAE,WAAW,EAAE,CAAC;KAC/E;IAED,6DAA6D;IAC7D,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAChC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,cAAc,EAAE,cAAc,IAAI,EAAE,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAyB;YACjC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAG;YAC5C,iBAAiB,EAAE,IAAA,mCAAwB,EAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAE,CAAC,WAAW,EAAE;YAC3F,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACzC,eAAe,EAAE,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,IAAA,kCAAuB,EAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAE,CAAC,WAAW,EAAE;YAC1G,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,MAAM;SACpB,CAAC;QAEF,IAAI,MAAM,CAAC,iBAAiB,KAAK,MAAM,CAAC,eAAe,EAAE;YACrD,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC9B;aAAM;YACH,kBAAkB,CAAC,MAAM,CAAC,CAAC;SAC9B;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAErD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA4B;IACpD,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IACvE,MAAM,CAAC,SAAS,GAAG,sBAAsB,CAAC;IAC1C,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;IAE1B,IAAI,CAAC,cAAc,EAAE;QACjB,IAAI,gBAAgB,KAAK,iBAAiB,EAAE;YACxC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;QACD,OAAO;KACV;IAED,mHAAmH;IACnH,iEAAiE;IACjE,IAAI,iBAAiB,KAAK,cAAc,IAAI,gBAAgB,GAAG,iBAAiB,EAAE;QAC9E,IAAI,IAAA,yBAAc,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAA,2BAAgB,GAAE,EAAE;YACpD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;aAAM;YACH,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;SAC5B;KACJ;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA4B;IACpD,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAExF,MAAM,CAAC,SAAS,GAAG,0BAA0B,CAAC;IAC9C,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,IAAI,CAAC,cAAc,EAAE;QACjB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;QAC1B,OAAO;KACV;IAED,IAAI,gBAAgB,KAAK,iBAAiB,IAAI,cAAc,KAAK,eAAe,EAAE;QAC9E,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,OAAO;KACV;IAED,mHAAmH;IACnH,iEAAiE;IACjE,IAAI,cAAc,KAAK,eAAe,IAAI,gBAAgB,GAAG,eAAe,EAAE;QAC1E,IAAI,IAAA,yBAAc,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAA,2BAAgB,GAAE,EAAE;YACpD,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;YAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC1B;aAAM;YACH,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;SAC5B;KACJ;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,gBAAwB,EAAE,YAAoB,EAAE,OAAe,EAAE,KAAK,GAAG,IAAI;IACpG,IAAI,KAAK,EAAE;QACP,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,gBAAgB,OAAO,YAAY,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,KAAK,EAAE;QACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC9B;AACL,CAAC;AAED,SAAgB,uBAAuB,CAAC,OAAe,EAAE,OAA2B,EAAE,OAA2B;IAC7G,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IACzE,6DAA6D;IAC7D,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAC9B,OAAO,GAAG,UAAU,CAAC;KACxB;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;QACpC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;KAChE;IAED,eAAM,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,+BAA+B,CAAC,CAAC;IACpE,eAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEpG,eAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,IAAI,OAAO,CAAC,IAAI,EAAE;QACd,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;KACnG;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,EAAE;QAClI,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAC3B,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,sBAAsB,CAAC,SAAS,CAAC,CACzD,CAAC;QAC5B,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;KAC1C;IAED,eAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACnC,CAAC;AA/BD,0DA+BC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,MAAM,GAA6B;QACrC,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,UAAU;KACR,CAAC;IAEX,IACI,sBAAsB,CAAC,MAAM,CAAC;QAC9B,CAAC,MAAM,CAAC,SAAS,KAAK,0BAA0B,IAAI,MAAM,CAAC,SAAS,KAAK,sBAAsB,CAAC,EAClG;QACE,MAAM,QAAQ,GACV,MAAM,CAAC,iBAAiB,KAAK,MAAM,CAAC,eAAe;YAC/C,CAAC,CAAC,GAAG,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,eAAe,EAAE;YACzD,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAClI,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,KAAK,0BAA0B,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACxH,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,eAAe,QAAQ,aAAa,MAAM,GAAG,CAAC;KAC7F;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,mBAAmB,EAAE;QACjD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KACvE;IAED,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,UAAkC,EAAE,OAA2B;IACnG,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;QAChC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,cAAc,GAChB,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC;QAExH,MAAM,YAAY,GAAG,GAAG,SAAS,CAAC,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEtH,IAAI,UAAU,GAAG,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,SAAS,CAAC,eAAe,KAAK,SAAS,CAAC,iBAAiB,IAAI,cAAc,KAAK,SAAS,CAAC,iBAAiB,EAAE;YAC7G,UAAU,GAAG,GAAG,cAAc,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;SACjE;QAED,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,uBAAuB,GAAG,YAAY,CAAC,EAAE,iBAAiB,UAAU,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAChH,CAAC,CAAC,CAAC;IACH,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,IAAI,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,qDAAqD,CAAC,EAAE;QAC5F,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,EAAE,EAAE,IAAA,6BAAc,GAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,IAAI,CAAC,kBAAkB,gBAAgB,GAAG,CAAC,CAAC;QAC/C,eAAM,CAAC,OAAO,EAAE,CAAC;KACpB;AACL,CAAC;AAgBD,SAAS,sBAAsB,CAAC,MAAwB;IACpD,OAAO,kBAAkB,IAAI,MAAM,IAAI,mBAAmB,IAAI,MAAM,IAAI,iBAAiB,IAAI,MAAM,CAAC;AACxG,CAAC"}
|
|
1
|
+
{"version":3,"file":"check-header.js","sourceRoot":"","sources":["../../src/commands/check-header.ts"],"names":[],"mappings":"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"}
|