nitro-nightly 3.0.1-20251203-231615-3a2d2662 → 3.0.1-20251204-002632-497db05f

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.
@@ -13,13 +13,13 @@ import "../_libs/mime.mjs";
13
13
  import { n as writeBuildInfo } from "./common.mjs";
14
14
  import { a as watch$1 } from "../_libs/chokidar.mjs";
15
15
  import "../_libs/plugin-commonjs.mjs";
16
- import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/BY3yPF44.mjs";
16
+ import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/Dkk4dpNb.mjs";
17
17
  import "../_libs/etag.mjs";
18
18
  import "../_libs/remapping.mjs";
19
19
  import "../_libs/plugin-replace.mjs";
20
20
  import "../_libs/duplexer.mjs";
21
21
  import "../_libs/gzip-size.mjs";
22
- import { t as generateFSTree } from "../_chunks/CytQIojr.mjs";
22
+ import { t as generateFSTree } from "../_chunks/D-63lyig.mjs";
23
23
  import { builtinModules } from "node:module";
24
24
  import { watch } from "node:fs";
25
25
  import { defu } from "defu";
@@ -15,13 +15,13 @@ import { a as watch$1 } from "../_libs/chokidar.mjs";
15
15
  import { t as alias } from "../_libs/plugin-alias.mjs";
16
16
  import { t as commonjs } from "../_libs/plugin-commonjs.mjs";
17
17
  import { t as inject } from "../_libs/plugin-inject.mjs";
18
- import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/BY3yPF44.mjs";
18
+ import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/Dkk4dpNb.mjs";
19
19
  import "../_libs/etag.mjs";
20
20
  import "../_libs/remapping.mjs";
21
21
  import "../_libs/plugin-replace.mjs";
22
22
  import "../_libs/duplexer.mjs";
23
23
  import "../_libs/gzip-size.mjs";
24
- import { t as generateFSTree } from "../_chunks/CytQIojr.mjs";
24
+ import { t as generateFSTree } from "../_chunks/D-63lyig.mjs";
25
25
  import "../_libs/commondir.mjs";
26
26
  import "../_libs/is-reference.mjs";
27
27
  import { t as json } from "../_libs/plugin-json.mjs";
@@ -12,11 +12,11 @@ import "../_chunks/DJvLZH4H.mjs";
12
12
  import "../_chunks/Ddt06bL8.mjs";
13
13
  import "../_libs/mime.mjs";
14
14
  import "./common.mjs";
15
- import "../_dev.mjs";
15
+ import "../_chunks/Ddq6HHrM.mjs";
16
16
  import "../_libs/plugin-alias.mjs";
17
17
  import "../_libs/plugin-commonjs.mjs";
18
18
  import "../_libs/plugin-inject.mjs";
19
- import "../_chunks/BY3yPF44.mjs";
19
+ import "../_chunks/Dkk4dpNb.mjs";
20
20
  import "../_libs/etag.mjs";
21
21
  import "../_libs/remapping.mjs";
22
22
  import "../_libs/plugin-replace.mjs";
@@ -6,11 +6,11 @@ import { a as copyPublicAssets, i as prepare, s as createNitro } from "../_chunk
6
6
  import { n as prettyPath } from "../_chunks/DJvLZH4H.mjs";
7
7
  import { i as scanHandlers } from "../_chunks/Ddt06bL8.mjs";
8
8
  import { n as writeBuildInfo, t as getBuildInfo } from "./common.mjs";
9
- import { i as NodeDevWorker, r as NitroDevApp } from "../_dev.mjs";
9
+ import { i as NodeEnvRunner, r as NitroDevApp } from "../_chunks/Ddq6HHrM.mjs";
10
10
  import { a as watch$1 } from "../_libs/chokidar.mjs";
11
11
  import { t as alias } from "../_libs/plugin-alias.mjs";
12
12
  import { t as inject } from "../_libs/plugin-inject.mjs";
13
- import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/BY3yPF44.mjs";
13
+ import { n as getChunkName, r as baseBuildConfig, t as baseBuildPlugins } from "../_chunks/Dkk4dpNb.mjs";
14
14
  import { t as assetsPlugin } from "../_libs/vite-plugin-fullstack.mjs";
15
15
  import consola$1 from "consola";
16
16
  import { join, resolve } from "node:path";
@@ -263,7 +263,7 @@ async function configureViteDevServer(ctx, server) {
263
263
  if (nitroConfigFile) server.config.configFileDependencies.push(nitroConfigFile);
264
264
  if (nitro$1.options.features.websocket ?? nitro$1.options.experimental.websocket) server.httpServer.on("upgrade", (req, socket, head) => {
265
265
  if (req.url?.startsWith("/?token")) return;
266
- ctx.devWorker?.upgrade(req, socket, head);
266
+ getEnvRunner(ctx).upgrade?.(req, socket, head);
267
267
  });
268
268
  const reload = debounce(async () => {
269
269
  await scanHandlers(nitro$1);
@@ -341,15 +341,11 @@ async function configureViteDevServer(ctx, server) {
341
341
 
342
342
  //#endregion
343
343
  //#region src/build/vite/env.ts
344
- function createDevWorker(ctx) {
345
- return new NodeDevWorker({
344
+ function getEnvRunner(ctx) {
345
+ return ctx._envRunner ??= new NodeEnvRunner({
346
346
  name: "nitro-vite",
347
- entry: resolve(runtimeDir, "internal/vite/dev-worker.mjs"),
348
- hooks: {},
349
- data: {
350
- server: true,
351
- globals: { __NITRO_RUNTIME_CONFIG__: ctx.nitro.options.runtimeConfig }
352
- }
347
+ entry: resolve(runtimeDir, "internal/vite/node-runner.mjs"),
348
+ data: { server: true }
353
349
  });
354
350
  }
355
351
  function createNitroEnvironment(ctx) {
@@ -371,7 +367,7 @@ function createNitroEnvironment(ctx) {
371
367
  conditions: ctx.nitro.options.exportConditions,
372
368
  externalConditions: ctx.nitro.options.exportConditions
373
369
  },
374
- dev: { createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(envName, envConfig, ctx.devWorker, resolve(runtimeDir, "internal/vite/dev-entry.mjs")) }
370
+ dev: { createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(envName, envConfig, getEnvRunner(ctx), resolve(runtimeDir, "internal/vite/dev-entry.mjs")) }
375
371
  };
376
372
  }
377
373
  function createServiceEnvironment(ctx, name, serviceConfig) {
@@ -389,7 +385,7 @@ function createServiceEnvironment(ctx, name, serviceConfig) {
389
385
  conditions: ctx.nitro.options.exportConditions,
390
386
  externalConditions: ctx.nitro.options.exportConditions
391
387
  },
392
- dev: { createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(envName, envConfig, ctx.devWorker, tryResolve(serviceConfig.entry)) }
388
+ dev: { createEnvironment: (envName, envConfig) => createFetchableDevEnvironment(envName, envConfig, getEnvRunner(ctx), tryResolve(serviceConfig.entry)) }
393
389
  };
394
390
  }
395
391
  function createServiceEnvironments(ctx) {
@@ -736,11 +732,12 @@ async function setupNitroContext(ctx, configEnv, userConfig) {
736
732
  await ctx.nitro.hooks.callHook("build:before", ctx.nitro);
737
733
  ctx.rollupConfig = await getViteRollupConfig(ctx);
738
734
  await ctx.nitro.hooks.callHook("rollup:before", ctx.nitro, ctx.rollupConfig.config);
739
- if (ctx.nitro.options.dev && !ctx.devWorker) {
740
- ctx.devWorker = createDevWorker(ctx);
741
- ctx.nitro.fetch = (req) => ctx.devWorker.fetch(req);
742
- }
735
+ if (ctx.nitro.options.dev) getEnvRunner(ctx);
736
+ ctx.nitro.fetch = (req) => getEnvRunner(ctx).fetch(req);
743
737
  if (ctx.nitro.options.dev && !ctx.devApp) ctx.devApp = new NitroDevApp(ctx.nitro);
738
+ ctx.nitro.hooks.hook("close", async () => {
739
+ if (ctx._envRunner) await ctx._envRunner.close();
740
+ });
744
741
  }
745
742
  function getEntry(input) {
746
743
  if (typeof input === "string") return input;
@@ -1,9 +1,9 @@
1
- import { S as extname$1, k as resolve$1, o as debounce, w as join$1 } from "./_libs/c12.mjs";
2
- import { i as a, r as T } from "./_libs/std-env.mjs";
3
- import { t as src_default } from "./_libs/mime.mjs";
4
- import { r as writeDevBuildInfo } from "./_build/common.mjs";
5
- import { n as createProxyServer } from "./_libs/httpxy.mjs";
6
- import { a as watch$1 } from "./_libs/chokidar.mjs";
1
+ import { S as extname$1, k as resolve$1, o as debounce, w as join$1 } from "../_libs/c12.mjs";
2
+ import { i as a, r as T } from "../_libs/std-env.mjs";
3
+ import { t as src_default } from "../_libs/mime.mjs";
4
+ import { r as writeDevBuildInfo } from "../_build/common.mjs";
5
+ import { n as createProxyServer } from "../_libs/httpxy.mjs";
6
+ import { a as watch$1 } from "../_libs/chokidar.mjs";
7
7
  import consola$1 from "consola";
8
8
  import { dirname, resolve } from "node:path";
9
9
  import { createReadStream, existsSync } from "node:fs";
@@ -19,7 +19,7 @@ import { Youch } from "youch";
19
19
  import { SourceMapConsumer } from "source-map";
20
20
  import { FastResponse } from "srvx";
21
21
 
22
- //#region src/dev/proxy.ts
22
+ //#region src/runner/proxy.ts
23
23
  function createHTTPProxy(defaults = {}) {
24
24
  const proxy = createProxyServer(defaults);
25
25
  proxy.on("proxyReq", (proxyReq, req) => {
@@ -92,8 +92,8 @@ function fetchSocketOptions(socketPath) {
92
92
  }
93
93
 
94
94
  //#endregion
95
- //#region src/dev/worker.ts
96
- var NodeDevWorker = class {
95
+ //#region src/runner/node.ts
96
+ var NodeEnvRunner = class {
97
97
  closed = false;
98
98
  #name;
99
99
  #entry;
@@ -107,7 +107,7 @@ var NodeDevWorker = class {
107
107
  this.#name = opts.name;
108
108
  this.#entry = opts.entry;
109
109
  this.#data = opts.data;
110
- this.#hooks = opts.hooks;
110
+ this.#hooks = opts.hooks || {};
111
111
  this.#proxy = createHTTPProxy();
112
112
  this.#messageListeners = /* @__PURE__ */ new Set();
113
113
  this.#initWorker();
@@ -117,7 +117,7 @@ var NodeDevWorker = class {
117
117
  }
118
118
  async fetch(input, init) {
119
119
  for (let i = 0; i < 5 && !(this.#address && this.#proxy); i++) await new Promise((r) => setTimeout(r, 100 * Math.pow(2, i)));
120
- if (!(this.#address && this.#proxy)) return new Response("Dev worker is unavailable", { status: 503 });
120
+ if (!(this.#address && this.#proxy)) return new Response("Node env runner worker is unavailable", { status: 503 });
121
121
  return fetchAddress(this.#address, input, init);
122
122
  }
123
123
  upgrade(req, socket, head) {
@@ -130,7 +130,7 @@ var NodeDevWorker = class {
130
130
  });
131
131
  }
132
132
  sendMessage(message) {
133
- if (!this.#worker) throw new Error("Dev worker should be initialized before sending messages.");
133
+ if (!this.#worker) throw new Error("Node env worker should be initialized before sending messages.");
134
134
  this.#worker.postMessage(message);
135
135
  }
136
136
  onMessage(listener) {
@@ -151,7 +151,7 @@ var NodeDevWorker = class {
151
151
  }
152
152
  [Symbol.for("nodejs.util.inspect.custom")]() {
153
153
  const status = this.closed ? "closed" : this.ready ? "ready" : "pending";
154
- return `NodeDevWorker#${this.#name}(${status})`;
154
+ return `NodeEnvRunner#${this.#name}(${status})`;
155
155
  }
156
156
  #initWorker() {
157
157
  if (!existsSync(this.#entry)) {
@@ -197,7 +197,8 @@ var NodeDevWorker = class {
197
197
  if (!this.#worker._exitCode && !a && !T) await new Promise((resolve$2) => {
198
198
  const gracefulShutdownTimeoutMs = Number.parseInt(process.env.NITRO_SHUTDOWN_TIMEOUT || "", 10) || 5e3;
199
199
  const timeout = setTimeout(() => {
200
- if (process.env.DEBUG) consola$1.warn(`force closing dev worker...`);
200
+ consola$1.warn(`force closing node env runner worker...`);
201
+ resolve$2();
201
202
  }, gracefulShutdownTimeoutMs);
202
203
  this.#worker?.on("message", (message) => {
203
204
  if (message.event === "exit") {
@@ -590,6 +591,10 @@ var NitroDevServer = class NitroDevServer extends NitroDevApp {
590
591
  status: 503,
591
592
  statusText: "No worker available."
592
593
  });
594
+ if (!worker.upgrade) throw new HTTPError({
595
+ status: 501,
596
+ statusText: "Worker does not support upgrades."
597
+ });
593
598
  return worker.upgrade(req, socket, head);
594
599
  }
595
600
  listen(opts) {
@@ -619,16 +624,10 @@ var NitroDevServer = class NitroDevServer extends NitroDevApp {
619
624
  }
620
625
  reload() {
621
626
  for (const worker$1 of this.#workers) worker$1.close();
622
- const worker = new NodeDevWorker({
627
+ const worker = new NodeEnvRunner({
623
628
  name: `Nitro_${this.#workerIdCtr++}`,
624
629
  entry: this.#entry,
625
- data: {
626
- ...this.#workerData,
627
- globals: {
628
- __NITRO_RUNTIME_CONFIG__: this.nitro.options.runtimeConfig,
629
- ...this.#workerData.globals
630
- }
631
- },
630
+ data: this.#workerData,
632
631
  hooks: {
633
632
  onClose: (worker$1, cause) => {
634
633
  this.#workerError = cause;
@@ -697,4 +696,4 @@ var NitroDevServer = class NitroDevServer extends NitroDevApp {
697
696
  };
698
697
 
699
698
  //#endregion
700
- export { NodeDevWorker as i, createDevServer as n, NitroDevApp as r, NitroDevServer as t };
699
+ export { NodeEnvRunner as i, createDevServer as n, NitroDevApp as r, NitroDevServer as t };
@@ -2,7 +2,7 @@ import { t as NitroDevApp } from "./_dev.mjs";
2
2
  import { IncomingMessage, OutgoingMessage } from "node:http";
3
3
  import { Duplex } from "node:stream";
4
4
  import { Server, ServerOptions } from "srvx";
5
- import { DevMessageListener, DevRPCHooks, LoadConfigOptions, Nitro, NitroBuildInfo, NitroConfig, NitroOptions, TaskEvent, TaskRunnerOptions } from "nitro/types";
5
+ import { LoadConfigOptions, Nitro, NitroBuildInfo, NitroConfig, NitroOptions, RunnerMessageListener, RunnerRPCHooks, TaskEvent, TaskRunnerOptions } from "nitro/types";
6
6
 
7
7
  //#region src/nitro.d.ts
8
8
  declare function createNitro(config?: NitroConfig, opts?: LoadConfigOptions): Promise<Nitro>;
@@ -33,7 +33,7 @@ declare function getBuildInfo(root: string): Promise<{
33
33
  //#endregion
34
34
  //#region src/dev/server.d.ts
35
35
  declare function createDevServer(nitro: Nitro): NitroDevServer;
36
- declare class NitroDevServer extends NitroDevApp implements DevRPCHooks {
36
+ declare class NitroDevServer extends NitroDevApp implements RunnerRPCHooks {
37
37
  #private;
38
38
  constructor(nitro: Nitro);
39
39
  upgrade(req: IncomingMessage, socket: OutgoingMessage<IncomingMessage> | Duplex, head: any): Promise<any>;
@@ -41,8 +41,8 @@ declare class NitroDevServer extends NitroDevApp implements DevRPCHooks {
41
41
  close(): Promise<void>;
42
42
  reload(): void;
43
43
  sendMessage(message: unknown): void;
44
- onMessage(listener: DevMessageListener): void;
45
- offMessage(listener: DevMessageListener): void;
44
+ onMessage(listener: RunnerMessageListener): void;
45
+ offMessage(listener: RunnerMessageListener): void;
46
46
  }
47
47
  //#endregion
48
48
  //#region src/prerender/prerender.d.ts
package/dist/builder.mjs CHANGED
@@ -11,6 +11,6 @@ import "./_chunks/DJvLZH4H.mjs";
11
11
  import { n as writeTypes } from "./_chunks/Ddt06bL8.mjs";
12
12
  import "./_libs/mime.mjs";
13
13
  import { t as getBuildInfo } from "./_build/common.mjs";
14
- import { n as createDevServer } from "./_dev.mjs";
14
+ import { n as createDevServer } from "./_chunks/Ddq6HHrM.mjs";
15
15
 
16
16
  export { build, copyPublicAssets, createDevServer, createNitro, getBuildInfo, listTasks, loadOptions, prepare, prerender, runTask, writeTypes };
@@ -2,7 +2,7 @@ import { k as resolve } from "../../_libs/c12.mjs";
2
2
  import "../../_chunks/DJvLZH4H.mjs";
3
3
  import "../../_libs/mime.mjs";
4
4
  import "../../_build/common.mjs";
5
- import { t as NitroDevServer } from "../../_dev.mjs";
5
+ import { t as NitroDevServer } from "../../_chunks/Ddq6HHrM.mjs";
6
6
  import { t as defineCommand } from "../../_libs/citty.mjs";
7
7
  import { t as commonArgs } from "./common.mjs";
8
8
  import { consola } from "consola";
@@ -155,11 +155,6 @@ parentPort.on("message", (payload) => {
155
155
 
156
156
  async function reload() {
157
157
  try {
158
- // Apply globals
159
- for (const [key, value] of Object.entries(workerData.globals || {})) {
160
- globalThis[key] = value;
161
- }
162
- // Reload all envs
163
158
  await Promise.all(Object.values(envs).map((env) => env?.reload()));
164
159
  } catch (error) {
165
160
  console.error(error);
@@ -195,6 +190,10 @@ if (workerData.server) {
195
190
  parentPort.on("message", async (message) => {
196
191
  if (message?.type === "full-reload") {
197
192
  await reload();
193
+ } else if (message?.event === "shutdown") {
194
+ server.close(() => {
195
+ parentPort.postMessage({ event: "exit" });
196
+ });
198
197
  }
199
198
  });
200
199
  await listen(server);
@@ -228,6 +227,32 @@ function httpError(status, message) {
228
227
  }
229
228
 
230
229
  async function renderError(req, error) {
230
+ if (req.headers.get("accept")?.includes("application/json")) {
231
+ return new Response(
232
+ JSON.stringify(
233
+ {
234
+ status: error.status || 500,
235
+ name: error.name || "Error",
236
+ message: error.message,
237
+ stack: (error.stack || "")
238
+ .split("\n")
239
+ .splice(1)
240
+ .map((l) => l.trim()),
241
+ },
242
+ null,
243
+ 2
244
+ ),
245
+ {
246
+ status: error.status || 500,
247
+ headers: {
248
+ "Content-Type": "application/json",
249
+ "Cache-Control": "no-store, max-age=0, must-revalidate",
250
+ Pragma: "no-cache",
251
+ Expires: "0",
252
+ },
253
+ }
254
+ );
255
+ }
231
256
  const { Youch } = await import("youch");
232
257
  const youch = new Youch();
233
258
  return new Response(await youch.toHTML(error), {
@@ -12,7 +12,7 @@ import { BuiltinDriverName } from "unstorage";
12
12
  import { JsxOptions, TransformOptions } from "oxc-transform";
13
13
  import { MinifyOptions } from "oxc-minify";
14
14
  import { InputOptions, OutputOptions } from "rollup";
15
- import { DevMessageListener as DevMessageListener$1, Nitro as Nitro$1 } from "nitro/types";
15
+ import { Nitro as Nitro$1, RunnerMessageListener as RunnerMessageListener$1 } from "nitro/types";
16
16
  import { RollupCommonJSOptions } from "@rollup/plugin-commonjs";
17
17
  import { C12InputConfig, ConfigWatcher, DotenvOptions, ResolvedConfig, WatchConfigOptions } from "c12";
18
18
  import { ChokidarOptions } from "chokidar";
@@ -1858,37 +1858,6 @@ type IntRange<F$1 extends number, T extends number> = Exclude<Enumerate<T>, Enum
1858
1858
  type ExcludeFunctions<G extends Record<string, any>> = Pick<G, { [P in keyof G]: NonNullable<G[P]> extends Function ? never : P }[keyof G]>;
1859
1859
  type DeepPartial<T> = T extends ((...args: never) => any) ? T : T extends Record<string, any> ? { [P in keyof T]?: DeepPartial<T[P]> } : T;
1860
1860
  //#endregion
1861
- //#region src/types/dev.d.ts
1862
- type FetchHandler = (req: Request) => Promise<Response>;
1863
- type DevMessageListener = (data: unknown) => void;
1864
- type UpgradeHandler = (req: IncomingMessage, socket: OutgoingMessage<IncomingMessage> | Duplex, head: any) => void;
1865
- interface DevRPCHooks {
1866
- sendMessage: (message: unknown) => void;
1867
- onMessage: (listener: DevMessageListener) => void;
1868
- offMessage: (listener: DevMessageListener) => void;
1869
- }
1870
- type WorkerAddress = {
1871
- host: string;
1872
- port: number;
1873
- socketPath?: string;
1874
- };
1875
- interface WorkerHooks {
1876
- onClose?: (worker: DevWorker, cause?: unknown) => void;
1877
- onReady?: (worker: DevWorker, address?: WorkerAddress) => void;
1878
- }
1879
- interface DevWorker extends WorkerHooks, DevRPCHooks {
1880
- readonly ready: boolean;
1881
- readonly closed: boolean;
1882
- fetch: FetchHandler;
1883
- upgrade: UpgradeHandler;
1884
- close(): Promise<void>;
1885
- }
1886
- interface NitroDevServerOptions {
1887
- port: number;
1888
- hostname: string;
1889
- watch: string[];
1890
- }
1891
- //#endregion
1892
1861
  //#region src/types/openapi-ts.d.ts
1893
1862
  /**
1894
1863
  Source: (inlined because of install size concernes)
@@ -2554,10 +2523,9 @@ type NitroErrorHandler = (error: HTTPError, event: HTTPEvent, _: {
2554
2523
  }>;
2555
2524
  }) => MaybePromise<Response | void>;
2556
2525
  //#endregion
2557
- //#region src/dev/worker.d.ts
2558
- interface DevWorkerData {
2526
+ //#region src/runner/node.d.ts
2527
+ interface EnvRunnerData {
2559
2528
  name?: string;
2560
- globals?: Record<string, unknown>;
2561
2529
  [key: string]: unknown;
2562
2530
  }
2563
2531
  //#endregion
@@ -2764,7 +2732,7 @@ interface NitroHooks {
2764
2732
  compiled: (nitro: Nitro) => HookResult;
2765
2733
  "dev:reload": (payload?: {
2766
2734
  entry?: string;
2767
- workerData?: DevWorkerData;
2735
+ workerData?: EnvRunnerData;
2768
2736
  }) => HookResult;
2769
2737
  "dev:start": () => HookResult;
2770
2738
  "dev:error": (cause?: unknown) => HookResult;
@@ -2985,7 +2953,11 @@ interface NitroOptions extends PresetOptions {
2985
2953
  compressPublicAssets: boolean | CompressOptions;
2986
2954
  ignore: string[];
2987
2955
  dev: boolean;
2988
- devServer: NitroDevServerOptions;
2956
+ devServer: {
2957
+ port: number;
2958
+ hostname: string;
2959
+ watch: string[];
2960
+ };
2989
2961
  watchOptions: ChokidarOptions;
2990
2962
  devProxy: Record<string, string | ProxyServerOptions>;
2991
2963
  logging: {
@@ -3145,6 +3117,32 @@ interface NitroRuntimeConfig {
3145
3117
  [key: string]: any;
3146
3118
  }
3147
3119
  //#endregion
3120
+ //#region src/types/runner.d.ts
3121
+ type FetchHandler = (req: Request) => Promise<Response>;
3122
+ type RunnerMessageListener = (data: unknown) => void;
3123
+ type UpgradeHandler = (req: IncomingMessage, socket: OutgoingMessage<IncomingMessage> | Duplex, head: any) => void;
3124
+ interface RunnerRPCHooks {
3125
+ sendMessage: (message: unknown) => void;
3126
+ onMessage: (listener: RunnerMessageListener) => void;
3127
+ offMessage: (listener: RunnerMessageListener) => void;
3128
+ }
3129
+ type WorkerAddress = {
3130
+ host: string;
3131
+ port: number;
3132
+ socketPath?: string;
3133
+ };
3134
+ interface WorkerHooks {
3135
+ onClose?: (worker: EnvRunner, cause?: unknown) => void;
3136
+ onReady?: (worker: EnvRunner, address?: WorkerAddress) => void;
3137
+ }
3138
+ interface EnvRunner extends WorkerHooks, RunnerRPCHooks {
3139
+ readonly ready: boolean;
3140
+ readonly closed: boolean;
3141
+ fetch: FetchHandler;
3142
+ upgrade?: UpgradeHandler;
3143
+ close(): Promise<void>;
3144
+ }
3145
+ //#endregion
3148
3146
  //#region src/types/global.d.ts
3149
3147
  interface NitroImportMeta {
3150
3148
  dev?: boolean;
@@ -3181,4 +3179,4 @@ declare module "srvx" {
3181
3179
  }
3182
3180
  }
3183
3181
  //#endregion
3184
- export { $Fetch, AssetMeta, AvailableRouterMethod, Base$Fetch, CacheEntry, CacheOptions, CachedEventHandlerOptions, CaptureError, CapturedErrorContext, CompressOptions, DatabaseConnectionConfig, DatabaseConnectionConfigs, DatabaseConnectionName, DevMessageListener, DevRPCHooks, DevWorker, EventHandlerFormat, ExtractedRouteMethod, FetchHandler, H3Event$Fetch, H3EventFetch, HTTPstatus, InternalApi, LoadConfigOptions, MatchedRouteRule, MatchedRouteRules, MatchedRoutes, MiddlewareOf, Nitro, NitroApp, NitroAppPlugin, NitroAsyncContext, NitroBuildInfo, NitroConfig, NitroDevEventHandler, NitroDevServerOptions, NitroDynamicConfig, NitroErrorHandler, NitroEventHandler, NitroFetchOptions, NitroFetchRequest, NitroFrameworkInfo, NitroHooks, NitroImportMeta, NitroModule, NitroModuleInput, type NitroOpenAPIConfig, NitroOptions, NitroPreset, NitroPresetMeta, NitroRouteConfig, NitroRouteMeta, NitroRouteRules, NitroRuntimeConfig, NitroRuntimeConfigApp, NitroRuntimeHooks, NitroTypes, type NodeExternalsOptions, OXCOptions, PrerenderGenerateRoute, PrerenderRoute, PublicAsset, PublicAssetDir, RenderContext, RenderHandler, RenderResponse, ResponseCacheEntry, RollupConfig, RollupVirtualOptions, Serialize, SerializeObject, SerializeTuple, ServerAssetDir, ServerAssetOptions, type ServerRequest, Simplify, StorageMounts, Task, TaskContext, TaskEvent, TaskMeta, TaskPayload, TaskResult, TaskRunnerOptions, TypedInternalResponse, UpgradeHandler, VirtualModule, WorkerAddress, WorkerHooks };
3182
+ export { $Fetch, AssetMeta, AvailableRouterMethod, Base$Fetch, CacheEntry, CacheOptions, CachedEventHandlerOptions, CaptureError, CapturedErrorContext, CompressOptions, DatabaseConnectionConfig, DatabaseConnectionConfigs, DatabaseConnectionName, EnvRunner, EventHandlerFormat, ExtractedRouteMethod, FetchHandler, H3Event$Fetch, H3EventFetch, HTTPstatus, InternalApi, LoadConfigOptions, MatchedRouteRule, MatchedRouteRules, MatchedRoutes, MiddlewareOf, Nitro, NitroApp, NitroAppPlugin, NitroAsyncContext, NitroBuildInfo, NitroConfig, NitroDevEventHandler, NitroDynamicConfig, NitroErrorHandler, NitroEventHandler, NitroFetchOptions, NitroFetchRequest, NitroFrameworkInfo, NitroHooks, NitroImportMeta, NitroModule, NitroModuleInput, type NitroOpenAPIConfig, NitroOptions, NitroPreset, NitroPresetMeta, NitroRouteConfig, NitroRouteMeta, NitroRouteRules, NitroRuntimeConfig, NitroRuntimeConfigApp, NitroRuntimeHooks, NitroTypes, type NodeExternalsOptions, OXCOptions, PrerenderGenerateRoute, PrerenderRoute, PublicAsset, PublicAssetDir, RenderContext, RenderHandler, RenderResponse, ResponseCacheEntry, RollupConfig, RollupVirtualOptions, RunnerMessageListener, RunnerRPCHooks, Serialize, SerializeObject, SerializeTuple, ServerAssetDir, ServerAssetOptions, type ServerRequest, Simplify, StorageMounts, Task, TaskContext, TaskEvent, TaskMeta, TaskPayload, TaskResult, TaskRunnerOptions, TypedInternalResponse, UpgradeHandler, VirtualModule, WorkerAddress, WorkerHooks };
package/dist/vite.mjs CHANGED
@@ -11,11 +11,11 @@ import "./_chunks/DJvLZH4H.mjs";
11
11
  import "./_chunks/Ddt06bL8.mjs";
12
12
  import "./_libs/mime.mjs";
13
13
  import "./_build/common.mjs";
14
- import "./_dev.mjs";
14
+ import "./_chunks/Ddq6HHrM.mjs";
15
15
  import "./_libs/plugin-alias.mjs";
16
16
  import "./_libs/plugin-commonjs.mjs";
17
17
  import "./_libs/plugin-inject.mjs";
18
- import "./_chunks/BY3yPF44.mjs";
18
+ import "./_chunks/Dkk4dpNb.mjs";
19
19
  import "./_libs/etag.mjs";
20
20
  import "./_libs/remapping.mjs";
21
21
  import "./_libs/plugin-replace.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nitro-nightly",
3
- "version": "3.0.1-20251203-231615-3a2d2662",
3
+ "version": "3.0.1-20251204-002632-497db05f",
4
4
  "description": "Build and Deploy Universal JavaScript Servers",
5
5
  "homepage": "https://nitro.build",
6
6
  "repository": "nitrojs/nitro",
File without changes
File without changes