nitro 3.0.1-alpha.2 → 3.0.260415-beta

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 (297) hide show
  1. package/LICENSE +6 -0
  2. package/README.md +2 -2
  3. package/dist/THIRD-PARTY-LICENSES.md +1646 -0
  4. package/dist/_build/common.mjs +7261 -3812
  5. package/dist/_build/rolldown.mjs +32 -42
  6. package/dist/_build/rollup.mjs +28 -48
  7. package/dist/_build/vite.build.mjs +10 -10
  8. package/dist/_chunks/nitro.mjs +102 -327
  9. package/dist/_chunks/nitro2.mjs +8 -9
  10. package/dist/_chunks/nitro3.mjs +136 -0
  11. package/dist/_chunks/nitro4.mjs +127 -0
  12. package/dist/_chunks/utils.mjs +40 -29
  13. package/dist/_common.mjs +13 -25
  14. package/dist/_dev.d.mts +0 -3
  15. package/dist/{_chunks/dev.mjs → _dev.mjs} +132 -330
  16. package/dist/_libs/_.mjs +2 -0
  17. package/dist/_libs/_2.mjs +2 -0
  18. package/dist/_libs/_3.mjs +2 -0
  19. package/dist/_libs/_4.mjs +2 -0
  20. package/dist/_libs/_5.mjs +2 -0
  21. package/dist/_libs/_6.mjs +2 -0
  22. package/dist/_libs/_7.mjs +2 -0
  23. package/dist/_libs/c12+rc9.mjs +814 -0
  24. package/dist/_libs/{c12+giget+readdirp+chokidar.d.mts → c12+readdirp+chokidar.d.mts} +49 -40
  25. package/dist/_libs/citty.mjs +142 -41
  26. package/dist/_libs/commondir+is-reference.mjs +60 -56
  27. package/dist/_libs/compatx.d.mts +0 -2
  28. package/dist/_libs/compatx.mjs +1 -4
  29. package/dist/_libs/esbuild.d.mts +0 -1
  30. package/dist/_libs/escape-string-regexp.mjs +1 -4
  31. package/dist/_libs/{pluginutils+plugin-commonjs.d.mts → estree+pluginutils.d.mts} +0 -5
  32. package/dist/_libs/estree-walker.mjs +4 -92
  33. package/dist/_libs/exsolve.d.mts +1 -0
  34. package/dist/_libs/hasown+resolve+deepmerge.mjs +160 -246
  35. package/dist/_libs/httpxy.d.mts +20 -13
  36. package/dist/_libs/httpxy.mjs +519 -95
  37. package/dist/_libs/js-tokens.d.mts +1 -0
  38. package/dist/_libs/klona.mjs +1 -4
  39. package/dist/_libs/magic-string.d.mts +0 -2
  40. package/dist/_libs/mlly.d.mts +0 -2
  41. package/dist/_libs/nypm+tinyexec.mjs +822 -0
  42. package/dist/_libs/perfect-debounce.mjs +68 -0
  43. package/dist/_libs/pkg-types.d.mts +0 -3
  44. package/dist/_libs/plugin-alias.mjs +1 -5
  45. package/dist/_libs/plugin-inject.mjs +1 -7
  46. package/dist/_libs/plugin-json.mjs +1 -5
  47. package/dist/_libs/pluginutils.mjs +3 -35
  48. package/dist/_libs/readdirp+chokidar.mjs +187 -365
  49. package/dist/_libs/remapping.mjs +1 -5
  50. package/dist/_libs/resolve-uri+gen-mapping.mjs +15 -53
  51. package/dist/_libs/rou3.d.mts +1 -4
  52. package/dist/_libs/rou3.mjs +223 -78
  53. package/dist/_libs/std-env.d.mts +8 -2
  54. package/dist/_libs/strip-literal.d.mts +1 -0
  55. package/dist/_libs/tsconfck.mjs +21 -334
  56. package/dist/_libs/ultrahtml.mjs +3 -16
  57. package/dist/_libs/unimport+unplugin.mjs +244 -388
  58. package/dist/_libs/unplugin+unimport.d.mts +5 -15
  59. package/dist/_libs/unwasm.d.mts +0 -3
  60. package/dist/_presets.mjs +576 -488
  61. package/dist/builder.d.mts +5 -25
  62. package/dist/builder.mjs +3 -8
  63. package/dist/cli/_chunks/build.mjs +22 -25
  64. package/dist/cli/_chunks/common.mjs +1 -4
  65. package/dist/cli/_chunks/deploy.mjs +37 -0
  66. package/dist/cli/_chunks/dev.mjs +6 -11
  67. package/dist/cli/_chunks/docs.mjs +28 -0
  68. package/dist/cli/_chunks/list.mjs +4 -8
  69. package/dist/cli/_chunks/prepare.mjs +2 -6
  70. package/dist/cli/_chunks/preview.mjs +48 -0
  71. package/dist/cli/_chunks/run.mjs +7 -11
  72. package/dist/cli/_chunks/task.mjs +1 -5
  73. package/dist/cli/index.mjs +5 -6
  74. package/dist/docs/0.docs/0.index/index.md +56 -0
  75. package/dist/docs/0.docs/1.quick-start.md +110 -0
  76. package/dist/docs/0.docs/10.lifecycle.md +204 -0
  77. package/dist/docs/0.docs/11.openapi.md +291 -0
  78. package/dist/docs/0.docs/12.plugins.md +164 -0
  79. package/dist/docs/0.docs/13.tasks.md +277 -0
  80. package/dist/docs/0.docs/14.websocket.md +386 -0
  81. package/dist/docs/0.docs/15.migration.md +213 -0
  82. package/dist/docs/0.docs/16.nightly.md +31 -0
  83. package/dist/docs/0.docs/2.renderer.md +322 -0
  84. package/dist/docs/0.docs/3.routing.md +711 -0
  85. package/dist/docs/0.docs/4.server-entry.md +239 -0
  86. package/dist/docs/0.docs/5.cache.md +408 -0
  87. package/dist/docs/0.docs/6.storage.md +261 -0
  88. package/dist/docs/0.docs/7.assets.md +166 -0
  89. package/dist/docs/0.docs/8.configuration.md +256 -0
  90. package/dist/docs/0.docs/9.database.md +185 -0
  91. package/dist/docs/1.deploy/0.index/index.md +64 -0
  92. package/dist/docs/1.deploy/1.runtimes/0.node.md +63 -0
  93. package/dist/docs/1.deploy/1.runtimes/1.bun.md +15 -0
  94. package/dist/docs/1.deploy/1.runtimes/2.deno.md +19 -0
  95. package/dist/docs/1.deploy/2.providers/0.alwaysdata.md +50 -0
  96. package/dist/docs/1.deploy/2.providers/1.aws.md +47 -0
  97. package/dist/docs/1.deploy/2.providers/10.flightcontrol.md +67 -0
  98. package/dist/docs/1.deploy/2.providers/11.genezio.md +67 -0
  99. package/dist/docs/1.deploy/2.providers/12.github-pages.md +68 -0
  100. package/dist/docs/1.deploy/2.providers/13.gitlab-pages.md +37 -0
  101. package/dist/docs/1.deploy/2.providers/14.heroku.md +84 -0
  102. package/dist/docs/1.deploy/2.providers/15.iis.md +38 -0
  103. package/dist/docs/1.deploy/2.providers/16.koyeb.md +109 -0
  104. package/dist/docs/1.deploy/2.providers/17.netlify.md +47 -0
  105. package/dist/docs/1.deploy/2.providers/18.platform-sh.md +37 -0
  106. package/dist/docs/1.deploy/2.providers/19.render.md +37 -0
  107. package/dist/docs/1.deploy/2.providers/2.aws-amplify.md +81 -0
  108. package/dist/docs/1.deploy/2.providers/20.stormkit.md +24 -0
  109. package/dist/docs/1.deploy/2.providers/21.vercel.md +270 -0
  110. package/dist/docs/1.deploy/2.providers/22.zeabur.md +19 -0
  111. package/dist/docs/1.deploy/2.providers/23.zephyr.md +99 -0
  112. package/dist/docs/1.deploy/2.providers/24.zerops.md +102 -0
  113. package/dist/docs/1.deploy/2.providers/3.azure.md +72 -0
  114. package/dist/docs/1.deploy/2.providers/4.cleavr.md +33 -0
  115. package/dist/docs/1.deploy/2.providers/5.cloudflare.md +369 -0
  116. package/dist/docs/1.deploy/2.providers/6.deno-deploy.md +66 -0
  117. package/dist/docs/1.deploy/2.providers/7.digitalocean.md +46 -0
  118. package/dist/docs/1.deploy/2.providers/8.edgeone.md +20 -0
  119. package/dist/docs/1.deploy/2.providers/9.firebase.md +32 -0
  120. package/dist/docs/2.config/0.index/index.md +1221 -0
  121. package/dist/docs/3.examples/0.index/index.md +3 -0
  122. package/dist/docs/3.examples/1.api-routes.md +145 -0
  123. package/dist/docs/3.examples/10.hono.md +74 -0
  124. package/dist/docs/3.examples/11.import-alias.md +97 -0
  125. package/dist/docs/3.examples/12.middleware.md +91 -0
  126. package/dist/docs/3.examples/13.mono-jsx.md +68 -0
  127. package/dist/docs/3.examples/14.nano-jsx.md +70 -0
  128. package/dist/docs/3.examples/15.plugins.md +91 -0
  129. package/dist/docs/3.examples/16.renderer.md +113 -0
  130. package/dist/docs/3.examples/17.runtime-config.md +97 -0
  131. package/dist/docs/3.examples/18.server-fetch.md +87 -0
  132. package/dist/docs/3.examples/19.shiki.md +198 -0
  133. package/dist/docs/3.examples/2.auto-imports.md +92 -0
  134. package/dist/docs/3.examples/20.virtual-routes.md +74 -0
  135. package/dist/docs/3.examples/21.vite-nitro-plugin.md +79 -0
  136. package/dist/docs/3.examples/22.vite-rsc.md +1041 -0
  137. package/dist/docs/3.examples/23.vite-ssr-html.md +217 -0
  138. package/dist/docs/3.examples/24.vite-ssr-preact.md +247 -0
  139. package/dist/docs/3.examples/25.vite-ssr-react.md +226 -0
  140. package/dist/docs/3.examples/26.vite-ssr-solid.md +256 -0
  141. package/dist/docs/3.examples/27.vite-ssr-tsr-react.md +442 -0
  142. package/dist/docs/3.examples/28.vite-ssr-tss-react.md +444 -0
  143. package/dist/docs/3.examples/29.vite-ssr-vue-router.md +617 -0
  144. package/dist/docs/3.examples/3.cached-handler.md +81 -0
  145. package/dist/docs/3.examples/30.vite-trpc.md +335 -0
  146. package/dist/docs/3.examples/31.websocket.md +282 -0
  147. package/dist/docs/3.examples/4.custom-error-handler.md +98 -0
  148. package/dist/docs/3.examples/5.database.md +157 -0
  149. package/dist/docs/3.examples/6.elysia.md +70 -0
  150. package/dist/docs/3.examples/7.express.md +78 -0
  151. package/dist/docs/3.examples/8.fastify.md +79 -0
  152. package/dist/docs/3.examples/9.hello-world.md +68 -0
  153. package/dist/docs/README.md +86 -0
  154. package/dist/docs/index.md +121 -0
  155. package/dist/node_modules/@poppinss/dumper/build/formatters/html/main.js +8 -0
  156. package/dist/node_modules/@poppinss/dumper/package.json +1 -1
  157. package/dist/node_modules/@speed-highlight/core/dist/index.js +4 -4
  158. package/dist/node_modules/@speed-highlight/core/dist/terminal.js +2 -2
  159. package/dist/node_modules/@speed-highlight/core/package.json +1 -1
  160. package/dist/node_modules/cookie-es/dist/index.mjs +299 -250
  161. package/dist/node_modules/cookie-es/package.json +26 -23
  162. package/dist/node_modules/croner/dist/croner.js +1 -1
  163. package/dist/node_modules/croner/package.json +11 -1
  164. package/dist/node_modules/defu/dist/defu.mjs +2 -2
  165. package/dist/node_modules/defu/package.json +33 -28
  166. package/dist/node_modules/rendu/dist/_chunks/libs/cookie-es.mjs +151 -0
  167. package/dist/node_modules/rendu/dist/index.mjs +5 -112
  168. package/dist/node_modules/rendu/package.json +25 -24
  169. package/dist/node_modules/youch/build/helpers-B9BQYaS6.js +23 -0
  170. package/dist/node_modules/youch/build/index.js +204 -351
  171. package/dist/node_modules/youch/build/public/error_info/script.js +1 -1
  172. package/dist/node_modules/youch/build/public_dir-C5bujZKB.js +25 -0
  173. package/dist/node_modules/youch/build/src/templates/error_cause/main.js +44 -0
  174. package/dist/node_modules/youch/build/src/templates/error_info/main.js +72 -0
  175. package/dist/node_modules/youch/build/src/templates/error_metadata/main.js +65 -0
  176. package/dist/node_modules/youch/build/src/templates/error_stack/main.js +152 -0
  177. package/dist/node_modules/youch/build/src/templates/error_stack_source/main.js +46 -0
  178. package/dist/node_modules/youch/build/src/templates/header/main.js +24 -0
  179. package/dist/node_modules/youch/build/src/templates/layout/main.js +27 -0
  180. package/dist/node_modules/youch/package.json +35 -32
  181. package/dist/presets/_nitro/runtime/nitro-dev.mjs +12 -57
  182. package/dist/presets/_nitro/runtime/nitro-prerenderer.mjs +1 -0
  183. package/dist/presets/_nitro/runtime/service-worker.mjs +1 -2
  184. package/dist/presets/aws-lambda/runtime/_utils.mjs +6 -6
  185. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.mjs +3 -1
  186. package/dist/presets/azure/runtime/_utils.mjs +5 -5
  187. package/dist/presets/azure/runtime/azure-swa.mjs +5 -5
  188. package/dist/presets/bun/runtime/bun.mjs +9 -6
  189. package/dist/presets/cloudflare/runtime/_module-handler.mjs +1 -1
  190. package/dist/presets/cloudflare/runtime/cloudflare-durable.mjs +4 -4
  191. package/dist/presets/cloudflare/runtime/cloudflare-module.mjs +3 -3
  192. package/dist/presets/cloudflare/runtime/cloudflare-pages.mjs +2 -2
  193. package/dist/presets/cloudflare/runtime/plugin.dev.mjs +10 -21
  194. package/dist/presets/deno/runtime/deno-deploy.mjs +4 -4
  195. package/dist/presets/deno/runtime/deno-server.mjs +9 -6
  196. package/dist/presets/edgeone/runtime/edgeone.mjs +10 -0
  197. package/dist/presets/netlify/runtime/netlify-edge.mjs +2 -3
  198. package/dist/presets/netlify/runtime/netlify.mjs +1 -1
  199. package/dist/presets/node/runtime/node-cluster.mjs +5 -4
  200. package/dist/presets/node/runtime/node-middleware.mjs +1 -1
  201. package/dist/presets/node/runtime/node-server.mjs +8 -5
  202. package/dist/presets/stormkit/runtime/stormkit.mjs +1 -2
  203. package/dist/presets/vercel/runtime/cron-handler.mjs +25 -0
  204. package/dist/presets/vercel/runtime/queue-handler.mjs +21 -0
  205. package/dist/presets/vercel/runtime/vercel.node.mjs +3 -3
  206. package/dist/presets/vercel/runtime/vercel.web.mjs +3 -5
  207. package/dist/presets/winterjs/runtime/winterjs.mjs +10 -10
  208. package/dist/presets/zephyr/runtime/server.mjs +3 -0
  209. package/dist/runtime/internal/app.mjs +12 -11
  210. package/dist/runtime/internal/cache.d.mts +0 -4
  211. package/dist/runtime/internal/cache.mjs +32 -256
  212. package/dist/runtime/internal/context.d.mts +3 -1
  213. package/dist/runtime/internal/context.mjs +1 -9
  214. package/dist/runtime/internal/error/dev.d.mts +5 -4
  215. package/dist/runtime/internal/error/dev.mjs +47 -49
  216. package/dist/runtime/internal/error/hooks.d.mts +1 -1
  217. package/dist/runtime/internal/error/prod.d.mts +2 -5
  218. package/dist/runtime/internal/error/prod.mjs +19 -33
  219. package/dist/runtime/internal/error/utils.d.mts +4 -4
  220. package/dist/runtime/internal/meta.d.mts +1 -1
  221. package/dist/runtime/internal/plugin.d.mts +2 -2
  222. package/dist/runtime/internal/route-rules.d.mts +11 -4
  223. package/dist/runtime/internal/route-rules.mjs +15 -5
  224. package/dist/runtime/internal/routes/dev-tasks.d.mts +3 -2
  225. package/dist/runtime/internal/routes/dev-tasks.mjs +15 -10
  226. package/dist/runtime/internal/routes/openapi.mjs +2 -2
  227. package/dist/runtime/internal/routes/renderer-template.d.mts +1 -1
  228. package/dist/runtime/internal/routes/renderer-template.dev.d.mts +2 -1
  229. package/dist/runtime/internal/routes/scalar.mjs +3 -3
  230. package/dist/runtime/internal/routes/swagger.mjs +7 -4
  231. package/dist/runtime/internal/runtime-config.d.mts +1 -1
  232. package/dist/runtime/internal/runtime-config.mjs +2 -2
  233. package/dist/runtime/internal/static.mjs +5 -4
  234. package/dist/runtime/internal/task.d.mts +3 -1
  235. package/dist/runtime/internal/task.mjs +7 -7
  236. package/dist/runtime/internal/vite/dev-entry.mjs +6 -3
  237. package/dist/runtime/internal/vite/dev-worker.mjs +264 -0
  238. package/dist/runtime/meta.d.mts +1 -0
  239. package/dist/runtime/meta.mjs +2 -0
  240. package/dist/runtime/nitro.d.mts +2 -0
  241. package/dist/runtime/nitro.mjs +4 -2
  242. package/dist/runtime/virtual/error-handler.mjs +1 -1
  243. package/dist/runtime/virtual/renderer-template.mjs +1 -1
  244. package/dist/runtime/virtual/server-assets.d.mts +2 -1
  245. package/dist/runtime/virtual/tracing.d.mts +5 -0
  246. package/dist/runtime/virtual/tracing.mjs +1 -0
  247. package/dist/runtime/vite.d.mts +1 -1
  248. package/dist/types/index.d.mts +215 -195
  249. package/dist/types/index.mjs +1 -11
  250. package/dist/vite.d.mts +3 -8
  251. package/dist/vite.mjs +285 -253
  252. package/lib/tsconfig.json +3 -5
  253. package/package.json +97 -80
  254. package/dist/_libs/confbox.mjs +0 -2509
  255. package/dist/_libs/nypm+giget+tinyexec.mjs +0 -3603
  256. package/dist/_libs/rc9+c12+dotenv.mjs +0 -972
  257. package/dist/node_modules/hookable/dist/index.mjs +0 -266
  258. package/dist/node_modules/hookable/package.json +0 -52
  259. package/dist/node_modules/youch/build/chunk-4L7RY2JA.js +0 -42
  260. package/dist/node_modules/youch/build/chunk-7QV3D5YX.js +0 -83
  261. package/dist/node_modules/youch/build/chunk-AUGPHE32.js +0 -39
  262. package/dist/node_modules/youch/build/chunk-CM7DWJNZ.js +0 -44
  263. package/dist/node_modules/youch/build/chunk-EJH674NB.js +0 -223
  264. package/dist/node_modules/youch/build/chunk-OIJ3WD7L.js +0 -81
  265. package/dist/node_modules/youch/build/chunk-P36L72PL.js +0 -87
  266. package/dist/node_modules/youch/build/chunk-PE3GG3TN.js +0 -65
  267. package/dist/node_modules/youch/build/chunk-X53OIOJH.js +0 -70
  268. package/dist/presets/_nitro/runtime/nitro-dev.d.mts +0 -2
  269. package/dist/presets/_nitro/runtime/nitro-prerenderer.d.mts +0 -3
  270. package/dist/presets/_nitro/runtime/service-worker.d.mts +0 -2
  271. package/dist/presets/aws-amplify/runtime/aws-amplify.d.mts +0 -2
  272. package/dist/presets/aws-lambda/runtime/_utils.d.mts +0 -8
  273. package/dist/presets/aws-lambda/runtime/aws-lambda-streaming.d.mts +0 -2
  274. package/dist/presets/aws-lambda/runtime/aws-lambda.d.mts +0 -3
  275. package/dist/presets/azure/runtime/_utils.d.mts +0 -2
  276. package/dist/presets/azure/runtime/azure-swa.d.mts +0 -5
  277. package/dist/presets/bun/runtime/bun.d.mts +0 -3
  278. package/dist/presets/cloudflare/runtime/_module-handler.d.mts +0 -16
  279. package/dist/presets/cloudflare/runtime/cloudflare-durable.d.mts +0 -11
  280. package/dist/presets/cloudflare/runtime/cloudflare-module.d.mts +0 -3
  281. package/dist/presets/cloudflare/runtime/cloudflare-pages.d.mts +0 -20
  282. package/dist/presets/cloudflare/runtime/plugin.dev.d.mts +0 -3
  283. package/dist/presets/deno/runtime/deno-deploy.d.mts +0 -5
  284. package/dist/presets/deno/runtime/deno-server.d.mts +0 -3
  285. package/dist/presets/netlify/runtime/netlify-edge.d.mts +0 -3
  286. package/dist/presets/netlify/runtime/netlify.d.mts +0 -4
  287. package/dist/presets/node/runtime/node-cluster.d.mts +0 -3
  288. package/dist/presets/node/runtime/node-middleware.d.mts +0 -3
  289. package/dist/presets/node/runtime/node-server.d.mts +0 -3
  290. package/dist/presets/standard/runtime/server.d.mts +0 -3
  291. package/dist/presets/stormkit/runtime/stormkit.d.mts +0 -21
  292. package/dist/presets/vercel/runtime/isr.d.mts +0 -2
  293. package/dist/presets/vercel/runtime/vercel.node.d.mts +0 -3
  294. package/dist/presets/vercel/runtime/vercel.web.d.mts +0 -8
  295. package/dist/presets/winterjs/runtime/winterjs.d.mts +0 -2
  296. package/dist/presets/zeabur/runtime/zeabur.d.mts +0 -3
  297. package/dist/runtime/internal/vite/node-runner.mjs +0 -359
@@ -1,266 +0,0 @@
1
- //#region src/utils.ts
2
- function flatHooks(configHooks, hooks = {}, parentName) {
3
- for (const key in configHooks) {
4
- const subHook = configHooks[key];
5
- const name = parentName ? `${parentName}:${key}` : key;
6
- if (typeof subHook === "object" && subHook !== null) flatHooks(subHook, hooks, name);
7
- else if (typeof subHook === "function") hooks[name] = subHook;
8
- }
9
- return hooks;
10
- }
11
- function mergeHooks(...hooks) {
12
- const finalHooks = {};
13
- for (const hook of hooks) {
14
- const flatenHook = flatHooks(hook);
15
- for (const key in flatenHook) if (finalHooks[key]) finalHooks[key].push(flatenHook[key]);
16
- else finalHooks[key] = [flatenHook[key]];
17
- }
18
- for (const key in finalHooks) if (finalHooks[key].length > 1) {
19
- const array = finalHooks[key];
20
- finalHooks[key] = (...arguments_) => serial(array, (function_) => function_(...arguments_));
21
- } else finalHooks[key] = finalHooks[key][0];
22
- return finalHooks;
23
- }
24
- function serial(tasks, function_) {
25
- return tasks.reduce((promise, task) => promise.then(() => function_(task)), Promise.resolve());
26
- }
27
- const createTask = /* @__PURE__ */ (() => {
28
- if (console.createTask) return console.createTask;
29
- const defaultTask = { run: (fn) => fn() };
30
- return () => defaultTask;
31
- })();
32
- function callHooks(hooks, args, startIndex, task) {
33
- for (let i = startIndex; i < hooks.length; i += 1) try {
34
- const result = task ? task.run(() => hooks[i](...args)) : hooks[i](...args);
35
- if (result instanceof Promise) return result.then(() => callHooks(hooks, args, i + 1, task));
36
- } catch (error) {
37
- return Promise.reject(error);
38
- }
39
- }
40
- function serialTaskCaller(hooks, args, name) {
41
- if (hooks.length > 0) return callHooks(hooks, args, 0, createTask(name));
42
- }
43
- function parallelTaskCaller(hooks, args, name) {
44
- if (hooks.length > 0) {
45
- const task = createTask(name);
46
- return Promise.all(hooks.map((hook) => task.run(() => hook(...args))));
47
- }
48
- }
49
- /** @deprecated */
50
- function serialCaller(hooks, arguments_) {
51
- return hooks.reduce((promise, hookFunction) => promise.then(() => hookFunction(...arguments_ || [])), Promise.resolve());
52
- }
53
- /** @deprecated */
54
- function parallelCaller(hooks, args) {
55
- return Promise.all(hooks.map((hook) => hook(...args || [])));
56
- }
57
- function callEachWith(callbacks, arg0) {
58
- for (const callback of [...callbacks]) callback(arg0);
59
- }
60
-
61
- //#endregion
62
- //#region src/hookable.ts
63
- var Hookable = class {
64
- _hooks;
65
- _before;
66
- _after;
67
- _deprecatedHooks;
68
- _deprecatedMessages;
69
- constructor() {
70
- this._hooks = {};
71
- this._before = void 0;
72
- this._after = void 0;
73
- this._deprecatedMessages = void 0;
74
- this._deprecatedHooks = {};
75
- this.hook = this.hook.bind(this);
76
- this.callHook = this.callHook.bind(this);
77
- this.callHookWith = this.callHookWith.bind(this);
78
- }
79
- hook(name, function_, options = {}) {
80
- if (!name || typeof function_ !== "function") return () => {};
81
- const originalName = name;
82
- let dep;
83
- while (this._deprecatedHooks[name]) {
84
- dep = this._deprecatedHooks[name];
85
- name = dep.to;
86
- }
87
- if (dep && !options.allowDeprecated) {
88
- let message = dep.message;
89
- if (!message) message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
90
- if (!this._deprecatedMessages) this._deprecatedMessages = /* @__PURE__ */ new Set();
91
- if (!this._deprecatedMessages.has(message)) {
92
- console.warn(message);
93
- this._deprecatedMessages.add(message);
94
- }
95
- }
96
- if (!function_.name) try {
97
- Object.defineProperty(function_, "name", {
98
- get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
99
- configurable: true
100
- });
101
- } catch {}
102
- this._hooks[name] = this._hooks[name] || [];
103
- this._hooks[name].push(function_);
104
- return () => {
105
- if (function_) {
106
- this.removeHook(name, function_);
107
- function_ = void 0;
108
- }
109
- };
110
- }
111
- hookOnce(name, function_) {
112
- let _unreg;
113
- let _function = (...arguments_) => {
114
- if (typeof _unreg === "function") _unreg();
115
- _unreg = void 0;
116
- _function = void 0;
117
- return function_(...arguments_);
118
- };
119
- _unreg = this.hook(name, _function);
120
- return _unreg;
121
- }
122
- removeHook(name, function_) {
123
- const hooks = this._hooks[name];
124
- if (hooks) {
125
- const index = hooks.indexOf(function_);
126
- if (index !== -1) hooks.splice(index, 1);
127
- if (hooks.length === 0) this._hooks[name] = void 0;
128
- }
129
- }
130
- deprecateHook(name, deprecated) {
131
- this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
132
- const _hooks = this._hooks[name] || [];
133
- this._hooks[name] = void 0;
134
- for (const hook of _hooks) this.hook(name, hook);
135
- }
136
- deprecateHooks(deprecatedHooks) {
137
- for (const name in deprecatedHooks) this.deprecateHook(name, deprecatedHooks[name]);
138
- }
139
- addHooks(configHooks) {
140
- const hooks = flatHooks(configHooks);
141
- const removeFns = Object.keys(hooks).map((key) => this.hook(key, hooks[key]));
142
- return () => {
143
- for (const unreg of removeFns) unreg();
144
- removeFns.length = 0;
145
- };
146
- }
147
- removeHooks(configHooks) {
148
- const hooks = flatHooks(configHooks);
149
- for (const key in hooks) this.removeHook(key, hooks[key]);
150
- }
151
- removeAllHooks() {
152
- this._hooks = {};
153
- }
154
- callHook(name, ...args) {
155
- return this.callHookWith(serialTaskCaller, name, args);
156
- }
157
- callHookParallel(name, ...args) {
158
- return this.callHookWith(parallelTaskCaller, name, args);
159
- }
160
- callHookWith(caller, name, args) {
161
- const event = this._before || this._after ? {
162
- name,
163
- args,
164
- context: {}
165
- } : void 0;
166
- if (this._before) callEachWith(this._before, event);
167
- const result = caller(this._hooks[name] ? [...this._hooks[name]] : [], args, name);
168
- if (result instanceof Promise) return result.finally(() => {
169
- if (this._after && event) callEachWith(this._after, event);
170
- });
171
- if (this._after && event) callEachWith(this._after, event);
172
- return result;
173
- }
174
- beforeEach(function_) {
175
- this._before = this._before || [];
176
- this._before.push(function_);
177
- return () => {
178
- if (this._before !== void 0) {
179
- const index = this._before.indexOf(function_);
180
- if (index !== -1) this._before.splice(index, 1);
181
- }
182
- };
183
- }
184
- afterEach(function_) {
185
- this._after = this._after || [];
186
- this._after.push(function_);
187
- return () => {
188
- if (this._after !== void 0) {
189
- const index = this._after.indexOf(function_);
190
- if (index !== -1) this._after.splice(index, 1);
191
- }
192
- };
193
- }
194
- };
195
- function createHooks() {
196
- return new Hookable();
197
- }
198
- var HookableCore = class {
199
- _hooks;
200
- constructor() {
201
- this._hooks = {};
202
- }
203
- hook(name, fn) {
204
- if (!name || typeof fn !== "function") return () => {};
205
- this._hooks[name] = this._hooks[name] || [];
206
- this._hooks[name].push(fn);
207
- return () => {
208
- if (fn) {
209
- this.removeHook(name, fn);
210
- fn = void 0;
211
- }
212
- };
213
- }
214
- removeHook(name, function_) {
215
- const hooks = this._hooks[name];
216
- if (hooks) {
217
- const index = hooks.indexOf(function_);
218
- if (index !== -1) hooks.splice(index, 1);
219
- if (hooks.length === 0) this._hooks[name] = void 0;
220
- }
221
- }
222
- callHook(name, ...args) {
223
- const hooks = this._hooks[name];
224
- if (!hooks || hooks.length === 0) return;
225
- return callHooks(hooks, args, 0);
226
- }
227
- };
228
-
229
- //#endregion
230
- //#region src/debugger.ts
231
- const isBrowser = typeof window !== "undefined";
232
- /** Start debugging hook names and timing in console */
233
- function createDebugger(hooks, _options = {}) {
234
- const options = {
235
- inspect: isBrowser,
236
- group: isBrowser,
237
- filter: () => true,
238
- ..._options
239
- };
240
- const _filter = options.filter;
241
- const filter = typeof _filter === "string" ? (name) => name.startsWith(_filter) : _filter;
242
- const _tag = options.tag ? `[${options.tag}] ` : "";
243
- const logPrefix = (event) => _tag + event.name + "".padEnd(event._id, "\0");
244
- const _idCtr = {};
245
- const unsubscribeBefore = hooks.beforeEach((event) => {
246
- if (filter !== void 0 && !filter(event.name)) return;
247
- _idCtr[event.name] = _idCtr[event.name] || 0;
248
- event._id = _idCtr[event.name]++;
249
- console.time(logPrefix(event));
250
- });
251
- const unsubscribeAfter = hooks.afterEach((event) => {
252
- if (filter !== void 0 && !filter(event.name)) return;
253
- if (options.group) console.groupCollapsed(event.name);
254
- if (options.inspect) console.timeLog(logPrefix(event), event.args);
255
- else console.timeEnd(logPrefix(event));
256
- if (options.group) console.groupEnd();
257
- _idCtr[event.name]--;
258
- });
259
- return { close: () => {
260
- unsubscribeBefore();
261
- unsubscribeAfter();
262
- } };
263
- }
264
-
265
- //#endregion
266
- export { Hookable, HookableCore, createDebugger, createHooks, flatHooks, mergeHooks, parallelCaller, serial, serialCaller };
@@ -1,52 +0,0 @@
1
- {
2
- "name": "hookable",
3
- "version": "6.0.1",
4
- "description": "Awaitable hook system",
5
- "keywords": [
6
- "hook",
7
- "hookable",
8
- "plugin",
9
- "tapable",
10
- "tappable"
11
- ],
12
- "repository": "unjs/hookable",
13
- "license": "MIT",
14
- "sideEffects": false,
15
- "type": "module",
16
- "exports": {
17
- ".": "./dist/index.mjs"
18
- },
19
- "main": "./dist/index.mjs",
20
- "types": "./dist/index.d.mts",
21
- "files": [
22
- "dist"
23
- ],
24
- "scripts": {
25
- "bench": "node --expose-gc --allow-natives-syntax test/bench.ts",
26
- "build": "obuild src/index.ts",
27
- "dev": "vitest",
28
- "lint": "eslint --cache . && prettier -c src test",
29
- "lint:fix": "eslint --cache . --fix && prettier -c src test -w",
30
- "prepublish": "pnpm build",
31
- "release": "pnpm test && pnpm build && changelogen --release --publish --push",
32
- "test": "pnpm lint && vitest run --coverage",
33
- "test:types": "tsc --noEmit"
34
- },
35
- "devDependencies": {
36
- "@types/node": "^25.0.3",
37
- "@vitest/coverage-v8": "^4.0.16",
38
- "changelogen": "^0.6.2",
39
- "esbuild": "^0.27.2",
40
- "eslint": "^9.39.2",
41
- "eslint-config-unjs": "^0.5.0",
42
- "expect-type": "^1.3.0",
43
- "hookable-prev": "npm:hookable@^5.5.3",
44
- "mitata": "^1.0.34",
45
- "obuild": "^0.4.9",
46
- "prettier": "^3.7.4",
47
- "typescript": "^5.9.3",
48
- "vite": "^7.3.0",
49
- "vitest": "^4.0.16"
50
- },
51
- "packageManager": "pnpm@10.26.0"
52
- }
@@ -1,42 +0,0 @@
1
- // src/helpers.ts
2
- import useColors from "@poppinss/colors";
3
- var ANSI_REGEX = new RegExp(
4
- [
5
- `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,
6
- "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
7
- ].join("|"),
8
- "g"
9
- );
10
- function htmlEscape(value) {
11
- return value.replace(/&/g, "&amp;").replace(/\\"/g, "&bsol;&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
12
- }
13
- function wordWrap(value, options) {
14
- const width = options.width;
15
- const indent = options.indent;
16
- const newLine = `${options.newLine}${indent}`;
17
- if (!width) {
18
- return options.escape ? options.escape(value) : htmlEscape(value);
19
- }
20
- let regexString = ".{1," + width + "}";
21
- regexString += "([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)";
22
- const re = new RegExp(regexString, "g");
23
- const lines = value.match(re) || [];
24
- const result = lines.map(function(line) {
25
- if (line.slice(-1) === "\n") {
26
- line = line.slice(0, line.length - 1);
27
- }
28
- return options.escape ? options.escape(line) : htmlEscape(line);
29
- }).join(newLine);
30
- return result;
31
- }
32
- function stripAnsi(value) {
33
- return value.replace(ANSI_REGEX, "");
34
- }
35
- var colors = useColors.ansi();
36
-
37
- export {
38
- htmlEscape,
39
- wordWrap,
40
- stripAnsi,
41
- colors
42
- };
@@ -1,83 +0,0 @@
1
- import {
2
- colors,
3
- stripAnsi
4
- } from "./chunk-4L7RY2JA.js";
5
- import {
6
- BaseComponent,
7
- publicDirURL
8
- } from "./chunk-PE3GG3TN.js";
9
-
10
- // src/templates/error_stack_source/main.ts
11
- import { extname } from "path";
12
- import { highlightText } from "@speed-highlight/core";
13
- import { highlightText as cliHighlightText } from "@speed-highlight/core/terminal";
14
- var GUTTER = "\u2503";
15
- var POINTER = "\u276F";
16
- var LANGS_MAP = {
17
- ".tsx": "ts",
18
- ".jsx": "js",
19
- ".js": "js",
20
- ".ts": "ts",
21
- ".css": "css",
22
- ".json": "json",
23
- ".html": "html",
24
- ".astro": "ts",
25
- ".vue": "ts"
26
- };
27
- var ErrorStackSource = class extends BaseComponent {
28
- cssFile = new URL("./error_stack_source/style.css", publicDirURL);
29
- /**
30
- * The toHTML method is used to output the HTML for the
31
- * web view
32
- */
33
- async toHTML(props) {
34
- const frame = props.frame;
35
- if (frame.type === "native" || !frame.source || !frame.fileName) {
36
- return "";
37
- }
38
- const language = LANGS_MAP[extname(frame.fileName)] ?? "plain";
39
- const highlightMarginTop = `${frame.source.findIndex((chunk) => {
40
- return chunk.lineNumber === frame.lineNumber;
41
- }) * 24}px`;
42
- const highlight = `<div class="line-highlight" style="margin-top: ${highlightMarginTop}"></div>`;
43
- let code = await highlightText(
44
- frame.source.map((chunk) => chunk.chunk).join("\n"),
45
- language,
46
- true
47
- );
48
- code = code.replace(
49
- '<div class="shj-numbers">',
50
- `<div class="shj-numbers" style="counter-set: line ${frame.source[0].lineNumber - 1}">`
51
- );
52
- return `<pre><code class="shj-lang-js">${highlight}${code}</code></pre>`;
53
- }
54
- /**
55
- * The toANSI method is used to output the text for the console
56
- */
57
- async toANSI(props) {
58
- const frame = props.frame;
59
- if (frame.type === "native" || !frame.source || !frame.fileName) {
60
- return "";
61
- }
62
- const language = LANGS_MAP[extname(frame.fileName)] ?? "plain";
63
- const largestLineNumber = Math.max(...frame.source.map(({ lineNumber }) => lineNumber));
64
- const lineNumberCols = String(largestLineNumber).length;
65
- const code = frame.source.map(({ chunk }) => chunk).join("\n");
66
- const highlighted = await cliHighlightText(code, language);
67
- return `
68
-
69
- ${highlighted.split("\n").map((line, index) => {
70
- const lineNumber = frame.source[index].lineNumber;
71
- const alignedLineNumber = String(lineNumber).padStart(lineNumberCols, " ");
72
- if (lineNumber === props.frame.lineNumber) {
73
- return ` ${colors.bgRed(`${POINTER} ${alignedLineNumber} ${GUTTER} ${stripAnsi(line)}`)}`;
74
- }
75
- return ` ${colors.dim(alignedLineNumber)} ${colors.dim(GUTTER)} ${line}`;
76
- }).join("\n")}
77
- `;
78
- }
79
- };
80
-
81
- export {
82
- ErrorStackSource
83
- };
@@ -1,39 +0,0 @@
1
- import {
2
- BaseComponent,
3
- publicDirURL
4
- } from "./chunk-PE3GG3TN.js";
5
-
6
- // src/templates/header/main.ts
7
- var DARK_MODE_SVG = `<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M0 0h24v24H0z" stroke="none"/><path d="M12 3h.393a7.5 7.5 0 0 0 7.92 12.446A9 9 0 1 1 12 2.992z"/></svg>`;
8
- var LIGHT_MODE_SVG = `<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" width="15" height="15" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M0 0h24v24H0z" stroke="none"/><circle cx="12" cy="12" r="4"/><path d="M3 12h1m8-9v1m8 8h1m-9 8v1M5.6 5.6l.7.7m12.1-.7-.7.7m0 11.4.7.7m-12.1-.7-.7.7"/></svg>`;
9
- var Header = class extends BaseComponent {
10
- cssFile = new URL("./header/style.css", publicDirURL);
11
- scriptFile = new URL("./header/script.js", publicDirURL);
12
- /**
13
- * The toHTML method is used to output the HTML for the
14
- * web view
15
- */
16
- async toHTML() {
17
- return `<header id="header">
18
- <div id="header-actions">
19
- <div id="toggle-theme-container">
20
- <input type="checkbox" id="toggle-theme-checkbox" />
21
- <label id="toggle-theme-label" for="toggle-theme-checkbox">
22
- <span id="light-theme-indicator" title="Light mode">${LIGHT_MODE_SVG}</span>
23
- <span id="dark-theme-indicator" title="Dark mode">${DARK_MODE_SVG}</span>
24
- </label>
25
- </div>
26
- </div>
27
- </header>`;
28
- }
29
- /**
30
- * The toANSI method is used to output the text for the console
31
- */
32
- async toANSI() {
33
- return "";
34
- }
35
- };
36
-
37
- export {
38
- Header
39
- };
@@ -1,44 +0,0 @@
1
- import {
2
- BaseComponent,
3
- publicDirURL
4
- } from "./chunk-PE3GG3TN.js";
5
-
6
- // src/templates/layout/main.ts
7
- var Layout = class extends BaseComponent {
8
- cssFile = new URL("./layout/style.css", publicDirURL);
9
- scriptFile = new URL("./layout/script.js", publicDirURL);
10
- /**
11
- * The toHTML method is used to output the HTML for the
12
- * web view
13
- */
14
- async toHTML(props) {
15
- return `<!DOCTYPE html>
16
- <html lang="en">
17
- <head>
18
- <meta charset="UTF-8" />
19
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
20
- <title>${props.title}</title>
21
- <!-- STYLES -->
22
- <!-- GLOBAL SCRIPT -->
23
- </head>
24
- <body>
25
- <div id="layout">
26
- ${await props.children()}
27
- </div>
28
- <!-- SCRIPTS -->
29
- </body>
30
- </html>`;
31
- }
32
- /**
33
- * The toANSI method is used to output the text for the console
34
- */
35
- async toANSI(props) {
36
- return `
37
- ${await props.children()}
38
- `;
39
- }
40
- };
41
-
42
- export {
43
- Layout
44
- };