fyn 2.1.0 → 2.1.2

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.8.0/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.8.0/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.8.0/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");
@@ -4239,7 +3807,7 @@ class Fyn {
4239
3807
  logger.info("dep lock time set to", this._lockTime.toString());
4240
3808
  }
4241
3809
  this._installConfig = { time: 0 };
4242
- this._noPkgDirMatchName = Boolean(process.env.FYN_NO_PKG_DIR_MATCH_NAME);
3810
+ this._shortPkgDir = Boolean(process.env.FYN_SHORT_PKG_DIR);
4243
3811
  if (!_fynpo) {
4244
3812
  this._fynpo = {};
4245
3813
  }
@@ -4419,6 +3987,15 @@ class Fyn {
4419
3987
  }
4420
3988
  this._layout = layout;
4421
3989
  }
3990
+ const recordedShort = fynInstallConfig.shortPkgDir === void 0 ? true : fynInstallConfig.shortPkgDir;
3991
+ if (recordedShort !== this._shortPkgDir) {
3992
+ if (process.env.FYN_SHORT_PKG_DIR !== void 0) {
3993
+ logger.warn(
3994
+ `Forcing pkg-dir to ${recordedShort ? "short" : "long"} form because your existing node_modules uses that. To change it, please remove node_modules first.`
3995
+ );
3996
+ }
3997
+ this._shortPkgDir = recordedShort;
3998
+ }
4422
3999
  this._installConfig = { ...this._installConfig, ...fynInstallConfig, layout };
4423
4000
  } catch (err) {
4424
4001
  const msgKey = `fynInstallConfig:${filename}`;
@@ -4633,7 +4210,8 @@ class Fyn {
4633
4210
  time: Date.now() + 5,
4634
4211
  centralDir,
4635
4212
  production: this.production,
4636
- layout: this._layout
4213
+ layout: this._layout,
4214
+ shortPkgDir: this._shortPkgDir
4637
4215
  // not a good idea to save --run-npm options to install config because
4638
4216
  // future fyn install will automatically run them and would be unexpected.
4639
4217
  // if fynpo bootstrap should run certain npm scripts, user should set those
@@ -4923,11 +4501,10 @@ class Fyn {
4923
4501
  return Path.join(this.getOutputDir(), name);
4924
4502
  }
4925
4503
  if (version) {
4926
- if (this._noPkgDirMatchName) {
4927
- return Path.join(this.getOutputDir(), FV_DIR, "_", name, version);
4928
- } else {
4504
+ if (this._shortPkgDir) {
4929
4505
  return Path.join(this.getOutputDir(), FV_DIR, "_", name, version, name);
4930
4506
  }
4507
+ return Path.join(this.getOutputDir(), FV_DIR, "_", name, version, "node_modules", name);
4931
4508
  }
4932
4509
  return Path.join(this.getOutputDir(), FV_DIR, "_", name);
4933
4510
  }
@@ -5130,12 +4707,12 @@ module.exports = Fyn;
5130
4707
  const Path = __webpack_require__("path");
5131
4708
  const optionalRequire = __webpack_require__("./node_modules/.f/_/optional-require/1.1.10/optional-require/index.js")(eval("require"));
5132
4709
  const assert = __webpack_require__("assert");
5133
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
4710
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
5134
4711
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
5135
4712
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
5136
4713
  const logger = __webpack_require__("./lib/logger.ts");
5137
4714
  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");
4715
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
5139
4716
  const fyntil = __webpack_require__("./lib/util/fyntil.ts");
5140
4717
  const requireAt = __webpack_require__("./node_modules/.f/_/require-at/1.0.6/require-at/require-at.js");
5141
4718
  const { setupNodeGypEnv } = __webpack_require__("./lib/util/setup-node-gyp.ts");
@@ -5256,7 +4833,7 @@ module.exports = LifecycleScripts;
5256
4833
  const Path = __webpack_require__("path");
5257
4834
  const logger = __webpack_require__("./lib/logger.ts");
5258
4835
  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");
4836
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
5260
4837
  const xaa = __webpack_require__("./node_modules/.f/_/xaa/2.0.0/xaa/dist-cjs/index.cjs");
5261
4838
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
5262
4839
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
@@ -5287,15 +4864,12 @@ class LocalPkgBuilder {
5287
4864
  this._waitItems[data.item.fullPath].resolve({});
5288
4865
  });
5289
4866
  this._promiseQ.on("failItem", (data) => {
5290
- const debugLog = Path.join(data.item.fullPath, "fyn-debug.log");
5291
4867
  const itemRes = {
5292
4868
  error: new AggregateError(
5293
4869
  [data.error],
5294
- `failed build local package at ${data.item.fullPath} - check ${debugLog} for details`
4870
+ `failed build local package at ${data.item.fullPath}`
5295
4871
  )
5296
4872
  };
5297
- logger.error(`Failed to build local package at ${data.item.fullPath}`);
5298
- logger.error(`Check debug log for details: ${debugLog}`);
5299
4873
  this._waitItems[data.item.fullPath].resolve(itemRes);
5300
4874
  this._failedItems[data.item.fullPath] = itemRes;
5301
4875
  });
@@ -5379,9 +4953,8 @@ class LocalPkgBuilder {
5379
4953
  process.argv[0],
5380
4954
  this._fynJs,
5381
4955
  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"
4956
+ "-q=d --pg=simple --no-build-local",
4957
+ !this._fyn._options.sourceMaps && "--no-source-maps"
5385
4958
  ].filter((x) => x).join(" ");
5386
4959
  const displayTitle = `building local pkg at ${dispPath}`;
5387
4960
  logger.verbose(displayTitle);
@@ -5556,10 +5129,34 @@ const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.
5556
5129
  const logger = __webpack_require__("./lib/logger.ts");
5557
5130
  class PkgBinLinkerBase {
5558
5131
  constructor(options) {
5559
- this._binDir = Path.join(options.outputDir, ".bin");
5132
+ this._binDir = options.binDir || Path.join(options.outputDir, ".bin");
5560
5133
  this._fyn = options.fyn;
5561
5134
  this._linked = {};
5562
5135
  }
5136
+ async hasBinLink(sym) {
5137
+ return Fs.exists(Path.join(this._binDir, sym));
5138
+ }
5139
+ async matchesBinPath(sym, target) {
5140
+ const symlink = Path.join(this._binDir, sym);
5141
+ const relTarget = Path.relative(this._binDir, target);
5142
+ return this._isBinLinkTarget(symlink, relTarget);
5143
+ }
5144
+ async linkBinPath(target, sym, options = {}) {
5145
+ const relTarget = Path.relative(this._binDir, target);
5146
+ const symlink = Path.join(this._binDir, sym);
5147
+ await this._mkBinDir();
5148
+ if (options.overwrite) {
5149
+ await this._rmBinLink(symlink);
5150
+ }
5151
+ if (!await this._ensureGoodLink(symlink, relTarget)) {
5152
+ await this._generateBinLink(relTarget, symlink);
5153
+ }
5154
+ await this._chmod(target);
5155
+ return relTarget;
5156
+ }
5157
+ async removeBinLink(sym) {
5158
+ await this._rmBinLink(Path.join(this._binDir, sym));
5159
+ }
5563
5160
  async clearExtras() {
5564
5161
  try {
5565
5162
  const bins = await this._readBinLinks();
@@ -5742,13 +5339,16 @@ class PkgBinLinker extends PkgBinLinkerBase {
5742
5339
  //
5743
5340
  // Platform specific
5744
5341
  //
5745
- async _ensureGoodLink(symlink, target) {
5342
+ async _isBinLinkTarget(symlink, target) {
5746
5343
  try {
5747
- const existTarget = await Fs.readlink(symlink);
5748
- if (existTarget === target) {
5749
- return true;
5750
- }
5344
+ return await Fs.readlink(symlink) === target;
5751
5345
  } catch (err) {
5346
+ return false;
5347
+ }
5348
+ }
5349
+ async _ensureGoodLink(symlink, target) {
5350
+ if (await this._isBinLinkTarget(symlink, target)) {
5351
+ return true;
5752
5352
  }
5753
5353
  await this._rmBinLink(symlink);
5754
5354
  return false;
@@ -5818,13 +5418,17 @@ class PkgBinLinkerWin32 extends PkgBinLinkerBase {
5818
5418
  //
5819
5419
  // Platform specific
5820
5420
  //
5821
- async _ensureGoodLink(symlink, target) {
5421
+ async _isBinLinkTarget(symlink, target) {
5822
5422
  try {
5823
5423
  const existTarget = (await Fs.readFile(symlink)).toString();
5824
- if (existTarget.indexOf(target) >= 0) {
5825
- return true;
5826
- }
5424
+ return existTarget.indexOf(target) >= 0;
5827
5425
  } catch (err) {
5426
+ return false;
5427
+ }
5428
+ }
5429
+ async _ensureGoodLink(symlink, target) {
5430
+ if (await this._isBinLinkTarget(symlink, target)) {
5431
+ return true;
5828
5432
  }
5829
5433
  await this._rmBinLink(symlink);
5830
5434
  return false;
@@ -6179,6 +5783,39 @@ class PkgDepLocker {
6179
5783
  hasLock(item) {
6180
5784
  return Boolean(this._enable && this._lockData[item.name]);
6181
5785
  }
5786
+ normalizeTarballUrl(item, tarballUrl) {
5787
+ if (!tarballUrl || !this._fyn || !this._fyn._pkgSrcMgr) {
5788
+ return tarballUrl;
5789
+ }
5790
+ const currentRegistry = this._fyn._pkgSrcMgr.getRegistryUrl(item.name);
5791
+ if (!currentRegistry || tarballUrl.startsWith(currentRegistry)) {
5792
+ return tarballUrl;
5793
+ }
5794
+ try {
5795
+ const currentUrl = new URL(currentRegistry);
5796
+ const lockedUrl = new URL(tarballUrl);
5797
+ const currentPath = decodeURIComponent(currentUrl.pathname);
5798
+ const lockedPath = decodeURIComponent(lockedUrl.pathname);
5799
+ if (lockedPath.startsWith(currentPath)) {
5800
+ lockedUrl.protocol = currentUrl.protocol;
5801
+ lockedUrl.username = currentUrl.username;
5802
+ lockedUrl.password = currentUrl.password;
5803
+ lockedUrl.host = currentUrl.host;
5804
+ return lockedUrl.toString();
5805
+ }
5806
+ const tarballMarker = `/${item.name}/-/`;
5807
+ const markerIndex = lockedPath.indexOf(tarballMarker);
5808
+ if (markerIndex >= 0) {
5809
+ const rebuiltUrl = new URL(lockedPath.slice(markerIndex + 1), currentRegistry);
5810
+ rebuiltUrl.search = lockedUrl.search;
5811
+ rebuiltUrl.hash = lockedUrl.hash;
5812
+ return rebuiltUrl.toString();
5813
+ }
5814
+ } catch (err) {
5815
+ return tarballUrl;
5816
+ }
5817
+ return tarballUrl;
5818
+ }
6182
5819
  //
6183
5820
  // convert from fyn lock format to npm meta format
6184
5821
  //
@@ -6201,18 +5838,7 @@ class PkgDepLocker {
6201
5838
  fullPath: vpkg._
6202
5839
  };
6203
5840
  } 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
- }
5841
+ const tarballUrl = this.normalizeTarballUrl(item, vpkg._);
6216
5842
  vpkg.dist = {
6217
5843
  integrity: fyntil.shaToIntegrity(vpkg.$),
6218
5844
  tarball: tarballUrl
@@ -6466,7 +6092,7 @@ const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.
6466
6092
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
6467
6093
  const Path = __webpack_require__("path");
6468
6094
  const semverUtil = __webpack_require__("./lib/util/semver.ts");
6469
- const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
6095
+ const Semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
6470
6096
  const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
6471
6097
  const logger = __webpack_require__("./lib/logger.ts");
6472
6098
  const DepItem = __webpack_require__("./lib/dep-item.ts");
@@ -7482,7 +7108,25 @@ ${item.depPath.join(" > ")}`
7482
7108
  throw new Error(failMetaMsg(item.name));
7483
7109
  }
7484
7110
  const updated = this._fyn.depLocker.update(item, meta);
7485
- return this._resolveWithMeta({ item, meta: updated, force: true, noLocal: true });
7111
+ const r2 = this._resolveWithMeta({ item, meta: updated, force: false, noLocal: true });
7112
+ if (r2) {
7113
+ return r2;
7114
+ }
7115
+ logger.debug(
7116
+ `cached meta for ${item.name} has no version satisfying ${item.semver}; refetching from registry`
7117
+ );
7118
+ return this._pkgSrcMgr.fetchMeta(item, true).then((freshMeta) => {
7119
+ if (!freshMeta) {
7120
+ throw new Error(failMetaMsg(item.name));
7121
+ }
7122
+ const freshUpdated = this._fyn.depLocker.update(item, freshMeta);
7123
+ return this._resolveWithMeta({
7124
+ item,
7125
+ meta: freshUpdated,
7126
+ force: true,
7127
+ noLocal: true
7128
+ });
7129
+ });
7486
7130
  }).catch((err) => {
7487
7131
  if (item.dsrc !== "opt") {
7488
7132
  if (err.message.includes("Unable to retrieve meta")) {
@@ -8346,6 +7990,10 @@ class PkgInstaller {
8346
7990
  for (const pkgDir of removed) {
8347
7991
  let dir = pkgDir;
8348
7992
  try {
7993
+ if (!this._fyn._shortPkgDir) {
7994
+ dir = Path.dirname(dir);
7995
+ await Fs.rmdir(dir);
7996
+ }
8349
7997
  if (pkgName.startsWith("@")) {
8350
7998
  dir = Path.dirname(dir);
8351
7999
  await Fs.rmdir(dir);
@@ -8405,7 +8053,7 @@ module.exports = PkgInstaller;
8405
8053
  "use strict";
8406
8054
 
8407
8055
  const assert = __webpack_require__("assert");
8408
- const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js");
8056
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
8409
8057
  const _ = __webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js");
8410
8058
  const Promise = __webpack_require__("./lib/util/aveazul.ts");
8411
8059
  const PromiseQueue = __webpack_require__("./lib/util/promise-queue.ts");
@@ -8687,8 +8335,8 @@ const semverUtil = __webpack_require__("./lib/util/semver.ts");
8687
8335
  const longPending = __webpack_require__("./lib/long-pending.ts");
8688
8336
  const { LOCAL_VERSION_MAPS, PACKAGE_RAW_INFO, DEP_ITEM } = __webpack_require__("./lib/symbols.ts");
8689
8337
  const { LONG_WAIT_META, FETCH_META, FETCH_PACKAGE } = __webpack_require__("./lib/log-items.ts");
8690
- 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");
8338
+ const PkgPreper = __webpack_require__("./node_modules/.f/_/pkg-preper/0.1.8-fynlocal_h/pkg-preper/lib/pkg-preper.js");
8339
+ const VisualExec = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js");
8692
8340
  const { readPkgJson, missPipe } = __webpack_require__("./lib/util/fyntil.ts");
8693
8341
  const { MARK_URL_SPEC } = __webpack_require__("./lib/constants.ts");
8694
8342
  const nodeFetch = __webpack_require__("./node_modules/.f/_/node-fetch-npm/2.0.4/node-fetch-npm/src/index.js");
@@ -9196,18 +8844,54 @@ class PkgSrcManager {
9196
8844
  }
9197
8845
  };
9198
8846
  }
9199
- fetchMeta(item) {
8847
+ fetchMeta(item, forceRefresh = false) {
9200
8848
  const pkgName = item.name;
9201
8849
  const pkgKey = `${pkgName}@${item.urlType ? item.urlType : "semver"}`;
9202
- if (this._meta[pkgKey]) {
9203
- return Promise.resolve(this._meta[pkgKey]);
9204
- }
9205
- const inflight = this._inflights.meta.get(pkgKey);
9206
- if (inflight) {
9207
- return inflight;
8850
+ if (!forceRefresh) {
8851
+ if (this._meta[pkgKey]) {
8852
+ return Promise.resolve(this._meta[pkgKey]);
8853
+ }
8854
+ const inflight = this._inflights.meta.get(pkgKey);
8855
+ if (inflight) {
8856
+ return inflight;
8857
+ }
9208
8858
  }
9209
8859
  const packumentUrl = this.makePackumentUrl(pkgName);
9210
- const cacheKey = `make-fetch-happen:request-cache:full:${packumentUrl}`;
8860
+ const cacheKey = `make-fetch-happen:request-cache:${packumentUrl}`;
8861
+ const legacyCacheKey = `make-fetch-happen:request-cache:full:${packumentUrl}`;
8862
+ const cacheKeys = [cacheKey, legacyCacheKey];
8863
+ const loadCachedPackument = async (key, memoize = true) => {
8864
+ try {
8865
+ const cached = await cacache.get(this._cacheDir, key, { memoize });
8866
+ const info = await getCacheInfoWithRefreshTime(this._cacheDir, key);
8867
+ return Object.assign(cached, {
8868
+ refreshTime: info && info.refreshTime,
8869
+ cacheKey: key
8870
+ });
8871
+ } catch (err) {
8872
+ if (err.code === "ENOENT") {
8873
+ return void 0;
8874
+ }
8875
+ throw err;
8876
+ }
8877
+ };
8878
+ const loadBestCachedPackument = async (memoize = true) => {
8879
+ const cachedEntries = (await Promise.all(cacheKeys.map((key) => loadCachedPackument(key, memoize)))).filter(Boolean);
8880
+ if (cachedEntries.length === 0) {
8881
+ return void 0;
8882
+ }
8883
+ return _.maxBy(cachedEntries, (cached) => cached.refreshTime || 0) || cachedEntries[0];
8884
+ };
8885
+ const readMemoizedPackument = async () => {
8886
+ const memoized = await loadBestCachedPackument(false);
8887
+ if (!(memoized && memoized.data)) {
8888
+ return void 0;
8889
+ }
8890
+ logger.debug(`using memoized packument cache for '${pkgName}'`);
8891
+ cacheMemoized = true;
8892
+ this._metaStat.wait--;
8893
+ return JSON.parse(memoized.data.toString());
8894
+ };
9211
8895
  const queueMetaFetchRequest = (cached) => {
9212
8896
  const offline = this._fyn.remoteMetaDisabled;
9213
8897
  if (cached && this._fyn.forceCache) {
@@ -9236,19 +8920,13 @@ class PkgSrcManager {
9236
8920
  let foundCache;
9237
8921
  let cacheMemoized = false;
9238
8922
  const metaMemoizeUrl = this._fyn._options.metaMemoize;
9239
- const promise = (item.urlType ? (
8923
+ const promise = (item.urlType || forceRefresh ? (
9240
8924
  // when the semver is a url then the meta is not from npm registry and
9241
- // we can't use the cache for registry
8925
+ // we can't use the cache for registry.
8926
+ // when forceRefresh, skip the local cacache + meta-mem path so we go
8927
+ // straight to a fresh registry fetch via queueMetaFetchRequest.
9242
8928
  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) => {
8929
+ ) : loadBestCachedPackument(true)).then((cached) => {
9252
8930
  const packument = cached && cached.data && JSON.parse(cached.data);
9253
8931
  foundCache = cached;
9254
8932
  if (cached && cached.refreshTime) {
@@ -9264,14 +8942,26 @@ class PkgSrcManager {
9264
8942
  }
9265
8943
  }
9266
8944
  if (cached && metaMemoizeUrl) {
9267
- const encKey = encodeURIComponent(cacheKey);
9268
- return nodeFetch(`${metaMemoizeUrl}?key=${encKey}`).then(
9269
- (res) => {
8945
+ const checkMemoizedCache = async () => {
8946
+ for (const key of cacheKeys) {
8947
+ const encKey = encodeURIComponent(key);
8948
+ const res = await nodeFetch(`${metaMemoizeUrl}?key=${encKey}`);
9270
8949
  if (res.status === 200) {
9271
- logger.debug(`using memoized packument cache for '${pkgName}'`);
9272
- cacheMemoized = true;
9273
- this._metaStat.wait--;
9274
- return packument;
8950
+ return true;
8951
+ }
8952
+ }
8953
+ return false;
8954
+ };
8955
+ return checkMemoizedCache().then(
8956
+ async (hasMemoizedCache) => {
8957
+ if (hasMemoizedCache) {
8958
+ const memoizedPackument = await readMemoizedPackument();
8959
+ if (memoizedPackument) {
8960
+ return memoizedPackument;
8961
+ }
8962
+ logger.warn(
8963
+ `memoized packument cache for '${pkgName}' was signaled but cache entry was missing; refetching`
8964
+ );
9275
8965
  }
9276
8966
  return queueMetaFetchRequest(packument);
9277
8967
  },
@@ -9299,8 +8989,13 @@ class PkgSrcManager {
9299
8989
  }
9300
8990
  return meta;
9301
8991
  }).finally(() => {
9302
- this._inflights.meta.remove(pkgKey);
8992
+ if (!forceRefresh) {
8993
+ this._inflights.meta.remove(pkgKey);
8994
+ }
9303
8995
  });
8996
+ if (forceRefresh) {
8997
+ return promise;
8998
+ }
9304
8999
  return this._inflights.meta.add(pkgKey, promise);
9305
9000
  }
9306
9001
  pacotePrefetch(pkgId, pkgInfo, integrity) {
@@ -9462,303 +9157,6 @@ module.exports = PkgSrcManager;
9462
9157
  module.exports.META_CACHE_STALE_TIME = META_CACHE_STALE_TIME;
9463
9158
 
9464
9159
 
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
9160
  /***/ }),
9763
9161
 
9764
9162
  /***/ "./lib/symbols.ts":
@@ -10731,7 +10129,7 @@ module.exports = { addNpmLifecycle, runNpmScript };
10731
10129
 
10732
10130
  "use strict";
10733
10131
 
10734
- const Semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
10132
+ const Semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
10735
10133
  const Path = __webpack_require__("path");
10736
10134
  const os = __webpack_require__("os");
10737
10135
  function split(v, sep, index = 0) {
@@ -10922,7 +10320,7 @@ const Path = __webpack_require__("path");
10922
10320
  const requireAt = __webpack_require__("./node_modules/.f/_/require-at/1.0.6/require-at/require-at.js");
10923
10321
  const logger = __webpack_require__("./lib/logger.ts");
10924
10322
  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");
10323
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
10926
10324
  let nodeGypBinPath;
10927
10325
  function _searchNodeGypBin({ npmDir, searchPath }) {
10928
10326
  if (!nodeGypBinPath) {
@@ -11015,7 +10413,7 @@ module.exports = function _sortObjKeys(obj) {
11015
10413
 
11016
10414
  const Fs = __webpack_require__("./lib/util/file-ops.ts");
11017
10415
  const Path = __webpack_require__("path");
11018
- const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
10416
+ const mm = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
11019
10417
  const filterScanDir = __webpack_require__("./node_modules/.f/_/filter-scan-dir/1.6.0/filter-scan-dir/index.cjs");
11020
10418
  async function _scanFileStats(dir, ignores, baseDir = "") {
11021
10419
  const ignore = (fullPath) => ignores.find((pattern) => mm(fullPath, pattern, { dot: true }));
@@ -11082,7 +10480,7 @@ exports.processLifecycleInput = processLifecycleInput;
11082
10480
  exports.processOutput = processOutput;
11083
10481
  const tslib_1 = __webpack_require__("./node_modules/.f/_/tslib/2.8.1/tslib/tslib.es6.mjs");
11084
10482
  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"));
10483
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11086
10484
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11087
10485
  const fs_1 = tslib_1.__importDefault(__webpack_require__("fs"));
11088
10486
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
@@ -11340,9 +10738,9 @@ const assert_1 = tslib_1.__importDefault(__webpack_require__("assert"));
11340
10738
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
11341
10739
  const fs_1 = __webpack_require__("fs");
11342
10740
  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"));
10741
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11344
10742
  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"));
10743
+ const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js"));
11346
10744
  const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11347
10745
  const util_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/util.js");
11348
10746
  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 +11305,7 @@ const tslib_1 = __webpack_require__("./node_modules/.f/_/tslib/2.8.1/tslib/tslib
11907
11305
  const path_1 = tslib_1.__importDefault(__webpack_require__("path"));
11908
11306
  const fs_1 = __webpack_require__("fs");
11909
11307
  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"));
11308
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
11911
11309
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
11912
11310
  const minimatch_group_1 = __webpack_require__("./node_modules/.f/_/@fynpo/base/1.1.22-fynlocal_h/@fynpo/base/dist/minimatch-group.js");
11913
11311
  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 +11512,7 @@ exports.deconstructMM = deconstructMM;
12114
11512
  exports.checkMmMatch = checkMmMatch;
12115
11513
  exports.unrollMmMatch = unrollMmMatch;
12116
11514
  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"));
11515
+ const minimatch_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js"));
12118
11516
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
12119
11517
  function groupMM(mms, groups) {
12120
11518
  mms.forEach((mm) => {
@@ -13426,7 +12824,7 @@ const { lstat, readlink } = __webpack_require__("node:fs/promises");
13426
12824
  const { depth } = __webpack_require__("./node_modules/.f/_/treeverse/3.0.0/treeverse/lib/index.js");
13427
12825
  const { log, time } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
13428
12826
  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");
12827
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
13430
12828
  const {
13431
12829
  OK,
13432
12830
  REPLACE,
@@ -15986,7 +15384,7 @@ const { dirname, resolve, relative, join } = __webpack_require__("node:path");
15986
15384
  const { log, time } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
15987
15385
  const { lstat, mkdir, rm, symlink } = __webpack_require__("node:fs/promises");
15988
15386
  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");
15387
+ const { subset, intersects } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
15990
15388
  const { walkUp } = __webpack_require__("./node_modules/.f/_/walk-up-path/4.0.0/walk-up-path/dist/commonjs/index.js");
15991
15389
  const AuditReport = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/audit-report.js");
15992
15390
  const Diff = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/diff.js");
@@ -17377,7 +16775,7 @@ module.exports = calcDepFlags;
17377
16775
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17378
16776
 
17379
16777
  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");
16778
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
17381
16779
  const debug = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/debug.js");
17382
16780
  const peerEntrySets = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/peer-entry-sets.js");
17383
16781
  const deepestNestingTarget = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/deepest-nesting-target.js");
@@ -17784,7 +17182,7 @@ module.exports = deepestNestingTarget;
17784
17182
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/dep-valid.js":
17785
17183
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
17786
17184
 
17787
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
17185
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
17788
17186
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
17789
17187
  const { relative } = __webpack_require__("node:path");
17790
17188
  const fromPath = __webpack_require__("./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/from-path.js");
@@ -18708,7 +18106,7 @@ module.exports = Link;
18708
18106
  const PackageJson = __webpack_require__("./node_modules/.f/_/@npmcli/package-json/7.0.1/@npmcli/package-json/lib/index.js");
18709
18107
  const nameFromFolder = __webpack_require__("./node_modules/.f/_/@npmcli/name-from-folder/3.0.0/@npmcli/name-from-folder/lib/index.js");
18710
18108
  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");
18109
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
18712
18110
  const util = __webpack_require__("node:util");
18713
18111
  const { getPaths: getBinPaths } = __webpack_require__("./node_modules/.f/_/bin-links/5.0.0/bin-links/lib/index.js");
18714
18112
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
@@ -19892,7 +19290,7 @@ module.exports = { overrideResolves };
19892
19290
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
19893
19291
 
19894
19292
  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");
19293
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
19896
19294
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
19897
19295
  class OverrideSet {
19898
19296
  constructor({ overrides, key, parent }) {
@@ -20687,7 +20085,7 @@ const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log
20687
20085
  const { minimatch } = __webpack_require__("./node_modules/.f/_/minimatch/10.1.1/minimatch/dist/commonjs/index.js");
20688
20086
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
20689
20087
  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");
20088
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
20691
20089
  const npmFetch = __webpack_require__("./node_modules/.f/_/npm-registry-fetch/19.1.0/npm-registry-fetch/lib/index.js");
20692
20090
  class Results {
20693
20091
  #currentAstSelector;
@@ -22725,7 +22123,7 @@ debug(() => module.exports = checkTree);
22725
22123
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/version-from-tgz.js":
22726
22124
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22727
22125
 
22728
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22126
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
22729
22127
  const { basename } = __webpack_require__("node:path");
22730
22128
  const { URL } = __webpack_require__("node:url");
22731
22129
  module.exports = (name, tgz) => {
@@ -22769,7 +22167,7 @@ const versionFromBaseScopeName = (base, scope, name) => {
22769
22167
  /***/ "./node_modules/.f/_/@npmcli/arborist/9.1.6/@npmcli/arborist/lib/vuln.js":
22770
22168
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
22771
22169
 
22772
- const { satisfies, simplifyRange } = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22170
+ const { satisfies, simplifyRange } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
22773
22171
  const semverOpt = { loose: true, includePrerelease: true };
22774
22172
  const localeCompare = __webpack_require__("./node_modules/.f/_/@isaacs/string-locale-compare/1.1.0/@isaacs/string-locale-compare/index.js")("en");
22775
22173
  const npa = __webpack_require__("./node_modules/.f/_/npm-package-arg/13.0.1/npm-package-arg/lib/npa.js");
@@ -23204,7 +22602,7 @@ module.exports = getOptions;
23204
22602
  /***/ "./node_modules/.f/_/@npmcli/fs/4.0.0/@npmcli/fs/lib/common/node.js":
23205
22603
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
23206
22604
 
23207
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
22605
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
23208
22606
  const satisfies = (range) => {
23209
22607
  return semver.satisfies(process.version, range, { includePrerelease: true });
23210
22608
  };
@@ -24072,7 +23470,7 @@ module.exports = ({ cwd = process.cwd() } = {}) => stat(cwd + "/.git").then(() =
24072
23470
  /***/ "./node_modules/.f/_/@npmcli/git/7.0.0/@npmcli/git/lib/lines-to-revs.js":
24073
23471
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24074
23472
 
24075
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
23473
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
24076
23474
  module.exports = (lines) => finish(lines.reduce(linesToRevsReducer, {
24077
23475
  versions: {},
24078
23476
  "dist-tags": {},
@@ -24685,7 +24083,7 @@ module.exports = mapWorkspaces;
24685
24083
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
24686
24084
 
24687
24085
  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");
24086
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
24689
24087
  const semverOpt = { includePrerelease: true, loose: true };
24690
24088
  const getDepSpec = __webpack_require__("./node_modules/.f/_/@npmcli/metavuln-calculator/9.0.3/@npmcli/metavuln-calculator/lib/get-dep-spec.js");
24691
24089
  const _source = Symbol("source");
@@ -25661,8 +25059,8 @@ module.exports = { normalizeData };
25661
25059
  /***/ "./node_modules/.f/_/@npmcli/package-json/7.0.1/@npmcli/package-json/lib/normalize.js":
25662
25060
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
25663
25061
 
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");
25062
+ const valid = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/valid.js");
25063
+ const clean = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/clean.js");
25666
25064
  const fs = __webpack_require__("node:fs/promises");
25667
25065
  const path = __webpack_require__("node:path");
25668
25066
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
@@ -49890,7 +49288,7 @@ function ownProp(obj, field) {
49890
49288
  return Object.prototype.hasOwnProperty.call(obj, field);
49891
49289
  }
49892
49290
  var path = __webpack_require__("path");
49893
- var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js");
49291
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
49894
49292
  var isAbsolute = __webpack_require__("./node_modules/.f/_/path-is-absolute/1.0.1/path-is-absolute/index.js");
49895
49293
  var Minimatch = minimatch.Minimatch;
49896
49294
  function alphasorti(a, b) {
@@ -50077,7 +49475,7 @@ function childrenIgnored(self, path2) {
50077
49475
  module.exports = glob;
50078
49476
  var fs = __webpack_require__("fs");
50079
49477
  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");
49478
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
50081
49479
  var Minimatch = minimatch.Minimatch;
50082
49480
  var inherits = __webpack_require__("./node_modules/.f/_/inherits/2.0.4/inherits/inherits.js");
50083
49481
  var EE = (__webpack_require__("events").EventEmitter);
@@ -50636,7 +50034,7 @@ module.exports = globSync;
50636
50034
  globSync.GlobSync = GlobSync;
50637
50035
  var fs = __webpack_require__("fs");
50638
50036
  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");
50037
+ var minimatch = __webpack_require__("./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js");
50640
50038
  var Minimatch = minimatch.Minimatch;
50641
50039
  var Glob = (__webpack_require__("./node_modules/.f/_/glob/7.1.6/glob/glob.js").Glob);
50642
50040
  var util = __webpack_require__("util");
@@ -54641,7 +54039,7 @@ const enquirer_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.
54641
54039
  const lodash_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/lodash/4.17.21/lodash/lodash.min.js"));
54642
54040
  const fs_1 = tslib_1.__importDefault(__webpack_require__("fs"));
54643
54041
  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"));
54042
+ const semver_1 = tslib_1.__importDefault(__webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js"));
54645
54043
  function sortObj(obj) {
54646
54044
  const out = {};
54647
54045
  const sortedKeys = Object.keys(obj).sort().forEach((x) => {
@@ -63334,7 +62732,7 @@ module.exports["default"] = mimicFn;
63334
62732
 
63335
62733
  /***/ }),
63336
62734
 
63337
- /***/ "./node_modules/.f/_/minimatch/3.1.2/minimatch/minimatch.js":
62735
+ /***/ "./node_modules/.f/_/minimatch/3.1.5/minimatch/minimatch.js":
63338
62736
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
63339
62737
 
63340
62738
  module.exports = minimatch;
@@ -63440,6 +62838,7 @@ function Minimatch(pattern, options) {
63440
62838
  pattern = pattern.split(path.sep).join("/");
63441
62839
  }
63442
62840
  this.options = options;
62841
+ this.maxGlobstarRecursion = options.maxGlobstarRecursion !== void 0 ? options.maxGlobstarRecursion : 200;
63443
62842
  this.set = [];
63444
62843
  this.pattern = pattern;
63445
62844
  this.regexp = null;
@@ -63597,6 +62996,7 @@ function parse(pattern, isSub) {
63597
62996
  re += c;
63598
62997
  continue;
63599
62998
  }
62999
+ if (c === "*" && stateChar === "*") continue;
63600
63000
  self.debug("call clearStateChar %j", stateChar);
63601
63001
  clearStateChar();
63602
63002
  stateChar = c;
@@ -63835,50 +63235,147 @@ Minimatch.prototype.match = function match(f, partial) {
63835
63235
  return this.negate;
63836
63236
  };
63837
63237
  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;
63238
+ if (pattern.indexOf(GLOBSTAR) !== -1) {
63239
+ return this._matchGlobstar(file, pattern, partial, 0, 0);
63240
+ }
63241
+ return this._matchOne(file, pattern, partial, 0, 0);
63242
+ };
63243
+ Minimatch.prototype._matchGlobstar = function(file, pattern, partial, fileIndex, patternIndex) {
63244
+ var i;
63245
+ var firstgs = -1;
63246
+ for (i = patternIndex; i < pattern.length; i++) {
63247
+ if (pattern[i] === GLOBSTAR) {
63248
+ firstgs = i;
63249
+ break;
63250
+ }
63251
+ }
63252
+ var lastgs = -1;
63253
+ for (i = pattern.length - 1; i >= 0; i--) {
63254
+ if (pattern[i] === GLOBSTAR) {
63255
+ lastgs = i;
63256
+ break;
63257
+ }
63258
+ }
63259
+ var head = pattern.slice(patternIndex, firstgs);
63260
+ var body = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs);
63261
+ var tail = partial ? [] : pattern.slice(lastgs + 1);
63262
+ if (head.length) {
63263
+ var fileHead = file.slice(fileIndex, fileIndex + head.length);
63264
+ if (!this._matchOne(fileHead, head, partial, 0, 0)) {
63265
+ return false;
63266
+ }
63267
+ fileIndex += head.length;
63268
+ }
63269
+ var fileTailMatch = 0;
63270
+ if (tail.length) {
63271
+ if (tail.length + fileIndex > file.length) return false;
63272
+ var tailStart = file.length - tail.length;
63273
+ if (this._matchOne(file, tail, partial, tailStart, 0)) {
63274
+ fileTailMatch = tail.length;
63275
+ } else {
63276
+ if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length) {
63277
+ return false;
63860
63278
  }
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
- }
63279
+ tailStart--;
63280
+ if (!this._matchOne(file, tail, partial, tailStart, 0)) {
63281
+ return false;
63282
+ }
63283
+ fileTailMatch = tail.length + 1;
63284
+ }
63285
+ }
63286
+ if (!body.length) {
63287
+ var sawSome = !!fileTailMatch;
63288
+ for (i = fileIndex; i < file.length - fileTailMatch; i++) {
63289
+ var f = String(file[i]);
63290
+ sawSome = true;
63291
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63292
+ return false;
63875
63293
  }
63876
- if (partial) {
63877
- this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
63878
- if (fr === fl) return true;
63294
+ }
63295
+ return partial || sawSome;
63296
+ }
63297
+ var bodySegments = [[[], 0]];
63298
+ var currentBody = bodySegments[0];
63299
+ var nonGsParts = 0;
63300
+ var nonGsPartsSums = [0];
63301
+ for (var bi = 0; bi < body.length; bi++) {
63302
+ var b = body[bi];
63303
+ if (b === GLOBSTAR) {
63304
+ nonGsPartsSums.push(nonGsParts);
63305
+ currentBody = [[], 0];
63306
+ bodySegments.push(currentBody);
63307
+ } else {
63308
+ currentBody[0].push(b);
63309
+ nonGsParts++;
63310
+ }
63311
+ }
63312
+ var idx = bodySegments.length - 1;
63313
+ var fileLength = file.length - fileTailMatch;
63314
+ for (var si = 0; si < bodySegments.length; si++) {
63315
+ bodySegments[si][1] = fileLength - (nonGsPartsSums[idx--] + bodySegments[si][0].length);
63316
+ }
63317
+ return !!this._matchGlobStarBodySections(
63318
+ file,
63319
+ bodySegments,
63320
+ fileIndex,
63321
+ 0,
63322
+ partial,
63323
+ 0,
63324
+ !!fileTailMatch
63325
+ );
63326
+ };
63327
+ Minimatch.prototype._matchGlobStarBodySections = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) {
63328
+ var bs = bodySegments[bodyIndex];
63329
+ if (!bs) {
63330
+ for (var i = fileIndex; i < file.length; i++) {
63331
+ sawTail = true;
63332
+ var f = file[i];
63333
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63334
+ return false;
63879
63335
  }
63336
+ }
63337
+ return sawTail;
63338
+ }
63339
+ var body = bs[0];
63340
+ var after = bs[1];
63341
+ while (fileIndex <= after) {
63342
+ var m = this._matchOne(
63343
+ file.slice(0, fileIndex + body.length),
63344
+ body,
63345
+ partial,
63346
+ fileIndex,
63347
+ 0
63348
+ );
63349
+ if (m && globStarDepth < this.maxGlobstarRecursion) {
63350
+ var sub = this._matchGlobStarBodySections(
63351
+ file,
63352
+ bodySegments,
63353
+ fileIndex + body.length,
63354
+ bodyIndex + 1,
63355
+ partial,
63356
+ globStarDepth + 1,
63357
+ sawTail
63358
+ );
63359
+ if (sub !== false) {
63360
+ return sub;
63361
+ }
63362
+ }
63363
+ var f = file[fileIndex];
63364
+ if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") {
63880
63365
  return false;
63881
63366
  }
63367
+ fileIndex++;
63368
+ }
63369
+ return partial || null;
63370
+ };
63371
+ Minimatch.prototype._matchOne = function(file, pattern, partial, fileIndex, patternIndex) {
63372
+ var fi, pi, fl, pl;
63373
+ for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
63374
+ this.debug("matchOne loop");
63375
+ var p = pattern[pi];
63376
+ var f = file[fi];
63377
+ this.debug(pattern, p, f);
63378
+ if (p === false || p === GLOBSTAR) return false;
63882
63379
  var hit;
63883
63380
  if (typeof p === "string") {
63884
63381
  hit = f === p;
@@ -69293,7 +68790,7 @@ module.exports = findNodeDirectory;
69293
68790
  "use strict";
69294
68791
 
69295
68792
  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");
68793
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
69297
68794
  const { execFile } = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/util.js");
69298
68795
  const win = process.platform === "win32";
69299
68796
  function getOsUserInfo() {
@@ -70124,7 +69621,7 @@ const path = __webpack_require__("path");
70124
69621
  const { Transform, promises: { pipeline } } = __webpack_require__("stream");
70125
69622
  const crypto = __webpack_require__("crypto");
70126
69623
  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");
69624
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
70128
69625
  const { download } = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/download.js");
70129
69626
  const processRelease = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/process-release.js");
70130
69627
  const win = process.platform === "win32";
@@ -70805,7 +70302,7 @@ module.exports.Gyp = Gyp;
70805
70302
 
70806
70303
  "use strict";
70807
70304
 
70808
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
70305
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
70809
70306
  const url = __webpack_require__("url");
70810
70307
  const path = __webpack_require__("path");
70811
70308
  const log = __webpack_require__("./node_modules/.f/_/node-gyp/11.5.0/node-gyp/lib/log.js");
@@ -70932,7 +70429,7 @@ module.exports.usage = 'Runs "clean", "configure" and "build" all at once';
70932
70429
  const fs = (__webpack_require__("./node_modules/.f/_/graceful-fs/4.2.11/graceful-fs/graceful-fs.js").promises);
70933
70430
  const path = __webpack_require__("path");
70934
70431
  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");
70432
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
70936
70433
  async function remove(gyp, argv) {
70937
70434
  const devDir = gyp.devDir;
70938
70435
  log.verbose("remove", "using node-gyp dir:", devDir);
@@ -71875,8 +71372,8 @@ module.exports = {
71875
71372
  /***/ "./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/dev-engines.js":
71876
71373
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
71877
71374
 
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");
71375
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
71376
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/valid.js");
71880
71377
  const recognizedOnFail = [
71881
71378
  "ignore",
71882
71379
  "warn",
@@ -72001,7 +71498,7 @@ module.exports = {
72001
71498
  /***/ "./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/index.js":
72002
71499
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72003
71500
 
72004
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
71501
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
72005
71502
  const currentEnv = __webpack_require__("./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/current-env.js");
72006
71503
  const { checkDevEngines } = __webpack_require__("./node_modules/.f/_/npm-install-checks/7.1.2/npm-install-checks/lib/dev-engines.js");
72007
71504
  const checkEngine = (target, npmVer, nodeVer, force = false) => {
@@ -72178,8 +71675,8 @@ module.exports = {
72178
71675
  /***/ "./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/dev-engines.js":
72179
71676
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72180
71677
 
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");
71678
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
71679
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/valid.js");
72183
71680
  const recognizedOnFail = [
72184
71681
  "ignore",
72185
71682
  "warn",
@@ -72304,7 +71801,7 @@ module.exports = {
72304
71801
  /***/ "./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/index.js":
72305
71802
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
72306
71803
 
72307
- const semver = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/index.js");
71804
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
72308
71805
  const currentEnv = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/current-env.js");
72309
71806
  const { checkDevEngines } = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/dev-engines.js");
72310
71807
  const checkEngine = (target, npmVer, nodeVer, force = false) => {
@@ -72500,7 +71997,7 @@ const { URL } = __webpack_require__("node:url");
72500
71997
  const path = isWindows ? __webpack_require__("node:path/win32") : __webpack_require__("node:path");
72501
71998
  const { homedir } = __webpack_require__("node:os");
72502
71999
  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");
72000
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
72504
72001
  const validatePackageName = __webpack_require__("./node_modules/.f/_/validate-npm-package-name/6.0.2/validate-npm-package-name/lib/index.js");
72505
72002
  const { log } = __webpack_require__("./node_modules/.f/_/proc-log/5.0.0/proc-log/lib/index.js");
72506
72003
  const hasSlashes = isWindows ? /\\|[/]/ : /[/]/;
@@ -73242,7 +72739,7 @@ walk.Walker = PackWalker;
73242
72739
  "use strict";
73243
72740
 
73244
72741
  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");
72742
+ const semver = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/index.js");
73246
72743
  const { checkEngine } = __webpack_require__("./node_modules/.f/_/npm-install-checks/8.0.0/npm-install-checks/lib/index.js");
73247
72744
  const normalizeBin = __webpack_require__("./node_modules/.f/_/npm-normalize-package-bin/5.0.0/npm-normalize-package-bin/lib/index.js");
73248
72745
  const engineOk = (manifest, npmVersion, nodeVersion) => {
@@ -77792,7 +77289,7 @@ exports.basename = (path, { windows } = {}) => {
77792
77289
 
77793
77290
  /***/ }),
77794
77291
 
77795
- /***/ "./node_modules/.f/_/pkg-preper/0.1.6-fynlocal_h/pkg-preper/lib/pkg-preper.js":
77292
+ /***/ "./node_modules/.f/_/pkg-preper/0.1.8-fynlocal_h/pkg-preper/lib/pkg-preper.js":
77796
77293
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
77797
77294
 
77798
77295
  "use strict";
@@ -87302,7 +86799,7 @@ SafeBuffer.allocUnsafeSlow = function(size) {
87302
86799
 
87303
86800
  /***/ }),
87304
86801
 
87305
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/comparator.js":
86802
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/classes/comparator.js":
87306
86803
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87307
86804
 
87308
86805
  "use strict";
@@ -87407,17 +86904,17 @@ class Comparator {
87407
86904
  }
87408
86905
  }
87409
86906
  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");
86907
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/parse-options.js");
86908
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/re.js");
86909
+ const cmp = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/cmp.js");
86910
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/debug.js");
86911
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
86912
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
87416
86913
 
87417
86914
 
87418
86915
  /***/ }),
87419
86916
 
87420
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/range.js":
86917
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/classes/range.js":
87421
86918
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87422
86919
 
87423
86920
  "use strict";
@@ -87562,20 +87059,20 @@ class Range {
87562
87059
  }
87563
87060
  }
87564
87061
  module.exports = Range;
87565
- const LRU = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/internal/lrucache.js");
87062
+ const LRU = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/lrucache.js");
87566
87063
  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");
87064
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/parse-options.js");
87065
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/comparator.js");
87066
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/debug.js");
87067
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
87571
87068
  const {
87572
87069
  safeRe: re,
87573
87070
  t,
87574
87071
  comparatorTrimReplace,
87575
87072
  tildeTrimReplace,
87576
87073
  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");
87074
+ } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/re.js");
87075
+ const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js");
87579
87076
  const isNullSet = (c) => c.value === "<0.0.0-0";
87580
87077
  const isAny = (c) => c.value === "";
87581
87078
  const isSatisfiable = (comparators, options) => {
@@ -87796,16 +87293,16 @@ const testSet = (set, version, options) => {
87796
87293
 
87797
87294
  /***/ }),
87798
87295
 
87799
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js":
87296
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js":
87800
87297
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
87801
87298
 
87802
87299
  "use strict";
87803
87300
 
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");
87301
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/debug.js");
87302
+ const { MAX_LENGTH, MAX_SAFE_INTEGER } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js");
87303
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/re.js");
87304
+ const parseOptions = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/parse-options.js");
87305
+ const { compareIdentifiers } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/identifiers.js");
87809
87306
  class SemVer {
87810
87307
  constructor(version, options) {
87811
87308
  options = parseOptions(options);
@@ -88077,12 +87574,12 @@ module.exports = SemVer;
88077
87574
 
88078
87575
  /***/ }),
88079
87576
 
88080
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/clean.js":
87577
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/clean.js":
88081
87578
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88082
87579
 
88083
87580
  "use strict";
88084
87581
 
88085
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87582
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88086
87583
  const clean = (version, options) => {
88087
87584
  const s = parse(version.trim().replace(/^[=v]+/, ""), options);
88088
87585
  return s ? s.version : null;
@@ -88092,17 +87589,17 @@ module.exports = clean;
88092
87589
 
88093
87590
  /***/ }),
88094
87591
 
88095
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/cmp.js":
87592
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/cmp.js":
88096
87593
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88097
87594
 
88098
87595
  "use strict";
88099
87596
 
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");
87597
+ const eq = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/eq.js");
87598
+ const neq = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/neq.js");
87599
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gt.js");
87600
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gte.js");
87601
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lt.js");
87602
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lte.js");
88106
87603
  const cmp = (a, op, b, loose) => {
88107
87604
  switch (op) {
88108
87605
  case "===":
@@ -88144,14 +87641,14 @@ module.exports = cmp;
88144
87641
 
88145
87642
  /***/ }),
88146
87643
 
88147
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/coerce.js":
87644
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/coerce.js":
88148
87645
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88149
87646
 
88150
87647
  "use strict";
88151
87648
 
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");
87649
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
87650
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
87651
+ const { safeRe: re, t } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/re.js");
88155
87652
  const coerce = (version, options) => {
88156
87653
  if (version instanceof SemVer) {
88157
87654
  return version;
@@ -88192,12 +87689,12 @@ module.exports = coerce;
88192
87689
 
88193
87690
  /***/ }),
88194
87691
 
88195
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js":
87692
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/compare-build.js":
88196
87693
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88197
87694
 
88198
87695
  "use strict";
88199
87696
 
88200
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87697
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88201
87698
  const compareBuild = (a, b, loose) => {
88202
87699
  const versionA = new SemVer(a, loose);
88203
87700
  const versionB = new SemVer(b, loose);
@@ -88208,36 +87705,36 @@ module.exports = compareBuild;
88208
87705
 
88209
87706
  /***/ }),
88210
87707
 
88211
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare-loose.js":
87708
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/compare-loose.js":
88212
87709
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88213
87710
 
88214
87711
  "use strict";
88215
87712
 
88216
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87713
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88217
87714
  const compareLoose = (a, b) => compare(a, b, true);
88218
87715
  module.exports = compareLoose;
88219
87716
 
88220
87717
 
88221
87718
  /***/ }),
88222
87719
 
88223
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js":
87720
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js":
88224
87721
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88225
87722
 
88226
87723
  "use strict";
88227
87724
 
88228
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87725
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88229
87726
  const compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
88230
87727
  module.exports = compare;
88231
87728
 
88232
87729
 
88233
87730
  /***/ }),
88234
87731
 
88235
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/diff.js":
87732
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/diff.js":
88236
87733
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88237
87734
 
88238
87735
  "use strict";
88239
87736
 
88240
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87737
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88241
87738
  const diff = (version1, version2) => {
88242
87739
  const v1 = parse(version1, null, true);
88243
87740
  const v2 = parse(version2, null, true);
@@ -88278,48 +87775,48 @@ module.exports = diff;
88278
87775
 
88279
87776
  /***/ }),
88280
87777
 
88281
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/eq.js":
87778
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/eq.js":
88282
87779
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88283
87780
 
88284
87781
  "use strict";
88285
87782
 
88286
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87783
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88287
87784
  const eq = (a, b, loose) => compare(a, b, loose) === 0;
88288
87785
  module.exports = eq;
88289
87786
 
88290
87787
 
88291
87788
  /***/ }),
88292
87789
 
88293
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/gt.js":
87790
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/gt.js":
88294
87791
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88295
87792
 
88296
87793
  "use strict";
88297
87794
 
88298
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87795
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88299
87796
  const gt = (a, b, loose) => compare(a, b, loose) > 0;
88300
87797
  module.exports = gt;
88301
87798
 
88302
87799
 
88303
87800
  /***/ }),
88304
87801
 
88305
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/gte.js":
87802
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/gte.js":
88306
87803
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88307
87804
 
88308
87805
  "use strict";
88309
87806
 
88310
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87807
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88311
87808
  const gte = (a, b, loose) => compare(a, b, loose) >= 0;
88312
87809
  module.exports = gte;
88313
87810
 
88314
87811
 
88315
87812
  /***/ }),
88316
87813
 
88317
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/inc.js":
87814
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/inc.js":
88318
87815
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88319
87816
 
88320
87817
  "use strict";
88321
87818
 
88322
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87819
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88323
87820
  const inc = (version, release, options, identifier, identifierBase) => {
88324
87821
  if (typeof options === "string") {
88325
87822
  identifierBase = identifier;
@@ -88340,72 +87837,72 @@ module.exports = inc;
88340
87837
 
88341
87838
  /***/ }),
88342
87839
 
88343
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/lt.js":
87840
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/lt.js":
88344
87841
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88345
87842
 
88346
87843
  "use strict";
88347
87844
 
88348
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87845
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88349
87846
  const lt = (a, b, loose) => compare(a, b, loose) < 0;
88350
87847
  module.exports = lt;
88351
87848
 
88352
87849
 
88353
87850
  /***/ }),
88354
87851
 
88355
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/lte.js":
87852
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/lte.js":
88356
87853
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88357
87854
 
88358
87855
  "use strict";
88359
87856
 
88360
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87857
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88361
87858
  const lte = (a, b, loose) => compare(a, b, loose) <= 0;
88362
87859
  module.exports = lte;
88363
87860
 
88364
87861
 
88365
87862
  /***/ }),
88366
87863
 
88367
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/major.js":
87864
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/major.js":
88368
87865
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88369
87866
 
88370
87867
  "use strict";
88371
87868
 
88372
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87869
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88373
87870
  const major = (a, loose) => new SemVer(a, loose).major;
88374
87871
  module.exports = major;
88375
87872
 
88376
87873
 
88377
87874
  /***/ }),
88378
87875
 
88379
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/minor.js":
87876
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/minor.js":
88380
87877
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88381
87878
 
88382
87879
  "use strict";
88383
87880
 
88384
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87881
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88385
87882
  const minor = (a, loose) => new SemVer(a, loose).minor;
88386
87883
  module.exports = minor;
88387
87884
 
88388
87885
 
88389
87886
  /***/ }),
88390
87887
 
88391
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/neq.js":
87888
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/neq.js":
88392
87889
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88393
87890
 
88394
87891
  "use strict";
88395
87892
 
88396
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87893
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88397
87894
  const neq = (a, b, loose) => compare(a, b, loose) !== 0;
88398
87895
  module.exports = neq;
88399
87896
 
88400
87897
 
88401
87898
  /***/ }),
88402
87899
 
88403
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js":
87900
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js":
88404
87901
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88405
87902
 
88406
87903
  "use strict";
88407
87904
 
88408
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87905
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88409
87906
  const parse = (version, options, throwErrors = false) => {
88410
87907
  if (version instanceof SemVer) {
88411
87908
  return version;
@@ -88424,24 +87921,24 @@ module.exports = parse;
88424
87921
 
88425
87922
  /***/ }),
88426
87923
 
88427
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/patch.js":
87924
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/patch.js":
88428
87925
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88429
87926
 
88430
87927
  "use strict";
88431
87928
 
88432
- const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/semver.js");
87929
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88433
87930
  const patch = (a, loose) => new SemVer(a, loose).patch;
88434
87931
  module.exports = patch;
88435
87932
 
88436
87933
 
88437
87934
  /***/ }),
88438
87935
 
88439
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/prerelease.js":
87936
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/prerelease.js":
88440
87937
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88441
87938
 
88442
87939
  "use strict";
88443
87940
 
88444
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
87941
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88445
87942
  const prerelease = (version, options) => {
88446
87943
  const parsed = parse(version, options);
88447
87944
  return parsed && parsed.prerelease.length ? parsed.prerelease : null;
@@ -88451,36 +87948,36 @@ module.exports = prerelease;
88451
87948
 
88452
87949
  /***/ }),
88453
87950
 
88454
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/rcompare.js":
87951
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/rcompare.js":
88455
87952
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88456
87953
 
88457
87954
  "use strict";
88458
87955
 
88459
- const compare = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare.js");
87956
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88460
87957
  const rcompare = (a, b, loose) => compare(b, a, loose);
88461
87958
  module.exports = rcompare;
88462
87959
 
88463
87960
 
88464
87961
  /***/ }),
88465
87962
 
88466
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/rsort.js":
87963
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/rsort.js":
88467
87964
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88468
87965
 
88469
87966
  "use strict";
88470
87967
 
88471
- const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js");
87968
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare-build.js");
88472
87969
  const rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
88473
87970
  module.exports = rsort;
88474
87971
 
88475
87972
 
88476
87973
  /***/ }),
88477
87974
 
88478
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/satisfies.js":
87975
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js":
88479
87976
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88480
87977
 
88481
87978
  "use strict";
88482
87979
 
88483
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
87980
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88484
87981
  const satisfies = (version, range, options) => {
88485
87982
  try {
88486
87983
  range = new Range(range, options);
@@ -88494,24 +87991,67 @@ module.exports = satisfies;
88494
87991
 
88495
87992
  /***/ }),
88496
87993
 
88497
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/sort.js":
87994
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/sort.js":
88498
87995
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88499
87996
 
88500
87997
  "use strict";
88501
87998
 
88502
- const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/compare-build.js");
87999
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare-build.js");
88503
88000
  const sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
88504
88001
  module.exports = sort;
88505
88002
 
88506
88003
 
88507
88004
  /***/ }),
88508
88005
 
88509
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/functions/valid.js":
88006
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/truncate.js":
88007
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88008
+
88009
+ "use strict";
88010
+
88011
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88012
+ const constants = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js");
88013
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88014
+ const truncate = (version, truncation, options) => {
88015
+ if (!constants.RELEASE_TYPES.includes(truncation)) {
88016
+ return null;
88017
+ }
88018
+ const clonedVersion = cloneInputVersion(version, options);
88019
+ return clonedVersion && doTruncation(clonedVersion, truncation);
88020
+ };
88021
+ const cloneInputVersion = (version, options) => {
88022
+ const versionStringToParse = version instanceof SemVer ? version.version : version;
88023
+ return parse(versionStringToParse, options);
88024
+ };
88025
+ const doTruncation = (version, truncation) => {
88026
+ if (isPrerelease(truncation)) {
88027
+ return version.version;
88028
+ }
88029
+ version.prerelease = [];
88030
+ switch (truncation) {
88031
+ case "major":
88032
+ version.minor = 0;
88033
+ version.patch = 0;
88034
+ break;
88035
+ case "minor":
88036
+ version.patch = 0;
88037
+ break;
88038
+ }
88039
+ return version.format();
88040
+ };
88041
+ const isPrerelease = (type) => {
88042
+ return type.startsWith("pre");
88043
+ };
88044
+ module.exports = truncate;
88045
+
88046
+
88047
+ /***/ }),
88048
+
88049
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/functions/valid.js":
88510
88050
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88511
88051
 
88512
88052
  "use strict";
88513
88053
 
88514
- const parse = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/functions/parse.js");
88054
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88515
88055
  const valid = (version, options) => {
88516
88056
  const v = parse(version, options);
88517
88057
  return v ? v.version : null;
@@ -88521,52 +88061,53 @@ module.exports = valid;
88521
88061
 
88522
88062
  /***/ }),
88523
88063
 
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");
88064
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/index.js":
88065
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88066
+
88067
+ "use strict";
88068
+
88069
+ const internalRe = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/re.js");
88070
+ const constants = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js");
88071
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88072
+ const identifiers = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/identifiers.js");
88073
+ const parse = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/parse.js");
88074
+ const valid = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/valid.js");
88075
+ const clean = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/clean.js");
88076
+ const inc = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/inc.js");
88077
+ const diff = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/diff.js");
88078
+ const major = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/major.js");
88079
+ const minor = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/minor.js");
88080
+ const patch = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/patch.js");
88081
+ const prerelease = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/prerelease.js");
88082
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
88083
+ const rcompare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/rcompare.js");
88084
+ const compareLoose = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare-loose.js");
88085
+ const compareBuild = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare-build.js");
88086
+ const sort = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/sort.js");
88087
+ const rsort = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/rsort.js");
88088
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gt.js");
88089
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lt.js");
88090
+ const eq = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/eq.js");
88091
+ const neq = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/neq.js");
88092
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gte.js");
88093
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lte.js");
88094
+ const cmp = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/cmp.js");
88095
+ const coerce = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/coerce.js");
88096
+ const truncate = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/truncate.js");
88097
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/comparator.js");
88098
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88099
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
88100
+ const toComparators = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/to-comparators.js");
88101
+ const maxSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/max-satisfying.js");
88102
+ const minSatisfying = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/min-satisfying.js");
88103
+ const minVersion = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/min-version.js");
88104
+ const validRange = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/valid.js");
88105
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/outside.js");
88106
+ const gtr = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/gtr.js");
88107
+ const ltr = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/ltr.js");
88108
+ const intersects = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/intersects.js");
88109
+ const simplifyRange = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/simplify.js");
88110
+ const subset = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/subset.js");
88570
88111
  module.exports = {
88571
88112
  parse,
88572
88113
  valid,
@@ -88591,6 +88132,7 @@ module.exports = {
88591
88132
  lte,
88592
88133
  cmp,
88593
88134
  coerce,
88135
+ truncate,
88594
88136
  Comparator,
88595
88137
  Range,
88596
88138
  satisfies,
@@ -88618,7 +88160,7 @@ module.exports = {
88618
88160
 
88619
88161
  /***/ }),
88620
88162
 
88621
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/constants.js":
88163
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js":
88622
88164
  /***/ ((module) => {
88623
88165
 
88624
88166
  "use strict";
@@ -88652,7 +88194,7 @@ module.exports = {
88652
88194
 
88653
88195
  /***/ }),
88654
88196
 
88655
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/debug.js":
88197
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/debug.js":
88656
88198
  /***/ ((module) => {
88657
88199
 
88658
88200
  "use strict";
@@ -88664,7 +88206,7 @@ module.exports = debug;
88664
88206
 
88665
88207
  /***/ }),
88666
88208
 
88667
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/identifiers.js":
88209
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/identifiers.js":
88668
88210
  /***/ ((module) => {
88669
88211
 
88670
88212
  "use strict";
@@ -88691,7 +88233,7 @@ module.exports = {
88691
88233
 
88692
88234
  /***/ }),
88693
88235
 
88694
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/lrucache.js":
88236
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/lrucache.js":
88695
88237
  /***/ ((module) => {
88696
88238
 
88697
88239
  "use strict";
@@ -88731,7 +88273,7 @@ module.exports = LRUCache;
88731
88273
 
88732
88274
  /***/ }),
88733
88275
 
88734
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/parse-options.js":
88276
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/parse-options.js":
88735
88277
  /***/ ((module) => {
88736
88278
 
88737
88279
  "use strict";
@@ -88752,7 +88294,7 @@ module.exports = parseOptions;
88752
88294
 
88753
88295
  /***/ }),
88754
88296
 
88755
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/internal/re.js":
88297
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/internal/re.js":
88756
88298
  /***/ ((module, exports, __webpack_require__) => {
88757
88299
 
88758
88300
  "use strict";
@@ -88761,8 +88303,8 @@ const {
88761
88303
  MAX_SAFE_COMPONENT_LENGTH,
88762
88304
  MAX_SAFE_BUILD_LENGTH,
88763
88305
  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");
88306
+ } = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/constants.js");
88307
+ const debug = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/internal/debug.js");
88766
88308
  exports = module.exports = {};
88767
88309
  const re = exports.re = [];
88768
88310
  const safeRe = exports.safeRe = [];
@@ -88842,24 +88384,24 @@ createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$");
88842
88384
 
88843
88385
  /***/ }),
88844
88386
 
88845
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/gtr.js":
88387
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/gtr.js":
88846
88388
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88847
88389
 
88848
88390
  "use strict";
88849
88391
 
88850
- const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js");
88392
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/outside.js");
88851
88393
  const gtr = (version, range, options) => outside(version, range, ">", options);
88852
88394
  module.exports = gtr;
88853
88395
 
88854
88396
 
88855
88397
  /***/ }),
88856
88398
 
88857
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/intersects.js":
88399
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/intersects.js":
88858
88400
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88859
88401
 
88860
88402
  "use strict";
88861
88403
 
88862
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88404
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88863
88405
  const intersects = (r1, r2, options) => {
88864
88406
  r1 = new Range(r1, options);
88865
88407
  r2 = new Range(r2, options);
@@ -88870,25 +88412,25 @@ module.exports = intersects;
88870
88412
 
88871
88413
  /***/ }),
88872
88414
 
88873
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/ltr.js":
88415
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/ltr.js":
88874
88416
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88875
88417
 
88876
88418
  "use strict";
88877
88419
 
88878
- const outside = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js");
88420
+ const outside = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/ranges/outside.js");
88879
88421
  const ltr = (version, range, options) => outside(version, range, "<", options);
88880
88422
  module.exports = ltr;
88881
88423
 
88882
88424
 
88883
88425
  /***/ }),
88884
88426
 
88885
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/max-satisfying.js":
88427
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/max-satisfying.js":
88886
88428
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88887
88429
 
88888
88430
  "use strict";
88889
88431
 
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");
88432
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88433
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88892
88434
  const maxSatisfying = (versions, range, options) => {
88893
88435
  let max = null;
88894
88436
  let maxSV = null;
@@ -88913,13 +88455,13 @@ module.exports = maxSatisfying;
88913
88455
 
88914
88456
  /***/ }),
88915
88457
 
88916
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/min-satisfying.js":
88458
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/min-satisfying.js":
88917
88459
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88918
88460
 
88919
88461
  "use strict";
88920
88462
 
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");
88463
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88464
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88923
88465
  const minSatisfying = (versions, range, options) => {
88924
88466
  let min = null;
88925
88467
  let minSV = null;
@@ -88944,14 +88486,14 @@ module.exports = minSatisfying;
88944
88486
 
88945
88487
  /***/ }),
88946
88488
 
88947
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/min-version.js":
88489
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/min-version.js":
88948
88490
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
88949
88491
 
88950
88492
  "use strict";
88951
88493
 
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");
88494
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88495
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88496
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gt.js");
88955
88497
  const minVersion = (range, loose) => {
88956
88498
  range = new Range(range, loose);
88957
88499
  let minver = new SemVer("0.0.0");
@@ -89005,20 +88547,20 @@ module.exports = minVersion;
89005
88547
 
89006
88548
  /***/ }),
89007
88549
 
89008
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/outside.js":
88550
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/outside.js":
89009
88551
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89010
88552
 
89011
88553
  "use strict";
89012
88554
 
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");
88555
+ const SemVer = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/semver.js");
88556
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/comparator.js");
89015
88557
  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");
88558
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88559
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
88560
+ const gt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gt.js");
88561
+ const lt = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lt.js");
88562
+ const lte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/lte.js");
88563
+ const gte = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/gte.js");
89022
88564
  const outside = (version, range, hilo, options) => {
89023
88565
  version = new SemVer(version, options);
89024
88566
  range = new Range(range, options);
@@ -89076,13 +88618,13 @@ module.exports = outside;
89076
88618
 
89077
88619
  /***/ }),
89078
88620
 
89079
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/simplify.js":
88621
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/simplify.js":
89080
88622
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89081
88623
 
89082
88624
  "use strict";
89083
88625
 
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");
88626
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
88627
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
89086
88628
  module.exports = (versions, range, options) => {
89087
88629
  const set = [];
89088
88630
  let first = null;
@@ -89128,16 +88670,16 @@ module.exports = (versions, range, options) => {
89128
88670
 
89129
88671
  /***/ }),
89130
88672
 
89131
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/subset.js":
88673
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/subset.js":
89132
88674
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89133
88675
 
89134
88676
  "use strict";
89135
88677
 
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");
88678
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
88679
+ const Comparator = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/comparator.js");
89138
88680
  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");
88681
+ const satisfies = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/satisfies.js");
88682
+ const compare = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/functions/compare.js");
89141
88683
  const subset = (sub, dom, options = {}) => {
89142
88684
  if (sub === dom) {
89143
88685
  return true;
@@ -89292,24 +88834,24 @@ module.exports = subset;
89292
88834
 
89293
88835
  /***/ }),
89294
88836
 
89295
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/to-comparators.js":
88837
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/to-comparators.js":
89296
88838
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89297
88839
 
89298
88840
  "use strict";
89299
88841
 
89300
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88842
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
89301
88843
  const toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c) => c.value).join(" ").trim().split(" "));
89302
88844
  module.exports = toComparators;
89303
88845
 
89304
88846
 
89305
88847
  /***/ }),
89306
88848
 
89307
- /***/ "./node_modules/.f/_/semver/7.7.3/semver/ranges/valid.js":
88849
+ /***/ "./node_modules/.f/_/semver/7.8.0/semver/ranges/valid.js":
89308
88850
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
89309
88851
 
89310
88852
  "use strict";
89311
88853
 
89312
- const Range = __webpack_require__("./node_modules/.f/_/semver/7.7.3/semver/classes/range.js");
88854
+ const Range = __webpack_require__("./node_modules/.f/_/semver/7.8.0/semver/classes/range.js");
89313
88855
  const validRange = (range, options) => {
89314
88856
  try {
89315
88857
  return new Range(range, options).range || "*";
@@ -103631,85 +103173,63 @@ module.exports = validate;
103631
103173
 
103632
103174
  /***/ }),
103633
103175
 
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__) {
103176
+ /***/ "./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/get-default-logger.js":
103177
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
103636
103178
 
103637
103179
  "use strict";
103638
103180
 
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() {
103181
+ const VisualLogger = __webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js");
103182
+ const { isCI } = __webpack_require__("./node_modules/.f/_/ci-info/3.9.0/ci-info/index.js");
103183
+ let logger;
103184
+ const getLogger = () => {
103648
103185
  if (!logger) {
103649
- logger = new visual_logger_1.default();
103650
- if (ci_info_1.isCI) {
103186
+ logger = new VisualLogger();
103187
+ if (isCI) {
103651
103188
  logger.info("visual-exec: CI env detected");
103652
103189
  logger.setItemType("none");
103653
103190
  }
103654
103191
  }
103655
103192
  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
- } }));
103193
+ };
103194
+ module.exports = getLogger;
103681
103195
 
103682
103196
 
103683
103197
  /***/ }),
103684
103198
 
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__) {
103199
+ /***/ "./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/visual-exec.js":
103200
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
103687
103201
 
103688
103202
  "use strict";
103689
103203
 
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;
103204
+ const xsh = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js");
103205
+ const chalk = __webpack_require__("./node_modules/.f/_/chalk/4.1.2/chalk/source/index.js");
103206
+ const getDefaultLogger = __webpack_require__("./node_modules/.f/_/visual-exec/0.1.14/visual-exec/lib/get-default-logger.js");
103207
+ const VisualLogger = __webpack_require__("./node_modules/.f/_/visual-logger/1.1.3/visual-logger/lib/visual-logger.js");
103208
+ const hasAnsi = __webpack_require__("./node_modules/.f/_/has-ansi/4.0.1/has-ansi/index.js");
103209
+ const stripAnsi = __webpack_require__("./node_modules/.f/_/strip-ansi/6.0.1/strip-ansi/index.js");
103210
+ xsh.Promise = Promise;
103702
103211
  const ONE_MB = 1024 * 1024;
103703
103212
  const TEN_MB = 10 * ONE_MB;
103704
103213
  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;
103214
+ constructor({
103215
+ command,
103216
+ cwd = process.cwd(),
103217
+ visualLogger,
103218
+ spinner = VisualLogger.spinners[1],
103219
+ displayTitle = void 0,
103220
+ logLabel = void 0,
103221
+ outputLabel = void 0,
103222
+ outputLevel = "verbose",
103223
+ maxBuffer = TEN_MB,
103224
+ forceStderr = true,
103225
+ checkStdoutError = true
103226
+ }) {
103707
103227
  this._title = displayTitle || this._makeTitle(command);
103708
103228
  this._logLabel = logLabel || this._title;
103709
103229
  this._outputLabel = outputLabel || this._title;
103710
103230
  this._command = command;
103711
103231
  this._cwd = cwd || process.cwd();
103712
- this._logger = visualLogger || (0, get_default_logger_1.getDefaultLogger)();
103232
+ this._logger = visualLogger || getDefaultLogger();
103713
103233
  this._outputLevel = outputLevel;
103714
103234
  this._spinner = spinner;
103715
103235
  this._maxBuffer = maxBuffer;
@@ -103723,10 +103243,11 @@ class VisualExec {
103723
103243
  }
103724
103244
  return `Running ${command}`;
103725
103245
  }
103246
+ /* eslint-disable max-statements */
103726
103247
  _updateDigest(item, buf) {
103727
103248
  const newBuf = item.buf + buf;
103728
103249
  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);
103250
+ const stripLines = lines.map((x) => hasAnsi(x) ? stripAnsi(x) : x);
103730
103251
  let length = 0;
103731
103252
  let ix = stripLines.length - 1;
103732
103253
  for (; ix >= 0; ix--) {
@@ -103753,7 +103274,7 @@ class VisualExec {
103753
103274
  item.buf += "\n";
103754
103275
  }
103755
103276
  this._logger.updateItem(item.name, {
103756
- msg: msgs.join(chalk_1.default.blue.inverse("\\n")),
103277
+ msg: msgs.join(chalk.blue.inverse("\\n")),
103757
103278
  _save: false,
103758
103279
  _render: false
103759
103280
  });
@@ -103795,58 +103316,51 @@ stdout`,
103795
103316
  child.stdout.removeListener("data", this._updateStdout);
103796
103317
  child.stderr.removeListener("data", this._updateStderr);
103797
103318
  if (err) {
103798
- this._logger.error(`${chalk_1.default.red("Failed")} ${this._logLabel} - ${chalk_1.default.red(err.message)}`);
103319
+ this._logger.error(`${chalk.red("Failed")} ${this._logLabel} - ${chalk.red(err.message)}`);
103799
103320
  output = err.output;
103800
103321
  } else {
103801
103322
  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")}`);
103323
+ const dispTime = `${chalk.magenta(time)}secs`;
103324
+ this._logger.info(`Done ${this._logLabel} ${dispTime} ${chalk.green("exit code 0")}`);
103804
103325
  }
103805
103326
  this.logFinalOutput(err, output);
103806
103327
  }
103807
103328
  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;
103329
+ return this._checkStdoutError && text && text.match(this._checkStdoutError);
103814
103330
  }
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
103331
  logFinalOutput(err, output) {
103820
- const level = err || this._forceStderr && output?.stderr || this.checkForErrors(output?.stdout || "") ? "error" : this._outputLevel;
103332
+ const level = err || this._forceStderr && output.stderr || this.checkForErrors(output.stdout) ? "error" : this._outputLevel;
103821
103333
  if (!output || !output.stdout && !output.stderr) {
103822
- this._logger[level](`${chalk_1.default.green("No output")} from ${this._outputLabel}`);
103334
+ this._logger[level](`${chalk.green("No output")} from ${this._outputLabel}`);
103823
103335
  return;
103824
103336
  }
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} ===`];
103337
+ const colorize = (t) => t.replace(/ERR!/g, chalk.red("ERR!"));
103338
+ const logs = [chalk.green(">>>"), `Start of output from ${this._outputLabel} ===`];
103827
103339
  if (output.stdout) {
103828
103340
  logs.push(`
103829
103341
  ${colorize(output.stdout)}`);
103830
103342
  }
103831
103343
  if (output.stderr) {
103832
- logs.push(chalk_1.default.red("\n=== stderr ===\n") + colorize(output.stderr));
103344
+ logs.push(chalk.red("\n=== stderr ===\n") + colorize(output.stderr));
103833
103345
  }
103834
- logs.push(chalk_1.default.blue("\n<<<"), `End of output from ${this._outputLabel} ---`);
103346
+ logs.push(chalk.blue("\n<<<"), `End of output from ${this._outputLabel} ---`);
103835
103347
  this._logger.prefix(false)[level](...logs);
103836
103348
  }
103837
103349
  execute(command) {
103838
103350
  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);
103351
+ const child = xsh.exec(
103352
+ {
103353
+ silent: true,
103354
+ cwd: this._cwd,
103355
+ env: Object.assign({}, process.env, { PWD: this._cwd }),
103356
+ maxBuffer: this._maxBuffer
103357
+ },
103358
+ command || this._command
103359
+ );
103845
103360
  return this.show(child);
103846
103361
  }
103847
103362
  }
103848
- exports.VisualExec = VisualExec;
103849
- exports["default"] = VisualExec;
103363
+ module.exports = VisualExec;
103850
103364
 
103851
103365
 
103852
103366
  /***/ }),
@@ -104951,7 +104465,7 @@ module.exports = xenvConfig;
104951
104465
 
104952
104466
  /***/ }),
104953
104467
 
104954
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env-path.js":
104468
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/env-path.js":
104955
104469
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
104956
104470
 
104957
104471
  "use strict";
@@ -105028,7 +104542,7 @@ module.exports = {
105028
104542
 
105029
104543
  /***/ }),
105030
104544
 
105031
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/env.js":
104545
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/env.js":
105032
104546
  /***/ ((module) => {
105033
104547
 
105034
104548
  "use strict";
@@ -105069,7 +104583,7 @@ module.exports = {
105069
104583
 
105070
104584
  /***/ }),
105071
104585
 
105072
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js":
104586
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js":
105073
104587
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105074
104588
 
105075
104589
  "use strict";
@@ -105080,13 +104594,13 @@ module.exports = Path.sep === "\\" ? (x) => x.replace(/\\/g, "\\\\") : (x) => x;
105080
104594
 
105081
104595
  /***/ }),
105082
104596
 
105083
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/exec.js":
104597
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/exec.js":
105084
104598
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105085
104599
 
105086
104600
  "use strict";
105087
104601
 
105088
104602
  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");
104603
+ const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js");
105090
104604
  const assert = __webpack_require__("assert");
105091
104605
  function exec() {
105092
104606
  const error = (cmd2, code, output) => {
@@ -105161,19 +104675,19 @@ module.exports = exec;
105161
104675
 
105162
104676
  /***/ }),
105163
104677
 
105164
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/index.js":
104678
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/index.js":
105165
104679
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105166
104680
 
105167
104681
  "use strict";
105168
104682
 
105169
- const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/util.js");
104683
+ const util = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js");
105170
104684
  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"),
104685
+ exec: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/exec.js"),
104686
+ env: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/env.js"),
104687
+ envPath: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/env-path.js"),
104688
+ mkCmd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/mkcmd.js"),
104689
+ pathCwd: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js"),
104690
+ pathCwdNm: __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd-nm.js"),
105177
104691
  $: __webpack_require__("./node_modules/.f/_/shcmd/0.8.4/shcmd/shell.js")
105178
104692
  };
105179
104693
  Object.defineProperty(xsh, "Promise", {
@@ -105187,7 +104701,7 @@ module.exports = xsh;
105187
104701
 
105188
104702
  /***/ }),
105189
104703
 
105190
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/mkcmd.js":
104704
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/mkcmd.js":
105191
104705
  /***/ ((module) => {
105192
104706
 
105193
104707
  "use strict";
@@ -105200,14 +104714,14 @@ module.exports = mkCmd;
105200
104714
 
105201
104715
  /***/ }),
105202
104716
 
105203
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd-nm.js":
104717
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd-nm.js":
105204
104718
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105205
104719
 
105206
104720
  "use strict";
105207
104721
 
105208
- const pathCwd = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd.js");
104722
+ const pathCwd = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js");
105209
104723
  const Path = __webpack_require__("path");
105210
- const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js");
104724
+ const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js");
105211
104725
  const normNm = escBs(Path.normalize("/node_modules/"));
105212
104726
  const normNmReplacer = Path.normalize("/~/");
105213
104727
  const makeNmRegex = () => escBs(Path.resolve("node_modules"));
@@ -105230,13 +104744,13 @@ module.exports = {
105230
104744
 
105231
104745
  /***/ }),
105232
104746
 
105233
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/path-cwd.js":
104747
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/path-cwd.js":
105234
104748
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
105235
104749
 
105236
104750
  "use strict";
105237
104751
 
105238
104752
  const Path = __webpack_require__("path");
105239
- const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/esc-bs.js");
104753
+ const escBs = __webpack_require__("./node_modules/.f/_/xsh/0.4.6/xsh/lib/esc-bs.js");
105240
104754
  module.exports = {
105241
104755
  remove: (p, flags, stripSlash) => {
105242
104756
  const cwd = process.cwd();
@@ -105262,7 +104776,7 @@ module.exports = {
105262
104776
 
105263
104777
  /***/ }),
105264
104778
 
105265
- /***/ "./node_modules/.f/_/xsh/0.4.6-fynlocal_h/xsh/lib/util.js":
104779
+ /***/ "./node_modules/.f/_/xsh/0.4.6/xsh/lib/util.js":
105266
104780
  /***/ ((module) => {
105267
104781
 
105268
104782
  "use strict";