nitro-nightly 3.0.1-20260125-215009-8882bc9e → 3.0.1-20260127-164246-ef01b092
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.
- package/dist/_build/common.mjs +2084 -3212
- package/dist/_build/rolldown.mjs +12 -25
- package/dist/_build/rollup.mjs +11 -27
- package/dist/_build/vite.build.mjs +7 -11
- package/dist/_chunks/dev.mjs +20 -42
- package/dist/_chunks/nitro.mjs +13 -92
- package/dist/_chunks/nitro2.mjs +1 -5
- package/dist/_chunks/utils.mjs +10 -24
- package/dist/_common.mjs +12 -24
- package/dist/_libs/citty.mjs +1 -13
- package/dist/_libs/commondir+is-reference.mjs +12 -22
- package/dist/_libs/compatx.mjs +1 -4
- package/dist/_libs/confbox.mjs +363 -376
- package/dist/_libs/escape-string-regexp.mjs +1 -4
- package/dist/_libs/estree-walker.mjs +4 -92
- package/dist/_libs/hasown+resolve+deepmerge.mjs +144 -230
- package/dist/_libs/httpxy.mjs +5 -21
- package/dist/_libs/klona.mjs +1 -4
- package/dist/_libs/nypm+giget+tinyexec.mjs +874 -926
- package/dist/_libs/plugin-alias.mjs +1 -5
- package/dist/_libs/plugin-inject.mjs +1 -5
- package/dist/_libs/plugin-json.mjs +1 -5
- package/dist/_libs/pluginutils+plugin-commonjs.d.mts +2 -2
- package/dist/_libs/pluginutils.mjs +1 -31
- package/dist/_libs/rc9+c12+dotenv.mjs +43 -83
- package/dist/_libs/readdirp+chokidar.mjs +184 -360
- package/dist/_libs/remapping.mjs +1 -5
- package/dist/_libs/resolve-uri+gen-mapping.mjs +12 -48
- package/dist/_libs/rou3.mjs +1 -32
- package/dist/_libs/tsconfck.mjs +21 -334
- package/dist/_libs/ultrahtml.mjs +3 -16
- package/dist/_libs/unimport+unplugin.mjs +15 -75
- package/dist/_presets.mjs +260 -445
- package/dist/builder.mjs +1 -2
- package/dist/cli/_chunks/build.mjs +1 -5
- package/dist/cli/_chunks/common.mjs +1 -4
- package/dist/cli/_chunks/dev.mjs +1 -5
- package/dist/cli/_chunks/list.mjs +1 -5
- package/dist/cli/_chunks/prepare.mjs +1 -5
- package/dist/cli/_chunks/run.mjs +1 -5
- package/dist/cli/_chunks/task.mjs +1 -5
- package/dist/cli/index.mjs +1 -5
- package/dist/types/index.d.mts +5 -5
- package/dist/types/index.mjs +1 -2
- package/dist/vite.mjs +44 -63
- package/package.json +21 -21
package/dist/_presets.mjs
CHANGED
|
@@ -12,8 +12,6 @@ import { hasProtocol, joinURL, withLeadingSlash, withTrailingSlash, withoutLeadi
|
|
|
12
12
|
import { presetsDir, runtimeDir, version } from "nitro/meta";
|
|
13
13
|
import { colors } from "consola/utils";
|
|
14
14
|
import { kebabCase } from "scule";
|
|
15
|
-
|
|
16
|
-
//#region src/presets/_utils/preset.ts
|
|
17
15
|
function defineNitroPreset(preset, meta) {
|
|
18
16
|
if (typeof preset !== "function" && preset.entry && preset.entry.startsWith(".")) preset.entry = resolve(presetsDir, preset.entry);
|
|
19
17
|
return {
|
|
@@ -21,10 +19,7 @@ function defineNitroPreset(preset, meta) {
|
|
|
21
19
|
_meta: meta
|
|
22
20
|
};
|
|
23
21
|
}
|
|
24
|
-
|
|
25
|
-
//#endregion
|
|
26
|
-
//#region src/presets/_nitro/base-worker.ts
|
|
27
|
-
const baseWorker = defineNitroPreset({
|
|
22
|
+
var base_worker_default = [defineNitroPreset({
|
|
28
23
|
entry: null,
|
|
29
24
|
node: false,
|
|
30
25
|
minify: true,
|
|
@@ -34,12 +29,8 @@ const baseWorker = defineNitroPreset({
|
|
|
34
29
|
generatedCode: { symbols: true }
|
|
35
30
|
} },
|
|
36
31
|
inlineDynamicImports: true
|
|
37
|
-
}, { name: "base-worker" });
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
//#endregion
|
|
41
|
-
//#region src/presets/_nitro/nitro-dev.ts
|
|
42
|
-
const nitroDev = defineNitroPreset({
|
|
32
|
+
}, { name: "base-worker" })];
|
|
33
|
+
var nitro_dev_default = [defineNitroPreset({
|
|
43
34
|
entry: "./_nitro/runtime/nitro-dev",
|
|
44
35
|
output: {
|
|
45
36
|
dir: "{{ buildDir }}/dev",
|
|
@@ -58,84 +49,63 @@ const nitroDev = defineNitroPreset({
|
|
|
58
49
|
}, {
|
|
59
50
|
name: "nitro-dev",
|
|
60
51
|
dev: true
|
|
61
|
-
});
|
|
62
|
-
var
|
|
63
|
-
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/presets/_nitro/nitro-prerender.ts
|
|
66
|
-
const nitroPrerender = defineNitroPreset({
|
|
52
|
+
})];
|
|
53
|
+
var nitro_prerender_default = [defineNitroPreset({
|
|
67
54
|
entry: "./_nitro/runtime/nitro-prerenderer",
|
|
68
55
|
serveStatic: true,
|
|
69
56
|
output: { serverDir: "{{ buildDir }}/prerender" },
|
|
70
57
|
externals: { noTrace: true }
|
|
71
|
-
}, { name: "nitro-prerender" });
|
|
72
|
-
var nitro_prerender_default = [nitroPrerender];
|
|
73
|
-
|
|
74
|
-
//#endregion
|
|
75
|
-
//#region src/presets/_nitro/preset.ts
|
|
58
|
+
}, { name: "nitro-prerender" })];
|
|
76
59
|
var preset_default$26 = [
|
|
77
60
|
...base_worker_default,
|
|
78
61
|
...nitro_dev_default,
|
|
79
62
|
...nitro_prerender_default
|
|
80
63
|
];
|
|
81
|
-
|
|
82
|
-
//#endregion
|
|
83
|
-
//#region src/presets/_static/preset.ts
|
|
84
|
-
const _static = defineNitroPreset({
|
|
85
|
-
static: true,
|
|
86
|
-
output: {
|
|
87
|
-
dir: "{{ rootDir }}/.output",
|
|
88
|
-
publicDir: "{{ output.dir }}/public"
|
|
89
|
-
},
|
|
90
|
-
prerender: { crawlLinks: true },
|
|
91
|
-
commands: { preview: "npx serve ./public" }
|
|
92
|
-
}, {
|
|
93
|
-
name: "static",
|
|
94
|
-
static: true
|
|
95
|
-
});
|
|
96
|
-
const githubPages = defineNitroPreset({
|
|
97
|
-
extends: "static",
|
|
98
|
-
commands: { deploy: "npx gh-pages --dotfiles -d ./public" },
|
|
99
|
-
prerender: { routes: ["/", "/404.html"] },
|
|
100
|
-
hooks: { async compiled(nitro) {
|
|
101
|
-
await fsp.writeFile(join$1(nitro.options.output.publicDir, ".nojekyll"), "");
|
|
102
|
-
} }
|
|
103
|
-
}, {
|
|
104
|
-
name: "github-pages",
|
|
105
|
-
static: true
|
|
106
|
-
});
|
|
107
|
-
const gitlabPages = defineNitroPreset({
|
|
108
|
-
extends: "static",
|
|
109
|
-
prerender: { routes: ["/", "/404.html"] }
|
|
110
|
-
}, {
|
|
111
|
-
name: "gitlab-pages",
|
|
112
|
-
static: true
|
|
113
|
-
});
|
|
114
64
|
var preset_default$25 = [
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
65
|
+
defineNitroPreset({
|
|
66
|
+
static: true,
|
|
67
|
+
output: {
|
|
68
|
+
dir: "{{ rootDir }}/.output",
|
|
69
|
+
publicDir: "{{ output.dir }}/public"
|
|
70
|
+
},
|
|
71
|
+
prerender: { crawlLinks: true },
|
|
72
|
+
commands: { preview: "npx serve ./public" }
|
|
73
|
+
}, {
|
|
74
|
+
name: "static",
|
|
75
|
+
static: true
|
|
76
|
+
}),
|
|
77
|
+
defineNitroPreset({
|
|
78
|
+
extends: "static",
|
|
79
|
+
commands: { deploy: "npx gh-pages --dotfiles -d ./public" },
|
|
80
|
+
prerender: { routes: ["/", "/404.html"] },
|
|
81
|
+
hooks: { async compiled(nitro) {
|
|
82
|
+
await fsp.writeFile(join$1(nitro.options.output.publicDir, ".nojekyll"), "");
|
|
83
|
+
} }
|
|
84
|
+
}, {
|
|
85
|
+
name: "github-pages",
|
|
86
|
+
static: true
|
|
87
|
+
}),
|
|
88
|
+
defineNitroPreset({
|
|
89
|
+
extends: "static",
|
|
90
|
+
prerender: { routes: ["/", "/404.html"] }
|
|
91
|
+
}, {
|
|
92
|
+
name: "gitlab-pages",
|
|
93
|
+
static: true
|
|
94
|
+
})
|
|
118
95
|
];
|
|
119
|
-
|
|
120
|
-
//#endregion
|
|
121
|
-
//#region src/presets/alwaysdata/preset.ts
|
|
122
|
-
const alwaysdata = defineNitroPreset({
|
|
96
|
+
var preset_default$24 = [defineNitroPreset({
|
|
123
97
|
extends: "node-server",
|
|
124
98
|
serveStatic: true,
|
|
125
99
|
commands: { deploy: "rsync -rRt --info=progress2 ./ [account]@ssh-[account].alwaysdata.net:www/my-app" }
|
|
126
|
-
}, { name: "alwaysdata" });
|
|
127
|
-
var preset_default$24 = [alwaysdata];
|
|
128
|
-
|
|
129
|
-
//#endregion
|
|
130
|
-
//#region src/presets/aws-amplify/utils.ts
|
|
100
|
+
}, { name: "alwaysdata" })];
|
|
131
101
|
async function writeAmplifyFiles(nitro) {
|
|
132
102
|
const outDir = nitro.options.output.dir;
|
|
133
103
|
const routes = [];
|
|
134
104
|
let hasWildcardPublicAsset = false;
|
|
135
105
|
if (nitro.options.awsAmplify?.imageOptimization && !nitro.options.static) {
|
|
136
|
-
const { path
|
|
137
|
-
if (path
|
|
138
|
-
path
|
|
106
|
+
const { path, cacheControl } = nitro.options.awsAmplify?.imageOptimization || {};
|
|
107
|
+
if (path) routes.push({
|
|
108
|
+
path,
|
|
139
109
|
target: {
|
|
140
110
|
kind: "ImageOptimization",
|
|
141
111
|
cacheControl
|
|
@@ -188,10 +158,7 @@ async function writeAmplifyFiles(nitro) {
|
|
|
188
158
|
await writeFile(resolve(outDir, "deploy-manifest.json"), JSON.stringify(deployManifest, null, 2));
|
|
189
159
|
if (!nitro.options.static) await writeFile(resolve(outDir, "compute/default/server.js"), `import("./index.mjs")`);
|
|
190
160
|
}
|
|
191
|
-
|
|
192
|
-
//#endregion
|
|
193
|
-
//#region src/presets/aws-amplify/preset.ts
|
|
194
|
-
const awsAmplify = defineNitroPreset({
|
|
161
|
+
var preset_default$23 = [defineNitroPreset({
|
|
195
162
|
entry: "./aws-amplify/runtime/aws-amplify",
|
|
196
163
|
manifest: { deploymentId: process.env.AWS_JOB_ID },
|
|
197
164
|
serveStatic: true,
|
|
@@ -207,34 +174,23 @@ const awsAmplify = defineNitroPreset({
|
|
|
207
174
|
}, {
|
|
208
175
|
name: "aws-amplify",
|
|
209
176
|
stdName: "aws_amplify"
|
|
210
|
-
});
|
|
211
|
-
var preset_default$
|
|
212
|
-
|
|
213
|
-
//#endregion
|
|
214
|
-
//#region src/presets/aws-lambda/preset.ts
|
|
215
|
-
const awsLambda = defineNitroPreset({
|
|
177
|
+
})];
|
|
178
|
+
var preset_default$22 = [defineNitroPreset({
|
|
216
179
|
entry: "./aws-lambda/runtime/aws-lambda",
|
|
217
180
|
awsLambda: { streaming: false },
|
|
218
181
|
hooks: { "rollup:before": (nitro, rollupConfig) => {
|
|
219
182
|
if (nitro.options.awsLambda?.streaming) rollupConfig.input += "-streaming";
|
|
220
183
|
} }
|
|
221
|
-
}, { name: "aws-lambda" });
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
//#region src/presets/_utils/fs.ts
|
|
226
|
-
function prettyPath(p$1, highlight = true) {
|
|
227
|
-
p$1 = relative$1(process.cwd(), p$1);
|
|
228
|
-
return highlight ? colors.cyan(p$1) : p$1;
|
|
184
|
+
}, { name: "aws-lambda" })];
|
|
185
|
+
function prettyPath(p, highlight = true) {
|
|
186
|
+
p = relative$1(process.cwd(), p);
|
|
187
|
+
return highlight ? colors.cyan(p) : p;
|
|
229
188
|
}
|
|
230
189
|
async function writeFile$1(file, contents, log = false) {
|
|
231
190
|
await fsp.mkdir(dirname$1(file), { recursive: true });
|
|
232
191
|
await fsp.writeFile(file, contents, typeof contents === "string" ? "utf8" : void 0);
|
|
233
192
|
if (log) consola$1.info("Generated", prettyPath(file));
|
|
234
193
|
}
|
|
235
|
-
|
|
236
|
-
//#endregion
|
|
237
|
-
//#region src/presets/azure/utils.ts
|
|
238
194
|
async function writeSWARoutes(nitro) {
|
|
239
195
|
const host = { version: "2.0" };
|
|
240
196
|
const supportedNodeVersions = new Set(["20", "22"]);
|
|
@@ -321,10 +277,7 @@ async function writeSWARoutes(nitro) {
|
|
|
321
277
|
await writeFile$1(resolve$1(nitro.options.output.publicDir, relativePrefix ? `${relativePrefix}/index.html` : "index.html"), "");
|
|
322
278
|
}
|
|
323
279
|
}
|
|
324
|
-
|
|
325
|
-
//#endregion
|
|
326
|
-
//#region src/presets/azure/preset.ts
|
|
327
|
-
const azureSWA = defineNitroPreset({
|
|
280
|
+
var preset_default$21 = [defineNitroPreset({
|
|
328
281
|
entry: "./azure/runtime/azure-swa",
|
|
329
282
|
output: {
|
|
330
283
|
serverDir: "{{ output.dir }}/server/functions",
|
|
@@ -337,12 +290,8 @@ const azureSWA = defineNitroPreset({
|
|
|
337
290
|
}, {
|
|
338
291
|
name: "azure-swa",
|
|
339
292
|
stdName: "azure_static"
|
|
340
|
-
});
|
|
341
|
-
var preset_default$
|
|
342
|
-
|
|
343
|
-
//#endregion
|
|
344
|
-
//#region src/presets/bun/preset.ts
|
|
345
|
-
const bun = defineNitroPreset({
|
|
293
|
+
})];
|
|
294
|
+
var preset_default$20 = [defineNitroPreset({
|
|
346
295
|
entry: "./bun/runtime/bun",
|
|
347
296
|
serveStatic: true,
|
|
348
297
|
exportConditions: [
|
|
@@ -352,22 +301,14 @@ const bun = defineNitroPreset({
|
|
|
352
301
|
"default"
|
|
353
302
|
],
|
|
354
303
|
commands: { preview: "bun run ./server/index.mjs" }
|
|
355
|
-
}, { name: "bun" });
|
|
356
|
-
var preset_default$
|
|
357
|
-
|
|
358
|
-
//#endregion
|
|
359
|
-
//#region src/presets/cleavr/preset.ts
|
|
360
|
-
const cleavr = defineNitroPreset({
|
|
304
|
+
}, { name: "bun" })];
|
|
305
|
+
var preset_default$19 = [defineNitroPreset({
|
|
361
306
|
extends: "node-server",
|
|
362
307
|
serveStatic: true
|
|
363
308
|
}, {
|
|
364
309
|
name: "cleavr",
|
|
365
310
|
stdName: "cleavr"
|
|
366
|
-
});
|
|
367
|
-
var preset_default$19 = [cleavr];
|
|
368
|
-
|
|
369
|
-
//#endregion
|
|
370
|
-
//#region src/presets/cloudflare/unenv/node-compat.ts
|
|
311
|
+
})];
|
|
371
312
|
const builtnNodeModules$1 = [
|
|
372
313
|
"node:_http_agent",
|
|
373
314
|
"node:_http_client",
|
|
@@ -419,9 +360,6 @@ const builtnNodeModules$1 = [
|
|
|
419
360
|
"node:util/types",
|
|
420
361
|
"node:zlib"
|
|
421
362
|
];
|
|
422
|
-
|
|
423
|
-
//#endregion
|
|
424
|
-
//#region src/presets/cloudflare/unenv/preset.ts
|
|
425
363
|
const unenvCfNodeCompat = {
|
|
426
364
|
meta: { name: "nitro:cloudflare-node-compat" },
|
|
427
365
|
external: builtnNodeModules$1,
|
|
@@ -443,9 +381,6 @@ const unenvCfExternals = {
|
|
|
443
381
|
"cloudflare:workflows"
|
|
444
382
|
]
|
|
445
383
|
};
|
|
446
|
-
|
|
447
|
-
//#endregion
|
|
448
|
-
//#region src/presets/cloudflare/utils.ts
|
|
449
384
|
async function writeCFRoutes(nitro) {
|
|
450
385
|
const _cfPagesConfig = nitro.options.cloudflare?.pages || {};
|
|
451
386
|
const routes = {
|
|
@@ -472,22 +407,22 @@ async function writeCFRoutes(nitro) {
|
|
|
472
407
|
"_worker.js",
|
|
473
408
|
"_worker.js.map",
|
|
474
409
|
"nitro.json",
|
|
475
|
-
...routes.exclude.map((path
|
|
410
|
+
...routes.exclude.map((path) => withoutLeadingSlash(path.replace(/\/\*$/, "/**")))
|
|
476
411
|
]
|
|
477
412
|
});
|
|
478
413
|
routes.exclude.push(...publicAssetFiles.map((i) => withLeadingSlash(i).replace(/\/index\.html$/, "").replace(/\.html$/, "") || "/").sort(comparePaths));
|
|
479
414
|
routes.exclude.splice(100 - routes.include.length);
|
|
480
415
|
await writeRoutes();
|
|
481
416
|
}
|
|
482
|
-
function comparePaths(a
|
|
483
|
-
return a
|
|
417
|
+
function comparePaths(a, b) {
|
|
418
|
+
return a.split("/").length - b.split("/").length || a.localeCompare(b);
|
|
484
419
|
}
|
|
485
420
|
async function writeCFHeaders(nitro, outdir) {
|
|
486
421
|
const headersPath = join$1(outdir === "public" ? nitro.options.output.publicDir : nitro.options.output.dir, "_headers");
|
|
487
422
|
const contents = [];
|
|
488
|
-
const rules = Object.entries(nitro.options.routeRules).sort((a
|
|
489
|
-
for (const [path
|
|
490
|
-
const headers = [joinURL(nitro.options.baseURL, path
|
|
423
|
+
const rules = Object.entries(nitro.options.routeRules).sort((a, b) => b[0].split(/\/(?!\*)/).length - a[0].split(/\/(?!\*)/).length);
|
|
424
|
+
for (const [path, routeRules] of rules.filter(([_, routeRules]) => routeRules.headers)) {
|
|
425
|
+
const headers = [joinURL(nitro.options.baseURL, path.replace("/**", "/*")), ...Object.entries({ ...routeRules.headers }).map(([header, value]) => ` ${header}: ${value}`)].join("\n");
|
|
491
426
|
contents.push(headers);
|
|
492
427
|
}
|
|
493
428
|
if (existsSync(headersPath)) {
|
|
@@ -504,8 +439,8 @@ async function writeCFHeaders(nitro, outdir) {
|
|
|
504
439
|
async function writeCFPagesRedirects(nitro) {
|
|
505
440
|
const redirectsPath = join$1(nitro.options.output.dir, "_redirects");
|
|
506
441
|
const contents = [existsSync(join$1(nitro.options.output.publicDir, "404.html")) ? `${joinURL(nitro.options.baseURL, "/*")} ${joinURL(nitro.options.baseURL, "/404.html")} 404` : ""];
|
|
507
|
-
const rules = Object.entries(nitro.options.routeRules).sort((a
|
|
508
|
-
for (const [key, routeRules] of rules.filter(([_, routeRules
|
|
442
|
+
const rules = Object.entries(nitro.options.routeRules).sort((a, b) => a[0].split(/\/(?!\*)/).length - b[0].split(/\/(?!\*)/).length);
|
|
443
|
+
for (const [key, routeRules] of rules.filter(([_, routeRules]) => routeRules.redirect)) {
|
|
509
444
|
const code = routeRules.redirect.status;
|
|
510
445
|
const from = joinURL(nitro.options.baseURL, key.replace("/**", "/*"));
|
|
511
446
|
const to = hasProtocol(routeRules.redirect.to, { acceptRelative: true }) ? routeRules.redirect.to : joinURL(nitro.options.baseURL, routeRules.redirect.to);
|
|
@@ -591,9 +526,6 @@ async function generateWorkerName(nitro) {
|
|
|
591
526
|
const subpath = relative(nitro.options.workspaceDir, nitro.options.rootDir);
|
|
592
527
|
return `${gitRepo || pkgName}/${subpath}`.toLowerCase().replace(/[^a-zA-Z0-9-]/g, "-").replace(/-$/, "");
|
|
593
528
|
}
|
|
594
|
-
|
|
595
|
-
//#endregion
|
|
596
|
-
//#region src/presets/cloudflare/dev.ts
|
|
597
529
|
async function cloudflareDevModule(nitro) {
|
|
598
530
|
if (!nitro.options.dev) return;
|
|
599
531
|
nitro.options.unenv.push({
|
|
@@ -635,9 +567,6 @@ async function cloudflareDevModule(nitro) {
|
|
|
635
567
|
extensions: [".mjs", ".ts"]
|
|
636
568
|
}));
|
|
637
569
|
}
|
|
638
|
-
|
|
639
|
-
//#endregion
|
|
640
|
-
//#region src/presets/cloudflare/entry-exports.ts
|
|
641
570
|
const RESOLVE_EXTENSIONS = [
|
|
642
571
|
".ts",
|
|
643
572
|
".js",
|
|
@@ -665,9 +594,6 @@ function resolveExportsEntry(nitro) {
|
|
|
665
594
|
else if (entry && !nitro.options.cloudflare?.exports) nitro.logger.info(`Detected \`${prettyPath$1(entry)}\` as Cloudflare entrypoint.`);
|
|
666
595
|
return entry;
|
|
667
596
|
}
|
|
668
|
-
|
|
669
|
-
//#endregion
|
|
670
|
-
//#region src/presets/cloudflare/preset.ts
|
|
671
597
|
const cloudflarePages = defineNitroPreset({
|
|
672
598
|
extends: "base-worker",
|
|
673
599
|
entry: "./cloudflare/runtime/cloudflare-pages",
|
|
@@ -741,59 +667,54 @@ const cloudflareDev = defineNitroPreset({
|
|
|
741
667
|
compatibilityDate: "2025-07-13",
|
|
742
668
|
dev: true
|
|
743
669
|
});
|
|
744
|
-
const cloudflareModule = defineNitroPreset({
|
|
745
|
-
extends: "base-worker",
|
|
746
|
-
entry: "./cloudflare/runtime/cloudflare-module",
|
|
747
|
-
output: { publicDir: "{{ output.dir }}/public/{{ baseURL }}" },
|
|
748
|
-
exportConditions: ["workerd"],
|
|
749
|
-
minify: false,
|
|
750
|
-
commands: {
|
|
751
|
-
preview: "npx wrangler --cwd ./ dev",
|
|
752
|
-
deploy: "npx wrangler --cwd ./ deploy"
|
|
753
|
-
},
|
|
754
|
-
rollupConfig: { output: {
|
|
755
|
-
format: "esm",
|
|
756
|
-
exports: "named",
|
|
757
|
-
inlineDynamicImports: false
|
|
758
|
-
} },
|
|
759
|
-
wasm: {
|
|
760
|
-
lazy: false,
|
|
761
|
-
esmImport: true
|
|
762
|
-
},
|
|
763
|
-
hooks: {
|
|
764
|
-
"build:before": async (nitro) => {
|
|
765
|
-
nitro.options.unenv.push(unenvCfExternals);
|
|
766
|
-
await enableNodeCompat(nitro);
|
|
767
|
-
await setupEntryExports(nitro);
|
|
768
|
-
},
|
|
769
|
-
async compiled(nitro) {
|
|
770
|
-
await writeWranglerConfig(nitro, "module");
|
|
771
|
-
await writeCFHeaders(nitro, "public");
|
|
772
|
-
await writeFile$1(resolve$1(nitro.options.output.dir, "package.json"), JSON.stringify({
|
|
773
|
-
private: true,
|
|
774
|
-
main: "./server/index.mjs"
|
|
775
|
-
}, null, 2));
|
|
776
|
-
await writeFile$1(resolve$1(nitro.options.output.dir, "package-lock.json"), JSON.stringify({ lockfileVersion: 1 }, null, 2));
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
}, {
|
|
780
|
-
name: "cloudflare-module",
|
|
781
|
-
stdName: "cloudflare_workers"
|
|
782
|
-
});
|
|
783
|
-
const cloudflareDurable = defineNitroPreset({
|
|
784
|
-
extends: "cloudflare-module",
|
|
785
|
-
entry: "./cloudflare/runtime/cloudflare-durable"
|
|
786
|
-
}, { name: "cloudflare-durable" });
|
|
787
670
|
var preset_default$18 = [
|
|
788
671
|
cloudflarePages,
|
|
789
672
|
cloudflarePagesStatic,
|
|
790
|
-
|
|
791
|
-
|
|
673
|
+
defineNitroPreset({
|
|
674
|
+
extends: "base-worker",
|
|
675
|
+
entry: "./cloudflare/runtime/cloudflare-module",
|
|
676
|
+
output: { publicDir: "{{ output.dir }}/public/{{ baseURL }}" },
|
|
677
|
+
exportConditions: ["workerd"],
|
|
678
|
+
minify: false,
|
|
679
|
+
commands: {
|
|
680
|
+
preview: "npx wrangler --cwd ./ dev",
|
|
681
|
+
deploy: "npx wrangler --cwd ./ deploy"
|
|
682
|
+
},
|
|
683
|
+
rollupConfig: { output: {
|
|
684
|
+
format: "esm",
|
|
685
|
+
exports: "named",
|
|
686
|
+
inlineDynamicImports: false
|
|
687
|
+
} },
|
|
688
|
+
wasm: {
|
|
689
|
+
lazy: false,
|
|
690
|
+
esmImport: true
|
|
691
|
+
},
|
|
692
|
+
hooks: {
|
|
693
|
+
"build:before": async (nitro) => {
|
|
694
|
+
nitro.options.unenv.push(unenvCfExternals);
|
|
695
|
+
await enableNodeCompat(nitro);
|
|
696
|
+
await setupEntryExports(nitro);
|
|
697
|
+
},
|
|
698
|
+
async compiled(nitro) {
|
|
699
|
+
await writeWranglerConfig(nitro, "module");
|
|
700
|
+
await writeCFHeaders(nitro, "public");
|
|
701
|
+
await writeFile$1(resolve$1(nitro.options.output.dir, "package.json"), JSON.stringify({
|
|
702
|
+
private: true,
|
|
703
|
+
main: "./server/index.mjs"
|
|
704
|
+
}, null, 2));
|
|
705
|
+
await writeFile$1(resolve$1(nitro.options.output.dir, "package-lock.json"), JSON.stringify({ lockfileVersion: 1 }, null, 2));
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}, {
|
|
709
|
+
name: "cloudflare-module",
|
|
710
|
+
stdName: "cloudflare_workers"
|
|
711
|
+
}),
|
|
712
|
+
defineNitroPreset({
|
|
713
|
+
extends: "cloudflare-module",
|
|
714
|
+
entry: "./cloudflare/runtime/cloudflare-durable"
|
|
715
|
+
}, { name: "cloudflare-durable" }),
|
|
792
716
|
cloudflareDev
|
|
793
717
|
];
|
|
794
|
-
|
|
795
|
-
//#endregion
|
|
796
|
-
//#region src/presets/deno/unenv/node-compat.ts
|
|
797
718
|
const builtnNodeModules = [
|
|
798
719
|
"node:_http_agent",
|
|
799
720
|
"node:_http_common",
|
|
@@ -863,9 +784,6 @@ const builtnNodeModules = [
|
|
|
863
784
|
"node:worker_threads",
|
|
864
785
|
"node:zlib"
|
|
865
786
|
];
|
|
866
|
-
|
|
867
|
-
//#endregion
|
|
868
|
-
//#region src/presets/deno/unenv/preset.ts
|
|
869
787
|
const unenvDeno = {
|
|
870
788
|
meta: { name: "nitro:deno" },
|
|
871
789
|
external: builtnNodeModules.map((m) => `node:${m}`),
|
|
@@ -878,10 +796,7 @@ const unenvDeno = {
|
|
|
878
796
|
Buffer: ["node:buffer", "Buffer"]
|
|
879
797
|
}
|
|
880
798
|
};
|
|
881
|
-
|
|
882
|
-
//#endregion
|
|
883
|
-
//#region src/presets/deno/preset.ts
|
|
884
|
-
const denoDeploy = defineNitroPreset({
|
|
799
|
+
var preset_default$17 = [defineNitroPreset({
|
|
885
800
|
entry: "./deno/runtime/deno-deploy",
|
|
886
801
|
manifest: { deploymentId: process.env.DENO_DEPLOYMENT_ID },
|
|
887
802
|
exportConditions: ["deno"],
|
|
@@ -901,8 +816,7 @@ const denoDeploy = defineNitroPreset({
|
|
|
901
816
|
format: "esm"
|
|
902
817
|
}
|
|
903
818
|
}
|
|
904
|
-
}, { name: "deno-deploy" })
|
|
905
|
-
const denoServer = defineNitroPreset({
|
|
819
|
+
}, { name: "deno-deploy" }), defineNitroPreset({
|
|
906
820
|
entry: "./deno/runtime/deno-server",
|
|
907
821
|
serveStatic: true,
|
|
908
822
|
exportConditions: ["deno"],
|
|
@@ -917,20 +831,12 @@ const denoServer = defineNitroPreset({
|
|
|
917
831
|
}, {
|
|
918
832
|
aliases: ["deno"],
|
|
919
833
|
name: "deno-server"
|
|
920
|
-
});
|
|
921
|
-
var preset_default$
|
|
922
|
-
|
|
923
|
-
//#endregion
|
|
924
|
-
//#region src/presets/digitalocean/preset.ts
|
|
925
|
-
const digitalOcean = defineNitroPreset({
|
|
834
|
+
})];
|
|
835
|
+
var preset_default$16 = [defineNitroPreset({
|
|
926
836
|
extends: "node-server",
|
|
927
837
|
serveStatic: true
|
|
928
|
-
}, { name: "digital-ocean" });
|
|
929
|
-
var preset_default$
|
|
930
|
-
|
|
931
|
-
//#endregion
|
|
932
|
-
//#region src/presets/firebase/preset.ts
|
|
933
|
-
const firebaseAppHosting = defineNitroPreset({
|
|
838
|
+
}, { name: "digital-ocean" })];
|
|
839
|
+
var preset_default$15 = [defineNitroPreset({
|
|
934
840
|
extends: "node-server",
|
|
935
841
|
serveStatic: true,
|
|
936
842
|
hooks: { async compiled(nitro) {
|
|
@@ -953,32 +859,16 @@ const firebaseAppHosting = defineNitroPreset({
|
|
|
953
859
|
}, {
|
|
954
860
|
name: "firebase-app-hosting",
|
|
955
861
|
stdName: "firebase_app_hosting"
|
|
956
|
-
});
|
|
957
|
-
var preset_default$
|
|
958
|
-
|
|
959
|
-
//#endregion
|
|
960
|
-
//#region src/presets/flightcontrol/preset.ts
|
|
961
|
-
const flightControl = defineNitroPreset({
|
|
862
|
+
})];
|
|
863
|
+
var preset_default$14 = [defineNitroPreset({
|
|
962
864
|
extends: "node-server",
|
|
963
865
|
serveStatic: true
|
|
964
|
-
}, { name: "flight-control" });
|
|
965
|
-
var preset_default$
|
|
966
|
-
|
|
967
|
-
//#endregion
|
|
968
|
-
//#region src/presets/genezio/preset.ts
|
|
969
|
-
const genezio = defineNitroPreset({ extends: "aws_lambda" }, { name: "genezio" });
|
|
970
|
-
var preset_default$13 = [genezio];
|
|
971
|
-
|
|
972
|
-
//#endregion
|
|
973
|
-
//#region src/presets/heroku/preset.ts
|
|
974
|
-
const heroku = defineNitroPreset({
|
|
866
|
+
}, { name: "flight-control" })];
|
|
867
|
+
var preset_default$13 = [defineNitroPreset({ extends: "aws_lambda" }, { name: "genezio" })];
|
|
868
|
+
var preset_default$12 = [defineNitroPreset({
|
|
975
869
|
extends: "node-server",
|
|
976
870
|
serveStatic: true
|
|
977
|
-
}, { name: "heroku" });
|
|
978
|
-
var preset_default$12 = [heroku];
|
|
979
|
-
|
|
980
|
-
//#endregion
|
|
981
|
-
//#region src/presets/iis/utils.ts
|
|
871
|
+
}, { name: "heroku" })];
|
|
982
872
|
async function writeIISFiles(nitro) {
|
|
983
873
|
await writeFile$1(resolve$1(nitro.options.output.dir, "web.config"), await iisXmlTemplate(nitro));
|
|
984
874
|
}
|
|
@@ -993,7 +883,7 @@ async function writeIISNodeFiles(nitro) {
|
|
|
993
883
|
`);
|
|
994
884
|
}
|
|
995
885
|
async function iisnodeXmlTemplate(nitro) {
|
|
996
|
-
const path
|
|
886
|
+
const path = resolve$1(nitro.options.rootDir, "web.config");
|
|
997
887
|
const originalString = `<?xml version="1.0" encoding="utf-8"?>
|
|
998
888
|
<!--
|
|
999
889
|
This configuration file is required if iisnode is used to run node processes behind
|
|
@@ -1059,8 +949,8 @@ async function iisnodeXmlTemplate(nitro) {
|
|
|
1059
949
|
</system.webServer>
|
|
1060
950
|
</configuration>
|
|
1061
951
|
`;
|
|
1062
|
-
if (existsSync(path
|
|
1063
|
-
const fileString = await readFile(path
|
|
952
|
+
if (existsSync(path)) {
|
|
953
|
+
const fileString = await readFile(path, "utf8");
|
|
1064
954
|
const originalWebConfig = await parseXmlDoc(originalString);
|
|
1065
955
|
const fileWebConfig = await parseXmlDoc(fileString);
|
|
1066
956
|
if (nitro.options.iis?.mergeConfig && !nitro.options.iis.overrideConfig) return buildNewXmlDoc(defu(fileWebConfig, originalWebConfig));
|
|
@@ -1069,7 +959,7 @@ async function iisnodeXmlTemplate(nitro) {
|
|
|
1069
959
|
return originalString;
|
|
1070
960
|
}
|
|
1071
961
|
async function iisXmlTemplate(nitro) {
|
|
1072
|
-
const path
|
|
962
|
+
const path = resolve$1(nitro.options.rootDir, "web.config");
|
|
1073
963
|
const originalString = `<?xml version="1.0" encoding="UTF-8"?>
|
|
1074
964
|
<configuration>
|
|
1075
965
|
<system.webServer>
|
|
@@ -1085,8 +975,8 @@ async function iisXmlTemplate(nitro) {
|
|
|
1085
975
|
</system.webServer>
|
|
1086
976
|
</configuration>
|
|
1087
977
|
`;
|
|
1088
|
-
if (existsSync(path
|
|
1089
|
-
const fileString = await readFile(path
|
|
978
|
+
if (existsSync(path)) {
|
|
979
|
+
const fileString = await readFile(path, "utf8");
|
|
1090
980
|
const originalWebConfig = await parseXmlDoc(originalString);
|
|
1091
981
|
const fileWebConfig = await parseXmlDoc(fileString);
|
|
1092
982
|
if (nitro.options.iis?.mergeConfig && !nitro.options.iis.overrideConfig) return buildNewXmlDoc(defu(fileWebConfig, originalWebConfig));
|
|
@@ -1108,35 +998,23 @@ async function buildNewXmlDoc(xmlObj) {
|
|
|
1108
998
|
const { Builder } = await import("xml2js");
|
|
1109
999
|
return new Builder().buildObject({ ...xmlObj });
|
|
1110
1000
|
}
|
|
1111
|
-
|
|
1112
|
-
//#endregion
|
|
1113
|
-
//#region src/presets/iis/preset.ts
|
|
1114
|
-
const iisHandler = defineNitroPreset({
|
|
1001
|
+
var preset_default$11 = [defineNitroPreset({
|
|
1115
1002
|
extends: "node-server",
|
|
1116
1003
|
serveStatic: true,
|
|
1117
1004
|
hooks: { async compiled(nitro) {
|
|
1118
1005
|
await writeIISFiles(nitro);
|
|
1119
1006
|
} }
|
|
1120
|
-
}, { name: "iis-handler" })
|
|
1121
|
-
const iisNode = defineNitroPreset({
|
|
1007
|
+
}, { name: "iis-handler" }), defineNitroPreset({
|
|
1122
1008
|
extends: "node-server",
|
|
1123
1009
|
serveStatic: true,
|
|
1124
1010
|
hooks: { async compiled(nitro) {
|
|
1125
1011
|
await writeIISNodeFiles(nitro);
|
|
1126
1012
|
} }
|
|
1127
|
-
}, { name: "iis-node" });
|
|
1128
|
-
var preset_default$
|
|
1129
|
-
|
|
1130
|
-
//#endregion
|
|
1131
|
-
//#region src/presets/koyeb/preset.ts
|
|
1132
|
-
const koyeb = defineNitroPreset({
|
|
1013
|
+
}, { name: "iis-node" })];
|
|
1014
|
+
var preset_default$10 = [defineNitroPreset({
|
|
1133
1015
|
extends: "node-server",
|
|
1134
1016
|
serveStatic: true
|
|
1135
|
-
}, { name: "koyeb" });
|
|
1136
|
-
var preset_default$10 = [koyeb];
|
|
1137
|
-
|
|
1138
|
-
//#endregion
|
|
1139
|
-
//#region src/presets/netlify/utils.ts
|
|
1017
|
+
}, { name: "koyeb" })];
|
|
1140
1018
|
async function writeRedirects(nitro) {
|
|
1141
1019
|
const redirectsPath = join$1(nitro.options.output.publicDir, "_redirects");
|
|
1142
1020
|
let contents = "";
|
|
@@ -1144,8 +1022,8 @@ async function writeRedirects(nitro) {
|
|
|
1144
1022
|
const staticFallback = existsSync(join$1(nitro.options.output.publicDir, "404.html")) ? "/* /404.html 404" : "";
|
|
1145
1023
|
contents += staticFallback;
|
|
1146
1024
|
}
|
|
1147
|
-
const rules = Object.entries(nitro.options.routeRules).sort((a
|
|
1148
|
-
for (const [key, routeRules] of rules.filter(([_, routeRules
|
|
1025
|
+
const rules = Object.entries(nitro.options.routeRules).sort((a, b) => a[0].split(/\/(?!\*)/).length - b[0].split(/\/(?!\*)/).length);
|
|
1026
|
+
for (const [key, routeRules] of rules.filter(([_, routeRules]) => routeRules.redirect)) {
|
|
1149
1027
|
let code = routeRules.redirect.status;
|
|
1150
1028
|
if (code === 307) code = 302;
|
|
1151
1029
|
if (code === 308) code = 301;
|
|
@@ -1165,9 +1043,9 @@ async function writeRedirects(nitro) {
|
|
|
1165
1043
|
async function writeHeaders(nitro) {
|
|
1166
1044
|
const headersPath = join$1(nitro.options.output.publicDir, "_headers");
|
|
1167
1045
|
let contents = "";
|
|
1168
|
-
const rules = Object.entries(nitro.options.routeRules).sort((a
|
|
1169
|
-
for (const [path
|
|
1170
|
-
const headers = [path
|
|
1046
|
+
const rules = Object.entries(nitro.options.routeRules).sort((a, b) => b[0].split(/\/(?!\*)/).length - a[0].split(/\/(?!\*)/).length);
|
|
1047
|
+
for (const [path, routeRules] of rules.filter(([_, routeRules]) => routeRules.headers)) {
|
|
1048
|
+
const headers = [path.replace("/**", "/*"), ...Object.entries({ ...routeRules.headers }).map(([header, value]) => ` ${header}: ${value}`)].join("\n");
|
|
1171
1049
|
contents += headers + "\n";
|
|
1172
1050
|
}
|
|
1173
1051
|
if (existsSync(headersPath)) {
|
|
@@ -1182,7 +1060,7 @@ async function writeHeaders(nitro) {
|
|
|
1182
1060
|
await promises.writeFile(headersPath, contents);
|
|
1183
1061
|
}
|
|
1184
1062
|
function getStaticPaths(publicAssets, baseURL) {
|
|
1185
|
-
return ["/.netlify/*", ...publicAssets.filter((a
|
|
1063
|
+
return ["/.netlify/*", ...publicAssets.filter((a) => a.fallthrough !== true && a.baseURL && a.baseURL !== "/").map((a) => joinURL(baseURL, a.baseURL, "*"))];
|
|
1186
1064
|
}
|
|
1187
1065
|
function generateNetlifyFunction(nitro) {
|
|
1188
1066
|
return `
|
|
@@ -1201,95 +1079,86 @@ export const config = {
|
|
|
1201
1079
|
function getGeneratorString(nitro) {
|
|
1202
1080
|
return `${nitro.options.framework.name}@${nitro.options.framework.version}`;
|
|
1203
1081
|
}
|
|
1204
|
-
|
|
1205
|
-
//#endregion
|
|
1206
|
-
//#region src/presets/netlify/preset.ts
|
|
1207
|
-
const netlify = defineNitroPreset({
|
|
1208
|
-
entry: "./netlify/runtime/netlify",
|
|
1209
|
-
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1210
|
-
output: {
|
|
1211
|
-
dir: "{{ rootDir }}/.netlify/functions-internal",
|
|
1212
|
-
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1213
|
-
},
|
|
1214
|
-
prerender: { autoSubfolderIndex: false },
|
|
1215
|
-
rollupConfig: { output: { entryFileNames: "main.mjs" } },
|
|
1216
|
-
hooks: { async compiled(nitro) {
|
|
1217
|
-
await writeHeaders(nitro);
|
|
1218
|
-
await writeRedirects(nitro);
|
|
1219
|
-
await promises.writeFile(join$1(nitro.options.output.dir, "server", "server.mjs"), generateNetlifyFunction(nitro));
|
|
1220
|
-
if (nitro.options.netlify?.images) {
|
|
1221
|
-
nitro.options.netlify.config ||= {};
|
|
1222
|
-
nitro.options.netlify.config.images ||= nitro.options.netlify?.images;
|
|
1223
|
-
}
|
|
1224
|
-
if (Object.keys(nitro.options.netlify?.config || {}).length > 0) {
|
|
1225
|
-
const configPath = join$1(nitro.options.output.dir, "../deploy/v1/config.json");
|
|
1226
|
-
await promises.mkdir(dirname$1(configPath), { recursive: true });
|
|
1227
|
-
await promises.writeFile(configPath, JSON.stringify(nitro.options.netlify?.config), "utf8");
|
|
1228
|
-
}
|
|
1229
|
-
} }
|
|
1230
|
-
}, {
|
|
1231
|
-
name: "netlify",
|
|
1232
|
-
stdName: "netlify"
|
|
1233
|
-
});
|
|
1234
|
-
const netlifyEdge = defineNitroPreset({
|
|
1235
|
-
extends: "base-worker",
|
|
1236
|
-
entry: "./netlify/runtime/netlify-edge",
|
|
1237
|
-
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1238
|
-
exportConditions: ["netlify"],
|
|
1239
|
-
output: {
|
|
1240
|
-
serverDir: "{{ rootDir }}/.netlify/edge-functions/server",
|
|
1241
|
-
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1242
|
-
},
|
|
1243
|
-
prerender: { autoSubfolderIndex: false },
|
|
1244
|
-
rollupConfig: { output: {
|
|
1245
|
-
entryFileNames: "server.js",
|
|
1246
|
-
format: "esm"
|
|
1247
|
-
} },
|
|
1248
|
-
unenv: unenvDeno,
|
|
1249
|
-
hooks: { async compiled(nitro) {
|
|
1250
|
-
await writeHeaders(nitro);
|
|
1251
|
-
await writeRedirects(nitro);
|
|
1252
|
-
const manifest = {
|
|
1253
|
-
version: 1,
|
|
1254
|
-
functions: [{
|
|
1255
|
-
path: "/*",
|
|
1256
|
-
excludedPath: getStaticPaths(nitro.options.publicAssets, nitro.options.baseURL),
|
|
1257
|
-
name: "edge server handler",
|
|
1258
|
-
function: "server",
|
|
1259
|
-
generator: getGeneratorString(nitro)
|
|
1260
|
-
}]
|
|
1261
|
-
};
|
|
1262
|
-
const manifestPath = join$1(nitro.options.rootDir, ".netlify/edge-functions/manifest.json");
|
|
1263
|
-
await promises.mkdir(dirname$1(manifestPath), { recursive: true });
|
|
1264
|
-
await promises.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
|
|
1265
|
-
} }
|
|
1266
|
-
}, { name: "netlify-edge" });
|
|
1267
|
-
const netlifyStatic = defineNitroPreset({
|
|
1268
|
-
extends: "static",
|
|
1269
|
-
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1270
|
-
output: {
|
|
1271
|
-
dir: "{{ rootDir }}/dist",
|
|
1272
|
-
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1273
|
-
},
|
|
1274
|
-
prerender: { autoSubfolderIndex: false },
|
|
1275
|
-
commands: { preview: "npx serve ./" },
|
|
1276
|
-
hooks: { async compiled(nitro) {
|
|
1277
|
-
await writeHeaders(nitro);
|
|
1278
|
-
await writeRedirects(nitro);
|
|
1279
|
-
} }
|
|
1280
|
-
}, {
|
|
1281
|
-
name: "netlify-static",
|
|
1282
|
-
stdName: "netlify",
|
|
1283
|
-
static: true
|
|
1284
|
-
});
|
|
1285
1082
|
var preset_default$9 = [
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1083
|
+
defineNitroPreset({
|
|
1084
|
+
entry: "./netlify/runtime/netlify",
|
|
1085
|
+
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1086
|
+
output: {
|
|
1087
|
+
dir: "{{ rootDir }}/.netlify/functions-internal",
|
|
1088
|
+
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1089
|
+
},
|
|
1090
|
+
prerender: { autoSubfolderIndex: false },
|
|
1091
|
+
rollupConfig: { output: { entryFileNames: "main.mjs" } },
|
|
1092
|
+
hooks: { async compiled(nitro) {
|
|
1093
|
+
await writeHeaders(nitro);
|
|
1094
|
+
await writeRedirects(nitro);
|
|
1095
|
+
await promises.writeFile(join$1(nitro.options.output.dir, "server", "server.mjs"), generateNetlifyFunction(nitro));
|
|
1096
|
+
if (nitro.options.netlify?.images) {
|
|
1097
|
+
nitro.options.netlify.config ||= {};
|
|
1098
|
+
nitro.options.netlify.config.images ||= nitro.options.netlify?.images;
|
|
1099
|
+
}
|
|
1100
|
+
if (Object.keys(nitro.options.netlify?.config || {}).length > 0) {
|
|
1101
|
+
const configPath = join$1(nitro.options.output.dir, "../deploy/v1/config.json");
|
|
1102
|
+
await promises.mkdir(dirname$1(configPath), { recursive: true });
|
|
1103
|
+
await promises.writeFile(configPath, JSON.stringify(nitro.options.netlify?.config), "utf8");
|
|
1104
|
+
}
|
|
1105
|
+
} }
|
|
1106
|
+
}, {
|
|
1107
|
+
name: "netlify",
|
|
1108
|
+
stdName: "netlify"
|
|
1109
|
+
}),
|
|
1110
|
+
defineNitroPreset({
|
|
1111
|
+
extends: "base-worker",
|
|
1112
|
+
entry: "./netlify/runtime/netlify-edge",
|
|
1113
|
+
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1114
|
+
exportConditions: ["netlify"],
|
|
1115
|
+
output: {
|
|
1116
|
+
serverDir: "{{ rootDir }}/.netlify/edge-functions/server",
|
|
1117
|
+
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1118
|
+
},
|
|
1119
|
+
prerender: { autoSubfolderIndex: false },
|
|
1120
|
+
rollupConfig: { output: {
|
|
1121
|
+
entryFileNames: "server.js",
|
|
1122
|
+
format: "esm"
|
|
1123
|
+
} },
|
|
1124
|
+
unenv: unenvDeno,
|
|
1125
|
+
hooks: { async compiled(nitro) {
|
|
1126
|
+
await writeHeaders(nitro);
|
|
1127
|
+
await writeRedirects(nitro);
|
|
1128
|
+
const manifest = {
|
|
1129
|
+
version: 1,
|
|
1130
|
+
functions: [{
|
|
1131
|
+
path: "/*",
|
|
1132
|
+
excludedPath: getStaticPaths(nitro.options.publicAssets, nitro.options.baseURL),
|
|
1133
|
+
name: "edge server handler",
|
|
1134
|
+
function: "server",
|
|
1135
|
+
generator: getGeneratorString(nitro)
|
|
1136
|
+
}]
|
|
1137
|
+
};
|
|
1138
|
+
const manifestPath = join$1(nitro.options.rootDir, ".netlify/edge-functions/manifest.json");
|
|
1139
|
+
await promises.mkdir(dirname$1(manifestPath), { recursive: true });
|
|
1140
|
+
await promises.writeFile(manifestPath, JSON.stringify(manifest, null, 2));
|
|
1141
|
+
} }
|
|
1142
|
+
}, { name: "netlify-edge" }),
|
|
1143
|
+
defineNitroPreset({
|
|
1144
|
+
extends: "static",
|
|
1145
|
+
manifest: { deploymentId: process.env.DEPLOY_ID },
|
|
1146
|
+
output: {
|
|
1147
|
+
dir: "{{ rootDir }}/dist",
|
|
1148
|
+
publicDir: "{{ rootDir }}/dist/{{ baseURL }}"
|
|
1149
|
+
},
|
|
1150
|
+
prerender: { autoSubfolderIndex: false },
|
|
1151
|
+
commands: { preview: "npx serve ./" },
|
|
1152
|
+
hooks: { async compiled(nitro) {
|
|
1153
|
+
await writeHeaders(nitro);
|
|
1154
|
+
await writeRedirects(nitro);
|
|
1155
|
+
} }
|
|
1156
|
+
}, {
|
|
1157
|
+
name: "netlify-static",
|
|
1158
|
+
stdName: "netlify",
|
|
1159
|
+
static: true
|
|
1160
|
+
})
|
|
1289
1161
|
];
|
|
1290
|
-
|
|
1291
|
-
//#endregion
|
|
1292
|
-
//#region src/presets/node/cluster.ts
|
|
1293
1162
|
const nodeCluster = defineNitroPreset({
|
|
1294
1163
|
extends: "node-server",
|
|
1295
1164
|
serveStatic: true,
|
|
@@ -1321,43 +1190,27 @@ if (cluster.isPrimary) {
|
|
|
1321
1190
|
}
|
|
1322
1191
|
`;
|
|
1323
1192
|
}
|
|
1324
|
-
|
|
1325
|
-
//#endregion
|
|
1326
|
-
//#region src/presets/node/preset.ts
|
|
1327
|
-
const nodeServer = defineNitroPreset({
|
|
1328
|
-
entry: "./node/runtime/node-server",
|
|
1329
|
-
serveStatic: true,
|
|
1330
|
-
commands: { preview: "node ./server/index.mjs" }
|
|
1331
|
-
}, {
|
|
1332
|
-
name: "node-server",
|
|
1333
|
-
aliases: ["node"]
|
|
1334
|
-
});
|
|
1335
|
-
const nodeMiddleware = defineNitroPreset({ entry: "./node/runtime/node-middleware" }, { name: "node-middleware" });
|
|
1336
1193
|
var preset_default$8 = [
|
|
1337
|
-
|
|
1194
|
+
defineNitroPreset({
|
|
1195
|
+
entry: "./node/runtime/node-server",
|
|
1196
|
+
serveStatic: true,
|
|
1197
|
+
commands: { preview: "node ./server/index.mjs" }
|
|
1198
|
+
}, {
|
|
1199
|
+
name: "node-server",
|
|
1200
|
+
aliases: ["node"]
|
|
1201
|
+
}),
|
|
1338
1202
|
nodeCluster,
|
|
1339
|
-
|
|
1203
|
+
defineNitroPreset({ entry: "./node/runtime/node-middleware" }, { name: "node-middleware" })
|
|
1340
1204
|
];
|
|
1341
|
-
|
|
1342
|
-
//#endregion
|
|
1343
|
-
//#region src/presets/platform.sh/preset.ts
|
|
1344
|
-
const platformSh = defineNitroPreset({
|
|
1205
|
+
var preset_default$7 = [defineNitroPreset({
|
|
1345
1206
|
extends: "node-server",
|
|
1346
1207
|
serveStatic: true
|
|
1347
|
-
}, { name: "platform-sh" });
|
|
1348
|
-
var preset_default$
|
|
1349
|
-
|
|
1350
|
-
//#endregion
|
|
1351
|
-
//#region src/presets/render.com/preset.ts
|
|
1352
|
-
const renderCom = defineNitroPreset({
|
|
1208
|
+
}, { name: "platform-sh" })];
|
|
1209
|
+
var preset_default$6 = [defineNitroPreset({
|
|
1353
1210
|
extends: "node-server",
|
|
1354
1211
|
serveStatic: true
|
|
1355
|
-
}, { name: "render-com" });
|
|
1356
|
-
var preset_default$
|
|
1357
|
-
|
|
1358
|
-
//#endregion
|
|
1359
|
-
//#region src/presets/standard/preset.ts
|
|
1360
|
-
const standard = defineNitroPreset({
|
|
1212
|
+
}, { name: "render-com" })];
|
|
1213
|
+
var preset_default$5 = [defineNitroPreset({
|
|
1361
1214
|
entry: "./standard/runtime/server",
|
|
1362
1215
|
serveStatic: false,
|
|
1363
1216
|
output: { publicDir: "{{ output.dir }}/public/{{ baseURL }}" },
|
|
@@ -1369,12 +1222,8 @@ const standard = defineNitroPreset({
|
|
|
1369
1222
|
"srvx/node": "srvx/node",
|
|
1370
1223
|
"srvx/generic": "srvx/generic"
|
|
1371
1224
|
}
|
|
1372
|
-
}, { name: "standard" });
|
|
1373
|
-
var preset_default$
|
|
1374
|
-
|
|
1375
|
-
//#endregion
|
|
1376
|
-
//#region src/presets/stormkit/preset.ts
|
|
1377
|
-
const stormkit = defineNitroPreset({
|
|
1225
|
+
}, { name: "standard" })];
|
|
1226
|
+
var preset_default$4 = [defineNitroPreset({
|
|
1378
1227
|
entry: "./stormkit/runtime/stormkit",
|
|
1379
1228
|
output: {
|
|
1380
1229
|
dir: "{{ rootDir }}/.stormkit",
|
|
@@ -1383,15 +1232,8 @@ const stormkit = defineNitroPreset({
|
|
|
1383
1232
|
}, {
|
|
1384
1233
|
name: "stormkit",
|
|
1385
1234
|
stdName: "stormkit"
|
|
1386
|
-
});
|
|
1387
|
-
var preset_default$4 = [stormkit];
|
|
1388
|
-
|
|
1389
|
-
//#endregion
|
|
1390
|
-
//#region src/presets/vercel/runtime/isr.ts
|
|
1235
|
+
})];
|
|
1391
1236
|
const ISR_URL_PARAM = "__isr_route";
|
|
1392
|
-
|
|
1393
|
-
//#endregion
|
|
1394
|
-
//#region src/presets/vercel/utils.ts
|
|
1395
1237
|
const SUPPORTED_NODE_VERSIONS = [
|
|
1396
1238
|
20,
|
|
1397
1239
|
22,
|
|
@@ -1426,7 +1268,7 @@ async function generateFunctionFiles(nitro) {
|
|
|
1426
1268
|
await writePrerenderConfig(funcPrefix + ".prerender-config.json", value.isr, nitro.options.vercel?.config?.bypassToken);
|
|
1427
1269
|
}
|
|
1428
1270
|
if (o11Routes.length === 0) return;
|
|
1429
|
-
const _getRouteRules = (path
|
|
1271
|
+
const _getRouteRules = (path) => defu({}, ...nitro.routing.routeRules.matchAll("", path).reverse());
|
|
1430
1272
|
for (const route of o11Routes) {
|
|
1431
1273
|
if (_getRouteRules(route.src).isr) continue;
|
|
1432
1274
|
const funcPrefix = resolve$1(nitro.options.output.serverDir, "..", route.dest);
|
|
@@ -1440,13 +1282,13 @@ async function generateStaticFiles(nitro) {
|
|
|
1440
1282
|
await writeFile$1(buildConfigPath, JSON.stringify(buildConfig, null, 2));
|
|
1441
1283
|
}
|
|
1442
1284
|
function generateBuildConfig(nitro, o11Routes) {
|
|
1443
|
-
const rules = Object.entries(nitro.options.routeRules).sort((a
|
|
1285
|
+
const rules = Object.entries(nitro.options.routeRules).sort((a, b) => b[0].split(/\/(?!\*)/).length - a[0].split(/\/(?!\*)/).length);
|
|
1444
1286
|
const config = defu(nitro.options.vercel?.config, {
|
|
1445
1287
|
version: 3,
|
|
1446
1288
|
overrides: { ...Object.fromEntries((nitro._prerenderedRoutes?.filter((r) => r.fileName !== r.route) || []).map(({ route, fileName }) => [withoutLeadingSlash(fileName), { path: route.replace(/^\//, "") }])) },
|
|
1447
1289
|
routes: [
|
|
1448
|
-
...rules.filter(([_, routeRules]) => routeRules.redirect || routeRules.headers).map(([path
|
|
1449
|
-
let route = { src: path
|
|
1290
|
+
...rules.filter(([_, routeRules]) => routeRules.redirect || routeRules.headers).map(([path, routeRules]) => {
|
|
1291
|
+
let route = { src: path.replace("/**", "/(.*)") };
|
|
1450
1292
|
if (routeRules.redirect) route = defu(route, {
|
|
1451
1293
|
status: routeRules.redirect.status,
|
|
1452
1294
|
headers: { Location: routeRules.redirect.to.replace("/**", "/$1") }
|
|
@@ -1518,7 +1360,7 @@ async function resolveVercelRuntime(nitro) {
|
|
|
1518
1360
|
if ((await readVercelConfig(nitro.options.rootDir)).bunVersion || "Bun" in globalThis) runtime = "bun1.x";
|
|
1519
1361
|
else {
|
|
1520
1362
|
const systemNodeVersion = getSystemNodeVersion();
|
|
1521
|
-
runtime = `nodejs${SUPPORTED_NODE_VERSIONS.find((version
|
|
1363
|
+
runtime = `nodejs${SUPPORTED_NODE_VERSIONS.find((version) => version >= systemNodeVersion) ?? SUPPORTED_NODE_VERSIONS.at(-1)}.x`;
|
|
1522
1364
|
}
|
|
1523
1365
|
nitro.options.vercel ??= {};
|
|
1524
1366
|
nitro.options.vercel.functions ??= {};
|
|
@@ -1534,7 +1376,7 @@ function _hasProp(obj, prop) {
|
|
|
1534
1376
|
}
|
|
1535
1377
|
function getObservabilityRoutes(nitro) {
|
|
1536
1378
|
if ((nitro.options.compatibilityDate.vercel || nitro.options.compatibilityDate.default) < "2025-07-15") return [];
|
|
1537
|
-
const routePatterns = [...new Set([...nitro.options.ssrRoutes || [], ...[...nitro.scannedHandlers, ...nitro.options.handlers].filter((h
|
|
1379
|
+
const routePatterns = [...new Set([...nitro.options.ssrRoutes || [], ...[...nitro.scannedHandlers, ...nitro.options.handlers].filter((h) => !h.middleware && h.route).map((h) => h.route)])];
|
|
1538
1380
|
const staticRoutes = [];
|
|
1539
1381
|
const dynamicRoutes = [];
|
|
1540
1382
|
const catchAllRoutes = [];
|
|
@@ -1548,7 +1390,7 @@ function getObservabilityRoutes(nitro) {
|
|
|
1548
1390
|
];
|
|
1549
1391
|
}
|
|
1550
1392
|
function normalizeRoutes(routes) {
|
|
1551
|
-
return routes.sort((a
|
|
1393
|
+
return routes.sort((a, b) => b.localeCompare(a)).map((route) => ({
|
|
1552
1394
|
src: normalizeRouteSrc(route),
|
|
1553
1395
|
dest: normalizeRouteDest(route)
|
|
1554
1396
|
}));
|
|
@@ -1587,10 +1429,7 @@ async function writePrerenderConfig(filename, isrConfig, bypassToken) {
|
|
|
1587
1429
|
if (prerenderConfig.allowQuery && !prerenderConfig.allowQuery.includes(ISR_URL_PARAM)) prerenderConfig.allowQuery.push(ISR_URL_PARAM);
|
|
1588
1430
|
await writeFile$1(filename, JSON.stringify(prerenderConfig, null, 2));
|
|
1589
1431
|
}
|
|
1590
|
-
|
|
1591
|
-
//#endregion
|
|
1592
|
-
//#region src/presets/vercel/preset.ts
|
|
1593
|
-
const vercel = defineNitroPreset({
|
|
1432
|
+
var preset_default$3 = [defineNitroPreset({
|
|
1594
1433
|
entry: "./vercel/runtime/vercel.{format}",
|
|
1595
1434
|
manifest: { deploymentId: process.env.VERCEL_DEPLOYMENT_ID },
|
|
1596
1435
|
vercel: { skewProtection: !!process.env.VERCEL_SKEW_PROTECTION_ENABLED },
|
|
@@ -1610,7 +1449,7 @@ const vercel = defineNitroPreset({
|
|
|
1610
1449
|
if (runtime.startsWith("bun") && !nitro.options.exportConditions.includes("bun")) nitro.options.exportConditions.push("bun");
|
|
1611
1450
|
logger.info(`Using \`${runtime}\` runtime.`);
|
|
1612
1451
|
let serverFormat = nitro.options.vercel?.entryFormat;
|
|
1613
|
-
if (!serverFormat) serverFormat = nitro.routing.routes.routes.flatMap((r) => r.data).some((h
|
|
1452
|
+
if (!serverFormat) serverFormat = nitro.routing.routes.routes.flatMap((r) => r.data).some((h) => h.format === "node") ? "node" : "web";
|
|
1614
1453
|
logger.info(`Using \`${serverFormat}\` entry format.`);
|
|
1615
1454
|
nitro.options.entry = nitro.options.entry.replace("{format}", serverFormat);
|
|
1616
1455
|
},
|
|
@@ -1624,8 +1463,7 @@ const vercel = defineNitroPreset({
|
|
|
1624
1463
|
}, {
|
|
1625
1464
|
name: "vercel",
|
|
1626
1465
|
stdName: "vercel"
|
|
1627
|
-
})
|
|
1628
|
-
const vercelStatic = defineNitroPreset({
|
|
1466
|
+
}), defineNitroPreset({
|
|
1629
1467
|
extends: "static",
|
|
1630
1468
|
manifest: { deploymentId: process.env.VERCEL_DEPLOYMENT_ID },
|
|
1631
1469
|
vercel: { skewProtection: !!process.env.VERCEL_SKEW_PROTECTION_ENABLED },
|
|
@@ -1646,24 +1484,16 @@ const vercelStatic = defineNitroPreset({
|
|
|
1646
1484
|
name: "vercel-static",
|
|
1647
1485
|
stdName: "vercel",
|
|
1648
1486
|
static: true
|
|
1649
|
-
});
|
|
1650
|
-
var preset_default$
|
|
1651
|
-
|
|
1652
|
-
//#endregion
|
|
1653
|
-
//#region src/presets/winterjs/preset.ts
|
|
1654
|
-
const winterjs = defineNitroPreset({
|
|
1487
|
+
})];
|
|
1488
|
+
var preset_default$2 = [defineNitroPreset({
|
|
1655
1489
|
extends: "base-worker",
|
|
1656
1490
|
entry: "./winterjs/runtime/winterjs",
|
|
1657
1491
|
minify: false,
|
|
1658
1492
|
serveStatic: "inline",
|
|
1659
1493
|
wasm: { lazy: true },
|
|
1660
1494
|
commands: { preview: "wasmer run wasmer/winterjs --forward-host-env --net --mapdir app:./ app/server/index.mjs" }
|
|
1661
|
-
}, { name: "winterjs" });
|
|
1662
|
-
var preset_default$
|
|
1663
|
-
|
|
1664
|
-
//#endregion
|
|
1665
|
-
//#region src/presets/zeabur/preset.ts
|
|
1666
|
-
const zeabur = defineNitroPreset({
|
|
1495
|
+
}, { name: "winterjs" })];
|
|
1496
|
+
var preset_default$1 = [defineNitroPreset({
|
|
1667
1497
|
entry: "./zeabur/runtime/zeabur",
|
|
1668
1498
|
output: {
|
|
1669
1499
|
dir: "{{ rootDir }}/.zeabur/output",
|
|
@@ -1689,8 +1519,7 @@ const zeabur = defineNitroPreset({
|
|
|
1689
1519
|
}, {
|
|
1690
1520
|
name: "zeabur",
|
|
1691
1521
|
stdName: "zeabur"
|
|
1692
|
-
})
|
|
1693
|
-
const zeaburStatic = defineNitroPreset({
|
|
1522
|
+
}), defineNitroPreset({
|
|
1694
1523
|
extends: "static",
|
|
1695
1524
|
output: {
|
|
1696
1525
|
dir: "{{ rootDir }}/.zeabur/output",
|
|
@@ -1700,16 +1529,11 @@ const zeaburStatic = defineNitroPreset({
|
|
|
1700
1529
|
}, {
|
|
1701
1530
|
name: "zeabur-static",
|
|
1702
1531
|
static: true
|
|
1703
|
-
});
|
|
1704
|
-
var preset_default
|
|
1705
|
-
|
|
1706
|
-
//#endregion
|
|
1707
|
-
//#region src/presets/zerops/preset.ts
|
|
1708
|
-
const zerops = defineNitroPreset({
|
|
1532
|
+
})];
|
|
1533
|
+
var preset_default = [defineNitroPreset({
|
|
1709
1534
|
extends: "node-server",
|
|
1710
1535
|
serveStatic: true
|
|
1711
|
-
}, { name: "zerops" })
|
|
1712
|
-
const zeropsStatic = defineNitroPreset({
|
|
1536
|
+
}, { name: "zerops" }), defineNitroPreset({
|
|
1713
1537
|
extends: "static",
|
|
1714
1538
|
output: {
|
|
1715
1539
|
dir: "{{ rootDir }}/.zerops/output",
|
|
@@ -1718,11 +1542,7 @@ const zeropsStatic = defineNitroPreset({
|
|
|
1718
1542
|
}, {
|
|
1719
1543
|
name: "zerops-static",
|
|
1720
1544
|
static: true
|
|
1721
|
-
});
|
|
1722
|
-
var preset_default = [zerops, zeropsStatic];
|
|
1723
|
-
|
|
1724
|
-
//#endregion
|
|
1725
|
-
//#region src/presets/_all.gen.ts
|
|
1545
|
+
})];
|
|
1726
1546
|
var _all_gen_default = [
|
|
1727
1547
|
...preset_default$26,
|
|
1728
1548
|
...preset_default$25,
|
|
@@ -1752,9 +1572,6 @@ var _all_gen_default = [
|
|
|
1752
1572
|
...preset_default$1,
|
|
1753
1573
|
...preset_default
|
|
1754
1574
|
];
|
|
1755
|
-
|
|
1756
|
-
//#endregion
|
|
1757
|
-
//#region src/presets/_resolve.ts
|
|
1758
1575
|
const _stdProviderMap = {
|
|
1759
1576
|
aws_amplify: "aws",
|
|
1760
1577
|
azure_static: "azure",
|
|
@@ -1764,23 +1581,23 @@ async function resolvePreset(name, opts = {}) {
|
|
|
1764
1581
|
if (name === ".") return;
|
|
1765
1582
|
const _name = kebabCase(name) || p;
|
|
1766
1583
|
const _compatDates = opts.compatibilityDate ? resolveCompatibilityDatesFromEnv(opts.compatibilityDate) : false;
|
|
1767
|
-
const matches = _all_gen_default.filter((preset
|
|
1584
|
+
const matches = _all_gen_default.filter((preset) => {
|
|
1768
1585
|
if (![
|
|
1769
|
-
preset
|
|
1770
|
-
preset
|
|
1771
|
-
...preset
|
|
1586
|
+
preset._meta.name,
|
|
1587
|
+
preset._meta.stdName,
|
|
1588
|
+
...preset._meta.aliases || []
|
|
1772
1589
|
].filter(Boolean).includes(_name)) return false;
|
|
1773
|
-
if (opts.dev && !preset
|
|
1590
|
+
if (opts.dev && !preset._meta.dev || !opts.dev && preset._meta.dev) return false;
|
|
1774
1591
|
if (_compatDates) {
|
|
1775
|
-
const _date = _compatDates[_stdProviderMap[preset
|
|
1776
|
-
if (_date && preset
|
|
1592
|
+
const _date = _compatDates[_stdProviderMap[preset._meta.stdName]] || _compatDates[preset._meta.stdName] || _compatDates[preset._meta.name] || _compatDates.default;
|
|
1593
|
+
if (_date && preset._meta.compatibilityDate && new Date(preset._meta.compatibilityDate) > new Date(_date)) return false;
|
|
1777
1594
|
}
|
|
1778
1595
|
return true;
|
|
1779
|
-
}).sort((a
|
|
1780
|
-
const aDate = new Date(a
|
|
1596
|
+
}).sort((a, b) => {
|
|
1597
|
+
const aDate = new Date(a._meta.compatibilityDate || 0);
|
|
1781
1598
|
return new Date(b._meta.compatibilityDate || 0) > aDate ? 1 : -1;
|
|
1782
1599
|
});
|
|
1783
|
-
const preset = matches.find((p
|
|
1600
|
+
const preset = matches.find((p) => (p._meta.static || false) === (opts?.static || false)) || matches[0];
|
|
1784
1601
|
if (typeof preset === "function") return preset();
|
|
1785
1602
|
if (!name && !preset) {
|
|
1786
1603
|
if (opts?.static) return resolvePreset("static", opts);
|
|
@@ -1790,7 +1607,7 @@ async function resolvePreset(name, opts = {}) {
|
|
|
1790
1607
|
}[K] || "node", opts);
|
|
1791
1608
|
}
|
|
1792
1609
|
if (name && !preset) {
|
|
1793
|
-
const options = _all_gen_default.filter((p
|
|
1610
|
+
const options = _all_gen_default.filter((p) => p._meta.name === name || p._meta.stdName === name || p._meta.aliases?.includes(name)).sort((a, b) => (a._meta.compatibilityDate || 0) > (b._meta.compatibilityDate || 0) ? 1 : -1);
|
|
1794
1611
|
if (options.length > 0) {
|
|
1795
1612
|
let msg = `Preset "${name}" cannot be resolved with current compatibilityDate: ${formatCompatibilityDate(_compatDates || "")}.\n\n`;
|
|
1796
1613
|
for (const option of options) msg += `\n- ${option._meta.name} (requires compatibilityDate >= ${option._meta.compatibilityDate})`;
|
|
@@ -1801,6 +1618,4 @@ async function resolvePreset(name, opts = {}) {
|
|
|
1801
1618
|
}
|
|
1802
1619
|
return preset;
|
|
1803
1620
|
}
|
|
1804
|
-
|
|
1805
|
-
//#endregion
|
|
1806
|
-
export { resolvePreset };
|
|
1621
|
+
export { resolvePreset };
|