astro 3.0.11 → 3.0.12

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.
package/client.d.ts CHANGED
@@ -57,17 +57,15 @@ declare module 'astro:assets' {
57
57
  Image: typeof import('./components/Image.astro').default;
58
58
  };
59
59
 
60
- type WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };
61
- type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
62
- type ImgAttributes = WithRequired<
60
+ type ImgAttributes = import('./dist/type-utils.js').WithRequired<
63
61
  Omit<import('./types').HTMLAttributes<'img'>, 'src' | 'width' | 'height'>,
64
62
  'alt'
65
63
  >;
66
64
 
67
- export type LocalImageProps = Simplify<
65
+ export type LocalImageProps = import('./dist/type-utils.js').Simplify<
68
66
  import('./dist/assets/types.js').LocalImageProps<ImgAttributes>
69
67
  >;
70
- export type RemoteImageProps = Simplify<
68
+ export type RemoteImageProps = import('./dist/type-utils.js').Simplify<
71
69
  import('./dist/assets/types.js').RemoteImageProps<ImgAttributes>
72
70
  >;
73
71
  export const { getImage, getConfiguredImageService, imageConfig, Image }: AstroAssets;
@@ -17,6 +17,7 @@ import type { AstroCookies } from '../core/cookies';
17
17
  import type { ResponseWithEncoding } from '../core/endpoint/index.js';
18
18
  import type { AstroIntegrationLogger, Logger, LoggerLevel } from '../core/logger/core';
19
19
  import type { AstroComponentFactory, AstroComponentInstance } from '../runtime/server';
20
+ import type { OmitIndexSignature, Simplify } from '../type-utils';
20
21
  import type { SUPPORTED_MARKDOWN_FILE_EXTENSIONS } from './../core/constants.js';
21
22
  export { type AstroIntegrationLogger };
22
23
  export type { MarkdownHeading, MarkdownMetadata, MarkdownRenderingResult, RehypePlugins, RemarkPlugins, ShikiConfig, } from '@astrojs/markdown-remark';
@@ -1556,12 +1557,6 @@ export interface Page<T = any> {
1556
1557
  next: string | undefined;
1557
1558
  };
1558
1559
  }
1559
- type OmitIndexSignature<ObjectType> = {
1560
- [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType];
1561
- };
1562
- type Simplify<T> = {
1563
- [KeyType in keyof T]: T[KeyType];
1564
- } & {};
1565
1560
  export type PaginateFunction = <PaginateData, AdditionalPaginateProps extends Props, AdditionalPaginateParams extends Params>(data: PaginateData[], args?: PaginateOptions<AdditionalPaginateProps, AdditionalPaginateParams>) => {
1566
1561
  params: Simplify<{
1567
1562
  page: string | undefined;
@@ -1,3 +1,4 @@
1
+ import type { WithRequired } from '../type-utils.js';
1
2
  import type { VALID_INPUT_FORMATS, VALID_OUTPUT_FORMATS } from './consts.js';
2
3
  import type { ImageService } from './services/service.js';
3
4
  export type ImageQualityPreset = 'low' | 'mid' | 'high' | 'max' | (string & {});
@@ -46,9 +47,6 @@ export interface GetImageResult {
46
47
  src: string;
47
48
  attributes: Record<string, any>;
48
49
  }
49
- type WithRequired<T, K extends keyof T> = T & {
50
- [P in K]-?: T[P];
51
- };
52
50
  type ImageSharedProps<T> = T & {
53
51
  /**
54
52
  * Width of the image, the value of this property will be used to assign the `width` property on the final `img` element.
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "3.0.11";
1
+ const ASTRO_VERSION = "3.0.12";
2
2
  const SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [
3
3
  ".markdown",
4
4
  ".mdown",
@@ -20,7 +20,7 @@ async function dev(inlineConfig) {
20
20
  base: restart.container.settings.config.base
21
21
  })
22
22
  );
23
- const currentVersion = "3.0.11";
23
+ const currentVersion = "3.0.12";
24
24
  if (currentVersion.includes("-")) {
25
25
  logger.warn(null, msg.prerelease({ currentVersion }));
26
26
  }
@@ -50,7 +50,7 @@ function serverStart({
50
50
  base,
51
51
  isRestart = false
52
52
  }) {
53
- const version = "3.0.11";
53
+ const version = "3.0.12";
54
54
  const localPrefix = `${dim("\u2503")} Local `;
55
55
  const networkPrefix = `${dim("\u2503")} Network `;
56
56
  const emptyPrefix = " ".repeat(11);
@@ -235,7 +235,7 @@ function printHelp({
235
235
  message.push(
236
236
  linebreak(),
237
237
  ` ${bgGreen(black(` ${commandName} `))} ${green(
238
- `v${"3.0.11"}`
238
+ `v${"3.0.12"}`
239
239
  )} ${headline}`
240
240
  );
241
241
  }
@@ -0,0 +1,10 @@
1
+ export type Simplify<T> = {
2
+ [KeyType in keyof T]: T[KeyType];
3
+ } & {};
4
+ export type WithRequired<T, K extends keyof T> = T & {
5
+ [P in K]-?: T[P];
6
+ };
7
+ export type OmitIndexSignature<ObjectType> = {
8
+ [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType];
9
+ };
10
+ export type ValueOf<T> = T[keyof T];
File without changes
@@ -125,7 +125,7 @@ File: ${id}`
125
125
  hydratedComponents: transformResult.hydratedComponents,
126
126
  scripts: transformResult.scripts,
127
127
  containsHead: transformResult.containsHead,
128
- propagation: "none",
128
+ propagation: transformResult.propagation ? "self" : "none",
129
129
  pageOptions: {}
130
130
  };
131
131
  return {
@@ -34,6 +34,14 @@ function configHeadVitePlugin() {
34
34
  if (info && getAstroMetadata(info)?.containsHead) {
35
35
  propagateMetadata.call(this, id, "containsHead", true);
36
36
  }
37
+ if (info && getAstroMetadata(info)?.propagation === "self") {
38
+ const mod = server.moduleGraph.getModuleById(id);
39
+ for (const parent of mod?.importers ?? []) {
40
+ if (parent.id) {
41
+ propagateMetadata.call(this, parent.id, "propagation", "in-tree");
42
+ }
43
+ }
44
+ }
37
45
  if (injectExp.test(source)) {
38
46
  propagateMetadata.call(this, id, "propagation", "in-tree");
39
47
  }
@@ -65,10 +73,21 @@ function astroHeadBuildPlugin(internals) {
65
73
  continue;
66
74
  for (const [id, mod] of Object.entries(output.modules)) {
67
75
  const modinfo = this.getModuleInfo(id);
68
- if (modinfo && getAstroMetadata(modinfo)?.containsHead) {
69
- for (const [pageInfo] of getTopLevelPages(id, this)) {
70
- let metadata = getOrCreateMetadata(pageInfo.id);
71
- metadata.containsHead = true;
76
+ if (modinfo) {
77
+ const meta = getAstroMetadata(modinfo);
78
+ if (meta?.containsHead) {
79
+ for (const [pageInfo] of getTopLevelPages(id, this)) {
80
+ let metadata = getOrCreateMetadata(pageInfo.id);
81
+ metadata.containsHead = true;
82
+ }
83
+ }
84
+ if (meta?.propagation === "self") {
85
+ for (const [info] of walkParentInfos(id, this)) {
86
+ let metadata = getOrCreateMetadata(info.id);
87
+ if (metadata.propagation !== "self") {
88
+ metadata.propagation = "in-tree";
89
+ }
90
+ }
72
91
  }
73
92
  }
74
93
  if (mod.code && injectExp.test(mod.code)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "3.0.11",
3
+ "version": "3.0.12",
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",
@@ -106,7 +106,7 @@
106
106
  "vendor"
107
107
  ],
108
108
  "dependencies": {
109
- "@astrojs/compiler": "^2.0.1",
109
+ "@astrojs/compiler": "^2.1.0",
110
110
  "@babel/core": "^7.22.10",
111
111
  "@babel/generator": "^7.22.10",
112
112
  "@babel/parser": "^7.22.10",