astro 4.7.1 → 4.8.0

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 (222) hide show
  1. package/client.d.ts +1 -0
  2. package/content-module.template.mjs +2 -0
  3. package/dist/@types/astro.d.ts +219 -3
  4. package/dist/actions/consts.d.ts +3 -0
  5. package/dist/actions/consts.js +8 -0
  6. package/dist/actions/index.d.ts +2 -0
  7. package/dist/actions/index.js +72 -0
  8. package/dist/actions/runtime/middleware.d.ts +7 -0
  9. package/dist/actions/runtime/middleware.js +38 -0
  10. package/dist/actions/runtime/route.d.ts +2 -0
  11. package/dist/actions/runtime/route.js +37 -0
  12. package/dist/actions/runtime/store.d.ts +6 -0
  13. package/dist/actions/runtime/store.js +18 -0
  14. package/dist/actions/runtime/utils.d.ts +4 -0
  15. package/dist/actions/runtime/utils.js +23 -0
  16. package/dist/actions/runtime/virtual/client.d.ts +4 -0
  17. package/dist/actions/runtime/virtual/client.js +20 -0
  18. package/dist/actions/runtime/virtual/server.d.ts +21 -0
  19. package/dist/actions/runtime/virtual/server.js +98 -0
  20. package/dist/actions/runtime/virtual/shared.d.ts +37 -0
  21. package/dist/actions/runtime/virtual/shared.js +104 -0
  22. package/dist/actions/utils.d.ts +2 -0
  23. package/dist/actions/utils.js +18 -0
  24. package/dist/assets/build/generate.js +1 -1
  25. package/dist/assets/internal.js +1 -2
  26. package/dist/assets/services/service.js +2 -4
  27. package/dist/assets/services/sharp.js +2 -4
  28. package/dist/assets/services/squoosh.js +2 -4
  29. package/dist/assets/services/vendor/squoosh/avif/avif_node_dec.js +34 -68
  30. package/dist/assets/services/vendor/squoosh/avif/avif_node_enc.js +39 -78
  31. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_dec.js +32 -64
  32. package/dist/assets/services/vendor/squoosh/mozjpeg/mozjpeg_node_enc.js +32 -64
  33. package/dist/assets/services/vendor/squoosh/png/squoosh_png.js +2 -4
  34. package/dist/assets/services/vendor/squoosh/webp/webp_node_dec.js +29 -58
  35. package/dist/assets/services/vendor/squoosh/webp/webp_node_enc.js +29 -58
  36. package/dist/assets/utils/getAssetsPrefix.js +2 -4
  37. package/dist/assets/utils/remotePattern.js +1 -2
  38. package/dist/assets/utils/remoteProbe.js +1 -2
  39. package/dist/assets/utils/vendor/image-size/types/cur.js +1 -2
  40. package/dist/assets/utils/vendor/image-size/types/icns.js +1 -2
  41. package/dist/assets/utils/vendor/image-size/types/ico.js +2 -4
  42. package/dist/assets/utils/vendor/image-size/types/jp2.js +2 -4
  43. package/dist/assets/utils/vendor/image-size/types/utils.js +4 -8
  44. package/dist/assets/vite-plugin-assets.js +1 -1
  45. package/dist/cli/add/babel.d.ts +1 -1
  46. package/dist/cli/add/imports.js +4 -8
  47. package/dist/cli/add/index.js +23 -46
  48. package/dist/cli/add/wrapper.js +1 -2
  49. package/dist/cli/index.js +1 -2
  50. package/dist/cli/info/index.js +1 -2
  51. package/dist/cli/install-package.js +3 -6
  52. package/dist/cli/throw-and-exit.js +1 -2
  53. package/dist/config/index.d.ts +2 -2
  54. package/dist/config/index.js +2 -2
  55. package/dist/content/index.d.ts +1 -1
  56. package/dist/content/index.js +1 -7
  57. package/dist/content/runtime.d.ts +2 -1
  58. package/dist/content/runtime.js +11 -20
  59. package/dist/content/server-listeners.js +5 -10
  60. package/dist/content/types-generator.js +5 -10
  61. package/dist/content/utils.d.ts +0 -4
  62. package/dist/content/utils.js +4 -15
  63. package/dist/content/vite-plugin-content-assets.d.ts +1 -1
  64. package/dist/content/vite-plugin-content-assets.js +14 -47
  65. package/dist/content/vite-plugin-content-imports.js +6 -11
  66. package/dist/content/vite-plugin-content-virtual-mod.js +7 -14
  67. package/dist/core/app/index.js +11 -46
  68. package/dist/core/app/node.js +4 -3
  69. package/dist/core/app/pipeline.d.ts +7 -2
  70. package/dist/core/app/pipeline.js +70 -2
  71. package/dist/core/app/types.d.ts +1 -0
  72. package/dist/core/base-pipeline.d.ts +16 -1
  73. package/dist/core/build/generate.js +15 -61
  74. package/dist/core/build/index.js +2 -4
  75. package/dist/core/build/internal.d.ts +39 -9
  76. package/dist/core/build/internal.js +43 -54
  77. package/dist/core/build/page-data.js +6 -6
  78. package/dist/core/build/pipeline.d.ts +7 -3
  79. package/dist/core/build/pipeline.js +134 -23
  80. package/dist/core/build/plugins/plugin-analyzer.js +11 -32
  81. package/dist/core/build/plugins/plugin-content.d.ts +1 -0
  82. package/dist/core/build/plugins/plugin-content.js +34 -32
  83. package/dist/core/build/plugins/plugin-css.js +23 -51
  84. package/dist/core/build/plugins/plugin-manifest.js +7 -8
  85. package/dist/core/build/plugins/plugin-pages.d.ts +0 -1
  86. package/dist/core/build/plugins/plugin-pages.js +10 -12
  87. package/dist/core/build/plugins/plugin-ssr.js +15 -13
  88. package/dist/core/build/plugins/util.d.ts +26 -11
  89. package/dist/core/build/plugins/util.js +22 -6
  90. package/dist/core/build/static-build.js +30 -25
  91. package/dist/core/build/types.d.ts +6 -6
  92. package/dist/core/client-directive/build.js +1 -2
  93. package/dist/core/config/config.js +2 -7
  94. package/dist/core/config/logging.js +1 -2
  95. package/dist/core/config/schema.d.ts +92 -60
  96. package/dist/core/config/schema.js +6 -2
  97. package/dist/core/config/settings.js +1 -2
  98. package/dist/core/config/timer.js +4 -8
  99. package/dist/core/constants.js +1 -1
  100. package/dist/core/cookies/cookies.js +3 -6
  101. package/dist/core/dev/dev.js +1 -1
  102. package/dist/core/dev/restart.js +1 -2
  103. package/dist/core/errors/errors-data.d.ts +24 -0
  104. package/dist/core/errors/errors-data.js +13 -2
  105. package/dist/core/errors/errors.js +1 -2
  106. package/dist/core/errors/overlay.js +1 -2
  107. package/dist/core/errors/printer.js +2 -4
  108. package/dist/core/errors/zod-error-map.js +2 -4
  109. package/dist/core/fs/index.js +2 -4
  110. package/dist/core/logger/vite.js +9 -18
  111. package/dist/core/messages.js +2 -2
  112. package/dist/core/middleware/callMiddleware.d.ts +3 -2
  113. package/dist/core/middleware/callMiddleware.js +13 -3
  114. package/dist/core/middleware/index.js +12 -8
  115. package/dist/core/middleware/sequence.js +22 -4
  116. package/dist/core/module-loader/vite.js +1 -2
  117. package/dist/core/render/params-and-props.js +2 -4
  118. package/dist/core/render/slots.js +4 -8
  119. package/dist/core/render-context.d.ts +15 -5
  120. package/dist/core/render-context.js +134 -28
  121. package/dist/core/request.js +1 -2
  122. package/dist/core/routing/manifest/create.js +3 -6
  123. package/dist/core/sync/index.js +10 -3
  124. package/dist/core/util.d.ts +2 -0
  125. package/dist/core/util.js +18 -19
  126. package/dist/i18n/index.js +2 -4
  127. package/dist/i18n/middleware.js +1 -2
  128. package/dist/i18n/utils.js +1 -2
  129. package/dist/i18n/vite-plugin-i18n.js +1 -2
  130. package/dist/integrations/hooks.js +5 -1
  131. package/dist/jsx/babel.d.ts +3 -0
  132. package/dist/jsx/babel.js +9 -18
  133. package/dist/jsx/rehype.d.ts +11 -0
  134. package/dist/jsx/rehype.js +197 -0
  135. package/dist/jsx/server.js +20 -14
  136. package/dist/jsx/transform-options.d.ts +3 -0
  137. package/dist/jsx-runtime/index.js +8 -16
  138. package/dist/preferences/index.js +3 -6
  139. package/dist/preferences/store.js +3 -6
  140. package/dist/prefetch/index.js +8 -16
  141. package/dist/prefetch/vite-plugin-prefetch.js +2 -4
  142. package/dist/prerender/metadata.js +1 -2
  143. package/dist/prerender/routing.js +1 -1
  144. package/dist/prerender/utils.d.ts +0 -1
  145. package/dist/prerender/utils.js +2 -5
  146. package/dist/runtime/client/dev-toolbar/apps/astro.js +5 -10
  147. package/dist/runtime/client/dev-toolbar/apps/audit/index.js +5 -10
  148. package/dist/runtime/client/dev-toolbar/apps/audit/rules/a11y.js +45 -90
  149. package/dist/runtime/client/dev-toolbar/apps/audit/rules/index.js +1 -2
  150. package/dist/runtime/client/dev-toolbar/apps/audit/rules/perf.js +16 -32
  151. package/dist/runtime/client/dev-toolbar/apps/audit/ui/audit-list-window.js +2 -4
  152. package/dist/runtime/client/dev-toolbar/apps/audit/ui/audit-ui.js +3 -6
  153. package/dist/runtime/client/dev-toolbar/apps/utils/highlight.js +1 -2
  154. package/dist/runtime/client/dev-toolbar/apps/utils/window.js +4 -8
  155. package/dist/runtime/client/dev-toolbar/entrypoint.js +8 -11
  156. package/dist/runtime/client/dev-toolbar/helpers.js +2 -4
  157. package/dist/runtime/client/dev-toolbar/toolbar.js +11 -22
  158. package/dist/runtime/client/dev-toolbar/ui-library/badge.js +1 -2
  159. package/dist/runtime/client/dev-toolbar/ui-library/button.d.ts +5 -0
  160. package/dist/runtime/client/dev-toolbar/ui-library/button.js +26 -5
  161. package/dist/runtime/client/dev-toolbar/ui-library/index.d.ts +1 -0
  162. package/dist/runtime/client/dev-toolbar/ui-library/index.js +2 -0
  163. package/dist/runtime/client/dev-toolbar/ui-library/radio-checkbox.d.ts +13 -0
  164. package/dist/runtime/client/dev-toolbar/ui-library/radio-checkbox.js +109 -0
  165. package/dist/runtime/client/visible.js +1 -2
  166. package/dist/runtime/server/astro-component.js +2 -4
  167. package/dist/runtime/server/astro-island.js +7 -14
  168. package/dist/runtime/server/astro-island.prebuilt-dev.d.ts +1 -1
  169. package/dist/runtime/server/astro-island.prebuilt-dev.js +1 -1
  170. package/dist/runtime/server/astro-island.prebuilt.d.ts +1 -1
  171. package/dist/runtime/server/astro-island.prebuilt.js +1 -1
  172. package/dist/runtime/server/index.js +3 -6
  173. package/dist/runtime/server/jsx.js +1 -2
  174. package/dist/runtime/server/render/any.js +1 -2
  175. package/dist/runtime/server/render/astro/instance.js +1 -2
  176. package/dist/runtime/server/render/astro/render.js +5 -10
  177. package/dist/runtime/server/render/component.js +6 -11
  178. package/dist/runtime/server/render/dom.js +1 -2
  179. package/dist/runtime/server/render/page.js +1 -2
  180. package/dist/runtime/server/render/script.js +1 -2
  181. package/dist/runtime/server/render/slot.js +1 -2
  182. package/dist/runtime/server/render/tags.js +2 -4
  183. package/dist/runtime/server/render/util.js +2 -4
  184. package/dist/runtime/server/shorthash.js +1 -2
  185. package/dist/runtime/server/transition.js +4 -8
  186. package/dist/runtime/server/util.js +1 -2
  187. package/dist/transitions/events.d.ts +3 -3
  188. package/dist/transitions/events.js +5 -4
  189. package/dist/transitions/router.js +22 -113
  190. package/dist/transitions/swap-functions.d.ts +12 -0
  191. package/dist/transitions/swap-functions.js +105 -0
  192. package/dist/vite-plugin-astro/compile.js +1 -2
  193. package/dist/vite-plugin-astro/hmr.js +5 -10
  194. package/dist/vite-plugin-astro/index.js +2 -4
  195. package/dist/vite-plugin-astro-server/pipeline.d.ts +8 -3
  196. package/dist/vite-plugin-astro-server/pipeline.js +59 -11
  197. package/dist/vite-plugin-astro-server/plugin.js +6 -6
  198. package/dist/vite-plugin-astro-server/response.js +1 -2
  199. package/dist/vite-plugin-astro-server/route.js +36 -42
  200. package/dist/vite-plugin-astro-server/vite.js +1 -2
  201. package/dist/vite-plugin-config-alias/index.js +7 -14
  202. package/dist/vite-plugin-head/index.js +3 -6
  203. package/dist/vite-plugin-html/index.js +1 -2
  204. package/dist/vite-plugin-html/transform/escape.js +2 -4
  205. package/dist/vite-plugin-html/transform/slots.js +1 -2
  206. package/dist/vite-plugin-html/transform/utils.js +1 -2
  207. package/dist/vite-plugin-inject-env-ts/index.js +37 -11
  208. package/dist/vite-plugin-integrations-container/index.js +3 -6
  209. package/dist/vite-plugin-load-fallback/index.js +1 -2
  210. package/dist/vite-plugin-markdown/index.js +1 -2
  211. package/dist/vite-plugin-mdx/index.d.ts +3 -0
  212. package/dist/vite-plugin-mdx/tag.d.ts +2 -0
  213. package/dist/vite-plugin-mdx/tag.js +3 -6
  214. package/dist/vite-plugin-mdx/transform-jsx.d.ts +3 -0
  215. package/dist/vite-plugin-mdx/transform-jsx.js +1 -2
  216. package/dist/vite-plugin-scanner/index.js +4 -6
  217. package/dist/vite-plugin-scanner/scan.js +2 -4
  218. package/dist/vite-plugin-scripts/page-ssr.js +3 -6
  219. package/package.json +18 -14
  220. package/templates/actions.mjs +61 -0
  221. package/types/actions.d.ts +3 -0
  222. package/types/content.d.ts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "4.7.1",
3
+ "version": "4.8.0",
4
4
  "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.",
5
5
  "type": "module",
6
6
  "author": "withastro",
@@ -54,6 +54,7 @@
54
54
  "./components": "./components/index.ts",
55
55
  "./components/*": "./components/*",
56
56
  "./toolbar": "./dist/toolbar/index.js",
57
+ "./actions/runtime/*": "./dist/actions/runtime/*",
57
58
  "./assets": "./dist/assets/index.js",
58
59
  "./assets/utils": "./dist/assets/utils/index.js",
59
60
  "./assets/endpoint/*": "./dist/assets/endpoint/*.js",
@@ -85,6 +86,7 @@
85
86
  "components",
86
87
  "tsconfigs",
87
88
  "dist",
89
+ "types",
88
90
  "astro.js",
89
91
  "index.d.ts",
90
92
  "config.d.ts",
@@ -96,14 +98,14 @@
96
98
  "jsx-runtime.d.ts",
97
99
  "content-types.template.d.ts",
98
100
  "content-module.template.mjs",
101
+ "templates",
99
102
  "astro-jsx.d.ts",
100
- "types/content.d.ts",
101
103
  "types.d.ts",
102
104
  "README.md",
103
105
  "vendor"
104
106
  ],
105
107
  "dependencies": {
106
- "@astrojs/compiler": "^2.7.1",
108
+ "@astrojs/compiler": "^2.8.0",
107
109
  "@babel/core": "^7.24.5",
108
110
  "@babel/generator": "^7.24.5",
109
111
  "@babel/parser": "^7.24.5",
@@ -129,7 +131,7 @@
129
131
  "dlv": "^1.1.3",
130
132
  "dset": "^3.1.3",
131
133
  "es-module-lexer": "^1.5.2",
132
- "esbuild": "^0.20.2",
134
+ "esbuild": "^0.21.1",
133
135
  "estree-walker": "^3.0.3",
134
136
  "execa": "^8.0.1",
135
137
  "fast-glob": "^3.3.2",
@@ -150,18 +152,18 @@
150
152
  "prompts": "^2.4.2",
151
153
  "rehype": "^13.0.1",
152
154
  "resolve": "^1.22.8",
153
- "semver": "^7.6.0",
154
- "shiki": "^1.3.0",
155
+ "semver": "^7.6.1",
156
+ "shiki": "^1.5.0",
155
157
  "string-width": "^7.1.0",
156
158
  "strip-ansi": "^7.1.0",
157
159
  "tsconfck": "^3.0.3",
158
160
  "unist-util-visit": "^5.0.0",
159
161
  "vfile": "^6.0.1",
160
- "vite": "^5.2.10",
162
+ "vite": "^5.2.11",
161
163
  "vitefu": "^0.2.5",
162
164
  "which-pm": "^2.1.1",
163
165
  "yargs-parser": "^21.1.1",
164
- "zod": "^3.23.5",
166
+ "zod": "^3.23.8",
165
167
  "zod-to-json-schema": "^3.23.0",
166
168
  "@astrojs/internal-helpers": "0.4.0",
167
169
  "@astrojs/markdown-remark": "5.1.0",
@@ -171,8 +173,8 @@
171
173
  "sharp": "^0.33.3"
172
174
  },
173
175
  "devDependencies": {
174
- "@astrojs/check": "^0.5.10",
175
- "@playwright/test": "^1.43.1",
176
+ "@astrojs/check": "^0.6.0",
177
+ "@playwright/test": "^1.44.0",
176
178
  "@types/aria-query": "^5.0.4",
177
179
  "@types/babel__generator": "^7.6.8",
178
180
  "@types/babel__traverse": "^7.20.5",
@@ -180,7 +182,7 @@
180
182
  "@types/connect": "^3.4.38",
181
183
  "@types/cssesc": "^3.0.2",
182
184
  "@types/debug": "^4.1.12",
183
- "@types/diff": "^5.2.0",
185
+ "@types/diff": "^5.2.1",
184
186
  "@types/dlv": "^1.1.4",
185
187
  "@types/dom-view-transitions": "^1.0.4",
186
188
  "@types/hast": "^3.0.4",
@@ -196,15 +198,17 @@
196
198
  "@types/yargs-parser": "^21.0.3",
197
199
  "cheerio": "1.0.0-rc.12",
198
200
  "eol": "^0.9.1",
199
- "memfs": "^4.9.1",
201
+ "mdast-util-mdx": "^3.0.0",
202
+ "mdast-util-mdx-jsx": "^3.1.2",
203
+ "memfs": "^4.9.2",
200
204
  "node-mocks-http": "^1.14.1",
201
205
  "parse-srcset": "^1.0.2",
202
206
  "rehype-autolink-headings": "^7.1.0",
203
207
  "rehype-slug": "^6.0.0",
204
208
  "rehype-toc": "^3.0.2",
205
209
  "remark-code-titles": "^0.1.2",
206
- "rollup": "^4.17.1",
207
- "sass": "^1.75.0",
210
+ "rollup": "^4.17.2",
211
+ "sass": "^1.77.0",
208
212
  "srcset-parse": "^1.1.0",
209
213
  "unified": "^11.0.4",
210
214
  "astro-scripts": "0.0.14"
@@ -0,0 +1,61 @@
1
+ import { ActionError, callSafely } from 'astro:actions';
2
+
3
+ function toActionProxy(actionCallback = {}, aggregatedPath = '/_actions/') {
4
+ return new Proxy(actionCallback, {
5
+ get(target, objKey) {
6
+ if (objKey in target) {
7
+ return target[objKey];
8
+ }
9
+ const path = aggregatedPath + objKey.toString();
10
+ const action = (clientParam) => actionHandler(clientParam, path);
11
+ action.toString = () => path;
12
+ action.safe = (input) => {
13
+ return callSafely(() => action(input));
14
+ };
15
+ // recurse to construct queries for nested object paths
16
+ // ex. actions.user.admins.auth()
17
+ return toActionProxy(action, path + '.');
18
+ },
19
+ });
20
+ }
21
+
22
+ /**
23
+ * @param {*} clientParam argument passed to the action when used on the client.
24
+ * @param {string} path Built path to call action on the server.
25
+ * Usage: `actions.[name](clientParam)`.
26
+ */
27
+ async function actionHandler(clientParam, path) {
28
+ if (import.meta.env.SSR) {
29
+ throw new ActionError({
30
+ code: 'BAD_REQUEST',
31
+ message:
32
+ 'Action unexpectedly called on the server. If this error is unexpected, share your feedback on our RFC discussion: https://github.com/withastro/roadmap/pull/912',
33
+ });
34
+ }
35
+ const headers = new Headers();
36
+ headers.set('Accept', 'application/json');
37
+ let body = clientParam;
38
+ if (!(body instanceof FormData)) {
39
+ try {
40
+ body = clientParam ? JSON.stringify(clientParam) : undefined;
41
+ } catch (e) {
42
+ throw new ActionError({
43
+ code: 'BAD_REQUEST',
44
+ message: `Failed to serialize request body to JSON. Full error: ${e.message}`,
45
+ });
46
+ }
47
+ headers.set('Content-Type', 'application/json');
48
+ }
49
+ const res = await fetch(path, {
50
+ method: 'POST',
51
+ body,
52
+ headers,
53
+ });
54
+ if (!res.ok) {
55
+ throw await ActionError.fromResponse(res);
56
+ }
57
+ const json = await res.json();
58
+ return json;
59
+ }
60
+
61
+ export const actions = toActionProxy();
@@ -0,0 +1,3 @@
1
+ declare module 'astro:actions' {
2
+ export * from 'astro/actions/runtime/virtual/server.js';
3
+ }
@@ -26,7 +26,7 @@ declare module 'astro:content' {
26
26
  | import('astro/zod').ZodDiscriminatedUnion<string, import('astro/zod').AnyZodObject[]>
27
27
  | import('astro/zod').ZodIntersection<BaseSchemaWithoutEffects, BaseSchemaWithoutEffects>;
28
28
 
29
- type BaseSchema =
29
+ export type BaseSchema =
30
30
  | BaseSchemaWithoutEffects
31
31
  | import('astro/zod').ZodEffects<BaseSchemaWithoutEffects>;
32
32
 
@@ -42,7 +42,7 @@ declare module 'astro:content' {
42
42
  schema?: S | ((context: SchemaContext) => S);
43
43
  };
44
44
 
45
- type CollectionConfig<S extends BaseSchema> =
45
+ export type CollectionConfig<S extends BaseSchema> =
46
46
  | ContentCollectionConfig<S>
47
47
  | DataCollectionConfig<S>;
48
48