nitro-nightly 3.0.1-20251110-120318-409ecf3c → 3.0.1-20251110-125717-ef372c1d

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.
@@ -4,8 +4,8 @@ import { i as unplugin } from "../_libs/unimport.mjs";
4
4
  import { t as glob } from "../_libs/tinyglobby.mjs";
5
5
  import { t as src_default } from "../_libs/mime.mjs";
6
6
  import { i as genSafeVariableName, t as genImport } from "../_libs/knitwork.mjs";
7
- import { t as replace } from "../_libs/plugin-replace.mjs";
8
7
  import { t as unwasm } from "../_libs/unwasm.mjs";
8
+ import { t as replace } from "../_libs/plugin-replace.mjs";
9
9
  import { t as require_etag } from "../_libs/etag.mjs";
10
10
  import { camelCase } from "scule";
11
11
  import { promises } from "node:fs";
@@ -21,19 +21,6 @@ import { builtinDrivers, normalizeKey } from "unstorage";
21
21
  import { rollupNodeFileTrace } from "nf3";
22
22
  import { RENDER_CONTEXT_KEYS, compileTemplateToString, hasTemplateSyntax } from "rendu";
23
23
 
24
- //#region src/build/plugins/replace.ts
25
- const NO_REPLACE_RE = /ROLLUP_NO_REPLACE|\\0raw:/;
26
- function replace$1(options) {
27
- const _plugin = replace(options);
28
- return {
29
- ..._plugin,
30
- renderChunk(code, chunk, options$1) {
31
- if (!NO_REPLACE_RE.test(code)) return _plugin.renderChunk.call(this, code, chunk, options$1);
32
- }
33
- };
34
- }
35
-
36
- //#endregion
37
24
  //#region src/build/config.ts
38
25
  function baseBuildConfig(nitro) {
39
26
  const presetsDir$1 = resolve(runtimeDir, "../presets");
@@ -47,38 +34,19 @@ function baseBuildConfig(nitro) {
47
34
  ".jsx"
48
35
  ];
49
36
  const isNodeless = nitro.options.node === false;
50
- let NODE_ENV = nitro.options.dev ? "development" : "production";
51
- if (nitro.options.preset === "nitro-prerender") NODE_ENV = "prerender";
52
- const buildEnvVars = {
53
- NODE_ENV,
54
- prerender: nitro.options.preset === "nitro-prerender",
55
- server: true,
56
- client: false,
57
- dev: String(nitro.options.dev),
58
- DEBUG: nitro.options.dev
59
- };
60
- const staticFlags = {
37
+ const importMetaInjections = {
61
38
  dev: nitro.options.dev,
62
39
  preset: nitro.options.preset,
63
40
  prerender: nitro.options.preset === "nitro-prerender",
41
+ nitro: true,
64
42
  server: true,
65
43
  client: false,
66
- nitro: true,
67
44
  baseURL: nitro.options.baseURL,
68
- "versions.nitro": "",
69
- "versions?.nitro": "",
70
45
  _asyncContext: nitro.options.experimental.asyncContext,
71
46
  _tasks: nitro.options.experimental.tasks
72
47
  };
73
48
  const replacements = {
74
- "typeof window": "\"undefined\"",
75
- _import_meta_url_: "import.meta.url",
76
- "globalThis.process.": "process.",
77
- "process.env.RUNTIME_CONFIG": () => JSON.stringify(nitro.options.runtimeConfig, null, 2),
78
- ...Object.fromEntries(Object.entries(buildEnvVars).map(([key, val]) => [`process.env.${key}`, JSON.stringify(val)])),
79
- ...Object.fromEntries(Object.entries(buildEnvVars).map(([key, val]) => [`import.meta.env.${key}`, JSON.stringify(val)])),
80
- ...Object.fromEntries(Object.entries(staticFlags).map(([key, val]) => [`process.${key}`, JSON.stringify(val)])),
81
- ...Object.fromEntries(Object.entries(staticFlags).map(([key, val]) => [`import.meta.${key}`, JSON.stringify(val)])),
49
+ ...Object.fromEntries(Object.entries(importMetaInjections).map(([key, val]) => [`import.meta.${key}`, JSON.stringify(val)])),
82
50
  ...nitro.options.replace
83
51
  };
84
52
  const noExternal = [
@@ -107,8 +75,6 @@ function baseBuildConfig(nitro) {
107
75
  presetsDir: presetsDir$1,
108
76
  extensions,
109
77
  isNodeless,
110
- buildEnvVars,
111
- staticFlags,
112
78
  replacements,
113
79
  env,
114
80
  aliases: resolveAliases({ ...env.alias }),
@@ -684,30 +650,39 @@ function sourcemapMinify() {
684
650
 
685
651
  //#endregion
686
652
  //#region src/build/plugins/raw.ts
687
- const HELPER_ID = "\0raw-helpers";
653
+ const HELPER_ID = "virtual:raw-helpers";
654
+ const RESOLVED_RAW_PREFIX = "virtual:raw:";
688
655
  function raw() {
689
656
  return {
690
657
  name: "raw",
691
- async resolveId(id, importer, resolveOpts) {
692
- if (id === HELPER_ID) return id;
693
- if (!id.startsWith("raw:")) return;
694
- return { id: "\0raw:" + (await this.resolve(id.slice(4), importer, resolveOpts))?.id };
658
+ resolveId: {
659
+ order: "pre",
660
+ async handler(id, importer, resolveOpts) {
661
+ if (id === HELPER_ID) return id;
662
+ if (id.startsWith("raw:")) return { id: RESOLVED_RAW_PREFIX + (await this.resolve(id.slice(4), importer, resolveOpts))?.id };
663
+ }
695
664
  },
696
- load(id) {
697
- if (id === HELPER_ID) return getHelpers();
698
- if (id.startsWith("\0raw:")) return promises.readFile(id.slice(5), isBinary(id) ? "binary" : "utf8");
665
+ load: {
666
+ order: "pre",
667
+ handler(id) {
668
+ if (id === HELPER_ID) return getHelpers();
669
+ if (id.startsWith(RESOLVED_RAW_PREFIX)) return promises.readFile(id.slice(12), isBinary(id) ? "binary" : "utf8");
670
+ }
699
671
  },
700
- transform(code, id) {
701
- if (!id.startsWith("\0raw:")) return;
702
- if (isBinary(id)) return {
703
- code: `// ROLLUP_NO_REPLACE \n import {base64ToUint8Array } from "${HELPER_ID}" \n export default base64ToUint8Array("${Buffer.from(code, "binary").toString("base64")}")`,
704
- map: null
705
- };
706
- return {
707
- code: `// ROLLUP_NO_REPLACE \n export default ${JSON.stringify(code)}`,
708
- map: null,
709
- moduleType: "js"
710
- };
672
+ transform: {
673
+ order: "pre",
674
+ handler(code, id) {
675
+ if (!id.startsWith(RESOLVED_RAW_PREFIX)) return;
676
+ if (isBinary(id)) return {
677
+ code: `import {base64ToUint8Array } from "${HELPER_ID}" \n export default base64ToUint8Array("${Buffer.from(code, "binary").toString("base64")}")`,
678
+ map: null
679
+ };
680
+ return {
681
+ code: `export default ${JSON.stringify(code)}`,
682
+ map: null,
683
+ moduleType: "js"
684
+ };
685
+ }
711
686
  }
712
687
  };
713
688
  }
@@ -731,6 +706,14 @@ export function base64ToUint8Array(str) {
731
706
  `;
732
707
  }
733
708
 
709
+ //#endregion
710
+ //#region src/build/plugins/runtime-config.ts
711
+ function runtimeConfig(nitro) {
712
+ return virtual({ "#nitro-internal-virtual/runtime-config": () => {
713
+ return `export const runtimeConfig = ${JSON.stringify(nitro.options.runtimeConfig || {})};`;
714
+ } }, nitro.vfs);
715
+ }
716
+
734
717
  //#endregion
735
718
  //#region src/build/plugins.ts
736
719
  function baseBuildPlugins(nitro, base) {
@@ -755,10 +738,15 @@ function baseBuildPlugins(nitro, base) {
755
738
  plugins.push(routing(nitro));
756
739
  plugins.push(raw());
757
740
  if (nitro.options.experimental.openAPI) plugins.push(routeMeta(nitro));
741
+ plugins.push(runtimeConfig(nitro));
758
742
  plugins.push(errorHandler(nitro));
759
743
  plugins.push(virtual({ "#nitro-internal-pollyfills": base.env.polyfill.map((p) => `import '${p}';`).join("\n") || `/* No polyfills */` }, nitro.vfs, { moduleSideEffects: true }));
760
744
  plugins.push(virtual(nitro.options.virtual, nitro.vfs));
761
745
  if (nitro.options.renderer?.template) plugins.push(rendererTemplate(nitro));
746
+ plugins.push(replace({
747
+ preventAssignment: true,
748
+ values: base.replacements
749
+ }));
762
750
  if (!nitro.options.noExternals) plugins.push(rollupNodeFileTrace(defu(nitro.options.externals, {
763
751
  outDir: nitro.options.output.serverDir,
764
752
  moduleDirectories: nitro.options.nodeModulesDirs,
@@ -781,4 +769,4 @@ function baseBuildPlugins(nitro, base) {
781
769
  }
782
770
 
783
771
  //#endregion
784
- export { baseBuildConfig as n, replace$1 as r, baseBuildPlugins as t };
772
+ export { baseBuildConfig as n, baseBuildPlugins as t };
@@ -23,10 +23,10 @@ import { n as writeBuildInfo } from "./common.mjs";
23
23
  import { i as watch$1 } from "../_libs/chokidar.mjs";
24
24
  import "../_libs/estree-walker.mjs";
25
25
  import "../_libs/plugin-commonjs.mjs";
26
- import "../_libs/plugin-replace.mjs";
27
- import { n as baseBuildConfig, r as replace, t as baseBuildPlugins } from "./common2.mjs";
26
+ import { n as baseBuildConfig, t as baseBuildPlugins } from "./common2.mjs";
28
27
  import "../_libs/remapping.mjs";
29
28
  import "../_libs/unwasm.mjs";
29
+ import "../_libs/plugin-replace.mjs";
30
30
  import "../_libs/etag.mjs";
31
31
  import "../_libs/duplexer.mjs";
32
32
  import "../_libs/gzip-size.mjs";
@@ -56,10 +56,7 @@ const getRolldownConfig = (nitro) => {
56
56
  ...builtinModules,
57
57
  ...builtinModules.map((m) => `node:${m}`)
58
58
  ],
59
- plugins: [...baseBuildPlugins(nitro, base), replace({
60
- preventAssignment: true,
61
- values: base.replacements
62
- })],
59
+ plugins: [...baseBuildPlugins(nitro, base)],
63
60
  resolve: {
64
61
  alias: base.aliases,
65
62
  extensions: base.extensions,
@@ -25,10 +25,10 @@ import { t as alias } from "../_libs/plugin-alias.mjs";
25
25
  import "../_libs/estree-walker.mjs";
26
26
  import { t as commonjs } from "../_libs/plugin-commonjs.mjs";
27
27
  import { t as inject } from "../_libs/plugin-inject.mjs";
28
- import "../_libs/plugin-replace.mjs";
29
- import { n as baseBuildConfig, r as replace, t as baseBuildPlugins } from "./common2.mjs";
28
+ import { n as baseBuildConfig, t as baseBuildPlugins } from "./common2.mjs";
30
29
  import "../_libs/remapping.mjs";
31
30
  import "../_libs/unwasm.mjs";
31
+ import "../_libs/plugin-replace.mjs";
32
32
  import "../_libs/etag.mjs";
33
33
  import "../_libs/duplexer.mjs";
34
34
  import "../_libs/gzip-size.mjs";
@@ -110,10 +110,6 @@ const getRollupConfig = (nitro) => {
110
110
  }
111
111
  }),
112
112
  alias({ entries: base.aliases }),
113
- replace({
114
- preventAssignment: true,
115
- values: base.replacements
116
- }),
117
113
  nodeResolve({
118
114
  extensions: base.extensions,
119
115
  preferBuiltins: !!nitro.options.node,
@@ -33,10 +33,10 @@ import "../_libs/plugin-alias.mjs";
33
33
  import "../_libs/estree-walker.mjs";
34
34
  import "../_libs/plugin-commonjs.mjs";
35
35
  import "../_libs/plugin-inject.mjs";
36
- import "../_libs/plugin-replace.mjs";
37
36
  import "./common2.mjs";
38
37
  import "../_libs/remapping.mjs";
39
38
  import "../_libs/unwasm.mjs";
39
+ import "../_libs/plugin-replace.mjs";
40
40
  import "../_libs/etag.mjs";
41
41
  import { t as nitro } from "./vite.plugin.mjs";
42
42
  import "../_libs/vite-plugin-fullstack.mjs";
@@ -10,7 +10,7 @@ import { i as NodeDevWorker, r as NitroDevApp } from "../_dev.mjs";
10
10
  import { i 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 baseBuildConfig, r as replace, t as baseBuildPlugins } from "./common2.mjs";
13
+ import { n as baseBuildConfig, t as baseBuildPlugins } from "./common2.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";
@@ -56,10 +56,6 @@ const getViteRollupConfig = (ctx) => {
56
56
  ctx.pluginConfig.experimental?.vite?.virtualBundle && virtualBundlePlugin(ctx._serviceBundles),
57
57
  ...baseBuildPlugins(nitro$1, base),
58
58
  alias({ entries: base.aliases }),
59
- replace({
60
- preventAssignment: true,
61
- values: base.replacements
62
- }),
63
59
  !ctx._isRolldown && inject(base.env.inject)
64
60
  ].filter(Boolean),
65
61
  ...ctx._isRolldown ? { transform: { inject: base.env.inject } } : {},
@@ -1,14 +1,14 @@
1
+ import { runtimeConfig } from "#nitro-internal-virtual/runtime-config";
1
2
  import { snakeCase } from "scule";
2
3
  export function useRuntimeConfig() {
3
4
  return useRuntimeConfig._cached ||= getRuntimeConfig();
4
5
  }
5
6
  function getRuntimeConfig() {
6
- const runtimeConfig = globalThis.__NITRO_RUNTIME_CONFIG__ || process.env.RUNTIME_CONFIG || {};
7
7
  const env = globalThis.process?.env || {};
8
8
  applyEnv(runtimeConfig, {
9
9
  prefix: "NITRO_",
10
10
  altPrefix: runtimeConfig.nitro?.envPrefix ?? env?.NITRO_ENV_PREFIX ?? "_",
11
- envExpansion: runtimeConfig.nitro?.envExpansion ?? env?.NITRO_ENV_EXPANSION ?? false
11
+ envExpansion: Boolean(runtimeConfig.nitro?.envExpansion ?? env?.NITRO_ENV_EXPANSION ?? false)
12
12
  });
13
13
  return runtimeConfig;
14
14
  }
@@ -3100,25 +3100,20 @@ interface NitroRuntimeConfig {
3100
3100
  }
3101
3101
  //#endregion
3102
3102
  //#region src/types/global.d.ts
3103
- interface NitroStaticBuildFlags {
3104
- _asyncContext?: boolean;
3105
- _tasks?: boolean;
3103
+ interface NitroImportMeta {
3106
3104
  dev?: boolean;
3107
- client?: boolean;
3108
- nitro?: boolean;
3109
- baseURL?: string;
3110
- prerender?: boolean;
3111
3105
  preset?: NitroOptions["preset"];
3106
+ prerender?: boolean;
3107
+ nitro?: boolean;
3112
3108
  server?: boolean;
3113
- versions?: {
3114
- nitro?: string;
3115
- };
3109
+ client?: boolean;
3110
+ baseURL?: string;
3111
+ runtimeConfig?: Record<string, any>;
3112
+ _asyncContext?: boolean;
3113
+ _tasks?: boolean;
3116
3114
  }
3117
3115
  declare global {
3118
- namespace NodeJS {
3119
- interface Process extends NitroStaticBuildFlags {}
3120
- }
3121
- interface ImportMeta extends NitroStaticBuildFlags {}
3116
+ interface ImportMeta extends NitroImportMeta {}
3122
3117
  }
3123
3118
  //#endregion
3124
3119
  //#region src/types/h3.d.ts
@@ -3140,4 +3135,4 @@ declare module "srvx" {
3140
3135
  }
3141
3136
  }
3142
3137
  //#endregion
3143
- 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, NitroModule, NitroModuleInput, type NitroOpenAPIConfig, NitroOptions, NitroPreset, NitroPresetMeta, NitroRouteConfig, NitroRouteMeta, NitroRouteRules, NitroRuntimeConfig, NitroRuntimeConfigApp, NitroRuntimeHooks, NitroStaticBuildFlags, NitroTypes, type NodeExternalsOptions, OXCOptions, PrerenderGenerateRoute, PrerenderRoute, PublicAsset, PublicAssetDir, RenderContext, RenderHandler, RenderResponse, ResponseCacheEntry, RollupConfig, RollupVirtualOptions, Serialize, SerializeObject, SerializeTuple, ServerAssetDir, ServerAssetOptions, Simplify, StorageMounts, Task, TaskContext, TaskEvent, TaskMeta, TaskPayload, TaskResult, TaskRunnerOptions, TypedInternalResponse, UpgradeHandler, VirtualModule, WorkerAddress, WorkerHooks };
3138
+ 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, Simplify, StorageMounts, Task, TaskContext, TaskEvent, TaskMeta, TaskPayload, TaskResult, TaskRunnerOptions, TypedInternalResponse, UpgradeHandler, VirtualModule, WorkerAddress, WorkerHooks };
package/dist/vite.mjs CHANGED
@@ -33,10 +33,10 @@ import "./_libs/plugin-alias.mjs";
33
33
  import "./_libs/estree-walker.mjs";
34
34
  import "./_libs/plugin-commonjs.mjs";
35
35
  import "./_libs/plugin-inject.mjs";
36
- import "./_libs/plugin-replace.mjs";
37
36
  import "./_build/common2.mjs";
38
37
  import "./_libs/remapping.mjs";
39
38
  import "./_libs/unwasm.mjs";
39
+ import "./_libs/plugin-replace.mjs";
40
40
  import "./_libs/etag.mjs";
41
41
  import { t as nitro } from "./_build/vite.plugin.mjs";
42
42
  import "./_libs/vite-plugin-fullstack.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nitro-nightly",
3
- "version": "3.0.1-20251110-120318-409ecf3c",
3
+ "version": "3.0.1-20251110-125717-ef372c1d",
4
4
  "description": "Build and Deploy Universal JavaScript Servers",
5
5
  "homepage": "https://nitro.build",
6
6
  "repository": "nitrojs/nitro",