env-runner 0.1.11 → 0.1.13

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.
Files changed (37) hide show
  1. package/dist/_chunks/{base-runner.mjs → common-base-runner.mjs} +3 -1
  2. package/dist/_chunks/{runner.d.mts → deno-process-runner.d.mts} +1 -1
  3. package/dist/_chunks/{runner.mjs → deno-process-runner.mjs} +2 -2
  4. package/dist/_chunks/{runner2.d.mts → miniflare-runner.d.mts} +1 -1
  5. package/dist/_chunks/{runner2.mjs → miniflare-runner.mjs} +9 -7
  6. package/dist/_chunks/{runner5.d.mts → netlify-runner.d.mts} +2 -2
  7. package/dist/_chunks/{runner5.mjs → netlify-runner.mjs} +1 -1
  8. package/dist/_chunks/{runner3.d.mts → node-worker-runner.d.mts} +1 -1
  9. package/dist/_chunks/{runner3.mjs → node-worker-runner.mjs} +2 -2
  10. package/dist/_chunks/{runner4.d.mts → vercel-runner.d.mts} +2 -2
  11. package/dist/_chunks/{runner4.mjs → vercel-runner.mjs} +1 -1
  12. package/dist/_chunks/virtual-loader.mjs +9 -1
  13. package/dist/index.d.mts +5 -5
  14. package/dist/index.mjs +5 -5
  15. package/dist/runners/bun-process/runner.d.mts +1 -1
  16. package/dist/runners/bun-process/runner.mjs +2 -2
  17. package/dist/runners/bun-process/worker.mjs +1 -1
  18. package/dist/runners/deno-process/runner.d.mts +2 -2
  19. package/dist/runners/deno-process/runner.mjs +1 -1
  20. package/dist/runners/deno-process/worker.mjs +1 -1
  21. package/dist/runners/miniflare/runner.d.mts +2 -2
  22. package/dist/runners/miniflare/runner.mjs +1 -1
  23. package/dist/runners/netlify/runner.d.mts +2 -2
  24. package/dist/runners/netlify/runner.mjs +1 -1
  25. package/dist/runners/node-process/runner.d.mts +1 -1
  26. package/dist/runners/node-process/runner.mjs +2 -2
  27. package/dist/runners/node-process/worker.mjs +1 -1
  28. package/dist/runners/node-worker/runner.d.mts +2 -2
  29. package/dist/runners/node-worker/runner.mjs +1 -1
  30. package/dist/runners/node-worker/worker.mjs +1 -1
  31. package/dist/runners/self/runner.d.mts +1 -1
  32. package/dist/runners/self/runner.mjs +10 -6
  33. package/dist/runners/vercel/runner.d.mts +2 -2
  34. package/dist/runners/vercel/runner.mjs +1 -1
  35. package/package.json +1 -1
  36. package/dist/_chunks/{base-runner.d.mts → common-base-runner.d.mts} +0 -0
  37. package/dist/_chunks/{worker-utils.mjs → common-worker-utils.mjs} +1 -1
@@ -30,7 +30,9 @@ var BaseEnvRunner = class {
30
30
  }
31
31
  async upgrade(context) {
32
32
  if (!this.ready || !this._address) return;
33
- await proxyUpgrade(this._address, context.node.req, context.node.socket, context.node.head);
33
+ try {
34
+ await proxyUpgrade(this._address, context.node.req, context.node.socket, context.node.head);
35
+ } catch {}
34
36
  }
35
37
  onMessage(listener) {
36
38
  this._messageListeners.add(listener);
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "./types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "./common-base-runner.mjs";
3
3
  declare class DenoProcessEnvRunner extends BaseEnvRunner {
4
4
  #private;
5
5
  constructor(opts: {
@@ -1,7 +1,7 @@
1
- import { BaseEnvRunner } from "./base-runner.mjs";
1
+ import { BaseEnvRunner } from "./common-base-runner.mjs";
2
+ import { fileURLToPath } from "node:url";
2
3
  import { existsSync } from "node:fs";
3
4
  import { spawn } from "node:child_process";
4
- import { fileURLToPath } from "node:url";
5
5
  let _defaultEntry;
6
6
  var DenoProcessEnvRunner = class extends BaseEnvRunner {
7
7
  #process;
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "./types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "./common-base-runner.mjs";
3
3
  import { IncomingMessage } from "node:http";
4
4
  import { Socket } from "node:net";
5
5
  /** Result from a module transform (compatible with Vite's `TransformResult`). */
@@ -1,12 +1,12 @@
1
1
  import { expandVirtualInvalidation, stripVirtualTypeScript, virtualModuleFormat } from "./virtual-loader.mjs";
2
- import { BaseEnvRunner } from "./base-runner.mjs";
2
+ import { BaseEnvRunner } from "./common-base-runner.mjs";
3
3
  import { init, parse } from "./libs/cjs-module-lexer.mjs";
4
4
  import { init as init$1, parse as parse$1 } from "./libs/es-module-lexer.mjs";
5
- import { isVirtualSpecifier } from "./worker-utils.mjs";
5
+ import { isVirtualSpecifier } from "./common-worker-utils.mjs";
6
6
  import { createRequire } from "node:module";
7
7
  import { proxyUpgrade } from "httpxy";
8
- import { readFileSync } from "node:fs";
9
8
  import { fileURLToPath } from "node:url";
9
+ import { readFileSync } from "node:fs";
10
10
  import { basename, dirname, isAbsolute, resolve } from "node:path";
11
11
  import { resolveModulePath } from "exsolve";
12
12
  const IPC_PATH = "/__env_runner_ipc";
@@ -313,10 +313,12 @@ var MiniflareEnvRunner = class extends BaseEnvRunner {
313
313
  }
314
314
  const mfUrl = await this.#miniflare.unsafeGetDirectURL();
315
315
  const address = new URL(mfUrl);
316
- await proxyUpgrade({
317
- host: address.hostname,
318
- port: Number(address.port)
319
- }, context.node.req, context.node.socket, context.node.head);
316
+ try {
317
+ await proxyUpgrade({
318
+ host: address.hostname,
319
+ port: Number(address.port)
320
+ }, context.node.req, context.node.socket, context.node.head);
321
+ } catch {}
320
322
  }
321
323
  async #prepareVirtualModules() {
322
324
  const virtual = this._data?.virtual;
@@ -1,6 +1,6 @@
1
1
  import { WorkerHooks } from "./types.mjs";
2
- import { EnvRunnerData } from "./base-runner.mjs";
3
- import { NodeWorkerEnvRunner } from "./runner3.mjs";
2
+ import { EnvRunnerData } from "./common-base-runner.mjs";
3
+ import { NodeWorkerEnvRunner } from "./node-worker-runner.mjs";
4
4
  declare class NetlifyEnvRunner extends NodeWorkerEnvRunner {
5
5
  constructor(opts: {
6
6
  name: string;
@@ -1,4 +1,4 @@
1
- import { NodeWorkerEnvRunner } from "./runner3.mjs";
1
+ import { NodeWorkerEnvRunner } from "./node-worker-runner.mjs";
2
2
  import { fileURLToPath } from "node:url";
3
3
  let _defaultEntry;
4
4
  var NetlifyEnvRunner = class extends NodeWorkerEnvRunner {
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "./types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "./base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "./common-base-runner.mjs";
3
3
  declare class NodeWorkerEnvRunner extends BaseEnvRunner {
4
4
  #private;
5
5
  constructor(opts: {
@@ -1,6 +1,6 @@
1
- import { BaseEnvRunner } from "./base-runner.mjs";
2
- import { existsSync } from "node:fs";
1
+ import { BaseEnvRunner } from "./common-base-runner.mjs";
3
2
  import { fileURLToPath } from "node:url";
3
+ import { existsSync } from "node:fs";
4
4
  import { Worker } from "node:worker_threads";
5
5
  let _defaultEntry;
6
6
  var NodeWorkerEnvRunner = class extends BaseEnvRunner {
@@ -1,6 +1,6 @@
1
1
  import { WorkerHooks } from "./types.mjs";
2
- import { EnvRunnerData } from "./base-runner.mjs";
3
- import { NodeWorkerEnvRunner } from "./runner3.mjs";
2
+ import { EnvRunnerData } from "./common-base-runner.mjs";
3
+ import { NodeWorkerEnvRunner } from "./node-worker-runner.mjs";
4
4
  declare class VercelEnvRunner extends NodeWorkerEnvRunner {
5
5
  constructor(opts: {
6
6
  name: string;
@@ -1,4 +1,4 @@
1
- import { NodeWorkerEnvRunner } from "./runner3.mjs";
1
+ import { NodeWorkerEnvRunner } from "./node-worker-runner.mjs";
2
2
  import { fileURLToPath } from "node:url";
3
3
  import { randomBytes } from "node:crypto";
4
4
  let _warned = false;
@@ -1,9 +1,10 @@
1
+ import { pathToFileURL } from "node:url";
1
2
  async function resolveVirtualModules(virtual) {
2
3
  const entries = await Promise.all(Object.entries(virtual).map(async ([key, value]) => [key, typeof value === "function" ? await value() : value]));
3
4
  return Object.fromEntries(entries);
4
5
  }
5
6
  const VIRTUAL_SCHEME = "virtual:";
6
- function createVirtualHooks(virtual, versions) {
7
+ function createVirtualHooks(virtual, versions, parentURL = _defaultParentURL()) {
7
8
  const resolve = (specifier, context, nextResolve) => {
8
9
  const key = _stripQuery(specifier);
9
10
  if (Object.hasOwn(virtual, key)) {
@@ -13,6 +14,10 @@ function createVirtualHooks(virtual, versions) {
13
14
  shortCircuit: true
14
15
  };
15
16
  }
17
+ if (context.parentURL?.startsWith(VIRTUAL_SCHEME)) return nextResolve(specifier, {
18
+ ...context,
19
+ parentURL
20
+ });
16
21
  return nextResolve(specifier, context);
17
22
  };
18
23
  const load = (url, context, nextLoad) => {
@@ -60,4 +65,7 @@ function _stripQuery(specifier) {
60
65
  const qIndex = specifier.indexOf("?");
61
66
  return qIndex === -1 ? specifier : specifier.slice(0, qIndex);
62
67
  }
68
+ function _defaultParentURL() {
69
+ return pathToFileURL(process.cwd() + "/").href;
70
+ }
63
71
  export { createVirtualHooks, expandVirtualInvalidation, resolveVirtualModules, stripVirtualTypeScript, virtualModuleFormat };
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { EnvRunner, FetchHandler, NodeUpgradeContext, RPCOptions, RunnerMessageListener, RunnerRPCHooks, UpgradeContext, UpgradeHandler, WorkerAddress, WorkerHooks } from "./_chunks/types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData, VirtualModuleSource, VirtualModules } from "./_chunks/base-runner.mjs";
3
- import { DenoProcessEnvRunner } from "./_chunks/runner.mjs";
4
- import { MiniflareEnvRunner, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult } from "./_chunks/runner2.mjs";
5
- import { VercelEnvRunner } from "./_chunks/runner4.mjs";
6
- import { NetlifyEnvRunner } from "./_chunks/runner5.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData, VirtualModuleSource, VirtualModules } from "./_chunks/common-base-runner.mjs";
3
+ import { DenoProcessEnvRunner } from "./_chunks/deno-process-runner.mjs";
4
+ import { MiniflareEnvRunner, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult } from "./_chunks/miniflare-runner.mjs";
5
+ import { VercelEnvRunner } from "./_chunks/vercel-runner.mjs";
6
+ import { NetlifyEnvRunner } from "./_chunks/netlify-runner.mjs";
7
7
  import { ServerOptions } from "srvx";
8
8
  import { Hooks } from "crossws";
9
9
  /**
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { BaseEnvRunner } from "./_chunks/base-runner.mjs";
1
+ import { BaseEnvRunner } from "./_chunks/common-base-runner.mjs";
2
2
  import { EnvServer, RunnerManager, loadRunner } from "./_chunks/server.mjs";
3
- import { DenoProcessEnvRunner } from "./_chunks/runner.mjs";
4
- import { MiniflareEnvRunner } from "./_chunks/runner2.mjs";
5
- import { VercelEnvRunner } from "./_chunks/runner4.mjs";
6
- import { NetlifyEnvRunner } from "./_chunks/runner5.mjs";
3
+ import { DenoProcessEnvRunner } from "./_chunks/deno-process-runner.mjs";
4
+ import { MiniflareEnvRunner } from "./_chunks/miniflare-runner.mjs";
5
+ import { VercelEnvRunner } from "./_chunks/vercel-runner.mjs";
6
+ import { NetlifyEnvRunner } from "./_chunks/netlify-runner.mjs";
7
7
  export { BaseEnvRunner, DenoProcessEnvRunner, EnvServer, MiniflareEnvRunner, NetlifyEnvRunner, RunnerManager, VercelEnvRunner, loadRunner };
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "../../_chunks/types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
3
3
  declare class BunProcessEnvRunner extends BaseEnvRunner {
4
4
  #private;
5
5
  constructor(opts: {
@@ -1,7 +1,7 @@
1
- import { BaseEnvRunner } from "../../_chunks/base-runner.mjs";
1
+ import { BaseEnvRunner } from "../../_chunks/common-base-runner.mjs";
2
+ import { fileURLToPath } from "node:url";
2
3
  import { existsSync } from "node:fs";
3
4
  import { execSync, spawn } from "node:child_process";
4
- import { fileURLToPath } from "node:url";
5
5
  import { join } from "node:path";
6
6
  import { homedir } from "node:os";
7
7
  let _defaultEntry;
@@ -1,4 +1,4 @@
1
- import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/worker-utils.mjs";
1
+ import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/common-worker-utils.mjs";
2
2
  import { serve } from "srvx";
3
3
  import { plugin } from "crossws/server";
4
4
  process.on("disconnect", () => process.exit(0));
@@ -1,3 +1,3 @@
1
- import { EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
- import { DenoProcessEnvRunner } from "../../_chunks/runner.mjs";
1
+ import { EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
2
+ import { DenoProcessEnvRunner } from "../../_chunks/deno-process-runner.mjs";
3
3
  export { DenoProcessEnvRunner, type EnvRunnerData as DenoProcessEnvRunnerData };
@@ -1,2 +1,2 @@
1
- import { DenoProcessEnvRunner } from "../../_chunks/runner.mjs";
1
+ import { DenoProcessEnvRunner } from "../../_chunks/deno-process-runner.mjs";
2
2
  export { DenoProcessEnvRunner };
@@ -1,4 +1,4 @@
1
- import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/worker-utils.mjs";
1
+ import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/common-worker-utils.mjs";
2
2
  import { serve } from "srvx";
3
3
  import { plugin } from "crossws/server";
4
4
  const data = JSON.parse(process.env.ENV_RUNNER_DATA || "{}");
@@ -1,3 +1,3 @@
1
- import { EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
- import { MiniflareEnvRunner, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult } from "../../_chunks/runner2.mjs";
1
+ import { EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
2
+ import { MiniflareEnvRunner, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult } from "../../_chunks/miniflare-runner.mjs";
3
3
  export { MiniflareEnvRunner, type EnvRunnerData as MiniflareEnvRunnerData, MiniflareEnvRunnerOptions, MiniflareExportInfo, TransformResult };
@@ -1,2 +1,2 @@
1
- import { MiniflareEnvRunner } from "../../_chunks/runner2.mjs";
1
+ import { MiniflareEnvRunner } from "../../_chunks/miniflare-runner.mjs";
2
2
  export { MiniflareEnvRunner };
@@ -1,3 +1,3 @@
1
- import { EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
- import { NetlifyEnvRunner } from "../../_chunks/runner5.mjs";
1
+ import { EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
2
+ import { NetlifyEnvRunner } from "../../_chunks/netlify-runner.mjs";
3
3
  export { type EnvRunnerData, NetlifyEnvRunner };
@@ -1,2 +1,2 @@
1
- import { NetlifyEnvRunner } from "../../_chunks/runner5.mjs";
1
+ import { NetlifyEnvRunner } from "../../_chunks/netlify-runner.mjs";
2
2
  export { NetlifyEnvRunner };
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "../../_chunks/types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
3
3
  declare class NodeProcessEnvRunner extends BaseEnvRunner {
4
4
  #private;
5
5
  constructor(opts: {
@@ -1,7 +1,7 @@
1
- import { BaseEnvRunner } from "../../_chunks/base-runner.mjs";
1
+ import { BaseEnvRunner } from "../../_chunks/common-base-runner.mjs";
2
+ import { fileURLToPath } from "node:url";
2
3
  import { existsSync } from "node:fs";
3
4
  import { fork } from "node:child_process";
4
- import { fileURLToPath } from "node:url";
5
5
  let _defaultEntry;
6
6
  var NodeProcessEnvRunner = class extends BaseEnvRunner {
7
7
  #process;
@@ -1,4 +1,4 @@
1
- import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/worker-utils.mjs";
1
+ import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/common-worker-utils.mjs";
2
2
  import { serve } from "srvx";
3
3
  import { plugin } from "crossws/server/node";
4
4
  process.on("disconnect", () => process.exit(0));
@@ -1,3 +1,3 @@
1
- import { EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
- import { NodeWorkerEnvRunner } from "../../_chunks/runner3.mjs";
1
+ import { EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
2
+ import { NodeWorkerEnvRunner } from "../../_chunks/node-worker-runner.mjs";
3
3
  export { type EnvRunnerData, NodeWorkerEnvRunner };
@@ -1,2 +1,2 @@
1
- import { NodeWorkerEnvRunner } from "../../_chunks/runner3.mjs";
1
+ import { NodeWorkerEnvRunner } from "../../_chunks/node-worker-runner.mjs";
2
2
  export { NodeWorkerEnvRunner };
@@ -1,4 +1,4 @@
1
- import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/worker-utils.mjs";
1
+ import { handleInvalidateModule, isVirtualSpecifier, parseServerAddress, registerVirtualModules, reloadEntryModule, resolveEntry } from "../../_chunks/common-worker-utils.mjs";
2
2
  import { parentPort, workerData } from "node:worker_threads";
3
3
  import { serve } from "srvx";
4
4
  import { plugin } from "crossws/server/node";
@@ -1,5 +1,5 @@
1
1
  import { WorkerHooks } from "../../_chunks/types.mjs";
2
- import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
+ import { BaseEnvRunner, EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
3
3
  declare class SelfEnvRunner extends BaseEnvRunner {
4
4
  #private;
5
5
  constructor(opts: {
@@ -1,5 +1,5 @@
1
- import { BaseEnvRunner } from "../../_chunks/base-runner.mjs";
2
- import { reloadEntryModule, resolveEntry } from "../../_chunks/worker-utils.mjs";
1
+ import { BaseEnvRunner } from "../../_chunks/common-base-runner.mjs";
2
+ import { reloadEntryModule, resolveEntry } from "../../_chunks/common-worker-utils.mjs";
3
3
  var SelfEnvRunner = class extends BaseEnvRunner {
4
4
  #active = false;
5
5
  #entry;
@@ -18,11 +18,15 @@ var SelfEnvRunner = class extends BaseEnvRunner {
18
18
  }
19
19
  async upgrade(context) {
20
20
  if (!this.#entry || this.closed) return;
21
- if (this.#entry.websocket) {
22
- await (await this.#resolveWSAdapter()).handleUpgrade(context.node.req, context.node.socket, context.node.head);
23
- return;
21
+ try {
22
+ if (this.#entry.websocket) {
23
+ await (await this.#resolveWSAdapter()).handleUpgrade(context.node.req, context.node.socket, context.node.head);
24
+ return;
25
+ }
26
+ this.#entry.upgrade?.(context);
27
+ } catch {
28
+ if (!context.node.socket.destroyed) context.node.socket.destroy();
24
29
  }
25
- this.#entry.upgrade?.(context);
26
30
  }
27
31
  sendMessage(message) {
28
32
  if (!this.#active) throw new Error("Self env runner should be initialized before sending messages.");
@@ -1,3 +1,3 @@
1
- import { EnvRunnerData } from "../../_chunks/base-runner.mjs";
2
- import { VercelEnvRunner } from "../../_chunks/runner4.mjs";
1
+ import { EnvRunnerData } from "../../_chunks/common-base-runner.mjs";
2
+ import { VercelEnvRunner } from "../../_chunks/vercel-runner.mjs";
3
3
  export { type EnvRunnerData, VercelEnvRunner };
@@ -1,2 +1,2 @@
1
- import { VercelEnvRunner } from "../../_chunks/runner4.mjs";
1
+ import { VercelEnvRunner } from "../../_chunks/vercel-runner.mjs";
2
2
  export { VercelEnvRunner };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "env-runner",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Generic environment runner for JavaScript runtimes.",
5
5
  "license": "MIT",
6
6
  "repository": "unjs/env-runner",
@@ -1,6 +1,6 @@
1
1
  import { createVirtualHooks, expandVirtualInvalidation, stripVirtualTypeScript, virtualModuleFormat } from "./virtual-loader.mjs";
2
- import { existsSync, readFileSync } from "node:fs";
3
2
  import { pathToFileURL } from "node:url";
3
+ import { existsSync, readFileSync } from "node:fs";
4
4
  import { isAbsolute } from "node:path";
5
5
  async function registerVirtualModules(virtual) {
6
6
  if (!virtual || Object.keys(virtual).length === 0) return _noop;