@coana-tech/cli 14.12.155 → 14.12.157

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/cli.mjs CHANGED
@@ -250902,7 +250902,7 @@ async function onlineScan(dependencyTree, apiKey, timeout) {
250902
250902
  }
250903
250903
 
250904
250904
  // dist/version.js
250905
- var version3 = "14.12.155";
250905
+ var version3 = "14.12.157";
250906
250906
 
250907
250907
  // dist/cli-core.js
250908
250908
  var { mapValues, omit, partition, pickBy: pickBy2 } = import_lodash15.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coana-tech/cli",
3
- "version": "14.12.155",
3
+ "version": "14.12.157",
4
4
  "description": "Coana CLI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -110803,7 +110803,7 @@ async function runJellyAnalysis(mainProjectRoot, projectRoot, jellyOptions, reac
110803
110803
  --reachable-json ${affectedPackagesFile}
110804
110804
  ${getExcludes(mainProjectRoot, projectRoot, reachabilityAnalysisOptions)}
110805
110805
  --diagnostics-json ${diagnosticsFile}
110806
- --max-indirections=${jellyOptions.maxIndirections}
110806
+ --max-indirections=${useLazy ? 2 : jellyOptions.maxIndirections}
110807
110807
  ${!!includePackages && (includePackages.length ? ["--include-packages", ...includePackages] : ["--ignore-dependencies"])}
110808
110808
  ${jellyOptions.approx && "--approx"}
110809
110809
  ${logFile ? ["--logfile", logFile] : []}
@@ -113703,7 +113703,7 @@ async function downloadAndExtractGem(gemName, version3, vendorDir) {
113703
113703
  logger.debug(`Downloading gem ${gemName}@${version3}`);
113704
113704
  const response = await fetch(`https://rubygems.org/gems/${gemName}-${version3}${platform7 ? `-${platform7}` : ""}.gem`);
113705
113705
  if (!response.ok)
113706
- throw new Error(`Failed to download gem: ${response.statusText}`);
113706
+ throw new Error(`Failed to download gem from ${response.url}: ${response.status} ${response.statusText}`);
113707
113707
  if (!response.body)
113708
113708
  throw new Error("Response body is null");
113709
113709
  await pipeline3(response.body, createWriteStream4(tempGemFile));
@@ -113712,23 +113712,21 @@ async function downloadAndExtractGem(gemName, version3, vendorDir) {
113712
113712
  await exec2(["tar", "-xf", tempGemFile, "data.tar.gz"], gemDir);
113713
113713
  await exec2(["tar", "-xzf", "data.tar.gz"], gemDir);
113714
113714
  await rm7(join18(gemDir, "data.tar.gz"));
113715
- const hasValidStructure = [`${gemName}.gemspec`, "Rakefile", "lib"].some((f2) => existsSync15(join18(gemDir, f2)));
113716
- if (!hasValidStructure)
113717
- throw new Error(`Invalid gem structure: Could not find ${gemName}.gemspec or Rakefile or lib`);
113718
113715
  await rm7(tempGemFile, { force: true });
113719
113716
  };
113720
113717
  try {
113721
113718
  await downloadAndExtract(void 0);
113722
- } catch (e) {
113719
+ } catch (e1) {
113723
113720
  try {
113724
113721
  const platform7 = await axios_default.get(`https://gem.coop/api/v1/versions/${gemName}.json`).then((res) => {
113725
113722
  return res.data.find((v) => v.number === version3)?.platform;
113726
113723
  });
113727
113724
  await downloadAndExtract(platform7);
113728
- } catch (e2) {
113725
+ } catch (e) {
113726
+ logger.debug(`Error from 1st attempt to download ${gemName}@${version3}: ${e1}`);
113729
113727
  await rm7(gemDir, { recursive: true, force: true });
113730
113728
  await rm7(tempGemFile, { force: true });
113731
- throw e2;
113729
+ throw e;
113732
113730
  }
113733
113731
  }
113734
113732
  }
@@ -4258,13 +4258,13 @@ var require_triple_beam = __commonJS({
4258
4258
  "../../node_modules/.pnpm/triple-beam@1.4.1/node_modules/triple-beam/index.js"(exports) {
4259
4259
  "use strict";
4260
4260
  Object.defineProperty(exports, "LEVEL", {
4261
- value: Symbol.for("level")
4261
+ value: /* @__PURE__ */ Symbol.for("level")
4262
4262
  });
4263
4263
  Object.defineProperty(exports, "MESSAGE", {
4264
- value: Symbol.for("message")
4264
+ value: /* @__PURE__ */ Symbol.for("message")
4265
4265
  });
4266
4266
  Object.defineProperty(exports, "SPLAT", {
4267
- value: Symbol.for("splat")
4267
+ value: /* @__PURE__ */ Symbol.for("splat")
4268
4268
  });
4269
4269
  Object.defineProperty(exports, "configs", {
4270
4270
  value: require_config()
@@ -6052,9 +6052,9 @@ var require_logform = __commonJS({
6052
6052
  }
6053
6053
  });
6054
6054
 
6055
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/common.js
6055
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/common.js
6056
6056
  var require_common = __commonJS({
6057
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/common.js"(exports) {
6057
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/common.js"(exports) {
6058
6058
  "use strict";
6059
6059
  var { format: format3 } = __require("util");
6060
6060
  exports.warn = {
@@ -6089,13 +6089,13 @@ var require_common = __commonJS({
6089
6089
  }
6090
6090
  });
6091
6091
 
6092
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/package.json
6092
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/package.json
6093
6093
  var require_package = __commonJS({
6094
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/package.json"(exports, module) {
6094
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/package.json"(exports, module) {
6095
6095
  module.exports = {
6096
6096
  name: "winston",
6097
6097
  description: "A logger for just about everything.",
6098
- version: "3.18.3",
6098
+ version: "3.19.0",
6099
6099
  author: "Charlie Robbins <charlie.robbins@gmail.com>",
6100
6100
  maintainers: [
6101
6101
  "David Hyde <dabh@alumni.stanford.edu>"
@@ -6141,9 +6141,8 @@ var require_package = __commonJS({
6141
6141
  "cross-spawn-async": "^2.2.5",
6142
6142
  eslint: "^8.57.0",
6143
6143
  hock: "^1.4.1",
6144
- mocha: "^10.3.0",
6145
- nyc: "^17.1.0",
6146
- rimraf: "5.0.1",
6144
+ jest: "^29.7.0",
6145
+ rimraf: "5.0.10",
6147
6146
  split2: "^4.1.0",
6148
6147
  "std-mocks": "^2.0.0",
6149
6148
  through2: "^4.0.2",
@@ -6154,11 +6153,12 @@ var require_package = __commonJS({
6154
6153
  types: "./index.d.ts",
6155
6154
  scripts: {
6156
6155
  lint: "eslint lib/*.js lib/winston/*.js lib/winston/**/*.js --resolve-plugins-relative-to ./node_modules/@dabh/eslint-config-populist",
6157
- test: "rimraf test/fixtures/logs/* && mocha",
6158
- "test:coverage": "nyc npm run test:unit",
6159
- "test:unit": "mocha test/unit",
6160
- "test:integration": "mocha test/integration",
6161
- build: "rimraf dist && babel lib -d dist",
6156
+ test: "jest",
6157
+ "test:unit": "jest -c test/jest.config.unit.js",
6158
+ "test:integration": "jest -c test/jest.config.integration.js",
6159
+ "test:typescript": "npx --package typescript tsc --project test",
6160
+ build: "babel lib -d dist",
6161
+ prebuild: "rimraf dist",
6162
6162
  prepublishOnly: "npm run build"
6163
6163
  },
6164
6164
  engines: {
@@ -7099,13 +7099,13 @@ var require_async_iterator = __commonJS({
7099
7099
  return (hint === "string" ? String : Number)(input);
7100
7100
  }
7101
7101
  var finished = require_end_of_stream();
7102
- var kLastResolve = Symbol("lastResolve");
7103
- var kLastReject = Symbol("lastReject");
7104
- var kError = Symbol("error");
7105
- var kEnded = Symbol("ended");
7106
- var kLastPromise = Symbol("lastPromise");
7107
- var kHandlePromise = Symbol("handlePromise");
7108
- var kStream = Symbol("stream");
7102
+ var kLastResolve = /* @__PURE__ */ Symbol("lastResolve");
7103
+ var kLastReject = /* @__PURE__ */ Symbol("lastReject");
7104
+ var kError = /* @__PURE__ */ Symbol("error");
7105
+ var kEnded = /* @__PURE__ */ Symbol("ended");
7106
+ var kLastPromise = /* @__PURE__ */ Symbol("lastPromise");
7107
+ var kHandlePromise = /* @__PURE__ */ Symbol("handlePromise");
7108
+ var kStream = /* @__PURE__ */ Symbol("stream");
7109
7109
  function createIterResult(value, done) {
7110
7110
  return {
7111
7111
  value,
@@ -8858,9 +8858,9 @@ var require_winston_transport = __commonJS({
8858
8858
  }
8859
8859
  });
8860
8860
 
8861
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/console.js
8861
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/console.js
8862
8862
  var require_console = __commonJS({
8863
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/console.js"(exports, module) {
8863
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/console.js"(exports, module) {
8864
8864
  "use strict";
8865
8865
  var os = __require("os");
8866
8866
  var { LEVEL, MESSAGE } = require_triple_beam();
@@ -11570,9 +11570,9 @@ var require_node2 = __commonJS({
11570
11570
  }
11571
11571
  });
11572
11572
 
11573
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/tail-file.js
11573
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/tail-file.js
11574
11574
  var require_tail_file = __commonJS({
11575
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/tail-file.js"(exports, module) {
11575
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/tail-file.js"(exports, module) {
11576
11576
  "use strict";
11577
11577
  var fs4 = __require("fs");
11578
11578
  var { StringDecoder: StringDecoder2 } = __require("string_decoder");
@@ -11665,9 +11665,9 @@ var require_tail_file = __commonJS({
11665
11665
  }
11666
11666
  });
11667
11667
 
11668
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/file.js
11668
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/file.js
11669
11669
  var require_file = __commonJS({
11670
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/file.js"(exports, module) {
11670
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/file.js"(exports, module) {
11671
11671
  "use strict";
11672
11672
  var fs4 = __require("fs");
11673
11673
  var path2 = __require("path");
@@ -11741,6 +11741,28 @@ var require_file = __commonJS({
11741
11741
  }
11742
11742
  }
11743
11743
  }
11744
+ /**
11745
+ * Called by Node.js Writable stream before emitting 'finish'.
11746
+ * Ensures all buffered data is flushed to the underlying file stream
11747
+ * before the transport signals completion.
11748
+ * @param {Function} callback - Callback to signal completion.
11749
+ * @private
11750
+ */
11751
+ _final(callback) {
11752
+ if (this._opening) {
11753
+ this.once("open", () => this._final(callback));
11754
+ return;
11755
+ }
11756
+ this._stream.end();
11757
+ if (!this._dest) {
11758
+ return callback();
11759
+ }
11760
+ if (this._dest.writableFinished) {
11761
+ return callback();
11762
+ }
11763
+ this._dest.once("finish", callback);
11764
+ this._dest.once("error", callback);
11765
+ }
11744
11766
  /**
11745
11767
  * Core logging method exposed to Winston. Metadata is optional.
11746
11768
  * @param {Object} info - TODO: add param description.
@@ -12259,9 +12281,9 @@ var require_file = __commonJS({
12259
12281
  }
12260
12282
  });
12261
12283
 
12262
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/http.js
12284
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/http.js
12263
12285
  var require_http = __commonJS({
12264
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/http.js"(exports, module) {
12286
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/http.js"(exports, module) {
12265
12287
  "use strict";
12266
12288
  var http = __require("http");
12267
12289
  var https = __require("https");
@@ -12490,9 +12512,9 @@ var require_is_stream = __commonJS({
12490
12512
  }
12491
12513
  });
12492
12514
 
12493
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/stream.js
12515
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/stream.js
12494
12516
  var require_stream2 = __commonJS({
12495
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/stream.js"(exports, module) {
12517
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/stream.js"(exports, module) {
12496
12518
  "use strict";
12497
12519
  var isStream2 = require_is_stream();
12498
12520
  var { MESSAGE } = require_triple_beam();
@@ -12539,9 +12561,9 @@ var require_stream2 = __commonJS({
12539
12561
  }
12540
12562
  });
12541
12563
 
12542
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/index.js
12564
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/index.js
12543
12565
  var require_transports = __commonJS({
12544
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/transports/index.js"(exports) {
12566
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/transports/index.js"(exports) {
12545
12567
  "use strict";
12546
12568
  Object.defineProperty(exports, "Console", {
12547
12569
  configurable: true,
@@ -12574,9 +12596,9 @@ var require_transports = __commonJS({
12574
12596
  }
12575
12597
  });
12576
12598
 
12577
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/config/index.js
12599
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/config/index.js
12578
12600
  var require_config2 = __commonJS({
12579
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/config/index.js"(exports) {
12601
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/config/index.js"(exports) {
12580
12602
  "use strict";
12581
12603
  var logform = require_logform();
12582
12604
  var { configs } = require_triple_beam();
@@ -12851,9 +12873,9 @@ var require_stack_trace = __commonJS({
12851
12873
  }
12852
12874
  });
12853
12875
 
12854
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/exception-stream.js
12876
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/exception-stream.js
12855
12877
  var require_exception_stream = __commonJS({
12856
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/exception-stream.js"(exports, module) {
12878
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/exception-stream.js"(exports, module) {
12857
12879
  "use strict";
12858
12880
  var { Writable } = require_readable();
12859
12881
  module.exports = class ExceptionStream extends Writable {
@@ -12891,9 +12913,9 @@ var require_exception_stream = __commonJS({
12891
12913
  }
12892
12914
  });
12893
12915
 
12894
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/exception-handler.js
12916
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/exception-handler.js
12895
12917
  var require_exception_handler = __commonJS({
12896
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/exception-handler.js"(exports, module) {
12918
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/exception-handler.js"(exports, module) {
12897
12919
  "use strict";
12898
12920
  var os = __require("os");
12899
12921
  var asyncForEach = require_forEach();
@@ -13089,9 +13111,9 @@ var require_exception_handler = __commonJS({
13089
13111
  }
13090
13112
  });
13091
13113
 
13092
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/rejection-stream.js
13114
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/rejection-stream.js
13093
13115
  var require_rejection_stream = __commonJS({
13094
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/rejection-stream.js"(exports, module) {
13116
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/rejection-stream.js"(exports, module) {
13095
13117
  "use strict";
13096
13118
  var { Writable } = require_readable();
13097
13119
  module.exports = class RejectionStream extends Writable {
@@ -13129,9 +13151,9 @@ var require_rejection_stream = __commonJS({
13129
13151
  }
13130
13152
  });
13131
13153
 
13132
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/rejection-handler.js
13154
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/rejection-handler.js
13133
13155
  var require_rejection_handler = __commonJS({
13134
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/rejection-handler.js"(exports, module) {
13156
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/rejection-handler.js"(exports, module) {
13135
13157
  "use strict";
13136
13158
  var os = __require("os");
13137
13159
  var asyncForEach = require_forEach();
@@ -13333,9 +13355,9 @@ var require_rejection_handler = __commonJS({
13333
13355
  }
13334
13356
  });
13335
13357
 
13336
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/profiler.js
13358
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/profiler.js
13337
13359
  var require_profiler = __commonJS({
13338
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/profiler.js"(exports, module) {
13360
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/profiler.js"(exports, module) {
13339
13361
  "use strict";
13340
13362
  var Profiler = class {
13341
13363
  /**
@@ -13375,9 +13397,9 @@ var require_profiler = __commonJS({
13375
13397
  }
13376
13398
  });
13377
13399
 
13378
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/logger.js
13400
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js
13379
13401
  var require_logger = __commonJS({
13380
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/logger.js"(exports, module) {
13402
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/logger.js"(exports, module) {
13381
13403
  "use strict";
13382
13404
  var { Stream: Stream2, Transform } = require_readable();
13383
13405
  var asyncForEach = require_forEach();
@@ -13413,6 +13435,7 @@ var require_logger = __commonJS({
13413
13435
  if (info instanceof Error) {
13414
13436
  infoClone.stack = info.stack;
13415
13437
  infoClone.message = info.message;
13438
+ infoClone.cause = info.cause;
13416
13439
  }
13417
13440
  logger2.write(infoClone);
13418
13441
  }
@@ -13912,9 +13935,9 @@ var require_logger = __commonJS({
13912
13935
  }
13913
13936
  });
13914
13937
 
13915
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/create-logger.js
13938
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js
13916
13939
  var require_create_logger = __commonJS({
13917
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/create-logger.js"(exports, module) {
13940
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/create-logger.js"(exports, module) {
13918
13941
  "use strict";
13919
13942
  var { LEVEL } = require_triple_beam();
13920
13943
  var config = require_config2();
@@ -13968,9 +13991,9 @@ var require_create_logger = __commonJS({
13968
13991
  }
13969
13992
  });
13970
13993
 
13971
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/container.js
13994
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/container.js
13972
13995
  var require_container = __commonJS({
13973
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston/container.js"(exports, module) {
13996
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston/container.js"(exports, module) {
13974
13997
  "use strict";
13975
13998
  var createLogger2 = require_create_logger();
13976
13999
  module.exports = class Container {
@@ -14064,9 +14087,9 @@ var require_container = __commonJS({
14064
14087
  }
14065
14088
  });
14066
14089
 
14067
- // ../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston.js
14090
+ // ../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston.js
14068
14091
  var require_winston = __commonJS({
14069
- "../../node_modules/.pnpm/winston@3.18.3/node_modules/winston/lib/winston.js"(exports) {
14092
+ "../../node_modules/.pnpm/winston@3.19.0/node_modules/winston/lib/winston.js"(exports) {
14070
14093
  "use strict";
14071
14094
  var logform = require_logform();
14072
14095
  var { warn } = require_common();
@@ -15088,7 +15111,7 @@ var init_esm3 = __esm({
15088
15111
  };
15089
15112
  sep2 = defaultPlatform === "win32" ? path.win32.sep : path.posix.sep;
15090
15113
  minimatch.sep = sep2;
15091
- GLOBSTAR = Symbol("globstar **");
15114
+ GLOBSTAR = /* @__PURE__ */ Symbol("globstar **");
15092
15115
  minimatch.GLOBSTAR = GLOBSTAR;
15093
15116
  qmark2 = "[^/]";
15094
15117
  star2 = qmark2 + "*?";
@@ -15755,7 +15778,7 @@ var init_esm3 = __esm({
15755
15778
  });
15756
15779
 
15757
15780
  // ../../node_modules/.pnpm/lru-cache@11.2.2/node_modules/lru-cache/dist/esm/index.js
15758
- var defaultPerf, warned, PROCESS, emitWarning, AC, AS, shouldWarn, TYPE, isPosInt, getUintArray, ZeroArray, Stack, LRUCache;
15781
+ var defaultPerf, warned, PROCESS, emitWarning, AC, AS, shouldWarn, isPosInt, getUintArray, ZeroArray, Stack, LRUCache;
15759
15782
  var init_esm4 = __esm({
15760
15783
  "../../node_modules/.pnpm/lru-cache@11.2.2/node_modules/lru-cache/dist/esm/index.js"() {
15761
15784
  defaultPerf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
@@ -15801,7 +15824,6 @@ var init_esm4 = __esm({
15801
15824
  };
15802
15825
  }
15803
15826
  shouldWarn = (code) => !warned.has(code);
15804
- TYPE = Symbol("type");
15805
15827
  isPosInt = (n12) => n12 && n12 === Math.floor(n12) && n12 > 0 && isFinite(n12);
15806
15828
  getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
15807
15829
  ZeroArray = class extends Array {
@@ -17175,37 +17197,37 @@ var init_esm5 = __esm({
17175
17197
  isReadable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
17176
17198
  s.pipe !== Stream.Writable.prototype.pipe;
17177
17199
  isWritable = (s) => !!s && typeof s === "object" && s instanceof EventEmitter && typeof s.write === "function" && typeof s.end === "function";
17178
- EOF = Symbol("EOF");
17179
- MAYBE_EMIT_END = Symbol("maybeEmitEnd");
17180
- EMITTED_END = Symbol("emittedEnd");
17181
- EMITTING_END = Symbol("emittingEnd");
17182
- EMITTED_ERROR = Symbol("emittedError");
17183
- CLOSED = Symbol("closed");
17184
- READ = Symbol("read");
17185
- FLUSH = Symbol("flush");
17186
- FLUSHCHUNK = Symbol("flushChunk");
17187
- ENCODING = Symbol("encoding");
17188
- DECODER = Symbol("decoder");
17189
- FLOWING = Symbol("flowing");
17190
- PAUSED = Symbol("paused");
17191
- RESUME = Symbol("resume");
17192
- BUFFER = Symbol("buffer");
17193
- PIPES = Symbol("pipes");
17194
- BUFFERLENGTH = Symbol("bufferLength");
17195
- BUFFERPUSH = Symbol("bufferPush");
17196
- BUFFERSHIFT = Symbol("bufferShift");
17197
- OBJECTMODE = Symbol("objectMode");
17198
- DESTROYED = Symbol("destroyed");
17199
- ERROR = Symbol("error");
17200
- EMITDATA = Symbol("emitData");
17201
- EMITEND = Symbol("emitEnd");
17202
- EMITEND2 = Symbol("emitEnd2");
17203
- ASYNC = Symbol("async");
17204
- ABORT = Symbol("abort");
17205
- ABORTED = Symbol("aborted");
17206
- SIGNAL = Symbol("signal");
17207
- DATALISTENERS = Symbol("dataListeners");
17208
- DISCARDED = Symbol("discarded");
17200
+ EOF = /* @__PURE__ */ Symbol("EOF");
17201
+ MAYBE_EMIT_END = /* @__PURE__ */ Symbol("maybeEmitEnd");
17202
+ EMITTED_END = /* @__PURE__ */ Symbol("emittedEnd");
17203
+ EMITTING_END = /* @__PURE__ */ Symbol("emittingEnd");
17204
+ EMITTED_ERROR = /* @__PURE__ */ Symbol("emittedError");
17205
+ CLOSED = /* @__PURE__ */ Symbol("closed");
17206
+ READ = /* @__PURE__ */ Symbol("read");
17207
+ FLUSH = /* @__PURE__ */ Symbol("flush");
17208
+ FLUSHCHUNK = /* @__PURE__ */ Symbol("flushChunk");
17209
+ ENCODING = /* @__PURE__ */ Symbol("encoding");
17210
+ DECODER = /* @__PURE__ */ Symbol("decoder");
17211
+ FLOWING = /* @__PURE__ */ Symbol("flowing");
17212
+ PAUSED = /* @__PURE__ */ Symbol("paused");
17213
+ RESUME = /* @__PURE__ */ Symbol("resume");
17214
+ BUFFER = /* @__PURE__ */ Symbol("buffer");
17215
+ PIPES = /* @__PURE__ */ Symbol("pipes");
17216
+ BUFFERLENGTH = /* @__PURE__ */ Symbol("bufferLength");
17217
+ BUFFERPUSH = /* @__PURE__ */ Symbol("bufferPush");
17218
+ BUFFERSHIFT = /* @__PURE__ */ Symbol("bufferShift");
17219
+ OBJECTMODE = /* @__PURE__ */ Symbol("objectMode");
17220
+ DESTROYED = /* @__PURE__ */ Symbol("destroyed");
17221
+ ERROR = /* @__PURE__ */ Symbol("error");
17222
+ EMITDATA = /* @__PURE__ */ Symbol("emitData");
17223
+ EMITEND = /* @__PURE__ */ Symbol("emitEnd");
17224
+ EMITEND2 = /* @__PURE__ */ Symbol("emitEnd2");
17225
+ ASYNC = /* @__PURE__ */ Symbol("async");
17226
+ ABORT = /* @__PURE__ */ Symbol("abort");
17227
+ ABORTED = /* @__PURE__ */ Symbol("aborted");
17228
+ SIGNAL = /* @__PURE__ */ Symbol("signal");
17229
+ DATALISTENERS = /* @__PURE__ */ Symbol("dataListeners");
17230
+ DISCARDED = /* @__PURE__ */ Symbol("discarded");
17209
17231
  defer = (fn) => Promise.resolve().then(fn);
17210
17232
  nodefer = (fn) => fn();
17211
17233
  isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
@@ -18130,7 +18152,7 @@ var init_esm6 = __esm({
18130
18152
  });
18131
18153
  }
18132
18154
  };
18133
- setAsCwd = Symbol("PathScurry setAsCwd");
18155
+ setAsCwd = /* @__PURE__ */ Symbol("PathScurry setAsCwd");
18134
18156
  PathBase = class {
18135
18157
  /**
18136
18158
  * the basename of this path
@@ -21109,13 +21131,13 @@ import { readFile as readFile2, writeFile } from "node:fs/promises";
21109
21131
  import { resolve as resolve4 } from "node:path";
21110
21132
  import { inspect as inspect2 } from "node:util";
21111
21133
 
21112
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/lazyDataLastImpl-BDhrIOwR.js
21134
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/lazyDataLastImpl-DtF3cihj.js
21113
21135
  function e(e5, t15, n12) {
21114
21136
  let r3 = (n13) => e5(n13, ...t15);
21115
21137
  return n12 === void 0 ? r3 : Object.assign(r3, { lazy: n12, lazyArgs: t15 });
21116
21138
  }
21117
21139
 
21118
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/purry-DH9cw9sy.js
21140
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/purry-GjwKKIlp.js
21119
21141
  function t(t15, n12, r3) {
21120
21142
  let i = t15.length - n12.length;
21121
21143
  if (i === 0) return t15(...n12);
@@ -21123,18 +21145,18 @@ function t(t15, n12, r3) {
21123
21145
  throw Error(`Wrong number of arguments`);
21124
21146
  }
21125
21147
 
21126
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/capitalize-DktTi0gl.js
21148
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/capitalize.js
21127
21149
  function t2(...t15) {
21128
21150
  return t(n, t15);
21129
21151
  }
21130
21152
  var n = (e5) => `${e5[0]?.toUpperCase() ?? ``}${e5.slice(1)}`;
21131
21153
 
21132
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/constant-ZKESIgIV.js
21154
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/constant.js
21133
21155
  function e2(e5) {
21134
21156
  return () => e5;
21135
21157
  }
21136
21158
 
21137
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/countBy-DRx5TN-y.js
21159
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/countBy.js
21138
21160
  function t3(...t15) {
21139
21161
  return t(n2, t15);
21140
21162
  }
@@ -21150,18 +21172,18 @@ var n2 = (e5, t15) => {
21150
21172
  return Object.fromEntries(n12);
21151
21173
  };
21152
21174
 
21153
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/hasAtLeast-F1Oj_xBB.js
21175
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/hasAtLeast-C6VESifI.js
21154
21176
  function t4(...t15) {
21155
21177
  return t(n3, t15);
21156
21178
  }
21157
21179
  var n3 = (e5, t15) => e5.length >= t15;
21158
21180
 
21159
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/entries-IutXYNeS.js
21181
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/entries.js
21160
21182
  function t5(...t15) {
21161
21183
  return t(Object.entries, t15);
21162
21184
  }
21163
21185
 
21164
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/evolve-kp_dV-9A.js
21186
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/evolve.js
21165
21187
  function t6(...t15) {
21166
21188
  return t(n4, t15);
21167
21189
  }
@@ -21172,7 +21194,7 @@ function n4(e5, t15) {
21172
21194
  return r3;
21173
21195
  }
21174
21196
 
21175
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/fromKeys-fsUaiGAg.js
21197
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/fromKeys.js
21176
21198
  function t7(...t15) {
21177
21199
  return t(n5, t15);
21178
21200
  }
@@ -21182,13 +21204,13 @@ function n5(e5, t15) {
21182
21204
  return n12;
21183
21205
  }
21184
21206
 
21185
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/identity-CdMenAq7.js
21207
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/identity.js
21186
21208
  function e3() {
21187
21209
  return t8;
21188
21210
  }
21189
21211
  var t8 = (e5) => e5;
21190
21212
 
21191
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/mapValues-D8ywfrE_.js
21213
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/mapValues.js
21192
21214
  function t9(...t15) {
21193
21215
  return t(n6, t15);
21194
21216
  }
@@ -21198,7 +21220,7 @@ function n6(e5, t15) {
21198
21220
  return n12;
21199
21221
  }
21200
21222
 
21201
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/omit-HZOiLuMO.js
21223
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/omit.js
21202
21224
  function n7(...t15) {
21203
21225
  return t(r, t15);
21204
21226
  }
@@ -21213,7 +21235,7 @@ function r(e5, n12) {
21213
21235
  return r3;
21214
21236
  }
21215
21237
 
21216
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/pick-CZJrFX39.js
21238
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/pick.js
21217
21239
  function t10(...t15) {
21218
21240
  return t(n8, t15);
21219
21241
  }
@@ -21223,7 +21245,7 @@ function n8(e5, t15) {
21223
21245
  return n12;
21224
21246
  }
21225
21247
 
21226
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/pickBy-DE-thspn.js
21248
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/pickBy.js
21227
21249
  function t11(...t15) {
21228
21250
  return t(n9, t15);
21229
21251
  }
@@ -21233,7 +21255,7 @@ function n9(e5, t15) {
21233
21255
  return n12;
21234
21256
  }
21235
21257
 
21236
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/sumBy-B4Rqq3Nr.js
21258
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/sumBy.js
21237
21259
  function t12(...t15) {
21238
21260
  return t(n10, t15);
21239
21261
  }
@@ -21248,7 +21270,7 @@ var n10 = (e5, t15) => {
21248
21270
  return a;
21249
21271
  };
21250
21272
 
21251
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/words-Cyt_9v5M.js
21273
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/words-idA5_J31.js
21252
21274
  var e4 = /* @__PURE__ */ new Set([`-`, `_`, ...` .
21253
21275
  .\v.\f.\r. .\x85.\xA0.\u1680.\u2000.\u2001.\u2002.\u2003.\u2004.\u2005.\u2006.\u2007.\u2008.\u2009.\u200A.\u2028.\u2029.\u202F.\u205F.\u3000.\uFEFF`.split(`.`)]);
21254
21276
  var t13 = (t15) => {
@@ -21270,7 +21292,7 @@ var t13 = (t15) => {
21270
21292
  return i(), n12;
21271
21293
  };
21272
21294
 
21273
- // ../../node_modules/.pnpm/remeda@2.32.0/node_modules/remeda/dist/toCamelCase-DwOHYENU.js
21295
+ // ../../node_modules/.pnpm/remeda@2.33.2/node_modules/remeda/dist/toCamelCase.js
21274
21296
  var t14 = /[a-z]/u;
21275
21297
  function n11(e5, t15) {
21276
21298
  return typeof e5 == `string` ? r2(e5, t15) : (t16) => r2(t16, e5);
@@ -21335,6 +21357,12 @@ function setAdd(s, v) {
21335
21357
  const prevSize = s.size;
21336
21358
  return s.add(v).size > prevSize;
21337
21359
  }
21360
+ async function arrayFromAsync(asyncIterable) {
21361
+ const result = [];
21362
+ for await (const item of asyncIterable)
21363
+ result.push(item);
21364
+ return result;
21365
+ }
21338
21366
  var Queue = class {
21339
21367
  items;
21340
21368
  back = [];
@@ -22125,7 +22153,7 @@ function makeConstant(name) {
22125
22153
  function checkConstant(s) {
22126
22154
  assert3.match(s, /^(?:::)?[A-Z][^:]*(?:::[A-Z][^:]*)*$/);
22127
22155
  }
22128
- var tokenFactoryKey = Symbol("tokenFactoryKey");
22156
+ var tokenFactoryKey = /* @__PURE__ */ Symbol("tokenFactoryKey");
22129
22157
  function syntaxNodeToHashStr(node) {
22130
22158
  return `${getNodeFilename(node)}:${node.id}`;
22131
22159
  }
@@ -23555,7 +23583,7 @@ var RubyAstVisitor = class {
23555
23583
  arguments: { positional: [] },
23556
23584
  result: nVar
23557
23585
  });
23558
- this.op.callMethod(rVar, fieldName + "=", {
23586
+ this.op.callMethod(rVar, `${fieldName}=`, {
23559
23587
  caller,
23560
23588
  callNode: node,
23561
23589
  arguments: { positional: [eVar] },
@@ -23803,7 +23831,7 @@ var RubyAnalyzer = class {
23803
23831
  if (basename2(file) === "config.ru" || file.endsWith(".rb"))
23804
23832
  return true;
23805
23833
  if (/\bbin\/[^./]+$/.test(file)) {
23806
- const head = Buffer.concat(await Array.fromAsync(createReadStream(file, { start: 0, end: 127 }))).toString("utf8");
23834
+ const head = Buffer.concat(await arrayFromAsync(createReadStream(file, { start: 0, end: 127 }))).toString("utf8");
23807
23835
  return /^#!.*\bruby\b/.test(head);
23808
23836
  }
23809
23837
  return false;
@@ -24247,7 +24275,8 @@ var TelemetryEmitter = class {
24247
24275
  }
24248
24276
  emit(event) {
24249
24277
  try {
24250
- appendFileSync(this.filePath, JSON.stringify({ data: event }) + "\n");
24278
+ appendFileSync(this.filePath, `${JSON.stringify({ data: event })}
24279
+ `);
24251
24280
  } catch {
24252
24281
  }
24253
24282
  }
@@ -24450,7 +24479,7 @@ Call graph has ${edges.length} edges.`);
24450
24479
  console.log(`Diagnostics:
24451
24480
  ${inspect2(globalState.diagnostics, { depth: Infinity })}`);
24452
24481
  console.log("Listeners processed:");
24453
- const lp = solver.listenersProcessedByTokenListener().entries().map(([l, cnt]) => [solver.listenerName(l) + ":", cnt]).toArray().sort(([, c1], [, c2]) => c2 - c1);
24482
+ const lp = solver.listenersProcessedByTokenListener().entries().map(([l, cnt]) => [`${solver.listenerName(l)}:`, cnt]).toArray().sort(([, c1], [, c2]) => c2 - c1);
24454
24483
  const width = Math.max(...lp.map(([l]) => l.length));
24455
24484
  console.log(lp.map(([l, cnt]) => ` ${l.padEnd(width)} ${cnt}`).join("\n"));
24456
24485
  console.log("Unsupported warnings:");
@@ -19,7 +19,7 @@ and exception handling semantics with low overhead.
19
19
  API references are available in the [doc](doc/README.md) directory.
20
20
 
21
21
  <!-- x-release-please-start-version -->
22
- ## Current version: 8.3.1
22
+ ## Current version: 8.5.0
23
23
  <!-- x-release-please-end -->
24
24
 
25
25
  (See [CHANGELOG.md](CHANGELOG.md) for complete Changelog)
@@ -92,4 +92,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for more details on our philosophy around
92
92
 
93
93
  Licensed under [MIT](./LICENSE.md)
94
94
 
95
- [Node-API support matrix]: https://nodejs.org/dist/latest/docs/api/n-api.html#n_api_n_api_version_matrix
95
+ [Node-API support matrix]: https://nodejs.org/dist/latest/docs/api/n-api.html#node-api-version-matrix
@@ -1577,6 +1577,11 @@ inline Object::PropertyLValue<Key>& Object::PropertyLValue<Key>::operator=(
1577
1577
  return *this;
1578
1578
  }
1579
1579
 
1580
+ template <typename Key>
1581
+ inline Value Object::PropertyLValue<Key>::AsValue() const {
1582
+ return Value(*this);
1583
+ }
1584
+
1580
1585
  template <typename Key>
1581
1586
  inline Object::PropertyLValue<Key>::PropertyLValue(Object object, Key key)
1582
1587
  : _env(object.Env()), _object(object), _key(key) {}
@@ -2806,8 +2811,95 @@ inline void Promise::CheckCast(napi_env env, napi_value value) {
2806
2811
  NAPI_CHECK(result, "Promise::CheckCast", "value is not promise");
2807
2812
  }
2808
2813
 
2814
+ inline Promise::Promise() : Object() {}
2815
+
2809
2816
  inline Promise::Promise(napi_env env, napi_value value) : Object(env, value) {}
2810
2817
 
2818
+ inline MaybeOrValue<Promise> Promise::Then(napi_value onFulfilled) const {
2819
+ EscapableHandleScope scope(_env);
2820
+ #ifdef NODE_ADDON_API_ENABLE_MAYBE
2821
+ Value thenMethod;
2822
+ if (!Get("then").UnwrapTo(&thenMethod)) {
2823
+ return Nothing<Promise>();
2824
+ }
2825
+ MaybeOrValue<Value> result =
2826
+ thenMethod.As<Function>().Call(*this, {onFulfilled});
2827
+ if (result.IsJust()) {
2828
+ return Just(scope.Escape(result.Unwrap()).As<Promise>());
2829
+ }
2830
+ return Nothing<Promise>();
2831
+ #else
2832
+ Function thenMethod = Get("then").As<Function>();
2833
+ MaybeOrValue<Value> result = thenMethod.Call(*this, {onFulfilled});
2834
+ if (scope.Env().IsExceptionPending()) {
2835
+ return Promise();
2836
+ }
2837
+ return scope.Escape(result).As<Promise>();
2838
+ #endif
2839
+ }
2840
+
2841
+ inline MaybeOrValue<Promise> Promise::Then(napi_value onFulfilled,
2842
+ napi_value onRejected) const {
2843
+ EscapableHandleScope scope(_env);
2844
+ #ifdef NODE_ADDON_API_ENABLE_MAYBE
2845
+ Value thenMethod;
2846
+ if (!Get("then").UnwrapTo(&thenMethod)) {
2847
+ return Nothing<Promise>();
2848
+ }
2849
+ MaybeOrValue<Value> result =
2850
+ thenMethod.As<Function>().Call(*this, {onFulfilled, onRejected});
2851
+ if (result.IsJust()) {
2852
+ return Just(scope.Escape(result.Unwrap()).As<Promise>());
2853
+ }
2854
+ return Nothing<Promise>();
2855
+ #else
2856
+ Function thenMethod = Get("then").As<Function>();
2857
+ MaybeOrValue<Value> result =
2858
+ thenMethod.Call(*this, {onFulfilled, onRejected});
2859
+ if (scope.Env().IsExceptionPending()) {
2860
+ return Promise();
2861
+ }
2862
+ return scope.Escape(result).As<Promise>();
2863
+ #endif
2864
+ }
2865
+
2866
+ inline MaybeOrValue<Promise> Promise::Catch(napi_value onRejected) const {
2867
+ EscapableHandleScope scope(_env);
2868
+ #ifdef NODE_ADDON_API_ENABLE_MAYBE
2869
+ Value catchMethod;
2870
+ if (!Get("catch").UnwrapTo(&catchMethod)) {
2871
+ return Nothing<Promise>();
2872
+ }
2873
+ MaybeOrValue<Value> result =
2874
+ catchMethod.As<Function>().Call(*this, {onRejected});
2875
+ if (result.IsJust()) {
2876
+ return Just(scope.Escape(result.Unwrap()).As<Promise>());
2877
+ }
2878
+ return Nothing<Promise>();
2879
+ #else
2880
+ Function catchMethod = Get("catch").As<Function>();
2881
+ MaybeOrValue<Value> result = catchMethod.Call(*this, {onRejected});
2882
+ if (scope.Env().IsExceptionPending()) {
2883
+ return Promise();
2884
+ }
2885
+ return scope.Escape(result).As<Promise>();
2886
+ #endif
2887
+ }
2888
+
2889
+ inline MaybeOrValue<Promise> Promise::Then(const Function& onFulfilled) const {
2890
+ return Then(static_cast<napi_value>(onFulfilled));
2891
+ }
2892
+
2893
+ inline MaybeOrValue<Promise> Promise::Then(const Function& onFulfilled,
2894
+ const Function& onRejected) const {
2895
+ return Then(static_cast<napi_value>(onFulfilled),
2896
+ static_cast<napi_value>(onRejected));
2897
+ }
2898
+
2899
+ inline MaybeOrValue<Promise> Promise::Catch(const Function& onRejected) const {
2900
+ return Catch(static_cast<napi_value>(onRejected));
2901
+ }
2902
+
2811
2903
  ////////////////////////////////////////////////////////////////////////////////
2812
2904
  // Buffer<T> class
2813
2905
  ////////////////////////////////////////////////////////////////////////////////
@@ -860,6 +860,9 @@ class Object : public TypeTaggable {
860
860
  template <typename ValueType>
861
861
  PropertyLValue& operator=(ValueType value);
862
862
 
863
+ /// Converts an L-value to a value. For convenience.
864
+ Value AsValue() const;
865
+
863
866
  private:
864
867
  PropertyLValue() = delete;
865
868
  PropertyLValue(Object object, Key key);
@@ -1571,7 +1574,18 @@ class Promise : public Object {
1571
1574
 
1572
1575
  static void CheckCast(napi_env env, napi_value value);
1573
1576
 
1577
+ Promise();
1574
1578
  Promise(napi_env env, napi_value value);
1579
+
1580
+ MaybeOrValue<Promise> Then(napi_value onFulfilled) const;
1581
+ MaybeOrValue<Promise> Then(napi_value onFulfilled,
1582
+ napi_value onRejected) const;
1583
+ MaybeOrValue<Promise> Catch(napi_value onRejected) const;
1584
+
1585
+ MaybeOrValue<Promise> Then(const Function& onFulfilled) const;
1586
+ MaybeOrValue<Promise> Then(const Function& onFulfilled,
1587
+ const Function& onRejected) const;
1588
+ MaybeOrValue<Promise> Catch(const Function& onRejected) const;
1575
1589
  };
1576
1590
 
1577
1591
  template <typename T>
@@ -472,7 +472,7 @@
472
472
  "lint:fix": "eslint --fix && node tools/clang-format --fix"
473
473
  },
474
474
  "pre-commit": "lint",
475
- "version": "8.3.1",
475
+ "version": "8.5.0",
476
476
  "support": true,
477
477
  "engines": {
478
478
  "node": "^18 || ^20 || >= 21"
@@ -5428,6 +5428,7 @@ var require_analyzer = __commonJS({
5428
5428
  if (!options_1.options.reparse || a.reachedModulesFull.has(moduleInfo))
5429
5429
  moduleInfo.ast = ast;
5430
5430
  if (d.modules % 16 === 0) {
5431
+ solver.printDiagnostics();
5431
5432
  a.timeoutTimer.checkTimeout();
5432
5433
  (0, memory_1.checkMemoryLow)();
5433
5434
  }
@@ -5443,7 +5444,11 @@ var require_analyzer = __commonJS({
5443
5444
  const str = fs_1.default.readFileSync(file, "utf8");
5444
5445
  ast = (0, parser_1.parseAndDesugar)(str, file, solver.fragmentState);
5445
5446
  }
5446
- d.modulesFull++;
5447
+ if (++d.modulesFull % 16 === 0) {
5448
+ solver.printDiagnostics();
5449
+ a.timeoutTimer.checkTimeout();
5450
+ (0, memory_1.checkMemoryLow)();
5451
+ }
5447
5452
  if (!options_1.options.modulesOnly && options_1.options.printProgress)
5448
5453
  logger_1.default.info(`Analyzing ${moduleInfo}`);
5449
5454
  const moduleParams = (0, extras_1.preprocessAst)(ast, moduleInfo);