nitro-nightly 4.0.0-20251010-091516-7cafddba → 4.0.0-20251030-091344-d4418b98

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 (195) hide show
  1. package/dist/{_chunks/build2.mjs → _build/build.mjs} +108 -58
  2. package/dist/_build/build2.mjs +556 -0
  3. package/dist/_build/info.mjs +1002 -0
  4. package/dist/_build/prepare.mjs +1511 -0
  5. package/dist/_build/snapshot.mjs +185 -0
  6. package/dist/{_chunks/plugin.mjs → _build/vite.mjs} +295 -296
  7. package/dist/_build/vite2.mjs +149 -0
  8. package/dist/_chunks/_deps/@jridgewell/gen-mapping.mjs +189 -0
  9. package/dist/_chunks/_deps/@jridgewell/remapping.mjs +137 -0
  10. package/dist/_chunks/_deps/@jridgewell/resolve-uri.mjs +231 -0
  11. package/dist/_chunks/_deps/@jridgewell/sourcemap-codec.mjs +173 -0
  12. package/dist/_chunks/_deps/@jridgewell/trace-mapping.mjs +170 -0
  13. package/dist/_chunks/_deps/@pi0/vite-plugin-fullstack.mjs +575 -0
  14. package/dist/_chunks/_deps/@rollup/plugin-alias.mjs +89 -0
  15. package/dist/_chunks/_deps/@rollup/plugin-commonjs.mjs +2376 -0
  16. package/dist/_chunks/{index2.mjs → _deps/@rollup/plugin-inject.mjs} +5 -90
  17. package/dist/_chunks/_deps/@rollup/plugin-json.mjs +37 -0
  18. package/dist/_chunks/_deps/@rollup/plugin-node-resolve.mjs +1386 -0
  19. package/dist/_chunks/_deps/@rollup/plugin-replace.mjs +133 -0
  20. package/dist/_chunks/_deps/@rollup/pluginutils.mjs +346 -0
  21. package/dist/_chunks/_deps/acorn.mjs +6225 -0
  22. package/dist/_chunks/_deps/c12.mjs +510 -0
  23. package/dist/_chunks/_deps/chokidar.mjs +1428 -0
  24. package/dist/_chunks/_deps/citty.mjs +460 -0
  25. package/dist/_chunks/_deps/commondir.mjs +77 -0
  26. package/dist/_chunks/_deps/compatx.mjs +76 -0
  27. package/dist/_chunks/_deps/confbox.mjs +300 -0
  28. package/dist/_chunks/_deps/debug.mjs +885 -0
  29. package/dist/_chunks/_deps/deepmerge.mjs +147 -0
  30. package/dist/_chunks/_deps/depd.mjs +550 -0
  31. package/dist/_chunks/_deps/dot-prop.mjs +282 -0
  32. package/dist/_chunks/_deps/dotenv.mjs +555 -0
  33. package/dist/_chunks/_deps/duplexer.mjs +1 -0
  34. package/dist/_chunks/_deps/ee-first.mjs +104 -0
  35. package/dist/_chunks/_deps/encodeurl.mjs +69 -0
  36. package/dist/_chunks/_deps/escape-html.mjs +87 -0
  37. package/dist/_chunks/_deps/escape-string-regexp.mjs +13 -0
  38. package/dist/_chunks/_deps/estree-walker.mjs +433 -0
  39. package/dist/_chunks/_deps/etag.mjs +147 -0
  40. package/dist/_chunks/_deps/exsolve.mjs +1416 -0
  41. package/dist/_chunks/_deps/fdir.mjs +569 -0
  42. package/dist/_chunks/_deps/fresh.mjs +145 -0
  43. package/dist/_chunks/_deps/function-bind.mjs +106 -0
  44. package/dist/_chunks/{index4.mjs → _deps/giget.mjs} +21 -776
  45. package/dist/_chunks/_deps/gzip-size.mjs +19 -0
  46. package/dist/_chunks/_deps/hasown.mjs +19 -0
  47. package/dist/_chunks/_deps/http-errors.mjs +307 -0
  48. package/dist/_chunks/_deps/httpxy.mjs +580 -0
  49. package/dist/_chunks/_deps/inherits.mjs +57 -0
  50. package/dist/_chunks/_deps/is-core-module.mjs +596 -0
  51. package/dist/_chunks/_deps/is-module.mjs +25 -0
  52. package/dist/_chunks/_deps/is-reference.mjs +31 -0
  53. package/dist/_chunks/_deps/js-tokens.mjs +411 -0
  54. package/dist/_chunks/_deps/klona.mjs +137 -0
  55. package/dist/_chunks/_deps/knitwork.mjs +172 -0
  56. package/dist/_chunks/_deps/local-pkg.mjs +163 -0
  57. package/dist/_chunks/_deps/magic-string.mjs +1296 -0
  58. package/dist/_chunks/_deps/mime-db.mjs +11685 -0
  59. package/dist/_chunks/_deps/mime-types.mjs +287 -0
  60. package/dist/_chunks/_deps/mime.mjs +1172 -0
  61. package/dist/_chunks/_deps/mlly.mjs +2413 -0
  62. package/dist/_chunks/_deps/ms.mjs +172 -0
  63. package/dist/_chunks/_deps/node-fetch-native.mjs +3 -0
  64. package/dist/_chunks/_deps/nypm.mjs +219 -0
  65. package/dist/_chunks/_deps/on-finished.mjs +246 -0
  66. package/dist/_chunks/_deps/parseurl.mjs +168 -0
  67. package/dist/_chunks/_deps/path-parse.mjs +85 -0
  68. package/dist/_chunks/{pathe.M-eThtNZ.mjs → _deps/pathe.mjs} +48 -1
  69. package/dist/_chunks/_deps/perfect-debounce.mjs +88 -0
  70. package/dist/_chunks/_deps/picomatch.mjs +2144 -0
  71. package/dist/_chunks/_deps/pkg-types.mjs +247 -0
  72. package/dist/_chunks/{snapshot.mjs → _deps/pretty-bytes.mjs} +1 -105
  73. package/dist/_chunks/_deps/quansync.mjs +99 -0
  74. package/dist/_chunks/_deps/range-parser.mjs +171 -0
  75. package/dist/_chunks/_deps/rc9.mjs +219 -0
  76. package/dist/_chunks/_deps/readdirp.mjs +245 -0
  77. package/dist/_chunks/_deps/resolve.mjs +1260 -0
  78. package/dist/_chunks/_deps/rou3.mjs +326 -0
  79. package/dist/_chunks/_deps/send.mjs +1022 -0
  80. package/dist/_chunks/_deps/serve-static.mjs +228 -0
  81. package/dist/_chunks/_deps/setprototypeof.mjs +26 -0
  82. package/dist/_chunks/_deps/statuses.mjs +457 -0
  83. package/dist/_chunks/_deps/std-env.mjs +3 -0
  84. package/dist/_chunks/_deps/strip-literal.mjs +67 -0
  85. package/dist/_chunks/_deps/supports-color.mjs +44 -0
  86. package/dist/_chunks/_deps/tinyexec.mjs +552 -0
  87. package/dist/_chunks/_deps/tinyglobby.mjs +293 -0
  88. package/dist/_chunks/_deps/toidentifier.mjs +41 -0
  89. package/dist/_chunks/_deps/ultrahtml.mjs +3 -0
  90. package/dist/_chunks/_deps/unimport.mjs +2267 -0
  91. package/dist/_chunks/_deps/unplugin-utils.mjs +65 -0
  92. package/dist/_chunks/_deps/unplugin.mjs +1294 -0
  93. package/dist/_chunks/_deps/untyped.mjs +375 -0
  94. package/dist/_chunks/{info.mjs → _deps/unwasm.mjs} +8 -4206
  95. package/dist/_chunks/_deps/webpack-virtual-modules.mjs +360 -0
  96. package/dist/_chunks/_presets/_all.mjs +59 -0
  97. package/dist/_chunks/_presets/_nitro.mjs +74 -0
  98. package/dist/_chunks/_presets/_resolve.mjs +64 -0
  99. package/dist/_chunks/_presets/_static.mjs +69 -0
  100. package/dist/_chunks/_presets/_types.mjs +3 -0
  101. package/dist/_chunks/_presets/_utils.mjs +31 -0
  102. package/dist/_chunks/_presets/alwaysdata.mjs +17 -0
  103. package/dist/_chunks/_presets/aws-amplify.mjs +111 -0
  104. package/dist/_chunks/_presets/aws-lambda.mjs +23 -0
  105. package/dist/_chunks/_presets/azure.mjs +162 -0
  106. package/dist/_chunks/_presets/bun.mjs +19 -0
  107. package/dist/_chunks/_presets/cleavr.mjs +15 -0
  108. package/dist/_chunks/_presets/cloudflare.mjs +608 -0
  109. package/dist/_chunks/_presets/deno.mjs +196 -0
  110. package/dist/_chunks/_presets/digitalocean.mjs +14 -0
  111. package/dist/_chunks/_presets/firebase.mjs +47 -0
  112. package/dist/_chunks/_presets/flightcontrol.mjs +14 -0
  113. package/dist/_chunks/_presets/genezio.mjs +13 -0
  114. package/dist/_chunks/_presets/heroku.mjs +14 -0
  115. package/dist/_chunks/_presets/iis.mjs +194 -0
  116. package/dist/_chunks/_presets/index.mjs +62 -0
  117. package/dist/_chunks/_presets/koyeb.mjs +14 -0
  118. package/dist/_chunks/_presets/netlify.mjs +241 -0
  119. package/dist/_chunks/_presets/node.mjs +54 -0
  120. package/dist/_chunks/_presets/platform.mjs +14 -0
  121. package/dist/_chunks/_presets/render.mjs +14 -0
  122. package/dist/_chunks/_presets/standard.mjs +23 -0
  123. package/dist/_chunks/_presets/stormkit.mjs +18 -0
  124. package/dist/_chunks/_presets/vercel.mjs +375 -0
  125. package/dist/_chunks/_presets/winterjs.mjs +22 -0
  126. package/dist/_chunks/_presets/zeabur.mjs +69 -0
  127. package/dist/_chunks/_presets/zerops.mjs +27 -0
  128. package/dist/_chunks/app.mjs +9 -19206
  129. package/dist/_chunks/{index3.mjs → builder.mjs} +560 -970
  130. package/dist/_chunks/server.mjs +6 -4
  131. package/dist/{cli → _cli}/build.mjs +3 -8
  132. package/dist/{cli → _cli}/dev.mjs +38 -12
  133. package/dist/{cli/index2.mjs → _cli/index.mjs} +1 -2
  134. package/dist/{cli → _cli}/list.mjs +3 -4
  135. package/dist/{cli → _cli}/prepare.mjs +3 -4
  136. package/dist/{cli → _cli}/run.mjs +3 -4
  137. package/dist/{index.d.mts → builder.d.mts} +11 -11
  138. package/dist/builder.mjs +117 -0
  139. package/dist/cli/index.mjs +7 -464
  140. package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
  141. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
  142. package/dist/node_modules/@speed-highlight/core/package.json +7 -3
  143. package/dist/node_modules/cookie-es/dist/index.mjs +262 -0
  144. package/dist/node_modules/cookie-es/package.json +37 -0
  145. package/dist/node_modules/hookable/dist/index.mjs +243 -266
  146. package/dist/node_modules/hookable/package.json +29 -26
  147. package/dist/node_modules/rendu/dist/index.mjs +380 -0
  148. package/dist/node_modules/rendu/package.json +47 -0
  149. package/dist/presets/_nitro/runtime/nitro-dev.mjs +4 -7
  150. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +5 -4
  151. package/dist/presets/azure/runtime/azure-swa.mjs +1 -1
  152. package/dist/presets/cloudflare/runtime/_module-handler.mjs +7 -6
  153. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +4 -5
  154. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +7 -10
  155. package/dist/presets/cloudflare/runtime/shims/workers.dev.d.mts +21 -0
  156. package/dist/presets/cloudflare/runtime/shims/workers.dev.mjs +27 -0
  157. package/dist/presets/node/runtime/node-server.mjs +1 -1
  158. package/dist/runtime/index.d.mts +1 -1
  159. package/dist/runtime/index.mjs +1 -1
  160. package/dist/runtime/internal/app.d.mts +3 -1
  161. package/dist/runtime/internal/app.mjs +90 -64
  162. package/dist/runtime/internal/error/prod.d.mts +3 -2
  163. package/dist/runtime/internal/error/prod.mjs +9 -13
  164. package/dist/runtime/internal/renderer.mjs +4 -4
  165. package/dist/runtime/internal/routes/dev-tasks.d.mts +30 -2
  166. package/dist/runtime/internal/shutdown.d.mts +1 -2
  167. package/dist/runtime/internal/shutdown.mjs +3 -2
  168. package/dist/runtime/internal/task.mjs +1 -2
  169. package/dist/types/index.d.mts +1603 -10
  170. package/dist/vite.d.mts +5 -0
  171. package/dist/vite.mjs +94 -30
  172. package/lib/index.mjs +1 -0
  173. package/lib/indexd.mts +1 -0
  174. package/lib/runtime/meta.mjs +35 -0
  175. package/package.json +40 -41
  176. package/dist/_chunks/build.mjs +0 -84
  177. package/dist/_chunks/build3.mjs +0 -6452
  178. package/dist/_chunks/detect-acorn.mjs +0 -503
  179. package/dist/_chunks/index.mjs +0 -22242
  180. package/dist/_chunks/json5.mjs +0 -68
  181. package/dist/_chunks/jsonc.mjs +0 -51
  182. package/dist/_chunks/toml.mjs +0 -259
  183. package/dist/_chunks/yaml.mjs +0 -86
  184. package/dist/index.mjs +0 -55
  185. package/dist/node_modules/klona/dist/index.mjs +0 -81
  186. package/dist/node_modules/klona/full/index.mjs +0 -53
  187. package/dist/node_modules/klona/package.json +0 -74
  188. package/dist/node_modules/std-env/dist/index.mjs +0 -1
  189. package/dist/node_modules/std-env/package.json +0 -46
  190. package/dist/presets.mjs +0 -2460
  191. package/dist/runtime/internal/debug.d.mts +0 -2
  192. package/dist/runtime/internal/debug.mjs +0 -5
  193. package/lib/runtime-meta.mjs +0 -38
  194. /package/dist/{cli → _cli}/common.mjs +0 -0
  195. /package/lib/{runtime-meta.d.mts → runtime/meta.d.mts} +0 -0
@@ -0,0 +1,375 @@
1
+ import { w as writeFile, d as defineNitroPreset } from './_utils.mjs';
2
+ import fsp from 'node:fs/promises';
3
+ import { defu } from 'defu';
4
+ import { joinURL, withoutLeadingSlash, withLeadingSlash } from 'ufo';
5
+ import { a } from '../_deps/std-env.mjs';
6
+ import { r as resolve, d as dirname, a as relative } from '../_deps/pathe.mjs';
7
+
8
+ const SUPPORTED_NODE_VERSIONS = [20, 22];
9
+ const FALLBACK_ROUTE = "/__server";
10
+ const ISR_SUFFIX = "-isr";
11
+ const SAFE_FS_CHAR_RE = /[^a-zA-Z0-9_.[\]/]/g;
12
+ function getSystemNodeVersion() {
13
+ const systemNodeVersion = Number.parseInt(
14
+ process.versions.node.split(".")[0]
15
+ );
16
+ return Number.isNaN(systemNodeVersion) ? 22 : systemNodeVersion;
17
+ }
18
+ async function generateFunctionFiles(nitro) {
19
+ const o11Routes = getObservabilityRoutes(nitro);
20
+ const buildConfigPath = resolve(nitro.options.output.dir, "config.json");
21
+ const buildConfig = generateBuildConfig(nitro, o11Routes);
22
+ await writeFile(buildConfigPath, JSON.stringify(buildConfig, null, 2));
23
+ const functionConfigPath = resolve(
24
+ nitro.options.output.serverDir,
25
+ ".vc-config.json"
26
+ );
27
+ const functionConfig = {
28
+ handler: "index.mjs",
29
+ launcherType: "Nodejs",
30
+ shouldAddHelpers: false,
31
+ supportsResponseStreaming: true,
32
+ ...nitro.options.vercel?.functions
33
+ };
34
+ await writeFile(functionConfigPath, JSON.stringify(functionConfig, null, 2));
35
+ for (const [key, value] of Object.entries(nitro.options.routeRules)) {
36
+ if (!value.isr) {
37
+ continue;
38
+ }
39
+ const funcPrefix = resolve(
40
+ nitro.options.output.serverDir,
41
+ "..",
42
+ normalizeRouteDest(key) + ISR_SUFFIX
43
+ );
44
+ await fsp.mkdir(dirname(funcPrefix), { recursive: true });
45
+ await fsp.symlink(
46
+ "./" + relative(dirname(funcPrefix), nitro.options.output.serverDir),
47
+ funcPrefix + ".func",
48
+ "junction"
49
+ );
50
+ await writePrerenderConfig(
51
+ funcPrefix + ".prerender-config.json",
52
+ value.isr,
53
+ nitro.options.vercel?.config?.bypassToken
54
+ );
55
+ }
56
+ if (o11Routes.length === 0) {
57
+ return;
58
+ }
59
+ const _getRouteRules = (path) => defu(
60
+ {},
61
+ ...nitro.routing.routeRules.matchAll("", path).reverse()
62
+ );
63
+ for (const route of o11Routes) {
64
+ const routeRules = _getRouteRules(route.src);
65
+ if (routeRules.isr) {
66
+ continue;
67
+ }
68
+ const funcPrefix = resolve(
69
+ nitro.options.output.serverDir,
70
+ "..",
71
+ route.dest
72
+ );
73
+ await fsp.mkdir(dirname(funcPrefix), { recursive: true });
74
+ await fsp.symlink(
75
+ "./" + relative(dirname(funcPrefix), nitro.options.output.serverDir),
76
+ funcPrefix + ".func",
77
+ "junction"
78
+ );
79
+ }
80
+ }
81
+ async function generateStaticFiles(nitro) {
82
+ const buildConfigPath = resolve(nitro.options.output.dir, "config.json");
83
+ const buildConfig = generateBuildConfig(nitro);
84
+ await writeFile(buildConfigPath, JSON.stringify(buildConfig, null, 2));
85
+ }
86
+ function generateBuildConfig(nitro, o11Routes) {
87
+ const rules = Object.entries(nitro.options.routeRules).sort(
88
+ (a, b) => b[0].split(/\/(?!\*)/).length - a[0].split(/\/(?!\*)/).length
89
+ );
90
+ const config = defu(nitro.options.vercel?.config, {
91
+ version: 3,
92
+ overrides: {
93
+ // Nitro static prerendered route overrides
94
+ ...Object.fromEntries(
95
+ (nitro._prerenderedRoutes?.filter((r) => r.fileName !== r.route) || []).map(({ route, fileName }) => [
96
+ withoutLeadingSlash(fileName),
97
+ { path: route.replace(/^\//, "") }
98
+ ])
99
+ )
100
+ },
101
+ routes: [
102
+ // Redirect and header rules
103
+ ...rules.filter(([_, routeRules]) => routeRules.redirect || routeRules.headers).map(([path, routeRules]) => {
104
+ let route = {
105
+ src: path.replace("/**", "/(.*)")
106
+ };
107
+ if (routeRules.redirect) {
108
+ route = defu(route, {
109
+ status: routeRules.redirect.status,
110
+ headers: {
111
+ Location: routeRules.redirect.to.replace("/**", "/$1")
112
+ }
113
+ });
114
+ }
115
+ if (routeRules.headers) {
116
+ route = defu(route, { headers: routeRules.headers });
117
+ }
118
+ return route;
119
+ }),
120
+ // Public asset rules
121
+ ...nitro.options.publicAssets.filter((asset) => !asset.fallthrough).map((asset) => joinURL(nitro.options.baseURL, asset.baseURL || "/")).map((baseURL) => ({
122
+ src: baseURL + "(.*)",
123
+ headers: {
124
+ "cache-control": "public,max-age=31536000,immutable"
125
+ },
126
+ continue: true
127
+ })),
128
+ { handle: "filesystem" }
129
+ ]
130
+ });
131
+ if (nitro.options.static) {
132
+ return config;
133
+ }
134
+ config.routes.push(
135
+ ...nitro.options.routeRules["/"]?.isr ? [
136
+ {
137
+ src: "(?<url>/)",
138
+ dest: `/index${ISR_SUFFIX}?url=$url`
139
+ }
140
+ ] : [],
141
+ ...rules.filter(([key, value]) => value.isr !== void 0 && key !== "/").map(([key, value]) => {
142
+ const src = key.replace(/^(.*)\/\*\*/, "(?<url>$1/.*)");
143
+ if (value.isr === false) {
144
+ return {
145
+ src,
146
+ dest: FALLBACK_ROUTE
147
+ };
148
+ }
149
+ return {
150
+ src,
151
+ dest: withLeadingSlash(
152
+ normalizeRouteDest(key) + ISR_SUFFIX + "?url=$url"
153
+ )
154
+ };
155
+ }),
156
+ ...(o11Routes || []).map((route) => ({
157
+ src: joinURL(nitro.options.baseURL, route.src),
158
+ dest: withLeadingSlash(route.dest)
159
+ })),
160
+ ...nitro.options.routeRules["/**"]?.isr ? [] : [
161
+ {
162
+ src: "/(.*)",
163
+ dest: FALLBACK_ROUTE
164
+ }
165
+ ]
166
+ );
167
+ return config;
168
+ }
169
+ function deprecateSWR(nitro) {
170
+ if (nitro.options.future.nativeSWR) {
171
+ return;
172
+ }
173
+ let hasLegacyOptions = false;
174
+ for (const [key, value] of Object.entries(nitro.options.routeRules)) {
175
+ if (_hasProp(value, "isr")) {
176
+ continue;
177
+ }
178
+ if (value.cache === false) {
179
+ value.isr = false;
180
+ }
181
+ if (_hasProp(value, "static")) {
182
+ value.isr = !value.static;
183
+ hasLegacyOptions = true;
184
+ }
185
+ if (value.cache && _hasProp(value.cache, "swr")) {
186
+ value.isr = value.cache.swr;
187
+ hasLegacyOptions = true;
188
+ }
189
+ }
190
+ if (hasLegacyOptions && !a) {
191
+ nitro.logger.warn(
192
+ "Nitro now uses `isr` option to configure ISR behavior on Vercel. Backwards-compatible support for `static` and `swr` options within the Vercel Build Options API will be removed in the future versions. Set `future.nativeSWR: true` nitro config disable this warning."
193
+ );
194
+ }
195
+ }
196
+ async function resolveVercelRuntime(nitro) {
197
+ let runtime = nitro.options.vercel?.functions?.runtime;
198
+ if (runtime) {
199
+ return runtime;
200
+ }
201
+ const vercelConfig = await readVercelConfig(nitro.options.rootDir);
202
+ if (vercelConfig.bunVersion || "Bun" in globalThis) {
203
+ runtime = "bun1.x";
204
+ } else {
205
+ const systemNodeVersion = getSystemNodeVersion();
206
+ const usedNodeVersion = SUPPORTED_NODE_VERSIONS.find((version) => version >= systemNodeVersion) ?? SUPPORTED_NODE_VERSIONS.at(-1);
207
+ runtime = `nodejs${usedNodeVersion}.x`;
208
+ }
209
+ nitro.options.vercel ??= {};
210
+ nitro.options.vercel.functions ??= {};
211
+ nitro.options.vercel.functions.runtime = runtime;
212
+ return runtime;
213
+ }
214
+ async function readVercelConfig(rootDir) {
215
+ const vercelConfigPath = resolve(rootDir, "vercel.json");
216
+ const vercelConfig = await fsp.readFile(vercelConfigPath).then((config) => JSON.parse(config.toString())).catch(() => ({}));
217
+ return vercelConfig;
218
+ }
219
+ function _hasProp(obj, prop) {
220
+ return obj && typeof obj === "object" && prop in obj;
221
+ }
222
+ function getObservabilityRoutes(nitro) {
223
+ const compatDate = nitro.options.compatibilityDate.vercel || nitro.options.compatibilityDate.default;
224
+ if (compatDate < "2025-07-15") {
225
+ return [];
226
+ }
227
+ const routePatterns = [
228
+ .../* @__PURE__ */ new Set([
229
+ ...nitro.options.ssrRoutes || [],
230
+ ...[...nitro.scannedHandlers, ...nitro.options.handlers].filter((h) => !h.middleware && h.route).map((h) => h.route)
231
+ ])
232
+ ];
233
+ const staticRoutes = [];
234
+ const dynamicRoutes = [];
235
+ const catchAllRoutes = [];
236
+ for (const route of routePatterns) {
237
+ if (route.includes("**")) {
238
+ catchAllRoutes.push(route);
239
+ } else if (route.includes(":") || route.includes("*")) {
240
+ dynamicRoutes.push(route);
241
+ } else {
242
+ staticRoutes.push(route);
243
+ }
244
+ }
245
+ return [
246
+ ...normalizeRoutes(staticRoutes),
247
+ ...normalizeRoutes(dynamicRoutes),
248
+ ...normalizeRoutes(catchAllRoutes)
249
+ ];
250
+ }
251
+ function normalizeRoutes(routes) {
252
+ return routes.sort(
253
+ (a, b) => (
254
+ // a.split("/").length - b.split("/").length ||
255
+ b.localeCompare(a)
256
+ )
257
+ ).map((route) => ({
258
+ src: normalizeRouteSrc(route),
259
+ dest: normalizeRouteDest(route)
260
+ }));
261
+ }
262
+ function normalizeRouteSrc(route) {
263
+ let idCtr = 0;
264
+ return route.split("/").map((segment) => {
265
+ if (segment.startsWith("**")) {
266
+ return segment === "**" ? "(?:.*)" : `?(?<${namedGroup(segment.slice(3))}>.+)`;
267
+ }
268
+ if (segment === "*") {
269
+ return `(?<_${idCtr++}>[^/]*)`;
270
+ }
271
+ if (segment.includes(":")) {
272
+ return segment.replace(/:(\w+)/g, (_, id) => `(?<${namedGroup(id)}>[^/]+)`).replace(/\./g, String.raw`\.`);
273
+ }
274
+ return segment;
275
+ }).join("/");
276
+ }
277
+ function namedGroup(input = "") {
278
+ if (/\d/.test(input[0])) {
279
+ input = `_${input}`;
280
+ }
281
+ return input.replace(/[^a-zA-Z0-9_]/g, "") || "_";
282
+ }
283
+ function normalizeRouteDest(route) {
284
+ return route.split("/").slice(1).map((segment) => {
285
+ if (segment.startsWith("**")) {
286
+ return `[...${segment.replace(/[*:]/g, "")}]`;
287
+ }
288
+ if (segment === "*") {
289
+ return "[-]";
290
+ }
291
+ if (segment.startsWith(":")) {
292
+ return `[${segment.slice(1)}]`;
293
+ }
294
+ if (segment.includes(":")) {
295
+ return `[${segment.replace(/:/g, "_")}]`;
296
+ }
297
+ return segment;
298
+ }).map((segment) => segment.replace(SAFE_FS_CHAR_RE, "-")).join("/") || "index";
299
+ }
300
+ async function writePrerenderConfig(filename, isrConfig, bypassToken) {
301
+ if (typeof isrConfig === "number") {
302
+ isrConfig = { expiration: isrConfig };
303
+ } else if (isrConfig === true) {
304
+ isrConfig = { expiration: false };
305
+ } else {
306
+ isrConfig = { ...isrConfig };
307
+ }
308
+ const prerenderConfig = {
309
+ expiration: isrConfig.expiration ?? false,
310
+ bypassToken,
311
+ ...isrConfig
312
+ };
313
+ await writeFile(filename, JSON.stringify(prerenderConfig, null, 2));
314
+ }
315
+
316
+ const vercel = defineNitroPreset(
317
+ {
318
+ entry: "./vercel/runtime/vercel",
319
+ output: {
320
+ dir: "{{ rootDir }}/.vercel/output",
321
+ serverDir: "{{ output.dir }}/functions/__server.func",
322
+ publicDir: "{{ output.dir }}/static/{{ baseURL }}"
323
+ },
324
+ commands: {
325
+ deploy: "",
326
+ preview: ""
327
+ },
328
+ hooks: {
329
+ "build:before": async (nitro) => {
330
+ const runtime = await resolveVercelRuntime(nitro);
331
+ if (runtime.startsWith("bun") && !nitro.options.exportConditions.includes("bun")) {
332
+ nitro.options.exportConditions.push("bun");
333
+ }
334
+ },
335
+ "rollup:before": (nitro) => {
336
+ deprecateSWR(nitro);
337
+ },
338
+ async compiled(nitro) {
339
+ await generateFunctionFiles(nitro);
340
+ }
341
+ }
342
+ },
343
+ {
344
+ name: "vercel",
345
+ stdName: "vercel"
346
+ }
347
+ );
348
+ const vercelStatic = defineNitroPreset(
349
+ {
350
+ extends: "static",
351
+ output: {
352
+ dir: "{{ rootDir }}/.vercel/output",
353
+ publicDir: "{{ output.dir }}/static/{{ baseURL }}"
354
+ },
355
+ commands: {
356
+ preview: "npx serve ./static"
357
+ },
358
+ hooks: {
359
+ "rollup:before": (nitro) => {
360
+ deprecateSWR(nitro);
361
+ },
362
+ async compiled(nitro) {
363
+ await generateStaticFiles(nitro);
364
+ }
365
+ }
366
+ },
367
+ {
368
+ name: "vercel-static",
369
+ stdName: "vercel",
370
+ static: true
371
+ }
372
+ );
373
+ const _vercel = [vercel, vercelStatic];
374
+
375
+ export { _vercel as _ };
@@ -0,0 +1,22 @@
1
+ import { d as defineNitroPreset } from './_utils.mjs';
2
+
3
+ const winterjs = defineNitroPreset(
4
+ {
5
+ extends: "base-worker",
6
+ entry: "./winterjs/runtime/winterjs",
7
+ minify: false,
8
+ serveStatic: "inline",
9
+ wasm: {
10
+ lazy: true
11
+ },
12
+ commands: {
13
+ preview: "wasmer run wasmer/winterjs --forward-host-env --net --mapdir app:./ app/server/index.mjs"
14
+ }
15
+ },
16
+ {
17
+ name: "winterjs"
18
+ }
19
+ );
20
+ const _winterjs = [winterjs];
21
+
22
+ export { _winterjs as _ };
@@ -0,0 +1,69 @@
1
+ import fsp from 'node:fs/promises';
2
+ import { d as defineNitroPreset, w as writeFile } from './_utils.mjs';
3
+ import { r as resolve, d as dirname, a as relative } from '../_deps/pathe.mjs';
4
+
5
+ const zeabur = defineNitroPreset(
6
+ {
7
+ entry: "./zeabur/runtime/zeabur",
8
+ output: {
9
+ dir: "{{ rootDir }}/.zeabur/output",
10
+ serverDir: "{{ output.dir }}/functions/__nitro.func",
11
+ publicDir: "{{ output.dir }}/static"
12
+ },
13
+ hooks: {
14
+ async compiled(nitro) {
15
+ const buildConfigPath = resolve(
16
+ nitro.options.output.dir,
17
+ "config.json"
18
+ );
19
+ const cfg = {
20
+ containerized: false,
21
+ routes: [{ src: ".*", dest: "/__nitro" }]
22
+ };
23
+ await writeFile(buildConfigPath, JSON.stringify(cfg, null, 2));
24
+ for (const [key, value] of Object.entries(nitro.options.routeRules)) {
25
+ if (!value.isr) {
26
+ continue;
27
+ }
28
+ const funcPrefix = resolve(
29
+ nitro.options.output.serverDir,
30
+ ".." + key
31
+ );
32
+ await fsp.mkdir(dirname(funcPrefix), { recursive: true });
33
+ await fsp.symlink(
34
+ "./" + relative(dirname(funcPrefix), nitro.options.output.serverDir),
35
+ funcPrefix + ".func",
36
+ "junction"
37
+ );
38
+ await writeFile(
39
+ funcPrefix + ".prerender-config.json",
40
+ JSON.stringify({ type: "Prerender" })
41
+ );
42
+ }
43
+ }
44
+ }
45
+ },
46
+ {
47
+ name: "zeabur",
48
+ stdName: "zeabur"
49
+ }
50
+ );
51
+ const zeaburStatic = defineNitroPreset(
52
+ {
53
+ extends: "static",
54
+ output: {
55
+ dir: "{{ rootDir }}/.zeabur/output",
56
+ publicDir: "{{ output.dir }}/static"
57
+ },
58
+ commands: {
59
+ preview: "npx serve ./static"
60
+ }
61
+ },
62
+ {
63
+ name: "zeabur-static",
64
+ static: true
65
+ }
66
+ );
67
+ const _zeabur = [zeabur, zeaburStatic];
68
+
69
+ export { _zeabur as _ };
@@ -0,0 +1,27 @@
1
+ import { d as defineNitroPreset } from './_utils.mjs';
2
+
3
+ const zerops = defineNitroPreset(
4
+ {
5
+ extends: "node-server",
6
+ serveStatic: true
7
+ },
8
+ {
9
+ name: "zerops"
10
+ }
11
+ );
12
+ const zeropsStatic = defineNitroPreset(
13
+ {
14
+ extends: "static",
15
+ output: {
16
+ dir: "{{ rootDir }}/.zerops/output",
17
+ publicDir: "{{ output.dir }}/static"
18
+ }
19
+ },
20
+ {
21
+ name: "zerops-static",
22
+ static: true
23
+ }
24
+ );
25
+ const _zerops = [zerops, zeropsStatic];
26
+
27
+ export { _zerops as _ };