astro 5.8.2 → 5.9.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 (68) hide show
  1. package/dist/actions/runtime/utils.d.ts +1 -1
  2. package/dist/assets/fonts/config.d.ts +21 -21
  3. package/dist/container/index.js +2 -1
  4. package/dist/content/content-layer.js +14 -3
  5. package/dist/content/loaders/types.d.ts +3 -0
  6. package/dist/content/utils.d.ts +26 -10
  7. package/dist/content/utils.js +1 -0
  8. package/dist/core/app/types.d.ts +12 -1
  9. package/dist/core/base-pipeline.js +3 -3
  10. package/dist/core/build/generate.d.ts +1 -1
  11. package/dist/core/build/generate.js +38 -4
  12. package/dist/core/build/internal.d.ts +1 -0
  13. package/dist/core/build/internal.js +2 -1
  14. package/dist/core/build/plugins/index.js +1 -1
  15. package/dist/core/build/plugins/plugin-internals.d.ts +2 -1
  16. package/dist/core/build/plugins/plugin-internals.js +7 -4
  17. package/dist/core/build/plugins/plugin-manifest.js +37 -3
  18. package/dist/core/config/schemas/base.d.ts +435 -331
  19. package/dist/core/config/schemas/base.js +20 -2
  20. package/dist/core/config/schemas/index.d.ts +1 -1
  21. package/dist/core/config/schemas/index.js +4 -1
  22. package/dist/core/config/schemas/relative.d.ts +681 -552
  23. package/dist/core/constants.js +1 -1
  24. package/dist/core/csp/common.d.ts +16 -0
  25. package/dist/core/csp/common.js +116 -0
  26. package/dist/core/csp/config.d.ts +16 -0
  27. package/dist/core/csp/config.js +52 -0
  28. package/dist/core/dev/dev.js +1 -1
  29. package/dist/core/encryption.d.ts +8 -0
  30. package/dist/core/encryption.js +7 -0
  31. package/dist/core/errors/errors-data.d.ts +12 -0
  32. package/dist/core/errors/errors-data.js +6 -0
  33. package/dist/core/messages.js +2 -2
  34. package/dist/core/middleware/index.js +10 -0
  35. package/dist/core/render-context.d.ts +1 -0
  36. package/dist/core/render-context.js +77 -5
  37. package/dist/env/schema.d.ts +34 -34
  38. package/dist/integrations/features-validation.js +36 -30
  39. package/dist/integrations/hooks.d.ts +3 -2
  40. package/dist/runtime/server/astro-island-styles.d.ts +1 -0
  41. package/dist/runtime/server/astro-island-styles.js +4 -0
  42. package/dist/runtime/server/index.d.ts +1 -0
  43. package/dist/runtime/server/render/astro/factory.d.ts +3 -2
  44. package/dist/runtime/server/render/astro/factory.js +6 -1
  45. package/dist/runtime/server/render/astro/head-and-content.d.ts +7 -0
  46. package/dist/runtime/server/render/astro/head-and-content.js +6 -0
  47. package/dist/runtime/server/render/astro/render.d.ts +1 -0
  48. package/dist/runtime/server/render/astro/render.js +2 -1
  49. package/dist/runtime/server/render/common.d.ts +1 -1
  50. package/dist/runtime/server/render/common.js +5 -3
  51. package/dist/runtime/server/render/component.js +8 -2
  52. package/dist/runtime/server/render/csp.d.ts +2 -0
  53. package/dist/runtime/server/render/csp.js +35 -0
  54. package/dist/runtime/server/render/head.js +14 -0
  55. package/dist/runtime/server/render/page.d.ts +1 -1
  56. package/dist/runtime/server/render/page.js +1 -1
  57. package/dist/runtime/server/render/server-islands.d.ts +14 -3
  58. package/dist/runtime/server/render/server-islands.js +100 -69
  59. package/dist/runtime/server/scripts.d.ts +1 -1
  60. package/dist/runtime/server/scripts.js +2 -5
  61. package/dist/runtime/server/transition.d.ts +1 -1
  62. package/dist/runtime/server/transition.js +7 -2
  63. package/dist/types/public/config.d.ts +240 -0
  64. package/dist/types/public/context.d.ts +51 -0
  65. package/dist/types/public/integrations.d.ts +9 -0
  66. package/dist/types/public/internal.d.ts +24 -2
  67. package/dist/vite-plugin-astro-server/plugin.js +26 -4
  68. package/package.json +2 -2
@@ -2,6 +2,16 @@ import { AsyncLocalStorage } from "node:async_hooks";
2
2
  import { IncomingMessage } from "node:http";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import { normalizePath } from "vite";
5
+ import {
6
+ getAlgorithm,
7
+ getDirectives,
8
+ getScriptHashes,
9
+ getScriptResources,
10
+ getStrictDynamic,
11
+ getStyleHashes,
12
+ getStyleResources,
13
+ shouldTrackCspHashes
14
+ } from "../core/csp/common.js";
5
15
  import { warnMissingAdapter } from "../core/dev/adapter-validation.js";
6
16
  import { createKey, getEnvironmentKey, hasEnvironmentKey } from "../core/encryption.js";
7
17
  import { getViteErrorPayload } from "../core/errors/dev/index.js";
@@ -73,8 +83,7 @@ function createVitePluginAstroServer({
73
83
  });
74
84
  const store = localStorage.getStore();
75
85
  if (store instanceof IncomingMessage) {
76
- const request = store;
77
- setRouteError(controller.state, request.url, error);
86
+ setRouteError(controller.state, store.url, error);
78
87
  }
79
88
  const { errorWithMetadata } = recordServerError(loader, settings.config, pipeline, error);
80
89
  setTimeout(
@@ -121,7 +130,8 @@ function createVitePluginAstroServer({
121
130
  };
122
131
  }
123
132
  function createDevelopmentManifest(settings) {
124
- let i18nManifest = void 0;
133
+ let i18nManifest;
134
+ let csp;
125
135
  if (settings.config.i18n) {
126
136
  i18nManifest = {
127
137
  fallback: settings.config.i18n.fallback,
@@ -132,6 +142,17 @@ function createDevelopmentManifest(settings) {
132
142
  fallbackType: toFallbackType(settings.config.i18n.routing)
133
143
  };
134
144
  }
145
+ if (shouldTrackCspHashes(settings.config.experimental.csp)) {
146
+ csp = {
147
+ scriptHashes: getScriptHashes(settings.config.experimental.csp),
148
+ scriptResources: getScriptResources(settings.config.experimental.csp),
149
+ styleHashes: getStyleHashes(settings.config.experimental.csp),
150
+ styleResources: getStyleResources(settings.config.experimental.csp),
151
+ algorithm: getAlgorithm(settings.config.experimental.csp),
152
+ directives: getDirectives(settings.config.experimental.csp),
153
+ isStrictDynamic: getStrictDynamic(settings.config.experimental.csp)
154
+ };
155
+ }
135
156
  return {
136
157
  hrefRoot: settings.config.root.toString(),
137
158
  srcDir: settings.config.srcDir,
@@ -163,7 +184,8 @@ function createDevelopmentManifest(settings) {
163
184
  onRequest: NOOP_MIDDLEWARE_FN
164
185
  };
165
186
  },
166
- sessionConfig: settings.config.session
187
+ sessionConfig: settings.config.session,
188
+ csp
167
189
  };
168
190
  }
169
191
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "5.8.2",
3
+ "version": "5.9.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",
@@ -98,7 +98,7 @@
98
98
  "vendor"
99
99
  ],
100
100
  "dependencies": {
101
- "@astrojs/compiler": "^2.11.0",
101
+ "@astrojs/compiler": "^2.12.0",
102
102
  "@capsizecss/unpack": "^2.4.0",
103
103
  "@oslojs/encoding": "^1.1.0",
104
104
  "@rollup/pluginutils": "^5.1.4",