fyn 2.1.0 → 2.1.1

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/fyn.js CHANGED
@@ -125,14 +125,13 @@ const Promise = __webpack_require__("./node_modules/.f/_/aveazul/1.1.0/aveazul/c
125
125
  const Fyn = __webpack_require__("./lib/fyn.ts");
126
126
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
127
127
  const PkgInstaller = __webpack_require__("./lib/pkg-installer.ts");
128
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
128
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
129
129
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
130
130
  const logger = __webpack_require__("./lib/logger.ts");
131
131
  const PromiseQueue = __webpack_require__("./lib/util/promise-queue.ts");
132
132
  const sortObjKeys = __webpack_require__("./lib/util/sort-obj-keys.ts");
133
133
  const fyntil = __webpack_require__("./lib/util/fyntil.ts");
134
134
  const showStat = __webpack_require__("./cli/show-stat.ts");
135
- const showAudit = __webpack_require__("./cli/show-audit.ts");
136
135
  const { runNpmScript, addNpmLifecycle } = __webpack_require__("./lib/util/run-npm-script.ts");
137
136
  const { initEnv, makeNpmEnv } = __webpack_require__("./lib/util/make-npm-env.ts");
138
137
  const runScript = __webpack_require__("./node_modules/.f/_/@npmcli/run-script/10.0.2/@npmcli/run-script/lib/run-script.js");
@@ -144,7 +143,7 @@ const myPkg = __webpack_require__("./cli/mypkg.ts");
144
143
  const { cleanErrorStack } = __webpack_require__("./node_modules/.f/_/@jchip/error/1.0.3/@jchip/error/dist/index.js");
145
144
  const { setupNodeGypEnv } = __webpack_require__("./lib/util/setup-node-gyp.ts");
146
145
  const hardLinkDir = __webpack_require__("./lib/util/hard-link-dir.ts");
147
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
146
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
148
147
  function checkNewVersion(npmConfig) {
149
148
  checkPkgNewVersionEngine({
150
149
  pkg: _.pick(myPkg, ["name", "version"]),
@@ -438,11 +437,10 @@ class FynCli {
438
437
  * 3. postinstall
439
438
  * 4. prepare
440
439
  */
441
- install(argv = {}) {
440
+ install() {
442
441
  let failure;
443
442
  let installLocked;
444
443
  const start = Date.now();
445
- const runAudit = argv.opts?.audit !== false;
446
444
  return Promise.try(() => this.fyn._initializePkg()).then(async () => {
447
445
  checkNewVersion(this.fyn._options);
448
446
  if (!this.fyn._changeProdMode && !this.fyn._options.forceInstall && this.fyn._installConfig.time) {
@@ -530,17 +528,6 @@ class FynCli {
530
528
  chalk.green("complete in total"),
531
529
  chalk.magenta(`${(end - start) / 1e3}`) + "secs"
532
530
  );
533
- if (runAudit) {
534
- try {
535
- await showAudit(this.fyn, {
536
- colors: this.fyn._options.colors !== false,
537
- summary: true
538
- // Show brief summary, not full report
539
- });
540
- } catch (err) {
541
- logger.warn("Security audit failed:", err.message);
542
- }
543
- }
544
531
  }).catch((err) => {
545
532
  if (err.message === "No Change") {
546
533
  logger.info(`No changes detected since last fyn install - nothing to be done.
@@ -568,17 +555,6 @@ class FynCli {
568
555
  return this._opts.saveLogs && this.saveLogs(this._opts.saveLogs);
569
556
  });
570
557
  }
571
- audit(argv) {
572
- const opts = {
573
- json: argv.opts?.json || false,
574
- omit: argv.opts?.omit || [],
575
- auditLevel: argv.opts?.auditLevel || "info",
576
- noCache: argv.opts?.noCache || false
577
- };
578
- return showAudit(this.fyn, opts).finally(() => {
579
- return this._opts.saveLogs && this.saveLogs(this._opts.saveLogs);
580
- });
581
- }
582
558
  async runScript(pkg, script, env, scriptArgs = []) {
583
559
  const config = (x) => this.fyn.allrc[x];
584
560
  const options = {
@@ -1029,7 +1005,7 @@ const commands = {
1029
1005
  desc: "Install modules",
1030
1006
  async exec(cmd) {
1031
1007
  const cli = new FynCli(await pickOptions(cmd));
1032
- return cli.install(cmd.jsonMeta);
1008
+ return cli.install();
1033
1009
  },
1034
1010
  options: {
1035
1011
  "run-npm": {
@@ -1040,11 +1016,6 @@ const commands = {
1040
1016
  alias: "fi",
1041
1017
  desc: "force install even if no files changed since last install",
1042
1018
  args: "<flag boolean>"
1043
- },
1044
- audit: {
1045
- desc: "run security audit after install (use --no-audit to skip)",
1046
- args: "<flag boolean>",
1047
- default: true
1048
1019
  }
1049
1020
  }
1050
1021
  },
@@ -1069,7 +1040,7 @@ const commands = {
1069
1040
  config.noStartupInfo = true;
1070
1041
  logger.info("installing...");
1071
1042
  fynTil.resetFynpo();
1072
- return new FynCli(config).install({ opts: { audit: meta.opts.audit } });
1043
+ return new FynCli(config).install();
1073
1044
  });
1074
1045
  },
1075
1046
  options: {
@@ -1139,32 +1110,6 @@ const commands = {
1139
1110
  return new FynCli(await pickOptions(cmd)).stat(cmd.jsonMeta);
1140
1111
  }
1141
1112
  },
1142
- audit: {
1143
- desc: "Check for known security vulnerabilities",
1144
- exec: async (cmd) => {
1145
- return new FynCli(await pickOptions(cmd)).audit(cmd.jsonMeta);
1146
- },
1147
- options: {
1148
- json: {
1149
- alias: "j",
1150
- args: "<flag boolean>",
1151
- desc: "Output audit report as JSON"
1152
- },
1153
- omit: {
1154
- args: "[types string..]",
1155
- desc: "Dependency types to omit (dev, optional, peer)"
1156
- },
1157
- "audit-level": {
1158
- args: "<level string>",
1159
- desc: "Minimum severity level to report (info, low, moderate, high, critical)",
1160
- default: "info"
1161
- },
1162
- "no-cache": {
1163
- args: "<flag boolean>",
1164
- desc: "Bypass the audit cache and fetch fresh data"
1165
- }
1166
- }
1167
- },
1168
1113
  run: {
1169
1114
  desc: "Run a npm script",
1170
1115
  args: "[script string] [args...]",
@@ -1492,95 +1437,6 @@ const myPkg = JSON.parse(Fs.readFileSync(Path.join(__dirname, "../package.json")
1492
1437
  module.exports = myPkg;
1493
1438
 
1494
1439
 
1495
- /***/ }),
1496
-
1497
- /***/ "./cli/show-audit.ts":
1498
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1499
-
1500
- "use strict";
1501
-
1502
- const Promise = __webpack_require__("./node_modules/.f/_/aveazul/1.1.0/aveazul/cjs-entry.cjs");
1503
- const CliLogger = __webpack_require__("./lib/cli-logger.ts");
1504
- const logger = __webpack_require__("./lib/logger.ts");
1505
- const AuditReport = __webpack_require__("./lib/audit/audit-report.ts");
1506
- const AuditFormatter = __webpack_require__("./lib/audit/audit-formatter.ts");
1507
- const PkgStatProvider = __webpack_require__("./lib/pkg-stat-provider.ts");
1508
- const { FETCH_META } = __webpack_require__("./lib/log-items.ts");
1509
- class ShowAudit {
1510
- /**
1511
- * @param {Object} options
1512
- * @param {Object} options.fyn - Fyn instance
1513
- * @param {Object} options.opts - CLI options
1514
- */
1515
- constructor({ fyn, opts }) {
1516
- this._fyn = fyn;
1517
- this._opts = opts || {};
1518
- this._fyn._options.buildLocal = false;
1519
- }
1520
- /**
1521
- * Run the audit workflow.
1522
- *
1523
- * @returns {Promise<void>}
1524
- */
1525
- async runAudit() {
1526
- const spinner = CliLogger.spinners[1];
1527
- try {
1528
- let depData = this._fyn._data;
1529
- if (!depData || Object.keys(depData.pkgs || {}).length === 0) {
1530
- logger.addItem({ name: FETCH_META, color: "green", spinner });
1531
- logger.updateItem(FETCH_META, "resolving dependencies...");
1532
- await this._fyn.resolveDependencies();
1533
- logger.removeItem(FETCH_META);
1534
- depData = this._fyn._data;
1535
- }
1536
- const pkgCount = Object.keys(depData.pkgs).length;
1537
- if (pkgCount === 0) {
1538
- logger.info("No dependencies to audit");
1539
- return;
1540
- }
1541
- logger.addItem({ name: FETCH_META, color: "green", spinner });
1542
- logger.updateItem(FETCH_META, "fetching security advisories...");
1543
- const auditReport = new AuditReport({
1544
- fyn: this._fyn,
1545
- depData,
1546
- noCache: this._opts.noCache || false,
1547
- omit: this._opts.omit || []
1548
- });
1549
- const auditResult = await auditReport.fetchAdvisories();
1550
- logger.removeItem(FETCH_META);
1551
- const vulnerabilities = auditReport.matchVulnerabilities(auditResult);
1552
- let statProvider = null;
1553
- if (!this._opts.summary && !this._opts.json) {
1554
- statProvider = new PkgStatProvider({ fyn: this._fyn });
1555
- }
1556
- const formatter = new AuditFormatter({
1557
- json: this._opts.json || false,
1558
- colors: this._fyn._options.colors !== false,
1559
- auditLevel: this._opts.auditLevel || "info",
1560
- summary: this._opts.summary || false,
1561
- statProvider
1562
- });
1563
- if (statProvider) {
1564
- await formatter.precomputeStats(vulnerabilities);
1565
- }
1566
- const { output } = formatter.format(auditResult, vulnerabilities);
1567
- if (output) {
1568
- console.log(output);
1569
- }
1570
- } catch (err) {
1571
- logger.removeItem(FETCH_META);
1572
- logger.error("Audit failed:", err.message);
1573
- if (process.env.FYN_DEBUG) {
1574
- logger.error(err.stack);
1575
- }
1576
- }
1577
- }
1578
- }
1579
- module.exports = (fyn, opts) => {
1580
- return new ShowAudit({ fyn, opts }).runAudit();
1581
- };
1582
-
1583
-
1584
1440
  /***/ }),
1585
1441
 
1586
1442
  /***/ "./cli/show-stat.ts":
@@ -1591,10 +1447,13 @@ module.exports = (fyn, opts) => {
1591
1447
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
1592
1448
  const CliLogger = __webpack_require__("./lib/cli-logger.ts");
1593
1449
  const logger = __webpack_require__("./lib/logger.ts");
1450
+ const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
1451
+ const semverUtil = __webpack_require__("./lib/util/semver.ts");
1594
1452
  const Promise = __webpack_require__("./node_modules/.f/_/aveazul/1.1.0/aveazul/cjs-entry.cjs");
1595
1453
  const logFormat = __webpack_require__("./lib/util/log-format.ts");
1596
- const PkgStatProvider = __webpack_require__("./lib/pkg-stat-provider.ts");
1454
+ const PkgDepLinker = __webpack_require__("./lib/pkg-dep-linker.ts");
1597
1455
  const { FETCH_META } = __webpack_require__("./lib/log-items.ts");
1456
+ const { SEMVER } = __webpack_require__("./lib/symbols.ts");
1598
1457
  const PACKAGE_JSON = "~package.json";
1599
1458
  const formatPkgId = (pkg) => {
1600
1459
  if (pkg.name === PACKAGE_JSON) {
@@ -1603,52 +1462,220 @@ const formatPkgId = (pkg) => {
1603
1462
  const top = pkg.promoted ? "" : "\u2B07";
1604
1463
  return `${logFormat.pkgId(pkg)}${top}`;
1605
1464
  };
1465
+ const getPkgId = (pkg) => {
1466
+ if (pkg.name === PACKAGE_JSON) {
1467
+ return pkg.name;
1468
+ }
1469
+ return `${pkg.name}@${pkg.version}`;
1470
+ };
1606
1471
  class ShowStat {
1607
1472
  constructor({ fyn }) {
1608
1473
  this._fyn = fyn;
1609
1474
  this._fyn._options.buildLocal = false;
1610
- this._statProvider = new PkgStatProvider({ fyn });
1475
+ }
1476
+ // returns array of packages match id
1477
+ findPkgsById(pkgs, id) {
1478
+ const ix = id.indexOf("@", 1);
1479
+ const sx = ix > 0 ? ix : id.length;
1480
+ const name = id.substr(0, sx);
1481
+ const semver = id.substr(sx + 1);
1482
+ return _(pkgs[name]).map((vpkg, version) => {
1483
+ if (!semver || semverUtil.satisfies(version, semver)) {
1484
+ return vpkg;
1485
+ }
1486
+ }).filter((x) => x).value();
1487
+ }
1488
+ findDependents(pkgs, ask) {
1489
+ const dependents = [];
1490
+ if (!this._fynRes) {
1491
+ const depLinker = new PkgDepLinker({ fyn: this._fyn });
1492
+ this._fynRes = depLinker.makeAppFynRes(this._fyn._data.res, {});
1493
+ }
1494
+ const check = (res, vpkg) => {
1495
+ const semv = ask.local ? semverUtil.unlocalify(ask.version) : ask.version;
1496
+ if (res && semverUtil.satisfies(res.resolved, semv)) {
1497
+ dependents.push(vpkg);
1498
+ }
1499
+ };
1500
+ for (const name in pkgs) {
1501
+ const pkg = pkgs[name];
1502
+ for (const version in pkg) {
1503
+ const vpkg = pkg[version];
1504
+ ["dep", "opt", "per"].forEach((s) => {
1505
+ const x = vpkg.res[s];
1506
+ check(x && x[ask.name], vpkg);
1507
+ });
1508
+ }
1509
+ }
1510
+ check(this._fynRes[ask.name], { name: PACKAGE_JSON, promoted: true });
1511
+ return dependents;
1512
+ }
1513
+ showPkgDependents(pkgs, ask) {
1514
+ const dependents = this.findDependents(pkgs, ask).sort((a, b) => {
1515
+ if (a.name === b.name) {
1516
+ return semverUtil.simpleCompare(a.version, b.version);
1517
+ }
1518
+ return a.name > b.name ? 1 : -1;
1519
+ });
1520
+ if (dependents.length > 0) {
1521
+ logger.prefix("").info(
1522
+ "=>",
1523
+ logFormat.pkgId(ask),
1524
+ `has ${dependents.length} dependents:`,
1525
+ dependents.map(formatPkgId).join(" ")
1526
+ );
1527
+ }
1528
+ return dependents;
1611
1529
  }
1612
1530
  _show(pkgIds) {
1613
- return Promise.each(pkgIds, async (pkgId) => {
1614
- const matches = this._statProvider.findMatchingVersions(pkgId);
1615
- if (matches.versions.length === 0) {
1531
+ const data = this._fyn._data;
1532
+ this._dependentsCache = {};
1533
+ let groups = {};
1534
+ return Promise.each(pkgIds, (pkgId) => {
1535
+ const askPkgs = this.findPkgsById(data.pkgs, pkgId).sort(
1536
+ (a, b) => semverUtil.simpleCompare(a.version, b.version)
1537
+ );
1538
+ if (askPkgs.length === 0) {
1616
1539
  logger.prefix("").info(chalk.yellow(pkgId), "is not installed");
1617
1540
  } else {
1618
1541
  logger.prefix("").info(
1619
1542
  chalk.green.bgRed(pkgId),
1620
1543
  "matched these installed versions",
1621
- matches.versions.map(formatPkgId).join(" ")
1544
+ askPkgs.map(formatPkgId).join(" ")
1622
1545
  );
1623
- for (const match of matches.versions) {
1624
- const stat = await this._statProvider.getPackageStat(match.name, match.version);
1625
- if (!stat) continue;
1626
- if (stat.dependents.length > 0) {
1627
- logger.prefix("").info(
1628
- "=>",
1629
- logFormat.pkgId({ name: stat.name, version: stat.version }),
1630
- `has ${stat.dependents.length} dependents:`,
1631
- stat.dependents.map(formatPkgId).join(" ")
1546
+ return Promise.each(askPkgs, (ask) => {
1547
+ const specificId = getPkgId(ask);
1548
+ const deps = this.showPkgDependents(data.pkgs, ask);
1549
+ this._allPaths = [];
1550
+ return this._findDepPaths(deps.map(getPkgId), [specificId], ask.name).then(() => {
1551
+ const newGroups = _.groupBy(this._allPaths, (x) => x[x.length - 1]);
1552
+ groups = { ...groups, ...newGroups };
1553
+ const paths = groups[specificId];
1554
+ if (paths && paths.length > 0) {
1555
+ this._displayPaths(specificId, paths);
1556
+ }
1557
+ });
1558
+ });
1559
+ }
1560
+ }).then(() => {
1561
+ logger.info(chalk.green(`stat completed for ${pkgIds.join(" ")}`));
1562
+ });
1563
+ }
1564
+ _findDepPaths(pkgIds, output = [], askName = "") {
1565
+ const data = this._fyn._data;
1566
+ return Promise.each(pkgIds, (pkgId) => {
1567
+ const askPkgs = this.findPkgsById(data.pkgs, pkgId).sort(
1568
+ (a, b) => semverUtil.simpleCompare(a.version, b.version)
1569
+ );
1570
+ if (askPkgs.length < 1) {
1571
+ if (pkgId === PACKAGE_JSON) {
1572
+ const newOutput = [].concat(output);
1573
+ ["dependencies", "optionalDependencies", "peerDependencies", "devDependencies"].find(
1574
+ (s) => {
1575
+ const semver = _.get(this._fyn, ["_pkg", s, askName]);
1576
+ if (semver) {
1577
+ newOutput[SEMVER] = semver;
1578
+ }
1579
+ return semver;
1580
+ }
1581
+ );
1582
+ this._allPaths.push(newOutput);
1583
+ } else {
1584
+ this._allPaths.push([pkgId]);
1585
+ }
1586
+ return void 0;
1587
+ }
1588
+ return Promise.map(
1589
+ askPkgs,
1590
+ (pkg) => {
1591
+ const pkgId2 = getPkgId(pkg);
1592
+ if (output.indexOf(pkgId2) >= 0) {
1593
+ logger.debug("stat detected circular dependency:", pkgId2, output.join(" "));
1594
+ return;
1595
+ }
1596
+ let dependents = this._dependentsCache[pkgId2];
1597
+ if (!dependents) {
1598
+ this._dependentsCache[pkgId2] = dependents = this.findDependents(data.pkgs, pkg).sort(
1599
+ (a, b) => {
1600
+ if (a.name === b.name) {
1601
+ return semverUtil.simpleCompare(a.version, b.version);
1602
+ }
1603
+ return a.name > b.name ? 1 : -1;
1604
+ }
1632
1605
  );
1633
1606
  }
1634
- if (stat.circularDeps && stat.circularDeps.length > 0) {
1635
- for (const circular of stat.circularDeps) {
1636
- logger.prefix("").info("stat detected circular dependency:", circular.join(" "));
1607
+ const followIds = dependents.filter((x) => x.name !== PACKAGE_JSON).map((x) => `${x.name}@${x.version.replace("-fynlocal_h", "")}`);
1608
+ if (dependents.length > 0) {
1609
+ const newOutput = [pkgId2].concat(output);
1610
+ if (output.length === 1) {
1611
+ ["dep", "opt", "per", "dev"].find((s) => {
1612
+ const sv = _.get(pkg, ["res", s, askName]);
1613
+ if (sv) {
1614
+ newOutput[SEMVER] = sv.semver;
1615
+ }
1616
+ return sv;
1617
+ });
1618
+ } else {
1619
+ newOutput[SEMVER] = output[SEMVER];
1637
1620
  }
1621
+ if (followIds.length > 0) {
1622
+ return this._findDepPaths(followIds, newOutput, askName);
1623
+ } else if (output) {
1624
+ this._allPaths.push(newOutput);
1625
+ }
1626
+ } else {
1627
+ logger.prefix("").info("no dependents for", pkgId2);
1638
1628
  }
1639
- const paths = stat.allPaths;
1640
- const briefPaths = stat.significantPaths;
1641
- if (paths.length > 0) {
1642
- const formattedPaths = this._statProvider.formatPaths(briefPaths);
1643
- const msg = paths.length === briefPaths.length ? `these dependency paths:` : `${paths.length} dependency paths, showing the ${briefPaths.length} most significant ones below:`;
1644
- logger.prefix("").info(`=> ${stat.name}@${stat.version} has ${msg}`);
1645
- logger.prefix("").info(formattedPaths.map((p) => ` > ${p}`).join("\n"));
1646
- }
1629
+ },
1630
+ { concurrency: 1 }
1631
+ );
1632
+ });
1633
+ }
1634
+ _displayPaths(pkgId, paths) {
1635
+ const cmpDepPath = (a, b) => {
1636
+ for (let ixA = 0; ixA < a.length; ixA++) {
1637
+ if (b.length <= ixA) {
1638
+ return 1;
1639
+ }
1640
+ const aId = a[ixA];
1641
+ const bId = b[ixA];
1642
+ if (aId !== bId) {
1643
+ return aId > bId ? 1 : -1;
1647
1644
  }
1648
1645
  }
1649
- }).then(() => {
1650
- logger.info(chalk.green(`stat completed for ${pkgIds.join(" ")}`));
1651
- });
1646
+ return 0;
1647
+ };
1648
+ paths = paths.sort((a, b) => a.length - b.length);
1649
+ let minDetails = 5;
1650
+ let briefPaths = paths;
1651
+ while (briefPaths.length > 10 && minDetails > 0) {
1652
+ const occurLevels = {};
1653
+ briefPaths = paths.filter((dp) => {
1654
+ const last = dp.length - 1;
1655
+ for (let ix = 0; ix < last; ix++) {
1656
+ const pkgId2 = dp[ix];
1657
+ const occur = occurLevels[pkgId2];
1658
+ if (occur && occur.level < ix && occur.leaf === dp[last] && dp.length - ix > minDetails) {
1659
+ return false;
1660
+ }
1661
+ occurLevels[pkgId2] = {
1662
+ level: ix,
1663
+ leaf: dp[last]
1664
+ };
1665
+ }
1666
+ return true;
1667
+ });
1668
+ minDetails--;
1669
+ }
1670
+ briefPaths = briefPaths.sort(cmpDepPath);
1671
+ const msg = paths.length === briefPaths.length ? `these dependency paths:` : `${paths.length} dependency paths, showing the ${briefPaths.length} most significant ones below:`;
1672
+ logger.prefix("").info(`=> ${pkgId} has ${msg}`);
1673
+ logger.prefix("").info(
1674
+ briefPaths.map((x) => {
1675
+ const semver = x[SEMVER];
1676
+ return ` > ` + x.join(" > ") + (semver ? ` (${semver})` : "");
1677
+ }).join("\n")
1678
+ );
1652
1679
  }
1653
1680
  showStat(pkgIds) {
1654
1681
  const spinner = CliLogger.spinners[1];
@@ -1945,474 +1972,6 @@ module.exports.__TEST__ = {
1945
1972
  };
1946
1973
 
1947
1974
 
1948
- /***/ }),
1949
-
1950
- /***/ "./lib/audit/audit-cache.ts":
1951
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
1952
-
1953
- "use strict";
1954
-
1955
- const cacache = __webpack_require__("./node_modules/.f/_/cacache/20.0.1/cacache/lib/index.js");
1956
- const crypto = __webpack_require__("crypto");
1957
- const Path = __webpack_require__("path");
1958
- const AUDIT_CACHE_PREFIX = "fyn-audit-";
1959
- function generateCacheKey(payload) {
1960
- const sorted = Object.keys(payload).sort().reduce((acc, name) => {
1961
- acc[name] = [...payload[name]].sort();
1962
- return acc;
1963
- }, {});
1964
- const hash = crypto.createHash("sha256").update(JSON.stringify(sorted)).digest("hex");
1965
- return `${AUDIT_CACHE_PREFIX}${hash}`;
1966
- }
1967
- async function cacheAuditResult(cacheDir, key, result) {
1968
- const auditCacheDir = Path.join(cacheDir, "audit");
1969
- const data = JSON.stringify(result);
1970
- await cacache.put(auditCacheDir, key, data);
1971
- }
1972
- async function getCachedAuditResult(cacheDir, key) {
1973
- const auditCacheDir = Path.join(cacheDir, "audit");
1974
- try {
1975
- const { data } = await cacache.get(auditCacheDir, key);
1976
- return JSON.parse(data.toString());
1977
- } catch (err) {
1978
- if (err.code === "ENOENT" || err.code === "ENOTCACHED") {
1979
- return null;
1980
- }
1981
- throw err;
1982
- }
1983
- }
1984
- async function hasAuditCache(cacheDir, key) {
1985
- const auditCacheDir = Path.join(cacheDir, "audit");
1986
- try {
1987
- const info = await cacache.get.info(auditCacheDir, key);
1988
- return info !== null;
1989
- } catch (err) {
1990
- return false;
1991
- }
1992
- }
1993
- module.exports = {
1994
- AUDIT_CACHE_PREFIX,
1995
- generateCacheKey,
1996
- cacheAuditResult,
1997
- getCachedAuditResult,
1998
- hasAuditCache
1999
- };
2000
-
2001
-
2002
- /***/ }),
2003
-
2004
- /***/ "./lib/audit/audit-formatter.ts":
2005
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2006
-
2007
- "use strict";
2008
-
2009
- const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
2010
- const { SEMVER } = __webpack_require__("./lib/symbols.ts");
2011
- const SEVERITY_COLORS = {
2012
- critical: chalk.red.bold,
2013
- high: chalk.red,
2014
- moderate: chalk.yellow,
2015
- low: chalk.cyan,
2016
- info: chalk.blue
2017
- };
2018
- const SEVERITY_ORDER = ["critical", "high", "moderate", "low", "info"];
2019
- class AuditFormatter {
2020
- /**
2021
- * @param {Object} options
2022
- * @param {boolean} options.json - Output as JSON
2023
- * @param {boolean} options.colors - Use colors in output
2024
- * @param {string} options.auditLevel - Minimum severity to report
2025
- * @param {boolean} options.summary - Output brief summary only (like npm after install)
2026
- * @param {Object} options.statProvider - PkgStatProvider instance for dependency path info
2027
- * @param {Object} options.statCache - Pre-computed stat results keyed by "name@version"
2028
- */
2029
- constructor(options = {}) {
2030
- this._json = options.json || false;
2031
- this._colors = options.colors !== false;
2032
- this._auditLevel = options.auditLevel || "info";
2033
- this._summary = options.summary || false;
2034
- this._statProvider = options.statProvider || null;
2035
- this._statCache = options.statCache || {};
2036
- }
2037
- /**
2038
- * Get severity level as number for comparison.
2039
- */
2040
- getSeverityLevel(severity) {
2041
- const levels = { critical: 5, high: 4, moderate: 3, low: 2, info: 1 };
2042
- return levels[severity] || 0;
2043
- }
2044
- /**
2045
- * Check if severity meets minimum audit level.
2046
- */
2047
- meetsAuditLevel(severity) {
2048
- return this.getSeverityLevel(severity) >= this.getSeverityLevel(this._auditLevel);
2049
- }
2050
- /**
2051
- * Colorize text based on severity.
2052
- */
2053
- colorize(text, severity) {
2054
- if (!this._colors) return text;
2055
- const colorFn = SEVERITY_COLORS[severity] || ((t) => t);
2056
- return colorFn(text);
2057
- }
2058
- /**
2059
- * Format audit result for output.
2060
- *
2061
- * @param {Object} auditResult - Result from AuditReport.fetchAdvisories()
2062
- * @param {Array} vulnerabilities - Matched vulnerabilities from matchVulnerabilities()
2063
- * @returns {Object} { output: string, exitCode: number }
2064
- */
2065
- format(auditResult, vulnerabilities) {
2066
- if (this._json) {
2067
- return this.formatJson(auditResult, vulnerabilities);
2068
- }
2069
- if (this._summary) {
2070
- return this.formatSummary(auditResult, vulnerabilities);
2071
- }
2072
- return this.formatHuman(auditResult, vulnerabilities);
2073
- }
2074
- /**
2075
- * Format as brief summary (like npm shows after install).
2076
- * Example: "audited 745 packages\n3 vulnerabilities (1 moderate, 1 high, 1 critical)"
2077
- */
2078
- formatSummary(auditResult, vulnerabilities) {
2079
- const filtered = vulnerabilities.filter((v) => this.meetsAuditLevel(v.advisory.severity));
2080
- const pkgCount = auditResult.metadata?.totalDependencies || 0;
2081
- if (filtered.length === 0) {
2082
- return { output: `audited ${pkgCount} packages`, exitCode: 0 };
2083
- }
2084
- const counts = {};
2085
- filtered.forEach((v) => {
2086
- const sev = v.advisory.severity;
2087
- counts[sev] = (counts[sev] || 0) + 1;
2088
- });
2089
- const parts = SEVERITY_ORDER.filter((sev) => counts[sev]).map((sev) => {
2090
- const count = counts[sev];
2091
- return this.colorize(`${count} ${sev}`, sev);
2092
- });
2093
- const total = filtered.length;
2094
- const output = `audited ${pkgCount} packages
2095
-
2096
- ${total} ${total === 1 ? "vulnerability" : "vulnerabilities"} (${parts.join(", ")})
2097
-
2098
- Run \`fyn audit\` for details.`;
2099
- return { output, exitCode: 0 };
2100
- }
2101
- /**
2102
- * Format as JSON.
2103
- */
2104
- formatJson(auditResult, vulnerabilities) {
2105
- const filtered = vulnerabilities.filter((v) => this.meetsAuditLevel(v.advisory.severity));
2106
- const output = JSON.stringify(
2107
- {
2108
- vulnerabilities: filtered,
2109
- metadata: auditResult.metadata,
2110
- advisories: auditResult.advisories
2111
- },
2112
- null,
2113
- 2
2114
- );
2115
- return { output, exitCode: 0 };
2116
- }
2117
- /**
2118
- * Format as human-readable table.
2119
- */
2120
- formatHuman(auditResult, vulnerabilities) {
2121
- const lines = [];
2122
- const { metadata } = auditResult;
2123
- const filtered = vulnerabilities.filter((v) => this.meetsAuditLevel(v.advisory.severity));
2124
- const bySeverity = {};
2125
- SEVERITY_ORDER.forEach((s) => bySeverity[s] = []);
2126
- filtered.forEach((vuln) => {
2127
- const sev = vuln.advisory.severity;
2128
- if (bySeverity[sev]) {
2129
- bySeverity[sev].push(vuln);
2130
- }
2131
- });
2132
- lines.push("");
2133
- if (filtered.length === 0) {
2134
- lines.push(this._colors ? chalk.green("No vulnerabilities found!") : "No vulnerabilities found!");
2135
- lines.push("");
2136
- lines.push(`Scanned ${metadata.totalDependencies} packages`);
2137
- } else {
2138
- const counts = SEVERITY_ORDER.map((sev) => {
2139
- const count = bySeverity[sev].length;
2140
- if (count === 0) return null;
2141
- return this.colorize(`${count} ${sev}`, sev);
2142
- }).filter(Boolean);
2143
- lines.push(`Found ${filtered.length} vulnerabilities (${counts.join(", ")})`);
2144
- lines.push("");
2145
- SEVERITY_ORDER.forEach((severity) => {
2146
- const vulns = bySeverity[severity];
2147
- if (vulns.length === 0) return;
2148
- vulns.forEach((vuln) => {
2149
- const { advisory } = vuln;
2150
- lines.push(this.formatVulnerability(vuln));
2151
- lines.push("");
2152
- });
2153
- });
2154
- lines.push(`Scanned ${metadata.totalDependencies} packages`);
2155
- }
2156
- lines.push("");
2157
- return { output: lines.join("\n"), exitCode: 0 };
2158
- }
2159
- /**
2160
- * Format a single vulnerability entry.
2161
- */
2162
- formatVulnerability(vuln) {
2163
- const { advisory, name, version } = vuln;
2164
- const lines = [];
2165
- const sevLabel = this.colorize(advisory.severity.toUpperCase().padEnd(10), advisory.severity);
2166
- lines.push(`${sevLabel} ${advisory.title}`);
2167
- const pkgId = this._colors ? chalk.yellow(`${name}@${version}`) : `${name}@${version}`;
2168
- const vulnRange = this._colors ? chalk.red(`Vulnerable: ${advisory.vulnerable_versions}`) : `Vulnerable: ${advisory.vulnerable_versions}`;
2169
- const infoUrl = advisory.url ? this._colors ? chalk.cyan(`info: ${advisory.url}`) : `info: ${advisory.url}` : "";
2170
- let details = ` ${pkgId} - ${vulnRange}`;
2171
- if (infoUrl) {
2172
- details += ` - ${infoUrl}`;
2173
- }
2174
- lines.push(details);
2175
- const cacheKey = `${name}@${version}`;
2176
- const stat = this._statCache[cacheKey];
2177
- if (stat && stat.significantPaths && stat.significantPaths.length > 0) {
2178
- const seenFirstLegs = /* @__PURE__ */ new Set();
2179
- const uniquePaths = [];
2180
- for (const path of stat.significantPaths) {
2181
- const firstLeg = path[0];
2182
- if (!seenFirstLegs.has(firstLeg)) {
2183
- seenFirstLegs.add(firstLeg);
2184
- uniquePaths.push(path);
2185
- if (uniquePaths.length >= 5) break;
2186
- }
2187
- }
2188
- for (const path of uniquePaths) {
2189
- const semver = path[SEMVER];
2190
- const pathStr = path.join(" > ");
2191
- const fullPath = semver ? `${pathStr} (${semver})` : pathStr;
2192
- lines.push(` > ${fullPath}`);
2193
- }
2194
- }
2195
- return lines.join("\n");
2196
- }
2197
- /**
2198
- * Pre-compute stat info for all vulnerabilities.
2199
- * Call this before format() when using a stat provider.
2200
- *
2201
- * @param {Array} vulnerabilities - List of vulnerabilities from matchVulnerabilities()
2202
- * @returns {Promise<void>}
2203
- */
2204
- async precomputeStats(vulnerabilities) {
2205
- if (!this._statProvider) return;
2206
- const filtered = vulnerabilities.filter((v) => this.meetsAuditLevel(v.advisory.severity));
2207
- for (const vuln of filtered) {
2208
- const cacheKey = `${vuln.name}@${vuln.version}`;
2209
- if (!this._statCache[cacheKey]) {
2210
- const stat = await this._statProvider.getPackageStat(vuln.name, vuln.version);
2211
- if (stat) {
2212
- this._statCache[cacheKey] = stat;
2213
- }
2214
- }
2215
- }
2216
- }
2217
- }
2218
- module.exports = AuditFormatter;
2219
-
2220
-
2221
- /***/ }),
2222
-
2223
- /***/ "./lib/audit/audit-report.ts":
2224
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
2225
-
2226
- "use strict";
2227
-
2228
- const npmFetch = __webpack_require__("./node_modules/.f/_/npm-registry-fetch/19.1.0/npm-registry-fetch/lib/index.js");
2229
- const logger = __webpack_require__("./lib/logger.ts");
2230
- const {
2231
- generateCacheKey,
2232
- cacheAuditResult,
2233
- getCachedAuditResult
2234
- } = __webpack_require__("./lib/audit/audit-cache.ts");
2235
- class AuditReport {
2236
- /**
2237
- * @param {Object} options
2238
- * @param {Object} options.fyn - Fyn instance with resolved data
2239
- * @param {Object} options.depData - DepData with resolved packages
2240
- * @param {boolean} options.noCache - Skip cache lookup
2241
- * @param {string[]} options.omit - Dependency types to omit (dev, optional, peer)
2242
- */
2243
- constructor(options) {
2244
- this._fyn = options.fyn;
2245
- this._depData = options.depData;
2246
- this._noCache = options.noCache || false;
2247
- this._omit = options.omit || [];
2248
- this._cacheDir = options.fyn.fynDir;
2249
- }
2250
- /**
2251
- * Build bulk request payload from resolved packages.
2252
- * Format: { "packageName": ["version1", "version2"], ... }
2253
- *
2254
- * @returns {Object} Bulk payload for npm security API
2255
- */
2256
- buildBulkPayload() {
2257
- const payload = {};
2258
- const pkgs = this._depData.pkgs;
2259
- const omitDev = this._omit.includes("dev");
2260
- const omitOptional = this._omit.includes("optional");
2261
- const omitPeer = this._omit.includes("peer");
2262
- Object.keys(pkgs).forEach((name) => {
2263
- const versions = pkgs[name];
2264
- Object.keys(versions).forEach((version) => {
2265
- const pkgInfo = versions[version];
2266
- if (omitDev && pkgInfo.src === "dev") return;
2267
- if (omitOptional && pkgInfo.src === "opt") return;
2268
- if (omitPeer && pkgInfo.src === "per") return;
2269
- if (pkgInfo.local || pkgInfo.localType) return;
2270
- if (!payload[name]) {
2271
- payload[name] = [];
2272
- }
2273
- if (!payload[name].includes(version)) {
2274
- payload[name].push(version);
2275
- }
2276
- });
2277
- });
2278
- return payload;
2279
- }
2280
- /**
2281
- * Get registry URL for audit API.
2282
- * Uses the main registry (not scoped registries since audit is global).
2283
- *
2284
- * @returns {string} Registry URL with trailing slash
2285
- */
2286
- getAuditRegistryUrl() {
2287
- const registry = this._fyn._options.registry || "https://registry.npmjs.org";
2288
- return registry.endsWith("/") ? registry : `${registry}/`;
2289
- }
2290
- /**
2291
- * Get npm-registry-fetch options with auth.
2292
- *
2293
- * @returns {Object} Options for npm-registry-fetch
2294
- */
2295
- getFetchOptions() {
2296
- const opts = this._fyn._options;
2297
- const fetchOpts = {
2298
- registry: this.getAuditRegistryUrl()
2299
- };
2300
- if (opts.username) fetchOpts.username = opts.username;
2301
- if (opts.password) fetchOpts.password = opts.password;
2302
- if (opts.email) fetchOpts.email = opts.email;
2303
- if (opts["always-auth"]) fetchOpts.alwaysAuth = opts["always-auth"];
2304
- Object.keys(opts).forEach((key) => {
2305
- if (key.endsWith(":_authToken")) {
2306
- fetchOpts[key] = opts[key];
2307
- }
2308
- });
2309
- return fetchOpts;
2310
- }
2311
- /**
2312
- * Fetch advisories from npm security API.
2313
- * Uses cache if available and noCache is false.
2314
- *
2315
- * @returns {Promise<Object>} Audit result with advisories
2316
- */
2317
- async fetchAdvisories() {
2318
- const payload = this.buildBulkPayload();
2319
- const packageCount = Object.keys(payload).length;
2320
- if (packageCount === 0) {
2321
- logger.info("No packages to audit");
2322
- return { advisories: {}, metadata: { totalDependencies: 0 } };
2323
- }
2324
- const cacheKey = generateCacheKey(payload);
2325
- if (!this._noCache) {
2326
- const cached = await getCachedAuditResult(this._cacheDir, cacheKey);
2327
- if (cached) {
2328
- logger.debug("Using cached audit result");
2329
- return cached;
2330
- }
2331
- }
2332
- const registryUrl = this.getAuditRegistryUrl();
2333
- const auditUrl = `${registryUrl}-/npm/v1/security/advisories/bulk`;
2334
- logger.info(`Auditing ${packageCount} packages...`);
2335
- try {
2336
- const fetchOpts = this.getFetchOptions();
2337
- const response = await npmFetch(auditUrl, {
2338
- ...fetchOpts,
2339
- method: "POST",
2340
- body: payload,
2341
- gzip: true
2342
- });
2343
- const advisories = await response.json();
2344
- const result = {
2345
- advisories,
2346
- metadata: {
2347
- totalDependencies: packageCount,
2348
- vulnerabilities: Object.keys(advisories).length
2349
- }
2350
- };
2351
- await cacheAuditResult(this._cacheDir, cacheKey, result);
2352
- return result;
2353
- } catch (err) {
2354
- if (!this._noCache) {
2355
- const cached = await getCachedAuditResult(this._cacheDir, cacheKey);
2356
- if (cached) {
2357
- logger.warn("Network error, using cached audit data");
2358
- return cached;
2359
- }
2360
- }
2361
- if (err.code === "ENOTFOUND" || err.code === "ECONNREFUSED") {
2362
- throw new Error(`Unable to reach npm registry for audit: ${err.message}`);
2363
- }
2364
- if (err.statusCode === 401 || err.statusCode === 403) {
2365
- throw new Error("Authentication required for security audit");
2366
- }
2367
- throw err;
2368
- }
2369
- }
2370
- /**
2371
- * Match advisories to resolved packages.
2372
- * Returns list of affected packages with advisory details.
2373
- *
2374
- * The bulk API returns advisories grouped by package name:
2375
- * { "package-name": [{ id, vulnerable_versions, ... }, ...] }
2376
- *
2377
- * @param {Object} auditResult - Result from fetchAdvisories()
2378
- * @returns {Array} List of vulnerabilities with package info
2379
- */
2380
- matchVulnerabilities(auditResult) {
2381
- const vulnerabilities = [];
2382
- const { advisories } = auditResult;
2383
- const pkgs = this._depData.pkgs;
2384
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
2385
- Object.keys(advisories).forEach((pkgName) => {
2386
- const pkgAdvisories = advisories[pkgName];
2387
- if (!pkgs[pkgName]) return;
2388
- pkgAdvisories.forEach((advisory) => {
2389
- const vulnVersions = advisory.vulnerable_versions;
2390
- Object.keys(pkgs[pkgName]).forEach((version) => {
2391
- if (semver.satisfies(version, vulnVersions)) {
2392
- vulnerabilities.push({
2393
- name: pkgName,
2394
- version,
2395
- advisory: {
2396
- id: advisory.id,
2397
- title: advisory.title,
2398
- severity: advisory.severity,
2399
- url: advisory.url,
2400
- vulnerable_versions: vulnVersions,
2401
- patched_versions: advisory.patched_versions,
2402
- recommendation: advisory.recommendation
2403
- },
2404
- paths: pkgs[pkgName][version].requests || []
2405
- });
2406
- }
2407
- });
2408
- });
2409
- });
2410
- return vulnerabilities;
2411
- }
2412
- }
2413
- module.exports = AuditReport;
2414
-
2415
-
2416
1975
  /***/ }),
2417
1976
 
2418
1977
  /***/ "./lib/cacache-util.ts":
@@ -3169,11 +2728,12 @@ const Os = __webpack_require__("os");
3169
2728
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
3170
2729
  const Fyn = __webpack_require__("./lib/fyn.ts");
3171
2730
  const PkgInstaller = __webpack_require__("./lib/pkg-installer.ts");
2731
+ const PkgBinLinker = __webpack_require__("./lib/pkg-bin-linker.ts");
3172
2732
  const logger = __webpack_require__("./lib/logger.ts");
3173
2733
  const fynTil = __webpack_require__("./lib/util/fyntil.ts");
3174
2734
  const lockfile = __webpack_require__("./node_modules/.f/_/lockfile/1.0.4/lockfile/lockfile.js");
3175
2735
  const util = __webpack_require__("util");
3176
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
2736
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
3177
2737
  const readline = __webpack_require__("readline");
3178
2738
  const createLock = util.promisify(lockfile.lock);
3179
2739
  const unlock = util.promisify(lockfile.unlock);
@@ -3225,6 +2785,20 @@ class FynGlobal {
3225
2785
  _fynpo: false
3226
2786
  });
3227
2787
  }
2788
+ _getBinLinker() {
2789
+ if (!this._binLinker) {
2790
+ this._binLinker = new PkgBinLinker({ binDir: this.globalBinDir });
2791
+ }
2792
+ return this._binLinker;
2793
+ }
2794
+ _getVersionBinTargets(versionInfo) {
2795
+ const binDir = Path.join(this.packagesDir, versionInfo.dir, "node_modules", ".bin");
2796
+ const bins = {};
2797
+ for (const binName of versionInfo.bins || []) {
2798
+ bins[binName] = Path.join(binDir, binName);
2799
+ }
2800
+ return bins;
2801
+ }
3228
2802
  /**
3229
2803
  * Read the installed.json registry
3230
2804
  * @returns {Object} Registry object with packages info
@@ -3556,20 +3130,14 @@ class FynGlobal {
3556
3130
  * @param {boolean} force - If true, overwrite existing bins
3557
3131
  */
3558
3132
  async linkBins(gId, bins, force = false) {
3559
- await Fs.$.mkdirp(this.globalBinDir);
3133
+ const binLinker = this._getBinLinker();
3560
3134
  for (const [binName, binPath] of Object.entries(bins)) {
3561
- const globalBinPath = Path.join(this.globalBinDir, binName);
3562
- if (await Fs.exists(globalBinPath)) {
3563
- if (force) {
3564
- await Fs.unlink(globalBinPath);
3565
- } else {
3566
- const owner = await this.findBinOwner(binName);
3567
- logger.warn(`${binName} already exists (from ${owner || "unknown"}), skipping`);
3568
- continue;
3569
- }
3135
+ if (!force && await binLinker.hasBinLink(binName)) {
3136
+ const owner = await this.findBinOwner(binName);
3137
+ logger.warn(`${binName} already exists (from ${owner || "unknown"}), skipping`);
3138
+ continue;
3570
3139
  }
3571
- const relativePath = Path.relative(this.globalBinDir, binPath);
3572
- await Fs.symlink(relativePath, globalBinPath);
3140
+ await binLinker.linkBinPath(binPath, binName, { overwrite: force });
3573
3141
  }
3574
3142
  }
3575
3143
  /**
@@ -3751,12 +3319,12 @@ class FynGlobal {
3751
3319
  const versions = await this.getPackageVersions(packageName);
3752
3320
  const versionInfo = versions.find((v) => v.version === version);
3753
3321
  if (!versionInfo) return;
3754
- for (const binName of versionInfo.bins || []) {
3755
- const binPath = Path.join(this.globalBinDir, binName);
3322
+ const binLinker = this._getBinLinker();
3323
+ const bins = this._getVersionBinTargets(versionInfo);
3324
+ for (const [binName, binPath] of Object.entries(bins)) {
3756
3325
  try {
3757
- const linkTarget = await Fs.readlink(binPath);
3758
- if (linkTarget.includes(versionInfo.dir)) {
3759
- await Fs.unlink(binPath);
3326
+ if (await binLinker.matchesBinPath(binName, binPath)) {
3327
+ await binLinker.removeBinLink(binName);
3760
3328
  }
3761
3329
  } catch (err) {
3762
3330
  }
@@ -4199,7 +3767,7 @@ module.exports = FynGlobal;
4199
3767
  const Path = __webpack_require__("path");
4200
3768
  const util = __webpack_require__("util");
4201
3769
  const assert = __webpack_require__("assert");
4202
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
3770
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
4203
3771
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
4204
3772
  const logger = __webpack_require__("./lib/logger.ts");
4205
3773
  const PkgDepResolver = __webpack_require__("./lib/pkg-dep-resolver.ts");
@@ -4221,7 +3789,7 @@ const ck = __webpack_require__("./node_modules/.f/_/chalker/1.2.0/chalker/lib/in
4221
3789
  const { PACKAGE_RAW_INFO, DEP_ITEM } = __webpack_require__("./lib/symbols.ts");
4222
3790
  const { FYN_LOCK_FILE, FYN_INSTALL_CONFIG_FILE, FV_DIR, PACKAGE_FYN_JSON } = __webpack_require__("./lib/constants.ts");
4223
3791
  const { parseYarnLock } = __webpack_require__("./yarn/index.js");
4224
- const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
3792
+ const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
4225
3793
  const npmConfigEnv = __webpack_require__("./lib/util/npm-config-env.ts");
4226
3794
  const PkgOptResolver = __webpack_require__("./lib/pkg-opt-resolver.ts");
4227
3795
  const { LocalPkgBuilder } = __webpack_require__("./lib/local-pkg-builder.ts");
@@ -5130,12 +4698,12 @@ module.exports = Fyn;
5130
4698
  const Path = __webpack_require__("path");
5131
4699
  const optionalRequire = __webpack_require__("./node_modules/.f/_/optional-require/1.1.10/optional-require/index.js")(eval("require"));
5132
4700
  const assert = __webpack_require__("assert");
5133
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
4701
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
5134
4702
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
5135
4703
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
5136
4704
  const logger = __webpack_require__("./lib/logger.ts");
5137
4705
  const logFormat = __webpack_require__("./lib/util/log-format.ts");
5138
- const { VisualExec } = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/index.js");
4706
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
5139
4707
  const fyntil = __webpack_require__("./lib/util/fyntil.ts");
5140
4708
  const requireAt = __webpack_require__("./node_modules/.f/_/require-at/1.0.6/require-at/require-at.js");
5141
4709
  const { setupNodeGypEnv } = __webpack_require__("./lib/util/setup-node-gyp.ts");
@@ -5256,7 +4824,7 @@ module.exports = LifecycleScripts;
5256
4824
  const Path = __webpack_require__("path");
5257
4825
  const logger = __webpack_require__("./lib/logger.ts");
5258
4826
  const PromiseQueue = __webpack_require__("./lib/util/promise-queue.ts");
5259
- const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/index.js");
4827
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
5260
4828
  const xaa = __webpack_require__("./node_modules/.f/_/xaa/2.0.0/xaa/dist-cjs/index.cjs");
5261
4829
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
5262
4830
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
@@ -5287,15 +4855,12 @@ class LocalPkgBuilder {
5287
4855
  this._waitItems[data.item.fullPath].resolve({});
5288
4856
  });
5289
4857
  this._promiseQ.on("failItem", (data) => {
5290
- const debugLog = Path.join(data.item.fullPath, "fyn-debug.log");
5291
4858
  const itemRes = {
5292
4859
  error: new AggregateError(
5293
4860
  [data.error],
5294
- `failed build local package at ${data.item.fullPath} - check ${debugLog} for details`
4861
+ `failed build local package at ${data.item.fullPath}`
5295
4862
  )
5296
4863
  };
5297
- logger.error(`Failed to build local package at ${data.item.fullPath}`);
5298
- logger.error(`Check debug log for details: ${debugLog}`);
5299
4864
  this._waitItems[data.item.fullPath].resolve(itemRes);
5300
4865
  this._failedItems[data.item.fullPath] = itemRes;
5301
4866
  });
@@ -5379,9 +4944,8 @@ class LocalPkgBuilder {
5379
4944
  process.argv[0],
5380
4945
  this._fynJs,
5381
4946
  this._fyn._options.registry && `--reg=${this._fyn._options.registry}`,
5382
- "-q=d --pg=simple --no-build-local --sl=fyn-debug.log",
5383
- !this._fyn._options.sourceMaps && "--no-source-maps",
5384
- "install --no-audit"
4947
+ "-q=d --pg=simple --no-build-local",
4948
+ !this._fyn._options.sourceMaps && "--no-source-maps"
5385
4949
  ].filter((x) => x).join(" ");
5386
4950
  const displayTitle = `building local pkg at ${dispPath}`;
5387
4951
  logger.verbose(displayTitle);
@@ -5556,10 +5120,34 @@ const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.
5556
5120
  const logger = __webpack_require__("./lib/logger.ts");
5557
5121
  class PkgBinLinkerBase {
5558
5122
  constructor(options) {
5559
- this._binDir = Path.join(options.outputDir, ".bin");
5123
+ this._binDir = options.binDir || Path.join(options.outputDir, ".bin");
5560
5124
  this._fyn = options.fyn;
5561
5125
  this._linked = {};
5562
5126
  }
5127
+ async hasBinLink(sym) {
5128
+ return Fs.exists(Path.join(this._binDir, sym));
5129
+ }
5130
+ async matchesBinPath(sym, target) {
5131
+ const symlink = Path.join(this._binDir, sym);
5132
+ const relTarget = Path.relative(this._binDir, target);
5133
+ return this._isBinLinkTarget(symlink, relTarget);
5134
+ }
5135
+ async linkBinPath(target, sym, options = {}) {
5136
+ const relTarget = Path.relative(this._binDir, target);
5137
+ const symlink = Path.join(this._binDir, sym);
5138
+ await this._mkBinDir();
5139
+ if (options.overwrite) {
5140
+ await this._rmBinLink(symlink);
5141
+ }
5142
+ if (!await this._ensureGoodLink(symlink, relTarget)) {
5143
+ await this._generateBinLink(relTarget, symlink);
5144
+ }
5145
+ await this._chmod(target);
5146
+ return relTarget;
5147
+ }
5148
+ async removeBinLink(sym) {
5149
+ await this._rmBinLink(Path.join(this._binDir, sym));
5150
+ }
5563
5151
  async clearExtras() {
5564
5152
  try {
5565
5153
  const bins = await this._readBinLinks();
@@ -5742,13 +5330,16 @@ class PkgBinLinker extends PkgBinLinkerBase {
5742
5330
  //
5743
5331
  // Platform specific
5744
5332
  //
5745
- async _ensureGoodLink(symlink, target) {
5333
+ async _isBinLinkTarget(symlink, target) {
5746
5334
  try {
5747
- const existTarget = await Fs.readlink(symlink);
5748
- if (existTarget === target) {
5749
- return true;
5750
- }
5335
+ return await Fs.readlink(symlink) === target;
5751
5336
  } catch (err) {
5337
+ return false;
5338
+ }
5339
+ }
5340
+ async _ensureGoodLink(symlink, target) {
5341
+ if (await this._isBinLinkTarget(symlink, target)) {
5342
+ return true;
5752
5343
  }
5753
5344
  await this._rmBinLink(symlink);
5754
5345
  return false;
@@ -5818,13 +5409,17 @@ class PkgBinLinkerWin32 extends PkgBinLinkerBase {
5818
5409
  //
5819
5410
  // Platform specific
5820
5411
  //
5821
- async _ensureGoodLink(symlink, target) {
5412
+ async _isBinLinkTarget(symlink, target) {
5822
5413
  try {
5823
5414
  const existTarget = (await Fs.readFile(symlink)).toString();
5824
- if (existTarget.indexOf(target) >= 0) {
5825
- return true;
5826
- }
5415
+ return existTarget.indexOf(target) >= 0;
5827
5416
  } catch (err) {
5417
+ return false;
5418
+ }
5419
+ }
5420
+ async _ensureGoodLink(symlink, target) {
5421
+ if (await this._isBinLinkTarget(symlink, target)) {
5422
+ return true;
5828
5423
  }
5829
5424
  await this._rmBinLink(symlink);
5830
5425
  return false;
@@ -6179,6 +5774,39 @@ class PkgDepLocker {
6179
5774
  hasLock(item) {
6180
5775
  return Boolean(this._enable && this._lockData[item.name]);
6181
5776
  }
5777
+ normalizeTarballUrl(item, tarballUrl) {
5778
+ if (!tarballUrl || !this._fyn || !this._fyn._pkgSrcMgr) {
5779
+ return tarballUrl;
5780
+ }
5781
+ const currentRegistry = this._fyn._pkgSrcMgr.getRegistryUrl(item.name);
5782
+ if (!currentRegistry || tarballUrl.startsWith(currentRegistry)) {
5783
+ return tarballUrl;
5784
+ }
5785
+ try {
5786
+ const currentUrl = new URL(currentRegistry);
5787
+ const lockedUrl = new URL(tarballUrl);
5788
+ const currentPath = decodeURIComponent(currentUrl.pathname);
5789
+ const lockedPath = decodeURIComponent(lockedUrl.pathname);
5790
+ if (lockedPath.startsWith(currentPath)) {
5791
+ lockedUrl.protocol = currentUrl.protocol;
5792
+ lockedUrl.username = currentUrl.username;
5793
+ lockedUrl.password = currentUrl.password;
5794
+ lockedUrl.host = currentUrl.host;
5795
+ return lockedUrl.toString();
5796
+ }
5797
+ const tarballMarker = `/${item.name}/-/`;
5798
+ const markerIndex = lockedPath.indexOf(tarballMarker);
5799
+ if (markerIndex >= 0) {
5800
+ const rebuiltUrl = new URL(lockedPath.slice(markerIndex + 1), currentRegistry);
5801
+ rebuiltUrl.search = lockedUrl.search;
5802
+ rebuiltUrl.hash = lockedUrl.hash;
5803
+ return rebuiltUrl.toString();
5804
+ }
5805
+ } catch (err) {
5806
+ return tarballUrl;
5807
+ }
5808
+ return tarballUrl;
5809
+ }
6182
5810
  //
6183
5811
  // convert from fyn lock format to npm meta format
6184
5812
  //
@@ -6201,18 +5829,7 @@ class PkgDepLocker {
6201
5829
  fullPath: vpkg._
6202
5830
  };
6203
5831
  } else {
6204
- let tarballUrl = vpkg._;
6205
- if (tarballUrl && this._fyn && this._fyn._pkgSrcMgr) {
6206
- const currentRegistry = this._fyn._pkgSrcMgr.getRegistryUrl(item.name);
6207
- const urlMatch = tarballUrl.match(/^(https?:\/\/[^\/]+)(\/.*)/);
6208
- if (urlMatch && currentRegistry) {
6209
- const lockRegistry = urlMatch[1] + "/";
6210
- const tarballPath = urlMatch[2];
6211
- if (lockRegistry !== currentRegistry) {
6212
- tarballUrl = currentRegistry.replace(/\/$/, "") + tarballPath;
6213
- }
6214
- }
6215
- }
5832
+ const tarballUrl = this.normalizeTarballUrl(item, vpkg._);
6216
5833
  vpkg.dist = {
6217
5834
  integrity: fyntil.shaToIntegrity(vpkg.$),
6218
5835
  tarball: tarballUrl
@@ -6466,7 +6083,7 @@ const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.
6466
6083
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
6467
6084
  const Path = __webpack_require__("path");
6468
6085
  const semverUtil = __webpack_require__("./lib/util/semver.ts");
6469
- const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
6086
+ const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
6470
6087
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
6471
6088
  const logger = __webpack_require__("./lib/logger.ts");
6472
6089
  const DepItem = __webpack_require__("./lib/dep-item.ts");
@@ -8405,7 +8022,7 @@ module.exports = PkgInstaller;
8405
8022
  "use strict";
8406
8023
 
8407
8024
  const assert = __webpack_require__("assert");
8408
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
8025
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
8409
8026
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
8410
8027
  const Promise = __webpack_require__("./lib/util/aveazul.ts");
8411
8028
  const PromiseQueue = __webpack_require__("./lib/util/promise-queue.ts");
@@ -8688,7 +8305,7 @@ const longPending = __webpack_require__("./lib/long-pending.ts");
8688
8305
  const { LOCAL_VERSION_MAPS, PACKAGE_RAW_INFO, DEP_ITEM } = __webpack_require__("./lib/symbols.ts");
8689
8306
  const { LONG_WAIT_META, FETCH_META, FETCH_PACKAGE } = __webpack_require__("./lib/log-items.ts");
8690
8307
  const PkgPreper = __webpack_require__("./node_modules/.f/_/pkg-preper/0.1.6-fynlocal_h/pkg-preper/lib/pkg-preper.js");
8691
- const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/index.js");
8308
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
8692
8309
  const { readPkgJson, missPipe } = __webpack_require__("./lib/util/fyntil.ts");
8693
8310
  const { MARK_URL_SPEC } = __webpack_require__("./lib/constants.ts");
8694
8311
  const nodeFetch = __webpack_require__("./node_modules/.f/_/node-fetch-npm/2.0.4/node-fetch-npm/src/index.js");
@@ -9207,7 +8824,41 @@ class PkgSrcManager {
9207
8824
  return inflight;
9208
8825
  }
9209
8826
  const packumentUrl = this.makePackumentUrl(pkgName);
9210
- const cacheKey = `make-fetch-happen:request-cache:full:${packumentUrl}`;
8827
+ const cacheKey = `make-fetch-happen:request-cache:${packumentUrl}`;
8828
+ const legacyCacheKey = `make-fetch-happen:request-cache:full:${packumentUrl}`;
8829
+ const cacheKeys = [cacheKey, legacyCacheKey];
8830
+ const loadCachedPackument = async (key, memoize = true) => {
8831
+ try {
8832
+ const cached = await cacache.get(this._cacheDir, key, { memoize });
8833
+ const info = await getCacheInfoWithRefreshTime(this._cacheDir, key);
8834
+ return Object.assign(cached, {
8835
+ refreshTime: info && info.refreshTime,
8836
+ cacheKey: key
8837
+ });
8838
+ } catch (err) {
8839
+ if (err.code === "ENOENT") {
8840
+ return void 0;
8841
+ }
8842
+ throw err;
8843
+ }
8844
+ };
8845
+ const loadBestCachedPackument = async (memoize = true) => {
8846
+ const cachedEntries = (await Promise.all(cacheKeys.map((key) => loadCachedPackument(key, memoize)))).filter(Boolean);
8847
+ if (cachedEntries.length === 0) {
8848
+ return void 0;
8849
+ }
8850
+ return _.maxBy(cachedEntries, (cached) => cached.refreshTime || 0) || cachedEntries[0];
8851
+ };
8852
+ const readMemoizedPackument = async () => {
8853
+ const memoized = await loadBestCachedPackument(false);
8854
+ if (!(memoized && memoized.data)) {
8855
+ return void 0;
8856
+ }
8857
+ logger.debug(`using memoized packument cache for '${pkgName}'`);
8858
+ cacheMemoized = true;
8859
+ this._metaStat.wait--;
8860
+ return JSON.parse(memoized.data.toString());
8861
+ };
9211
8862
  const queueMetaFetchRequest = (cached) => {
9212
8863
  const offline = this._fyn.remoteMetaDisabled;
9213
8864
  if (cached && this._fyn.forceCache) {
@@ -9240,15 +8891,7 @@ class PkgSrcManager {
9240
8891
  // when the semver is a url then the meta is not from npm registry and
9241
8892
  // we can't use the cache for registry
9242
8893
  Promise.resolve()
9243
- ) : cacache.get(this._cacheDir, cacheKey, { memoize: true }).then(async (cached) => {
9244
- if (cached) {
9245
- const info = await getCacheInfoWithRefreshTime(this._cacheDir, cacheKey);
9246
- if (info) {
9247
- cached.refreshTime = info.refreshTime;
9248
- }
9249
- }
9250
- return cached;
9251
- })).then((cached) => {
8894
+ ) : loadBestCachedPackument(true)).then((cached) => {
9252
8895
  const packument = cached && cached.data && JSON.parse(cached.data);
9253
8896
  foundCache = cached;
9254
8897
  if (cached && cached.refreshTime) {
@@ -9264,14 +8907,26 @@ class PkgSrcManager {
9264
8907
  }
9265
8908
  }
9266
8909
  if (cached && metaMemoizeUrl) {
9267
- const encKey = encodeURIComponent(cacheKey);
9268
- return nodeFetch(`${metaMemoizeUrl}?key=${encKey}`).then(
9269
- (res) => {
8910
+ const checkMemoizedCache = async () => {
8911
+ for (const key of cacheKeys) {
8912
+ const encKey = encodeURIComponent(key);
8913
+ const res = await nodeFetch(`${metaMemoizeUrl}?key=${encKey}`);
9270
8914
  if (res.status === 200) {
9271
- logger.debug(`using memoized packument cache for '${pkgName}'`);
9272
- cacheMemoized = true;
9273
- this._metaStat.wait--;
9274
- return packument;
8915
+ return true;
8916
+ }
8917
+ }
8918
+ return false;
8919
+ };
8920
+ return checkMemoizedCache().then(
8921
+ async (hasMemoizedCache) => {
8922
+ if (hasMemoizedCache) {
8923
+ const memoizedPackument = await readMemoizedPackument();
8924
+ if (memoizedPackument) {
8925
+ return memoizedPackument;
8926
+ }
8927
+ logger.warn(
8928
+ `memoized packument cache for '${pkgName}' was signaled but cache entry was missing; refetching`
8929
+ );
9275
8930
  }
9276
8931
  return queueMetaFetchRequest(packument);
9277
8932
  },
@@ -9462,303 +9117,6 @@ module.exports = PkgSrcManager;
9462
9117
  module.exports.META_CACHE_STALE_TIME = META_CACHE_STALE_TIME;
9463
9118
 
9464
9119
 
9465
- /***/ }),
9466
-
9467
- /***/ "./lib/pkg-stat-provider.ts":
9468
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
9469
-
9470
- "use strict";
9471
-
9472
- const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
9473
- const semverUtil = __webpack_require__("./lib/util/semver.ts");
9474
- const PkgDepLinker = __webpack_require__("./lib/pkg-dep-linker.ts");
9475
- const { SEMVER } = __webpack_require__("./lib/symbols.ts");
9476
- const PACKAGE_JSON = "~package.json";
9477
- class PkgStatProvider {
9478
- _fyn;
9479
- _fynRes;
9480
- _dependentsCache;
9481
- _allPaths;
9482
- _circularDeps;
9483
- constructor({ fyn }) {
9484
- this._fyn = fyn;
9485
- this._fynRes = null;
9486
- this._dependentsCache = {};
9487
- this._allPaths = [];
9488
- this._circularDeps = [];
9489
- }
9490
- /**
9491
- * Find packages matching the given ID pattern.
9492
- *
9493
- * @param pkgId - Package ID (name or name@semver)
9494
- * @returns Array of matching package info
9495
- */
9496
- findPkgsById(pkgId) {
9497
- const pkgs = this._fyn._data?.pkgs;
9498
- if (!pkgs) return [];
9499
- const ix = pkgId.indexOf("@", 1);
9500
- const sx = ix > 0 ? ix : pkgId.length;
9501
- const name = pkgId.substr(0, sx);
9502
- const semver = pkgId.substr(sx + 1);
9503
- return _(pkgs[name]).map((vpkg, version) => {
9504
- if (!semver || semverUtil.satisfies(version, semver)) {
9505
- return vpkg;
9506
- }
9507
- }).filter((x) => x).value();
9508
- }
9509
- /**
9510
- * Find all packages that depend on the given package.
9511
- *
9512
- * @param ask - Package info { name, version, local? }
9513
- * @returns Array of dependent packages
9514
- */
9515
- findDependents(ask) {
9516
- const pkgs = this._fyn._data?.pkgs;
9517
- if (!pkgs) return [];
9518
- const dependents = [];
9519
- if (!this._fynRes) {
9520
- const depLinker = new PkgDepLinker({ fyn: this._fyn });
9521
- this._fynRes = depLinker.makeAppFynRes(this._fyn._data.res, {});
9522
- }
9523
- const check = (res, vpkg) => {
9524
- const semv = ask.local ? semverUtil.unlocalify(ask.version) : ask.version;
9525
- if (res && semverUtil.satisfies(res.resolved, semv)) {
9526
- dependents.push(vpkg);
9527
- }
9528
- };
9529
- for (const name in pkgs) {
9530
- const pkg = pkgs[name];
9531
- for (const version in pkg) {
9532
- const vpkg = pkg[version];
9533
- ["dep", "opt", "per"].forEach((s) => {
9534
- const x = vpkg.res[s];
9535
- check(x && x[ask.name], vpkg);
9536
- });
9537
- }
9538
- }
9539
- check(this._fynRes[ask.name], { name: PACKAGE_JSON, promoted: true });
9540
- return dependents;
9541
- }
9542
- /**
9543
- * Get the package ID string.
9544
- */
9545
- _getPkgId(pkg) {
9546
- if (pkg.name === PACKAGE_JSON) {
9547
- return pkg.name;
9548
- }
9549
- return `${pkg.name}@${pkg.version}`;
9550
- }
9551
- /**
9552
- * Find dependency paths from root to the given package.
9553
- *
9554
- * @param pkgIds - Package IDs to trace
9555
- * @param output - Current path being built
9556
- * @param askName - Original package name being traced
9557
- */
9558
- async _findDepPaths(pkgIds, output = [], askName = "") {
9559
- const data = this._fyn._data;
9560
- const pkgs = data?.pkgs;
9561
- if (!pkgs) return;
9562
- for (const pkgId of pkgIds) {
9563
- const askPkgs = this.findPkgsById(pkgId).sort(
9564
- (a, b) => semverUtil.simpleCompare(a.version, b.version)
9565
- );
9566
- if (askPkgs.length < 1) {
9567
- if (pkgId === PACKAGE_JSON) {
9568
- const newOutput = [].concat(output);
9569
- ["dependencies", "optionalDependencies", "peerDependencies", "devDependencies"].find((s) => {
9570
- const semver = _.get(this._fyn, ["_pkg", s, askName]);
9571
- if (semver) {
9572
- newOutput[SEMVER] = semver;
9573
- }
9574
- return semver;
9575
- });
9576
- this._allPaths.push(newOutput);
9577
- } else {
9578
- this._allPaths.push([pkgId]);
9579
- }
9580
- continue;
9581
- }
9582
- for (const pkg of askPkgs) {
9583
- const id = this._getPkgId(pkg);
9584
- if (output.indexOf(id) >= 0) {
9585
- this._circularDeps.push([id].concat(output));
9586
- continue;
9587
- }
9588
- let dependents = this._dependentsCache[id];
9589
- if (!dependents) {
9590
- this._dependentsCache[id] = dependents = this.findDependents(pkg).sort((a, b) => {
9591
- if (a.name === b.name) {
9592
- return semverUtil.simpleCompare(a.version, b.version);
9593
- }
9594
- return a.name > b.name ? 1 : -1;
9595
- });
9596
- }
9597
- const followIds = dependents.filter((x) => x.name !== PACKAGE_JSON).map((x) => `${x.name}@${x.version.replace("-fynlocal_h", "")}`);
9598
- if (dependents.length > 0) {
9599
- const newOutput = [id].concat(output);
9600
- if (output.length === 1) {
9601
- ["dep", "opt", "per", "dev"].find((s) => {
9602
- const sv = _.get(pkg, ["res", s, askName]);
9603
- if (sv) {
9604
- newOutput[SEMVER] = sv.semver;
9605
- }
9606
- return sv;
9607
- });
9608
- } else {
9609
- newOutput[SEMVER] = output[SEMVER];
9610
- }
9611
- if (followIds.length > 0) {
9612
- await this._findDepPaths(followIds, newOutput, askName);
9613
- } else if (output) {
9614
- this._allPaths.push(newOutput);
9615
- }
9616
- }
9617
- }
9618
- }
9619
- }
9620
- /**
9621
- * Filter paths to show only the most significant ones.
9622
- *
9623
- * @param paths - All dependency paths
9624
- * @param maxPaths - Maximum number of paths to return
9625
- * @returns Filtered significant paths
9626
- */
9627
- _filterSignificantPaths(paths, maxPaths = 5) {
9628
- const cmpDepPath = (a, b) => {
9629
- for (let ixA = 0; ixA < a.length; ixA++) {
9630
- if (b.length <= ixA) return 1;
9631
- const aId = a[ixA];
9632
- const bId = b[ixA];
9633
- if (aId !== bId) return aId > bId ? 1 : -1;
9634
- }
9635
- return 0;
9636
- };
9637
- paths = paths.sort((a, b) => a.length - b.length);
9638
- let minDetails = 5;
9639
- let briefPaths = paths;
9640
- while (briefPaths.length > maxPaths && minDetails > 0) {
9641
- const occurLevels = {};
9642
- briefPaths = paths.filter((dp) => {
9643
- const last = dp.length - 1;
9644
- for (let ix = 0; ix < last; ix++) {
9645
- const pkgId = dp[ix];
9646
- const occur = occurLevels[pkgId];
9647
- if (occur && occur.level < ix && occur.leaf === dp[last] && dp.length - ix > minDetails) {
9648
- return false;
9649
- }
9650
- occurLevels[pkgId] = { level: ix, leaf: dp[last] };
9651
- }
9652
- return true;
9653
- });
9654
- minDetails--;
9655
- }
9656
- return briefPaths.sort(cmpDepPath);
9657
- }
9658
- /**
9659
- * Get detailed stat information for a specific package version.
9660
- *
9661
- * @param name - Package name
9662
- * @param version - Package version
9663
- * @returns Stat result with dependents and paths
9664
- */
9665
- async getPackageStat(name, version) {
9666
- const pkgs = this._fyn._data?.pkgs;
9667
- if (!pkgs || !pkgs[name] || !pkgs[name][version]) {
9668
- return null;
9669
- }
9670
- const pkg = pkgs[name][version];
9671
- const pkgId = `${name}@${version}`;
9672
- const dependents = this.findDependents({ name, version, local: pkg.local }).sort((a, b) => {
9673
- if (a.name === b.name) {
9674
- return semverUtil.simpleCompare(a.version, b.version);
9675
- }
9676
- return a.name > b.name ? 1 : -1;
9677
- });
9678
- this._allPaths = [];
9679
- this._circularDeps = [];
9680
- const depIds = dependents.map((d) => this._getPkgId(d));
9681
- await this._findDepPaths(depIds, [pkgId], name);
9682
- const paths = this._allPaths.filter((p) => p[0] === pkgId || p.includes(pkgId));
9683
- return {
9684
- name,
9685
- version,
9686
- promoted: pkg.promoted || false,
9687
- dependents: dependents.map((d) => ({
9688
- name: d.name,
9689
- version: d.version,
9690
- promoted: d.promoted || false
9691
- })),
9692
- allPaths: paths,
9693
- significantPaths: this._filterSignificantPaths(paths),
9694
- circularDeps: this._circularDeps
9695
- };
9696
- }
9697
- /**
9698
- * Find all installed versions matching a package ID pattern.
9699
- *
9700
- * @param pkgId - Package ID (name or name@semver)
9701
- * @returns Matching versions result
9702
- */
9703
- findMatchingVersions(pkgId) {
9704
- const matches = this.findPkgsById(pkgId).sort(
9705
- (a, b) => semverUtil.simpleCompare(a.version, b.version)
9706
- );
9707
- return {
9708
- searchId: pkgId,
9709
- versions: matches.map((m) => ({
9710
- name: m.name,
9711
- version: m.version,
9712
- promoted: m.promoted || false
9713
- }))
9714
- };
9715
- }
9716
- /**
9717
- * Get stat for all versions of a package.
9718
- * This is the main entry point for the audit formatter.
9719
- *
9720
- * @param name - Package name
9721
- * @param version - Optional specific version
9722
- * @returns Array of stat results for all matching versions
9723
- */
9724
- async getPackageStats(name, version) {
9725
- const pkgId = version ? `${name}@${version}` : name;
9726
- const matches = this.findMatchingVersions(pkgId);
9727
- const results = [];
9728
- for (const match of matches.versions) {
9729
- const stat = await this.getPackageStat(match.name, match.version);
9730
- if (stat) {
9731
- results.push(stat);
9732
- }
9733
- }
9734
- return results;
9735
- }
9736
- /**
9737
- * Format dependency paths with semver info.
9738
- *
9739
- * @param paths - Array of paths
9740
- * @returns Formatted path strings
9741
- */
9742
- formatPaths(paths) {
9743
- return paths.map((p) => {
9744
- const semver = p[SEMVER];
9745
- const pathStr = p.join(" > ");
9746
- return semver ? `${pathStr} (${semver})` : pathStr;
9747
- });
9748
- }
9749
- /**
9750
- * Reset caches. Call this if fyn data changes.
9751
- */
9752
- reset() {
9753
- this._fynRes = null;
9754
- this._dependentsCache = {};
9755
- this._allPaths = [];
9756
- this._circularDeps = [];
9757
- }
9758
- }
9759
- module.exports = PkgStatProvider;
9760
-
9761
-
9762
9120
  /***/ }),
9763
9121
 
9764
9122
  /***/ "./lib/symbols.ts":
@@ -10201,7 +9559,7 @@ const Path = __webpack_require__("path");
10201
9559
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
10202
9560
  const fs = __webpack_require__("fs");
10203
9561
  const xaa = __webpack_require__("./lib/util/xaa.ts");
10204
- const npmPacklist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.3-fynlocal_h/npm-packlist/lib/index.js");
9562
+ const npmPacklist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.4/npm-packlist/lib/index.js");
10205
9563
  const Arborist = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/index.js");
10206
9564
  const fynTil = __webpack_require__("./lib/util/fyntil.ts");
10207
9565
  const logger = __webpack_require__("./lib/logger.ts");
@@ -10731,7 +10089,7 @@ module.exports = { addNpmLifecycle, runNpmScript };
10731
10089
 
10732
10090
  "use strict";
10733
10091
 
10734
- const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
10092
+ const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
10735
10093
  const Path = __webpack_require__("path");
10736
10094
  const os = __webpack_require__("os");
10737
10095
  function split(v, sep, index = 0) {
@@ -10922,7 +10280,7 @@ const Path = __webpack_require__("path");
10922
10280
  const requireAt = __webpack_require__("./node_modules/.f/_/require-at/1.0.6/require-at/require-at.js");
10923
10281
  const logger = __webpack_require__("./lib/logger.ts");
10924
10282
  const { getGlobalNodeModules } = __webpack_require__("./lib/util/fyntil.ts");
10925
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
10283
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
10926
10284
  let nodeGypBinPath;
10927
10285
  function _searchNodeGypBin({ npmDir, searchPath }) {
10928
10286
  if (!nodeGypBinPath) {
@@ -11015,7 +10373,7 @@ module.exports = function _sortObjKeys(obj) {
11015
10373
 
11016
10374
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
11017
10375
  const Path = __webpack_require__("path");
11018
- const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
10376
+ const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
11019
10377
  const filterScanDir = __webpack_require__("./node_modules/.f/_/filter-scan-dir/1.6.0/filter-scan-dir/index.cjs");
11020
10378
  async function _scanFileStats(dir, ignores, baseDir = "") {
11021
10379
  const ignore = (fullPath) => ignores.find((pattern) => mm(fullPath, pattern, { dot: true }));
@@ -11082,7 +10440,7 @@ exports.processLifecycleInput = processLifecycleInput;
11082
10440
  exports.processOutput = processOutput;
11083
10441
  const tslib_1 = __webpack_require__("./node_modules/.f/_/tslib/2.8.1/tslib/tslib.es6.mjs");
11084
10442
  const filter_scan_dir_1 = __webpack_require__("./node_modules/.f/_/filter-scan-dir/1.6.0/filter-scan-dir/index.cjs");
11085
- const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js"));
10443
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11086
10444
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11087
10445
  const fs_1 = tslib_1.__importDefault(__webpack_require__("fs"));
11088
10446
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
@@ -11340,9 +10698,9 @@ const assert_1 = tslib_1.__importDefault(__webpack_require__("assert"));
11340
10698
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
11341
10699
  const fs_1 = __webpack_require__("fs");
11342
10700
  const filter_scan_dir_1 = __webpack_require__("./node_modules/.f/_/filter-scan-dir/1.6.0/filter-scan-dir/index.cjs");
11343
- const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js"));
10701
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11344
10702
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11345
- const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js"));
10703
+ const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js"));
11346
10704
  const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11347
10705
  const util_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/util.js");
11348
10706
  const is_path_inside_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/is-path-inside/3.0.3/is-path-inside/index.js"));
@@ -11907,7 +11265,7 @@ const tslib_1 = __webpack_require__("./node_modules/.f/_/tslib/2.8.1/tslib/tslib
11907
11265
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
11908
11266
  const fs_1 = __webpack_require__("fs");
11909
11267
  const filter_scan_dir_1 = __webpack_require__("./node_modules/.f/_/filter-scan-dir/1.6.0/filter-scan-dir/index.cjs");
11910
- const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js"));
11268
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11911
11269
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11912
11270
  const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11913
11271
  tslib_1.__exportStar(__webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/fynpo-dep-graph.js"), exports);
@@ -12114,7 +11472,7 @@ exports.deconstructMM = deconstructMM;
12114
11472
  exports.checkMmMatch = checkMmMatch;
12115
11473
  exports.unrollMmMatch = unrollMmMatch;
12116
11474
  const tslib_1 = __webpack_require__("./node_modules/.f/_/tslib/2.8.1/tslib/tslib.es6.mjs");
12117
- const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js"));
11475
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
12118
11476
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
12119
11477
  function groupMM(mms, groups) {
12120
11478
  mms.forEach((mm) => {
@@ -13426,7 +12784,7 @@ const { lstat, readlink } = __webpack_require__("node:fs/promises");
13426
12784
  const { depth } = __webpack_require__("./node_modules/.f/_/treeverse/3.0.0/treeverse/lib/index.js");
13427
12785
  const { log, time } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
13428
12786
  const { redact } = __webpack_require__("./node_modules/.f/_/@npmcli/redact/3.2.2/@npmcli/redact/lib/index.js");
13429
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
12787
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
13430
12788
  const {
13431
12789
  OK,
13432
12790
  REPLACE,
@@ -15986,7 +15344,7 @@ const { dirname, resolve, relative, join } = __webpack_require__("node:path");
15986
15344
  const { log, time } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
15987
15345
  const { lstat, mkdir, rm, symlink } = __webpack_require__("node:fs/promises");
15988
15346
  const { moveFile } = __webpack_require__("./node_modules/.f/_/@npmcli/fs/4.0.0/@npmcli/fs/lib/index.js");
15989
- const { subset, intersects } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
15347
+ const { subset, intersects } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
15990
15348
  const { walkUp } = __webpack_require__("./node_modules/.f/_/walk-up-path/4.0.0/walk-up-path/dist/commonjs/index.js");
15991
15349
  const AuditReport = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/audit-report.js");
15992
15350
  const Diff = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/diff.js");
@@ -17377,7 +16735,7 @@ module.exports = calcDepFlags;
17377
16735
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17378
16736
 
17379
16737
  const localeCompare = __webpack_require__("./node_modules/.f/_/@isaacs/string-locale-compare/1.1.0/@isaacs/string-locale-compare/index.js")("en");
17380
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
16738
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
17381
16739
  const debug = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/debug.js");
17382
16740
  const peerEntrySets = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/peer-entry-sets.js");
17383
16741
  const deepestNestingTarget = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/deepest-nesting-target.js");
@@ -17784,7 +17142,7 @@ module.exports = deepestNestingTarget;
17784
17142
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/dep-valid.js":
17785
17143
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17786
17144
 
17787
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
17145
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
17788
17146
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
17789
17147
  const { relative } = __webpack_require__("node:path");
17790
17148
  const fromPath = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/from-path.js");
@@ -18708,7 +18066,7 @@ module.exports = Link;
18708
18066
  const PackageJson = __webpack_require__("./node_modules/.f/_/@npmcli/package-json/7.0.1/@npmcli/package-json/lib/index.js");
18709
18067
  const nameFromFolder = __webpack_require__("./node_modules/.f/_/@npmcli/name-from-folder/3.0.0/@npmcli/name-from-folder/lib/index.js");
18710
18068
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
18711
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
18069
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
18712
18070
  const util = __webpack_require__("node:util");
18713
18071
  const { getPaths: getBinPaths } = __webpack_require__("./node_modules/.f/_/bin-links/5.0.0/bin-links/lib/index.js");
18714
18072
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
@@ -19892,7 +19250,7 @@ module.exports = { overrideResolves };
19892
19250
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19893
19251
 
19894
19252
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
19895
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
19253
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
19896
19254
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
19897
19255
  class OverrideSet {
19898
19256
  constructor({ overrides, key, parent }) {
@@ -20687,7 +20045,7 @@ const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log
20687
20045
  const { minimatch } = __webpack_require__("./node_modules/.f/_/minimatch/10.1.1/minimatch/dist/commonjs/index.js");
20688
20046
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
20689
20047
  const pacote = __webpack_require__("./node_modules/.f/_/pacote/21.0.3/pacote/lib/index.js");
20690
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
20048
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
20691
20049
  const npmFetch = __webpack_require__("./node_modules/.f/_/npm-registry-fetch/19.1.0/npm-registry-fetch/lib/index.js");
20692
20050
  class Results {
20693
20051
  #currentAstSelector;
@@ -22725,7 +22083,7 @@ debug(() => module.exports = checkTree);
22725
22083
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/version-from-tgz.js":
22726
22084
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22727
22085
 
22728
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22086
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
22729
22087
  const { basename } = __webpack_require__("node:path");
22730
22088
  const { URL } = __webpack_require__("node:url");
22731
22089
  module.exports = (name, tgz) => {
@@ -22769,7 +22127,7 @@ const versionFromBaseScopeName = (base, scope, name) => {
22769
22127
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/vuln.js":
22770
22128
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22771
22129
 
22772
- const { satisfies, simplifyRange } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22130
+ const { satisfies, simplifyRange } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
22773
22131
  const semverOpt = { loose: true, includePrerelease: true };
22774
22132
  const localeCompare = __webpack_require__("./node_modules/.f/_/@isaacs/string-locale-compare/1.1.0/@isaacs/string-locale-compare/index.js")("en");
22775
22133
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
@@ -23204,7 +22562,7 @@ module.exports = getOptions;
23204
22562
  /***/ "./node_modules/.f/_/@npmcli/fs/4.0.0/@npmcli/fs/lib/common/node.js":
23205
22563
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
23206
22564
 
23207
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22565
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
23208
22566
  const satisfies = (range) => {
23209
22567
  return semver.satisfies(process.version, range, { includePrerelease: true });
23210
22568
  };
@@ -24072,7 +23430,7 @@ module.exports = ({ cwd = process.cwd() } = {}) => stat(cwd + "/.git").then(() =
24072
23430
  /***/ "./node_modules/.f/_/@npmcli/git/7.0.0/@npmcli/git/lib/lines-to-revs.js":
24073
23431
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24074
23432
 
24075
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
23433
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
24076
23434
  module.exports = (lines) => finish(lines.reduce(linesToRevsReducer, {
24077
23435
  versions: {},
24078
23436
  "dist-tags": {},
@@ -24685,7 +24043,7 @@ module.exports = mapWorkspaces;
24685
24043
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24686
24044
 
24687
24045
  const hash = __webpack_require__("./node_modules/.f/_/@npmcli/metavuln-calculator/9.0.3/@npmcli/metavuln-calculator/lib/hash.js");
24688
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
24046
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
24689
24047
  const semverOpt = { includePrerelease: true, loose: true };
24690
24048
  const getDepSpec = __webpack_require__("./node_modules/.f/_/@npmcli/metavuln-calculator/9.0.3/@npmcli/metavuln-calculator/lib/get-dep-spec.js");
24691
24049
  const _source = Symbol("source");
@@ -25661,8 +25019,8 @@ module.exports = { normalizeData };
25661
25019
  /***/ "./node_modules/.f/_/@npmcli/package-json/7.0.1/@npmcli/package-json/lib/normalize.js":
25662
25020
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
25663
25021
 
25664
- const valid = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/valid.js");
25665
- const clean = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/clean.js");
25022
+ const valid = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/valid.js");
25023
+ const clean = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/clean.js");
25666
25024
  const fs = __webpack_require__("node:fs/promises");
25667
25025
  const path = __webpack_require__("node:path");
25668
25026
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
@@ -49890,7 +49248,7 @@ function ownProp(obj, field) {
49890
49248
  return Object.prototype.hasOwnProperty.call(obj, field);
49891
49249
  }
49892
49250
  var path = __webpack_require__("path");
49893
- var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
49251
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
49894
49252
  var isAbsolute = __webpack_require__("./node_modules/.f/_/path-is-absolute/1.0.1/path-is-absolute/index.js");
49895
49253
  var Minimatch = minimatch.Minimatch;
49896
49254
  function alphasorti(a, b) {
@@ -50077,7 +49435,7 @@ function childrenIgnored(self, path2) {
50077
49435
  module.exports = glob;
50078
49436
  var fs = __webpack_require__("fs");
50079
49437
  var rp = __webpack_require__("./node_modules/.f/_/fs.realpath/1.0.0/fs.realpath/index.js");
50080
- var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
49438
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
50081
49439
  var Minimatch = minimatch.Minimatch;
50082
49440
  var inherits = __webpack_require__("./node_modules/.f/_/inherits/2.0.4/inherits/inherits.js");
50083
49441
  var EE = (__webpack_require__("events").EventEmitter);
@@ -50636,7 +49994,7 @@ module.exports = globSync;
50636
49994
  globSync.GlobSync = GlobSync;
50637
49995
  var fs = __webpack_require__("fs");
50638
49996
  var rp = __webpack_require__("./node_modules/.f/_/fs.realpath/1.0.0/fs.realpath/index.js");
50639
- var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
49997
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
50640
49998
  var Minimatch = minimatch.Minimatch;
50641
49999
  var Glob = (__webpack_require__("./node_modules/.f/_/glob/7.1.6/glob/glob.js").Glob);
50642
50000
  var util = __webpack_require__("util");
@@ -53818,7 +53176,7 @@ const normalizeSignal = function({
53818
53176
 
53819
53177
  /***/ }),
53820
53178
 
53821
- /***/ "./node_modules/.f/_/ignore-walk/8.0.0-fynlocal_h/ignore-walk/lib/index.js":
53179
+ /***/ "./node_modules/.f/_/ignore-walk/8.0.0/ignore-walk/lib/index.js":
53822
53180
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
53823
53181
 
53824
53182
  "use strict";
@@ -53866,13 +53224,7 @@ class Walker extends EE {
53866
53224
  return ret;
53867
53225
  }
53868
53226
  start() {
53869
- fs.readdir(this.path, (er, entries) => {
53870
- try {
53871
- er ? this.emit("error", er) : this.onReaddir(entries);
53872
- } catch (err) {
53873
- this.emit("error", err);
53874
- }
53875
- });
53227
+ fs.readdir(this.path, (er, entries) => er ? this.emit("error", er) : this.onReaddir(entries));
53876
53228
  return this;
53877
53229
  }
53878
53230
  isIgnoreFile(e) {
@@ -54641,7 +53993,7 @@ const enquirer_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.
54641
53993
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
54642
53994
  const fs_1 = tslib_1.__importDefault(__webpack_require__("fs"));
54643
53995
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
54644
- const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js"));
53996
+ const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js"));
54645
53997
  function sortObj(obj) {
54646
53998
  const out = {};
54647
53999
  const sortedKeys = Object.keys(obj).sort().forEach((x) => {
@@ -63334,7 +62686,7 @@ module.exports["default"] = mimicFn;
63334
62686
 
63335
62687
  /***/ }),
63336
62688
 
63337
- /***/ "./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js":
62689
+ /***/ "./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js":
63338
62690
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
63339
62691
 
63340
62692
  module.exports = minimatch;
@@ -63440,6 +62792,7 @@ function Minimatch(pattern, options) {
63440
62792
  pattern = pattern.split(path.sep).join("/");
63441
62793
  }
63442
62794
  this.options = options;
62795
+ this.maxGlobstarRecursion = options.maxGlobstarRecursion !== void 0 ? options.maxGlobstarRecursion : 200;
63443
62796
  this.set = [];
63444
62797
  this.pattern = pattern;
63445
62798
  this.regexp = null;
@@ -63597,6 +62950,7 @@ function parse(pattern, isSub) {
63597
62950
  re += c;
63598
62951
  continue;
63599
62952
  }
62953
+ if (c === "*" && stateChar === "*") continue;
63600
62954
  self.debug("call clearStateChar %j", stateChar);
63601
62955
  clearStateChar();
63602
62956
  stateChar = c;
@@ -63835,50 +63189,147 @@ Minimatch.prototype.match = function match(f, partial) {
63835
63189
  return this.negate;
63836
63190
  };
63837
63191
  Minimatch.prototype.matchOne = function(file, pattern, partial) {
63838
- var options = this.options;
63839
- this.debug(
63840
- "matchOne",
63841
- { "this": this, file, pattern }
63842
- );
63843
- this.debug("matchOne", file.length, pattern.length);
63844
- for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
63845
- this.debug("matchOne loop");
63846
- var p = pattern[pi];
63847
- var f = file[fi];
63848
- this.debug(pattern, p, f);
63849
- if (p === false) return false;
63850
- if (p === GLOBSTAR) {
63851
- this.debug("GLOBSTAR", [pattern, p, f]);
63852
- var fr = fi;
63853
- var pr = pi + 1;
63854
- if (pr === pl) {
63855
- this.debug("** at the end");
63856
- for (; fi < fl; fi++) {
63857
- if (file[fi] === "." || file[fi] === ".." || !options.dot && file[fi].charAt(0) === ".") return false;
63858
- }
63859
- return true;
63192
+ if (pattern.indexOf(GLOBSTAR) !== -1) {
63193
+ return this._matchGlobstar(file, pattern, partial, 0, 0);
63194
+ }
63195
+ return this._matchOne(file, pattern, partial, 0, 0);
63196
+ };
63197
+ Minimatch.prototype._matchGlobstar = function(file, pattern, partial, fileIndex, patternIndex) {
63198
+ var i;
63199
+ var firstgs = -1;
63200
+ for (i = patternIndex; i < pattern.length; i++) {
63201
+ if (pattern[i] === GLOBSTAR) {
63202
+ firstgs = i;
63203
+ break;
63204
+ }
63205
+ }
63206
+ var lastgs = -1;
63207
+ for (i = pattern.length - 1; i >= 0; i--) {
63208
+ if (pattern[i] === GLOBSTAR) {
63209
+ lastgs = i;
63210
+ break;
63211
+ }
63212
+ }
63213
+ var head = pattern.slice(patternIndex, firstgs);
63214
+ var body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs);
63215
+ var tail = partial ? [] : pattern.slice(lastgs + 1);
63216
+ if (head.length) {
63217
+ var fileHead = file.slice(fileIndex, fileIndex + head.length);
63218
+ if (!this._matchOne(fileHead, head, partial, 0, 0)) {
63219
+ return false;
63220
+ }
63221
+ fileIndex += head.length;
63222
+ }
63223
+ var fileTailMatch = 0;
63224
+ if (tail.length) {
63225
+ if (tail.length + fileIndex > file.length) return false;
63226
+ var tailStart = file.length - tail.length;
63227
+ if (this._matchOne(file, tail, partial, tailStart, 0)) {
63228
+ fileTailMatch = tail.length;
63229
+ } else {
63230
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
63231
+ return false;
63860
63232
  }
63861
- while (fr < fl) {
63862
- var swallowee = file[fr];
63863
- this.debug("\nglobstar while", file, fr, pattern, pr, swallowee);
63864
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
63865
- this.debug("globstar found match!", fr, fl, swallowee);
63866
- return true;
63867
- } else {
63868
- if (swallowee === "." || swallowee === ".." || !options.dot && swallowee.charAt(0) === ".") {
63869
- this.debug("dot detected!", file, fr, pattern, pr);
63870
- break;
63871
- }
63872
- this.debug("globstar swallow a segment, and continue");
63873
- fr++;
63874
- }
63233
+ tailStart--;
63234
+ if (!this._matchOne(file, tail, partial, tailStart, 0)) {
63235
+ return false;
63875
63236
  }
63876
- if (partial) {
63877
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
63878
- if (fr === fl) return true;
63237
+ fileTailMatch = tail.length + 1;
63238
+ }
63239
+ }
63240
+ if (!body.length) {
63241
+ var sawSome = !!fileTailMatch;
63242
+ for (i = fileIndex; i < file.length - fileTailMatch; i++) {
63243
+ var f = String(file[i]);
63244
+ sawSome = true;
63245
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63246
+ return false;
63879
63247
  }
63248
+ }
63249
+ return partial || sawSome;
63250
+ }
63251
+ var bodySegments = [[[], 0]];
63252
+ var currentBody = bodySegments[0];
63253
+ var nonGsParts = 0;
63254
+ var nonGsPartsSums = [0];
63255
+ for (var bi = 0; bi < body.length; bi++) {
63256
+ var b = body[bi];
63257
+ if (b === GLOBSTAR) {
63258
+ nonGsPartsSums.push(nonGsParts);
63259
+ currentBody = [[], 0];
63260
+ bodySegments.push(currentBody);
63261
+ } else {
63262
+ currentBody[0].push(b);
63263
+ nonGsParts++;
63264
+ }
63265
+ }
63266
+ var idx = bodySegments.length - 1;
63267
+ var fileLength = file.length - fileTailMatch;
63268
+ for (var si = 0; si < bodySegments.length; si++) {
63269
+ bodySegments[si][1] = fileLength - (nonGsPartsSums[idx--] + bodySegments[si][0].length);
63270
+ }
63271
+ return !!this._matchGlobStarBodySections(
63272
+ file,
63273
+ bodySegments,
63274
+ fileIndex,
63275
+ 0,
63276
+ partial,
63277
+ 0,
63278
+ !!fileTailMatch
63279
+ );
63280
+ };
63281
+ Minimatch.prototype._matchGlobStarBodySections = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
63282
+ var bs = bodySegments[bodyIndex];
63283
+ if (!bs) {
63284
+ for (var i = fileIndex; i < file.length; i++) {
63285
+ sawTail = true;
63286
+ var f = file[i];
63287
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63288
+ return false;
63289
+ }
63290
+ }
63291
+ return sawTail;
63292
+ }
63293
+ var body = bs[0];
63294
+ var after = bs[1];
63295
+ while (fileIndex <= after) {
63296
+ var m = this._matchOne(
63297
+ file.slice(0, fileIndex + body.length),
63298
+ body,
63299
+ partial,
63300
+ fileIndex,
63301
+ 0
63302
+ );
63303
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
63304
+ var sub = this._matchGlobStarBodySections(
63305
+ file,
63306
+ bodySegments,
63307
+ fileIndex + body.length,
63308
+ bodyIndex + 1,
63309
+ partial,
63310
+ globStarDepth + 1,
63311
+ sawTail
63312
+ );
63313
+ if (sub !== false) {
63314
+ return sub;
63315
+ }
63316
+ }
63317
+ var f = file[fileIndex];
63318
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63880
63319
  return false;
63881
63320
  }
63321
+ fileIndex++;
63322
+ }
63323
+ return partial || null;
63324
+ };
63325
+ Minimatch.prototype._matchOne = function(file, pattern, partial, fileIndex, patternIndex) {
63326
+ var fi, pi, fl, pl;
63327
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
63328
+ this.debug("matchOne loop");
63329
+ var p = pattern[pi];
63330
+ var f = file[fi];
63331
+ this.debug(pattern, p, f);
63332
+ if (p === false || p === GLOBSTAR) return false;
63882
63333
  var hit;
63883
63334
  if (typeof p === "string") {
63884
63335
  hit = f === p;
@@ -69293,7 +68744,7 @@ module.exports = findNodeDirectory;
69293
68744
  "use strict";
69294
68745
 
69295
68746
  const log = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/log.js");
69296
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
68747
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
69297
68748
  const { execFile } = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/util.js");
69298
68749
  const win = process.platform === "win32";
69299
68750
  function getOsUserInfo() {
@@ -70124,7 +69575,7 @@ const path = __webpack_require__("path");
70124
69575
  const { Transform, promises: { pipeline } } = __webpack_require__("stream");
70125
69576
  const crypto = __webpack_require__("crypto");
70126
69577
  const log = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/log.js");
70127
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
69578
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
70128
69579
  const { download } = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/download.js");
70129
69580
  const processRelease = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/process-release.js");
70130
69581
  const win = process.platform === "win32";
@@ -70805,7 +70256,7 @@ module.exports.Gyp = Gyp;
70805
70256
 
70806
70257
  "use strict";
70807
70258
 
70808
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
70259
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
70809
70260
  const url = __webpack_require__("url");
70810
70261
  const path = __webpack_require__("path");
70811
70262
  const log = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/log.js");
@@ -70932,7 +70383,7 @@ module.exports.usage = 'Runs "clean", "configure" and "build" all at once';
70932
70383
  const fs = (__webpack_require__("./node_modules/.f/_/graceful-fs/4.2.11/graceful-fs/graceful-fs.js").promises);
70933
70384
  const path = __webpack_require__("path");
70934
70385
  const log = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/log.js");
70935
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
70386
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
70936
70387
  async function remove(gyp, argv) {
70937
70388
  const devDir = gyp.devDir;
70938
70389
  log.verbose("remove", "using node-gyp dir:", devDir);
@@ -71875,8 +71326,8 @@ module.exports = {
71875
71326
  /***/ "./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/dev-engines.js":
71876
71327
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
71877
71328
 
71878
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
71879
- const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/valid.js");
71329
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
71330
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/valid.js");
71880
71331
  const recognizedOnFail = [
71881
71332
  "ignore",
71882
71333
  "warn",
@@ -72001,7 +71452,7 @@ module.exports = {
72001
71452
  /***/ "./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/index.js":
72002
71453
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72003
71454
 
72004
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
71455
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
72005
71456
  const currentEnv = __webpack_require__("./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/current-env.js");
72006
71457
  const { checkDevEngines } = __webpack_require__("./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/dev-engines.js");
72007
71458
  const checkEngine = (target, npmVer, nodeVer, force = false) => {
@@ -72178,8 +71629,8 @@ module.exports = {
72178
71629
  /***/ "./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/dev-engines.js":
72179
71630
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72180
71631
 
72181
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
72182
- const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/valid.js");
71632
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
71633
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/valid.js");
72183
71634
  const recognizedOnFail = [
72184
71635
  "ignore",
72185
71636
  "warn",
@@ -72304,7 +71755,7 @@ module.exports = {
72304
71755
  /***/ "./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/index.js":
72305
71756
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72306
71757
 
72307
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
71758
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
72308
71759
  const currentEnv = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/current-env.js");
72309
71760
  const { checkDevEngines } = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/dev-engines.js");
72310
71761
  const checkEngine = (target, npmVer, nodeVer, force = false) => {
@@ -72500,7 +71951,7 @@ const { URL } = __webpack_require__("node:url");
72500
71951
  const path = isWindows ? __webpack_require__("node:path/win32") : __webpack_require__("node:path");
72501
71952
  const { homedir } = __webpack_require__("node:os");
72502
71953
  const HostedGit = __webpack_require__("./node_modules/.f/_/hosted-git-info/9.0.2/hosted-git-info/lib/index.js");
72503
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
71954
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
72504
71955
  const validatePackageName = __webpack_require__("./node_modules/.f/_/validate-npm-package-name/6.0.2/validate-npm-package-name/lib/index.js");
72505
71956
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
72506
71957
  const hasSlashes = isWindows ? /\\|[/]/ : /[/]/;
@@ -72887,12 +72338,12 @@ module.exports.Result = Result;
72887
72338
 
72888
72339
  /***/ }),
72889
72340
 
72890
- /***/ "./node_modules/.f/_/npm-packlist/10.0.3-fynlocal_h/npm-packlist/lib/index.js":
72341
+ /***/ "./node_modules/.f/_/npm-packlist/10.0.4/npm-packlist/lib/index.js":
72891
72342
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72892
72343
 
72893
72344
  "use strict";
72894
72345
 
72895
- const { Walker: IgnoreWalker } = __webpack_require__("./node_modules/.f/_/ignore-walk/8.0.0-fynlocal_h/ignore-walk/lib/index.js");
72346
+ const { Walker: IgnoreWalker } = __webpack_require__("./node_modules/.f/_/ignore-walk/8.0.0/ignore-walk/lib/index.js");
72896
72347
  const { lstatSync: lstat, readFileSync: readFile } = __webpack_require__("fs");
72897
72348
  const { basename, dirname, extname, join, relative, resolve, sep } = __webpack_require__("path");
72898
72349
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/6.0.0/proc-log/lib/index.js");
@@ -72969,7 +72420,6 @@ class PackWalker extends IgnoreWalker {
72969
72420
  this.seen = options.seen || /* @__PURE__ */ new Set();
72970
72421
  this.tree = tree;
72971
72422
  this.requiredFiles = options.requiredFiles || [];
72972
- this.includeSymlinks = options.includeSymlinks;
72973
72423
  const additionalDefaults = [];
72974
72424
  if (options.prefix && options.workspaces) {
72975
72425
  const path = normalizePath(options.path);
@@ -73017,7 +72467,7 @@ class PackWalker extends IgnoreWalker {
73017
72467
  this.ignoreRules[".gitignore"] = null;
73018
72468
  } else if (this.ignoreRules[".npmignore"]) {
73019
72469
  this.ignoreRules[".gitignore"] = null;
73020
- } else if (this.ignoreRules[".gitignore"] && !this.ignoreRules[".npmignore"]) {
72470
+ } else if (this.ignoreRules[".gitignore"] && !this.ignoreRules[".npmignore"] && !this.parent) {
73021
72471
  log.warn(
73022
72472
  "gitignore-fallback",
73023
72473
  "No .npmignore file found, using .gitignore for file exclusion. Consider creating a .npmignore file to explicitly control published files."
@@ -73026,13 +72476,8 @@ class PackWalker extends IgnoreWalker {
73026
72476
  return super.filterEntries();
73027
72477
  }
73028
72478
  // overridden method: we never want to include anything that isn't a file or directory
73029
- // also skip symlinks unless includeSymlinks is true
73030
72479
  onstat(opts, callback) {
73031
- if (opts.st.isSymbolicLink()) {
73032
- if (!this.includeSymlinks) {
73033
- return callback();
73034
- }
73035
- } else if (!opts.st.isFile() && !opts.st.isDirectory()) {
72480
+ if (!opts.st.isFile() && !opts.st.isDirectory()) {
73036
72481
  return callback();
73037
72482
  }
73038
72483
  return super.onstat(opts, callback);
@@ -73074,7 +72519,6 @@ class PackWalker extends IgnoreWalker {
73074
72519
  return {
73075
72520
  ...super.walkerOpt(entry, opts),
73076
72521
  ignoreFiles,
73077
- includeSymlinks: this.includeSymlinks,
73078
72522
  // we map over our own requiredFiles and pass ones that are within this entry
73079
72523
  requiredFiles: this.requiredFiles.map((file) => {
73080
72524
  if (relative(file, entry) === "..") {
@@ -73242,7 +72686,7 @@ walk.Walker = PackWalker;
73242
72686
  "use strict";
73243
72687
 
73244
72688
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
73245
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
72689
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/index.js");
73246
72690
  const { checkEngine } = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/index.js");
73247
72691
  const normalizeBin = __webpack_require__("./node_modules/.f/_/npm-normalize-package-bin/5.0.0/npm-normalize-package-bin/lib/index.js");
73248
72692
  const engineOk = (manifest, npmVersion, nodeVersion) => {
@@ -74750,7 +74194,7 @@ module.exports = pLocate;
74750
74194
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
74751
74195
 
74752
74196
  const { resolve } = __webpack_require__("node:path");
74753
- const packlist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.3-fynlocal_h/npm-packlist/lib/index.js");
74197
+ const packlist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.4/npm-packlist/lib/index.js");
74754
74198
  const runScript = __webpack_require__("./node_modules/.f/_/@npmcli/run-script/10.0.2/@npmcli/run-script/lib/run-script.js");
74755
74199
  const tar = __webpack_require__("./node_modules/.f/_/tar/7.5.2/tar/dist/commonjs/index.js");
74756
74200
  const { Minipass } = __webpack_require__("./node_modules/.f/_/minipass/7.1.2/minipass/dist/commonjs/index.js");
@@ -77804,7 +77248,7 @@ const PassThrough = (__webpack_require__("stream").PassThrough);
77804
77248
  const mississippi = __webpack_require__("./node_modules/.f/_/mississippi/3.0.0/mississippi/index.js");
77805
77249
  const pipe = Promise.promisify(mississippi.pipe, { context: mississippi });
77806
77250
  const tar = __webpack_require__("./node_modules/.f/_/tar/4.4.19/tar/index.js");
77807
- const packlist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.3-fynlocal_h/npm-packlist/lib/index.js");
77251
+ const packlist = __webpack_require__("./node_modules/.f/_/npm-packlist/10.0.4/npm-packlist/lib/index.js");
77808
77252
  const Fs = __webpack_require__("./node_modules/.f/_/opfs/1.1.1/opfs/lib/index.js");
77809
77253
  const readPkgJson = (dir) => {
77810
77254
  return Fs.readFile(Path.join(dir, "package.json").toString().trim()).then(JSON.parse);
@@ -87302,7 +86746,7 @@ SafeBuffer.allocUnsafeSlow = function(size) {
87302
86746
 
87303
86747
  /***/ }),
87304
86748
 
87305
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js":
86749
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/classes/comparator.js":
87306
86750
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87307
86751
 
87308
86752
  "use strict";
@@ -87407,17 +86851,17 @@ class Comparator {
87407
86851
  }
87408
86852
  }
87409
86853
  module.exports = Comparator;
87410
- const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/parse-options.js");
87411
- const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/re.js");
87412
- const cmp = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/cmp.js");
87413
- const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js");
87414
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87415
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
86854
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/parse-options.js");
86855
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/re.js");
86856
+ const cmp = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/cmp.js");
86857
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/debug.js");
86858
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
86859
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
87416
86860
 
87417
86861
 
87418
86862
  /***/ }),
87419
86863
 
87420
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/range.js":
86864
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/classes/range.js":
87421
86865
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87422
86866
 
87423
86867
  "use strict";
@@ -87562,20 +87006,20 @@ class Range {
87562
87006
  }
87563
87007
  }
87564
87008
  module.exports = Range;
87565
- const LRU = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/lrucache.js");
87009
+ const LRU = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/lrucache.js");
87566
87010
  const cache = new LRU();
87567
- const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/parse-options.js");
87568
- const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js");
87569
- const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js");
87570
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87011
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/parse-options.js");
87012
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/comparator.js");
87013
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/debug.js");
87014
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
87571
87015
  const {
87572
87016
  safeRe: re,
87573
87017
  t,
87574
87018
  comparatorTrimReplace,
87575
87019
  tildeTrimReplace,
87576
87020
  caretTrimReplace
87577
- } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/re.js");
87578
- const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js");
87021
+ } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/re.js");
87022
+ const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/constants.js");
87579
87023
  const isNullSet = (c) => c.value === "<0.0.0-0";
87580
87024
  const isAny = (c) => c.value === "";
87581
87025
  const isSatisfiable = (comparators, options) => {
@@ -87796,16 +87240,16 @@ const testSet = (set, version, options) => {
87796
87240
 
87797
87241
  /***/ }),
87798
87242
 
87799
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js":
87243
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js":
87800
87244
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87801
87245
 
87802
87246
  "use strict";
87803
87247
 
87804
- const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js");
87805
- const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js");
87806
- const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/re.js");
87807
- const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/parse-options.js");
87808
- const { compareIdentifiers } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/identifiers.js");
87248
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/debug.js");
87249
+ const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/constants.js");
87250
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/re.js");
87251
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/parse-options.js");
87252
+ const { compareIdentifiers } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/identifiers.js");
87809
87253
  class SemVer {
87810
87254
  constructor(version, options) {
87811
87255
  options = parseOptions(options);
@@ -88077,12 +87521,12 @@ module.exports = SemVer;
88077
87521
 
88078
87522
  /***/ }),
88079
87523
 
88080
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/clean.js":
87524
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/clean.js":
88081
87525
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88082
87526
 
88083
87527
  "use strict";
88084
87528
 
88085
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87529
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
88086
87530
  const clean = (version, options) => {
88087
87531
  const s = parse(version.trim().replace(/^[=v]+/, ""), options);
88088
87532
  return s ? s.version : null;
@@ -88092,17 +87536,17 @@ module.exports = clean;
88092
87536
 
88093
87537
  /***/ }),
88094
87538
 
88095
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/cmp.js":
87539
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/cmp.js":
88096
87540
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88097
87541
 
88098
87542
  "use strict";
88099
87543
 
88100
- const eq = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/eq.js");
88101
- const neq = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/neq.js");
88102
- const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js");
88103
- const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gte.js");
88104
- const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lt.js");
88105
- const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lte.js");
87544
+ const eq = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/eq.js");
87545
+ const neq = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/neq.js");
87546
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gt.js");
87547
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gte.js");
87548
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lt.js");
87549
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lte.js");
88106
87550
  const cmp = (a, op, b, loose) => {
88107
87551
  switch (op) {
88108
87552
  case "===":
@@ -88144,14 +87588,14 @@ module.exports = cmp;
88144
87588
 
88145
87589
  /***/ }),
88146
87590
 
88147
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/coerce.js":
87591
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/coerce.js":
88148
87592
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88149
87593
 
88150
87594
  "use strict";
88151
87595
 
88152
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
88153
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
88154
- const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/re.js");
87596
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
87597
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
87598
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/re.js");
88155
87599
  const coerce = (version, options) => {
88156
87600
  if (version instanceof SemVer) {
88157
87601
  return version;
@@ -88192,12 +87636,12 @@ module.exports = coerce;
88192
87636
 
88193
87637
  /***/ }),
88194
87638
 
88195
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js":
87639
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/compare-build.js":
88196
87640
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88197
87641
 
88198
87642
  "use strict";
88199
87643
 
88200
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87644
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88201
87645
  const compareBuild = (a, b, loose) => {
88202
87646
  const versionA = new SemVer(a, loose);
88203
87647
  const versionB = new SemVer(b, loose);
@@ -88208,36 +87652,36 @@ module.exports = compareBuild;
88208
87652
 
88209
87653
  /***/ }),
88210
87654
 
88211
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare-loose.js":
87655
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/compare-loose.js":
88212
87656
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88213
87657
 
88214
87658
  "use strict";
88215
87659
 
88216
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87660
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88217
87661
  const compareLoose = (a, b) => compare(a, b, true);
88218
87662
  module.exports = compareLoose;
88219
87663
 
88220
87664
 
88221
87665
  /***/ }),
88222
87666
 
88223
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js":
87667
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js":
88224
87668
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88225
87669
 
88226
87670
  "use strict";
88227
87671
 
88228
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87672
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88229
87673
  const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
88230
87674
  module.exports = compare;
88231
87675
 
88232
87676
 
88233
87677
  /***/ }),
88234
87678
 
88235
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/diff.js":
87679
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/diff.js":
88236
87680
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88237
87681
 
88238
87682
  "use strict";
88239
87683
 
88240
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87684
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
88241
87685
  const diff = (version1, version2) => {
88242
87686
  const v1 = parse(version1, null, true);
88243
87687
  const v2 = parse(version2, null, true);
@@ -88278,48 +87722,48 @@ module.exports = diff;
88278
87722
 
88279
87723
  /***/ }),
88280
87724
 
88281
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/eq.js":
87725
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/eq.js":
88282
87726
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88283
87727
 
88284
87728
  "use strict";
88285
87729
 
88286
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87730
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88287
87731
  const eq = (a, b, loose) => compare(a, b, loose) === 0;
88288
87732
  module.exports = eq;
88289
87733
 
88290
87734
 
88291
87735
  /***/ }),
88292
87736
 
88293
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js":
87737
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/gt.js":
88294
87738
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88295
87739
 
88296
87740
  "use strict";
88297
87741
 
88298
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87742
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88299
87743
  const gt = (a, b, loose) => compare(a, b, loose) > 0;
88300
87744
  module.exports = gt;
88301
87745
 
88302
87746
 
88303
87747
  /***/ }),
88304
87748
 
88305
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/gte.js":
87749
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/gte.js":
88306
87750
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88307
87751
 
88308
87752
  "use strict";
88309
87753
 
88310
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87754
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88311
87755
  const gte = (a, b, loose) => compare(a, b, loose) >= 0;
88312
87756
  module.exports = gte;
88313
87757
 
88314
87758
 
88315
87759
  /***/ }),
88316
87760
 
88317
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/inc.js":
87761
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/inc.js":
88318
87762
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88319
87763
 
88320
87764
  "use strict";
88321
87765
 
88322
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87766
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88323
87767
  const inc = (version, release, options, identifier, identifierBase) => {
88324
87768
  if (typeof options === "string") {
88325
87769
  identifierBase = identifier;
@@ -88340,72 +87784,72 @@ module.exports = inc;
88340
87784
 
88341
87785
  /***/ }),
88342
87786
 
88343
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/lt.js":
87787
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/lt.js":
88344
87788
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88345
87789
 
88346
87790
  "use strict";
88347
87791
 
88348
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87792
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88349
87793
  const lt = (a, b, loose) => compare(a, b, loose) < 0;
88350
87794
  module.exports = lt;
88351
87795
 
88352
87796
 
88353
87797
  /***/ }),
88354
87798
 
88355
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/lte.js":
87799
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/lte.js":
88356
87800
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88357
87801
 
88358
87802
  "use strict";
88359
87803
 
88360
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87804
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88361
87805
  const lte = (a, b, loose) => compare(a, b, loose) <= 0;
88362
87806
  module.exports = lte;
88363
87807
 
88364
87808
 
88365
87809
  /***/ }),
88366
87810
 
88367
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/major.js":
87811
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/major.js":
88368
87812
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88369
87813
 
88370
87814
  "use strict";
88371
87815
 
88372
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87816
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88373
87817
  const major = (a, loose) => new SemVer(a, loose).major;
88374
87818
  module.exports = major;
88375
87819
 
88376
87820
 
88377
87821
  /***/ }),
88378
87822
 
88379
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/minor.js":
87823
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/minor.js":
88380
87824
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88381
87825
 
88382
87826
  "use strict";
88383
87827
 
88384
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87828
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88385
87829
  const minor = (a, loose) => new SemVer(a, loose).minor;
88386
87830
  module.exports = minor;
88387
87831
 
88388
87832
 
88389
87833
  /***/ }),
88390
87834
 
88391
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/neq.js":
87835
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/neq.js":
88392
87836
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88393
87837
 
88394
87838
  "use strict";
88395
87839
 
88396
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87840
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88397
87841
  const neq = (a, b, loose) => compare(a, b, loose) !== 0;
88398
87842
  module.exports = neq;
88399
87843
 
88400
87844
 
88401
87845
  /***/ }),
88402
87846
 
88403
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js":
87847
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js":
88404
87848
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88405
87849
 
88406
87850
  "use strict";
88407
87851
 
88408
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87852
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88409
87853
  const parse = (version, options, throwErrors = false) => {
88410
87854
  if (version instanceof SemVer) {
88411
87855
  return version;
@@ -88424,24 +87868,24 @@ module.exports = parse;
88424
87868
 
88425
87869
  /***/ }),
88426
87870
 
88427
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/patch.js":
87871
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/patch.js":
88428
87872
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88429
87873
 
88430
87874
  "use strict";
88431
87875
 
88432
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87876
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88433
87877
  const patch = (a, loose) => new SemVer(a, loose).patch;
88434
87878
  module.exports = patch;
88435
87879
 
88436
87880
 
88437
87881
  /***/ }),
88438
87882
 
88439
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/prerelease.js":
87883
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/prerelease.js":
88440
87884
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88441
87885
 
88442
87886
  "use strict";
88443
87887
 
88444
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87888
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
88445
87889
  const prerelease = (version, options) => {
88446
87890
  const parsed = parse(version, options);
88447
87891
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
@@ -88451,36 +87895,36 @@ module.exports = prerelease;
88451
87895
 
88452
87896
  /***/ }),
88453
87897
 
88454
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/rcompare.js":
87898
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/rcompare.js":
88455
87899
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88456
87900
 
88457
87901
  "use strict";
88458
87902
 
88459
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87903
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
88460
87904
  const rcompare = (a, b, loose) => compare(b, a, loose);
88461
87905
  module.exports = rcompare;
88462
87906
 
88463
87907
 
88464
87908
  /***/ }),
88465
87909
 
88466
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/rsort.js":
87910
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/rsort.js":
88467
87911
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88468
87912
 
88469
87913
  "use strict";
88470
87914
 
88471
- const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js");
87915
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare-build.js");
88472
87916
  const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
88473
87917
  module.exports = rsort;
88474
87918
 
88475
87919
 
88476
87920
  /***/ }),
88477
87921
 
88478
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js":
87922
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js":
88479
87923
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88480
87924
 
88481
87925
  "use strict";
88482
87926
 
88483
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
87927
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88484
87928
  const satisfies = (version, range, options) => {
88485
87929
  try {
88486
87930
  range = new Range(range, options);
@@ -88494,24 +87938,24 @@ module.exports = satisfies;
88494
87938
 
88495
87939
  /***/ }),
88496
87940
 
88497
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/sort.js":
87941
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/sort.js":
88498
87942
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88499
87943
 
88500
87944
  "use strict";
88501
87945
 
88502
- const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js");
87946
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare-build.js");
88503
87947
  const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
88504
87948
  module.exports = sort;
88505
87949
 
88506
87950
 
88507
87951
  /***/ }),
88508
87952
 
88509
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/valid.js":
87953
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/functions/valid.js":
88510
87954
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88511
87955
 
88512
87956
  "use strict";
88513
87957
 
88514
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87958
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
88515
87959
  const valid = (version, options) => {
88516
87960
  const v = parse(version, options);
88517
87961
  return v ? v.version : null;
@@ -88521,52 +87965,52 @@ module.exports = valid;
88521
87965
 
88522
87966
  /***/ }),
88523
87967
 
88524
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/index.js":
88525
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88526
-
88527
- "use strict";
88528
-
88529
- const internalRe = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/re.js");
88530
- const constants = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js");
88531
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
88532
- const identifiers = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/identifiers.js");
88533
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
88534
- const valid = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/valid.js");
88535
- const clean = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/clean.js");
88536
- const inc = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/inc.js");
88537
- const diff = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/diff.js");
88538
- const major = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/major.js");
88539
- const minor = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/minor.js");
88540
- const patch = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/patch.js");
88541
- const prerelease = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/prerelease.js");
88542
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
88543
- const rcompare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/rcompare.js");
88544
- const compareLoose = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-loose.js");
88545
- const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js");
88546
- const sort = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/sort.js");
88547
- const rsort = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/rsort.js");
88548
- const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js");
88549
- const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lt.js");
88550
- const eq = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/eq.js");
88551
- const neq = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/neq.js");
88552
- const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gte.js");
88553
- const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lte.js");
88554
- const cmp = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/cmp.js");
88555
- const coerce = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/coerce.js");
88556
- const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js");
88557
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88558
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
88559
- const toComparators = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/to-comparators.js");
88560
- const maxSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/max-satisfying.js");
88561
- const minSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/min-satisfying.js");
88562
- const minVersion = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/min-version.js");
88563
- const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/valid.js");
88564
- const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js");
88565
- const gtr = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/gtr.js");
88566
- const ltr = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/ltr.js");
88567
- const intersects = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/intersects.js");
88568
- const simplifyRange = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/simplify.js");
88569
- const subset = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/subset.js");
87968
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/index.js":
87969
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87970
+
87971
+ "use strict";
87972
+
87973
+ const internalRe = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/re.js");
87974
+ const constants = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/constants.js");
87975
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
87976
+ const identifiers = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/identifiers.js");
87977
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/parse.js");
87978
+ const valid = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/valid.js");
87979
+ const clean = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/clean.js");
87980
+ const inc = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/inc.js");
87981
+ const diff = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/diff.js");
87982
+ const major = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/major.js");
87983
+ const minor = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/minor.js");
87984
+ const patch = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/patch.js");
87985
+ const prerelease = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/prerelease.js");
87986
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
87987
+ const rcompare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/rcompare.js");
87988
+ const compareLoose = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare-loose.js");
87989
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare-build.js");
87990
+ const sort = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/sort.js");
87991
+ const rsort = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/rsort.js");
87992
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gt.js");
87993
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lt.js");
87994
+ const eq = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/eq.js");
87995
+ const neq = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/neq.js");
87996
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gte.js");
87997
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lte.js");
87998
+ const cmp = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/cmp.js");
87999
+ const coerce = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/coerce.js");
88000
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/comparator.js");
88001
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88002
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
88003
+ const toComparators = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/to-comparators.js");
88004
+ const maxSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/max-satisfying.js");
88005
+ const minSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/min-satisfying.js");
88006
+ const minVersion = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/min-version.js");
88007
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/valid.js");
88008
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/outside.js");
88009
+ const gtr = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/gtr.js");
88010
+ const ltr = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/ltr.js");
88011
+ const intersects = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/intersects.js");
88012
+ const simplifyRange = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/simplify.js");
88013
+ const subset = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/subset.js");
88570
88014
  module.exports = {
88571
88015
  parse,
88572
88016
  valid,
@@ -88618,7 +88062,7 @@ module.exports = {
88618
88062
 
88619
88063
  /***/ }),
88620
88064
 
88621
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js":
88065
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/constants.js":
88622
88066
  /***/ ((module) => {
88623
88067
 
88624
88068
  "use strict";
@@ -88652,7 +88096,7 @@ module.exports = {
88652
88096
 
88653
88097
  /***/ }),
88654
88098
 
88655
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js":
88099
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/debug.js":
88656
88100
  /***/ ((module) => {
88657
88101
 
88658
88102
  "use strict";
@@ -88664,7 +88108,7 @@ module.exports = debug;
88664
88108
 
88665
88109
  /***/ }),
88666
88110
 
88667
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/identifiers.js":
88111
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/identifiers.js":
88668
88112
  /***/ ((module) => {
88669
88113
 
88670
88114
  "use strict";
@@ -88691,7 +88135,7 @@ module.exports = {
88691
88135
 
88692
88136
  /***/ }),
88693
88137
 
88694
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/lrucache.js":
88138
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/lrucache.js":
88695
88139
  /***/ ((module) => {
88696
88140
 
88697
88141
  "use strict";
@@ -88731,7 +88175,7 @@ module.exports = LRUCache;
88731
88175
 
88732
88176
  /***/ }),
88733
88177
 
88734
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/parse-options.js":
88178
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/parse-options.js":
88735
88179
  /***/ ((module) => {
88736
88180
 
88737
88181
  "use strict";
@@ -88752,7 +88196,7 @@ module.exports = parseOptions;
88752
88196
 
88753
88197
  /***/ }),
88754
88198
 
88755
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/re.js":
88199
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/internal/re.js":
88756
88200
  /***/ ((module, exports, __webpack_require__) => {
88757
88201
 
88758
88202
  "use strict";
@@ -88761,8 +88205,8 @@ const {
88761
88205
  MAX_SAFE_COMPONENT_LENGTH,
88762
88206
  MAX_SAFE_BUILD_LENGTH,
88763
88207
  MAX_LENGTH
88764
- } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js");
88765
- const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js");
88208
+ } = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/constants.js");
88209
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/internal/debug.js");
88766
88210
  exports = module.exports = {};
88767
88211
  const re = exports.re = [];
88768
88212
  const safeRe = exports.safeRe = [];
@@ -88842,24 +88286,24 @@ createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$");
88842
88286
 
88843
88287
  /***/ }),
88844
88288
 
88845
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/gtr.js":
88289
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/gtr.js":
88846
88290
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88847
88291
 
88848
88292
  "use strict";
88849
88293
 
88850
- const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js");
88294
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/outside.js");
88851
88295
  const gtr = (version, range, options) => outside(version, range, ">", options);
88852
88296
  module.exports = gtr;
88853
88297
 
88854
88298
 
88855
88299
  /***/ }),
88856
88300
 
88857
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/intersects.js":
88301
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/intersects.js":
88858
88302
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88859
88303
 
88860
88304
  "use strict";
88861
88305
 
88862
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88306
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88863
88307
  const intersects = (r1, r2, options) => {
88864
88308
  r1 = new Range(r1, options);
88865
88309
  r2 = new Range(r2, options);
@@ -88870,25 +88314,25 @@ module.exports = intersects;
88870
88314
 
88871
88315
  /***/ }),
88872
88316
 
88873
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/ltr.js":
88317
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/ltr.js":
88874
88318
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88875
88319
 
88876
88320
  "use strict";
88877
88321
 
88878
- const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js");
88322
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/ranges/outside.js");
88879
88323
  const ltr = (version, range, options) => outside(version, range, "<", options);
88880
88324
  module.exports = ltr;
88881
88325
 
88882
88326
 
88883
88327
  /***/ }),
88884
88328
 
88885
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/max-satisfying.js":
88329
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/max-satisfying.js":
88886
88330
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88887
88331
 
88888
88332
  "use strict";
88889
88333
 
88890
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
88891
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88334
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88335
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88892
88336
  const maxSatisfying = (versions, range, options) => {
88893
88337
  let max = null;
88894
88338
  let maxSV = null;
@@ -88913,13 +88357,13 @@ module.exports = maxSatisfying;
88913
88357
 
88914
88358
  /***/ }),
88915
88359
 
88916
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/min-satisfying.js":
88360
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/min-satisfying.js":
88917
88361
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88918
88362
 
88919
88363
  "use strict";
88920
88364
 
88921
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
88922
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88365
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88366
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88923
88367
  const minSatisfying = (versions, range, options) => {
88924
88368
  let min = null;
88925
88369
  let minSV = null;
@@ -88944,14 +88388,14 @@ module.exports = minSatisfying;
88944
88388
 
88945
88389
  /***/ }),
88946
88390
 
88947
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/min-version.js":
88391
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/min-version.js":
88948
88392
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88949
88393
 
88950
88394
  "use strict";
88951
88395
 
88952
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
88953
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88954
- const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js");
88396
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88397
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88398
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gt.js");
88955
88399
  const minVersion = (range, loose) => {
88956
88400
  range = new Range(range, loose);
88957
88401
  let minver = new SemVer("0.0.0");
@@ -89005,20 +88449,20 @@ module.exports = minVersion;
89005
88449
 
89006
88450
  /***/ }),
89007
88451
 
89008
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js":
88452
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/outside.js":
89009
88453
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89010
88454
 
89011
88455
  "use strict";
89012
88456
 
89013
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
89014
- const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js");
88457
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/semver.js");
88458
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/comparator.js");
89015
88459
  const { ANY } = Comparator;
89016
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
89017
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
89018
- const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js");
89019
- const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lt.js");
89020
- const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/lte.js");
89021
- const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/gte.js");
88460
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88461
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
88462
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gt.js");
88463
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lt.js");
88464
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/lte.js");
88465
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/gte.js");
89022
88466
  const outside = (version, range, hilo, options) => {
89023
88467
  version = new SemVer(version, options);
89024
88468
  range = new Range(range, options);
@@ -89076,13 +88520,13 @@ module.exports = outside;
89076
88520
 
89077
88521
  /***/ }),
89078
88522
 
89079
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/simplify.js":
88523
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/simplify.js":
89080
88524
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89081
88525
 
89082
88526
  "use strict";
89083
88527
 
89084
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
89085
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
88528
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
88529
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
89086
88530
  module.exports = (versions, range, options) => {
89087
88531
  const set = [];
89088
88532
  let first = null;
@@ -89128,16 +88572,16 @@ module.exports = (versions, range, options) => {
89128
88572
 
89129
88573
  /***/ }),
89130
88574
 
89131
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/subset.js":
88575
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/subset.js":
89132
88576
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89133
88577
 
89134
88578
  "use strict";
89135
88579
 
89136
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
89137
- const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js");
88580
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
88581
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/comparator.js");
89138
88582
  const { ANY } = Comparator;
89139
- const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js");
89140
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
88583
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/satisfies.js");
88584
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/functions/compare.js");
89141
88585
  const subset = (sub, dom, options = {}) => {
89142
88586
  if (sub === dom) {
89143
88587
  return true;
@@ -89292,24 +88736,24 @@ module.exports = subset;
89292
88736
 
89293
88737
  /***/ }),
89294
88738
 
89295
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/to-comparators.js":
88739
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/to-comparators.js":
89296
88740
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89297
88741
 
89298
88742
  "use strict";
89299
88743
 
89300
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88744
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
89301
88745
  const toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
89302
88746
  module.exports = toComparators;
89303
88747
 
89304
88748
 
89305
88749
  /***/ }),
89306
88750
 
89307
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/valid.js":
88751
+ /***/ "./node_modules/.f/_/semver/7.7.4/semver/ranges/valid.js":
89308
88752
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89309
88753
 
89310
88754
  "use strict";
89311
88755
 
89312
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88756
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.4/semver/classes/range.js");
89313
88757
  const validRange = (range, options) => {
89314
88758
  try {
89315
88759
  return new Range(range, options).range || "*";
@@ -103631,85 +103075,63 @@ module.exports = validate;
103631
103075
 
103632
103076
  /***/ }),
103633
103077
 
103634
- /***/ "./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/get-default-logger.js":
103635
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
103078
+ /***/ "./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/get-default-logger.js":
103079
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
103636
103080
 
103637
103081
  "use strict";
103638
103082
 
103639
- var __importDefault = this && this.__importDefault || function(mod) {
103640
- return mod && mod.__esModule ? mod : { "default": mod };
103641
- };
103642
- Object.defineProperty(exports, "__esModule", ({ value: true }));
103643
- exports.getDefaultLogger = getDefaultLogger;
103644
- const visual_logger_1 = __importDefault(__webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js"));
103645
- const ci_info_1 = __webpack_require__("./node_modules/.f/_/ci-info/3.9.0/ci-info/index.js");
103646
- let logger = null;
103647
- function getDefaultLogger() {
103083
+ const VisualLogger = __webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js");
103084
+ const { isCI } = __webpack_require__("./node_modules/.f/_/ci-info/3.9.0/ci-info/index.js");
103085
+ let logger;
103086
+ const getLogger = () => {
103648
103087
  if (!logger) {
103649
- logger = new visual_logger_1.default();
103650
- if (ci_info_1.isCI) {
103088
+ logger = new VisualLogger();
103089
+ if (isCI) {
103651
103090
  logger.info("visual-exec: CI env detected");
103652
103091
  logger.setItemType("none");
103653
103092
  }
103654
103093
  }
103655
103094
  return logger;
103656
- }
103657
- exports["default"] = getDefaultLogger;
103658
-
103659
-
103660
- /***/ }),
103661
-
103662
- /***/ "./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/index.js":
103663
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
103664
-
103665
- "use strict";
103666
-
103667
- Object.defineProperty(exports, "__esModule", ({ value: true }));
103668
- exports["default"] = exports.getDefaultLogger = exports.VisualExec = void 0;
103669
- var visual_exec_1 = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/visual-exec.js");
103670
- Object.defineProperty(exports, "VisualExec", ({ enumerable: true, get: function() {
103671
- return visual_exec_1.VisualExec;
103672
- } }));
103673
- var get_default_logger_1 = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/get-default-logger.js");
103674
- Object.defineProperty(exports, "getDefaultLogger", ({ enumerable: true, get: function() {
103675
- return get_default_logger_1.getDefaultLogger;
103676
- } }));
103677
- var visual_exec_2 = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/visual-exec.js");
103678
- Object.defineProperty(exports, "default", ({ enumerable: true, get: function() {
103679
- return visual_exec_2.VisualExec;
103680
- } }));
103095
+ };
103096
+ module.exports = getLogger;
103681
103097
 
103682
103098
 
103683
103099
  /***/ }),
103684
103100
 
103685
- /***/ "./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/visual-exec.js":
103686
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
103101
+ /***/ "./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js":
103102
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
103687
103103
 
103688
103104
  "use strict";
103689
103105
 
103690
- var __importDefault = this && this.__importDefault || function(mod) {
103691
- return mod && mod.__esModule ? mod : { "default": mod };
103692
- };
103693
- Object.defineProperty(exports, "__esModule", ({ value: true }));
103694
- exports.VisualExec = void 0;
103695
- const xsh_1 = __importDefault(__webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js"));
103696
- const chalk_1 = __importDefault(__webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js"));
103697
- const get_default_logger_1 = __webpack_require__("./node_modules/.f/_/visual-exec/0.2.0-fynlocal_h/visual-exec/dist/get-default-logger.js");
103698
- const visual_logger_1 = __importDefault(__webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js"));
103699
- const has_ansi_1 = __importDefault(__webpack_require__("./node_modules/.f/_/has-ansi/4.0.1/has-ansi/index.js"));
103700
- const strip_ansi_1 = __importDefault(__webpack_require__("./node_modules/.f/_/strip-ansi/6.0.1/strip-ansi/index.js"));
103701
- xsh_1.default.Promise = Promise;
103106
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
103107
+ const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
103108
+ const getDefaultLogger = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/get-default-logger.js");
103109
+ const VisualLogger = __webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js");
103110
+ const hasAnsi = __webpack_require__("./node_modules/.f/_/has-ansi/4.0.1/has-ansi/index.js");
103111
+ const stripAnsi = __webpack_require__("./node_modules/.f/_/strip-ansi/6.0.1/strip-ansi/index.js");
103112
+ xsh.Promise = Promise;
103702
103113
  const ONE_MB = 1024 * 1024;
103703
103114
  const TEN_MB = 10 * ONE_MB;
103704
103115
  class VisualExec {
103705
- constructor(options) {
103706
- const { command, cwd = process.cwd(), visualLogger, spinner = visual_logger_1.default.spinners[1], displayTitle, logLabel, outputLabel, outputLevel = "verbose", maxBuffer = TEN_MB, forceStderr = true, checkStdoutError = true } = options;
103116
+ constructor({
103117
+ command,
103118
+ cwd = process.cwd(),
103119
+ visualLogger,
103120
+ spinner = VisualLogger.spinners[1],
103121
+ displayTitle = void 0,
103122
+ logLabel = void 0,
103123
+ outputLabel = void 0,
103124
+ outputLevel = "verbose",
103125
+ maxBuffer = TEN_MB,
103126
+ forceStderr = true,
103127
+ checkStdoutError = true
103128
+ }) {
103707
103129
  this._title = displayTitle || this._makeTitle(command);
103708
103130
  this._logLabel = logLabel || this._title;
103709
103131
  this._outputLabel = outputLabel || this._title;
103710
103132
  this._command = command;
103711
103133
  this._cwd = cwd || process.cwd();
103712
- this._logger = visualLogger || (0, get_default_logger_1.getDefaultLogger)();
103134
+ this._logger = visualLogger || getDefaultLogger();
103713
103135
  this._outputLevel = outputLevel;
103714
103136
  this._spinner = spinner;
103715
103137
  this._maxBuffer = maxBuffer;
@@ -103723,10 +103145,11 @@ class VisualExec {
103723
103145
  }
103724
103146
  return `Running ${command}`;
103725
103147
  }
103148
+ /* eslint-disable max-statements */
103726
103149
  _updateDigest(item, buf) {
103727
103150
  const newBuf = item.buf + buf;
103728
103151
  const lines = newBuf.split("\n").map((x) => x && x.trim()).filter((x) => x);
103729
- const stripLines = lines.map((x) => (0, has_ansi_1.default)(x) ? (0, strip_ansi_1.default)(x) : x);
103152
+ const stripLines = lines.map((x) => hasAnsi(x) ? stripAnsi(x) : x);
103730
103153
  let length = 0;
103731
103154
  let ix = stripLines.length - 1;
103732
103155
  for (; ix >= 0; ix--) {
@@ -103753,7 +103176,7 @@ class VisualExec {
103753
103176
  item.buf += "\n";
103754
103177
  }
103755
103178
  this._logger.updateItem(item.name, {
103756
- msg: msgs.join(chalk_1.default.blue.inverse("\\n")),
103179
+ msg: msgs.join(chalk.blue.inverse("\\n")),
103757
103180
  _save: false,
103758
103181
  _render: false
103759
103182
  });
@@ -103795,58 +103218,51 @@ stdout`,
103795
103218
  child.stdout.removeListener("data", this._updateStdout);
103796
103219
  child.stderr.removeListener("data", this._updateStderr);
103797
103220
  if (err) {
103798
- this._logger.error(`${chalk_1.default.red("Failed")} ${this._logLabel} - ${chalk_1.default.red(err.message)}`);
103221
+ this._logger.error(`${chalk.red("Failed")} ${this._logLabel} - ${chalk.red(err.message)}`);
103799
103222
  output = err.output;
103800
103223
  } else {
103801
103224
  const time = ((Date.now() - this._startTime) / 1e3).toFixed(2);
103802
- const dispTime = `${chalk_1.default.magenta(time)}secs`;
103803
- this._logger.info(`Done ${this._logLabel} ${dispTime} ${chalk_1.default.green("exit code 0")}`);
103225
+ const dispTime = `${chalk.magenta(time)}secs`;
103226
+ this._logger.info(`Done ${this._logLabel} ${dispTime} ${chalk.green("exit code 0")}`);
103804
103227
  }
103805
103228
  this.logFinalOutput(err, output);
103806
103229
  }
103807
103230
  checkForErrors(text) {
103808
- if (!this._checkStdoutError || !text)
103809
- return null;
103810
- if (this._checkStdoutError instanceof RegExp) {
103811
- return text.match(this._checkStdoutError);
103812
- }
103813
- return null;
103231
+ return this._checkStdoutError && text && text.match(this._checkStdoutError);
103814
103232
  }
103815
- /**
103816
- * Log the final output. Can be overridden to customize output handling.
103817
- * Set to a no-op function to suppress output logging.
103818
- */
103819
103233
  logFinalOutput(err, output) {
103820
- const level = err || this._forceStderr && output?.stderr || this.checkForErrors(output?.stdout || "") ? "error" : this._outputLevel;
103234
+ const level = err || this._forceStderr && output.stderr || this.checkForErrors(output.stdout) ? "error" : this._outputLevel;
103821
103235
  if (!output || !output.stdout && !output.stderr) {
103822
- this._logger[level](`${chalk_1.default.green("No output")} from ${this._outputLabel}`);
103236
+ this._logger[level](`${chalk.green("No output")} from ${this._outputLabel}`);
103823
103237
  return;
103824
103238
  }
103825
- const colorize = (t) => t.replace(/ERR!/g, chalk_1.default.red("ERR!"));
103826
- const logs = [chalk_1.default.green(">>>"), `Start of output from ${this._outputLabel} ===`];
103239
+ const colorize = (t) => t.replace(/ERR!/g, chalk.red("ERR!"));
103240
+ const logs = [chalk.green(">>>"), `Start of output from ${this._outputLabel} ===`];
103827
103241
  if (output.stdout) {
103828
103242
  logs.push(`
103829
103243
  ${colorize(output.stdout)}`);
103830
103244
  }
103831
103245
  if (output.stderr) {
103832
- logs.push(chalk_1.default.red("\n=== stderr ===\n") + colorize(output.stderr));
103246
+ logs.push(chalk.red("\n=== stderr ===\n") + colorize(output.stderr));
103833
103247
  }
103834
- logs.push(chalk_1.default.blue("\n<<<"), `End of output from ${this._outputLabel} ---`);
103248
+ logs.push(chalk.blue("\n<<<"), `End of output from ${this._outputLabel} ---`);
103835
103249
  this._logger.prefix(false)[level](...logs);
103836
103250
  }
103837
103251
  execute(command) {
103838
103252
  this._startTime = Date.now();
103839
- const child = xsh_1.default.exec({
103840
- silent: true,
103841
- cwd: this._cwd,
103842
- env: Object.assign({}, process.env, { PWD: this._cwd }),
103843
- maxBuffer: this._maxBuffer
103844
- }, command || this._command);
103253
+ const child = xsh.exec(
103254
+ {
103255
+ silent: true,
103256
+ cwd: this._cwd,
103257
+ env: Object.assign({}, process.env, { PWD: this._cwd }),
103258
+ maxBuffer: this._maxBuffer
103259
+ },
103260
+ command || this._command
103261
+ );
103845
103262
  return this.show(child);
103846
103263
  }
103847
103264
  }
103848
- exports.VisualExec = VisualExec;
103849
- exports["default"] = VisualExec;
103265
+ module.exports = VisualExec;
103850
103266
 
103851
103267
 
103852
103268
  /***/ }),
@@ -104951,7 +104367,7 @@ module.exports = xenvConfig;
104951
104367
 
104952
104368
  /***/ }),
104953
104369
 
104954
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env-path.js":
104370
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/env-path.js":
104955
104371
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
104956
104372
 
104957
104373
  "use strict";
@@ -105028,7 +104444,7 @@ module.exports = {
105028
104444
 
105029
104445
  /***/ }),
105030
104446
 
105031
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env.js":
104447
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/env.js":
105032
104448
  /***/ ((module) => {
105033
104449
 
105034
104450
  "use strict";
@@ -105069,7 +104485,7 @@ module.exports = {
105069
104485
 
105070
104486
  /***/ }),
105071
104487
 
105072
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js":
104488
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js":
105073
104489
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105074
104490
 
105075
104491
  "use strict";
@@ -105080,13 +104496,13 @@ module.exports = Path.sep === "\\" ? (x) => x.replace(/\\/g, "\\\\") : (x) => x;
105080
104496
 
105081
104497
  /***/ }),
105082
104498
 
105083
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/exec.js":
104499
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/exec.js":
105084
104500
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105085
104501
 
105086
104502
  "use strict";
105087
104503
 
105088
104504
  const shell = __webpack_require__("./node_modules/.f/_/shcmd/0.8.4/shcmd/shell.js");
105089
- const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/util.js");
104505
+ const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js");
105090
104506
  const assert = __webpack_require__("assert");
105091
104507
  function exec() {
105092
104508
  const error = (cmd2, code, output) => {
@@ -105161,19 +104577,19 @@ module.exports = exec;
105161
104577
 
105162
104578
  /***/ }),
105163
104579
 
105164
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js":
104580
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js":
105165
104581
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105166
104582
 
105167
104583
  "use strict";
105168
104584
 
105169
- const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/util.js");
104585
+ const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js");
105170
104586
  const xsh = {
105171
- exec: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/exec.js"),
105172
- env: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env.js"),
105173
- envPath: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env-path.js"),
105174
- mkCmd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/mkcmd.js"),
105175
- pathCwd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd.js"),
105176
- pathCwdNm: __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd-nm.js"),
104587
+ exec: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/exec.js"),
104588
+ env: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/env.js"),
104589
+ envPath: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/env-path.js"),
104590
+ mkCmd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/mkcmd.js"),
104591
+ pathCwd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js"),
104592
+ pathCwdNm: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd-nm.js"),
105177
104593
  $: __webpack_require__("./node_modules/.f/_/shcmd/0.8.4/shcmd/shell.js")
105178
104594
  };
105179
104595
  Object.defineProperty(xsh, "Promise", {
@@ -105187,7 +104603,7 @@ module.exports = xsh;
105187
104603
 
105188
104604
  /***/ }),
105189
104605
 
105190
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/mkcmd.js":
104606
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/mkcmd.js":
105191
104607
  /***/ ((module) => {
105192
104608
 
105193
104609
  "use strict";
@@ -105200,14 +104616,14 @@ module.exports = mkCmd;
105200
104616
 
105201
104617
  /***/ }),
105202
104618
 
105203
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd-nm.js":
104619
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd-nm.js":
105204
104620
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105205
104621
 
105206
104622
  "use strict";
105207
104623
 
105208
- const pathCwd = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd.js");
104624
+ const pathCwd = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js");
105209
104625
  const Path = __webpack_require__("path");
105210
- const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js");
104626
+ const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js");
105211
104627
  const normNm = escBs(Path.normalize("/node_modules/"));
105212
104628
  const normNmReplacer = Path.normalize("/~/");
105213
104629
  const makeNmRegex = () => escBs(Path.resolve("node_modules"));
@@ -105230,13 +104646,13 @@ module.exports = {
105230
104646
 
105231
104647
  /***/ }),
105232
104648
 
105233
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd.js":
104649
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js":
105234
104650
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105235
104651
 
105236
104652
  "use strict";
105237
104653
 
105238
104654
  const Path = __webpack_require__("path");
105239
- const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js");
104655
+ const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js");
105240
104656
  module.exports = {
105241
104657
  remove: (p, flags, stripSlash) => {
105242
104658
  const cwd = process.cwd();
@@ -105262,7 +104678,7 @@ module.exports = {
105262
104678
 
105263
104679
  /***/ }),
105264
104680
 
105265
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/util.js":
104681
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js":
105266
104682
  /***/ ((module) => {
105267
104683
 
105268
104684
  "use strict";