@rushstack/package-extractor 0.10.38 → 0.10.39
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/CHANGELOG.json +27 -0
- package/CHANGELOG.md +6 -1
- package/dist/scripts/create-links.js +392 -1
- package/dist/scripts/create-links.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/package.json +7 -7
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rushstack/package-extractor",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.10.39",
|
|
6
|
+
"tag": "@rushstack/package-extractor_v0.10.39",
|
|
7
|
+
"date": "Tue, 30 Sep 2025 20:33:51 GMT",
|
|
8
|
+
"comments": {
|
|
9
|
+
"dependency": [
|
|
10
|
+
{
|
|
11
|
+
"comment": "Updating dependency \"@rushstack/node-core-library\" to `5.15.0`"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"comment": "Updating dependency \"@rushstack/terminal\" to `0.17.0`"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.0.4`"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `0.11.43`"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"comment": "Updating dependency \"@rushstack/heft\" to `0.75.0`"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.11.109`"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
4
31
|
{
|
|
5
32
|
"version": "0.10.38",
|
|
6
33
|
"tag": "@rushstack/package-extractor_v0.10.38",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Change Log - @rushstack/package-extractor
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 30 Sep 2025 20:33:51 GMT and should not be manually modified.
|
|
4
|
+
|
|
5
|
+
## 0.10.39
|
|
6
|
+
Tue, 30 Sep 2025 20:33:51 GMT
|
|
7
|
+
|
|
8
|
+
_Version update only_
|
|
4
9
|
|
|
5
10
|
## 0.10.38
|
|
6
11
|
Fri, 12 Sep 2025 15:13:07 GMT
|
|
@@ -3826,6 +3826,24 @@ var tap =
|
|
|
3826
3826
|
|
|
3827
3827
|
/***/ }),
|
|
3828
3828
|
|
|
3829
|
+
/***/ 51542:
|
|
3830
|
+
/*!***************************************!*\
|
|
3831
|
+
!*** ../problem-matcher/lib/index.js ***!
|
|
3832
|
+
\***************************************/
|
|
3833
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
3834
|
+
|
|
3835
|
+
"use strict";
|
|
3836
|
+
|
|
3837
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
3838
|
+
// See LICENSE in the project root for license information.
|
|
3839
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
3840
|
+
exports.parseProblemMatchersJson = void 0;
|
|
3841
|
+
var ProblemMatcher_1 = __webpack_require__(/*! ./ProblemMatcher */ 217315);
|
|
3842
|
+
Object.defineProperty(exports, "parseProblemMatchersJson", ({ enumerable: true, get: function () { return ProblemMatcher_1.parseProblemMatchersJson; } }));
|
|
3843
|
+
//# sourceMappingURL=index.js.map
|
|
3844
|
+
|
|
3845
|
+
/***/ }),
|
|
3846
|
+
|
|
3829
3847
|
/***/ 51650:
|
|
3830
3848
|
/*!************************************************************************************************!*\
|
|
3831
3849
|
!*** ../../common/temp/default/node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/minBy.js ***!
|
|
@@ -16825,6 +16843,248 @@ function _of(x) {
|
|
|
16825
16843
|
|
|
16826
16844
|
/***/ }),
|
|
16827
16845
|
|
|
16846
|
+
/***/ 217315:
|
|
16847
|
+
/*!************************************************!*\
|
|
16848
|
+
!*** ../problem-matcher/lib/ProblemMatcher.js ***!
|
|
16849
|
+
\************************************************/
|
|
16850
|
+
/***/ ((__unused_webpack_module, exports) => {
|
|
16851
|
+
|
|
16852
|
+
"use strict";
|
|
16853
|
+
|
|
16854
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
16855
|
+
// See LICENSE in the project root for license information.
|
|
16856
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
16857
|
+
exports.parseProblemMatchersJson = parseProblemMatchersJson;
|
|
16858
|
+
/**
|
|
16859
|
+
* Parse VS Code problem matcher JSON definitions into {@link IProblemMatcher} objects.
|
|
16860
|
+
*
|
|
16861
|
+
* @public
|
|
16862
|
+
*/
|
|
16863
|
+
function parseProblemMatchersJson(problemMatchers) {
|
|
16864
|
+
const result = [];
|
|
16865
|
+
for (const matcher of problemMatchers) {
|
|
16866
|
+
const problemPatterns = Array.isArray(matcher.pattern)
|
|
16867
|
+
? matcher.pattern
|
|
16868
|
+
: [matcher.pattern];
|
|
16869
|
+
if (problemPatterns.length === 0) {
|
|
16870
|
+
continue;
|
|
16871
|
+
}
|
|
16872
|
+
const name = matcher.name;
|
|
16873
|
+
const defaultSeverity = matcher.severity;
|
|
16874
|
+
const compiled = compileProblemPatterns(problemPatterns);
|
|
16875
|
+
if (compiled.length === 1) {
|
|
16876
|
+
result.push(createSingleLineMatcher(name, compiled[0], defaultSeverity));
|
|
16877
|
+
}
|
|
16878
|
+
else {
|
|
16879
|
+
result.push(createMultiLineMatcher(name, compiled, defaultSeverity));
|
|
16880
|
+
}
|
|
16881
|
+
}
|
|
16882
|
+
return result;
|
|
16883
|
+
}
|
|
16884
|
+
function toNumber(text) {
|
|
16885
|
+
if (!text) {
|
|
16886
|
+
return undefined;
|
|
16887
|
+
}
|
|
16888
|
+
const n = parseInt(text, 10);
|
|
16889
|
+
return isNaN(n) ? undefined : n;
|
|
16890
|
+
}
|
|
16891
|
+
function normalizeSeverity(raw) {
|
|
16892
|
+
if (!raw) {
|
|
16893
|
+
return undefined;
|
|
16894
|
+
}
|
|
16895
|
+
const lowered = raw.toLowerCase();
|
|
16896
|
+
// Support full words as well as common abbreviations (e.g. single-letter tokens)
|
|
16897
|
+
if (lowered.indexOf('err') === 0)
|
|
16898
|
+
return 'error';
|
|
16899
|
+
if (lowered.indexOf('warn') === 0)
|
|
16900
|
+
return 'warning';
|
|
16901
|
+
if (lowered.indexOf('info') === 0)
|
|
16902
|
+
return 'info';
|
|
16903
|
+
return undefined;
|
|
16904
|
+
}
|
|
16905
|
+
function compileProblemPatterns(problemPatterns) {
|
|
16906
|
+
return problemPatterns.map((problemPattern) => {
|
|
16907
|
+
let reStr = problemPattern.regexp;
|
|
16908
|
+
if (/\\r?\\n\$/.test(reStr) || /\\n\$/.test(reStr)) {
|
|
16909
|
+
// already newline aware
|
|
16910
|
+
}
|
|
16911
|
+
else if (reStr.length > 0 && reStr.charAt(reStr.length - 1) === '$') {
|
|
16912
|
+
reStr = reStr.slice(0, -1) + '\\r?\\n$';
|
|
16913
|
+
}
|
|
16914
|
+
else {
|
|
16915
|
+
reStr = reStr + '(?:\\r?\\n)';
|
|
16916
|
+
}
|
|
16917
|
+
const re = new RegExp(reStr);
|
|
16918
|
+
return { re, spec: problemPattern };
|
|
16919
|
+
});
|
|
16920
|
+
}
|
|
16921
|
+
function createEmptyCaptures() {
|
|
16922
|
+
return { messageParts: [] };
|
|
16923
|
+
}
|
|
16924
|
+
/**
|
|
16925
|
+
* Apply one pattern's regex match to the (possibly accumulating) captures.
|
|
16926
|
+
*/
|
|
16927
|
+
function applyPatternCaptures(spec, reMatch, captures, defaultSeverity) {
|
|
16928
|
+
if (spec.file && reMatch[spec.file]) {
|
|
16929
|
+
captures.file = reMatch[spec.file];
|
|
16930
|
+
}
|
|
16931
|
+
if (spec.location && reMatch[spec.location]) {
|
|
16932
|
+
const loc = reMatch[spec.location];
|
|
16933
|
+
const parts = loc.split(/[,.:]/).filter((s) => s.length > 0);
|
|
16934
|
+
if (parts.length === 1) {
|
|
16935
|
+
captures.line = toNumber(parts[0]);
|
|
16936
|
+
}
|
|
16937
|
+
else if (parts.length === 2) {
|
|
16938
|
+
captures.line = toNumber(parts[0]);
|
|
16939
|
+
captures.column = toNumber(parts[1]);
|
|
16940
|
+
}
|
|
16941
|
+
else if (parts.length === 4) {
|
|
16942
|
+
captures.line = toNumber(parts[0]);
|
|
16943
|
+
captures.column = toNumber(parts[1]);
|
|
16944
|
+
captures.endLine = toNumber(parts[2]);
|
|
16945
|
+
captures.endColumn = toNumber(parts[3]);
|
|
16946
|
+
}
|
|
16947
|
+
}
|
|
16948
|
+
else {
|
|
16949
|
+
if (spec.line && reMatch[spec.line]) {
|
|
16950
|
+
captures.line = toNumber(reMatch[spec.line]);
|
|
16951
|
+
}
|
|
16952
|
+
if (spec.column && reMatch[spec.column]) {
|
|
16953
|
+
captures.column = toNumber(reMatch[spec.column]);
|
|
16954
|
+
}
|
|
16955
|
+
}
|
|
16956
|
+
if (spec.endLine && reMatch[spec.endLine]) {
|
|
16957
|
+
captures.endLine = toNumber(reMatch[spec.endLine]);
|
|
16958
|
+
}
|
|
16959
|
+
if (spec.endColumn && reMatch[spec.endColumn]) {
|
|
16960
|
+
captures.endColumn = toNumber(reMatch[spec.endColumn]);
|
|
16961
|
+
}
|
|
16962
|
+
if (spec.severity && reMatch[spec.severity]) {
|
|
16963
|
+
captures.severity = normalizeSeverity(reMatch[spec.severity]) || defaultSeverity;
|
|
16964
|
+
}
|
|
16965
|
+
else if (!captures.severity && defaultSeverity) {
|
|
16966
|
+
captures.severity = defaultSeverity;
|
|
16967
|
+
}
|
|
16968
|
+
if (spec.code && reMatch[spec.code]) {
|
|
16969
|
+
captures.code = reMatch[spec.code];
|
|
16970
|
+
}
|
|
16971
|
+
if (spec.message && reMatch[spec.message]) {
|
|
16972
|
+
captures.messageParts.push(reMatch[spec.message]);
|
|
16973
|
+
}
|
|
16974
|
+
}
|
|
16975
|
+
function finalizeProblem(matcherName, captures, defaultSeverity) {
|
|
16976
|
+
return {
|
|
16977
|
+
matcherName,
|
|
16978
|
+
file: captures.file,
|
|
16979
|
+
line: captures.line,
|
|
16980
|
+
column: captures.column,
|
|
16981
|
+
endLine: captures.endLine,
|
|
16982
|
+
endColumn: captures.endColumn,
|
|
16983
|
+
severity: captures.severity || defaultSeverity,
|
|
16984
|
+
code: captures.code,
|
|
16985
|
+
message: captures.messageParts.join('\n')
|
|
16986
|
+
};
|
|
16987
|
+
}
|
|
16988
|
+
function createSingleLineMatcher(name, compiled, defaultSeverity) {
|
|
16989
|
+
const { re, spec } = compiled;
|
|
16990
|
+
return {
|
|
16991
|
+
name,
|
|
16992
|
+
exec(line) {
|
|
16993
|
+
const match = re.exec(line);
|
|
16994
|
+
if (!match) {
|
|
16995
|
+
return false;
|
|
16996
|
+
}
|
|
16997
|
+
const captures = createEmptyCaptures();
|
|
16998
|
+
applyPatternCaptures(spec, match, captures, defaultSeverity);
|
|
16999
|
+
return finalizeProblem(name, captures, defaultSeverity);
|
|
17000
|
+
}
|
|
17001
|
+
};
|
|
17002
|
+
}
|
|
17003
|
+
function createMultiLineMatcher(name, compiled, defaultSeverity) {
|
|
17004
|
+
// currentIndex points to the next pattern we expect to match. When it equals compiled.length
|
|
17005
|
+
// and the last pattern is a loop, we are in a special "loop state" where additional lines
|
|
17006
|
+
// should be attempted against only the last pattern to emit more problems.
|
|
17007
|
+
let currentIndex = 0;
|
|
17008
|
+
const lastSpec = compiled[compiled.length - 1].spec;
|
|
17009
|
+
const lastIsLoop = !!lastSpec.loop;
|
|
17010
|
+
let captures = createEmptyCaptures();
|
|
17011
|
+
return {
|
|
17012
|
+
name,
|
|
17013
|
+
exec(line) {
|
|
17014
|
+
let effectiveMatch = null;
|
|
17015
|
+
let effectiveSpec;
|
|
17016
|
+
// Determine matching behavior based on current state
|
|
17017
|
+
if (currentIndex === compiled.length && lastIsLoop) {
|
|
17018
|
+
// Loop state: only try to match the last pattern
|
|
17019
|
+
const lastPattern = compiled[compiled.length - 1];
|
|
17020
|
+
effectiveMatch = lastPattern.re.exec(line);
|
|
17021
|
+
if (!effectiveMatch) {
|
|
17022
|
+
// Exit loop state and reset for a potential new sequence
|
|
17023
|
+
currentIndex = 0;
|
|
17024
|
+
captures = createEmptyCaptures();
|
|
17025
|
+
// Attempt to treat this line as a fresh start (pattern 0)
|
|
17026
|
+
const first = compiled[0];
|
|
17027
|
+
const fresh = first.re.exec(line);
|
|
17028
|
+
if (!fresh) {
|
|
17029
|
+
return false;
|
|
17030
|
+
}
|
|
17031
|
+
effectiveMatch = fresh;
|
|
17032
|
+
effectiveSpec = first.spec;
|
|
17033
|
+
currentIndex = compiled.length > 1 ? 1 : compiled.length;
|
|
17034
|
+
}
|
|
17035
|
+
else {
|
|
17036
|
+
effectiveSpec = lastPattern.spec;
|
|
17037
|
+
// currentIndex remains compiled.length (loop state) until we decide to emit
|
|
17038
|
+
}
|
|
17039
|
+
}
|
|
17040
|
+
else {
|
|
17041
|
+
// Normal multi-line progression state
|
|
17042
|
+
const active = compiled[currentIndex];
|
|
17043
|
+
const reMatch = active.re.exec(line);
|
|
17044
|
+
if (!reMatch) {
|
|
17045
|
+
// Reset and maybe attempt new start
|
|
17046
|
+
currentIndex = 0;
|
|
17047
|
+
captures = createEmptyCaptures();
|
|
17048
|
+
const { re: re0, spec: spec0 } = compiled[0];
|
|
17049
|
+
const restartMatch = re0.exec(line);
|
|
17050
|
+
if (!restartMatch) {
|
|
17051
|
+
return false;
|
|
17052
|
+
}
|
|
17053
|
+
effectiveMatch = restartMatch;
|
|
17054
|
+
effectiveSpec = spec0;
|
|
17055
|
+
currentIndex = compiled.length > 1 ? 1 : compiled.length;
|
|
17056
|
+
}
|
|
17057
|
+
else {
|
|
17058
|
+
effectiveMatch = reMatch;
|
|
17059
|
+
effectiveSpec = active.spec;
|
|
17060
|
+
currentIndex++;
|
|
17061
|
+
}
|
|
17062
|
+
}
|
|
17063
|
+
applyPatternCaptures(effectiveSpec, effectiveMatch, captures, defaultSeverity);
|
|
17064
|
+
// If we haven't matched all patterns yet (and not in loop state), wait for more lines
|
|
17065
|
+
if (currentIndex < compiled.length) {
|
|
17066
|
+
return false;
|
|
17067
|
+
}
|
|
17068
|
+
// We have matched the full sequence (either first completion or a loop iteration)
|
|
17069
|
+
const problem = finalizeProblem(name, captures, defaultSeverity);
|
|
17070
|
+
if (lastIsLoop) {
|
|
17071
|
+
// Stay in loop state; reset fields that accumulate per problem but retain other context (e.g., file if first pattern captured it?)
|
|
17072
|
+
// For safety, if the last pattern provided the file each iteration we keep overwriting anyway.
|
|
17073
|
+
captures.messageParts = [];
|
|
17074
|
+
// Do not clear entire captures to allow preceding pattern data (e.g., summary) to persist if desirable.
|
|
17075
|
+
}
|
|
17076
|
+
else {
|
|
17077
|
+
currentIndex = 0;
|
|
17078
|
+
captures = createEmptyCaptures();
|
|
17079
|
+
}
|
|
17080
|
+
return problem;
|
|
17081
|
+
}
|
|
17082
|
+
};
|
|
17083
|
+
}
|
|
17084
|
+
//# sourceMappingURL=ProblemMatcher.js.map
|
|
17085
|
+
|
|
17086
|
+
/***/ }),
|
|
17087
|
+
|
|
16828
17088
|
/***/ 217948:
|
|
16829
17089
|
/*!*****************************************************************************************************************!*\
|
|
16830
17090
|
!*** ../../common/temp/default/node_modules/.pnpm/graceful-fs@4.2.4/node_modules/graceful-fs/legacy-streams.js ***!
|
|
@@ -29445,6 +29705,24 @@ const Path_1 = __webpack_require__(/*! ./Path */ 302405);
|
|
|
29445
29705
|
const TypeUuid_1 = __webpack_require__(/*! ./TypeUuid */ 694977);
|
|
29446
29706
|
const uuidFileError = '37a4c772-2dc8-4c66-89ae-262f8cc1f0c1';
|
|
29447
29707
|
const baseFolderEnvVar = 'RUSHSTACK_FILE_ERROR_BASE_FOLDER';
|
|
29708
|
+
const unixProblemMatcherPattern = {
|
|
29709
|
+
regexp: '^\\[[^\\]]+\\]\\s+(Error|Warning):\\s+([^:]+):(\\d+):(\\d+)\\s+-\\s+(?:\\(([^)]+)\\)\\s+)?(.*)$',
|
|
29710
|
+
severity: 1,
|
|
29711
|
+
file: 2,
|
|
29712
|
+
line: 3,
|
|
29713
|
+
column: 4,
|
|
29714
|
+
code: 5,
|
|
29715
|
+
message: 6
|
|
29716
|
+
};
|
|
29717
|
+
const vsProblemMatcherPattern = {
|
|
29718
|
+
regexp: '^\\[[^\\]]+\\]\\s+(Error|Warning):\\s+([^\\(]+)\\((\\d+),(\\d+)\\)\\s+-\\s+(?:\\(([^)]+)\\)\\s+)?(.*)$',
|
|
29719
|
+
severity: 1,
|
|
29720
|
+
file: 2,
|
|
29721
|
+
line: 3,
|
|
29722
|
+
column: 4,
|
|
29723
|
+
code: 5,
|
|
29724
|
+
message: 6
|
|
29725
|
+
};
|
|
29448
29726
|
/**
|
|
29449
29727
|
* An `Error` subclass that should be thrown to report an unexpected state that specifically references
|
|
29450
29728
|
* a location in a file.
|
|
@@ -29497,6 +29775,23 @@ class FileError extends Error {
|
|
|
29497
29775
|
column: this.column
|
|
29498
29776
|
});
|
|
29499
29777
|
}
|
|
29778
|
+
/**
|
|
29779
|
+
* Get the problem matcher pattern for parsing error messages.
|
|
29780
|
+
*
|
|
29781
|
+
* @param options - Options for the error message format.
|
|
29782
|
+
* @returns The problem matcher pattern.
|
|
29783
|
+
*/
|
|
29784
|
+
static getProblemMatcher(options) {
|
|
29785
|
+
const format = (options === null || options === void 0 ? void 0 : options.format) || 'Unix';
|
|
29786
|
+
switch (format) {
|
|
29787
|
+
case 'Unix':
|
|
29788
|
+
return unixProblemMatcherPattern;
|
|
29789
|
+
case 'VisualStudio':
|
|
29790
|
+
return vsProblemMatcherPattern;
|
|
29791
|
+
default:
|
|
29792
|
+
throw new Error(`The FileError format "${format}" is not supported for problem matchers.`);
|
|
29793
|
+
}
|
|
29794
|
+
}
|
|
29500
29795
|
_evaluateBaseFolder() {
|
|
29501
29796
|
// Cache the sanitized environment variable. This means that we don't support changing
|
|
29502
29797
|
// the environment variable mid-execution. This is a reasonable tradeoff for the benefit
|
|
@@ -71550,7 +71845,7 @@ exports.CommandLineAction = CommandLineAction;
|
|
|
71550
71845
|
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
71551
71846
|
// See LICENSE in the project root for license information.
|
|
71552
71847
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
71553
|
-
exports.TerminalStreamWritable = exports.NoOpTerminalProvider = exports.PrefixProxyTerminalProvider = exports.StringBufferTerminalProvider = exports.ConsoleTerminalProvider = exports.TerminalProviderSeverity = exports.Colorize = exports.Terminal = exports.AnsiEscape = exports.TextRewriterTransform = exports.TextRewriter = exports.TerminalWritable = exports.TerminalTransform = exports.StdioWritable = exports.StdioSummarizer = exports.StderrLineTransform = exports.SplitterTransform = exports.RemoveColorsTextRewriter = exports.PrintUtilities = exports.DEFAULT_CONSOLE_WIDTH = exports.NormalizeNewlinesTextRewriter = exports.MockWritable = exports.TerminalChunkKind = exports.DiscardStdoutTransform = exports.CallbackWritable = void 0;
|
|
71848
|
+
exports.ProblemCollector = exports.TerminalStreamWritable = exports.NoOpTerminalProvider = exports.PrefixProxyTerminalProvider = exports.StringBufferTerminalProvider = exports.ConsoleTerminalProvider = exports.TerminalProviderSeverity = exports.Colorize = exports.Terminal = exports.AnsiEscape = exports.TextRewriterTransform = exports.TextRewriter = exports.TerminalWritable = exports.TerminalTransform = exports.StdioWritable = exports.StdioSummarizer = exports.StderrLineTransform = exports.SplitterTransform = exports.RemoveColorsTextRewriter = exports.PrintUtilities = exports.DEFAULT_CONSOLE_WIDTH = exports.NormalizeNewlinesTextRewriter = exports.MockWritable = exports.TerminalChunkKind = exports.DiscardStdoutTransform = exports.CallbackWritable = void 0;
|
|
71554
71849
|
/// <reference types="node" preserve="true" />
|
|
71555
71850
|
/**
|
|
71556
71851
|
* This library implements a system for processing human readable text that
|
|
@@ -71610,6 +71905,8 @@ var NoOpTerminalProvider_1 = __webpack_require__(/*! ./NoOpTerminalProvider */ 7
|
|
|
71610
71905
|
Object.defineProperty(exports, "NoOpTerminalProvider", ({ enumerable: true, get: function () { return NoOpTerminalProvider_1.NoOpTerminalProvider; } }));
|
|
71611
71906
|
var TerminalStreamWritable_1 = __webpack_require__(/*! ./TerminalStreamWritable */ 687716);
|
|
71612
71907
|
Object.defineProperty(exports, "TerminalStreamWritable", ({ enumerable: true, get: function () { return TerminalStreamWritable_1.TerminalStreamWritable; } }));
|
|
71908
|
+
var ProblemCollector_1 = __webpack_require__(/*! ./ProblemCollector */ 996746);
|
|
71909
|
+
Object.defineProperty(exports, "ProblemCollector", ({ enumerable: true, get: function () { return ProblemCollector_1.ProblemCollector; } }));
|
|
71613
71910
|
//# sourceMappingURL=index.js.map
|
|
71614
71911
|
|
|
71615
71912
|
/***/ }),
|
|
@@ -72359,6 +72656,100 @@ var last =
|
|
|
72359
72656
|
|
|
72360
72657
|
/***/ }),
|
|
72361
72658
|
|
|
72659
|
+
/***/ 996746:
|
|
72660
|
+
/*!*******************************************!*\
|
|
72661
|
+
!*** ../terminal/lib/ProblemCollector.js ***!
|
|
72662
|
+
\*******************************************/
|
|
72663
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
72664
|
+
|
|
72665
|
+
"use strict";
|
|
72666
|
+
|
|
72667
|
+
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
|
|
72668
|
+
// See LICENSE in the project root for license information.
|
|
72669
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
72670
|
+
exports.ProblemCollector = void 0;
|
|
72671
|
+
const problem_matcher_1 = __webpack_require__(/*! @rushstack/problem-matcher */ 51542);
|
|
72672
|
+
const TerminalWritable_1 = __webpack_require__(/*! ./TerminalWritable */ 33900);
|
|
72673
|
+
/**
|
|
72674
|
+
* A {@link TerminalWritable} that consumes line-oriented terminal output and extracts structured
|
|
72675
|
+
* problems using one or more {@link @rushstack/problem-matcher#IProblemMatcher | IProblemMatcher} instances.
|
|
72676
|
+
*
|
|
72677
|
+
* @remarks
|
|
72678
|
+
* This collector expects that each incoming {@link ITerminalChunk} represents a single line terminated
|
|
72679
|
+
* by a `"\n"` character (for example when preceded by {@link StderrLineTransform} / `StdioLineTransform`).
|
|
72680
|
+
* If a chunk does not end with a newline an error is thrown to surface incorrect pipeline wiring early.
|
|
72681
|
+
*
|
|
72682
|
+
* @beta
|
|
72683
|
+
*/
|
|
72684
|
+
class ProblemCollector extends TerminalWritable_1.TerminalWritable {
|
|
72685
|
+
constructor(options) {
|
|
72686
|
+
super(options);
|
|
72687
|
+
this._problems = new Set();
|
|
72688
|
+
if (!options ||
|
|
72689
|
+
((!options.matchers || options.matchers.length === 0) &&
|
|
72690
|
+
(!options.matcherJson || options.matcherJson.length === 0))) {
|
|
72691
|
+
throw new Error('ProblemCollector requires at least one problem matcher.');
|
|
72692
|
+
}
|
|
72693
|
+
const fromJson = options.matcherJson
|
|
72694
|
+
? (0, problem_matcher_1.parseProblemMatchersJson)(options.matcherJson)
|
|
72695
|
+
: [];
|
|
72696
|
+
this._matchers = [...(options.matchers || []), ...fromJson];
|
|
72697
|
+
if (this._matchers.length === 0) {
|
|
72698
|
+
throw new Error('ProblemCollector requires at least one problem matcher.');
|
|
72699
|
+
}
|
|
72700
|
+
}
|
|
72701
|
+
/**
|
|
72702
|
+
* {@inheritdoc IProblemCollector}
|
|
72703
|
+
*/
|
|
72704
|
+
get problems() {
|
|
72705
|
+
return this._problems;
|
|
72706
|
+
}
|
|
72707
|
+
/**
|
|
72708
|
+
* {@inheritdoc TerminalWritable}
|
|
72709
|
+
*/
|
|
72710
|
+
onWriteChunk(chunk) {
|
|
72711
|
+
const text = chunk.text;
|
|
72712
|
+
if (text.length === 0 || text[text.length - 1] !== '\n') {
|
|
72713
|
+
throw new Error('ProblemCollector expects chunks that were split into newline terminated lines. ' +
|
|
72714
|
+
'Invalid input: ' +
|
|
72715
|
+
JSON.stringify(text));
|
|
72716
|
+
}
|
|
72717
|
+
for (const matcher of this._matchers) {
|
|
72718
|
+
const problem = matcher.exec(text);
|
|
72719
|
+
if (problem) {
|
|
72720
|
+
const finalized = {
|
|
72721
|
+
...problem,
|
|
72722
|
+
matcherName: matcher.name
|
|
72723
|
+
};
|
|
72724
|
+
this._problems.add(finalized);
|
|
72725
|
+
}
|
|
72726
|
+
}
|
|
72727
|
+
}
|
|
72728
|
+
/**
|
|
72729
|
+
* {@inheritdoc TerminalWritable}
|
|
72730
|
+
*/
|
|
72731
|
+
onClose() {
|
|
72732
|
+
for (const matcher of this._matchers) {
|
|
72733
|
+
if (matcher.flush) {
|
|
72734
|
+
const flushed = matcher.flush();
|
|
72735
|
+
if (flushed && flushed.length > 0) {
|
|
72736
|
+
for (const problem of flushed) {
|
|
72737
|
+
const finalized = {
|
|
72738
|
+
...problem,
|
|
72739
|
+
matcherName: matcher.name
|
|
72740
|
+
};
|
|
72741
|
+
this._problems.add(finalized);
|
|
72742
|
+
}
|
|
72743
|
+
}
|
|
72744
|
+
}
|
|
72745
|
+
}
|
|
72746
|
+
}
|
|
72747
|
+
}
|
|
72748
|
+
exports.ProblemCollector = ProblemCollector;
|
|
72749
|
+
//# sourceMappingURL=ProblemCollector.js.map
|
|
72750
|
+
|
|
72751
|
+
/***/ }),
|
|
72752
|
+
|
|
72362
72753
|
/***/ 999130:
|
|
72363
72754
|
/*!**************************************************************************************************!*\
|
|
72364
72755
|
!*** ../../common/temp/default/node_modules/.pnpm/ramda@0.27.2/node_modules/ramda/es/indexBy.js ***!
|