@jsenv/test 3.7.22 → 3.7.23

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.
@@ -9,7 +9,7 @@ import { cpuUsage, memoryUsage } from "node:process";
9
9
  import { stripVTControlCharacters } from "node:util";
10
10
  import crypto from "node:crypto";
11
11
  import { dirname } from "node:path";
12
- import { createServer } from "node:net";
12
+ import { createConnection, createServer } from "node:net";
13
13
  import { spawn, spawnSync, fork } from "node:child_process";
14
14
  import { availableParallelism, cpus, totalmem, release, freemem } from "node:os";
15
15
  import { SOURCEMAP, generateSourcemapDataUrl } from "@jsenv/sourcemap";
@@ -4184,13 +4184,11 @@ const applyPackageResolve = (packageSpecifier, resolutionContext) => {
4184
4184
  if (packageSpecifier === "") {
4185
4185
  throw new Error("invalid module specifier");
4186
4186
  }
4187
- if (
4188
- conditions.includes("node") &&
4189
- isSpecifierForNodeBuiltin(packageSpecifier)
4190
- ) {
4187
+ // "node:" prefixed specifiers always resolve to node builtins
4188
+ if (packageSpecifier.startsWith("node:")) {
4191
4189
  return createResolutionResult({
4192
4190
  type: "node_builtin_specifier",
4193
- url: `node:${packageSpecifier}`,
4191
+ url: packageSpecifier,
4194
4192
  });
4195
4193
  }
4196
4194
  let { packageName, packageSubpath } = parsePackageSpecifier(packageSpecifier);
@@ -4250,6 +4248,17 @@ const applyPackageResolve = (packageSpecifier, resolutionContext) => {
4250
4248
  packageJson,
4251
4249
  });
4252
4250
  }
4251
+ // Bare builtin names (without "node:" prefix) are valid only if no local package found
4252
+ // Local packages always take priority over builtins with the same name
4253
+ if (
4254
+ conditions.includes("node") &&
4255
+ isSpecifierForNodeBuiltin(packageSpecifier)
4256
+ ) {
4257
+ return createResolutionResult({
4258
+ type: "node_builtin_specifier",
4259
+ url: `node:${packageSpecifier}`,
4260
+ });
4261
+ }
4253
4262
  throw createModuleNotFoundError(packageName, resolutionContext);
4254
4263
  };
4255
4264
 
@@ -7203,32 +7212,18 @@ const basicFetch = async (
7203
7212
  };
7204
7213
 
7205
7214
  const pingServer = async (url) => {
7206
- const server = createServer();
7207
7215
  const { hostname, port } = new URL(url);
7208
7216
 
7209
- try {
7210
- await new Promise((resolve, reject) => {
7211
- server.on("error", reject);
7212
- server.on("listening", () => {
7213
- resolve();
7214
- });
7215
- server.listen(port, hostname);
7217
+ return new Promise((resolve) => {
7218
+ const socket = createConnection({ hostname, port: Number(port) });
7219
+ socket.on("connect", () => {
7220
+ socket.destroy();
7221
+ resolve(true);
7222
+ });
7223
+ socket.on("error", () => {
7224
+ resolve(false);
7216
7225
  });
7217
- } catch (error) {
7218
- if (error && error.code === "EADDRINUSE") {
7219
- return true;
7220
- }
7221
- if (error && error.code === "EACCES") {
7222
- return true;
7223
- }
7224
- throw error;
7225
- }
7226
- await new Promise((resolve, reject) => {
7227
- server.on("error", reject);
7228
- server.on("close", resolve);
7229
- server.close();
7230
7226
  });
7231
- return false;
7232
7227
  };
7233
7228
 
7234
7229
  const startServerUsingCommand = async (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/test",
3
- "version": "3.7.22",
3
+ "version": "3.7.23",
4
4
  "type": "module",
5
5
  "repository": {
6
6
  "type": "git",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@c88/v8-coverage": "0.1.1",
33
- "@jsenv/ast": "6.8.1",
34
- "@jsenv/plugin-supervisor": "1.8.2",
35
- "@jsenv/sourcemap": "1.3.17",
33
+ "@jsenv/ast": "6.8.2",
34
+ "@jsenv/plugin-supervisor": "1.8.3",
35
+ "@jsenv/sourcemap": "1.3.18",
36
36
  "he": "1.2.0",
37
37
  "istanbul-lib-coverage": "3.2.2",
38
38
  "istanbul-lib-instrument": "6.0.3",
@@ -1,30 +1,16 @@
1
- import { createServer } from "node:net";
1
+ import { createConnection } from "node:net";
2
2
 
3
3
  export const pingServer = async (url) => {
4
- const server = createServer();
5
4
  const { hostname, port } = new URL(url);
6
5
 
7
- try {
8
- await new Promise((resolve, reject) => {
9
- server.on("error", reject);
10
- server.on("listening", () => {
11
- resolve();
12
- });
13
- server.listen(port, hostname);
6
+ return new Promise((resolve) => {
7
+ const socket = createConnection({ hostname, port: Number(port) });
8
+ socket.on("connect", () => {
9
+ socket.destroy();
10
+ resolve(true);
11
+ });
12
+ socket.on("error", () => {
13
+ resolve(false);
14
14
  });
15
- } catch (error) {
16
- if (error && error.code === "EADDRINUSE") {
17
- return true;
18
- }
19
- if (error && error.code === "EACCES") {
20
- return true;
21
- }
22
- throw error;
23
- }
24
- await new Promise((resolve, reject) => {
25
- server.on("error", reject);
26
- server.on("close", resolve);
27
- server.close();
28
15
  });
29
- return false;
30
16
  };