From b5d2d232514a3c105cde4d01a5d7657786959989 Mon Sep 17 00:00:00 2001 From: Princesseuh <3019731+Princesseuh@users.noreply.github.com> Date: Thu, 11 Jan 2024 01:24:02 -0500 Subject: [PATCH 1/5] fix: image proxy not working correctly --- packages/astro/src/assets/internal.ts | 8 +++- packages/astro/src/assets/types.ts | 4 +- packages/astro/src/assets/utils/emitAsset.ts | 2 +- packages/astro/src/assets/utils/proxy.ts | 10 ++++- .../astro/src/assets/vite-plugin-assets.ts | 42 +++++++++---------- packages/astro/src/content/runtime-assets.ts | 2 +- .../content/vite-plugin-content-imports.ts | 1 + .../src/pages/blog/[...slug].astro | 2 - 8 files changed, 41 insertions(+), 30 deletions(-) diff --git a/packages/astro/src/assets/internal.ts b/packages/astro/src/assets/internal.ts index 7a08da15feff..45699285e21c 100644 --- a/packages/astro/src/assets/internal.ts +++ b/packages/astro/src/assets/internal.ts @@ -61,6 +61,10 @@ export async function getImage( : options.src, }; + const originalPath = isESMImportedImage(resolvedOptions.src) + ? resolvedOptions.src.fsPath + : resolvedOptions.src; + // Clone the `src` object if it's an ESM import so that we don't refer to any properties of the original object // Causing our generate step to think the image is used outside of the image optimization pipeline const clonedSrc = isESMImportedImage(resolvedOptions.src) @@ -95,10 +99,10 @@ export async function getImage( !(isRemoteImage(validatedOptions.src) && imageURL === validatedOptions.src) ) { const propsToHash = service.propertiesToHash ?? DEFAULT_HASH_PROPS; - imageURL = globalThis.astroAsset.addStaticImage(validatedOptions, propsToHash); + imageURL = globalThis.astroAsset.addStaticImage(validatedOptions, propsToHash, originalPath); srcSets = srcSetTransforms.map((srcSet) => ({ transform: srcSet.transform, - url: globalThis.astroAsset.addStaticImage!(srcSet.transform, propsToHash), + url: globalThis.astroAsset.addStaticImage!(srcSet.transform, propsToHash, originalPath), descriptor: srcSet.descriptor, attributes: srcSet.attributes, })); diff --git a/packages/astro/src/assets/types.ts b/packages/astro/src/assets/types.ts index 34ded257f6b2..fb11becb0983 100644 --- a/packages/astro/src/assets/types.ts +++ b/packages/astro/src/assets/types.ts @@ -20,7 +20,9 @@ declare global { // eslint-disable-next-line no-var var astroAsset: { imageService?: ImageService; - addStaticImage?: ((options: ImageTransform, hashProperties: string[]) => string) | undefined; + addStaticImage?: + | ((options: ImageTransform, hashProperties: string[], fsPath: string) => string) + | undefined; staticImages?: AssetsGlobalStaticImagesList; referencedImages?: Set; }; diff --git a/packages/astro/src/assets/utils/emitAsset.ts b/packages/astro/src/assets/utils/emitAsset.ts index 0f996691bec6..545299605c7f 100644 --- a/packages/astro/src/assets/utils/emitAsset.ts +++ b/packages/astro/src/assets/utils/emitAsset.ts @@ -33,7 +33,7 @@ export async function emitESMImage( Object.defineProperty(emittedImage, 'fsPath', { enumerable: false, writable: false, - value: url, + value: id, }); // Build diff --git a/packages/astro/src/assets/utils/proxy.ts b/packages/astro/src/assets/utils/proxy.ts index 0dcaffb8227b..2b4389e4d142 100644 --- a/packages/astro/src/assets/utils/proxy.ts +++ b/packages/astro/src/assets/utils/proxy.ts @@ -1,11 +1,17 @@ -export function getProxyCode(options: Record, isSSR: boolean): string { +import type { ImageMetadata } from '../types.js'; + +export function getProxyCode(options: ImageMetadata, isSSR: boolean): string { + const stringifiedFSPath = JSON.stringify(options.fsPath); return ` new Proxy(${JSON.stringify(options)}, { get(target, name, receiver) { if (name === 'clone') { return structuredClone(target); } - ${!isSSR ? 'globalThis.astroAsset.referencedImages.add(target.fsPath);' : ''} + if (name === 'fsPath') { + return ${stringifiedFSPath}; + } + ${!isSSR ? `globalThis.astroAsset.referencedImages.add(${stringifiedFSPath});` : ''} return target[name]; } }) diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index 85868f6e1ce3..7cbeee9efd6f 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -19,7 +19,7 @@ import { hashTransform, propsToFilename } from './utils/transformToPath.js'; const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID; -const assetRegex = new RegExp(`\\.(${VALID_INPUT_FORMATS.join('|')})$`, 'i'); +const assetRegex = new RegExp(`\\.(${VALID_INPUT_FORMATS.join('|')})`, 'i'); export default function assets({ settings, @@ -81,7 +81,7 @@ export default function assets({ return; } - globalThis.astroAsset.addStaticImage = (options, hashProperties) => { + globalThis.astroAsset.addStaticImage = (options, hashProperties, originalPath) => { if (!globalThis.astroAsset.staticImages) { globalThis.astroAsset.staticImages = new Map< string, @@ -97,11 +97,6 @@ export default function assets({ isESMImportedImage(options.src) ? options.src.src : options.src ).replace(settings.config.build.assetsPrefix || '', ''); - // This, however, is the real original path, in `src` and all. - const originalSrcPath = isESMImportedImage(options.src) - ? options.src.fsPath - : options.src; - const hash = hashTransform( options, settings.config.image.service.entrypoint, @@ -120,7 +115,7 @@ export default function assets({ if (!transformsForPath) { globalThis.astroAsset.staticImages.set(finalOriginalImagePath, { - originalSrcPath: originalSrcPath, + originalSrcPath: originalPath, transforms: new Map(), }); transformsForPath = globalThis.astroAsset.staticImages.get(finalOriginalImagePath)!; @@ -178,15 +173,20 @@ export default function assets({ resolvedConfig = viteConfig; }, async load(id, options) { - // If our import has any query params, we'll let Vite handle it - // See https://github.com/withastro/astro/issues/8333 - if (id !== removeQueryString(id)) { - return; - } if (assetRegex.test(id)) { - const meta = await emitESMImage(id, this.meta.watchMode, this.emitFile); + if (!globalThis.astroAsset.referencedImages) + globalThis.astroAsset.referencedImages = new Set(); + + if (id !== removeQueryString(id)) { + // If our import has any query params, we'll let Vite handle it, nonetheless we'll make sure to not delete it + // See https://github.com/withastro/astro/issues/8333 + globalThis.astroAsset.referencedImages.add(removeQueryString(id)); + return; + } - if (!meta) { + const imageMetadata = await emitESMImage(id, this.meta.watchMode, this.emitFile); + + if (!imageMetadata) { throw new AstroError({ ...AstroErrorData.ImageNotFound, message: AstroErrorData.ImageNotFound.message(id), @@ -197,13 +197,13 @@ export default function assets({ // Since you cannot use image optimization on the client anyway, it's safe to assume that if the user imported // an image on the client, it should be present in the final build. if (options?.ssr) { - return `export default ${getProxyCode(meta, isServerLikeOutput(settings.config))}`; + return `export default ${getProxyCode( + imageMetadata, + isServerLikeOutput(settings.config) + )}`; } else { - if (!globalThis.astroAsset.referencedImages) - globalThis.astroAsset.referencedImages = new Set(); - - globalThis.astroAsset.referencedImages.add(meta.fsPath); - return `export default ${JSON.stringify(meta)}`; + globalThis.astroAsset.referencedImages.add(imageMetadata.fsPath); + return `export default ${JSON.stringify(imageMetadata)}`; } } }, diff --git a/packages/astro/src/content/runtime-assets.ts b/packages/astro/src/content/runtime-assets.ts index 0709933defac..a34d71bab738 100644 --- a/packages/astro/src/content/runtime-assets.ts +++ b/packages/astro/src/content/runtime-assets.ts @@ -22,7 +22,7 @@ export function createImage(pluginContext: PluginContext, entryFilePath: string) return z.never(); } - return { ...metadata, ASTRO_ASSET: true }; + return { ...metadata, ASTRO_ASSET: metadata.fsPath }; }); }; } diff --git a/packages/astro/src/content/vite-plugin-content-imports.ts b/packages/astro/src/content/vite-plugin-content-imports.ts index d75378c2a811..7d65e6e11514 100644 --- a/packages/astro/src/content/vite-plugin-content-imports.ts +++ b/packages/astro/src/content/vite-plugin-content-imports.ts @@ -365,6 +365,7 @@ function stringifyEntryData(data: Record, isSSR: boolean): string { // For Astro assets, add a proxy to track references if (typeof value === 'object' && 'ASTRO_ASSET' in value) { const { ASTRO_ASSET, ...asset } = value; + asset.fsPath = ASTRO_ASSET; return getProxyCode(asset, isSSR); } }); diff --git a/packages/astro/test/fixtures/core-image-ssg/src/pages/blog/[...slug].astro b/packages/astro/test/fixtures/core-image-ssg/src/pages/blog/[...slug].astro index dc25493e854a..1173b0fd1e6e 100644 --- a/packages/astro/test/fixtures/core-image-ssg/src/pages/blog/[...slug].astro +++ b/packages/astro/test/fixtures/core-image-ssg/src/pages/blog/[...slug].astro @@ -1,5 +1,4 @@ --- -import { getImage } from 'astro:assets'; import { getCollection } from 'astro:content'; export async function getStaticPaths() { @@ -11,7 +10,6 @@ export async function getStaticPaths() { const { entry } = Astro.props; const { Content } = await entry.render(); -const myImage = await getImage(entry.data.image); --- From 7d97901a3f5c001f72d1bcdb151610e9cd5a4753 Mon Sep 17 00:00:00 2001 From: Princesseuh <3019731+Princesseuh@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:20:06 -0500 Subject: [PATCH 2/5] fix: only take in valid images --- packages/astro/src/assets/vite-plugin-assets.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/astro/src/assets/vite-plugin-assets.ts b/packages/astro/src/assets/vite-plugin-assets.ts index 7cbeee9efd6f..5a56e76a6838 100644 --- a/packages/astro/src/assets/vite-plugin-assets.ts +++ b/packages/astro/src/assets/vite-plugin-assets.ts @@ -20,6 +20,7 @@ import { hashTransform, propsToFilename } from './utils/transformToPath.js'; const resolvedVirtualModuleId = '\0' + VIRTUAL_MODULE_ID; const assetRegex = new RegExp(`\\.(${VALID_INPUT_FORMATS.join('|')})`, 'i'); +const assetRegexEnds = new RegExp(`\\.(${VALID_INPUT_FORMATS.join('|')})$`, 'i'); export default function assets({ settings, @@ -184,6 +185,11 @@ export default function assets({ return; } + // If the requested ID doesn't end with a valid image extension, we'll let Vite handle it + if (!assetRegexEnds.test(id)) { + return; + } + const imageMetadata = await emitESMImage(id, this.meta.watchMode, this.emitFile); if (!imageMetadata) { From c26dfa765c609ce8c48e60cf03084f776dad0036 Mon Sep 17 00:00:00 2001 From: Princesseuh <3019731+Princesseuh@users.noreply.github.com> Date: Fri, 12 Jan 2024 18:10:43 -0500 Subject: [PATCH 3/5] test: add tests --- .../fixtures/core-image-deletion/package.json | 11 ++++++ .../core-image-deletion/public/penguin3.jpg | Bin 0 -> 11677 bytes .../src/assets/onlyone.jpg | Bin 0 -> 11621 bytes .../src/assets/twoofus.jpg | Bin 0 -> 11677 bytes .../core-image-deletion/src/assets/url.jpg | Bin 0 -> 46343 bytes .../core-image-deletion/src/pages/index.astro | 15 ++++++++ .../core-image-deletion/tsconfig.json | 9 +++++ packages/astro/test/image-deletion.test.js | 36 ++++++++++++++++++ pnpm-lock.yaml | 6 +++ 9 files changed, 77 insertions(+) create mode 100644 packages/astro/test/fixtures/core-image-deletion/package.json create mode 100644 packages/astro/test/fixtures/core-image-deletion/public/penguin3.jpg create mode 100644 packages/astro/test/fixtures/core-image-deletion/src/assets/onlyone.jpg create mode 100644 packages/astro/test/fixtures/core-image-deletion/src/assets/twoofus.jpg create mode 100644 packages/astro/test/fixtures/core-image-deletion/src/assets/url.jpg create mode 100644 packages/astro/test/fixtures/core-image-deletion/src/pages/index.astro create mode 100644 packages/astro/test/fixtures/core-image-deletion/tsconfig.json create mode 100644 packages/astro/test/image-deletion.test.js diff --git a/packages/astro/test/fixtures/core-image-deletion/package.json b/packages/astro/test/fixtures/core-image-deletion/package.json new file mode 100644 index 000000000000..40a2ee1a64b1 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-deletion/package.json @@ -0,0 +1,11 @@ +{ + "name": "@test/core-image-deletion", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + }, + "scripts": { + "dev": "astro dev" + } +} diff --git a/packages/astro/test/fixtures/core-image-deletion/public/penguin3.jpg b/packages/astro/test/fixtures/core-image-deletion/public/penguin3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e859ac3c992f38d8e588390f34a36102e6547dbc GIT binary patch literal 11677 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 z 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 M?2O!)mGXc8*|P2~xBvhE literal 0 HcmV?d00001 diff --git a/packages/astro/test/fixtures/core-image-deletion/src/pages/index.astro b/packages/astro/test/fixtures/core-image-deletion/src/pages/index.astro new file mode 100644 index 000000000000..a7aa450819d9 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-deletion/src/pages/index.astro @@ -0,0 +1,15 @@ +--- +import { Image } from "astro:assets"; +import onlyOne from "../assets/onlyone.jpg"; +import twoOfUs from "../assets/twoofus.jpg"; +import twoFromURL from "../assets/url.jpg"; +import twoFromURL_URL from "../assets/url.jpg?url"; +--- + +Only one of me exists at the end of the build + +Two of us will exist, because I'm also used as a normal image +Two of us will exist, because I'm also used as a normal image + +Two of us will exist, because I'm also imported using ?url +Two of us will exist, because I'm also used as a normal image diff --git a/packages/astro/test/fixtures/core-image-deletion/tsconfig.json b/packages/astro/test/fixtures/core-image-deletion/tsconfig.json new file mode 100644 index 000000000000..b5bf6a715eb5 --- /dev/null +++ b/packages/astro/test/fixtures/core-image-deletion/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "astro/tsconfigs/base", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "~/assets/*": ["src/assets/*"] + }, + } +} diff --git a/packages/astro/test/image-deletion.test.js b/packages/astro/test/image-deletion.test.js new file mode 100644 index 000000000000..876b4d13b6d4 --- /dev/null +++ b/packages/astro/test/image-deletion.test.js @@ -0,0 +1,36 @@ +import { expect } from 'chai'; +import { testImageService } from './test-image-service.js'; +import { loadFixture } from './test-utils.js'; + +describe('astro:assets - delete images that are unused zzz', () => { + /** @type {import('./test-utils.js').Fixture} */ + let fixture; + + describe('build ssg', () => { + before(async () => { + fixture = await loadFixture({ + root: './fixtures/core-image-deletion/', + image: { + service: testImageService(), + }, + }); + + await fixture.build(); + }); + + it('should delete images that are only used for optimization', async () => { + const imagesOnlyOptimized = await fixture.glob('_astro/onlyone.*.*'); + expect(imagesOnlyOptimized).to.have.lengthOf(1); + }); + + it('should not delete images that are used in other contexts', async () => { + const imagesUsedElsewhere = await fixture.glob('_astro/twoofus.*.*'); + expect(imagesUsedElsewhere).to.have.lengthOf(2); + }); + + it('should not delete images that are also used through query params', async () => { + const imagesUsedElsewhere = await fixture.glob('_astro/url.*.*'); + expect(imagesUsedElsewhere).to.have.lengthOf(2); + }); + }); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ea89e3c60453..f64d7b64014c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2508,6 +2508,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/core-image-deletion: + dependencies: + astro: + specifier: workspace:* + version: link:../../.. + packages/astro/test/fixtures/core-image-errors: dependencies: astro: From f49e59d820d0e54dc8d6abc18c6626c8a479c0a7 Mon Sep 17 00:00:00 2001 From: Erika <3019731+Princesseuh@users.noreply.github.com> Date: Fri, 12 Jan 2024 22:11:44 -0500 Subject: [PATCH 4/5] Create slimy-mayflies-vanish.md --- .changeset/slimy-mayflies-vanish.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/slimy-mayflies-vanish.md diff --git a/.changeset/slimy-mayflies-vanish.md b/.changeset/slimy-mayflies-vanish.md new file mode 100644 index 000000000000..64f61aec9167 --- /dev/null +++ b/.changeset/slimy-mayflies-vanish.md @@ -0,0 +1,5 @@ +--- +"astro": patch +--- + +Fix Astro wrongfully deleting certain images imported with `?url` when used in tandem with `astro:assets` From 346ebc827b1f427f6f0e0420cc1c5a3f6bed3f22 Mon Sep 17 00:00:00 2001 From: Princesseuh <3019731+Princesseuh@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:41:24 -0500 Subject: [PATCH 5/5] nit: remove erika-ism --- packages/astro/test/image-deletion.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/astro/test/image-deletion.test.js b/packages/astro/test/image-deletion.test.js index 876b4d13b6d4..2c92f2cec340 100644 --- a/packages/astro/test/image-deletion.test.js +++ b/packages/astro/test/image-deletion.test.js @@ -2,7 +2,7 @@ import { expect } from 'chai'; import { testImageService } from './test-image-service.js'; import { loadFixture } from './test-utils.js'; -describe('astro:assets - delete images that are unused zzz', () => { +describe('astro:assets - delete images that are unused', () => { /** @type {import('./test-utils.js').Fixture} */ let fixture;