@eclipse-glsp/cli 2.6.0-next.185 → 2.6.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1194,7 +1194,7 @@ var require_command = __commonJS({
1194
1194
  "../../node_modules/commander/lib/command.js"(exports2) {
1195
1195
  var EventEmitter3 = require("node:events").EventEmitter;
1196
1196
  var childProcess = require("node:child_process");
1197
- var path13 = require("node:path");
1197
+ var path15 = require("node:path");
1198
1198
  var fs10 = require("node:fs");
1199
1199
  var process4 = require("node:process");
1200
1200
  var { Argument: Argument2, humanReadableArgName } = require_argument();
@@ -2208,9 +2208,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
2208
2208
  let launchWithNode = false;
2209
2209
  const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
2210
2210
  function findFile(baseDir, baseName) {
2211
- const localBin = path13.resolve(baseDir, baseName);
2211
+ const localBin = path15.resolve(baseDir, baseName);
2212
2212
  if (fs10.existsSync(localBin)) return localBin;
2213
- if (sourceExt.includes(path13.extname(baseName))) return void 0;
2213
+ if (sourceExt.includes(path15.extname(baseName))) return void 0;
2214
2214
  const foundExt = sourceExt.find(
2215
2215
  (ext2) => fs10.existsSync(`${localBin}${ext2}`)
2216
2216
  );
@@ -2228,17 +2228,17 @@ Expecting one of '${allowedValues.join("', '")}'`);
2228
2228
  } catch {
2229
2229
  resolvedScriptPath = this._scriptPath;
2230
2230
  }
2231
- executableDir = path13.resolve(
2232
- path13.dirname(resolvedScriptPath),
2231
+ executableDir = path15.resolve(
2232
+ path15.dirname(resolvedScriptPath),
2233
2233
  executableDir
2234
2234
  );
2235
2235
  }
2236
2236
  if (executableDir) {
2237
2237
  let localFile = findFile(executableDir, executableFile);
2238
2238
  if (!localFile && !subcommand._executableFile && this._scriptPath) {
2239
- const legacyName = path13.basename(
2239
+ const legacyName = path15.basename(
2240
2240
  this._scriptPath,
2241
- path13.extname(this._scriptPath)
2241
+ path15.extname(this._scriptPath)
2242
2242
  );
2243
2243
  if (legacyName !== this._name) {
2244
2244
  localFile = findFile(
@@ -2249,7 +2249,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
2249
2249
  }
2250
2250
  executableFile = localFile || executableFile;
2251
2251
  }
2252
- launchWithNode = sourceExt.includes(path13.extname(executableFile));
2252
+ launchWithNode = sourceExt.includes(path15.extname(executableFile));
2253
2253
  let proc3;
2254
2254
  if (process4.platform !== "win32") {
2255
2255
  if (launchWithNode) {
@@ -3165,7 +3165,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
3165
3165
  * @return {Command}
3166
3166
  */
3167
3167
  nameFromFilename(filename) {
3168
- this._name = path13.basename(filename, path13.extname(filename));
3168
+ this._name = path15.basename(filename, path15.extname(filename));
3169
3169
  return this;
3170
3170
  }
3171
3171
  /**
@@ -3179,9 +3179,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
3179
3179
  * @param {string} [path]
3180
3180
  * @return {(string|null|Command)}
3181
3181
  */
3182
- executableDir(path14) {
3183
- if (path14 === void 0) return this._executableDir;
3184
- this._executableDir = path14;
3182
+ executableDir(path16) {
3183
+ if (path16 === void 0) return this._executableDir;
3184
+ this._executableDir = path16;
3185
3185
  return this;
3186
3186
  }
3187
3187
  /**
@@ -4193,12 +4193,12 @@ var require_readline_sync = __commonJS({
4193
4193
  return type === "string" ? caseSensitive ? res === comp : res.toLowerCase() === comp.toLowerCase() : type === "number" ? parseFloat(res) === comp : type === "function" ? comp(res) : comp instanceof RegExp ? comp.test(res) : false;
4194
4194
  });
4195
4195
  }
4196
- function replaceHomePath(path13, expand2) {
4196
+ function replaceHomePath(path15, expand2) {
4197
4197
  var homePath = pathUtil.normalize(
4198
4198
  IS_WIN ? (process.env.HOMEDRIVE || "") + (process.env.HOMEPATH || "") : process.env.HOME || ""
4199
4199
  ).replace(/[/\\]+$/, "");
4200
- path13 = pathUtil.normalize(path13);
4201
- return expand2 ? path13.replace(/^~(?=\/|\\|$)/, homePath) : path13.replace(new RegExp("^" + escapePattern(homePath) + "(?=\\/|\\\\|$)", IS_WIN ? "i" : ""), "~");
4200
+ path15 = pathUtil.normalize(path15);
4201
+ return expand2 ? path15.replace(/^~(?=\/|\\|$)/, homePath) : path15.replace(new RegExp("^" + escapePattern(homePath) + "(?=\\/|\\\\|$)", IS_WIN ? "i" : ""), "~");
4202
4202
  }
4203
4203
  function replacePlaceholder(text, generator) {
4204
4204
  var PTN_INNER = "(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?", rePlaceholder = new RegExp("(\\$)?(\\$<" + PTN_INNER + ">)", "g"), rePlaceholderCompat = new RegExp("(\\$)?(\\$\\{" + PTN_INNER + "\\})", "g");
@@ -4597,11 +4597,11 @@ var require_readline_sync = __commonJS({
4597
4597
  error = "";
4598
4598
  function mkdirParents(dirPath) {
4599
4599
  dirPath.split(/\/|\\/).reduce(function(parents, dir) {
4600
- var path13 = pathUtil.resolve(parents += dir + pathUtil.sep);
4601
- if (!fs10.existsSync(path13)) {
4602
- fs10.mkdirSync(path13);
4603
- } else if (!fs10.statSync(path13).isDirectory()) {
4604
- throw new Error("Non directory already exists: " + path13);
4600
+ var path15 = pathUtil.resolve(parents += dir + pathUtil.sep);
4601
+ if (!fs10.existsSync(path15)) {
4602
+ fs10.mkdirSync(path15);
4603
+ } else if (!fs10.statSync(path15).isDirectory()) {
4604
+ throw new Error("Non directory already exists: " + path15);
4605
4605
  }
4606
4606
  return parents;
4607
4607
  }, "");
@@ -5121,7 +5121,7 @@ var require_path = __commonJS({
5121
5121
  Object.defineProperty(exports2, "__esModule", { value: true });
5122
5122
  exports2.convertPosixPathToPattern = exports2.convertWindowsPathToPattern = exports2.convertPathToPattern = exports2.escapePosixPath = exports2.escapeWindowsPath = exports2.escape = exports2.removeLeadingDotSegment = exports2.makeAbsolute = exports2.unixify = void 0;
5123
5123
  var os3 = require("os");
5124
- var path13 = require("path");
5124
+ var path15 = require("path");
5125
5125
  var IS_WINDOWS_PLATFORM = os3.platform() === "win32";
5126
5126
  var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;
5127
5127
  var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g;
@@ -5133,7 +5133,7 @@ var require_path = __commonJS({
5133
5133
  }
5134
5134
  exports2.unixify = unixify;
5135
5135
  function makeAbsolute(cwd, filepath) {
5136
- return path13.resolve(cwd, filepath);
5136
+ return path15.resolve(cwd, filepath);
5137
5137
  }
5138
5138
  exports2.makeAbsolute = makeAbsolute;
5139
5139
  function removeLeadingDotSegment(entry) {
@@ -6430,7 +6430,7 @@ var require_braces = __commonJS({
6430
6430
  var require_constants2 = __commonJS({
6431
6431
  "../../node_modules/picomatch/lib/constants.js"(exports2, module2) {
6432
6432
  "use strict";
6433
- var path13 = require("path");
6433
+ var path15 = require("path");
6434
6434
  var WIN_SLASH = "\\\\/";
6435
6435
  var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
6436
6436
  var DOT_LITERAL = "\\.";
@@ -6600,7 +6600,7 @@ var require_constants2 = __commonJS({
6600
6600
  /* | */
6601
6601
  CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279,
6602
6602
  /* \uFEFF */
6603
- SEP: path13.sep,
6603
+ SEP: path15.sep,
6604
6604
  /**
6605
6605
  * Create EXTGLOB_CHARS
6606
6606
  */
@@ -6627,7 +6627,7 @@ var require_constants2 = __commonJS({
6627
6627
  var require_utils2 = __commonJS({
6628
6628
  "../../node_modules/picomatch/lib/utils.js"(exports2) {
6629
6629
  "use strict";
6630
- var path13 = require("path");
6630
+ var path15 = require("path");
6631
6631
  var win322 = process.platform === "win32";
6632
6632
  var {
6633
6633
  REGEX_BACKSLASH,
@@ -6656,7 +6656,7 @@ var require_utils2 = __commonJS({
6656
6656
  if (options && typeof options.windows === "boolean") {
6657
6657
  return options.windows;
6658
6658
  }
6659
- return win322 === true || path13.sep === "\\";
6659
+ return win322 === true || path15.sep === "\\";
6660
6660
  };
6661
6661
  exports2.escapeLast = (input, char, lastIdx) => {
6662
6662
  const idx = input.lastIndexOf(char, lastIdx);
@@ -7791,7 +7791,7 @@ var require_parse2 = __commonJS({
7791
7791
  var require_picomatch = __commonJS({
7792
7792
  "../../node_modules/picomatch/lib/picomatch.js"(exports2, module2) {
7793
7793
  "use strict";
7794
- var path13 = require("path");
7794
+ var path15 = require("path");
7795
7795
  var scan = require_scan();
7796
7796
  var parse = require_parse2();
7797
7797
  var utils = require_utils2();
@@ -7876,7 +7876,7 @@ var require_picomatch = __commonJS({
7876
7876
  };
7877
7877
  picomatch.matchBase = (input, glob2, options, posix2 = utils.isWindows(options)) => {
7878
7878
  const regex = glob2 instanceof RegExp ? glob2 : picomatch.makeRe(glob2, options);
7879
- return regex.test(path13.basename(input));
7879
+ return regex.test(path15.basename(input));
7880
7880
  };
7881
7881
  picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
7882
7882
  picomatch.parse = (pattern, options) => {
@@ -8103,7 +8103,7 @@ var require_pattern = __commonJS({
8103
8103
  "use strict";
8104
8104
  Object.defineProperty(exports2, "__esModule", { value: true });
8105
8105
  exports2.isAbsolute = exports2.partitionAbsoluteAndRelative = exports2.removeDuplicateSlashes = exports2.matchAny = exports2.convertPatternsToRe = exports2.makeRe = exports2.getPatternParts = exports2.expandBraceExpansion = exports2.expandPatternsWithBraceExpansion = exports2.isAffectDepthOfReadingPattern = exports2.endsWithSlashGlobStar = exports2.hasGlobStar = exports2.getBaseDirectory = exports2.isPatternRelatedToParentDirectory = exports2.getPatternsOutsideCurrentDirectory = exports2.getPatternsInsideCurrentDirectory = exports2.getPositivePatterns = exports2.getNegativePatterns = exports2.isPositivePattern = exports2.isNegativePattern = exports2.convertToNegativePattern = exports2.convertToPositivePattern = exports2.isDynamicPattern = exports2.isStaticPattern = void 0;
8106
- var path13 = require("path");
8106
+ var path15 = require("path");
8107
8107
  var globParent = require_glob_parent();
8108
8108
  var micromatch = require_micromatch();
8109
8109
  var GLOBSTAR2 = "**";
@@ -8198,7 +8198,7 @@ var require_pattern = __commonJS({
8198
8198
  }
8199
8199
  exports2.endsWithSlashGlobStar = endsWithSlashGlobStar;
8200
8200
  function isAffectDepthOfReadingPattern(pattern) {
8201
- const basename2 = path13.basename(pattern);
8201
+ const basename2 = path15.basename(pattern);
8202
8202
  return endsWithSlashGlobStar(pattern) || isStaticPattern(basename2);
8203
8203
  }
8204
8204
  exports2.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
@@ -8256,7 +8256,7 @@ var require_pattern = __commonJS({
8256
8256
  }
8257
8257
  exports2.partitionAbsoluteAndRelative = partitionAbsoluteAndRelative;
8258
8258
  function isAbsolute(pattern) {
8259
- return path13.isAbsolute(pattern);
8259
+ return path15.isAbsolute(pattern);
8260
8260
  }
8261
8261
  exports2.isAbsolute = isAbsolute;
8262
8262
  }
@@ -8433,8 +8433,8 @@ var require_utils3 = __commonJS({
8433
8433
  exports2.errno = errno;
8434
8434
  var fs10 = require_fs();
8435
8435
  exports2.fs = fs10;
8436
- var path13 = require_path();
8437
- exports2.path = path13;
8436
+ var path15 = require_path();
8437
+ exports2.path = path15;
8438
8438
  var pattern = require_pattern();
8439
8439
  exports2.pattern = pattern;
8440
8440
  var stream2 = require_stream();
@@ -8546,8 +8546,8 @@ var require_async = __commonJS({
8546
8546
  "use strict";
8547
8547
  Object.defineProperty(exports2, "__esModule", { value: true });
8548
8548
  exports2.read = void 0;
8549
- function read(path13, settings, callback) {
8550
- settings.fs.lstat(path13, (lstatError, lstat2) => {
8549
+ function read(path15, settings, callback) {
8550
+ settings.fs.lstat(path15, (lstatError, lstat2) => {
8551
8551
  if (lstatError !== null) {
8552
8552
  callFailureCallback(callback, lstatError);
8553
8553
  return;
@@ -8556,7 +8556,7 @@ var require_async = __commonJS({
8556
8556
  callSuccessCallback(callback, lstat2);
8557
8557
  return;
8558
8558
  }
8559
- settings.fs.stat(path13, (statError, stat) => {
8559
+ settings.fs.stat(path15, (statError, stat) => {
8560
8560
  if (statError !== null) {
8561
8561
  if (settings.throwErrorOnBrokenSymbolicLink) {
8562
8562
  callFailureCallback(callback, statError);
@@ -8588,13 +8588,13 @@ var require_sync = __commonJS({
8588
8588
  "use strict";
8589
8589
  Object.defineProperty(exports2, "__esModule", { value: true });
8590
8590
  exports2.read = void 0;
8591
- function read(path13, settings) {
8592
- const lstat2 = settings.fs.lstatSync(path13);
8591
+ function read(path15, settings) {
8592
+ const lstat2 = settings.fs.lstatSync(path15);
8593
8593
  if (!lstat2.isSymbolicLink() || !settings.followSymbolicLink) {
8594
8594
  return lstat2;
8595
8595
  }
8596
8596
  try {
8597
- const stat = settings.fs.statSync(path13);
8597
+ const stat = settings.fs.statSync(path15);
8598
8598
  if (settings.markSymbolicLink) {
8599
8599
  stat.isSymbolicLink = () => true;
8600
8600
  }
@@ -8665,17 +8665,17 @@ var require_out = __commonJS({
8665
8665
  var sync2 = require_sync();
8666
8666
  var settings_1 = require_settings();
8667
8667
  exports2.Settings = settings_1.default;
8668
- function stat(path13, optionsOrSettingsOrCallback, callback) {
8668
+ function stat(path15, optionsOrSettingsOrCallback, callback) {
8669
8669
  if (typeof optionsOrSettingsOrCallback === "function") {
8670
- async.read(path13, getSettings(), optionsOrSettingsOrCallback);
8670
+ async.read(path15, getSettings(), optionsOrSettingsOrCallback);
8671
8671
  return;
8672
8672
  }
8673
- async.read(path13, getSettings(optionsOrSettingsOrCallback), callback);
8673
+ async.read(path15, getSettings(optionsOrSettingsOrCallback), callback);
8674
8674
  }
8675
8675
  exports2.stat = stat;
8676
- function statSync3(path13, optionsOrSettings) {
8676
+ function statSync3(path15, optionsOrSettings) {
8677
8677
  const settings = getSettings(optionsOrSettings);
8678
- return sync2.read(path13, settings);
8678
+ return sync2.read(path15, settings);
8679
8679
  }
8680
8680
  exports2.statSync = statSync3;
8681
8681
  function getSettings(settingsOrOptions = {}) {
@@ -8891,16 +8891,16 @@ var require_async2 = __commonJS({
8891
8891
  return;
8892
8892
  }
8893
8893
  const tasks = names.map((name) => {
8894
- const path13 = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
8894
+ const path15 = common.joinPathSegments(directory, name, settings.pathSegmentSeparator);
8895
8895
  return (done) => {
8896
- fsStat.stat(path13, settings.fsStatSettings, (error, stats) => {
8896
+ fsStat.stat(path15, settings.fsStatSettings, (error, stats) => {
8897
8897
  if (error !== null) {
8898
8898
  done(error);
8899
8899
  return;
8900
8900
  }
8901
8901
  const entry = {
8902
8902
  name,
8903
- path: path13,
8903
+ path: path15,
8904
8904
  dirent: utils.fs.createDirentFromStats(name, stats)
8905
8905
  };
8906
8906
  if (settings.stats) {
@@ -9018,7 +9018,7 @@ var require_settings2 = __commonJS({
9018
9018
  "../../node_modules/@nodelib/fs.scandir/out/settings.js"(exports2) {
9019
9019
  "use strict";
9020
9020
  Object.defineProperty(exports2, "__esModule", { value: true });
9021
- var path13 = require("path");
9021
+ var path15 = require("path");
9022
9022
  var fsStat = require_out();
9023
9023
  var fs10 = require_fs4();
9024
9024
  var Settings = class {
@@ -9026,7 +9026,7 @@ var require_settings2 = __commonJS({
9026
9026
  this._options = _options;
9027
9027
  this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
9028
9028
  this.fs = fs10.createFileSystemAdapter(this._options.fs);
9029
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path13.sep);
9029
+ this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path15.sep);
9030
9030
  this.stats = this._getValue(this._options.stats, false);
9031
9031
  this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
9032
9032
  this.fsStatSettings = new fsStat.Settings({
@@ -9053,17 +9053,17 @@ var require_out2 = __commonJS({
9053
9053
  var sync2 = require_sync2();
9054
9054
  var settings_1 = require_settings2();
9055
9055
  exports2.Settings = settings_1.default;
9056
- function scandir(path13, optionsOrSettingsOrCallback, callback) {
9056
+ function scandir(path15, optionsOrSettingsOrCallback, callback) {
9057
9057
  if (typeof optionsOrSettingsOrCallback === "function") {
9058
- async.read(path13, getSettings(), optionsOrSettingsOrCallback);
9058
+ async.read(path15, getSettings(), optionsOrSettingsOrCallback);
9059
9059
  return;
9060
9060
  }
9061
- async.read(path13, getSettings(optionsOrSettingsOrCallback), callback);
9061
+ async.read(path15, getSettings(optionsOrSettingsOrCallback), callback);
9062
9062
  }
9063
9063
  exports2.scandir = scandir;
9064
- function scandirSync(path13, optionsOrSettings) {
9064
+ function scandirSync(path15, optionsOrSettings) {
9065
9065
  const settings = getSettings(optionsOrSettings);
9066
- return sync2.read(path13, settings);
9066
+ return sync2.read(path15, settings);
9067
9067
  }
9068
9068
  exports2.scandirSync = scandirSync;
9069
9069
  function getSettings(settingsOrOptions = {}) {
@@ -9319,26 +9319,26 @@ var require_queue = __commonJS({
9319
9319
  queue.drained = drained;
9320
9320
  return queue;
9321
9321
  function push(value) {
9322
- var p = new Promise(function(resolve12, reject) {
9322
+ var p = new Promise(function(resolve13, reject) {
9323
9323
  pushCb(value, function(err, result) {
9324
9324
  if (err) {
9325
9325
  reject(err);
9326
9326
  return;
9327
9327
  }
9328
- resolve12(result);
9328
+ resolve13(result);
9329
9329
  });
9330
9330
  });
9331
9331
  p.catch(noop2);
9332
9332
  return p;
9333
9333
  }
9334
9334
  function unshift(value) {
9335
- var p = new Promise(function(resolve12, reject) {
9335
+ var p = new Promise(function(resolve13, reject) {
9336
9336
  unshiftCb(value, function(err, result) {
9337
9337
  if (err) {
9338
9338
  reject(err);
9339
9339
  return;
9340
9340
  }
9341
- resolve12(result);
9341
+ resolve13(result);
9342
9342
  });
9343
9343
  });
9344
9344
  p.catch(noop2);
@@ -9346,15 +9346,15 @@ var require_queue = __commonJS({
9346
9346
  }
9347
9347
  function drained() {
9348
9348
  if (queue.idle()) {
9349
- return new Promise(function(resolve12) {
9350
- resolve12();
9349
+ return new Promise(function(resolve13) {
9350
+ resolve13();
9351
9351
  });
9352
9352
  }
9353
9353
  var previousDrain = queue.drain;
9354
- var p = new Promise(function(resolve12) {
9354
+ var p = new Promise(function(resolve13) {
9355
9355
  queue.drain = function() {
9356
9356
  previousDrain();
9357
- resolve12();
9357
+ resolve13();
9358
9358
  };
9359
9359
  });
9360
9360
  return p;
@@ -9685,7 +9685,7 @@ var require_settings3 = __commonJS({
9685
9685
  "../../node_modules/@nodelib/fs.walk/out/settings.js"(exports2) {
9686
9686
  "use strict";
9687
9687
  Object.defineProperty(exports2, "__esModule", { value: true });
9688
- var path13 = require("path");
9688
+ var path15 = require("path");
9689
9689
  var fsScandir = require_out2();
9690
9690
  var Settings = class {
9691
9691
  constructor(_options = {}) {
@@ -9695,7 +9695,7 @@ var require_settings3 = __commonJS({
9695
9695
  this.deepFilter = this._getValue(this._options.deepFilter, null);
9696
9696
  this.entryFilter = this._getValue(this._options.entryFilter, null);
9697
9697
  this.errorFilter = this._getValue(this._options.errorFilter, null);
9698
- this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path13.sep);
9698
+ this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path15.sep);
9699
9699
  this.fsScandirSettings = new fsScandir.Settings({
9700
9700
  followSymbolicLinks: this._options.followSymbolicLinks,
9701
9701
  fs: this._options.fs,
@@ -9757,7 +9757,7 @@ var require_reader2 = __commonJS({
9757
9757
  "node_modules/fast-glob/out/readers/reader.js"(exports2) {
9758
9758
  "use strict";
9759
9759
  Object.defineProperty(exports2, "__esModule", { value: true });
9760
- var path13 = require("path");
9760
+ var path15 = require("path");
9761
9761
  var fsStat = require_out();
9762
9762
  var utils = require_utils3();
9763
9763
  var Reader = class {
@@ -9770,7 +9770,7 @@ var require_reader2 = __commonJS({
9770
9770
  });
9771
9771
  }
9772
9772
  _getFullEntryPath(filepath) {
9773
- return path13.resolve(this._settings.cwd, filepath);
9773
+ return path15.resolve(this._settings.cwd, filepath);
9774
9774
  }
9775
9775
  _makeEntry(stats, pattern) {
9776
9776
  const entry = {
@@ -9837,9 +9837,9 @@ var require_stream3 = __commonJS({
9837
9837
  });
9838
9838
  }
9839
9839
  _getStat(filepath) {
9840
- return new Promise((resolve12, reject) => {
9840
+ return new Promise((resolve13, reject) => {
9841
9841
  this._stat(filepath, this._fsStatSettings, (error, stats) => {
9842
- return error === null ? resolve12(stats) : reject(error);
9842
+ return error === null ? resolve13(stats) : reject(error);
9843
9843
  });
9844
9844
  });
9845
9845
  }
@@ -9863,10 +9863,10 @@ var require_async5 = __commonJS({
9863
9863
  this._readerStream = new stream_1.default(this._settings);
9864
9864
  }
9865
9865
  dynamic(root, options) {
9866
- return new Promise((resolve12, reject) => {
9866
+ return new Promise((resolve13, reject) => {
9867
9867
  this._walkAsync(root, options, (error, entries) => {
9868
9868
  if (error === null) {
9869
- resolve12(entries);
9869
+ resolve13(entries);
9870
9870
  } else {
9871
9871
  reject(error);
9872
9872
  }
@@ -9876,10 +9876,10 @@ var require_async5 = __commonJS({
9876
9876
  async static(patterns, options) {
9877
9877
  const entries = [];
9878
9878
  const stream2 = this._readerStream.static(patterns, options);
9879
- return new Promise((resolve12, reject) => {
9879
+ return new Promise((resolve13, reject) => {
9880
9880
  stream2.once("error", reject);
9881
9881
  stream2.on("data", (entry) => entries.push(entry));
9882
- stream2.once("end", () => resolve12(entries));
9882
+ stream2.once("end", () => resolve13(entries));
9883
9883
  });
9884
9884
  }
9885
9885
  };
@@ -10186,7 +10186,7 @@ var require_provider = __commonJS({
10186
10186
  "node_modules/fast-glob/out/providers/provider.js"(exports2) {
10187
10187
  "use strict";
10188
10188
  Object.defineProperty(exports2, "__esModule", { value: true });
10189
- var path13 = require("path");
10189
+ var path15 = require("path");
10190
10190
  var deep_1 = require_deep();
10191
10191
  var entry_1 = require_entry();
10192
10192
  var error_1 = require_error2();
@@ -10200,7 +10200,7 @@ var require_provider = __commonJS({
10200
10200
  this.entryTransformer = new entry_2.default(this._settings);
10201
10201
  }
10202
10202
  _getRootDirectory(task) {
10203
- return path13.resolve(this._settings.cwd, task.base);
10203
+ return path15.resolve(this._settings.cwd, task.base);
10204
10204
  }
10205
10205
  _getReaderOptions(task) {
10206
10206
  const basePath = task.base === "." ? "" : task.base;
@@ -10897,7 +10897,7 @@ var require_ignore = __commonJS({
10897
10897
  // path matching.
10898
10898
  // - check `string` either `MODE_IGNORE` or `MODE_CHECK_IGNORE`
10899
10899
  // @returns {TestResult} true if a file is ignored
10900
- test(path13, checkUnignored, mode) {
10900
+ test(path15, checkUnignored, mode) {
10901
10901
  let ignored = false;
10902
10902
  let unignored = false;
10903
10903
  let matchedRule;
@@ -10906,7 +10906,7 @@ var require_ignore = __commonJS({
10906
10906
  if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) {
10907
10907
  return;
10908
10908
  }
10909
- const matched = rule[mode].test(path13);
10909
+ const matched = rule[mode].test(path15);
10910
10910
  if (!matched) {
10911
10911
  return;
10912
10912
  }
@@ -10927,17 +10927,17 @@ var require_ignore = __commonJS({
10927
10927
  var throwError = (message, Ctor) => {
10928
10928
  throw new Ctor(message);
10929
10929
  };
10930
- var checkPath = (path13, originalPath, doThrow) => {
10931
- if (!isString(path13)) {
10930
+ var checkPath = (path15, originalPath, doThrow) => {
10931
+ if (!isString(path15)) {
10932
10932
  return doThrow(
10933
10933
  `path must be a string, but got \`${originalPath}\``,
10934
10934
  TypeError
10935
10935
  );
10936
10936
  }
10937
- if (!path13) {
10937
+ if (!path15) {
10938
10938
  return doThrow(`path must not be empty`, TypeError);
10939
10939
  }
10940
- if (checkPath.isNotRelative(path13)) {
10940
+ if (checkPath.isNotRelative(path15)) {
10941
10941
  const r = "`path.relative()`d";
10942
10942
  return doThrow(
10943
10943
  `path should be a ${r} string, but got "${originalPath}"`,
@@ -10946,7 +10946,7 @@ var require_ignore = __commonJS({
10946
10946
  }
10947
10947
  return true;
10948
10948
  };
10949
- var isNotRelative = (path13) => REGEX_TEST_INVALID_PATH.test(path13);
10949
+ var isNotRelative = (path15) => REGEX_TEST_INVALID_PATH.test(path15);
10950
10950
  checkPath.isNotRelative = isNotRelative;
10951
10951
  checkPath.convert = (p) => p;
10952
10952
  var Ignore2 = class {
@@ -10976,19 +10976,19 @@ var require_ignore = __commonJS({
10976
10976
  }
10977
10977
  // @returns {TestResult}
10978
10978
  _test(originalPath, cache, checkUnignored, slices) {
10979
- const path13 = originalPath && checkPath.convert(originalPath);
10979
+ const path15 = originalPath && checkPath.convert(originalPath);
10980
10980
  checkPath(
10981
- path13,
10981
+ path15,
10982
10982
  originalPath,
10983
10983
  this._strictPathCheck ? throwError : RETURN_FALSE
10984
10984
  );
10985
- return this._t(path13, cache, checkUnignored, slices);
10985
+ return this._t(path15, cache, checkUnignored, slices);
10986
10986
  }
10987
- checkIgnore(path13) {
10988
- if (!REGEX_TEST_TRAILING_SLASH.test(path13)) {
10989
- return this.test(path13);
10987
+ checkIgnore(path15) {
10988
+ if (!REGEX_TEST_TRAILING_SLASH.test(path15)) {
10989
+ return this.test(path15);
10990
10990
  }
10991
- const slices = path13.split(SLASH).filter(Boolean);
10991
+ const slices = path15.split(SLASH).filter(Boolean);
10992
10992
  slices.pop();
10993
10993
  if (slices.length) {
10994
10994
  const parent = this._t(
@@ -11001,18 +11001,18 @@ var require_ignore = __commonJS({
11001
11001
  return parent;
11002
11002
  }
11003
11003
  }
11004
- return this._rules.test(path13, false, MODE_CHECK_IGNORE);
11004
+ return this._rules.test(path15, false, MODE_CHECK_IGNORE);
11005
11005
  }
11006
- _t(path13, cache, checkUnignored, slices) {
11007
- if (path13 in cache) {
11008
- return cache[path13];
11006
+ _t(path15, cache, checkUnignored, slices) {
11007
+ if (path15 in cache) {
11008
+ return cache[path15];
11009
11009
  }
11010
11010
  if (!slices) {
11011
- slices = path13.split(SLASH).filter(Boolean);
11011
+ slices = path15.split(SLASH).filter(Boolean);
11012
11012
  }
11013
11013
  slices.pop();
11014
11014
  if (!slices.length) {
11015
- return cache[path13] = this._rules.test(path13, checkUnignored, MODE_IGNORE);
11015
+ return cache[path15] = this._rules.test(path15, checkUnignored, MODE_IGNORE);
11016
11016
  }
11017
11017
  const parent = this._t(
11018
11018
  slices.join(SLASH) + SLASH,
@@ -11020,29 +11020,29 @@ var require_ignore = __commonJS({
11020
11020
  checkUnignored,
11021
11021
  slices
11022
11022
  );
11023
- return cache[path13] = parent.ignored ? parent : this._rules.test(path13, checkUnignored, MODE_IGNORE);
11023
+ return cache[path15] = parent.ignored ? parent : this._rules.test(path15, checkUnignored, MODE_IGNORE);
11024
11024
  }
11025
- ignores(path13) {
11026
- return this._test(path13, this._ignoreCache, false).ignored;
11025
+ ignores(path15) {
11026
+ return this._test(path15, this._ignoreCache, false).ignored;
11027
11027
  }
11028
11028
  createFilter() {
11029
- return (path13) => !this.ignores(path13);
11029
+ return (path15) => !this.ignores(path15);
11030
11030
  }
11031
11031
  filter(paths) {
11032
11032
  return makeArray(paths).filter(this.createFilter());
11033
11033
  }
11034
11034
  // @returns {TestResult}
11035
- test(path13) {
11036
- return this._test(path13, this._testCache, true);
11035
+ test(path15) {
11036
+ return this._test(path15, this._testCache, true);
11037
11037
  }
11038
11038
  };
11039
11039
  var factory = (options) => new Ignore2(options);
11040
- var isPathValid = (path13) => checkPath(path13 && checkPath.convert(path13), path13, RETURN_FALSE);
11040
+ var isPathValid = (path15) => checkPath(path15 && checkPath.convert(path15), path15, RETURN_FALSE);
11041
11041
  var setupWindows = () => {
11042
11042
  const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/");
11043
11043
  checkPath.convert = makePosix;
11044
11044
  const REGEX_TEST_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i;
11045
- checkPath.isNotRelative = (path13) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path13) || isNotRelative(path13);
11045
+ checkPath.isNotRelative = (path15) => REGEX_TEST_WINDOWS_PATH_ABSOLUTE.test(path15) || isNotRelative(path15);
11046
11046
  };
11047
11047
  if (
11048
11048
  // Detect `process` so that it can run in browsers.
@@ -11058,12 +11058,12 @@ var require_ignore = __commonJS({
11058
11058
  });
11059
11059
 
11060
11060
  // node_modules/slash/index.js
11061
- function slash(path13) {
11062
- const isExtendedLengthPath = path13.startsWith("\\\\?\\");
11061
+ function slash(path15) {
11062
+ const isExtendedLengthPath = path15.startsWith("\\\\?\\");
11063
11063
  if (isExtendedLengthPath) {
11064
- return path13;
11064
+ return path15;
11065
11065
  }
11066
- return path13.replace(/\\/g, "/");
11066
+ return path15.replace(/\\/g, "/");
11067
11067
  }
11068
11068
  var init_slash = __esm({
11069
11069
  "node_modules/slash/index.js"() {
@@ -11203,8 +11203,8 @@ var init_globby = __esm({
11203
11203
  }
11204
11204
  };
11205
11205
  normalizePathForDirectoryGlob = (filePath, cwd) => {
11206
- const path13 = isNegativePattern(filePath) ? filePath.slice(1) : filePath;
11207
- return import_node_path3.default.isAbsolute(path13) ? path13 : import_node_path3.default.join(cwd, path13);
11206
+ const path15 = isNegativePattern(filePath) ? filePath.slice(1) : filePath;
11207
+ return import_node_path3.default.isAbsolute(path15) ? path15 : import_node_path3.default.join(cwd, path15);
11208
11208
  };
11209
11209
  getDirectoryGlob = ({ directoryPath, files, extensions }) => {
11210
11210
  const extensionGlob = extensions?.length > 0 ? `.${extensions.length > 1 ? `{${extensions.join(",")}}` : extensions[0]}` : "";
@@ -12192,8 +12192,8 @@ var require_coerce = __commonJS({
12192
12192
  const minor2 = match2[3] || "0";
12193
12193
  const patch = match2[4] || "0";
12194
12194
  const prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : "";
12195
- const build2 = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
12196
- return parse(`${major2}.${minor2}.${patch}${prerelease}${build2}`, options);
12195
+ const build3 = options.includePrerelease && match2[6] ? `+${match2[6]}` : "";
12196
+ return parse(`${major2}.${minor2}.${patch}${prerelease}${build3}`, options);
12197
12197
  };
12198
12198
  module2.exports = coerce;
12199
12199
  }
@@ -16661,10 +16661,10 @@ var Minipass = class extends import_node_events.EventEmitter {
16661
16661
  * Return a void Promise that resolves once the stream ends.
16662
16662
  */
16663
16663
  async promise() {
16664
- return new Promise((resolve12, reject) => {
16664
+ return new Promise((resolve13, reject) => {
16665
16665
  this.on(DESTROYED, () => reject(new Error("stream destroyed")));
16666
16666
  this.on("error", (er) => reject(er));
16667
- this.on("end", () => resolve12());
16667
+ this.on("end", () => resolve13());
16668
16668
  });
16669
16669
  }
16670
16670
  /**
@@ -16688,7 +16688,7 @@ var Minipass = class extends import_node_events.EventEmitter {
16688
16688
  return Promise.resolve({ done: false, value: res });
16689
16689
  if (this[EOF])
16690
16690
  return stop();
16691
- let resolve12;
16691
+ let resolve13;
16692
16692
  let reject;
16693
16693
  const onerr = (er) => {
16694
16694
  this.off("data", ondata);
@@ -16702,19 +16702,19 @@ var Minipass = class extends import_node_events.EventEmitter {
16702
16702
  this.off("end", onend);
16703
16703
  this.off(DESTROYED, ondestroy);
16704
16704
  this.pause();
16705
- resolve12({ value, done: !!this[EOF] });
16705
+ resolve13({ value, done: !!this[EOF] });
16706
16706
  };
16707
16707
  const onend = () => {
16708
16708
  this.off("error", onerr);
16709
16709
  this.off("data", ondata);
16710
16710
  this.off(DESTROYED, ondestroy);
16711
16711
  stop();
16712
- resolve12({ done: true, value: void 0 });
16712
+ resolve13({ done: true, value: void 0 });
16713
16713
  };
16714
16714
  const ondestroy = () => onerr(new Error("stream destroyed"));
16715
16715
  return new Promise((res2, rej) => {
16716
16716
  reject = rej;
16717
- resolve12 = res2;
16717
+ resolve13 = res2;
16718
16718
  this.once(DESTROYED, ondestroy);
16719
16719
  this.once("error", onerr);
16720
16720
  this.once("end", onend);
@@ -17073,12 +17073,12 @@ var PathBase = class {
17073
17073
  /**
17074
17074
  * Get the Path object referenced by the string path, resolved from this Path
17075
17075
  */
17076
- resolve(path13) {
17077
- if (!path13) {
17076
+ resolve(path15) {
17077
+ if (!path15) {
17078
17078
  return this;
17079
17079
  }
17080
- const rootPath = this.getRootString(path13);
17081
- const dir = path13.substring(rootPath.length);
17080
+ const rootPath = this.getRootString(path15);
17081
+ const dir = path15.substring(rootPath.length);
17082
17082
  const dirParts = dir.split(this.splitSep);
17083
17083
  const result = rootPath ? this.getRoot(rootPath).#resolveParts(dirParts) : this.#resolveParts(dirParts);
17084
17084
  return result;
@@ -17682,9 +17682,9 @@ var PathBase = class {
17682
17682
  if (this.#asyncReaddirInFlight) {
17683
17683
  await this.#asyncReaddirInFlight;
17684
17684
  } else {
17685
- let resolve12 = () => {
17685
+ let resolve13 = () => {
17686
17686
  };
17687
- this.#asyncReaddirInFlight = new Promise((res) => resolve12 = res);
17687
+ this.#asyncReaddirInFlight = new Promise((res) => resolve13 = res);
17688
17688
  try {
17689
17689
  for (const e of await this.#fs.promises.readdir(fullpath, {
17690
17690
  withFileTypes: true
@@ -17697,7 +17697,7 @@ var PathBase = class {
17697
17697
  children.provisional = 0;
17698
17698
  }
17699
17699
  this.#asyncReaddirInFlight = void 0;
17700
- resolve12();
17700
+ resolve13();
17701
17701
  }
17702
17702
  return children.slice(0, children.provisional);
17703
17703
  }
@@ -17830,8 +17830,8 @@ var PathWin32 = class _PathWin32 extends PathBase {
17830
17830
  /**
17831
17831
  * @internal
17832
17832
  */
17833
- getRootString(path13) {
17834
- return import_node_path.win32.parse(path13).root;
17833
+ getRootString(path15) {
17834
+ return import_node_path.win32.parse(path15).root;
17835
17835
  }
17836
17836
  /**
17837
17837
  * @internal
@@ -17877,8 +17877,8 @@ var PathPosix = class _PathPosix extends PathBase {
17877
17877
  /**
17878
17878
  * @internal
17879
17879
  */
17880
- getRootString(path13) {
17881
- return path13.startsWith("/") ? "/" : "";
17880
+ getRootString(path15) {
17881
+ return path15.startsWith("/") ? "/" : "";
17882
17882
  }
17883
17883
  /**
17884
17884
  * @internal
@@ -17967,11 +17967,11 @@ var PathScurryBase = class {
17967
17967
  /**
17968
17968
  * Get the depth of a provided path, string, or the cwd
17969
17969
  */
17970
- depth(path13 = this.cwd) {
17971
- if (typeof path13 === "string") {
17972
- path13 = this.cwd.resolve(path13);
17970
+ depth(path15 = this.cwd) {
17971
+ if (typeof path15 === "string") {
17972
+ path15 = this.cwd.resolve(path15);
17973
17973
  }
17974
- return path13.depth();
17974
+ return path15.depth();
17975
17975
  }
17976
17976
  /**
17977
17977
  * Return the cache of child entries. Exposed so subclasses can create
@@ -18458,9 +18458,9 @@ var PathScurryBase = class {
18458
18458
  process4();
18459
18459
  return results;
18460
18460
  }
18461
- chdir(path13 = this.cwd) {
18461
+ chdir(path15 = this.cwd) {
18462
18462
  const oldCwd = this.cwd;
18463
- this.cwd = typeof path13 === "string" ? this.cwd.resolve(path13) : path13;
18463
+ this.cwd = typeof path15 === "string" ? this.cwd.resolve(path15) : path15;
18464
18464
  this.cwd[setAsCwd](oldCwd);
18465
18465
  }
18466
18466
  };
@@ -19428,10 +19428,10 @@ var Minipass2 = class extends import_node_events2.EventEmitter {
19428
19428
  * Return a void Promise that resolves once the stream ends.
19429
19429
  */
19430
19430
  async promise() {
19431
- return new Promise((resolve12, reject) => {
19431
+ return new Promise((resolve13, reject) => {
19432
19432
  this.on(DESTROYED2, () => reject(new Error("stream destroyed")));
19433
19433
  this.on("error", (er) => reject(er));
19434
- this.on("end", () => resolve12());
19434
+ this.on("end", () => resolve13());
19435
19435
  });
19436
19436
  }
19437
19437
  /**
@@ -19455,7 +19455,7 @@ var Minipass2 = class extends import_node_events2.EventEmitter {
19455
19455
  return Promise.resolve({ done: false, value: res });
19456
19456
  if (this[EOF2])
19457
19457
  return stop();
19458
- let resolve12;
19458
+ let resolve13;
19459
19459
  let reject;
19460
19460
  const onerr = (er) => {
19461
19461
  this.off("data", ondata);
@@ -19469,19 +19469,19 @@ var Minipass2 = class extends import_node_events2.EventEmitter {
19469
19469
  this.off("end", onend);
19470
19470
  this.off(DESTROYED2, ondestroy);
19471
19471
  this.pause();
19472
- resolve12({ value, done: !!this[EOF2] });
19472
+ resolve13({ value, done: !!this[EOF2] });
19473
19473
  };
19474
19474
  const onend = () => {
19475
19475
  this.off("error", onerr);
19476
19476
  this.off("data", ondata);
19477
19477
  this.off(DESTROYED2, ondestroy);
19478
19478
  stop();
19479
- resolve12({ done: true, value: void 0 });
19479
+ resolve13({ done: true, value: void 0 });
19480
19480
  };
19481
19481
  const ondestroy = () => onerr(new Error("stream destroyed"));
19482
19482
  return new Promise((res2, rej) => {
19483
19483
  reject = rej;
19484
- resolve12 = res2;
19484
+ resolve13 = res2;
19485
19485
  this.once(DESTROYED2, ondestroy);
19486
19486
  this.once("error", onerr);
19487
19487
  this.once("end", onend);
@@ -19694,8 +19694,8 @@ var MatchRecord = class {
19694
19694
  }
19695
19695
  // match, absolute, ifdir
19696
19696
  entries() {
19697
- return [...this.store.entries()].map(([path13, n]) => [
19698
- path13,
19697
+ return [...this.store.entries()].map(([path15, n]) => [
19698
+ path15,
19699
19699
  !!(n & 2),
19700
19700
  !!(n & 1)
19701
19701
  ]);
@@ -19900,9 +19900,9 @@ var GlobUtil = class {
19900
19900
  signal;
19901
19901
  maxDepth;
19902
19902
  includeChildMatches;
19903
- constructor(patterns, path13, opts) {
19903
+ constructor(patterns, path15, opts) {
19904
19904
  this.patterns = patterns;
19905
- this.path = path13;
19905
+ this.path = path15;
19906
19906
  this.opts = opts;
19907
19907
  this.#sep = !opts.posix && opts.platform === "win32" ? "\\" : "/";
19908
19908
  this.includeChildMatches = opts.includeChildMatches !== false;
@@ -19921,11 +19921,11 @@ var GlobUtil = class {
19921
19921
  });
19922
19922
  }
19923
19923
  }
19924
- #ignored(path13) {
19925
- return this.seen.has(path13) || !!this.#ignore?.ignored?.(path13);
19924
+ #ignored(path15) {
19925
+ return this.seen.has(path15) || !!this.#ignore?.ignored?.(path15);
19926
19926
  }
19927
- #childrenIgnored(path13) {
19928
- return !!this.#ignore?.childrenIgnored?.(path13);
19927
+ #childrenIgnored(path15) {
19928
+ return !!this.#ignore?.childrenIgnored?.(path15);
19929
19929
  }
19930
19930
  // backpressure mechanism
19931
19931
  pause() {
@@ -20140,8 +20140,8 @@ var GlobUtil = class {
20140
20140
  };
20141
20141
  var GlobWalker = class extends GlobUtil {
20142
20142
  matches = /* @__PURE__ */ new Set();
20143
- constructor(patterns, path13, opts) {
20144
- super(patterns, path13, opts);
20143
+ constructor(patterns, path15, opts) {
20144
+ super(patterns, path15, opts);
20145
20145
  }
20146
20146
  matchEmit(e) {
20147
20147
  this.matches.add(e);
@@ -20178,8 +20178,8 @@ var GlobWalker = class extends GlobUtil {
20178
20178
  };
20179
20179
  var GlobStream = class extends GlobUtil {
20180
20180
  results;
20181
- constructor(patterns, path13, opts) {
20182
- super(patterns, path13, opts);
20181
+ constructor(patterns, path15, opts) {
20182
+ super(patterns, path15, opts);
20183
20183
  this.results = new Minipass2({
20184
20184
  signal: this.signal,
20185
20185
  objectMode: true
@@ -20559,6 +20559,25 @@ function findFiles(paths, pattern = "**/*") {
20559
20559
  }
20560
20560
  return results;
20561
20561
  }
20562
+ function listDirectories(paths) {
20563
+ const directories = [];
20564
+ const resolvedPaths = resolveFiles(paths);
20565
+ for (const inputPath of resolvedPaths) {
20566
+ if (!fs.existsSync(inputPath)) {
20567
+ throw new Error(`no such file or directory: ${inputPath}`);
20568
+ }
20569
+ if (fs.statSync(inputPath).isDirectory()) {
20570
+ const entries = fs.readdirSync(inputPath);
20571
+ for (const entry of entries) {
20572
+ const fullPath = path2.join(inputPath, entry);
20573
+ if (fs.statSync(fullPath).isDirectory()) {
20574
+ directories.push(fullPath);
20575
+ }
20576
+ }
20577
+ }
20578
+ }
20579
+ return directories;
20580
+ }
20562
20581
  function filterFiles(files, pattern) {
20563
20582
  const matchingFiles = [];
20564
20583
  const filesArray = resolveFiles(files);
@@ -20674,7 +20693,7 @@ function execAsync(cmd, options = {}) {
20674
20693
  if (verbose) {
20675
20694
  console.log(`+ ${cmd}`);
20676
20695
  }
20677
- return new Promise((resolve12, reject) => {
20696
+ return new Promise((resolve13, reject) => {
20678
20697
  const [command, ...args] = cmd.split(" ");
20679
20698
  const childProcess = child.spawn(command, args, {
20680
20699
  shell: true,
@@ -20707,7 +20726,7 @@ ${stderr}`.trim();
20707
20726
  return;
20708
20727
  }
20709
20728
  }
20710
- resolve12(stdout.trim());
20729
+ resolve13(stdout.trim());
20711
20730
  });
20712
20731
  childProcess.on("error", (error) => {
20713
20732
  const errorMsg = `Command failed: ${cmd}
@@ -20726,31 +20745,35 @@ ${error.message}`.trim();
20726
20745
  function escapeDoubleQuotesAndBackslashes(str) {
20727
20746
  return str.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
20728
20747
  }
20729
- function isGitRepository(path13) {
20730
- const isGitRepo = exec("git rev-parse --is-inside-work-tree", { silent: true, cwd: path13 }).toLocaleLowerCase() === "true";
20731
- return isGitRepo;
20748
+ function isGitRepository(path15) {
20749
+ try {
20750
+ const isGitRepo = exec("git rev-parse --is-inside-work-tree", { silent: true, cwd: path15 }).toLocaleLowerCase() === "true";
20751
+ return isGitRepo;
20752
+ } catch {
20753
+ return false;
20754
+ }
20732
20755
  }
20733
- function getGitRoot(path13) {
20734
- const fileString = exec("git rev-parse --show-toplevel", { cwd: path13 });
20756
+ function getGitRoot(path15) {
20757
+ const fileString = exec("git rev-parse --show-toplevel", { cwd: path15 });
20735
20758
  return (0, import_path.resolve)(fileString);
20736
20759
  }
20737
- function getUncommittedChanges(path13) {
20738
- return exec("git status --porcelain", { cwd: path13 }).split("\n").filter((value) => value.trim().length !== 0).map(
20760
+ function getUncommittedChanges(path15) {
20761
+ return exec("git status --porcelain", { cwd: path15 }).split("\n").filter((value) => value.trim().length !== 0).map(
20739
20762
  (fileInfo) => (
20740
20763
  // Extract relative file path from the info string and convert to absolute path
20741
- (0, import_path.resolve)(path13 ?? process.cwd(), fileInfo.trim().split(" ").pop() ?? "")
20764
+ (0, import_path.resolve)(path15 ?? process.cwd(), fileInfo.trim().split(" ").pop() ?? "")
20742
20765
  )
20743
20766
  );
20744
20767
  }
20745
- function commitChanges(message, path13) {
20746
- exec("git add .", { cwd: path13 });
20747
- exec(`git commit -m "${escapeDoubleQuotesAndBackslashes(message)}"`, { cwd: path13 });
20768
+ function commitChanges(message, path15) {
20769
+ exec("git add .", { cwd: path15 });
20770
+ exec(`git commit -m "${escapeDoubleQuotesAndBackslashes(message)}"`, { cwd: path15 });
20748
20771
  }
20749
- function getChangesOfLastCommit(path13) {
20750
- return exec("git diff --name-only HEAD^", { cwd: path13 }).split("\n").map((file) => (0, import_path.resolve)(path13 ?? process.cwd(), file));
20772
+ function getChangesOfLastCommit(path15) {
20773
+ return exec("git diff --name-only HEAD^", { cwd: path15 }).split("\n").map((file) => (0, import_path.resolve)(path15 ?? process.cwd(), file));
20751
20774
  }
20752
- function getLastCommitMessage(path13) {
20753
- return exec("git log -1 --pretty=%B", { cwd: path13 }).trim();
20775
+ function getLastCommitMessage(path15) {
20776
+ return exec("git log -1 --pretty=%B", { cwd: path15 }).trim();
20754
20777
  }
20755
20778
  function getLastModificationDate(filePath, repoRoot, excludeMessage) {
20756
20779
  const additionalArgs = excludeMessage ? `--grep="${excludeMessage}" --invert-grep` : "";
@@ -20761,14 +20784,14 @@ function getLastModificationDate(filePath, repoRoot, excludeMessage) {
20761
20784
  return void 0;
20762
20785
  }
20763
20786
  }
20764
- function getRemoteUrl(path13) {
20765
- return exec("git config --get remote.origin.url", { cwd: path13 });
20787
+ function getRemoteUrl(path15) {
20788
+ return exec("git config --get remote.origin.url", { cwd: path15 });
20766
20789
  }
20767
- function createBranch(branch, path13) {
20768
- exec(`git checkout -B ${branch}`, { cwd: path13 });
20790
+ function createBranch(branch, path15) {
20791
+ exec(`git checkout -B ${branch}`, { cwd: path15 });
20769
20792
  }
20770
- function getDefaultBranch(path13) {
20771
- const output = exec("git remote show origin", { cwd: path13 });
20793
+ function getDefaultBranch(path15) {
20794
+ const output = exec("git remote show origin", { cwd: path15 });
20772
20795
  const match2 = output.match(/HEAD branch: (.+)/);
20773
20796
  return match2 ? match2[1].trim() : "master";
20774
20797
  }
@@ -20790,7 +20813,8 @@ var LOGGER = {
20790
20813
  error: (...args) => log("error", ...args),
20791
20814
  warn: (...args) => log("warn", ...args),
20792
20815
  debug: (...args) => log("debug", ...args),
20793
- newLine: () => console.log("")
20816
+ newLine: () => console.log(""),
20817
+ separator: (repeat = 80) => console.log("-".repeat(repeat))
20794
20818
  };
20795
20819
  function log(level, ...args) {
20796
20820
  const levelData = levels[level];
@@ -20900,14 +20924,14 @@ function getYarnWorkspacePackages(rootPath, includeRoot = false) {
20900
20924
  var fs3 = __toESM(require("fs"));
20901
20925
  var import_path2 = require("path");
20902
20926
  function validateDirectory(rootDir) {
20903
- const path13 = (0, import_path2.resolve)(rootDir);
20904
- if (!fs3.existsSync(path13)) {
20905
- throw new InvalidArgumentError(`Not a valid file path!: ${path13}`);
20927
+ const path15 = (0, import_path2.resolve)(rootDir);
20928
+ if (!fs3.existsSync(path15)) {
20929
+ throw new InvalidArgumentError(`Not a valid file path!: ${path15}`);
20906
20930
  }
20907
- if (!fs3.statSync(path13).isDirectory()) {
20908
- throw new InvalidArgumentError(`Not a directory!: ${path13}`);
20931
+ if (!fs3.statSync(path15).isDirectory()) {
20932
+ throw new InvalidArgumentError(`Not a directory!: ${path15}`);
20909
20933
  }
20910
- return path13;
20934
+ return path15;
20911
20935
  }
20912
20936
  function validateGitDirectory(repository) {
20913
20937
  const repoPath = validateDirectory(repository);
@@ -21142,14 +21166,305 @@ async function combineReports(reportFiles, options) {
21142
21166
  tempFiles.forEach((config) => moveFile(config, config.substring(1)));
21143
21167
  }
21144
21168
 
21169
+ // src/commands/dev/local-link.ts
21170
+ var path8 = __toESM(require("path"));
21171
+
21172
+ // src/commands/dev/common.ts
21173
+ var import_path3 = __toESM(require("path"));
21174
+
21175
+ // src/commands/common.ts
21176
+ var GLSPRepo;
21177
+ ((GLSPRepo2) => {
21178
+ GLSPRepo2.choices = [
21179
+ "glsp",
21180
+ "glsp-server-node",
21181
+ "glsp-client",
21182
+ "glsp-theia-integration",
21183
+ "glsp-vscode-integration",
21184
+ "glsp-eclipse-integration",
21185
+ "glsp-server",
21186
+ "glsp-playwright"
21187
+ ];
21188
+ function is(object) {
21189
+ return typeof object === "string" && GLSPRepo2.choices.includes(object);
21190
+ }
21191
+ GLSPRepo2.is = is;
21192
+ function isNpmRepo(repo) {
21193
+ return repo !== "glsp-server" && repo !== "glsp-eclipse-integration";
21194
+ }
21195
+ GLSPRepo2.isNpmRepo = isNpmRepo;
21196
+ function deriveFromDirectory(repoDir) {
21197
+ try {
21198
+ const remoteUrl = getRemoteUrl(repoDir);
21199
+ const repo = remoteUrl.substring(remoteUrl.lastIndexOf("/") + 1).replace(".git", "");
21200
+ if (!repo) {
21201
+ LOGGER.warn(`No git repository found in ${repoDir}`);
21202
+ return void 0;
21203
+ }
21204
+ if (!is(repo)) {
21205
+ return void 0;
21206
+ }
21207
+ return repo;
21208
+ } catch (error) {
21209
+ LOGGER.warn(`No git repository found in ${repoDir}`);
21210
+ return void 0;
21211
+ }
21212
+ }
21213
+ GLSPRepo2.deriveFromDirectory = deriveFromDirectory;
21214
+ })(GLSPRepo || (GLSPRepo = {}));
21215
+
21216
+ // src/commands/dev/common.ts
21217
+ var RepoData;
21218
+ ((RepoData2) => {
21219
+ function deriveFromDirectory(parentDir) {
21220
+ const repos = {};
21221
+ cd(parentDir);
21222
+ listDirectories(parentDir).filter((dir) => {
21223
+ if (!isGitRepository(dir)) {
21224
+ return;
21225
+ }
21226
+ const repo = GLSPRepo.deriveFromDirectory(dir);
21227
+ if (repo) {
21228
+ const repoPath = repo === "glsp-eclipse-integration" ? import_path3.default.resolve(dir, "client") : import_path3.default.resolve(dir);
21229
+ const workspacePackages = getYarnWorkspacePackages(repoPath);
21230
+ LOGGER.debug(`Found GLSP repo '${repo}' in directory: ${repoPath}`);
21231
+ repos[repo] = { repo, path: repoPath, workspacePackages };
21232
+ }
21233
+ });
21234
+ return repos;
21235
+ }
21236
+ RepoData2.deriveFromDirectory = deriveFromDirectory;
21237
+ function getPackagesToLink(repoType, record) {
21238
+ switch (repoType) {
21239
+ case "glsp-client":
21240
+ return record["glsp"]?.linkablePackages ?? [];
21241
+ case "glsp-server-node":
21242
+ return [
21243
+ ...record["glsp"]?.linkablePackages ?? [],
21244
+ ...(record["glsp-client"]?.linkablePackages ?? []).filter(
21245
+ (p) => p !== "@eclipse-glsp/client" && p !== "@eclipse-glsp/sprotty"
21246
+ )
21247
+ ];
21248
+ case "glsp-theia-integration":
21249
+ case "glsp-vscode-integration":
21250
+ return [
21251
+ ...record["glsp"]?.linkablePackages ?? [],
21252
+ ...record["glsp-client"]?.linkablePackages ?? [],
21253
+ ...record["glsp-server-node"]?.linkablePackages ?? []
21254
+ ];
21255
+ case "glsp-eclipse-integration":
21256
+ return [...record["glsp"]?.linkablePackages ?? [], ...record["glsp-client"]?.linkablePackages ?? []];
21257
+ default:
21258
+ return [];
21259
+ }
21260
+ }
21261
+ RepoData2.getPackagesToLink = getPackagesToLink;
21262
+ })(RepoData || (RepoData = {}));
21263
+
21264
+ // src/commands/dev/local-link.ts
21265
+ var ignoreChoices = ["theia", "vscode", "server", "eclipse"];
21266
+ var LocalLinkCommand = baseCommand().name("localLink").description("Interlink local GLSP repositories for local development (Using`yarn link`)\n").argument("<parentDir>", "The parent directory", validateDirectory).option("-v, --verbose", "Enable verbose (debug) log output", false).addOption(
21267
+ new Option("-i, --ignore <repo...>", "Ignore linking the given repository (even if it exists)").choices(ignoreChoices).default([])
21268
+ ).option("--link-dev", "Also link the dev-packages (glsp)", false).option("--no-scripts", "Do not setup build scripts in the parent directory", true).option("-l, --link-dir [linkDir}", "The directory to create the links in (default: <parentDir>/links)").option("-c, --clean", "Clean linking directory before setting up the local links (fresh start)", false).action(linkAction);
21269
+ function linkAction(parentDir, cmdOptions) {
21270
+ configureExec({ silent: !cmdOptions.verbose, verbose: cmdOptions.verbose });
21271
+ configureLogger(cmdOptions.verbose);
21272
+ LOGGER.debug("Command options: ", cmdOptions);
21273
+ const repos = RepoData.deriveFromDirectory(parentDir);
21274
+ if (!repos["glsp-client"]) {
21275
+ throw new Error(`No 'glsp-client' repository found in ${parentDir}.
21276
+ This is the minimum requirement for local linking.`);
21277
+ }
21278
+ const linkDir = cmdOptions.linkDir ? path8.resolve(cmdOptions.linkDir) : path8.resolve(parentDir, "links");
21279
+ const options = {
21280
+ parentDir,
21281
+ linkDir,
21282
+ repos,
21283
+ ...cmdOptions
21284
+ };
21285
+ configureExec({ silent: !options.verbose, fatal: true });
21286
+ return setupLinking(options);
21287
+ }
21288
+ async function setupLinking(options) {
21289
+ LOGGER.info("Setup up local linking in directory: ", options.parentDir);
21290
+ LOGGER.info("Using link directory: ", options.linkDir);
21291
+ cd(options.parentDir);
21292
+ if (options.clean) {
21293
+ LOGGER.info("Cleaning link directory: ", options.linkDir);
21294
+ await execAsync(`rm -rf ${options.linkDir}`, { silent: !options.verbose });
21295
+ }
21296
+ await linkDevPackages(options);
21297
+ await linkClientPackage(options);
21298
+ await linkServerPackage(options);
21299
+ await linkTheiaPackage(options);
21300
+ await linkVscodePackage(options);
21301
+ await linkEclipsePackage(options);
21302
+ }
21303
+ async function linkDevPackages(options) {
21304
+ if (!options.linkDev) {
21305
+ LOGGER.debug("Skipping linking dev-packages as 'glsp-dev.");
21306
+ return;
21307
+ }
21308
+ const repo = options.repos["glsp"];
21309
+ if (!repo) {
21310
+ throw new Error(`Cannot link dev-packages, 'glsp' repository not found in ${options.parentDir}.`);
21311
+ }
21312
+ LOGGER.separator();
21313
+ LOGGER.info("Linking dev-packages ...");
21314
+ LOGGER.separator();
21315
+ LOGGER.newLine();
21316
+ const linkablePackages = await setupWorkspacePackageLinks("glsp", options);
21317
+ repo.linkablePackages = linkablePackages;
21318
+ await build(repo);
21319
+ LOGGER.newLine();
21320
+ }
21321
+ async function linkClientPackage(options) {
21322
+ const repo = options.repos["glsp-client"];
21323
+ if (!repo) {
21324
+ throw new Error(`No 'glsp-client' repository found in ${options.parentDir}.
21325
+ This is the minimum requirement for local linking.`);
21326
+ }
21327
+ LOGGER.separator();
21328
+ LOGGER.info("Linking client packages ...");
21329
+ LOGGER.separator();
21330
+ LOGGER.newLine();
21331
+ linkPackages("glsp-client", options);
21332
+ const linkablePackages = await setupWorkspacePackageLinks("glsp-client", options);
21333
+ await build(repo);
21334
+ const nodeModulesPath = path8.resolve(repo.path, "node_modules");
21335
+ const additionalPackages = [
21336
+ readPackage(path8.resolve(nodeModulesPath, "sprotty", "package.json")),
21337
+ readPackage(path8.resolve(nodeModulesPath, "sprotty-protocol", "package.json")),
21338
+ readPackage(path8.resolve(nodeModulesPath, "vscode-jsonrpc", "package.json")),
21339
+ readPackage(path8.resolve(nodeModulesPath, "inversify", "package.json"))
21340
+ ];
21341
+ for (const pkg of additionalPackages) {
21342
+ await setupLink(pkg, options);
21343
+ linkablePackages.push(pkg.name);
21344
+ }
21345
+ repo.linkablePackages = linkablePackages;
21346
+ LOGGER.newLine();
21347
+ }
21348
+ async function linkServerPackage(options) {
21349
+ if (options.ignore.includes("server")) {
21350
+ LOGGER.debug("Skipping linking 'glsp-server-node' as it is ignored.");
21351
+ return;
21352
+ }
21353
+ const repo = options.repos["glsp-server-node"];
21354
+ if (!repo) {
21355
+ LOGGER.debug("Skipping linking 'glsp-server-node' as it does not exist.");
21356
+ return;
21357
+ }
21358
+ LOGGER.separator();
21359
+ LOGGER.info("Linking server packages ...");
21360
+ LOGGER.separator();
21361
+ LOGGER.newLine();
21362
+ linkPackages("glsp-server-node", options);
21363
+ const linkablePackages = await setupWorkspacePackageLinks("glsp-server-node", options);
21364
+ repo.linkablePackages = linkablePackages;
21365
+ await build(repo);
21366
+ LOGGER.newLine();
21367
+ }
21368
+ async function linkTheiaPackage(options) {
21369
+ if (options.ignore.includes("theia")) {
21370
+ LOGGER.debug("Skipping linking 'glsp-theia-integration' as it is ignored.");
21371
+ return;
21372
+ }
21373
+ const repo = options.repos["glsp-theia-integration"];
21374
+ if (!repo) {
21375
+ LOGGER.debug("Skipping linking 'glsp-theia-integration' as it does not exist.");
21376
+ return;
21377
+ }
21378
+ LOGGER.separator();
21379
+ LOGGER.info("Linking Theia integration package ...");
21380
+ LOGGER.separator();
21381
+ LOGGER.newLine();
21382
+ linkPackages("glsp-theia-integration", options);
21383
+ await build(repo);
21384
+ LOGGER.newLine();
21385
+ }
21386
+ async function linkVscodePackage(options) {
21387
+ if (options.ignore.includes("vscode")) {
21388
+ LOGGER.debug("Skipping linking 'glsp-vscode-integration' as it is ignored.");
21389
+ return;
21390
+ }
21391
+ const repo = options.repos["glsp-vscode-integration"];
21392
+ if (!repo) {
21393
+ LOGGER.debug("Skipping linking 'glsp-vscode-integration' as it does not exist.");
21394
+ return;
21395
+ }
21396
+ LOGGER.separator();
21397
+ LOGGER.info("Linking VSCode integration package ...");
21398
+ LOGGER.separator();
21399
+ LOGGER.newLine();
21400
+ linkPackages("glsp-vscode-integration", options);
21401
+ await build(repo);
21402
+ LOGGER.newLine();
21403
+ }
21404
+ async function linkEclipsePackage(options) {
21405
+ if (options.ignore.includes("eclipse")) {
21406
+ LOGGER.debug("Skipping linking 'glsp-eclipse-integration' as it is ignored.");
21407
+ return;
21408
+ }
21409
+ const repo = options.repos["glsp-eclipse-integration"];
21410
+ if (!repo) {
21411
+ LOGGER.debug("Skipping linking 'glsp-eclipse-integration' as it does not exist.");
21412
+ return;
21413
+ }
21414
+ LOGGER.separator();
21415
+ LOGGER.info("Linking Eclipse integration package ...");
21416
+ LOGGER.separator();
21417
+ LOGGER.newLine();
21418
+ linkPackages("glsp-eclipse-integration", options);
21419
+ await build(repo);
21420
+ LOGGER.newLine();
21421
+ }
21422
+ async function setupWorkspacePackageLinks(repoType, options) {
21423
+ const repo = options.repos[repoType];
21424
+ if (!repo) {
21425
+ throw new Error(`Cannot link workspace packages, '${repoType}' repository not found.`);
21426
+ }
21427
+ const linkablePackages = [];
21428
+ for (const pkg of repo.workspacePackages) {
21429
+ if (pkg.content.private) {
21430
+ continue;
21431
+ }
21432
+ setupLink(pkg, options);
21433
+ linkablePackages.push(pkg.name);
21434
+ }
21435
+ return linkablePackages;
21436
+ }
21437
+ async function setupLink(pkg, options) {
21438
+ LOGGER.info(`Setup link for package: ${pkg.name}`);
21439
+ await execAsync(`yarn link --link-folder ${options.linkDir}`, { cwd: pkg.location, verbose: options.verbose });
21440
+ }
21441
+ async function linkPackages(repoType, options) {
21442
+ const repoPath = options.repos[repoType]?.path;
21443
+ if (!repoPath) {
21444
+ throw new Error(`Cannot link packages, '${repoType}' repository not found.`);
21445
+ }
21446
+ const packagesToLink = RepoData.getPackagesToLink(repoType, options.repos);
21447
+ if (packagesToLink.length === 0) {
21448
+ LOGGER.debug(`No packages to link for repository type '${repoType}'. Skipping linking.`);
21449
+ }
21450
+ LOGGER.info(`Linking external glsp packages for repository '${repoType}'`);
21451
+ LOGGER.debug("Packages to link:", packagesToLink);
21452
+ await execAsync(`yarn link --link-folder ${options.linkDir} ${packagesToLink.join(" ")}`, { cwd: repoPath, verbose: options.verbose });
21453
+ }
21454
+ async function build(repo, force = false) {
21455
+ LOGGER.info("Install & Build with yarn");
21456
+ await execAsync(`yarn ${force ? "--force" : ""}`, { silent: false, cwd: repo.path, errorMsg: "Yarn build failed" });
21457
+ LOGGER.debug("Yarn build succeeded");
21458
+ }
21459
+
21145
21460
  // src/commands/generate-index.ts
21146
21461
  var fs9 = __toESM(require("fs"));
21147
21462
  var os2 = __toESM(require("os"));
21148
- var path8 = __toESM(require("path"));
21463
+ var path10 = __toESM(require("path"));
21149
21464
  var GenerateIndex = baseCommand().name("generateIndex").description("Generate index files in a given source directory.").argument("<rootDir...>", "The source directory for index generation.").option("-s, --singleIndex", "Generate a single index file in the source directory instead of indices in each sub-directory", false).option("-f, --forceOverwrite", "Overwrite existing index files and remove them if there are no entries", false).option("-m, --match [match patterns...]", "File patterns to consider during indexing", ["**/*.ts", "**/*.tsx"]).option("-i, --ignore [ignore patterns...]", "File patterns to ignore during indexing", ["**/*.spec.ts", "**/*.spec.tsx", "**/*.d.ts"]).addOption(createOption("--style <importStyle>", "Import Style").choices(["commonjs", "esm"]).default("commonjs")).option("--ignoreFile <ignoreFile>", "The file that is used to specify patterns that should be ignored during indexing", ".indexignore").option("-v, --verbose", "Generate verbose output during generation", false).action(generateIndices);
21150
21465
  async function generateIndices(rootDirs, options) {
21151
21466
  configureLogger(options.verbose);
21152
- const dirs = rootDirs.map((rootDir) => validateDirectory(path8.resolve(rootDir)));
21467
+ const dirs = rootDirs.map((rootDir) => validateDirectory(path10.resolve(rootDir)));
21153
21468
  const globby2 = await Promise.resolve().then(() => (init_globby(), globby_exports));
21154
21469
  const ignoreFilter = (pattern, globbyOptions) => globby2.globbySync(pattern, globbyOptions);
21155
21470
  dirs.forEach((dir) => generateIndex(dir, ignoreFilter, options));
@@ -21206,7 +21521,7 @@ function isChildFile(parent, child2) {
21206
21521
  return isFile2(child2) && isChild(parent, child2) && getLevel(child2) === getLevel(parent);
21207
21522
  }
21208
21523
  function writeIndex(directory, exports2, options) {
21209
- const indexFile = path8.join(process.cwd(), directory, "index.ts");
21524
+ const indexFile = path10.join(process.cwd(), directory, "index.ts");
21210
21525
  if (exports2.length === 0) {
21211
21526
  if (options.forceOverwrite && fs9.existsSync(indexFile)) {
21212
21527
  LOGGER.info("Remove index file", indexFile);
@@ -21228,7 +21543,7 @@ function writeIndex(directory, exports2, options) {
21228
21543
  }
21229
21544
  function createExport(directory, relativePath, options) {
21230
21545
  const parentPrefix = directory.length;
21231
- const suffix = isFile2(relativePath) ? path8.extname(relativePath).length : 1;
21546
+ const suffix = isFile2(relativePath) ? path10.extname(relativePath).length : 1;
21232
21547
  const relativeName = relativePath.substring(parentPrefix, relativePath.length - suffix);
21233
21548
  const exportName = options.style === "esm" && isFile2(relativePath) ? relativeName + ".js" : relativeName;
21234
21549
  const exportLine = `export * from './${exportName}';`;
@@ -21239,45 +21554,11 @@ function extractReusableContent(fileContent) {
21239
21554
  }
21240
21555
 
21241
21556
  // src/commands/releng/prepare.ts
21242
- var path11 = __toESM(require("path"));
21557
+ var path13 = __toESM(require("path"));
21243
21558
 
21244
21559
  // src/commands/releng/common.ts
21245
- var import_path3 = __toESM(require("path"));
21560
+ var import_path4 = __toESM(require("path"));
21246
21561
  var import_semver = __toESM(require_semver2());
21247
- var GLSPRepo;
21248
- ((GLSPRepo2) => {
21249
- GLSPRepo2.choices = [
21250
- "glsp",
21251
- "glsp-server-node",
21252
- "glsp-client",
21253
- "glsp-theia-integration",
21254
- "glsp-vscode-integration",
21255
- "glsp-eclipse-integration",
21256
- "glsp-server",
21257
- "glsp-playwright"
21258
- ];
21259
- function is(object) {
21260
- return typeof object === "string" && GLSPRepo2.choices.includes(object);
21261
- }
21262
- GLSPRepo2.is = is;
21263
- function isNpmRepo(repo) {
21264
- return repo !== "glsp-server" && repo !== "glsp-eclipse-integration";
21265
- }
21266
- GLSPRepo2.isNpmRepo = isNpmRepo;
21267
- function deriveFromDirectory(repoDir) {
21268
- const remoteUrl = getRemoteUrl(repoDir);
21269
- const repo = remoteUrl.substring(remoteUrl.lastIndexOf("/") + 1).replace(".git", "");
21270
- if (!repo) {
21271
- LOGGER.warn(`No git repository found in ${repoDir}`);
21272
- return void 0;
21273
- }
21274
- if (!is(repo)) {
21275
- return void 0;
21276
- }
21277
- return repo;
21278
- }
21279
- GLSPRepo2.deriveFromDirectory = deriveFromDirectory;
21280
- })(GLSPRepo || (GLSPRepo = {}));
21281
21562
  function checkGHCli() {
21282
21563
  LOGGER.debug("Verify that Github CLI is configured correctly");
21283
21564
  if (!isGithubCLIAuthenticated()) {
@@ -21359,13 +21640,13 @@ function getLocalVersion(repoDir, repo) {
21359
21640
  if (repo === "glsp-server") {
21360
21641
  return getVersionFromPom(repoDir);
21361
21642
  } else if (repo === "glsp-eclipse-integration") {
21362
- return getVersionFromPom(import_path3.default.resolve(repoDir, "server"));
21643
+ return getVersionFromPom(import_path4.default.resolve(repoDir, "server"));
21363
21644
  } else {
21364
21645
  return getVersionFromPackage(repoDir);
21365
21646
  }
21366
21647
  }
21367
21648
  function getVersionFromPom(repoDir) {
21368
- const pom = readFile(import_path3.default.resolve(repoDir, "pom.xml"));
21649
+ const pom = readFile(import_path4.default.resolve(repoDir, "pom.xml"));
21369
21650
  const match2 = pom.match(/<version>(.*?)<\/version>/);
21370
21651
  if (!match2) {
21371
21652
  throw new Error(`Could not find version in pom.xml of ${repoDir}`);
@@ -21373,7 +21654,7 @@ function getVersionFromPom(repoDir) {
21373
21654
  return match2[1];
21374
21655
  }
21375
21656
  function getVersionFromPackage(repoDir) {
21376
- const rootPkg = readPackage(import_path3.default.resolve(repoDir, "package.json"));
21657
+ const rootPkg = readPackage(import_path4.default.resolve(repoDir, "package.json"));
21377
21658
  const existingVersion = rootPkg.content.version;
21378
21659
  if (!existingVersion) {
21379
21660
  throw new Error(`No version found in package.json of ${repoDir}`);
@@ -21428,7 +21709,7 @@ function getChangeLogChanges(options) {
21428
21709
  }
21429
21710
 
21430
21711
  // src/commands/releng/version.ts
21431
- var path10 = __toESM(require("path"));
21712
+ var path12 = __toESM(require("path"));
21432
21713
  var semver2 = __toESM(require_semver2());
21433
21714
  var VersionCommand = baseCommand().name("version").description("Set the version of all packages in a GLSP repository").addArgument(new Argument("<versionType>", "The version type").choices(VersionType.choices)).argument("[customVersion]", 'Custom version number. Will be ignored if the release type is not "custom"').option("-v, --verbose", "Enable verbose (debug) log output", false).option("-r, --repoDir <repoDir>", "Path to the component repository", validateGitDirectory, process.cwd()).action((versionType, customVersion, cmdOptions) => {
21434
21715
  configureEnv(cmdOptions);
@@ -21440,7 +21721,7 @@ var VersionCommand = baseCommand().name("version").description("Set the version
21440
21721
  const options = { ...cmdOptions, repo, version: version2, versionType };
21441
21722
  let workspacePackages;
21442
21723
  if (GLSPRepo.isNpmRepo(repo)) {
21443
- workspacePackages = GLSPRepo.isNpmRepo(repo) ? getYarnWorkspacePackages(path10.join(cmdOptions.repoDir, ""), true) : void 0;
21724
+ workspacePackages = GLSPRepo.isNpmRepo(repo) ? getYarnWorkspacePackages(path12.join(cmdOptions.repoDir, ""), true) : void 0;
21444
21725
  }
21445
21726
  return setVersion({ ...options, workspacePackages });
21446
21727
  });
@@ -21534,7 +21815,7 @@ function createTheiaCompatTable(rows) {
21534
21815
  async function setVersionJavaServer(options) {
21535
21816
  LOGGER.info(`Set pom/Manifest versions to ${options.mvnVersion} ...`);
21536
21817
  LOGGER.debug("Preprocessing eclipse-plugins poms");
21537
- const pluginPoms = exec("grep -ril --include pom.xml \\${package-type}").split("\n").map((f) => path10.resolve(f));
21818
+ const pluginPoms = exec("grep -ril --include pom.xml \\${package-type}").split("\n").map((f) => path12.resolve(f));
21538
21819
  console.log(pluginPoms);
21539
21820
  pluginPoms.forEach((pom) => replaceInFile(pom, /\${package-type}/, "eclipse-plugin"));
21540
21821
  LOGGER.debug("Preprocessing complete");
@@ -21554,19 +21835,19 @@ async function setVersionEclipseIntegration(options) {
21554
21835
  }
21555
21836
  function setVersionEclipseClient(options) {
21556
21837
  LOGGER.debug("Set client package.json versions ...");
21557
- const clientPath = path10.join(options.repoDir, "client");
21838
+ const clientPath = path12.join(options.repoDir, "client");
21558
21839
  cd(clientPath);
21559
21840
  setVersionNpm({
21560
21841
  ...options,
21561
21842
  repoDir: clientPath,
21562
21843
  version: options.version,
21563
- workspacePackages: getYarnWorkspacePackages(path10.join(options.repoDir, "client"), true)
21844
+ workspacePackages: getYarnWorkspacePackages(path12.join(options.repoDir, "client"), true)
21564
21845
  });
21565
21846
  cd(options.repoDir);
21566
21847
  }
21567
21848
  async function setVersionEclipseServer(options) {
21568
21849
  LOGGER.debug("Set server pom.xml versions ...");
21569
- cd(path10.join(options.repoDir, "server"));
21850
+ cd(path12.join(options.repoDir, "server"));
21570
21851
  await execAsync(`mvn tycho-versions:set-version -DnewVersion=${options.mvnVersion}`, {
21571
21852
  silent: false,
21572
21853
  errorMsg: "Tycho set-versions failed"
@@ -21581,13 +21862,13 @@ function updateEclipseServerMetadata(options) {
21581
21862
  p2Location = `nightly/${semver2.major(options.version)}.${semver2.minor(options.version)}/`;
21582
21863
  }
21583
21864
  const p2LocationUrl = `https://download.eclipse.org/glsp/server/p2/${p2Location}`;
21584
- const targetDir = path10.join(options.repoDir, "server/releng/org.eclipse.glsp.ide.releng.target");
21865
+ const targetDir = path12.join(options.repoDir, "server/releng/org.eclipse.glsp.ide.releng.target");
21585
21866
  const targetFiles = findFiles(targetDir, "*.target");
21586
21867
  const tpdFiles = findFiles(targetDir, "*.tpd");
21587
21868
  targetFiles.forEach((target) => {
21588
21869
  LOGGER.debug(`Update ${target} file`);
21589
21870
  replaceInFile(
21590
- path10.resolve(targetDir, `${target}`),
21871
+ path12.resolve(targetDir, `${target}`),
21591
21872
  /<repository location="https:\/\/download\.eclipse\.org\/glsp\/server\/p2\/.*?"/,
21592
21873
  `<repository location="${p2LocationUrl}"`
21593
21874
  );
@@ -21595,12 +21876,12 @@ function updateEclipseServerMetadata(options) {
21595
21876
  tpdFiles.forEach((tpd) => {
21596
21877
  LOGGER.debug(`Update ${tpd} file`);
21597
21878
  replaceInFile(
21598
- path10.resolve(targetDir, `${tpd}`),
21879
+ path12.resolve(targetDir, `${tpd}`),
21599
21880
  /location "https:\/\/download\.eclipse\.org\/glsp\/server\/p2\/.*?"/g,
21600
21881
  `location "${p2LocationUrl}"`
21601
21882
  );
21602
21883
  });
21603
- const categoryXmlPath = path10.join(options.repoDir, "server/releng/org.eclipse.glsp.ide.repository/category.xml");
21884
+ const categoryXmlPath = path12.join(options.repoDir, "server/releng/org.eclipse.glsp.ide.repository/category.xml");
21604
21885
  LOGGER.debug(`Update ${categoryXmlPath} file`);
21605
21886
  replaceInFile(
21606
21887
  categoryXmlPath,
@@ -21635,7 +21916,7 @@ async function prepareRelease(options) {
21635
21916
  }
21636
21917
  await setVersion(options);
21637
21918
  updateChangelog(options);
21638
- await build(options);
21919
+ await build2(options);
21639
21920
  commitAndPushChanges(options);
21640
21921
  createReleasePR(options);
21641
21922
  }
@@ -21675,7 +21956,7 @@ function checkPreconditions(options) {
21675
21956
  throw new Error(`Version '${options.version}' already exists in the p2 repository!`);
21676
21957
  }
21677
21958
  }
21678
- async function build(options) {
21959
+ async function build2(options) {
21679
21960
  if (GLSPRepo.isNpmRepo(options.repo)) {
21680
21961
  return buildNpm(options);
21681
21962
  } else if (options.repo === "glsp-server") {
@@ -21702,7 +21983,7 @@ async function buildEclipseIntegration(options) {
21702
21983
  LOGGER.info("[Client] Install & Build with yarn");
21703
21984
  LOGGER.newLine();
21704
21985
  LOGGER.info("Build Server(P2)");
21705
- await execAsync("mvn clean install", { silent: false, cwd: path11.resolve(options.repoDir, "server"), errorMsg: "Server build failed" });
21986
+ await execAsync("mvn clean install", { silent: false, cwd: path13.resolve(options.repoDir, "server"), errorMsg: "Server build failed" });
21706
21987
  LOGGER.debug("Build successful");
21707
21988
  }
21708
21989
  function updateChangelog(options) {
@@ -21847,18 +22128,18 @@ async function publishNpm(options) {
21847
22128
  var RelengCommand = baseCommand().name("releng").description("Commands for GLSP release engineering (Linux only, intended for CI/Maintainer use).").addCommand(VersionCommand).addCommand(PrepareReleaseCommand).addCommand(PublishCommand);
21848
22129
 
21849
22130
  // src/commands/update-next.ts
21850
- var path12 = __toESM(require("path"));
22131
+ var path14 = __toESM(require("path"));
21851
22132
  var UpdateNextCommand = baseCommand().name("updateNext").alias("u").description("Updates all `next` dependencies in GLSP project to the latest version").argument("[rootDir]", "The repository root", validateGitDirectory, process.cwd()).option("-v, --verbose", "Enable verbose (debug) log output", false).action(updateNext);
21852
22133
  async function updateNext(rootDir, options) {
21853
22134
  configureLogger(options.verbose);
21854
- const rootPkgPath = path12.join(rootDir, "package.json");
22135
+ const rootPkgPath = path14.join(rootDir, "package.json");
21855
22136
  if (getUncommittedChanges(rootDir).includes(rootPkgPath)) {
21856
22137
  LOGGER.warn("Uncommitted changes in root `package.json`. Please commit or stash them before running this command.");
21857
22138
  return;
21858
22139
  }
21859
22140
  configureExec({ silent: false, fatal: true });
21860
22141
  LOGGER.info("Updating next dependencies ...");
21861
- rootDir = path12.resolve(rootDir);
22142
+ rootDir = path14.resolve(rootDir);
21862
22143
  const packages = getYarnWorkspacePackages(rootDir);
21863
22144
  LOGGER.debug(`Scanning ${packages.length} packages to derive resolutions`, packages);
21864
22145
  const resolutions = await getResolutions(packages);
@@ -21903,7 +22184,7 @@ async function getResolutions(packages) {
21903
22184
  }
21904
22185
 
21905
22186
  // src/cli.ts
21906
- var app = baseCommand().version(COMMAND_VERSION).name("glsp").addCommand(CoverageReportCommand).addCommand(CheckHeaderCommand).addCommand(UpdateNextCommand).addCommand(GenerateIndex).addCommand(RelengCommand);
22187
+ var app = baseCommand().version(COMMAND_VERSION).name("glsp").addCommand(CoverageReportCommand).addCommand(CheckHeaderCommand).addCommand(UpdateNextCommand).addCommand(GenerateIndex).addCommand(LocalLinkCommand).addCommand(RelengCommand);
21907
22188
  app.parseAsync(process.argv).catch((err) => {
21908
22189
  LOGGER.error(err);
21909
22190
  process.exit(1);