astro 6.0.0-alpha.0 → 6.0.0-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 (567) hide show
  1. package/astro-jsx.d.ts +11 -0
  2. package/client.d.ts +17 -41
  3. package/components/Code.astro +2 -2
  4. package/components/Image.astro +2 -2
  5. package/components/Picture.astro +1 -1
  6. package/dist/actions/consts.d.ts +2 -5
  7. package/dist/actions/consts.js +4 -8
  8. package/dist/actions/integration.js +2 -4
  9. package/dist/actions/runtime/client.d.ts +84 -3
  10. package/dist/actions/runtime/client.js +238 -7
  11. package/dist/actions/runtime/entrypoints/client.d.ts +7 -0
  12. package/dist/actions/runtime/entrypoints/client.js +91 -0
  13. package/dist/actions/runtime/entrypoints/route.d.ts +2 -0
  14. package/dist/actions/runtime/{route.js → entrypoints/route.js} +1 -1
  15. package/dist/actions/runtime/entrypoints/server.d.ts +6 -0
  16. package/dist/actions/runtime/entrypoints/server.js +33 -0
  17. package/dist/actions/runtime/server.d.ts +11 -18
  18. package/dist/actions/runtime/server.js +162 -82
  19. package/dist/actions/runtime/types.d.ts +64 -0
  20. package/dist/actions/utils.d.ts +2 -2
  21. package/dist/actions/utils.js +2 -2
  22. package/dist/actions/vite-plugin-actions.js +58 -47
  23. package/dist/assets/build/generate.d.ts +2 -2
  24. package/dist/assets/build/generate.js +12 -10
  25. package/dist/assets/consts.d.ts +1 -0
  26. package/dist/assets/consts.js +2 -0
  27. package/dist/assets/endpoint/config.js +2 -2
  28. package/dist/assets/endpoint/dev.js +7 -6
  29. package/dist/assets/fonts/config.d.ts +91 -350
  30. package/dist/assets/fonts/config.js +35 -136
  31. package/dist/assets/fonts/constants.js +1 -1
  32. package/dist/assets/fonts/core/dedupe-font-faces.d.ts +2 -0
  33. package/dist/assets/fonts/core/dedupe-font-faces.js +30 -0
  34. package/dist/assets/fonts/definitions.d.ts +9 -22
  35. package/dist/assets/fonts/infra/build-remote-font-provider-mod-resolver.d.ts +4 -0
  36. package/dist/assets/fonts/infra/build-remote-font-provider-mod-resolver.js +8 -0
  37. package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.d.ts +15 -0
  38. package/dist/assets/fonts/infra/build-url-proxy-hash-resolver.js +20 -0
  39. package/dist/assets/fonts/infra/build-url-resolver.d.ts +12 -0
  40. package/dist/assets/fonts/infra/build-url-resolver.js +40 -0
  41. package/dist/assets/fonts/infra/cached-font-fetcher.d.ts +11 -0
  42. package/dist/assets/fonts/infra/cached-font-fetcher.js +42 -0
  43. package/dist/assets/fonts/infra/capsize-font-metrics-resolver.d.ts +18 -0
  44. package/dist/assets/fonts/infra/capsize-font-metrics-resolver.js +71 -0
  45. package/dist/assets/fonts/infra/data-collector.d.ts +10 -0
  46. package/dist/assets/fonts/infra/data-collector.js +35 -0
  47. package/dist/assets/fonts/infra/dev-remote-font-provider-mod-resolver.d.ts +9 -0
  48. package/dist/assets/fonts/infra/dev-remote-font-provider-mod-resolver.js +14 -0
  49. package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.d.ts +15 -0
  50. package/dist/assets/fonts/infra/dev-url-proxy-hash-resolver.js +37 -0
  51. package/dist/assets/fonts/infra/dev-url-resolver.d.ts +10 -0
  52. package/dist/assets/fonts/infra/dev-url-resolver.js +29 -0
  53. package/dist/assets/fonts/infra/font-type-extractor.d.ts +5 -0
  54. package/dist/assets/fonts/infra/font-type-extractor.js +21 -0
  55. package/dist/assets/fonts/infra/fontace-font-file-reader.d.ts +11 -0
  56. package/dist/assets/fonts/infra/fontace-font-file-reader.js +25 -0
  57. package/dist/assets/fonts/infra/levenshtein-string-matcher.d.ts +5 -0
  58. package/dist/assets/fonts/infra/levenshtein-string-matcher.js +145 -0
  59. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.d.ts +4 -0
  60. package/dist/assets/fonts/infra/local-url-proxy-content-resolver.js +14 -0
  61. package/dist/assets/fonts/{implementations/css-renderer.d.ts → infra/minifiable-css-renderer.d.ts} +8 -3
  62. package/dist/assets/fonts/{implementations/css-renderer.js → infra/minifiable-css-renderer.js} +12 -10
  63. package/dist/assets/fonts/infra/remote-font-provider-resolver.d.ts +10 -0
  64. package/dist/assets/fonts/infra/remote-font-provider-resolver.js +49 -0
  65. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.d.ts +4 -0
  66. package/dist/assets/fonts/infra/remote-url-proxy-content-resolver.js +9 -0
  67. package/dist/assets/fonts/infra/require-local-provider-url-resolver.d.ts +9 -0
  68. package/dist/assets/fonts/infra/require-local-provider-url-resolver.js +22 -0
  69. package/dist/assets/fonts/infra/system-fallbacks-provider.d.ts +6 -0
  70. package/dist/assets/fonts/{implementations → infra}/system-fallbacks-provider.js +8 -11
  71. package/dist/assets/fonts/infra/unstorage-fs-storage.d.ts +11 -0
  72. package/dist/assets/fonts/infra/unstorage-fs-storage.js +26 -0
  73. package/dist/assets/fonts/infra/url-proxy.d.ts +16 -0
  74. package/dist/assets/fonts/infra/url-proxy.js +50 -0
  75. package/dist/assets/fonts/infra/xxhash-hasher.d.ts +7 -0
  76. package/dist/assets/fonts/infra/xxhash-hasher.js +18 -0
  77. package/dist/assets/fonts/orchestrate.d.ts +1 -2
  78. package/dist/assets/fonts/orchestrate.js +50 -17
  79. package/dist/assets/fonts/providers/index.d.ts +6 -24
  80. package/dist/assets/fonts/types.d.ts +138 -8
  81. package/dist/assets/fonts/utils.d.ts +1 -2
  82. package/dist/assets/fonts/vite-plugin-fonts.js +66 -65
  83. package/dist/assets/services/noop.js +11 -1
  84. package/dist/assets/services/service.d.ts +1 -1
  85. package/dist/assets/services/service.js +55 -51
  86. package/dist/assets/types.d.ts +2 -2
  87. package/dist/assets/utils/index.d.ts +1 -3
  88. package/dist/assets/utils/index.js +4 -9
  89. package/dist/assets/utils/{transformToPath.d.ts → node.d.ts} +15 -1
  90. package/dist/assets/utils/{node/emitAsset.js → node.js} +34 -6
  91. package/dist/assets/utils/svg.d.ts +2 -1
  92. package/dist/assets/utils/svg.js +30 -4
  93. package/dist/assets/vite-plugin-assets.js +36 -19
  94. package/dist/cli/add/index.js +21 -13
  95. package/dist/cli/create-key/infra/crypto-key-generator.d.ts +3 -1
  96. package/dist/cli/create-key/infra/crypto-key-generator.js +7 -9
  97. package/dist/cli/definitions.d.ts +19 -2
  98. package/dist/cli/dev/index.js +1 -1
  99. package/dist/cli/docs/core/open-docs.d.ts +5 -3
  100. package/dist/cli/docs/core/open-docs.js +2 -9
  101. package/dist/cli/docs/definitions.d.ts +3 -11
  102. package/dist/cli/docs/domain/cloud-ide.d.ts +1 -0
  103. package/dist/cli/docs/domain/cloud-ide.js +0 -0
  104. package/dist/cli/docs/infra/process-cloud-ide-provider.d.ts +5 -0
  105. package/dist/cli/docs/infra/process-cloud-ide-provider.js +6 -0
  106. package/dist/cli/flags.d.ts +1 -0
  107. package/dist/cli/index.js +78 -21
  108. package/dist/cli/info/core/get-package-manager.d.ts +8 -0
  109. package/dist/cli/info/core/get-package-manager.js +37 -0
  110. package/dist/cli/info/core/info.d.ts +21 -0
  111. package/dist/cli/info/core/info.js +21 -0
  112. package/dist/cli/info/definitions.d.ts +30 -0
  113. package/dist/cli/info/definitions.js +0 -0
  114. package/dist/cli/info/domain/debug-info.d.ts +1 -0
  115. package/dist/cli/info/domain/debug-info.js +0 -0
  116. package/dist/cli/info/infra/bun-package-manager.d.ts +5 -0
  117. package/dist/cli/info/infra/bun-package-manager.js +9 -0
  118. package/dist/cli/info/infra/cli-astro-config-resolver.d.ts +10 -0
  119. package/dist/cli/info/infra/cli-astro-config-resolver.js +36 -0
  120. package/dist/cli/info/infra/cli-clipboard.d.ts +13 -0
  121. package/dist/cli/info/infra/cli-clipboard.js +78 -0
  122. package/dist/cli/info/infra/cli-debug-info-provider.d.ts +15 -0
  123. package/dist/cli/info/infra/cli-debug-info-provider.js +57 -0
  124. package/dist/cli/info/infra/dev-debug-info-provider.d.ts +18 -0
  125. package/dist/cli/info/infra/dev-debug-info-provider.js +36 -0
  126. package/dist/cli/info/infra/noop-package-manager.d.ts +5 -0
  127. package/dist/cli/info/infra/noop-package-manager.js +9 -0
  128. package/dist/cli/info/infra/npm-package-manager.d.ts +10 -0
  129. package/dist/cli/info/infra/npm-package-manager.js +32 -0
  130. package/dist/cli/info/infra/pnpm-package-manager.d.ts +10 -0
  131. package/dist/cli/info/infra/pnpm-package-manager.js +33 -0
  132. package/dist/cli/info/infra/process-node-version-provider.d.ts +4 -0
  133. package/dist/cli/info/infra/process-node-version-provider.js +6 -0
  134. package/dist/cli/info/infra/process-package-manager-user-agent-provider.d.ts +4 -0
  135. package/dist/cli/info/infra/process-package-manager-user-agent-provider.js +7 -0
  136. package/dist/cli/info/infra/prompts-prompt.d.ts +11 -0
  137. package/dist/cli/info/infra/prompts-prompt.js +25 -0
  138. package/dist/cli/info/infra/styled-debug-info-formatter.d.ts +10 -0
  139. package/dist/cli/info/infra/styled-debug-info-formatter.js +29 -0
  140. package/dist/cli/info/infra/yarn-package-manager.d.ts +10 -0
  141. package/dist/cli/info/infra/yarn-package-manager.js +34 -0
  142. package/dist/cli/infra/build-time-astro-version-provider.d.ts +3 -1
  143. package/dist/cli/infra/build-time-astro-version-provider.js +4 -8
  144. package/dist/cli/infra/cli-command-runner.d.ts +7 -4
  145. package/dist/cli/infra/cli-command-runner.js +14 -10
  146. package/dist/cli/infra/logger-help-display.d.ts +11 -7
  147. package/dist/cli/infra/logger-help-display.js +62 -50
  148. package/dist/cli/infra/passthrough-text-styler.d.ts +9 -0
  149. package/dist/cli/infra/passthrough-text-styler.js +23 -0
  150. package/dist/cli/infra/piccolore-text-styler.d.ts +2 -0
  151. package/dist/cli/infra/piccolore-text-styler.js +5 -0
  152. package/dist/cli/infra/process-operating-system-provider.d.ts +6 -0
  153. package/dist/cli/infra/process-operating-system-provider.js +12 -0
  154. package/dist/cli/infra/tinyexec-command-executor.d.ts +6 -0
  155. package/dist/cli/infra/tinyexec-command-executor.js +34 -0
  156. package/dist/cli/install-package.js +1 -1
  157. package/dist/cli/preferences/index.js +6 -2
  158. package/dist/cli/preview/index.js +1 -1
  159. package/dist/cli/utils/format-version.js +1 -1
  160. package/dist/config/index.js +9 -5
  161. package/dist/container/index.js +19 -13
  162. package/dist/container/pipeline.d.ts +2 -1
  163. package/dist/container/pipeline.js +4 -11
  164. package/dist/container/vite-plugin-container.js +7 -4
  165. package/dist/content/config.d.ts +34 -40
  166. package/dist/content/content-layer.js +13 -18
  167. package/dist/content/loaders/errors.d.ts +3 -3
  168. package/dist/content/loaders/errors.js +5 -2
  169. package/dist/content/loaders/glob.js +6 -1
  170. package/dist/content/loaders/types.d.ts +11 -4
  171. package/dist/content/runtime-assets.d.ts +4 -4
  172. package/dist/content/runtime-assets.js +2 -2
  173. package/dist/content/runtime.d.ts +21 -20
  174. package/dist/content/runtime.js +14 -16
  175. package/dist/content/types-generator.js +90 -54
  176. package/dist/content/utils.d.ts +46 -338
  177. package/dist/content/utils.js +52 -50
  178. package/dist/content/vite-plugin-content-assets.d.ts +12 -4
  179. package/dist/content/vite-plugin-content-assets.js +152 -102
  180. package/dist/content/vite-plugin-content-imports.js +58 -40
  181. package/dist/content/vite-plugin-content-virtual-mod.js +95 -77
  182. package/dist/core/app/app.d.ts +5 -0
  183. package/dist/core/app/app.js +13 -0
  184. package/dist/core/app/base.d.ts +132 -0
  185. package/dist/core/app/base.js +448 -0
  186. package/dist/core/app/common.d.ts +6 -2
  187. package/dist/core/app/common.js +60 -33
  188. package/dist/core/app/dev/app.d.ts +15 -0
  189. package/dist/core/app/dev/app.js +86 -0
  190. package/dist/core/app/dev/pipeline.d.ts +13 -0
  191. package/dist/core/app/dev/pipeline.js +123 -0
  192. package/dist/core/app/entrypoint.d.ts +2 -0
  193. package/dist/core/app/entrypoint.js +15 -0
  194. package/dist/core/app/index.d.ts +7 -99
  195. package/dist/core/app/index.js +20 -486
  196. package/dist/core/app/logging.d.ts +3 -0
  197. package/dist/core/app/logging.js +11 -0
  198. package/dist/core/app/manifest.d.ts +9 -0
  199. package/dist/core/app/manifest.js +107 -0
  200. package/dist/core/app/middlewares.js +1 -1
  201. package/dist/core/app/node.js +14 -13
  202. package/dist/core/app/pipeline.d.ts +6 -5
  203. package/dist/core/app/pipeline.js +65 -49
  204. package/dist/core/app/types.d.ts +58 -22
  205. package/dist/core/app/validate-forwarded-headers.d.ts +16 -0
  206. package/dist/core/app/validate-forwarded-headers.js +60 -0
  207. package/dist/core/base-pipeline.d.ts +22 -14
  208. package/dist/core/base-pipeline.js +54 -6
  209. package/dist/core/build/app.d.ts +13 -0
  210. package/dist/core/build/app.js +38 -0
  211. package/dist/core/build/common.d.ts +1 -1
  212. package/dist/core/build/common.js +2 -2
  213. package/dist/core/build/generate.d.ts +1 -1
  214. package/dist/core/build/generate.js +96 -204
  215. package/dist/core/build/graph.js +2 -2
  216. package/dist/core/build/index.js +11 -16
  217. package/dist/core/build/internal.d.ts +2 -27
  218. package/dist/core/build/internal.js +1 -44
  219. package/dist/core/build/page-data.js +1 -1
  220. package/dist/core/build/pipeline.d.ts +15 -26
  221. package/dist/core/build/pipeline.js +106 -170
  222. package/dist/core/build/plugins/index.d.ts +4 -2
  223. package/dist/core/build/plugins/index.js +17 -23
  224. package/dist/core/build/plugins/plugin-analyzer.d.ts +2 -2
  225. package/dist/core/build/plugins/plugin-analyzer.js +5 -13
  226. package/dist/core/build/plugins/plugin-component-entry.d.ts +7 -2
  227. package/dist/core/build/plugins/plugin-component-entry.js +15 -17
  228. package/dist/core/build/plugins/plugin-css.d.ts +2 -2
  229. package/dist/core/build/plugins/plugin-css.js +90 -41
  230. package/dist/core/build/plugins/plugin-internals.d.ts +2 -2
  231. package/dist/core/build/plugins/plugin-internals.js +24 -18
  232. package/dist/core/build/plugins/plugin-manifest.d.ts +33 -5
  233. package/dist/core/build/plugins/plugin-manifest.js +89 -129
  234. package/dist/core/build/plugins/plugin-middleware.d.ts +2 -2
  235. package/dist/core/build/plugins/plugin-middleware.js +5 -7
  236. package/dist/core/build/plugins/plugin-noop.d.ts +3 -0
  237. package/dist/core/build/plugins/plugin-noop.js +35 -0
  238. package/dist/core/build/plugins/plugin-prerender.d.ts +2 -2
  239. package/dist/core/build/plugins/plugin-prerender.js +7 -64
  240. package/dist/core/build/plugins/plugin-scripts.d.ts +5 -2
  241. package/dist/core/build/plugins/plugin-scripts.js +5 -13
  242. package/dist/core/build/plugins/plugin-ssr.d.ts +2 -2
  243. package/dist/core/build/plugins/plugin-ssr.js +85 -139
  244. package/dist/core/build/plugins/util.d.ts +1 -25
  245. package/dist/core/build/plugins/util.js +0 -47
  246. package/dist/core/build/runtime.d.ts +26 -0
  247. package/dist/core/build/runtime.js +45 -0
  248. package/dist/core/build/static-build.d.ts +2 -2
  249. package/dist/core/build/static-build.js +181 -155
  250. package/dist/core/build/types.d.ts +1 -2
  251. package/dist/core/build/util.d.ts +0 -1
  252. package/dist/core/build/util.js +0 -7
  253. package/dist/core/compile/compile.d.ts +2 -3
  254. package/dist/core/compile/compile.js +2 -2
  255. package/dist/core/config/config.js +3 -3
  256. package/dist/core/config/index.d.ts +0 -1
  257. package/dist/core/config/index.js +0 -2
  258. package/dist/core/config/schemas/base.d.ts +336 -1434
  259. package/dist/core/config/schemas/base.js +42 -41
  260. package/dist/core/config/schemas/refined.d.ts +2 -2
  261. package/dist/core/config/schemas/refined.js +1 -1
  262. package/dist/core/config/schemas/relative.d.ts +672 -1761
  263. package/dist/core/config/schemas/relative.js +4 -4
  264. package/dist/core/config/settings.d.ts +3 -3
  265. package/dist/core/config/settings.js +5 -6
  266. package/dist/core/config/validate.js +13 -2
  267. package/dist/core/config/vite-load.js +12 -3
  268. package/dist/core/constants.d.ts +11 -0
  269. package/dist/core/constants.js +20 -1
  270. package/dist/core/create-vite.d.ts +2 -6
  271. package/dist/core/create-vite.js +35 -43
  272. package/dist/core/csp/common.d.ts +1 -1
  273. package/dist/core/csp/common.js +1 -1
  274. package/dist/core/csp/config.d.ts +8 -4
  275. package/dist/core/csp/config.js +1 -1
  276. package/dist/core/csp/runtime.d.ts +11 -0
  277. package/dist/core/csp/runtime.js +35 -0
  278. package/dist/core/dev/container.js +13 -7
  279. package/dist/core/dev/dev.js +2 -2
  280. package/dist/core/dev/restart.js +15 -6
  281. package/dist/core/errors/dev/runtime.d.ts +6 -0
  282. package/dist/core/errors/dev/runtime.js +27 -0
  283. package/dist/core/errors/dev/utils.js +1 -1
  284. package/dist/core/errors/dev/vite.js +1 -1
  285. package/dist/core/errors/errors-data.d.ts +32 -16
  286. package/dist/core/errors/errors-data.js +23 -10
  287. package/dist/core/errors/errors.d.ts +3 -3
  288. package/dist/core/errors/errors.js +8 -8
  289. package/dist/core/errors/zod-error-map.d.ts +2 -2
  290. package/dist/core/errors/zod-error-map.js +26 -24
  291. package/dist/core/logger/core.js +1 -1
  292. package/dist/core/messages.d.ts +2 -2
  293. package/dist/core/messages.js +3 -3
  294. package/dist/core/middleware/callMiddleware.js +1 -1
  295. package/dist/core/middleware/defineMiddleware.d.ts +2 -0
  296. package/dist/core/middleware/defineMiddleware.js +6 -0
  297. package/dist/core/middleware/index.d.ts +3 -3
  298. package/dist/core/middleware/index.js +1 -3
  299. package/dist/core/middleware/sequence.js +4 -4
  300. package/dist/core/middleware/vite-plugin.d.ts +1 -1
  301. package/dist/core/middleware/vite-plugin.js +41 -24
  302. package/dist/core/module-loader/index.d.ts +2 -2
  303. package/dist/core/module-loader/index.js +1 -1
  304. package/dist/core/module-loader/{loader.d.ts → runner.d.ts} +6 -17
  305. package/dist/core/module-loader/{loader.js → runner.js} +3 -0
  306. package/dist/core/module-loader/vite.d.ts +3 -2
  307. package/dist/core/module-loader/vite.js +17 -13
  308. package/dist/core/preview/index.js +20 -3
  309. package/dist/core/preview/static-preview-server.js +11 -0
  310. package/dist/core/redirects/component.js +1 -2
  311. package/dist/core/redirects/index.d.ts +0 -1
  312. package/dist/core/redirects/index.js +1 -3
  313. package/dist/core/redirects/render.js +5 -2
  314. package/dist/core/render/paginate.d.ts +1 -1
  315. package/dist/core/render/paginate.js +8 -6
  316. package/dist/core/render/params-and-props.d.ts +2 -0
  317. package/dist/core/render/params-and-props.js +19 -6
  318. package/dist/core/render/route-cache.d.ts +3 -2
  319. package/dist/core/render/route-cache.js +6 -5
  320. package/dist/core/render-context.d.ts +6 -4
  321. package/dist/core/render-context.js +66 -25
  322. package/dist/core/routing/astro-designed-error-pages.js +2 -2
  323. package/dist/core/routing/default.js +1 -1
  324. package/dist/core/routing/helpers.d.ts +22 -0
  325. package/dist/core/routing/helpers.js +25 -0
  326. package/dist/core/routing/index.d.ts +1 -1
  327. package/dist/core/routing/index.js +2 -2
  328. package/dist/core/routing/manifest/create.d.ts +6 -1
  329. package/dist/core/routing/manifest/create.js +11 -14
  330. package/dist/core/routing/manifest/generator.d.ts +3 -1
  331. package/dist/core/routing/params.d.ts +2 -1
  332. package/dist/core/routing/params.js +3 -2
  333. package/dist/core/server-islands/endpoint.js +40 -19
  334. package/dist/core/server-islands/vite-plugin-server-islands.d.ts +1 -1
  335. package/dist/core/server-islands/vite-plugin-server-islands.js +106 -46
  336. package/dist/core/session/vite-plugin.d.ts +6 -0
  337. package/dist/core/session/vite-plugin.js +59 -0
  338. package/dist/core/session.d.ts +4 -2
  339. package/dist/core/session.js +8 -48
  340. package/dist/core/sync/index.d.ts +2 -5
  341. package/dist/core/sync/index.js +34 -22
  342. package/dist/core/util/pathname.d.ts +10 -0
  343. package/dist/core/util/pathname.js +17 -0
  344. package/dist/core/util.d.ts +2 -2
  345. package/dist/core/util.js +3 -3
  346. package/dist/core/viteUtils.d.ts +1 -0
  347. package/dist/core/viteUtils.js +2 -0
  348. package/dist/entrypoints/legacy.d.ts +2 -0
  349. package/dist/entrypoints/legacy.js +12 -0
  350. package/dist/entrypoints/prerender.d.ts +4 -0
  351. package/dist/entrypoints/prerender.js +7 -0
  352. package/dist/env/schema.d.ts +21 -251
  353. package/dist/env/schema.js +6 -3
  354. package/dist/env/vite-plugin-env.js +61 -42
  355. package/dist/env/vite-plugin-import-meta-env.js +45 -37
  356. package/dist/environments.d.ts +3 -0
  357. package/dist/environments.js +11 -0
  358. package/dist/events/error.d.ts +2 -2
  359. package/dist/i18n/index.d.ts +2 -2
  360. package/dist/i18n/utils.d.ts +1 -6
  361. package/dist/i18n/utils.js +1 -63
  362. package/dist/i18n/vite-plugin-i18n.d.ts +0 -5
  363. package/dist/i18n/vite-plugin-i18n.js +8 -26
  364. package/dist/integrations/hooks.d.ts +1 -1
  365. package/dist/integrations/hooks.js +10 -7
  366. package/dist/manifest/serialized.d.ts +9 -0
  367. package/dist/manifest/serialized.js +150 -0
  368. package/dist/manifest/virtual-module.d.ts +1 -4
  369. package/dist/manifest/virtual-module.js +100 -91
  370. package/dist/preferences/index.d.ts +1 -2
  371. package/dist/prefetch/vite-plugin-prefetch.js +20 -9
  372. package/dist/prerender/routing.d.ts +5 -7
  373. package/dist/prerender/routing.js +6 -17
  374. package/dist/runtime/client/dev-toolbar/ui-library/badge.d.ts +2 -2
  375. package/dist/runtime/client/dev-toolbar/ui-library/button.d.ts +2 -2
  376. package/dist/runtime/client/dev-toolbar/ui-library/card.d.ts +2 -2
  377. package/dist/runtime/client/dev-toolbar/ui-library/highlight.d.ts +2 -2
  378. package/dist/runtime/client/dev-toolbar/ui-library/radio-checkbox.d.ts +2 -2
  379. package/dist/runtime/client/dev-toolbar/ui-library/select.d.ts +2 -2
  380. package/dist/runtime/client/dev-toolbar/ui-library/toggle.d.ts +2 -2
  381. package/dist/runtime/server/endpoint.js +1 -1
  382. package/dist/runtime/server/render/server-islands.js +5 -4
  383. package/dist/runtime/server/transition.d.ts +1 -0
  384. package/dist/template/4xx.js +3 -1
  385. package/dist/toolbar/vite-plugin-dev-toolbar.js +13 -7
  386. package/dist/transitions/events.d.ts +7 -0
  387. package/dist/transitions/router.js +7 -3
  388. package/dist/transitions/swap-functions.js +4 -0
  389. package/dist/transitions/vite-plugin-transitions.js +35 -22
  390. package/dist/types/astro.d.ts +8 -6
  391. package/dist/types/public/config.d.ts +438 -289
  392. package/dist/types/public/context.d.ts +3 -4
  393. package/dist/types/public/extendables.d.ts +2 -0
  394. package/dist/types/public/index.d.ts +2 -1
  395. package/dist/types/public/integrations.d.ts +23 -1
  396. package/dist/types/public/internal.d.ts +1 -16
  397. package/dist/types/public/preview.d.ts +6 -0
  398. package/dist/virtual-modules/i18n.d.ts +10 -2
  399. package/dist/virtual-modules/i18n.js +16 -7
  400. package/dist/virtual-modules/live-config.d.ts +1 -1
  401. package/dist/virtual-modules/live-config.js +1 -1
  402. package/dist/virtual-modules/middleware.d.ts +2 -1
  403. package/dist/virtual-modules/middleware.js +2 -1
  404. package/dist/vite-plugin-adapter-config/index.js +12 -5
  405. package/dist/vite-plugin-app/app.d.ts +47 -0
  406. package/dist/vite-plugin-app/app.js +410 -0
  407. package/dist/vite-plugin-app/createAstroServerApp.d.ts +8 -0
  408. package/dist/vite-plugin-app/createAstroServerApp.js +56 -0
  409. package/dist/vite-plugin-app/index.d.ts +3 -0
  410. package/dist/vite-plugin-app/index.js +19 -0
  411. package/dist/{vite-plugin-astro-server → vite-plugin-app}/pipeline.d.ts +6 -7
  412. package/dist/vite-plugin-app/pipeline.js +166 -0
  413. package/dist/vite-plugin-astro/index.js +215 -170
  414. package/dist/vite-plugin-astro-server/base.js +1 -1
  415. package/dist/vite-plugin-astro-server/controller.d.ts +1 -1
  416. package/dist/vite-plugin-astro-server/error.d.ts +3 -4
  417. package/dist/vite-plugin-astro-server/error.js +2 -5
  418. package/dist/vite-plugin-astro-server/index.d.ts +0 -1
  419. package/dist/vite-plugin-astro-server/index.js +0 -2
  420. package/dist/vite-plugin-astro-server/metadata.js +1 -1
  421. package/dist/vite-plugin-astro-server/plugin.d.ts +3 -7
  422. package/dist/vite-plugin-astro-server/plugin.js +40 -108
  423. package/dist/vite-plugin-astro-server/server-state.d.ts +1 -1
  424. package/dist/vite-plugin-astro-server/util.d.ts +2 -2
  425. package/dist/vite-plugin-astro-server/util.js +2 -1
  426. package/dist/vite-plugin-astro-server/vite.d.ts +2 -2
  427. package/dist/vite-plugin-astro-server/vite.js +7 -7
  428. package/dist/vite-plugin-chromedevtools/index.d.ts +7 -0
  429. package/dist/vite-plugin-chromedevtools/index.js +47 -0
  430. package/dist/vite-plugin-config-alias/index.js +59 -44
  431. package/dist/vite-plugin-css/index.d.ts +18 -0
  432. package/dist/vite-plugin-css/index.js +155 -0
  433. package/dist/vite-plugin-css/util.d.ts +5 -0
  434. package/dist/vite-plugin-css/util.js +8 -0
  435. package/dist/vite-plugin-environment/index.d.ts +15 -0
  436. package/dist/vite-plugin-environment/index.js +77 -0
  437. package/dist/vite-plugin-fileurl/index.js +6 -3
  438. package/dist/vite-plugin-head/index.d.ts +1 -2
  439. package/dist/vite-plugin-head/index.js +42 -58
  440. package/dist/vite-plugin-hmr-reload/index.js +2 -1
  441. package/dist/vite-plugin-html/index.d.ts +7 -4
  442. package/dist/vite-plugin-html/index.js +5 -3
  443. package/dist/vite-plugin-load-fallback/index.js +12 -5
  444. package/dist/vite-plugin-markdown/index.js +27 -8
  445. package/dist/vite-plugin-overlay/index.d.ts +2 -0
  446. package/dist/vite-plugin-overlay/index.js +21 -0
  447. package/dist/vite-plugin-pages/const.d.ts +2 -0
  448. package/dist/vite-plugin-pages/const.js +6 -0
  449. package/dist/vite-plugin-pages/index.d.ts +2 -0
  450. package/dist/vite-plugin-pages/index.js +7 -0
  451. package/dist/vite-plugin-pages/page.d.ts +7 -0
  452. package/dist/vite-plugin-pages/page.js +54 -0
  453. package/dist/vite-plugin-pages/pages.d.ts +8 -0
  454. package/dist/vite-plugin-pages/pages.js +63 -0
  455. package/dist/vite-plugin-pages/util.d.ts +8 -0
  456. package/dist/vite-plugin-pages/util.js +15 -0
  457. package/dist/vite-plugin-renderers/index.d.ts +9 -0
  458. package/dist/vite-plugin-renderers/index.js +45 -0
  459. package/dist/vite-plugin-routes/index.d.ts +14 -0
  460. package/dist/vite-plugin-routes/index.js +181 -0
  461. package/dist/vite-plugin-scripts/index.js +27 -25
  462. package/dist/vite-plugin-scripts/page-ssr.js +3 -2
  463. package/dist/vite-plugin-utils/index.d.ts +1 -0
  464. package/dist/vite-plugin-utils/index.js +2 -1
  465. package/dist/zod.d.ts +2 -2
  466. package/dist/zod.js +2 -2
  467. package/package.json +35 -32
  468. package/templates/content/module.mjs +1 -0
  469. package/templates/content/types.d.ts +24 -11
  470. package/types/actions.d.ts +1 -5
  471. package/types/content.d.ts +9 -11
  472. package/types/transitions.d.ts +25 -0
  473. package/dist/actions/loadActions.d.ts +0 -8
  474. package/dist/actions/loadActions.js +0 -13
  475. package/dist/actions/runtime/route.d.ts +0 -2
  476. package/dist/actions/runtime/shared.d.ts +0 -60
  477. package/dist/actions/runtime/shared.js +0 -296
  478. package/dist/actions/runtime/utils.d.ts +0 -25
  479. package/dist/actions/runtime/utils.js +0 -16
  480. package/dist/actions/runtime/virtual.d.ts +0 -4
  481. package/dist/actions/runtime/virtual.js +0 -127
  482. package/dist/assets/fonts/implementations/data-collector.d.ts +0 -3
  483. package/dist/assets/fonts/implementations/data-collector.js +0 -21
  484. package/dist/assets/fonts/implementations/error-handler.d.ts +0 -2
  485. package/dist/assets/fonts/implementations/error-handler.js +0 -41
  486. package/dist/assets/fonts/implementations/font-fetcher.d.ts +0 -8
  487. package/dist/assets/fonts/implementations/font-fetcher.js +0 -34
  488. package/dist/assets/fonts/implementations/font-file-reader.d.ts +0 -4
  489. package/dist/assets/fonts/implementations/font-file-reader.js +0 -26
  490. package/dist/assets/fonts/implementations/font-metrics-resolver.d.ts +0 -5
  491. package/dist/assets/fonts/implementations/font-metrics-resolver.js +0 -66
  492. package/dist/assets/fonts/implementations/font-type-extractor.d.ts +0 -4
  493. package/dist/assets/fonts/implementations/font-type-extractor.js +0 -22
  494. package/dist/assets/fonts/implementations/hasher.d.ts +0 -2
  495. package/dist/assets/fonts/implementations/hasher.js +0 -14
  496. package/dist/assets/fonts/implementations/levenshtein-string-matcher.d.ts +0 -2
  497. package/dist/assets/fonts/implementations/levenshtein-string-matcher.js +0 -147
  498. package/dist/assets/fonts/implementations/local-provider-url-resolver.d.ts +0 -5
  499. package/dist/assets/fonts/implementations/local-provider-url-resolver.js +0 -17
  500. package/dist/assets/fonts/implementations/remote-font-provider-mod-resolver.d.ts +0 -6
  501. package/dist/assets/fonts/implementations/remote-font-provider-mod-resolver.js +0 -20
  502. package/dist/assets/fonts/implementations/remote-font-provider-resolver.d.ts +0 -6
  503. package/dist/assets/fonts/implementations/remote-font-provider-resolver.js +0 -47
  504. package/dist/assets/fonts/implementations/storage.d.ts +0 -4
  505. package/dist/assets/fonts/implementations/storage.js +0 -14
  506. package/dist/assets/fonts/implementations/system-fallbacks-provider.d.ts +0 -11
  507. package/dist/assets/fonts/implementations/url-proxy-content-resolver.d.ts +0 -5
  508. package/dist/assets/fonts/implementations/url-proxy-content-resolver.js +0 -28
  509. package/dist/assets/fonts/implementations/url-proxy-hash-resolver.d.ts +0 -8
  510. package/dist/assets/fonts/implementations/url-proxy-hash-resolver.js +0 -39
  511. package/dist/assets/fonts/implementations/url-proxy.d.ts +0 -7
  512. package/dist/assets/fonts/implementations/url-proxy.js +0 -31
  513. package/dist/assets/fonts/implementations/url-resolver.d.ts +0 -11
  514. package/dist/assets/fonts/implementations/url-resolver.js +0 -55
  515. package/dist/assets/utils/node/emitAsset.d.ts +0 -15
  516. package/dist/assets/utils/remotePattern.d.ts +0 -3
  517. package/dist/assets/utils/remotePattern.js +0 -16
  518. package/dist/assets/utils/transformToPath.js +0 -32
  519. package/dist/cli/docs/domains/platform.d.ts +0 -1
  520. package/dist/cli/docs/infra/process-platform-provider.d.ts +0 -2
  521. package/dist/cli/docs/infra/process-platform-provider.js +0 -11
  522. package/dist/cli/docs/infra/tinyexec-command-executor.d.ts +0 -2
  523. package/dist/cli/docs/infra/tinyexec-command-executor.js +0 -30
  524. package/dist/cli/info/index.d.ts +0 -12
  525. package/dist/cli/info/index.js +0 -267
  526. package/dist/cli/infra/picocolors-text-styler.d.ts +0 -2
  527. package/dist/cli/infra/picocolors-text-styler.js +0 -7
  528. package/dist/core/build/css-asset-name.d.ts +0 -9
  529. package/dist/core/build/css-asset-name.js +0 -89
  530. package/dist/core/build/plugin.d.ts +0 -43
  531. package/dist/core/build/plugin.js +0 -61
  532. package/dist/core/build/plugins/plugin-actions.d.ts +0 -4
  533. package/dist/core/build/plugins/plugin-actions.js +0 -16
  534. package/dist/core/build/plugins/plugin-chunks.d.ts +0 -2
  535. package/dist/core/build/plugins/plugin-chunks.js +0 -33
  536. package/dist/core/build/plugins/plugin-pages.d.ts +0 -6
  537. package/dist/core/build/plugins/plugin-pages.js +0 -66
  538. package/dist/core/build/plugins/plugin-renderers.d.ts +0 -5
  539. package/dist/core/build/plugins/plugin-renderers.js +0 -54
  540. package/dist/core/middleware/loadMiddleware.d.ts +0 -7
  541. package/dist/core/middleware/loadMiddleware.js +0 -14
  542. package/dist/core/redirects/helpers.d.ts +0 -7
  543. package/dist/core/redirects/helpers.js +0 -10
  544. package/dist/core/routing/manifest/serialization.d.ts +0 -5
  545. package/dist/core/routing/manifest/serialization.js +0 -37
  546. package/dist/prerender/metadata.d.ts +0 -8
  547. package/dist/prerender/metadata.js +0 -18
  548. package/dist/vite-plugin-astro-server/css.d.ts +0 -13
  549. package/dist/vite-plugin-astro-server/css.js +0 -48
  550. package/dist/vite-plugin-astro-server/pipeline.js +0 -161
  551. package/dist/vite-plugin-astro-server/request.d.ts +0 -14
  552. package/dist/vite-plugin-astro-server/request.js +0 -66
  553. package/dist/vite-plugin-astro-server/route.d.ts +0 -25
  554. package/dist/vite-plugin-astro-server/route.js +0 -283
  555. package/dist/vite-plugin-scanner/index.d.ts +0 -10
  556. package/dist/vite-plugin-scanner/index.js +0 -87
  557. package/dist/vite-plugin-ssr-manifest/index.d.ts +0 -2
  558. package/dist/vite-plugin-ssr-manifest/index.js +0 -26
  559. /package/dist/{cli/docs/domains/platform.js → actions/runtime/types.js} +0 -0
  560. /package/dist/assets/fonts/{logic → core}/extract-unifont-providers.d.ts +0 -0
  561. /package/dist/assets/fonts/{logic → core}/extract-unifont-providers.js +0 -0
  562. /package/dist/assets/fonts/{logic → core}/normalize-remote-font-faces.d.ts +0 -0
  563. /package/dist/assets/fonts/{logic → core}/normalize-remote-font-faces.js +0 -0
  564. /package/dist/assets/fonts/{logic → core}/optimize-fallbacks.d.ts +0 -0
  565. /package/dist/assets/fonts/{logic → core}/optimize-fallbacks.js +0 -0
  566. /package/dist/assets/fonts/{logic → core}/resolve-families.d.ts +0 -0
  567. /package/dist/assets/fonts/{logic → core}/resolve-families.js +0 -0
@@ -1,12 +1,4 @@
1
- import type { Platform } from './domains/platform.js';
2
- export interface PlatformProvider {
3
- get: () => Platform;
4
- }
5
- export interface CommandExecutor {
6
- execute: (command: string, args?: Array<string>, options?: {
7
- cwd?: string;
8
- env: Record<string, string | undefined>;
9
- }) => Promise<{
10
- stdout: string;
11
- }>;
1
+ import type { CloudIde } from './domain/cloud-ide.js';
2
+ export interface CloudIdeProvider {
3
+ readonly name: CloudIde | null;
12
4
  }
@@ -0,0 +1 @@
1
+ export type CloudIde = 'gitpod';
File without changes
@@ -0,0 +1,5 @@
1
+ import type { CloudIdeProvider } from '../definitions.js';
2
+ import type { CloudIde } from '../domain/cloud-ide.js';
3
+ export declare class ProcessCloudIdeProvider implements CloudIdeProvider {
4
+ readonly name: CloudIde | null;
5
+ }
@@ -0,0 +1,6 @@
1
+ class ProcessCloudIdeProvider {
2
+ name = Boolean(process.env.GITPOD_REPO_ROOT) ? "gitpod" : null;
3
+ }
4
+ export {
5
+ ProcessCloudIdeProvider
6
+ };
@@ -2,6 +2,7 @@ import type { Arguments } from 'yargs-parser';
2
2
  import { Logger } from '../core/logger/core.js';
3
3
  import type { AstroInlineConfig } from '../types/public/config.js';
4
4
  export type Flags = Arguments;
5
+ /** @deprecated Use AstroConfigResolver instead */
5
6
  export declare function flagsToAstroInlineConfig(flags: Flags): AstroInlineConfig;
6
7
  /**
7
8
  * The `logging` is usually created from an `AstroInlineConfig`, but some flows like `add`
package/dist/cli/index.js CHANGED
@@ -28,27 +28,26 @@ function resolveCommand(flags) {
28
28
  async function runCommand(cmd, flags) {
29
29
  const [
30
30
  { createLoggerFromFlags },
31
- { createPicocolorsTextStyler },
32
- { createBuildTimeAstroVersionProvider },
33
- { createLoggerHelpDisplay },
34
- { createCliCommandRunner }
31
+ { piccoloreTextStyler: textStyler },
32
+ { BuildTimeAstroVersionProvider },
33
+ { LoggerHelpDisplay },
34
+ { CliCommandRunner }
35
35
  ] = await Promise.all([
36
36
  import("./flags.js"),
37
- import("./infra/picocolors-text-styler.js"),
37
+ import("./infra/piccolore-text-styler.js"),
38
38
  import("./infra/build-time-astro-version-provider.js"),
39
39
  import("./infra/logger-help-display.js"),
40
40
  import("./infra/cli-command-runner.js")
41
41
  ]);
42
42
  const logger = createLoggerFromFlags(flags);
43
- const textStyler = createPicocolorsTextStyler();
44
- const astroVersionProvider = createBuildTimeAstroVersionProvider();
45
- const helpDisplay = createLoggerHelpDisplay({
43
+ const astroVersionProvider = new BuildTimeAstroVersionProvider();
44
+ const helpDisplay = new LoggerHelpDisplay({
46
45
  logger,
47
46
  flags,
48
47
  textStyler,
49
48
  astroVersionProvider
50
49
  });
51
- const runner = createCliCommandRunner({ helpDisplay });
50
+ const runner = new CliCommandRunner({ helpDisplay });
52
51
  switch (cmd) {
53
52
  /** Display --help flag */
54
53
  case "help": {
@@ -66,35 +65,93 @@ async function runCommand(cmd, flags) {
66
65
  return;
67
66
  }
68
67
  case "info": {
69
- const { printInfo } = await import("./info/index.js");
70
- await printInfo({ flags });
71
- return;
68
+ const [
69
+ { ProcessOperatingSystemProvider },
70
+ { CliAstroConfigResolver },
71
+ { ProcessPackageManagerUserAgentProvider },
72
+ { ProcessNodeVersionProvider },
73
+ { CliDebugInfoProvider },
74
+ { TinyexecCommandExecutor },
75
+ { getPackageManager },
76
+ { StyledDebugInfoFormatter },
77
+ { PromptsPrompt },
78
+ { CliClipboard },
79
+ { PassthroughTextStyler },
80
+ { infoCommand }
81
+ ] = await Promise.all([
82
+ import("./infra/process-operating-system-provider.js"),
83
+ import("./info/infra/cli-astro-config-resolver.js"),
84
+ import("./info/infra/process-package-manager-user-agent-provider.js"),
85
+ import("./info/infra/process-node-version-provider.js"),
86
+ import("./info/infra/cli-debug-info-provider.js"),
87
+ import("./infra/tinyexec-command-executor.js"),
88
+ import("./info/core/get-package-manager.js"),
89
+ import("./info/infra/styled-debug-info-formatter.js"),
90
+ import("./info/infra/prompts-prompt.js"),
91
+ import("./info/infra/cli-clipboard.js"),
92
+ import("./infra/passthrough-text-styler.js"),
93
+ import("./info/core/info.js")
94
+ ]);
95
+ const operatingSystemProvider = new ProcessOperatingSystemProvider();
96
+ const astroConfigResolver = new CliAstroConfigResolver({ flags });
97
+ const commandExecutor = new TinyexecCommandExecutor();
98
+ const packageManagerUserAgentProvider = new ProcessPackageManagerUserAgentProvider();
99
+ const nodeVersionProvider = new ProcessNodeVersionProvider();
100
+ const debugInfoProvider = new CliDebugInfoProvider({
101
+ config: await astroConfigResolver.resolve(),
102
+ astroVersionProvider,
103
+ operatingSystemProvider,
104
+ packageManager: await getPackageManager({
105
+ packageManagerUserAgentProvider,
106
+ commandExecutor
107
+ }),
108
+ nodeVersionProvider
109
+ });
110
+ const prompt = new PromptsPrompt({ force: flags.copy });
111
+ const clipboard = new CliClipboard({
112
+ commandExecutor,
113
+ logger,
114
+ operatingSystemProvider,
115
+ prompt
116
+ });
117
+ return await runner.run(infoCommand, {
118
+ logger,
119
+ debugInfoProvider,
120
+ getDebugInfoFormatter: ({ pretty }) => new StyledDebugInfoFormatter({
121
+ textStyler: pretty ? textStyler : new PassthroughTextStyler()
122
+ }),
123
+ clipboard
124
+ });
72
125
  }
73
126
  case "create-key": {
74
- const [{ createCryptoKeyGenerator }, { createKeyCommand }] = await Promise.all([
127
+ const [{ CryptoKeyGenerator }, { createKeyCommand }] = await Promise.all([
75
128
  import("./create-key/infra/crypto-key-generator.js"),
76
129
  import("./create-key/core/create-key.js")
77
130
  ]);
78
- const keyGenerator = createCryptoKeyGenerator();
131
+ const keyGenerator = new CryptoKeyGenerator();
79
132
  return await runner.run(createKeyCommand, { logger, keyGenerator });
80
133
  }
81
134
  case "docs": {
82
135
  const [
83
- { createTinyexecCommandExecutor },
84
- { createProcessPlatformProvider },
136
+ { TinyexecCommandExecutor },
137
+ { ProcessOperatingSystemProvider },
138
+ { ProcessCloudIdeProvider },
85
139
  { openDocsCommand }
86
140
  ] = await Promise.all([
87
- import("./docs/infra/tinyexec-command-executor.js"),
88
- import("./docs/infra/process-platform-provider.js"),
141
+ import("./infra/tinyexec-command-executor.js"),
142
+ import("./infra/process-operating-system-provider.js"),
143
+ import("./docs/infra/process-cloud-ide-provider.js"),
89
144
  import("./docs/core/open-docs.js")
90
145
  ]);
91
- const commandExecutor = createTinyexecCommandExecutor();
92
- const platformProvider = createProcessPlatformProvider();
146
+ const commandExecutor = new TinyexecCommandExecutor();
147
+ const operatingSystemProvider = new ProcessOperatingSystemProvider();
148
+ const cloudIdeProvider = new ProcessCloudIdeProvider();
93
149
  return await runner.run(openDocsCommand, {
94
150
  url: "https://docs.astro.build/",
95
151
  logger,
96
152
  commandExecutor,
97
- platformProvider
153
+ operatingSystemProvider,
154
+ cloudIdeProvider
98
155
  });
99
156
  }
100
157
  case "telemetry": {
@@ -0,0 +1,8 @@
1
+ import type { CommandExecutor } from '../../definitions.js';
2
+ import type { PackageManager, PackageManagerUserAgentProvider } from '../definitions.js';
3
+ interface Options {
4
+ packageManagerUserAgentProvider: PackageManagerUserAgentProvider;
5
+ commandExecutor: CommandExecutor;
6
+ }
7
+ export declare function getPackageManager({ packageManagerUserAgentProvider, commandExecutor, }: Options): Promise<PackageManager>;
8
+ export {};
@@ -0,0 +1,37 @@
1
+ async function getPackageManager({
2
+ packageManagerUserAgentProvider,
3
+ commandExecutor
4
+ }) {
5
+ if (!packageManagerUserAgentProvider.userAgent) {
6
+ const { NoopPackageManager } = await import("../infra/noop-package-manager.js");
7
+ return new NoopPackageManager();
8
+ }
9
+ const specifier = packageManagerUserAgentProvider.userAgent.split(" ")[0];
10
+ const _name = specifier.substring(0, specifier.lastIndexOf("/"));
11
+ const name = _name === "npminstall" ? "cnpm" : _name;
12
+ switch (name) {
13
+ case "pnpm": {
14
+ const { PnpmPackageManager } = await import("../infra/pnpm-package-manager.js");
15
+ return new PnpmPackageManager({ commandExecutor });
16
+ }
17
+ case "npm": {
18
+ const { NpmPackageManager } = await import("../infra/npm-package-manager.js");
19
+ return new NpmPackageManager({ commandExecutor });
20
+ }
21
+ case "yarn": {
22
+ const { YarnPackageManager } = await import("../infra/yarn-package-manager.js");
23
+ return new YarnPackageManager({ commandExecutor });
24
+ }
25
+ case "bun": {
26
+ const { BunPackageManager } = await import("../infra/bun-package-manager.js");
27
+ return new BunPackageManager();
28
+ }
29
+ default: {
30
+ const { NoopPackageManager } = await import("../infra/noop-package-manager.js");
31
+ return new NoopPackageManager();
32
+ }
33
+ }
34
+ }
35
+ export {
36
+ getPackageManager
37
+ };
@@ -0,0 +1,21 @@
1
+ import type { Logger } from '../../../core/logger/core.js';
2
+ import type { Clipboard, DebugInfoFormatter, DebugInfoProvider } from '../definitions.js';
3
+ interface Options {
4
+ debugInfoProvider: DebugInfoProvider;
5
+ getDebugInfoFormatter: (options: {
6
+ pretty: boolean;
7
+ }) => DebugInfoFormatter;
8
+ logger: Logger;
9
+ clipboard: Clipboard;
10
+ }
11
+ export declare const infoCommand: {
12
+ help: {
13
+ commandName: string;
14
+ tables: {
15
+ Flags: [string, string][];
16
+ };
17
+ description: string;
18
+ };
19
+ run({ debugInfoProvider, getDebugInfoFormatter, logger, clipboard }: Options): Promise<void>;
20
+ };
21
+ export {};
@@ -0,0 +1,21 @@
1
+ import { defineCommand } from "../../domain/command.js";
2
+ const infoCommand = defineCommand({
3
+ help: {
4
+ commandName: "astro info",
5
+ tables: {
6
+ Flags: [
7
+ ["--help (-h)", "See all available flags."],
8
+ ["--copy", "Force copy of the output."]
9
+ ]
10
+ },
11
+ description: "Reports useful information about your current Astro environment. Useful for providing information when opening an issue."
12
+ },
13
+ async run({ debugInfoProvider, getDebugInfoFormatter, logger, clipboard }) {
14
+ const debugInfo = await debugInfoProvider.get();
15
+ logger.info("SKIP_FORMAT", getDebugInfoFormatter({ pretty: true }).format(debugInfo));
16
+ await clipboard.copy(getDebugInfoFormatter({ pretty: false }).format(debugInfo));
17
+ }
18
+ });
19
+ export {
20
+ infoCommand
21
+ };
@@ -0,0 +1,30 @@
1
+ import type { AstroConfig } from '../../types/public/index.js';
2
+ import type { DebugInfo } from './domain/debug-info.js';
3
+ export interface DebugInfoProvider {
4
+ get: () => Promise<DebugInfo>;
5
+ }
6
+ export interface DebugInfoFormatter {
7
+ format: (info: DebugInfo) => string;
8
+ }
9
+ export interface Clipboard {
10
+ copy: (text: string) => Promise<void>;
11
+ }
12
+ export interface PackageManager {
13
+ readonly name: string;
14
+ getPackageVersion: (name: string) => Promise<string | undefined>;
15
+ }
16
+ export interface AstroConfigResolver {
17
+ resolve: () => Promise<AstroConfig>;
18
+ }
19
+ export interface Prompt {
20
+ confirm: (input: {
21
+ message: string;
22
+ defaultValue?: boolean;
23
+ }) => Promise<boolean>;
24
+ }
25
+ export interface PackageManagerUserAgentProvider {
26
+ readonly userAgent: string | null;
27
+ }
28
+ export interface NodeVersionProvider {
29
+ readonly version: string;
30
+ }
File without changes
@@ -0,0 +1 @@
1
+ export type DebugInfo = Array<[string, string | Array<string>]>;
File without changes
@@ -0,0 +1,5 @@
1
+ import type { PackageManager } from '../definitions.js';
2
+ export declare class BunPackageManager implements PackageManager {
3
+ readonly name: string;
4
+ getPackageVersion(): Promise<string | undefined>;
5
+ }
@@ -0,0 +1,9 @@
1
+ class BunPackageManager {
2
+ name = "bun";
3
+ async getPackageVersion() {
4
+ return void 0;
5
+ }
6
+ }
7
+ export {
8
+ BunPackageManager
9
+ };
@@ -0,0 +1,10 @@
1
+ import type { AstroConfig } from '../../../types/public/index.js';
2
+ import type { Flags } from '../../flags.js';
3
+ import type { AstroConfigResolver } from '../definitions.js';
4
+ export declare class CliAstroConfigResolver implements AstroConfigResolver {
5
+ #private;
6
+ constructor({ flags }: {
7
+ flags: Flags;
8
+ });
9
+ resolve(): Promise<AstroConfig>;
10
+ }
@@ -0,0 +1,36 @@
1
+ import { resolveConfig } from "../../../core/config/config.js";
2
+ class CliAstroConfigResolver {
3
+ // TODO: find something better
4
+ #flags;
5
+ constructor({ flags }) {
6
+ this.#flags = flags;
7
+ }
8
+ async resolve() {
9
+ const { astroConfig } = await resolveConfig(
10
+ // TODO: consider testing flags => astro inline config
11
+ {
12
+ // Inline-only configs
13
+ configFile: typeof this.#flags.config === "string" ? this.#flags.config : void 0,
14
+ mode: typeof this.#flags.mode === "string" ? this.#flags.mode : void 0,
15
+ logLevel: this.#flags.verbose ? "debug" : this.#flags.silent ? "silent" : void 0,
16
+ force: this.#flags.force ? true : void 0,
17
+ // Astro user configs
18
+ root: typeof this.#flags.root === "string" ? this.#flags.root : void 0,
19
+ site: typeof this.#flags.site === "string" ? this.#flags.site : void 0,
20
+ base: typeof this.#flags.base === "string" ? this.#flags.base : void 0,
21
+ outDir: typeof this.#flags.outDir === "string" ? this.#flags.outDir : void 0,
22
+ server: {
23
+ port: typeof this.#flags.port === "number" ? this.#flags.port : void 0,
24
+ host: typeof this.#flags.host === "string" || typeof this.#flags.host === "boolean" ? this.#flags.host : void 0,
25
+ open: typeof this.#flags.open === "string" || typeof this.#flags.open === "boolean" ? this.#flags.open : void 0,
26
+ allowedHosts: typeof this.#flags.allowedHosts === "string" ? this.#flags.allowedHosts.split(",") : typeof this.#flags.allowedHosts === "boolean" && this.#flags.allowedHosts === true ? this.#flags.allowedHosts : []
27
+ }
28
+ },
29
+ "info"
30
+ );
31
+ return astroConfig;
32
+ }
33
+ }
34
+ export {
35
+ CliAstroConfigResolver
36
+ };
@@ -0,0 +1,13 @@
1
+ import type { Logger } from '../../../core/logger/core.js';
2
+ import type { CommandExecutor, OperatingSystemProvider } from '../../definitions.js';
3
+ import type { Clipboard, Prompt } from '../definitions.js';
4
+ export declare class CliClipboard implements Clipboard {
5
+ #private;
6
+ constructor({ operatingSystemProvider, commandExecutor, logger, prompt, }: {
7
+ operatingSystemProvider: OperatingSystemProvider;
8
+ commandExecutor: CommandExecutor;
9
+ logger: Logger;
10
+ prompt: Prompt;
11
+ });
12
+ copy(text: string): Promise<void>;
13
+ }
@@ -0,0 +1,78 @@
1
+ async function getExecInputForPlatform({
2
+ platform,
3
+ commandExecutor
4
+ }) {
5
+ if (platform === "darwin") {
6
+ return ["pbcopy"];
7
+ }
8
+ if (platform === "win32") {
9
+ return ["clip"];
10
+ }
11
+ const unixCommands = [
12
+ ["xclip", ["-selection", "clipboard"]],
13
+ ["wl-copy", []]
14
+ ];
15
+ for (const [unixCommand, unixArgs] of unixCommands) {
16
+ try {
17
+ const { stdout } = await commandExecutor.execute("which", [unixCommand]);
18
+ if (stdout.trim()) {
19
+ return [unixCommand, unixArgs];
20
+ }
21
+ } catch {
22
+ continue;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ class CliClipboard {
28
+ #operatingSystemProvider;
29
+ #commandExecutor;
30
+ #logger;
31
+ #prompt;
32
+ constructor({
33
+ operatingSystemProvider,
34
+ commandExecutor,
35
+ logger,
36
+ prompt
37
+ }) {
38
+ this.#operatingSystemProvider = operatingSystemProvider;
39
+ this.#commandExecutor = commandExecutor;
40
+ this.#logger = logger;
41
+ this.#prompt = prompt;
42
+ }
43
+ async copy(text) {
44
+ text = text.trim();
45
+ const platform = this.#operatingSystemProvider.name;
46
+ const input = await getExecInputForPlatform({
47
+ platform,
48
+ commandExecutor: this.#commandExecutor
49
+ });
50
+ if (!input) {
51
+ this.#logger.warn("SKIP_FORMAT", "Clipboard command not found!");
52
+ this.#logger.info("SKIP_FORMAT", "Please manually copy the text above.");
53
+ return;
54
+ }
55
+ if (!await this.#prompt.confirm({
56
+ message: "Copy to clipboard?",
57
+ defaultValue: true
58
+ })) {
59
+ return;
60
+ }
61
+ try {
62
+ const [command, args] = input;
63
+ await this.#commandExecutor.execute(command, args, {
64
+ input: text,
65
+ stdio: ["pipe", "ignore", "ignore"]
66
+ });
67
+ this.#logger.info("SKIP_FORMAT", "Copied to clipboard!");
68
+ } catch {
69
+ this.#logger.error(
70
+ "SKIP_FORMAT",
71
+ "Sorry, something went wrong! Please copy the text above manually."
72
+ );
73
+ }
74
+ }
75
+ }
76
+ export {
77
+ CliClipboard
78
+ };
@@ -0,0 +1,15 @@
1
+ import type { AstroConfig } from '../../../types/public/index.js';
2
+ import type { AstroVersionProvider, OperatingSystemProvider } from '../../definitions.js';
3
+ import type { DebugInfoProvider, NodeVersionProvider, PackageManager } from '../definitions.js';
4
+ import type { DebugInfo } from '../domain/debug-info.js';
5
+ export declare class CliDebugInfoProvider implements DebugInfoProvider {
6
+ #private;
7
+ constructor({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: {
8
+ config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
9
+ astroVersionProvider: AstroVersionProvider;
10
+ packageManager: PackageManager;
11
+ operatingSystemProvider: OperatingSystemProvider;
12
+ nodeVersionProvider: NodeVersionProvider;
13
+ });
14
+ get(): Promise<DebugInfo>;
15
+ }
@@ -0,0 +1,57 @@
1
+ function withVersion(name, version) {
2
+ let result = name;
3
+ if (version) {
4
+ result += ` (${version})`;
5
+ }
6
+ return result;
7
+ }
8
+ class CliDebugInfoProvider {
9
+ #config;
10
+ #astroVersionProvider;
11
+ #packageManager;
12
+ #operatingSystemProvider;
13
+ #nodeVersionProvider;
14
+ constructor({
15
+ config,
16
+ astroVersionProvider,
17
+ packageManager,
18
+ operatingSystemProvider,
19
+ nodeVersionProvider
20
+ }) {
21
+ this.#config = config;
22
+ this.#astroVersionProvider = astroVersionProvider;
23
+ this.#packageManager = packageManager;
24
+ this.#operatingSystemProvider = operatingSystemProvider;
25
+ this.#nodeVersionProvider = nodeVersionProvider;
26
+ }
27
+ async get() {
28
+ const debugInfo = [
29
+ ["Astro", `v${this.#astroVersionProvider.version}`],
30
+ ["Node", this.#nodeVersionProvider.version],
31
+ ["System", this.#operatingSystemProvider.displayName],
32
+ ["Package Manager", this.#packageManager.name],
33
+ ["Output", this.#config.output]
34
+ ];
35
+ const viteVersion = await this.#packageManager.getPackageVersion("vite");
36
+ if (viteVersion) {
37
+ debugInfo.splice(1, 0, ["Vite", viteVersion]);
38
+ }
39
+ debugInfo.push([
40
+ "Adapter",
41
+ this.#config.adapter ? withVersion(
42
+ this.#config.adapter.name,
43
+ await this.#packageManager.getPackageVersion(this.#config.adapter.name)
44
+ ) : "none"
45
+ ]);
46
+ const integrations = await Promise.all(
47
+ this.#config.integrations.map(
48
+ async ({ name }) => withVersion(name, await this.#packageManager.getPackageVersion(name))
49
+ )
50
+ );
51
+ debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
52
+ return debugInfo;
53
+ }
54
+ }
55
+ export {
56
+ CliDebugInfoProvider
57
+ };
@@ -0,0 +1,18 @@
1
+ import type { AstroConfig } from '../../../types/public/index.js';
2
+ import type { AstroVersionProvider, OperatingSystemProvider } from '../../definitions.js';
3
+ import type { DebugInfoProvider, NodeVersionProvider, PackageManager } from '../definitions.js';
4
+ import type { DebugInfo } from '../domain/debug-info.js';
5
+ /**
6
+ * Returns debug info without any package versions, to avoid slowing down the dev server
7
+ */
8
+ export declare class DevDebugInfoProvider implements DebugInfoProvider {
9
+ #private;
10
+ constructor({ config, astroVersionProvider, packageManager, operatingSystemProvider, nodeVersionProvider, }: {
11
+ config: Pick<AstroConfig, 'output' | 'adapter' | 'integrations'>;
12
+ astroVersionProvider: AstroVersionProvider;
13
+ packageManager: PackageManager;
14
+ operatingSystemProvider: OperatingSystemProvider;
15
+ nodeVersionProvider: NodeVersionProvider;
16
+ });
17
+ get(): Promise<DebugInfo>;
18
+ }
@@ -0,0 +1,36 @@
1
+ class DevDebugInfoProvider {
2
+ #config;
3
+ #astroVersionProvider;
4
+ #packageManager;
5
+ #operatingSystemProvider;
6
+ #nodeVersionProvider;
7
+ constructor({
8
+ config,
9
+ astroVersionProvider,
10
+ packageManager,
11
+ operatingSystemProvider,
12
+ nodeVersionProvider
13
+ }) {
14
+ this.#config = config;
15
+ this.#astroVersionProvider = astroVersionProvider;
16
+ this.#packageManager = packageManager;
17
+ this.#operatingSystemProvider = operatingSystemProvider;
18
+ this.#nodeVersionProvider = nodeVersionProvider;
19
+ }
20
+ async get() {
21
+ const debugInfo = [
22
+ ["Astro", `v${this.#astroVersionProvider.version}`],
23
+ ["Node", this.#nodeVersionProvider.version],
24
+ ["System", this.#operatingSystemProvider.displayName],
25
+ ["Package Manager", this.#packageManager.name],
26
+ ["Output", this.#config.output],
27
+ ["Adapter", this.#config.adapter?.name ?? "none"]
28
+ ];
29
+ const integrations = this.#config.integrations.map((integration) => integration.name);
30
+ debugInfo.push(["Integrations", integrations.length > 0 ? integrations : "none"]);
31
+ return debugInfo;
32
+ }
33
+ }
34
+ export {
35
+ DevDebugInfoProvider
36
+ };
@@ -0,0 +1,5 @@
1
+ import type { PackageManager } from '../definitions.js';
2
+ export declare class NoopPackageManager implements PackageManager {
3
+ readonly name: string;
4
+ getPackageVersion(): Promise<string | undefined>;
5
+ }
@@ -0,0 +1,9 @@
1
+ class NoopPackageManager {
2
+ name = "unknown";
3
+ async getPackageVersion() {
4
+ return void 0;
5
+ }
6
+ }
7
+ export {
8
+ NoopPackageManager
9
+ };
@@ -0,0 +1,10 @@
1
+ import type { CommandExecutor } from '../../definitions.js';
2
+ import type { PackageManager } from '../definitions.js';
3
+ export declare class NpmPackageManager implements PackageManager {
4
+ #private;
5
+ readonly name: string;
6
+ constructor({ commandExecutor }: {
7
+ commandExecutor: CommandExecutor;
8
+ });
9
+ getPackageVersion(name: string): Promise<string | undefined>;
10
+ }