nitro-nightly 3.0.1-alpha.1 → 3.0.1-alpha.2

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 (246) hide show
  1. package/README.md +2 -0
  2. package/dist/_build/common.mjs +24924 -52
  3. package/dist/_build/rolldown.mjs +29 -63
  4. package/dist/_build/rollup.mjs +22 -110
  5. package/dist/_build/vite.build.mjs +3 -43
  6. package/dist/{_dev.mjs → _chunks/dev.mjs} +45 -43
  7. package/dist/_chunks/{B-D1JOIz.mjs → nitro.mjs} +144 -308
  8. package/dist/_chunks/nitro2.mjs +101 -0
  9. package/dist/_chunks/utils.mjs +254 -0
  10. package/dist/{_chunks/Bqks5huO.mjs → _common.mjs} +24 -10
  11. package/dist/_libs/c12+giget+readdirp+chokidar.d.mts +214 -0
  12. package/dist/_libs/citty.mjs +140 -110
  13. package/dist/_libs/{plugin-commonjs.mjs → commondir+is-reference.mjs} +59 -250
  14. package/dist/_libs/compatx.d.mts +47 -0
  15. package/dist/_libs/confbox.mjs +388 -799
  16. package/dist/_libs/esbuild.d.mts +20 -0
  17. package/dist/_libs/estree-walker.mjs +1 -144
  18. package/dist/_libs/{plugin-node-resolve.mjs → hasown+resolve+deepmerge.mjs} +497 -78
  19. package/dist/_libs/httpxy.d.mts +79 -0
  20. package/dist/_libs/httpxy.mjs +6 -1
  21. package/dist/_libs/magic-string.d.mts +220 -0
  22. package/dist/_libs/mlly.d.mts +57 -0
  23. package/dist/_libs/nypm+giget+tinyexec.mjs +3603 -0
  24. package/dist/_libs/pkg-types.d.mts +23 -0
  25. package/dist/_libs/plugin-alias.mjs +4 -2
  26. package/dist/_libs/plugin-inject.mjs +5 -5
  27. package/dist/_libs/plugin-json.mjs +2 -2
  28. package/dist/_libs/pluginutils+plugin-commonjs.d.mts +241 -0
  29. package/dist/_libs/{vite-plugin-fullstack.mjs → pluginutils.mjs} +244 -153
  30. package/dist/_libs/rc9+c12+dotenv.mjs +972 -0
  31. package/dist/_libs/{chokidar.mjs → readdirp+chokidar.mjs} +237 -187
  32. package/dist/_libs/remapping.mjs +1 -1
  33. package/dist/_libs/{gen-mapping.mjs → resolve-uri+gen-mapping.mjs} +2 -166
  34. package/dist/_libs/rou3.d.mts +43 -0
  35. package/dist/_libs/rou3.mjs +9 -6
  36. package/dist/_libs/std-env.d.mts +4 -0
  37. package/dist/_libs/tsconfck.mjs +3 -3
  38. package/dist/_libs/{unimport.mjs → unimport+unplugin.mjs} +226 -1961
  39. package/dist/_libs/unplugin+unimport.d.mts +426 -0
  40. package/dist/_libs/unwasm.d.mts +29 -0
  41. package/dist/_presets.mjs +130 -80
  42. package/dist/builder.d.mts +4 -4
  43. package/dist/builder.mjs +6 -30
  44. package/dist/cli/_chunks/build.mjs +1 -1
  45. package/dist/cli/_chunks/dev.mjs +5 -11
  46. package/dist/cli/_chunks/list.mjs +1 -1
  47. package/dist/cli/_chunks/prepare.mjs +1 -1
  48. package/dist/cli/_chunks/run.mjs +1 -1
  49. package/dist/node_modules/@poppinss/colors/build/index.js +130 -160
  50. package/dist/node_modules/@poppinss/colors/package.json +20 -18
  51. package/dist/node_modules/@poppinss/exception/build/index.js +36 -55
  52. package/dist/node_modules/@poppinss/exception/package.json +19 -16
  53. package/dist/node_modules/@sindresorhus/is/distribution/index.js +46 -5
  54. package/dist/node_modules/@sindresorhus/is/package.json +1 -1
  55. package/dist/node_modules/@speed-highlight/core/dist/index.js +1 -1
  56. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +1 -1
  57. package/dist/node_modules/@speed-highlight/core/package.json +2 -2
  58. package/dist/node_modules/hookable/dist/index.mjs +5 -6
  59. package/dist/node_modules/hookable/package.json +13 -13
  60. package/dist/node_modules/ufo/dist/index.mjs +16 -9
  61. package/dist/node_modules/ufo/package.json +15 -14
  62. package/dist/node_modules/unctx/package.json +16 -16
  63. package/dist/node_modules/youch/build/{chunk-4XB2BYKC.js → chunk-7QV3D5YX.js} +2 -4
  64. package/dist/node_modules/youch/build/{chunk-PUHGL6HA.js → chunk-AUGPHE32.js} +2 -4
  65. package/dist/node_modules/youch/build/{chunk-F4I6KX4R.js → chunk-CM7DWJNZ.js} +2 -4
  66. package/dist/node_modules/youch/build/{chunk-YYEJ3AGB.js → chunk-EJH674NB.js} +2 -4
  67. package/dist/node_modules/youch/build/{chunk-EUJBVOYB.js → chunk-OIJ3WD7L.js} +2 -4
  68. package/dist/node_modules/youch/build/{chunk-HFSXRSKS.js → chunk-P36L72PL.js} +5 -3
  69. package/dist/node_modules/youch/build/{chunk-4YEN7HVQ.js → chunk-PE3GG3TN.js} +5 -1
  70. package/dist/node_modules/youch/build/{chunk-PINJDICN.js → chunk-X53OIOJH.js} +2 -4
  71. package/dist/node_modules/youch/build/index.js +8 -9
  72. package/dist/node_modules/youch/build/public/error_info/style.css +1 -0
  73. package/dist/node_modules/youch/build/public/error_metadata/style.css +3 -0
  74. package/dist/node_modules/youch/build/public/error_stack/style.css +2 -3
  75. package/dist/node_modules/youch/package.json +1 -1
  76. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +1 -1
  77. package/dist/presets/_nitro/runtime/nitro-dev.mjs +5 -6
  78. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +1 -1
  79. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +1 -1
  80. package/dist/presets/_nitro/runtime/service-worker.d.mts +1 -1
  81. package/dist/presets/_nitro/runtime/service-worker.mjs +2 -2
  82. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +1 -1
  83. package/dist/presets/aws-amplify/runtime/aws-amplify.mjs +1 -1
  84. package/dist/presets/aws-lambda/runtime/_utils.d.mts +0 -5
  85. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +1 -1
  86. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +9 -11
  87. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +1 -1
  88. package/dist/presets/aws-lambda/runtime/aws-lambda.mjs +1 -1
  89. package/dist/presets/azure/runtime/azure-swa.d.mts +1 -1
  90. package/dist/presets/azure/runtime/azure-swa.mjs +1 -1
  91. package/dist/presets/bun/runtime/bun.d.mts +1 -1
  92. package/dist/presets/bun/runtime/bun.mjs +7 -8
  93. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +3 -3
  94. package/dist/presets/cloudflare/runtime/_module-handler.mjs +19 -17
  95. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +1 -1
  96. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +17 -16
  97. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +1 -1
  98. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +8 -9
  99. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +1 -1
  100. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +12 -18
  101. package/dist/presets/deno/runtime/deno-deploy.d.mts +1 -1
  102. package/dist/presets/deno/runtime/deno-deploy.mjs +4 -5
  103. package/dist/presets/deno/runtime/deno-server.d.mts +1 -1
  104. package/dist/presets/deno/runtime/deno-server.mjs +5 -6
  105. package/dist/presets/netlify/runtime/netlify-edge.d.mts +1 -2
  106. package/dist/presets/netlify/runtime/netlify-edge.mjs +3 -2
  107. package/dist/presets/netlify/runtime/netlify.d.mts +3 -2
  108. package/dist/presets/netlify/runtime/netlify.mjs +3 -1
  109. package/dist/presets/node/runtime/node-cluster.d.mts +1 -1
  110. package/dist/presets/node/runtime/node-cluster.mjs +5 -6
  111. package/dist/presets/node/runtime/node-middleware.d.mts +1 -1
  112. package/dist/presets/node/runtime/node-middleware.mjs +4 -5
  113. package/dist/presets/node/runtime/node-server.d.mts +1 -1
  114. package/dist/presets/node/runtime/node-server.mjs +5 -6
  115. package/dist/presets/standard/runtime/server.d.mts +1 -1
  116. package/dist/presets/standard/runtime/server.mjs +1 -1
  117. package/dist/presets/stormkit/runtime/stormkit.d.mts +1 -1
  118. package/dist/presets/stormkit/runtime/stormkit.mjs +1 -1
  119. package/dist/presets/vercel/runtime/isr.d.mts +2 -0
  120. package/dist/presets/vercel/runtime/isr.mjs +19 -0
  121. package/dist/presets/vercel/runtime/vercel.node.d.mts +1 -1
  122. package/dist/presets/vercel/runtime/vercel.node.mjs +16 -7
  123. package/dist/presets/vercel/runtime/vercel.web.d.mts +1 -1
  124. package/dist/presets/vercel/runtime/vercel.web.mjs +18 -13
  125. package/dist/presets/winterjs/runtime/winterjs.d.mts +1 -2
  126. package/dist/presets/winterjs/runtime/winterjs.mjs +1 -1
  127. package/dist/presets/zeabur/runtime/zeabur.d.mts +1 -1
  128. package/dist/presets/zeabur/runtime/zeabur.mjs +1 -1
  129. package/dist/runtime/app.d.mts +1 -1
  130. package/dist/runtime/app.mjs +1 -1
  131. package/dist/runtime/internal/app.d.mts +7 -3
  132. package/dist/runtime/internal/app.mjs +29 -22
  133. package/dist/runtime/internal/database.mjs +1 -1
  134. package/dist/runtime/internal/error/dev.d.mts +0 -1
  135. package/dist/runtime/internal/error/dev.mjs +1 -1
  136. package/dist/runtime/internal/route-rules.d.mts +0 -4
  137. package/dist/runtime/internal/routes/dev-tasks.mjs +1 -1
  138. package/dist/runtime/internal/routes/openapi.d.mts +0 -1
  139. package/dist/runtime/internal/routes/openapi.mjs +3 -3
  140. package/dist/runtime/internal/routes/renderer-template.dev.mjs +1 -1
  141. package/dist/runtime/internal/routes/renderer-template.mjs +1 -1
  142. package/dist/runtime/internal/routes/scalar.d.mts +0 -1
  143. package/dist/runtime/internal/routes/scalar.mjs +4 -4
  144. package/dist/runtime/internal/routes/swagger.d.mts +0 -1
  145. package/dist/runtime/internal/routes/swagger.mjs +3 -3
  146. package/dist/runtime/internal/runtime-config.mjs +8 -8
  147. package/dist/runtime/internal/static.mjs +1 -1
  148. package/dist/runtime/internal/storage.mjs +1 -1
  149. package/dist/runtime/internal/task.mjs +1 -1
  150. package/dist/runtime/internal/vite/dev-entry.mjs +3 -4
  151. package/dist/runtime/internal/vite/{dev-worker.mjs → node-runner.mjs} +51 -6
  152. package/dist/runtime/meta.d.mts +1 -1
  153. package/dist/runtime/meta.mjs +1 -1
  154. package/dist/runtime/nitro.d.mts +0 -3
  155. package/dist/runtime/nitro.mjs +1 -1
  156. package/dist/runtime/virtual/_runtime_warn.d.mts +1 -0
  157. package/dist/runtime/virtual/_runtime_warn.mjs +5 -0
  158. package/dist/runtime/virtual/database.d.mts +8 -0
  159. package/dist/runtime/virtual/database.mjs +2 -0
  160. package/dist/runtime/virtual/error-handler.d.mts +6 -0
  161. package/dist/runtime/virtual/error-handler.mjs +9 -0
  162. package/dist/runtime/virtual/feature-flags.d.mts +7 -0
  163. package/dist/runtime/virtual/feature-flags.mjs +7 -0
  164. package/dist/runtime/virtual/plugins.d.mts +3 -0
  165. package/dist/runtime/virtual/plugins.mjs +2 -0
  166. package/dist/runtime/virtual/polyfills.d.mts +3 -0
  167. package/dist/runtime/virtual/polyfills.mjs +2 -0
  168. package/dist/runtime/virtual/public-assets.d.mts +9 -0
  169. package/dist/runtime/virtual/public-assets.mjs +8 -0
  170. package/dist/runtime/virtual/renderer-template.d.mts +4 -0
  171. package/dist/runtime/virtual/renderer-template.mjs +7 -0
  172. package/dist/runtime/virtual/routing-meta.d.mts +7 -0
  173. package/dist/runtime/virtual/routing-meta.mjs +2 -0
  174. package/dist/runtime/virtual/routing.d.mts +8 -0
  175. package/dist/runtime/virtual/routing.mjs +11 -0
  176. package/dist/runtime/virtual/runtime-config.d.mts +3 -0
  177. package/dist/runtime/virtual/runtime-config.mjs +5 -0
  178. package/dist/runtime/virtual/server-assets.d.mts +6 -0
  179. package/dist/runtime/virtual/server-assets.mjs +12 -0
  180. package/dist/runtime/virtual/storage.d.mts +3 -0
  181. package/dist/runtime/virtual/storage.mjs +5 -0
  182. package/dist/runtime/virtual/tasks.d.mts +10 -0
  183. package/dist/runtime/virtual/tasks.mjs +3 -0
  184. package/dist/types/index.d.mts +292 -371
  185. package/dist/types/index.mjs +10 -0
  186. package/dist/vite.d.mts +7 -12
  187. package/dist/vite.mjs +734 -41
  188. package/lib/vite.types.d.mts +26 -0
  189. package/lib/vite.types.mjs +2 -0
  190. package/package.json +82 -53
  191. package/dist/_build/common2.mjs +0 -772
  192. package/dist/_build/vite.plugin.mjs +0 -768
  193. package/dist/_chunks/ANM1K1bE.mjs +0 -304
  194. package/dist/_chunks/BX9-zVkM.mjs +0 -59
  195. package/dist/_chunks/C7CbzoI1.mjs +0 -39
  196. package/dist/_libs/acorn.mjs +0 -5034
  197. package/dist/_libs/c12.mjs +0 -2858
  198. package/dist/_libs/commondir.mjs +0 -22
  199. package/dist/_libs/deepmerge.mjs +0 -86
  200. package/dist/_libs/dot-prop.mjs +0 -138
  201. package/dist/_libs/duplexer.mjs +0 -71
  202. package/dist/_libs/etag.mjs +0 -80
  203. package/dist/_libs/fdir.mjs +0 -514
  204. package/dist/_libs/function-bind.mjs +0 -63
  205. package/dist/_libs/giget.mjs +0 -19289
  206. package/dist/_libs/gzip-size.mjs +0 -21
  207. package/dist/_libs/hasown.mjs +0 -14
  208. package/dist/_libs/is-core-module.mjs +0 -220
  209. package/dist/_libs/is-module.mjs +0 -13
  210. package/dist/_libs/is-reference.mjs +0 -32
  211. package/dist/_libs/js-tokens.mjs +0 -382
  212. package/dist/_libs/knitwork.mjs +0 -124
  213. package/dist/_libs/local-pkg.mjs +0 -1686
  214. package/dist/_libs/magic-string.mjs +0 -939
  215. package/dist/_libs/mime.mjs +0 -1391
  216. package/dist/_libs/node-fetch-native.mjs +0 -173
  217. package/dist/_libs/path-parse.mjs +0 -47
  218. package/dist/_libs/pathe.mjs +0 -41
  219. package/dist/_libs/picomatch.mjs +0 -1673
  220. package/dist/_libs/plugin-replace.mjs +0 -104
  221. package/dist/_libs/pretty-bytes.mjs +0 -116
  222. package/dist/_libs/std-env.mjs +0 -158
  223. package/dist/_libs/strip-literal.mjs +0 -51
  224. package/dist/_libs/tinyglobby.mjs +0 -292
  225. package/dist/_libs/untyped.mjs +0 -271
  226. package/dist/_libs/unwasm.mjs +0 -5836
  227. package/dist/cli/_chunks/detect-acorn.mjs +0 -12
  228. package/dist/cli/_chunks/dist.mjs +0 -3
  229. package/dist/cli/_chunks/dist2.mjs +0 -3
  230. package/dist/cli/_chunks/dist3.mjs +0 -3
  231. package/dist/cli/_chunks/dist4.mjs +0 -4
  232. package/dist/cli/_chunks/dist5.mjs +0 -4
  233. package/dist/cli/_chunks/esm.mjs +0 -3
  234. package/dist/cli/_chunks/json5.mjs +0 -4
  235. package/dist/cli/_chunks/jsonc.mjs +0 -4
  236. package/dist/cli/_chunks/multipart-parser.mjs +0 -6
  237. package/dist/cli/_chunks/toml.mjs +0 -4
  238. package/dist/cli/_chunks/yaml.mjs +0 -4
  239. package/dist/node_modules/kleur/index.js +0 -110
  240. package/dist/node_modules/youch/build/chunk-OSUFJZHZ.js +0 -6
  241. package/lib/deps/ofetch.mjs +0 -1
  242. package/lib/deps/ofetch.mts +0 -1
  243. /package/dist/runtime/{vite-runtime.d.mts → vite.d.mts} +0 -0
  244. /package/dist/runtime/{vite-runtime.mjs → vite.mjs} +0 -0
  245. /package/lib/{deps/h3.d.mts → h3.d.mts} +0 -0
  246. /package/lib/{deps/h3.mjs → h3.mjs} +0 -0
@@ -1,304 +0,0 @@
1
- import { i as __toESM } from "./Bqks5huO.mjs";
2
- import { C as isAbsolute, O as relative, h as resolveModulePath, k as resolve, w as join, x as dirname } from "../_libs/c12.mjs";
3
- import { c as parseNodeModulePath, s as lookupNodeModuleSubpath } from "../_libs/local-pkg.mjs";
4
- import { o as toExports } from "../_libs/unimport.mjs";
5
- import { t as glob } from "../_libs/tinyglobby.mjs";
6
- import { i as writeFile, r as resolveNitroPath, t as isDirectory } from "./C7CbzoI1.mjs";
7
- import { t as resolveAlias } from "../_libs/pathe.mjs";
8
- import { n as resolveSchema, t as generateTypes } from "../_libs/untyped.mjs";
9
- import { existsSync, promises } from "node:fs";
10
- import { withBase, withLeadingSlash, withoutTrailingSlash } from "ufo";
11
- import { defu } from "defu";
12
- import { runtimeDir } from "nitro/meta";
13
-
14
- //#region src/scan.ts
15
- const GLOB_SCAN_PATTERN = "**/*.{js,mjs,cjs,ts,mts,cts,tsx,jsx}";
16
- const suffixRegex = /(\.(?<method>connect|delete|get|head|options|patch|post|put|trace))?(\.(?<env>dev|prod|prerender))?$/;
17
- async function scanAndSyncOptions(nitro) {
18
- const scannedPlugins = await scanPlugins(nitro);
19
- for (const plugin of scannedPlugins) if (!nitro.options.plugins.includes(plugin)) nitro.options.plugins.push(plugin);
20
- if (nitro.options.experimental.tasks) {
21
- const scannedTasks = await scanTasks(nitro);
22
- for (const scannedTask of scannedTasks) if (scannedTask.name in nitro.options.tasks) {
23
- if (!nitro.options.tasks[scannedTask.name].handler) nitro.options.tasks[scannedTask.name].handler = scannedTask.handler;
24
- } else nitro.options.tasks[scannedTask.name] = {
25
- handler: scannedTask.handler,
26
- description: ""
27
- };
28
- }
29
- const scannedModules = await scanModules(nitro);
30
- nitro.options.modules = nitro.options.modules || [];
31
- for (const modPath of scannedModules) if (!nitro.options.modules.includes(modPath)) nitro.options.modules.push(modPath);
32
- }
33
- async function scanHandlers(nitro) {
34
- const middleware = await scanMiddleware(nitro);
35
- const handlers = await Promise.all([scanServerRoutes(nitro, nitro.options.apiDir || "api", nitro.options.apiBaseURL || "/api"), scanServerRoutes(nitro, nitro.options.routesDir || "routes")]).then((r) => r.flat());
36
- nitro.scannedHandlers = [...middleware, ...handlers.filter((h, index, array) => {
37
- return array.findIndex((h2) => h.route === h2.route && h.method === h2.method && h.env === h2.env) === index;
38
- })];
39
- return handlers;
40
- }
41
- async function scanMiddleware(nitro) {
42
- return (await scanFiles(nitro, "middleware")).map((file) => {
43
- return {
44
- route: "/**",
45
- middleware: true,
46
- handler: file.fullPath
47
- };
48
- });
49
- }
50
- async function scanServerRoutes(nitro, dir, prefix = "/") {
51
- return (await scanFiles(nitro, dir)).map((file) => {
52
- let route = file.path.replace(/\.[A-Za-z]+$/, "").replace(/\(([^(/\\]+)\)[/\\]/g, "").replace(/\[\.{3}]/g, "**").replace(/\[\.{3}(\w+)]/g, "**:$1").replace(/\[([^/\]]+)]/g, ":$1");
53
- route = withLeadingSlash(withoutTrailingSlash(withBase(route, prefix)));
54
- const suffixMatch = route.match(suffixRegex);
55
- let method;
56
- let env;
57
- if (suffixMatch?.index && suffixMatch?.index >= 0) {
58
- route = route.slice(0, suffixMatch.index);
59
- method = suffixMatch.groups?.method;
60
- env = suffixMatch.groups?.env;
61
- }
62
- route = route.replace(/\/index$/, "") || "/";
63
- return {
64
- handler: file.fullPath,
65
- lazy: true,
66
- middleware: false,
67
- route,
68
- method,
69
- env
70
- };
71
- });
72
- }
73
- async function scanPlugins(nitro) {
74
- return (await scanFiles(nitro, "plugins")).map((f) => f.fullPath);
75
- }
76
- async function scanTasks(nitro) {
77
- return (await scanFiles(nitro, "tasks")).map((f) => {
78
- return {
79
- name: f.path.replace(/\/index$/, "").replace(/\.[A-Za-z]+$/, "").replace(/\//g, ":"),
80
- handler: f.fullPath
81
- };
82
- });
83
- }
84
- async function scanModules(nitro) {
85
- return (await scanFiles(nitro, "modules")).map((f) => f.fullPath);
86
- }
87
- async function scanFiles(nitro, name) {
88
- return await Promise.all(nitro.options.scanDirs.map((dir) => scanDir(nitro, dir, name))).then((r) => r.flat());
89
- }
90
- async function scanDir(nitro, dir, name) {
91
- return (await glob(join(name, GLOB_SCAN_PATTERN), {
92
- cwd: dir,
93
- dot: true,
94
- ignore: nitro.options.ignore,
95
- absolute: true
96
- }).catch((error) => {
97
- if (error?.code === "ENOTDIR") {
98
- nitro.logger.warn(`Ignoring \`${join(dir, name)}\`. It must be a directory.`);
99
- return [];
100
- }
101
- throw error;
102
- })).map((fullPath) => {
103
- return {
104
- fullPath,
105
- path: relative(join(dir, name), fullPath)
106
- };
107
- }).sort((a, b) => a.path.localeCompare(b.path));
108
- }
109
-
110
- //#endregion
111
- //#region src/build/types.ts
112
- async function writeTypes(nitro) {
113
- const types = { routes: {} };
114
- const generatedTypesDir = resolve(nitro.options.rootDir, nitro.options.typescript.generatedTypesDir || "node_modules/.nitro/types");
115
- const middleware = [...nitro.scannedHandlers, ...nitro.options.handlers];
116
- for (const mw of middleware) {
117
- if (typeof mw.handler !== "string" || !mw.route) continue;
118
- const relativePath = relative(generatedTypesDir, resolveNitroPath(mw.handler, nitro.options)).replace(/\.(js|mjs|cjs|ts|mts|cts|tsx|jsx)$/, "");
119
- const method = mw.method || "default";
120
- types.routes[mw.route] ??= {};
121
- types.routes[mw.route][method] ??= [];
122
- types.routes[mw.route][method].push(`Simplify<Serialize<Awaited<ReturnType<typeof import('${relativePath}').default>>>>`);
123
- }
124
- let autoImportedTypes = [];
125
- let autoImportExports = "";
126
- if (nitro.unimport) {
127
- await nitro.unimport.init();
128
- const allImports = await nitro.unimport.getImports();
129
- autoImportExports = toExports(allImports).replace(/#internal\/nitro/g, relative(generatedTypesDir, runtimeDir));
130
- const resolvedImportPathMap = /* @__PURE__ */ new Map();
131
- for (const i of allImports) {
132
- const from = i.typeFrom || i.from;
133
- if (resolvedImportPathMap.has(from)) continue;
134
- let path = resolveAlias(from, nitro.options.alias);
135
- if (!isAbsolute(path)) {
136
- const resolvedPath = resolveModulePath(from, {
137
- try: true,
138
- from: nitro.options.nodeModulesDirs,
139
- conditions: [
140
- "type",
141
- "node",
142
- "import"
143
- ],
144
- suffixes: ["", "/index"],
145
- extensions: [
146
- ".mjs",
147
- ".cjs",
148
- ".js",
149
- ".mts",
150
- ".cts",
151
- ".ts"
152
- ]
153
- });
154
- if (resolvedPath) {
155
- const { dir, name } = parseNodeModulePath(resolvedPath);
156
- if (!dir || !name) path = resolvedPath;
157
- else path = join(dir, name, await lookupNodeModuleSubpath(resolvedPath) || "");
158
- }
159
- }
160
- if (existsSync(path) && !await isDirectory(path)) path = path.replace(/\.[a-z]+$/, "");
161
- if (isAbsolute(path)) path = relative(generatedTypesDir, path);
162
- resolvedImportPathMap.set(from, path);
163
- }
164
- autoImportedTypes = [nitro.options.imports && nitro.options.imports.autoImport !== false ? (await nitro.unimport.generateTypeDeclarations({
165
- exportHelper: false,
166
- resolvePath: (i) => {
167
- const from = i.typeFrom || i.from;
168
- return resolvedImportPathMap.get(from) ?? from;
169
- }
170
- })).trim() : ""];
171
- }
172
- const generateRoutes = () => [
173
- "// Generated by nitro",
174
- "import type { Serialize, Simplify } from \"nitro/types\";",
175
- "declare module \"nitro/types\" {",
176
- " type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T",
177
- " interface InternalApi {",
178
- ...Object.entries(types.routes).map(([path, methods]) => [
179
- ` '${path}': {`,
180
- ...Object.entries(methods).map(([method, types$1]) => ` '${method}': ${types$1.join(" | ")}`),
181
- " }"
182
- ].join("\n")),
183
- " }",
184
- "}",
185
- "export {}"
186
- ];
187
- const config = [
188
- "// Generated by nitro",
189
- `declare module "nitro/types" {`,
190
- nitro.options.typescript.generateRuntimeConfigTypes ? generateTypes(await resolveSchema(Object.fromEntries(Object.entries(nitro.options.runtimeConfig).filter(([key]) => !["app", "nitro"].includes(key)))), {
191
- interfaceName: "NitroRuntimeConfig",
192
- addExport: false,
193
- addDefaults: false,
194
- allowExtraKeys: false,
195
- indentation: 2
196
- }) : "",
197
- `}`,
198
- "export {}"
199
- ];
200
- const declarations = [
201
- "/// <reference path=\"./nitro-routes.d.ts\" />",
202
- "/// <reference path=\"./nitro-config.d.ts\" />",
203
- "/// <reference path=\"./nitro-imports.d.ts\" />"
204
- ];
205
- const buildFiles = [];
206
- buildFiles.push({
207
- path: join(generatedTypesDir, "nitro-routes.d.ts"),
208
- contents: () => generateRoutes().join("\n")
209
- });
210
- buildFiles.push({
211
- path: join(generatedTypesDir, "nitro-config.d.ts"),
212
- contents: config.join("\n")
213
- });
214
- buildFiles.push({
215
- path: join(generatedTypesDir, "nitro-imports.d.ts"),
216
- contents: [...autoImportedTypes, autoImportExports || "export {}"].join("\n")
217
- });
218
- buildFiles.push({
219
- path: join(generatedTypesDir, "nitro.d.ts"),
220
- contents: declarations.join("\n")
221
- });
222
- if (nitro.options.typescript.generateTsConfig) {
223
- const tsConfigPath = resolve(generatedTypesDir, nitro.options.typescript.tsconfigPath);
224
- const tsconfigDir = dirname(tsConfigPath);
225
- const tsConfig = defu(nitro.options.typescript.tsConfig, {
226
- compilerOptions: {
227
- esModuleInterop: true,
228
- allowSyntheticDefaultImports: true,
229
- skipLibCheck: true,
230
- target: "ESNext",
231
- allowJs: true,
232
- resolveJsonModule: true,
233
- moduleDetection: "force",
234
- isolatedModules: true,
235
- verbatimModuleSyntax: true,
236
- allowImportingTsExtensions: true,
237
- strict: nitro.options.typescript.strict,
238
- noUncheckedIndexedAccess: true,
239
- noImplicitOverride: true,
240
- forceConsistentCasingInFileNames: true,
241
- module: "Preserve",
242
- jsx: "preserve",
243
- jsxFactory: "h",
244
- jsxFragmentFactory: "Fragment",
245
- paths: { "#imports": [relativeWithDot(tsconfigDir, join(generatedTypesDir, "nitro-imports"))] }
246
- },
247
- include: [
248
- relativeWithDot(tsconfigDir, join(generatedTypesDir, "nitro.d.ts")).replace(/^(?=[^.])/, "./"),
249
- join(relativeWithDot(tsconfigDir, nitro.options.rootDir), "**/*"),
250
- ...!nitro.options.serverDir || nitro.options.serverDir === nitro.options.rootDir ? [] : [join(relativeWithDot(tsconfigDir, nitro.options.serverDir), "**/*")]
251
- ]
252
- });
253
- for (const alias in tsConfig.compilerOptions.paths) {
254
- const paths = await Promise.all(tsConfig.compilerOptions.paths[alias].map(async (path) => {
255
- if (!isAbsolute(path)) return path;
256
- return relativeWithDot(tsconfigDir, (await promises.stat(path).catch(() => null))?.isFile() ? path.replace(/(?<=\w)\.\w+$/g, "") : path);
257
- }));
258
- tsConfig.compilerOptions.paths[alias] = [...new Set(paths)];
259
- }
260
- tsConfig.include = [...new Set(tsConfig.include.map((p) => isAbsolute(p) ? relativeWithDot(tsconfigDir, p) : p))];
261
- if (tsConfig.exclude) tsConfig.exclude = [...new Set(tsConfig.exclude.map((p) => isAbsolute(p) ? relativeWithDot(tsconfigDir, p) : p))];
262
- types.tsConfig = tsConfig;
263
- buildFiles.push({
264
- path: tsConfigPath,
265
- contents: () => JSON.stringify(tsConfig, null, 2)
266
- });
267
- }
268
- await nitro.hooks.callHook("types:extend", types);
269
- await Promise.all(buildFiles.map(async (file) => {
270
- await writeFile(resolve(generatedTypesDir, file.path), typeof file.contents === "string" ? file.contents : file.contents());
271
- }));
272
- }
273
- const RELATIVE_RE = /^\.{1,2}\//;
274
- function relativeWithDot(from, to) {
275
- const rel = relative(from, to);
276
- return RELATIVE_RE.test(rel) ? rel : "./" + rel;
277
- }
278
-
279
- //#endregion
280
- //#region src/utils/parallel.ts
281
- async function runParallel(inputs, cb, opts) {
282
- const tasks = /* @__PURE__ */ new Set();
283
- function queueNext() {
284
- const route = inputs.values().next().value;
285
- if (!route) return;
286
- inputs.delete(route);
287
- const task = (opts.interval ? new Promise((resolve$1) => setTimeout(resolve$1, opts.interval)) : Promise.resolve()).then(() => cb(route)).catch((error) => {
288
- console.error(error);
289
- });
290
- tasks.add(task);
291
- return task.then(() => {
292
- tasks.delete(task);
293
- if (inputs.size > 0) return refillQueue();
294
- });
295
- }
296
- function refillQueue() {
297
- const workers = Math.min(opts.concurrency - tasks.size, inputs.size);
298
- return Promise.all(Array.from({ length: workers }, () => queueNext()));
299
- }
300
- await refillQueue();
301
- }
302
-
303
- //#endregion
304
- export { scanHandlers as i, writeTypes as n, scanAndSyncOptions as r, runParallel as t };
@@ -1,59 +0,0 @@
1
- import { O as relative, k as resolve, x as dirname } from "../_libs/c12.mjs";
2
- import { t as glob } from "../_libs/tinyglobby.mjs";
3
- import { r as a } from "../_libs/std-env.mjs";
4
- import { t as runParallel } from "./ANM1K1bE.mjs";
5
- import { t as gzipSize } from "../_libs/gzip-size.mjs";
6
- import { t as prettyBytes } from "../_libs/pretty-bytes.mjs";
7
- import { promises } from "node:fs";
8
- import { colors } from "consola/utils";
9
-
10
- //#region src/utils/fs-tree.ts
11
- async function generateFSTree(dir, options = {}) {
12
- if (a) return;
13
- const files = await glob("**/*.*", {
14
- cwd: dir,
15
- ignore: ["*.map"]
16
- });
17
- const items = [];
18
- await runParallel(new Set(files), async (file) => {
19
- const path = resolve(dir, file);
20
- const src = await promises.readFile(path);
21
- const size = src.byteLength;
22
- const gzip = options.compressedSizes ? await gzipSize(src) : 0;
23
- items.push({
24
- file,
25
- path,
26
- size,
27
- gzip
28
- });
29
- }, { concurrency: 10 });
30
- items.sort((a$1, b) => a$1.path.localeCompare(b.path));
31
- let totalSize = 0;
32
- let totalGzip = 0;
33
- let totalNodeModulesSize = 0;
34
- let totalNodeModulesGzip = 0;
35
- let treeText = "";
36
- for (const [index, item] of items.entries()) {
37
- let dir$1 = dirname(item.file);
38
- if (dir$1 === ".") dir$1 = "";
39
- const rpath = relative(process.cwd(), item.path);
40
- const treeChar = index === items.length - 1 ? "└─" : "├─";
41
- if (item.file.includes("node_modules")) {
42
- totalNodeModulesSize += item.size;
43
- totalNodeModulesGzip += item.gzip;
44
- continue;
45
- }
46
- treeText += colors.gray(` ${treeChar} ${rpath} (${prettyBytes(item.size)})`);
47
- if (options.compressedSizes) treeText += colors.gray(` (${prettyBytes(item.gzip)} gzip)`);
48
- treeText += "\n";
49
- totalSize += item.size;
50
- totalGzip += item.gzip;
51
- }
52
- treeText += `${colors.cyan("Σ Total size:")} ${prettyBytes(totalSize + totalNodeModulesSize)}`;
53
- if (options.compressedSizes) treeText += ` (${prettyBytes(totalGzip + totalNodeModulesGzip)} gzip)`;
54
- treeText += "\n";
55
- return treeText;
56
- }
57
-
58
- //#endregion
59
- export { generateFSTree as t };
@@ -1,39 +0,0 @@
1
- import { O as relative, k as resolve, x as dirname } from "../_libs/c12.mjs";
2
- import { t as getProperty } from "../_libs/dot-prop.mjs";
3
- import consola$1 from "consola";
4
- import { mkdir, stat, writeFile } from "node:fs/promises";
5
- import { colors } from "consola/utils";
6
-
7
- //#region src/utils/fs.ts
8
- function prettyPath(p, highlight = true) {
9
- p = relative(process.cwd(), p);
10
- return highlight ? colors.cyan(p) : p;
11
- }
12
- function resolveNitroPath(path, nitroOptions, base) {
13
- if (typeof path !== "string") throw new TypeError("Invalid path: " + path);
14
- path = _compilePathTemplate(path)(nitroOptions);
15
- for (const base$1 in nitroOptions.alias) if (path.startsWith(base$1)) path = nitroOptions.alias[base$1] + path.slice(base$1.length);
16
- return resolve(base || nitroOptions.rootDir, path);
17
- }
18
- function _compilePathTemplate(contents) {
19
- return (params) => contents.replace(/{{ ?([\w.]+) ?}}/g, (_, match) => {
20
- const val = getProperty(params, match);
21
- if (!val) consola$1.warn(`cannot resolve template param '${match}' in ${contents.slice(0, 20)}`);
22
- return val || `${match}`;
23
- });
24
- }
25
- async function writeFile$1(file, contents, log = false) {
26
- await mkdir(dirname(file), { recursive: true });
27
- await writeFile(file, contents, typeof contents === "string" ? "utf8" : void 0);
28
- if (log) consola$1.info("Generated", prettyPath(file));
29
- }
30
- async function isDirectory(path) {
31
- try {
32
- return (await stat(path)).isDirectory();
33
- } catch {
34
- return false;
35
- }
36
- }
37
-
38
- //#endregion
39
- export { writeFile$1 as i, prettyPath as n, resolveNitroPath as r, isDirectory as t };