dev-cockpit 0.2.2 → 0.2.3

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/index.js CHANGED
@@ -290,8 +290,8 @@ var require_req = __commonJS({
290
290
  if (req.originalUrl) {
291
291
  _req.url = req.originalUrl;
292
292
  } else {
293
- const path21 = req.path;
294
- _req.url = typeof path21 === "string" ? path21 : req.url ? req.url.path || req.url : void 0;
293
+ const path22 = req.path;
294
+ _req.url = typeof path22 === "string" ? path22 : req.url ? req.url.path || req.url : void 0;
295
295
  }
296
296
  if (req.query) {
297
297
  _req.query = req.query;
@@ -456,14 +456,14 @@ var require_redact = __commonJS({
456
456
  }
457
457
  return obj;
458
458
  }
459
- function parsePath(path21) {
459
+ function parsePath(path22) {
460
460
  const parts = [];
461
461
  let current = "";
462
462
  let inBrackets = false;
463
463
  let inQuotes = false;
464
464
  let quoteChar = "";
465
- for (let i2 = 0; i2 < path21.length; i2++) {
466
- const char = path21[i2];
465
+ for (let i2 = 0; i2 < path22.length; i2++) {
466
+ const char = path22[i2];
467
467
  if (!inBrackets && char === ".") {
468
468
  if (current) {
469
469
  parts.push(current);
@@ -594,10 +594,10 @@ var require_redact = __commonJS({
594
594
  return current;
595
595
  }
596
596
  function redactPaths(obj, paths, censor, remove = false) {
597
- for (const path21 of paths) {
598
- const parts = parsePath(path21);
597
+ for (const path22 of paths) {
598
+ const parts = parsePath(path22);
599
599
  if (parts.includes("*")) {
600
- redactWildcardPath(obj, parts, censor, path21, remove);
600
+ redactWildcardPath(obj, parts, censor, path22, remove);
601
601
  } else {
602
602
  if (remove) {
603
603
  removeKey(obj, parts);
@@ -682,8 +682,8 @@ var require_redact = __commonJS({
682
682
  }
683
683
  } else {
684
684
  if (afterWildcard.includes("*")) {
685
- const wrappedCensor = typeof censor === "function" ? (value, path21) => {
686
- const fullPath = [...pathArray.slice(0, pathLength), ...path21];
685
+ const wrappedCensor = typeof censor === "function" ? (value, path22) => {
686
+ const fullPath = [...pathArray.slice(0, pathLength), ...path22];
687
687
  return censor(value, fullPath);
688
688
  } : censor;
689
689
  redactWildcardPath(current, afterWildcard, wrappedCensor, originalPath, remove);
@@ -718,8 +718,8 @@ var require_redact = __commonJS({
718
718
  return null;
719
719
  }
720
720
  const pathStructure = /* @__PURE__ */ new Map();
721
- for (const path21 of pathsToClone) {
722
- const parts = parsePath(path21);
721
+ for (const path22 of pathsToClone) {
722
+ const parts = parsePath(path22);
723
723
  let current = pathStructure;
724
724
  for (let i2 = 0; i2 < parts.length; i2++) {
725
725
  const part = parts[i2];
@@ -771,24 +771,24 @@ var require_redact = __commonJS({
771
771
  }
772
772
  return cloneSelectively(obj, pathStructure);
773
773
  }
774
- function validatePath(path21) {
775
- if (typeof path21 !== "string") {
774
+ function validatePath(path22) {
775
+ if (typeof path22 !== "string") {
776
776
  throw new Error("Paths must be (non-empty) strings");
777
777
  }
778
- if (path21 === "") {
778
+ if (path22 === "") {
779
779
  throw new Error("Invalid redaction path ()");
780
780
  }
781
- if (path21.includes("..")) {
782
- throw new Error(`Invalid redaction path (${path21})`);
781
+ if (path22.includes("..")) {
782
+ throw new Error(`Invalid redaction path (${path22})`);
783
783
  }
784
- if (path21.includes(",")) {
785
- throw new Error(`Invalid redaction path (${path21})`);
784
+ if (path22.includes(",")) {
785
+ throw new Error(`Invalid redaction path (${path22})`);
786
786
  }
787
787
  let bracketCount = 0;
788
788
  let inQuotes = false;
789
789
  let quoteChar = "";
790
- for (let i2 = 0; i2 < path21.length; i2++) {
791
- const char = path21[i2];
790
+ for (let i2 = 0; i2 < path22.length; i2++) {
791
+ const char = path22[i2];
792
792
  if ((char === '"' || char === "'") && bracketCount > 0) {
793
793
  if (!inQuotes) {
794
794
  inQuotes = true;
@@ -802,20 +802,20 @@ var require_redact = __commonJS({
802
802
  } else if (char === "]" && !inQuotes) {
803
803
  bracketCount--;
804
804
  if (bracketCount < 0) {
805
- throw new Error(`Invalid redaction path (${path21})`);
805
+ throw new Error(`Invalid redaction path (${path22})`);
806
806
  }
807
807
  }
808
808
  }
809
809
  if (bracketCount !== 0) {
810
- throw new Error(`Invalid redaction path (${path21})`);
810
+ throw new Error(`Invalid redaction path (${path22})`);
811
811
  }
812
812
  }
813
813
  function validatePaths(paths) {
814
814
  if (!Array.isArray(paths)) {
815
815
  throw new TypeError("paths must be an array");
816
816
  }
817
- for (const path21 of paths) {
818
- validatePath(path21);
817
+ for (const path22 of paths) {
818
+ validatePath(path22);
819
819
  }
820
820
  }
821
821
  function slowRedact(options2 = {}) {
@@ -983,8 +983,8 @@ var require_redaction = __commonJS({
983
983
  if (shape[k] === null) {
984
984
  o2[k] = (value) => topCensor(value, [k]);
985
985
  } else {
986
- const wrappedCensor = typeof censor === "function" ? (value, path21) => {
987
- return censor(value, [k, ...path21]);
986
+ const wrappedCensor = typeof censor === "function" ? (value, path22) => {
987
+ return censor(value, [k, ...path22]);
988
988
  } : censor;
989
989
  o2[k] = Redact({
990
990
  paths: shape[k],
@@ -1205,7 +1205,7 @@ var require_sonic_boom = __commonJS({
1205
1205
  var fs18 = __require("fs");
1206
1206
  var EventEmitter3 = __require("events");
1207
1207
  var inherits = __require("util").inherits;
1208
- var path21 = __require("path");
1208
+ var path22 = __require("path");
1209
1209
  var sleep = require_atomic_sleep();
1210
1210
  var assert = __require("assert");
1211
1211
  var BUSY_WRITE_TIMEOUT = 100;
@@ -1259,7 +1259,7 @@ var require_sonic_boom = __commonJS({
1259
1259
  const mode = sonic.mode;
1260
1260
  if (sonic.sync) {
1261
1261
  try {
1262
- if (sonic.mkdir) fs18.mkdirSync(path21.dirname(file), { recursive: true });
1262
+ if (sonic.mkdir) fs18.mkdirSync(path22.dirname(file), { recursive: true });
1263
1263
  const fd = fs18.openSync(file, flags, mode);
1264
1264
  fileOpened(null, fd);
1265
1265
  } catch (err) {
@@ -1267,7 +1267,7 @@ var require_sonic_boom = __commonJS({
1267
1267
  throw err;
1268
1268
  }
1269
1269
  } else if (sonic.mkdir) {
1270
- fs18.mkdir(path21.dirname(file), { recursive: true }, (err) => {
1270
+ fs18.mkdir(path22.dirname(file), { recursive: true }, (err) => {
1271
1271
  if (err) return fileOpened(err);
1272
1272
  fs18.open(file, flags, mode, fileOpened);
1273
1273
  });
@@ -4338,7 +4338,7 @@ var require_windows = __commonJS({
4338
4338
  module.exports = isexe;
4339
4339
  isexe.sync = sync;
4340
4340
  var fs18 = __require("fs");
4341
- function checkPathExt(path21, options2) {
4341
+ function checkPathExt(path22, options2) {
4342
4342
  var pathext = options2.pathExt !== void 0 ? options2.pathExt : process.env.PATHEXT;
4343
4343
  if (!pathext) {
4344
4344
  return true;
@@ -4349,25 +4349,25 @@ var require_windows = __commonJS({
4349
4349
  }
4350
4350
  for (var i2 = 0; i2 < pathext.length; i2++) {
4351
4351
  var p = pathext[i2].toLowerCase();
4352
- if (p && path21.substr(-p.length).toLowerCase() === p) {
4352
+ if (p && path22.substr(-p.length).toLowerCase() === p) {
4353
4353
  return true;
4354
4354
  }
4355
4355
  }
4356
4356
  return false;
4357
4357
  }
4358
- function checkStat(stat4, path21, options2) {
4358
+ function checkStat(stat4, path22, options2) {
4359
4359
  if (!stat4.isSymbolicLink() && !stat4.isFile()) {
4360
4360
  return false;
4361
4361
  }
4362
- return checkPathExt(path21, options2);
4362
+ return checkPathExt(path22, options2);
4363
4363
  }
4364
- function isexe(path21, options2, cb) {
4365
- fs18.stat(path21, function(er, stat4) {
4366
- cb(er, er ? false : checkStat(stat4, path21, options2));
4364
+ function isexe(path22, options2, cb) {
4365
+ fs18.stat(path22, function(er, stat4) {
4366
+ cb(er, er ? false : checkStat(stat4, path22, options2));
4367
4367
  });
4368
4368
  }
4369
- function sync(path21, options2) {
4370
- return checkStat(fs18.statSync(path21), path21, options2);
4369
+ function sync(path22, options2) {
4370
+ return checkStat(fs18.statSync(path22), path22, options2);
4371
4371
  }
4372
4372
  }
4373
4373
  });
@@ -4378,13 +4378,13 @@ var require_mode = __commonJS({
4378
4378
  module.exports = isexe;
4379
4379
  isexe.sync = sync;
4380
4380
  var fs18 = __require("fs");
4381
- function isexe(path21, options2, cb) {
4382
- fs18.stat(path21, function(er, stat4) {
4381
+ function isexe(path22, options2, cb) {
4382
+ fs18.stat(path22, function(er, stat4) {
4383
4383
  cb(er, er ? false : checkStat(stat4, options2));
4384
4384
  });
4385
4385
  }
4386
- function sync(path21, options2) {
4387
- return checkStat(fs18.statSync(path21), options2);
4386
+ function sync(path22, options2) {
4387
+ return checkStat(fs18.statSync(path22), options2);
4388
4388
  }
4389
4389
  function checkStat(stat4, options2) {
4390
4390
  return stat4.isFile() && checkMode(stat4, options2);
@@ -4417,7 +4417,7 @@ var require_isexe = __commonJS({
4417
4417
  }
4418
4418
  module.exports = isexe;
4419
4419
  isexe.sync = sync;
4420
- function isexe(path21, options2, cb) {
4420
+ function isexe(path22, options2, cb) {
4421
4421
  if (typeof options2 === "function") {
4422
4422
  cb = options2;
4423
4423
  options2 = {};
@@ -4427,7 +4427,7 @@ var require_isexe = __commonJS({
4427
4427
  throw new TypeError("callback not provided");
4428
4428
  }
4429
4429
  return new Promise(function(resolve3, reject) {
4430
- isexe(path21, options2 || {}, function(er, is) {
4430
+ isexe(path22, options2 || {}, function(er, is) {
4431
4431
  if (er) {
4432
4432
  reject(er);
4433
4433
  } else {
@@ -4436,7 +4436,7 @@ var require_isexe = __commonJS({
4436
4436
  });
4437
4437
  });
4438
4438
  }
4439
- core(path21, options2 || {}, function(er, is) {
4439
+ core(path22, options2 || {}, function(er, is) {
4440
4440
  if (er) {
4441
4441
  if (er.code === "EACCES" || options2 && options2.ignoreErrors) {
4442
4442
  er = null;
@@ -4446,9 +4446,9 @@ var require_isexe = __commonJS({
4446
4446
  cb(er, is);
4447
4447
  });
4448
4448
  }
4449
- function sync(path21, options2) {
4449
+ function sync(path22, options2) {
4450
4450
  try {
4451
- return core.sync(path21, options2 || {});
4451
+ return core.sync(path22, options2 || {});
4452
4452
  } catch (er) {
4453
4453
  if (options2 && options2.ignoreErrors || er.code === "EACCES") {
4454
4454
  return false;
@@ -4464,7 +4464,7 @@ var require_isexe = __commonJS({
4464
4464
  var require_which = __commonJS({
4465
4465
  "node_modules/which/which.js"(exports, module) {
4466
4466
  var isWindows2 = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
4467
- var path21 = __require("path");
4467
+ var path22 = __require("path");
4468
4468
  var COLON = isWindows2 ? ";" : ":";
4469
4469
  var isexe = require_isexe();
4470
4470
  var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
@@ -4502,7 +4502,7 @@ var require_which = __commonJS({
4502
4502
  return opt.all && found.length ? resolve3(found) : reject(getNotFoundError(cmd));
4503
4503
  const ppRaw = pathEnv[i2];
4504
4504
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
4505
- const pCmd = path21.join(pathPart, cmd);
4505
+ const pCmd = path22.join(pathPart, cmd);
4506
4506
  const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
4507
4507
  resolve3(subStep(p, i2, 0));
4508
4508
  });
@@ -4529,7 +4529,7 @@ var require_which = __commonJS({
4529
4529
  for (let i2 = 0; i2 < pathEnv.length; i2++) {
4530
4530
  const ppRaw = pathEnv[i2];
4531
4531
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
4532
- const pCmd = path21.join(pathPart, cmd);
4532
+ const pCmd = path22.join(pathPart, cmd);
4533
4533
  const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
4534
4534
  for (let j = 0; j < pathExt.length; j++) {
4535
4535
  const cur = p + pathExt[j];
@@ -4577,7 +4577,7 @@ var require_path_key = __commonJS({
4577
4577
  var require_resolveCommand = __commonJS({
4578
4578
  "node_modules/cross-spawn/lib/util/resolveCommand.js"(exports, module) {
4579
4579
  "use strict";
4580
- var path21 = __require("path");
4580
+ var path22 = __require("path");
4581
4581
  var which = require_which();
4582
4582
  var getPathKey = require_path_key();
4583
4583
  function resolveCommandAttempt(parsed, withoutPathExt) {
@@ -4595,7 +4595,7 @@ var require_resolveCommand = __commonJS({
4595
4595
  try {
4596
4596
  resolved = which.sync(parsed.command, {
4597
4597
  path: env[getPathKey({ env })],
4598
- pathExt: withoutPathExt ? path21.delimiter : void 0
4598
+ pathExt: withoutPathExt ? path22.delimiter : void 0
4599
4599
  });
4600
4600
  } catch (e) {
4601
4601
  } finally {
@@ -4604,7 +4604,7 @@ var require_resolveCommand = __commonJS({
4604
4604
  }
4605
4605
  }
4606
4606
  if (resolved) {
4607
- resolved = path21.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
4607
+ resolved = path22.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
4608
4608
  }
4609
4609
  return resolved;
4610
4610
  }
@@ -4658,8 +4658,8 @@ var require_shebang_command = __commonJS({
4658
4658
  if (!match) {
4659
4659
  return null;
4660
4660
  }
4661
- const [path21, argument] = match[0].replace(/#! ?/, "").split(" ");
4662
- const binary = path21.split("/").pop();
4661
+ const [path22, argument] = match[0].replace(/#! ?/, "").split(" ");
4662
+ const binary = path22.split("/").pop();
4663
4663
  if (binary === "env") {
4664
4664
  return argument;
4665
4665
  }
@@ -4694,7 +4694,7 @@ var require_readShebang = __commonJS({
4694
4694
  var require_parse = __commonJS({
4695
4695
  "node_modules/cross-spawn/lib/parse.js"(exports, module) {
4696
4696
  "use strict";
4697
- var path21 = __require("path");
4697
+ var path22 = __require("path");
4698
4698
  var resolveCommand = require_resolveCommand();
4699
4699
  var escape3 = require_escape();
4700
4700
  var readShebang = require_readShebang();
@@ -4719,7 +4719,7 @@ var require_parse = __commonJS({
4719
4719
  const needsShell = !isExecutableRegExp.test(commandFile);
4720
4720
  if (parsed.options.forceShell || needsShell) {
4721
4721
  const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
4722
- parsed.command = path21.normalize(parsed.command);
4722
+ parsed.command = path22.normalize(parsed.command);
4723
4723
  parsed.command = escape3.command(parsed.command);
4724
4724
  parsed.args = parsed.args.map((arg) => escape3.argument(arg, needsDoubleEscapeMetaChars));
4725
4725
  const shellCommand = [parsed.command].concat(parsed.args).join(" ");
@@ -4906,17 +4906,17 @@ var require_visit = __commonJS({
4906
4906
  visit.BREAK = BREAK;
4907
4907
  visit.SKIP = SKIP;
4908
4908
  visit.REMOVE = REMOVE;
4909
- function visit_(key, node, visitor, path21) {
4910
- const ctrl = callVisitor(key, node, visitor, path21);
4909
+ function visit_(key, node, visitor, path22) {
4910
+ const ctrl = callVisitor(key, node, visitor, path22);
4911
4911
  if (identity4.isNode(ctrl) || identity4.isPair(ctrl)) {
4912
- replaceNode(key, path21, ctrl);
4913
- return visit_(key, ctrl, visitor, path21);
4912
+ replaceNode(key, path22, ctrl);
4913
+ return visit_(key, ctrl, visitor, path22);
4914
4914
  }
4915
4915
  if (typeof ctrl !== "symbol") {
4916
4916
  if (identity4.isCollection(node)) {
4917
- path21 = Object.freeze(path21.concat(node));
4917
+ path22 = Object.freeze(path22.concat(node));
4918
4918
  for (let i2 = 0; i2 < node.items.length; ++i2) {
4919
- const ci = visit_(i2, node.items[i2], visitor, path21);
4919
+ const ci = visit_(i2, node.items[i2], visitor, path22);
4920
4920
  if (typeof ci === "number")
4921
4921
  i2 = ci - 1;
4922
4922
  else if (ci === BREAK)
@@ -4927,13 +4927,13 @@ var require_visit = __commonJS({
4927
4927
  }
4928
4928
  }
4929
4929
  } else if (identity4.isPair(node)) {
4930
- path21 = Object.freeze(path21.concat(node));
4931
- const ck = visit_("key", node.key, visitor, path21);
4930
+ path22 = Object.freeze(path22.concat(node));
4931
+ const ck = visit_("key", node.key, visitor, path22);
4932
4932
  if (ck === BREAK)
4933
4933
  return BREAK;
4934
4934
  else if (ck === REMOVE)
4935
4935
  node.key = null;
4936
- const cv = visit_("value", node.value, visitor, path21);
4936
+ const cv = visit_("value", node.value, visitor, path22);
4937
4937
  if (cv === BREAK)
4938
4938
  return BREAK;
4939
4939
  else if (cv === REMOVE)
@@ -4954,17 +4954,17 @@ var require_visit = __commonJS({
4954
4954
  visitAsync.BREAK = BREAK;
4955
4955
  visitAsync.SKIP = SKIP;
4956
4956
  visitAsync.REMOVE = REMOVE;
4957
- async function visitAsync_(key, node, visitor, path21) {
4958
- const ctrl = await callVisitor(key, node, visitor, path21);
4957
+ async function visitAsync_(key, node, visitor, path22) {
4958
+ const ctrl = await callVisitor(key, node, visitor, path22);
4959
4959
  if (identity4.isNode(ctrl) || identity4.isPair(ctrl)) {
4960
- replaceNode(key, path21, ctrl);
4961
- return visitAsync_(key, ctrl, visitor, path21);
4960
+ replaceNode(key, path22, ctrl);
4961
+ return visitAsync_(key, ctrl, visitor, path22);
4962
4962
  }
4963
4963
  if (typeof ctrl !== "symbol") {
4964
4964
  if (identity4.isCollection(node)) {
4965
- path21 = Object.freeze(path21.concat(node));
4965
+ path22 = Object.freeze(path22.concat(node));
4966
4966
  for (let i2 = 0; i2 < node.items.length; ++i2) {
4967
- const ci = await visitAsync_(i2, node.items[i2], visitor, path21);
4967
+ const ci = await visitAsync_(i2, node.items[i2], visitor, path22);
4968
4968
  if (typeof ci === "number")
4969
4969
  i2 = ci - 1;
4970
4970
  else if (ci === BREAK)
@@ -4975,13 +4975,13 @@ var require_visit = __commonJS({
4975
4975
  }
4976
4976
  }
4977
4977
  } else if (identity4.isPair(node)) {
4978
- path21 = Object.freeze(path21.concat(node));
4979
- const ck = await visitAsync_("key", node.key, visitor, path21);
4978
+ path22 = Object.freeze(path22.concat(node));
4979
+ const ck = await visitAsync_("key", node.key, visitor, path22);
4980
4980
  if (ck === BREAK)
4981
4981
  return BREAK;
4982
4982
  else if (ck === REMOVE)
4983
4983
  node.key = null;
4984
- const cv = await visitAsync_("value", node.value, visitor, path21);
4984
+ const cv = await visitAsync_("value", node.value, visitor, path22);
4985
4985
  if (cv === BREAK)
4986
4986
  return BREAK;
4987
4987
  else if (cv === REMOVE)
@@ -5008,23 +5008,23 @@ var require_visit = __commonJS({
5008
5008
  }
5009
5009
  return visitor;
5010
5010
  }
5011
- function callVisitor(key, node, visitor, path21) {
5011
+ function callVisitor(key, node, visitor, path22) {
5012
5012
  if (typeof visitor === "function")
5013
- return visitor(key, node, path21);
5013
+ return visitor(key, node, path22);
5014
5014
  if (identity4.isMap(node))
5015
- return visitor.Map?.(key, node, path21);
5015
+ return visitor.Map?.(key, node, path22);
5016
5016
  if (identity4.isSeq(node))
5017
- return visitor.Seq?.(key, node, path21);
5017
+ return visitor.Seq?.(key, node, path22);
5018
5018
  if (identity4.isPair(node))
5019
- return visitor.Pair?.(key, node, path21);
5019
+ return visitor.Pair?.(key, node, path22);
5020
5020
  if (identity4.isScalar(node))
5021
- return visitor.Scalar?.(key, node, path21);
5021
+ return visitor.Scalar?.(key, node, path22);
5022
5022
  if (identity4.isAlias(node))
5023
- return visitor.Alias?.(key, node, path21);
5023
+ return visitor.Alias?.(key, node, path22);
5024
5024
  return void 0;
5025
5025
  }
5026
- function replaceNode(key, path21, node) {
5027
- const parent = path21[path21.length - 1];
5026
+ function replaceNode(key, path22, node) {
5027
+ const parent = path22[path22.length - 1];
5028
5028
  if (identity4.isCollection(parent)) {
5029
5029
  parent.items[key] = node;
5030
5030
  } else if (identity4.isPair(parent)) {
@@ -5634,10 +5634,10 @@ var require_Collection = __commonJS({
5634
5634
  var createNode = require_createNode();
5635
5635
  var identity4 = require_identity();
5636
5636
  var Node = require_Node();
5637
- function collectionFromPath(schema, path21, value) {
5637
+ function collectionFromPath(schema, path22, value) {
5638
5638
  let v = value;
5639
- for (let i2 = path21.length - 1; i2 >= 0; --i2) {
5640
- const k = path21[i2];
5639
+ for (let i2 = path22.length - 1; i2 >= 0; --i2) {
5640
+ const k = path22[i2];
5641
5641
  if (typeof k === "number" && Number.isInteger(k) && k >= 0) {
5642
5642
  const a2 = [];
5643
5643
  a2[k] = v;
@@ -5656,7 +5656,7 @@ var require_Collection = __commonJS({
5656
5656
  sourceObjects: /* @__PURE__ */ new Map()
5657
5657
  });
5658
5658
  }
5659
- var isEmptyPath = (path21) => path21 == null || typeof path21 === "object" && !!path21[Symbol.iterator]().next().done;
5659
+ var isEmptyPath = (path22) => path22 == null || typeof path22 === "object" && !!path22[Symbol.iterator]().next().done;
5660
5660
  var Collection = class extends Node.NodeBase {
5661
5661
  constructor(type, schema) {
5662
5662
  super(type);
@@ -5686,11 +5686,11 @@ var require_Collection = __commonJS({
5686
5686
  * be a Pair instance or a `{ key, value }` object, which may not have a key
5687
5687
  * that already exists in the map.
5688
5688
  */
5689
- addIn(path21, value) {
5690
- if (isEmptyPath(path21))
5689
+ addIn(path22, value) {
5690
+ if (isEmptyPath(path22))
5691
5691
  this.add(value);
5692
5692
  else {
5693
- const [key, ...rest] = path21;
5693
+ const [key, ...rest] = path22;
5694
5694
  const node = this.get(key, true);
5695
5695
  if (identity4.isCollection(node))
5696
5696
  node.addIn(rest, value);
@@ -5704,8 +5704,8 @@ var require_Collection = __commonJS({
5704
5704
  * Removes a value from the collection.
5705
5705
  * @returns `true` if the item was found and removed.
5706
5706
  */
5707
- deleteIn(path21) {
5708
- const [key, ...rest] = path21;
5707
+ deleteIn(path22) {
5708
+ const [key, ...rest] = path22;
5709
5709
  if (rest.length === 0)
5710
5710
  return this.delete(key);
5711
5711
  const node = this.get(key, true);
@@ -5719,8 +5719,8 @@ var require_Collection = __commonJS({
5719
5719
  * scalar values from their surrounding node; to disable set `keepScalar` to
5720
5720
  * `true` (collections are always returned intact).
5721
5721
  */
5722
- getIn(path21, keepScalar) {
5723
- const [key, ...rest] = path21;
5722
+ getIn(path22, keepScalar) {
5723
+ const [key, ...rest] = path22;
5724
5724
  const node = this.get(key, true);
5725
5725
  if (rest.length === 0)
5726
5726
  return !keepScalar && identity4.isScalar(node) ? node.value : node;
@@ -5738,8 +5738,8 @@ var require_Collection = __commonJS({
5738
5738
  /**
5739
5739
  * Checks if the collection includes a value with the key `key`.
5740
5740
  */
5741
- hasIn(path21) {
5742
- const [key, ...rest] = path21;
5741
+ hasIn(path22) {
5742
+ const [key, ...rest] = path22;
5743
5743
  if (rest.length === 0)
5744
5744
  return this.has(key);
5745
5745
  const node = this.get(key, true);
@@ -5749,8 +5749,8 @@ var require_Collection = __commonJS({
5749
5749
  * Sets a value in this collection. For `!!set`, `value` needs to be a
5750
5750
  * boolean to add/remove the item from the set.
5751
5751
  */
5752
- setIn(path21, value) {
5753
- const [key, ...rest] = path21;
5752
+ setIn(path22, value) {
5753
+ const [key, ...rest] = path22;
5754
5754
  if (rest.length === 0) {
5755
5755
  this.set(key, value);
5756
5756
  } else {
@@ -8265,9 +8265,9 @@ var require_Document = __commonJS({
8265
8265
  this.contents.add(value);
8266
8266
  }
8267
8267
  /** Adds a value to the document. */
8268
- addIn(path21, value) {
8268
+ addIn(path22, value) {
8269
8269
  if (assertCollection(this.contents))
8270
- this.contents.addIn(path21, value);
8270
+ this.contents.addIn(path22, value);
8271
8271
  }
8272
8272
  /**
8273
8273
  * Create a new `Alias` node, ensuring that the target `node` has the required anchor.
@@ -8342,14 +8342,14 @@ var require_Document = __commonJS({
8342
8342
  * Removes a value from the document.
8343
8343
  * @returns `true` if the item was found and removed.
8344
8344
  */
8345
- deleteIn(path21) {
8346
- if (Collection.isEmptyPath(path21)) {
8345
+ deleteIn(path22) {
8346
+ if (Collection.isEmptyPath(path22)) {
8347
8347
  if (this.contents == null)
8348
8348
  return false;
8349
8349
  this.contents = null;
8350
8350
  return true;
8351
8351
  }
8352
- return assertCollection(this.contents) ? this.contents.deleteIn(path21) : false;
8352
+ return assertCollection(this.contents) ? this.contents.deleteIn(path22) : false;
8353
8353
  }
8354
8354
  /**
8355
8355
  * Returns item at `key`, or `undefined` if not found. By default unwraps
@@ -8364,10 +8364,10 @@ var require_Document = __commonJS({
8364
8364
  * scalar values from their surrounding node; to disable set `keepScalar` to
8365
8365
  * `true` (collections are always returned intact).
8366
8366
  */
8367
- getIn(path21, keepScalar) {
8368
- if (Collection.isEmptyPath(path21))
8367
+ getIn(path22, keepScalar) {
8368
+ if (Collection.isEmptyPath(path22))
8369
8369
  return !keepScalar && identity4.isScalar(this.contents) ? this.contents.value : this.contents;
8370
- return identity4.isCollection(this.contents) ? this.contents.getIn(path21, keepScalar) : void 0;
8370
+ return identity4.isCollection(this.contents) ? this.contents.getIn(path22, keepScalar) : void 0;
8371
8371
  }
8372
8372
  /**
8373
8373
  * Checks if the document includes a value with the key `key`.
@@ -8378,10 +8378,10 @@ var require_Document = __commonJS({
8378
8378
  /**
8379
8379
  * Checks if the document includes a value at `path`.
8380
8380
  */
8381
- hasIn(path21) {
8382
- if (Collection.isEmptyPath(path21))
8381
+ hasIn(path22) {
8382
+ if (Collection.isEmptyPath(path22))
8383
8383
  return this.contents !== void 0;
8384
- return identity4.isCollection(this.contents) ? this.contents.hasIn(path21) : false;
8384
+ return identity4.isCollection(this.contents) ? this.contents.hasIn(path22) : false;
8385
8385
  }
8386
8386
  /**
8387
8387
  * Sets a value in this document. For `!!set`, `value` needs to be a
@@ -8398,13 +8398,13 @@ var require_Document = __commonJS({
8398
8398
  * Sets a value in this document. For `!!set`, `value` needs to be a
8399
8399
  * boolean to add/remove the item from the set.
8400
8400
  */
8401
- setIn(path21, value) {
8402
- if (Collection.isEmptyPath(path21)) {
8401
+ setIn(path22, value) {
8402
+ if (Collection.isEmptyPath(path22)) {
8403
8403
  this.contents = value;
8404
8404
  } else if (this.contents == null) {
8405
- this.contents = Collection.collectionFromPath(this.schema, Array.from(path21), value);
8405
+ this.contents = Collection.collectionFromPath(this.schema, Array.from(path22), value);
8406
8406
  } else if (assertCollection(this.contents)) {
8407
- this.contents.setIn(path21, value);
8407
+ this.contents.setIn(path22, value);
8408
8408
  }
8409
8409
  }
8410
8410
  /**
@@ -10362,9 +10362,9 @@ var require_cst_visit = __commonJS({
10362
10362
  visit.BREAK = BREAK;
10363
10363
  visit.SKIP = SKIP;
10364
10364
  visit.REMOVE = REMOVE;
10365
- visit.itemAtPath = (cst, path21) => {
10365
+ visit.itemAtPath = (cst, path22) => {
10366
10366
  let item = cst;
10367
- for (const [field, index] of path21) {
10367
+ for (const [field, index] of path22) {
10368
10368
  const tok = item?.[field];
10369
10369
  if (tok && "items" in tok) {
10370
10370
  item = tok.items[index];
@@ -10373,23 +10373,23 @@ var require_cst_visit = __commonJS({
10373
10373
  }
10374
10374
  return item;
10375
10375
  };
10376
- visit.parentCollection = (cst, path21) => {
10377
- const parent = visit.itemAtPath(cst, path21.slice(0, -1));
10378
- const field = path21[path21.length - 1][0];
10376
+ visit.parentCollection = (cst, path22) => {
10377
+ const parent = visit.itemAtPath(cst, path22.slice(0, -1));
10378
+ const field = path22[path22.length - 1][0];
10379
10379
  const coll = parent?.[field];
10380
10380
  if (coll && "items" in coll)
10381
10381
  return coll;
10382
10382
  throw new Error("Parent collection not found");
10383
10383
  };
10384
- function _visit(path21, item, visitor) {
10385
- let ctrl = visitor(item, path21);
10384
+ function _visit(path22, item, visitor) {
10385
+ let ctrl = visitor(item, path22);
10386
10386
  if (typeof ctrl === "symbol")
10387
10387
  return ctrl;
10388
10388
  for (const field of ["key", "value"]) {
10389
10389
  const token = item[field];
10390
10390
  if (token && "items" in token) {
10391
10391
  for (let i2 = 0; i2 < token.items.length; ++i2) {
10392
- const ci = _visit(Object.freeze(path21.concat([[field, i2]])), token.items[i2], visitor);
10392
+ const ci = _visit(Object.freeze(path22.concat([[field, i2]])), token.items[i2], visitor);
10393
10393
  if (typeof ci === "number")
10394
10394
  i2 = ci - 1;
10395
10395
  else if (ci === BREAK)
@@ -10400,10 +10400,10 @@ var require_cst_visit = __commonJS({
10400
10400
  }
10401
10401
  }
10402
10402
  if (typeof ctrl === "function" && field === "key")
10403
- ctrl = ctrl(item, path21);
10403
+ ctrl = ctrl(item, path22);
10404
10404
  }
10405
10405
  }
10406
- return typeof ctrl === "function" ? ctrl(item, path21) : ctrl;
10406
+ return typeof ctrl === "function" ? ctrl(item, path22) : ctrl;
10407
10407
  }
10408
10408
  exports.visit = visit;
10409
10409
  }
@@ -13070,7 +13070,7 @@ var require_command = __commonJS({
13070
13070
  "node_modules/commander/lib/command.js"(exports) {
13071
13071
  var EventEmitter3 = __require("node:events").EventEmitter;
13072
13072
  var childProcess = __require("node:child_process");
13073
- var path21 = __require("node:path");
13073
+ var path22 = __require("node:path");
13074
13074
  var fs18 = __require("node:fs");
13075
13075
  var process10 = __require("node:process");
13076
13076
  var { Argument: Argument2, humanReadableArgName } = require_argument();
@@ -14003,9 +14003,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
14003
14003
  let launchWithNode = false;
14004
14004
  const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
14005
14005
  function findFile(baseDir, baseName) {
14006
- const localBin = path21.resolve(baseDir, baseName);
14006
+ const localBin = path22.resolve(baseDir, baseName);
14007
14007
  if (fs18.existsSync(localBin)) return localBin;
14008
- if (sourceExt.includes(path21.extname(baseName))) return void 0;
14008
+ if (sourceExt.includes(path22.extname(baseName))) return void 0;
14009
14009
  const foundExt = sourceExt.find(
14010
14010
  (ext) => fs18.existsSync(`${localBin}${ext}`)
14011
14011
  );
@@ -14023,17 +14023,17 @@ Expecting one of '${allowedValues.join("', '")}'`);
14023
14023
  } catch (err) {
14024
14024
  resolvedScriptPath = this._scriptPath;
14025
14025
  }
14026
- executableDir = path21.resolve(
14027
- path21.dirname(resolvedScriptPath),
14026
+ executableDir = path22.resolve(
14027
+ path22.dirname(resolvedScriptPath),
14028
14028
  executableDir
14029
14029
  );
14030
14030
  }
14031
14031
  if (executableDir) {
14032
14032
  let localFile = findFile(executableDir, executableFile);
14033
14033
  if (!localFile && !subcommand._executableFile && this._scriptPath) {
14034
- const legacyName = path21.basename(
14034
+ const legacyName = path22.basename(
14035
14035
  this._scriptPath,
14036
- path21.extname(this._scriptPath)
14036
+ path22.extname(this._scriptPath)
14037
14037
  );
14038
14038
  if (legacyName !== this._name) {
14039
14039
  localFile = findFile(
@@ -14044,7 +14044,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
14044
14044
  }
14045
14045
  executableFile = localFile || executableFile;
14046
14046
  }
14047
- launchWithNode = sourceExt.includes(path21.extname(executableFile));
14047
+ launchWithNode = sourceExt.includes(path22.extname(executableFile));
14048
14048
  let proc;
14049
14049
  if (process10.platform !== "win32") {
14050
14050
  if (launchWithNode) {
@@ -14884,7 +14884,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
14884
14884
  * @return {Command}
14885
14885
  */
14886
14886
  nameFromFilename(filename) {
14887
- this._name = path21.basename(filename, path21.extname(filename));
14887
+ this._name = path22.basename(filename, path22.extname(filename));
14888
14888
  return this;
14889
14889
  }
14890
14890
  /**
@@ -14898,9 +14898,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
14898
14898
  * @param {string} [path]
14899
14899
  * @return {(string|null|Command)}
14900
14900
  */
14901
- executableDir(path22) {
14902
- if (path22 === void 0) return this._executableDir;
14903
- this._executableDir = path22;
14901
+ executableDir(path23) {
14902
+ if (path23 === void 0) return this._executableDir;
14903
+ this._executableDir = path23;
14904
14904
  return this;
14905
14905
  }
14906
14906
  /**
@@ -60069,15 +60069,15 @@ var require_route = __commonJS({
60069
60069
  };
60070
60070
  }
60071
60071
  function wrapConversion(toModel, graph) {
60072
- const path21 = [graph[toModel].parent, toModel];
60072
+ const path22 = [graph[toModel].parent, toModel];
60073
60073
  let fn = conversions[graph[toModel].parent][toModel];
60074
60074
  let cur = graph[toModel].parent;
60075
60075
  while (graph[cur].parent) {
60076
- path21.unshift(graph[cur].parent);
60076
+ path22.unshift(graph[cur].parent);
60077
60077
  fn = link2(conversions[graph[cur].parent][cur], fn);
60078
60078
  cur = graph[cur].parent;
60079
60079
  }
60080
- fn.conversion = path21;
60080
+ fn.conversion = path22;
60081
60081
  return fn;
60082
60082
  }
60083
60083
  module.exports = function(fromModel) {
@@ -77212,13 +77212,13 @@ var logOutputSync = ({ serializedResult, fdNumber, state, verboseInfo, encoding,
77212
77212
  }
77213
77213
  };
77214
77214
  var writeToFiles = (serializedResult, stdioItems, outputFiles) => {
77215
- for (const { path: path21, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
77216
- const pathString = typeof path21 === "string" ? path21 : path21.toString();
77215
+ for (const { path: path22, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
77216
+ const pathString = typeof path22 === "string" ? path22 : path22.toString();
77217
77217
  if (append || outputFiles.has(pathString)) {
77218
- appendFileSync(path21, serializedResult);
77218
+ appendFileSync(path22, serializedResult);
77219
77219
  } else {
77220
77220
  outputFiles.add(pathString);
77221
- writeFileSync(path21, serializedResult);
77221
+ writeFileSync(path22, serializedResult);
77222
77222
  }
77223
77223
  }
77224
77224
  };
@@ -80269,8 +80269,8 @@ function getErrorMap() {
80269
80269
 
80270
80270
  // node_modules/zod/v3/helpers/parseUtil.js
80271
80271
  var makeIssue = (params) => {
80272
- const { data, path: path21, errorMaps, issueData } = params;
80273
- const fullPath = [...path21, ...issueData.path || []];
80272
+ const { data, path: path22, errorMaps, issueData } = params;
80273
+ const fullPath = [...path22, ...issueData.path || []];
80274
80274
  const fullIssue = {
80275
80275
  ...issueData,
80276
80276
  path: fullPath
@@ -80386,11 +80386,11 @@ var errorUtil;
80386
80386
 
80387
80387
  // node_modules/zod/v3/types.js
80388
80388
  var ParseInputLazyPath = class {
80389
- constructor(parent, value, path21, key) {
80389
+ constructor(parent, value, path22, key) {
80390
80390
  this._cachedPath = [];
80391
80391
  this.parent = parent;
80392
80392
  this.data = value;
80393
- this._path = path21;
80393
+ this._path = path22;
80394
80394
  this._key = key;
80395
80395
  }
80396
80396
  get path() {
@@ -83951,8 +83951,14 @@ var ActionSchema = external_exports.object({
83951
83951
  key: external_exports.string().min(1).max(1).optional()
83952
83952
  });
83953
83953
  var MountSettingsSchema = external_exports.object({
83954
- /** Workspace-relative path for the generated docker-compose overlay. */
83955
- overlayPath: external_exports.string().optional().default("docker-compose.dev-cockpit.yml"),
83954
+ /**
83955
+ * Override path for the generated docker-compose overlay. When unset
83956
+ * (the default), the overlay lands in the cockpit state dir alongside
83957
+ * `mount.manifest.json` — keeps the wrapper repo clean of per-developer
83958
+ * artefacts. When set, the value is workspace-relative; absolute paths
83959
+ * are honoured verbatim.
83960
+ */
83961
+ overlayPath: external_exports.string().optional(),
83956
83962
  /** Basename inside stateDir for the manifest. */
83957
83963
  manifestFile: external_exports.string().optional().default("mount.manifest.json")
83958
83964
  });
@@ -83972,7 +83978,6 @@ var BaseCockpitConfigSchema = external_exports.object({
83972
83978
  }),
83973
83979
  mounts: external_exports.array(MountSchema).optional().default([]),
83974
83980
  mount: MountSettingsSchema.optional().default({
83975
- overlayPath: "docker-compose.dev-cockpit.yml",
83976
83981
  manifestFile: "mount.manifest.json"
83977
83982
  }),
83978
83983
  /** Which pane the cockpit lands on when it boots. Profile may override. */
@@ -88774,7 +88779,7 @@ var ReaddirpStream = class extends Readable4 {
88774
88779
  this._directoryFilter = normalizeFilter(opts.directoryFilter);
88775
88780
  const statMethod = opts.lstat ? lstat : stat;
88776
88781
  if (wantBigintFsStats) {
88777
- this._stat = (path21) => statMethod(path21, { bigint: true });
88782
+ this._stat = (path22) => statMethod(path22, { bigint: true });
88778
88783
  } else {
88779
88784
  this._stat = statMethod;
88780
88785
  }
@@ -88799,8 +88804,8 @@ var ReaddirpStream = class extends Readable4 {
88799
88804
  const par = this.parent;
88800
88805
  const fil = par && par.files;
88801
88806
  if (fil && fil.length > 0) {
88802
- const { path: path21, depth } = par;
88803
- const slice = fil.splice(0, batch).map((dirent) => this._formatEntry(dirent, path21));
88807
+ const { path: path22, depth } = par;
88808
+ const slice = fil.splice(0, batch).map((dirent) => this._formatEntry(dirent, path22));
88804
88809
  const awaited = await Promise.all(slice);
88805
88810
  for (const entry of awaited) {
88806
88811
  if (!entry)
@@ -88840,20 +88845,20 @@ var ReaddirpStream = class extends Readable4 {
88840
88845
  this.reading = false;
88841
88846
  }
88842
88847
  }
88843
- async _exploreDir(path21, depth) {
88848
+ async _exploreDir(path22, depth) {
88844
88849
  let files;
88845
88850
  try {
88846
- files = await readdir(path21, this._rdOptions);
88851
+ files = await readdir(path22, this._rdOptions);
88847
88852
  } catch (error) {
88848
88853
  this._onError(error);
88849
88854
  }
88850
- return { files, depth, path: path21 };
88855
+ return { files, depth, path: path22 };
88851
88856
  }
88852
- async _formatEntry(dirent, path21) {
88857
+ async _formatEntry(dirent, path22) {
88853
88858
  let entry;
88854
88859
  const basename3 = this._isDirent ? dirent.name : dirent;
88855
88860
  try {
88856
- const fullPath = presolve(pjoin(path21, basename3));
88861
+ const fullPath = presolve(pjoin(path22, basename3));
88857
88862
  entry = { path: prelative(this._root, fullPath), fullPath, basename: basename3 };
88858
88863
  entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath);
88859
88864
  } catch (err) {
@@ -89253,16 +89258,16 @@ var delFromSet = (main, prop, item) => {
89253
89258
  };
89254
89259
  var isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val;
89255
89260
  var FsWatchInstances = /* @__PURE__ */ new Map();
89256
- function createFsWatchInstance(path21, options2, listener, errHandler, emitRaw) {
89261
+ function createFsWatchInstance(path22, options2, listener, errHandler, emitRaw) {
89257
89262
  const handleEvent = (rawEvent, evPath) => {
89258
- listener(path21);
89259
- emitRaw(rawEvent, evPath, { watchedPath: path21 });
89260
- if (evPath && path21 !== evPath) {
89261
- fsWatchBroadcast(sp.resolve(path21, evPath), KEY_LISTENERS, sp.join(path21, evPath));
89263
+ listener(path22);
89264
+ emitRaw(rawEvent, evPath, { watchedPath: path22 });
89265
+ if (evPath && path22 !== evPath) {
89266
+ fsWatchBroadcast(sp.resolve(path22, evPath), KEY_LISTENERS, sp.join(path22, evPath));
89262
89267
  }
89263
89268
  };
89264
89269
  try {
89265
- return fs_watch(path21, {
89270
+ return fs_watch(path22, {
89266
89271
  persistent: options2.persistent
89267
89272
  }, handleEvent);
89268
89273
  } catch (error) {
@@ -89278,12 +89283,12 @@ var fsWatchBroadcast = (fullPath, listenerType, val1, val2, val3) => {
89278
89283
  listener(val1, val2, val3);
89279
89284
  });
89280
89285
  };
89281
- var setFsWatchListener = (path21, fullPath, options2, handlers) => {
89286
+ var setFsWatchListener = (path22, fullPath, options2, handlers) => {
89282
89287
  const { listener, errHandler, rawEmitter } = handlers;
89283
89288
  let cont = FsWatchInstances.get(fullPath);
89284
89289
  let watcher;
89285
89290
  if (!options2.persistent) {
89286
- watcher = createFsWatchInstance(path21, options2, listener, errHandler, rawEmitter);
89291
+ watcher = createFsWatchInstance(path22, options2, listener, errHandler, rawEmitter);
89287
89292
  if (!watcher)
89288
89293
  return;
89289
89294
  return watcher.close.bind(watcher);
@@ -89294,7 +89299,7 @@ var setFsWatchListener = (path21, fullPath, options2, handlers) => {
89294
89299
  addAndConvert(cont, KEY_RAW, rawEmitter);
89295
89300
  } else {
89296
89301
  watcher = createFsWatchInstance(
89297
- path21,
89302
+ path22,
89298
89303
  options2,
89299
89304
  fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS),
89300
89305
  errHandler,
@@ -89309,7 +89314,7 @@ var setFsWatchListener = (path21, fullPath, options2, handlers) => {
89309
89314
  cont.watcherUnusable = true;
89310
89315
  if (isWindows && error.code === "EPERM") {
89311
89316
  try {
89312
- const fd = await open(path21, "r");
89317
+ const fd = await open(path22, "r");
89313
89318
  await fd.close();
89314
89319
  broadcastErr(error);
89315
89320
  } catch (err) {
@@ -89340,7 +89345,7 @@ var setFsWatchListener = (path21, fullPath, options2, handlers) => {
89340
89345
  };
89341
89346
  };
89342
89347
  var FsWatchFileInstances = /* @__PURE__ */ new Map();
89343
- var setFsWatchFileListener = (path21, fullPath, options2, handlers) => {
89348
+ var setFsWatchFileListener = (path22, fullPath, options2, handlers) => {
89344
89349
  const { listener, rawEmitter } = handlers;
89345
89350
  let cont = FsWatchFileInstances.get(fullPath);
89346
89351
  const copts = cont && cont.options;
@@ -89362,7 +89367,7 @@ var setFsWatchFileListener = (path21, fullPath, options2, handlers) => {
89362
89367
  });
89363
89368
  const currmtime = curr.mtimeMs;
89364
89369
  if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) {
89365
- foreach(cont.listeners, (listener2) => listener2(path21, curr));
89370
+ foreach(cont.listeners, (listener2) => listener2(path22, curr));
89366
89371
  }
89367
89372
  })
89368
89373
  };
@@ -89392,13 +89397,13 @@ var NodeFsHandler = class {
89392
89397
  * @param listener on fs change
89393
89398
  * @returns closer for the watcher instance
89394
89399
  */
89395
- _watchWithNodeFs(path21, listener) {
89400
+ _watchWithNodeFs(path22, listener) {
89396
89401
  const opts = this.fsw.options;
89397
- const directory = sp.dirname(path21);
89398
- const basename3 = sp.basename(path21);
89402
+ const directory = sp.dirname(path22);
89403
+ const basename3 = sp.basename(path22);
89399
89404
  const parent = this.fsw._getWatchedDir(directory);
89400
89405
  parent.add(basename3);
89401
- const absolutePath = sp.resolve(path21);
89406
+ const absolutePath = sp.resolve(path22);
89402
89407
  const options2 = {
89403
89408
  persistent: opts.persistent
89404
89409
  };
@@ -89408,12 +89413,12 @@ var NodeFsHandler = class {
89408
89413
  if (opts.usePolling) {
89409
89414
  const enableBin = opts.interval !== opts.binaryInterval;
89410
89415
  options2.interval = enableBin && isBinaryPath(basename3) ? opts.binaryInterval : opts.interval;
89411
- closer = setFsWatchFileListener(path21, absolutePath, options2, {
89416
+ closer = setFsWatchFileListener(path22, absolutePath, options2, {
89412
89417
  listener,
89413
89418
  rawEmitter: this.fsw._emitRaw
89414
89419
  });
89415
89420
  } else {
89416
- closer = setFsWatchListener(path21, absolutePath, options2, {
89421
+ closer = setFsWatchListener(path22, absolutePath, options2, {
89417
89422
  listener,
89418
89423
  errHandler: this._boundHandleError,
89419
89424
  rawEmitter: this.fsw._emitRaw
@@ -89435,7 +89440,7 @@ var NodeFsHandler = class {
89435
89440
  let prevStats = stats;
89436
89441
  if (parent.has(basename3))
89437
89442
  return;
89438
- const listener = async (path21, newStats) => {
89443
+ const listener = async (path22, newStats) => {
89439
89444
  if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5))
89440
89445
  return;
89441
89446
  if (!newStats || newStats.mtimeMs === 0) {
@@ -89449,11 +89454,11 @@ var NodeFsHandler = class {
89449
89454
  this.fsw._emit(EV.CHANGE, file, newStats2);
89450
89455
  }
89451
89456
  if ((isMacos || isLinux || isFreeBSD) && prevStats.ino !== newStats2.ino) {
89452
- this.fsw._closeFile(path21);
89457
+ this.fsw._closeFile(path22);
89453
89458
  prevStats = newStats2;
89454
89459
  const closer2 = this._watchWithNodeFs(file, listener);
89455
89460
  if (closer2)
89456
- this.fsw._addPathCloser(path21, closer2);
89461
+ this.fsw._addPathCloser(path22, closer2);
89457
89462
  } else {
89458
89463
  prevStats = newStats2;
89459
89464
  }
@@ -89485,7 +89490,7 @@ var NodeFsHandler = class {
89485
89490
  * @param item basename of this item
89486
89491
  * @returns true if no more processing is needed for this entry.
89487
89492
  */
89488
- async _handleSymlink(entry, directory, path21, item) {
89493
+ async _handleSymlink(entry, directory, path22, item) {
89489
89494
  if (this.fsw.closed) {
89490
89495
  return;
89491
89496
  }
@@ -89495,7 +89500,7 @@ var NodeFsHandler = class {
89495
89500
  this.fsw._incrReadyCount();
89496
89501
  let linkPath;
89497
89502
  try {
89498
- linkPath = await fsrealpath(path21);
89503
+ linkPath = await fsrealpath(path22);
89499
89504
  } catch (e) {
89500
89505
  this.fsw._emitReady();
89501
89506
  return true;
@@ -89505,12 +89510,12 @@ var NodeFsHandler = class {
89505
89510
  if (dir.has(item)) {
89506
89511
  if (this.fsw._symlinkPaths.get(full) !== linkPath) {
89507
89512
  this.fsw._symlinkPaths.set(full, linkPath);
89508
- this.fsw._emit(EV.CHANGE, path21, entry.stats);
89513
+ this.fsw._emit(EV.CHANGE, path22, entry.stats);
89509
89514
  }
89510
89515
  } else {
89511
89516
  dir.add(item);
89512
89517
  this.fsw._symlinkPaths.set(full, linkPath);
89513
- this.fsw._emit(EV.ADD, path21, entry.stats);
89518
+ this.fsw._emit(EV.ADD, path22, entry.stats);
89514
89519
  }
89515
89520
  this.fsw._emitReady();
89516
89521
  return true;
@@ -89540,9 +89545,9 @@ var NodeFsHandler = class {
89540
89545
  return;
89541
89546
  }
89542
89547
  const item = entry.path;
89543
- let path21 = sp.join(directory, item);
89548
+ let path22 = sp.join(directory, item);
89544
89549
  current.add(item);
89545
- if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path21, item)) {
89550
+ if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path22, item)) {
89546
89551
  return;
89547
89552
  }
89548
89553
  if (this.fsw.closed) {
@@ -89551,8 +89556,8 @@ var NodeFsHandler = class {
89551
89556
  }
89552
89557
  if (item === target || !target && !previous.has(item)) {
89553
89558
  this.fsw._incrReadyCount();
89554
- path21 = sp.join(dir, sp.relative(dir, path21));
89555
- this._addToNodeFs(path21, initialAdd, wh, depth + 1);
89559
+ path22 = sp.join(dir, sp.relative(dir, path22));
89560
+ this._addToNodeFs(path22, initialAdd, wh, depth + 1);
89556
89561
  }
89557
89562
  }).on(EV.ERROR, this._boundHandleError);
89558
89563
  return new Promise((resolve3, reject) => {
@@ -89621,13 +89626,13 @@ var NodeFsHandler = class {
89621
89626
  * @param depth Child path actually targeted for watch
89622
89627
  * @param target Child path actually targeted for watch
89623
89628
  */
89624
- async _addToNodeFs(path21, initialAdd, priorWh, depth, target) {
89629
+ async _addToNodeFs(path22, initialAdd, priorWh, depth, target) {
89625
89630
  const ready = this.fsw._emitReady;
89626
- if (this.fsw._isIgnored(path21) || this.fsw.closed) {
89631
+ if (this.fsw._isIgnored(path22) || this.fsw.closed) {
89627
89632
  ready();
89628
89633
  return false;
89629
89634
  }
89630
- const wh = this.fsw._getWatchHelpers(path21);
89635
+ const wh = this.fsw._getWatchHelpers(path22);
89631
89636
  if (priorWh) {
89632
89637
  wh.filterPath = (entry) => priorWh.filterPath(entry);
89633
89638
  wh.filterDir = (entry) => priorWh.filterDir(entry);
@@ -89643,8 +89648,8 @@ var NodeFsHandler = class {
89643
89648
  const follow = this.fsw.options.followSymlinks;
89644
89649
  let closer;
89645
89650
  if (stats.isDirectory()) {
89646
- const absPath = sp.resolve(path21);
89647
- const targetPath = follow ? await fsrealpath(path21) : path21;
89651
+ const absPath = sp.resolve(path22);
89652
+ const targetPath = follow ? await fsrealpath(path22) : path22;
89648
89653
  if (this.fsw.closed)
89649
89654
  return;
89650
89655
  closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath);
@@ -89654,29 +89659,29 @@ var NodeFsHandler = class {
89654
89659
  this.fsw._symlinkPaths.set(absPath, targetPath);
89655
89660
  }
89656
89661
  } else if (stats.isSymbolicLink()) {
89657
- const targetPath = follow ? await fsrealpath(path21) : path21;
89662
+ const targetPath = follow ? await fsrealpath(path22) : path22;
89658
89663
  if (this.fsw.closed)
89659
89664
  return;
89660
89665
  const parent = sp.dirname(wh.watchPath);
89661
89666
  this.fsw._getWatchedDir(parent).add(wh.watchPath);
89662
89667
  this.fsw._emit(EV.ADD, wh.watchPath, stats);
89663
- closer = await this._handleDir(parent, stats, initialAdd, depth, path21, wh, targetPath);
89668
+ closer = await this._handleDir(parent, stats, initialAdd, depth, path22, wh, targetPath);
89664
89669
  if (this.fsw.closed)
89665
89670
  return;
89666
89671
  if (targetPath !== void 0) {
89667
- this.fsw._symlinkPaths.set(sp.resolve(path21), targetPath);
89672
+ this.fsw._symlinkPaths.set(sp.resolve(path22), targetPath);
89668
89673
  }
89669
89674
  } else {
89670
89675
  closer = this._handleFile(wh.watchPath, stats, initialAdd);
89671
89676
  }
89672
89677
  ready();
89673
89678
  if (closer)
89674
- this.fsw._addPathCloser(path21, closer);
89679
+ this.fsw._addPathCloser(path22, closer);
89675
89680
  return false;
89676
89681
  } catch (error) {
89677
89682
  if (this.fsw._handleError(error)) {
89678
89683
  ready();
89679
- return path21;
89684
+ return path22;
89680
89685
  }
89681
89686
  }
89682
89687
  }
@@ -89719,24 +89724,24 @@ function createPattern(matcher) {
89719
89724
  }
89720
89725
  return () => false;
89721
89726
  }
89722
- function normalizePath(path21) {
89723
- if (typeof path21 !== "string")
89727
+ function normalizePath(path22) {
89728
+ if (typeof path22 !== "string")
89724
89729
  throw new Error("string expected");
89725
- path21 = sp2.normalize(path21);
89726
- path21 = path21.replace(/\\/g, "/");
89730
+ path22 = sp2.normalize(path22);
89731
+ path22 = path22.replace(/\\/g, "/");
89727
89732
  let prepend = false;
89728
- if (path21.startsWith("//"))
89733
+ if (path22.startsWith("//"))
89729
89734
  prepend = true;
89730
- path21 = path21.replace(DOUBLE_SLASH_RE, "/");
89735
+ path22 = path22.replace(DOUBLE_SLASH_RE, "/");
89731
89736
  if (prepend)
89732
- path21 = "/" + path21;
89733
- return path21;
89737
+ path22 = "/" + path22;
89738
+ return path22;
89734
89739
  }
89735
89740
  function matchPatterns(patterns, testString, stats) {
89736
- const path21 = normalizePath(testString);
89741
+ const path22 = normalizePath(testString);
89737
89742
  for (let index = 0; index < patterns.length; index++) {
89738
89743
  const pattern = patterns[index];
89739
- if (pattern(path21, stats)) {
89744
+ if (pattern(path22, stats)) {
89740
89745
  return true;
89741
89746
  }
89742
89747
  }
@@ -89774,19 +89779,19 @@ var toUnix = (string) => {
89774
89779
  }
89775
89780
  return str;
89776
89781
  };
89777
- var normalizePathToUnix = (path21) => toUnix(sp2.normalize(toUnix(path21)));
89778
- var normalizeIgnored = (cwd = "") => (path21) => {
89779
- if (typeof path21 === "string") {
89780
- return normalizePathToUnix(sp2.isAbsolute(path21) ? path21 : sp2.join(cwd, path21));
89782
+ var normalizePathToUnix = (path22) => toUnix(sp2.normalize(toUnix(path22)));
89783
+ var normalizeIgnored = (cwd = "") => (path22) => {
89784
+ if (typeof path22 === "string") {
89785
+ return normalizePathToUnix(sp2.isAbsolute(path22) ? path22 : sp2.join(cwd, path22));
89781
89786
  } else {
89782
- return path21;
89787
+ return path22;
89783
89788
  }
89784
89789
  };
89785
- var getAbsolutePath = (path21, cwd) => {
89786
- if (sp2.isAbsolute(path21)) {
89787
- return path21;
89790
+ var getAbsolutePath = (path22, cwd) => {
89791
+ if (sp2.isAbsolute(path22)) {
89792
+ return path22;
89788
89793
  }
89789
- return sp2.join(cwd, path21);
89794
+ return sp2.join(cwd, path22);
89790
89795
  };
89791
89796
  var EMPTY_SET = Object.freeze(/* @__PURE__ */ new Set());
89792
89797
  var DirEntry = class {
@@ -89851,10 +89856,10 @@ var WatchHelper = class {
89851
89856
  dirParts;
89852
89857
  followSymlinks;
89853
89858
  statMethod;
89854
- constructor(path21, follow, fsw) {
89859
+ constructor(path22, follow, fsw) {
89855
89860
  this.fsw = fsw;
89856
- const watchPath = path21;
89857
- this.path = path21 = path21.replace(REPLACER_RE, "");
89861
+ const watchPath = path22;
89862
+ this.path = path22 = path22.replace(REPLACER_RE, "");
89858
89863
  this.watchPath = watchPath;
89859
89864
  this.fullWatchPath = sp2.resolve(watchPath);
89860
89865
  this.dirParts = [];
@@ -89994,20 +89999,20 @@ var FSWatcher = class extends EventEmitter2 {
89994
89999
  this._closePromise = void 0;
89995
90000
  let paths = unifyPaths(paths_);
89996
90001
  if (cwd) {
89997
- paths = paths.map((path21) => {
89998
- const absPath = getAbsolutePath(path21, cwd);
90002
+ paths = paths.map((path22) => {
90003
+ const absPath = getAbsolutePath(path22, cwd);
89999
90004
  return absPath;
90000
90005
  });
90001
90006
  }
90002
- paths.forEach((path21) => {
90003
- this._removeIgnoredPath(path21);
90007
+ paths.forEach((path22) => {
90008
+ this._removeIgnoredPath(path22);
90004
90009
  });
90005
90010
  this._userIgnored = void 0;
90006
90011
  if (!this._readyCount)
90007
90012
  this._readyCount = 0;
90008
90013
  this._readyCount += paths.length;
90009
- Promise.all(paths.map(async (path21) => {
90010
- const res = await this._nodeFsHandler._addToNodeFs(path21, !_internal, void 0, 0, _origAdd);
90014
+ Promise.all(paths.map(async (path22) => {
90015
+ const res = await this._nodeFsHandler._addToNodeFs(path22, !_internal, void 0, 0, _origAdd);
90011
90016
  if (res)
90012
90017
  this._emitReady();
90013
90018
  return res;
@@ -90029,17 +90034,17 @@ var FSWatcher = class extends EventEmitter2 {
90029
90034
  return this;
90030
90035
  const paths = unifyPaths(paths_);
90031
90036
  const { cwd } = this.options;
90032
- paths.forEach((path21) => {
90033
- if (!sp2.isAbsolute(path21) && !this._closers.has(path21)) {
90037
+ paths.forEach((path22) => {
90038
+ if (!sp2.isAbsolute(path22) && !this._closers.has(path22)) {
90034
90039
  if (cwd)
90035
- path21 = sp2.join(cwd, path21);
90036
- path21 = sp2.resolve(path21);
90040
+ path22 = sp2.join(cwd, path22);
90041
+ path22 = sp2.resolve(path22);
90037
90042
  }
90038
- this._closePath(path21);
90039
- this._addIgnoredPath(path21);
90040
- if (this._watched.has(path21)) {
90043
+ this._closePath(path22);
90044
+ this._addIgnoredPath(path22);
90045
+ if (this._watched.has(path22)) {
90041
90046
  this._addIgnoredPath({
90042
- path: path21,
90047
+ path: path22,
90043
90048
  recursive: true
90044
90049
  });
90045
90050
  }
@@ -90103,38 +90108,38 @@ var FSWatcher = class extends EventEmitter2 {
90103
90108
  * @param stats arguments to be passed with event
90104
90109
  * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag
90105
90110
  */
90106
- async _emit(event, path21, stats) {
90111
+ async _emit(event, path22, stats) {
90107
90112
  if (this.closed)
90108
90113
  return;
90109
90114
  const opts = this.options;
90110
90115
  if (isWindows)
90111
- path21 = sp2.normalize(path21);
90116
+ path22 = sp2.normalize(path22);
90112
90117
  if (opts.cwd)
90113
- path21 = sp2.relative(opts.cwd, path21);
90114
- const args = [path21];
90118
+ path22 = sp2.relative(opts.cwd, path22);
90119
+ const args = [path22];
90115
90120
  if (stats != null)
90116
90121
  args.push(stats);
90117
90122
  const awf = opts.awaitWriteFinish;
90118
90123
  let pw;
90119
- if (awf && (pw = this._pendingWrites.get(path21))) {
90124
+ if (awf && (pw = this._pendingWrites.get(path22))) {
90120
90125
  pw.lastChange = /* @__PURE__ */ new Date();
90121
90126
  return this;
90122
90127
  }
90123
90128
  if (opts.atomic) {
90124
90129
  if (event === EVENTS.UNLINK) {
90125
- this._pendingUnlinks.set(path21, [event, ...args]);
90130
+ this._pendingUnlinks.set(path22, [event, ...args]);
90126
90131
  setTimeout(() => {
90127
- this._pendingUnlinks.forEach((entry, path22) => {
90132
+ this._pendingUnlinks.forEach((entry, path23) => {
90128
90133
  this.emit(...entry);
90129
90134
  this.emit(EVENTS.ALL, ...entry);
90130
- this._pendingUnlinks.delete(path22);
90135
+ this._pendingUnlinks.delete(path23);
90131
90136
  });
90132
90137
  }, typeof opts.atomic === "number" ? opts.atomic : 100);
90133
90138
  return this;
90134
90139
  }
90135
- if (event === EVENTS.ADD && this._pendingUnlinks.has(path21)) {
90140
+ if (event === EVENTS.ADD && this._pendingUnlinks.has(path22)) {
90136
90141
  event = EVENTS.CHANGE;
90137
- this._pendingUnlinks.delete(path21);
90142
+ this._pendingUnlinks.delete(path22);
90138
90143
  }
90139
90144
  }
90140
90145
  if (awf && (event === EVENTS.ADD || event === EVENTS.CHANGE) && this._readyEmitted) {
@@ -90152,16 +90157,16 @@ var FSWatcher = class extends EventEmitter2 {
90152
90157
  this.emitWithAll(event, args);
90153
90158
  }
90154
90159
  };
90155
- this._awaitWriteFinish(path21, awf.stabilityThreshold, event, awfEmit);
90160
+ this._awaitWriteFinish(path22, awf.stabilityThreshold, event, awfEmit);
90156
90161
  return this;
90157
90162
  }
90158
90163
  if (event === EVENTS.CHANGE) {
90159
- const isThrottled = !this._throttle(EVENTS.CHANGE, path21, 50);
90164
+ const isThrottled = !this._throttle(EVENTS.CHANGE, path22, 50);
90160
90165
  if (isThrottled)
90161
90166
  return this;
90162
90167
  }
90163
90168
  if (opts.alwaysStat && stats === void 0 && (event === EVENTS.ADD || event === EVENTS.ADD_DIR || event === EVENTS.CHANGE)) {
90164
- const fullPath = opts.cwd ? sp2.join(opts.cwd, path21) : path21;
90169
+ const fullPath = opts.cwd ? sp2.join(opts.cwd, path22) : path22;
90165
90170
  let stats2;
90166
90171
  try {
90167
90172
  stats2 = await stat3(fullPath);
@@ -90192,23 +90197,23 @@ var FSWatcher = class extends EventEmitter2 {
90192
90197
  * @param timeout duration of time to suppress duplicate actions
90193
90198
  * @returns tracking object or false if action should be suppressed
90194
90199
  */
90195
- _throttle(actionType, path21, timeout) {
90200
+ _throttle(actionType, path22, timeout) {
90196
90201
  if (!this._throttled.has(actionType)) {
90197
90202
  this._throttled.set(actionType, /* @__PURE__ */ new Map());
90198
90203
  }
90199
90204
  const action = this._throttled.get(actionType);
90200
90205
  if (!action)
90201
90206
  throw new Error("invalid throttle");
90202
- const actionPath = action.get(path21);
90207
+ const actionPath = action.get(path22);
90203
90208
  if (actionPath) {
90204
90209
  actionPath.count++;
90205
90210
  return false;
90206
90211
  }
90207
90212
  let timeoutObject;
90208
90213
  const clear = () => {
90209
- const item = action.get(path21);
90214
+ const item = action.get(path22);
90210
90215
  const count2 = item ? item.count : 0;
90211
- action.delete(path21);
90216
+ action.delete(path22);
90212
90217
  clearTimeout(timeoutObject);
90213
90218
  if (item)
90214
90219
  clearTimeout(item.timeoutObject);
@@ -90216,7 +90221,7 @@ var FSWatcher = class extends EventEmitter2 {
90216
90221
  };
90217
90222
  timeoutObject = setTimeout(clear, timeout);
90218
90223
  const thr = { timeoutObject, clear, count: 0 };
90219
- action.set(path21, thr);
90224
+ action.set(path22, thr);
90220
90225
  return thr;
90221
90226
  }
90222
90227
  _incrReadyCount() {
@@ -90230,44 +90235,44 @@ var FSWatcher = class extends EventEmitter2 {
90230
90235
  * @param event
90231
90236
  * @param awfEmit Callback to be called when ready for event to be emitted.
90232
90237
  */
90233
- _awaitWriteFinish(path21, threshold, event, awfEmit) {
90238
+ _awaitWriteFinish(path22, threshold, event, awfEmit) {
90234
90239
  const awf = this.options.awaitWriteFinish;
90235
90240
  if (typeof awf !== "object")
90236
90241
  return;
90237
90242
  const pollInterval = awf.pollInterval;
90238
90243
  let timeoutHandler;
90239
- let fullPath = path21;
90240
- if (this.options.cwd && !sp2.isAbsolute(path21)) {
90241
- fullPath = sp2.join(this.options.cwd, path21);
90244
+ let fullPath = path22;
90245
+ if (this.options.cwd && !sp2.isAbsolute(path22)) {
90246
+ fullPath = sp2.join(this.options.cwd, path22);
90242
90247
  }
90243
90248
  const now = /* @__PURE__ */ new Date();
90244
90249
  const writes = this._pendingWrites;
90245
90250
  function awaitWriteFinishFn(prevStat) {
90246
90251
  statcb(fullPath, (err, curStat) => {
90247
- if (err || !writes.has(path21)) {
90252
+ if (err || !writes.has(path22)) {
90248
90253
  if (err && err.code !== "ENOENT")
90249
90254
  awfEmit(err);
90250
90255
  return;
90251
90256
  }
90252
90257
  const now2 = Number(/* @__PURE__ */ new Date());
90253
90258
  if (prevStat && curStat.size !== prevStat.size) {
90254
- writes.get(path21).lastChange = now2;
90259
+ writes.get(path22).lastChange = now2;
90255
90260
  }
90256
- const pw = writes.get(path21);
90261
+ const pw = writes.get(path22);
90257
90262
  const df = now2 - pw.lastChange;
90258
90263
  if (df >= threshold) {
90259
- writes.delete(path21);
90264
+ writes.delete(path22);
90260
90265
  awfEmit(void 0, curStat);
90261
90266
  } else {
90262
90267
  timeoutHandler = setTimeout(awaitWriteFinishFn, pollInterval, curStat);
90263
90268
  }
90264
90269
  });
90265
90270
  }
90266
- if (!writes.has(path21)) {
90267
- writes.set(path21, {
90271
+ if (!writes.has(path22)) {
90272
+ writes.set(path22, {
90268
90273
  lastChange: now,
90269
90274
  cancelWait: () => {
90270
- writes.delete(path21);
90275
+ writes.delete(path22);
90271
90276
  clearTimeout(timeoutHandler);
90272
90277
  return event;
90273
90278
  }
@@ -90278,8 +90283,8 @@ var FSWatcher = class extends EventEmitter2 {
90278
90283
  /**
90279
90284
  * Determines whether user has asked to ignore this path.
90280
90285
  */
90281
- _isIgnored(path21, stats) {
90282
- if (this.options.atomic && DOT_RE.test(path21))
90286
+ _isIgnored(path22, stats) {
90287
+ if (this.options.atomic && DOT_RE.test(path22))
90283
90288
  return true;
90284
90289
  if (!this._userIgnored) {
90285
90290
  const { cwd } = this.options;
@@ -90289,17 +90294,17 @@ var FSWatcher = class extends EventEmitter2 {
90289
90294
  const list3 = [...ignoredPaths.map(normalizeIgnored(cwd)), ...ignored];
90290
90295
  this._userIgnored = anymatch(list3, void 0);
90291
90296
  }
90292
- return this._userIgnored(path21, stats);
90297
+ return this._userIgnored(path22, stats);
90293
90298
  }
90294
- _isntIgnored(path21, stat4) {
90295
- return !this._isIgnored(path21, stat4);
90299
+ _isntIgnored(path22, stat4) {
90300
+ return !this._isIgnored(path22, stat4);
90296
90301
  }
90297
90302
  /**
90298
90303
  * Provides a set of common helpers and properties relating to symlink handling.
90299
90304
  * @param path file or directory pattern being watched
90300
90305
  */
90301
- _getWatchHelpers(path21) {
90302
- return new WatchHelper(path21, this.options.followSymlinks, this);
90306
+ _getWatchHelpers(path22) {
90307
+ return new WatchHelper(path22, this.options.followSymlinks, this);
90303
90308
  }
90304
90309
  // Directory helpers
90305
90310
  // -----------------
@@ -90331,63 +90336,63 @@ var FSWatcher = class extends EventEmitter2 {
90331
90336
  * @param item base path of item/directory
90332
90337
  */
90333
90338
  _remove(directory, item, isDirectory) {
90334
- const path21 = sp2.join(directory, item);
90335
- const fullPath = sp2.resolve(path21);
90336
- isDirectory = isDirectory != null ? isDirectory : this._watched.has(path21) || this._watched.has(fullPath);
90337
- if (!this._throttle("remove", path21, 100))
90339
+ const path22 = sp2.join(directory, item);
90340
+ const fullPath = sp2.resolve(path22);
90341
+ isDirectory = isDirectory != null ? isDirectory : this._watched.has(path22) || this._watched.has(fullPath);
90342
+ if (!this._throttle("remove", path22, 100))
90338
90343
  return;
90339
90344
  if (!isDirectory && this._watched.size === 1) {
90340
90345
  this.add(directory, item, true);
90341
90346
  }
90342
- const wp = this._getWatchedDir(path21);
90347
+ const wp = this._getWatchedDir(path22);
90343
90348
  const nestedDirectoryChildren = wp.getChildren();
90344
- nestedDirectoryChildren.forEach((nested) => this._remove(path21, nested));
90349
+ nestedDirectoryChildren.forEach((nested) => this._remove(path22, nested));
90345
90350
  const parent = this._getWatchedDir(directory);
90346
90351
  const wasTracked = parent.has(item);
90347
90352
  parent.remove(item);
90348
90353
  if (this._symlinkPaths.has(fullPath)) {
90349
90354
  this._symlinkPaths.delete(fullPath);
90350
90355
  }
90351
- let relPath = path21;
90356
+ let relPath = path22;
90352
90357
  if (this.options.cwd)
90353
- relPath = sp2.relative(this.options.cwd, path21);
90358
+ relPath = sp2.relative(this.options.cwd, path22);
90354
90359
  if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) {
90355
90360
  const event = this._pendingWrites.get(relPath).cancelWait();
90356
90361
  if (event === EVENTS.ADD)
90357
90362
  return;
90358
90363
  }
90359
- this._watched.delete(path21);
90364
+ this._watched.delete(path22);
90360
90365
  this._watched.delete(fullPath);
90361
90366
  const eventName = isDirectory ? EVENTS.UNLINK_DIR : EVENTS.UNLINK;
90362
- if (wasTracked && !this._isIgnored(path21))
90363
- this._emit(eventName, path21);
90364
- this._closePath(path21);
90367
+ if (wasTracked && !this._isIgnored(path22))
90368
+ this._emit(eventName, path22);
90369
+ this._closePath(path22);
90365
90370
  }
90366
90371
  /**
90367
90372
  * Closes all watchers for a path
90368
90373
  */
90369
- _closePath(path21) {
90370
- this._closeFile(path21);
90371
- const dir = sp2.dirname(path21);
90372
- this._getWatchedDir(dir).remove(sp2.basename(path21));
90374
+ _closePath(path22) {
90375
+ this._closeFile(path22);
90376
+ const dir = sp2.dirname(path22);
90377
+ this._getWatchedDir(dir).remove(sp2.basename(path22));
90373
90378
  }
90374
90379
  /**
90375
90380
  * Closes only file-specific watchers
90376
90381
  */
90377
- _closeFile(path21) {
90378
- const closers = this._closers.get(path21);
90382
+ _closeFile(path22) {
90383
+ const closers = this._closers.get(path22);
90379
90384
  if (!closers)
90380
90385
  return;
90381
90386
  closers.forEach((closer) => closer());
90382
- this._closers.delete(path21);
90387
+ this._closers.delete(path22);
90383
90388
  }
90384
- _addPathCloser(path21, closer) {
90389
+ _addPathCloser(path22, closer) {
90385
90390
  if (!closer)
90386
90391
  return;
90387
- let list3 = this._closers.get(path21);
90392
+ let list3 = this._closers.get(path22);
90388
90393
  if (!list3) {
90389
90394
  list3 = [];
90390
- this._closers.set(path21, list3);
90395
+ this._closers.set(path22, list3);
90391
90396
  }
90392
90397
  list3.push(closer);
90393
90398
  }
@@ -92221,7 +92226,7 @@ doctor failed: ${err instanceof Error ? err.message : String(err)}
92221
92226
  }
92222
92227
 
92223
92228
  // src/commands/mount.ts
92224
- import path19 from "node:path";
92229
+ import path20 from "node:path";
92225
92230
  import fs15 from "node:fs";
92226
92231
 
92227
92232
  // src/mount/manifest.ts
@@ -92307,9 +92312,19 @@ function renderDockerOverlay(mounts, opts) {
92307
92312
  `;
92308
92313
  }
92309
92314
 
92315
+ // src/mount/overlay-path.ts
92316
+ import path18 from "node:path";
92317
+ function resolveOverlayPath(opts) {
92318
+ if (!opts.configOverride) {
92319
+ return path18.join(opts.stateDir, "dev-mount-overlay.yml");
92320
+ }
92321
+ if (path18.isAbsolute(opts.configOverride)) return opts.configOverride;
92322
+ return path18.resolve(opts.workspaceRoot, opts.configOverride);
92323
+ }
92324
+
92310
92325
  // src/mount/symlinks.ts
92311
92326
  import fs14 from "node:fs";
92312
- import path18 from "node:path";
92327
+ import path19 from "node:path";
92313
92328
  function applyManagedSymlinks(workspaceRoot, mounts, strategy) {
92314
92329
  const report = { created: [], skipped: [] };
92315
92330
  for (const m of mounts) {
@@ -92332,7 +92347,7 @@ function applyManagedSymlinks(workspaceRoot, mounts, strategy) {
92332
92347
  }
92333
92348
  } catch {
92334
92349
  }
92335
- fs14.mkdirSync(path18.dirname(linkPath), { recursive: true });
92350
+ fs14.mkdirSync(path19.dirname(linkPath), { recursive: true });
92336
92351
  fs14.symlinkSync(m.hostPath, linkPath);
92337
92352
  report.created.push(linkPath);
92338
92353
  }
@@ -92450,9 +92465,13 @@ async function resolveContext(opts) {
92450
92465
  process.exit(1);
92451
92466
  }
92452
92467
  const providerMounts = await profile?.mountCandidatesProvider?.() ?? [];
92453
- const overlayPath = path19.resolve(workspaceRoot, config.mount.overlayPath);
92454
92468
  const paths = getStatePaths(workspaceRoot, { appName: config.appName });
92455
- const manifestPath2 = path19.join(paths.stateDir, config.mount.manifestFile);
92469
+ const overlayPath = resolveOverlayPath({
92470
+ stateDir: paths.stateDir,
92471
+ workspaceRoot,
92472
+ configOverride: config.mount.overlayPath
92473
+ });
92474
+ const manifestPath2 = path20.join(paths.stateDir, config.mount.manifestFile);
92456
92475
  return {
92457
92476
  configPath,
92458
92477
  workspaceRoot,
@@ -92514,7 +92533,7 @@ async function mountCommand(opts = {}) {
92514
92533
  return;
92515
92534
  }
92516
92535
  }
92517
- fs15.mkdirSync(path19.dirname(overlayPath), { recursive: true });
92536
+ fs15.mkdirSync(path20.dirname(overlayPath), { recursive: true });
92518
92537
  fs15.writeFileSync(overlayPath, renderDockerOverlay(selected, { service }), "utf8");
92519
92538
  process.stdout.write(`dev-cockpit mount: wrote ${overlayPath}
92520
92539
  `);
@@ -92546,7 +92565,7 @@ async function mountCommand(opts = {}) {
92546
92565
  await profile.onMountApply(hookCtx);
92547
92566
  } else {
92548
92567
  process.stdout.write(
92549
- ` Apply with: docker compose -f <your-compose>.yml -f ${path19.basename(overlayPath)} up -d
92568
+ ` Apply with: docker compose -f <your-compose>.yml -f ${path20.basename(overlayPath)} up -d
92550
92569
  `
92551
92570
  );
92552
92571
  }
@@ -92656,9 +92675,9 @@ async function mountClearCommand(opts = {}) {
92656
92675
  // src/commands/migrate-config.ts
92657
92676
  var import_yaml2 = __toESM(require_dist(), 1);
92658
92677
  import fs16 from "node:fs";
92659
- import path20 from "node:path";
92678
+ import path21 from "node:path";
92660
92679
  async function migrateConfigCommand(opts = {}) {
92661
- const configPath = path20.resolve(opts.config ?? "cockpit.yaml");
92680
+ const configPath = path21.resolve(opts.config ?? "cockpit.yaml");
92662
92681
  if (!fs16.existsSync(configPath)) {
92663
92682
  process.stderr.write(`dev-cockpit migrate-config: no file at ${configPath}.
92664
92683
  `);
@@ -92898,6 +92917,7 @@ export {
92898
92917
  renderWizardYaml,
92899
92918
  resolveDocsRoot,
92900
92919
  resolveNotify,
92920
+ resolveOverlayPath,
92901
92921
  restartDockerService,
92902
92922
  runAllLints,
92903
92923
  runChecks,