summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.changeset/sour-games-burn.md11
-rw-r--r--packages/astro/client.d.ts20
-rw-r--r--packages/astro/components/ViewTransitions.astro4
-rw-r--r--packages/astro/package.json14
-rw-r--r--packages/astro/src/core/create-vite.ts2
-rw-r--r--packages/astro/src/core/middleware/namespace.ts1
-rw-r--r--packages/astro/src/i18n/vite-plugin-i18n.ts2
-rw-r--r--packages/astro/src/prefetch/vite-plugin-prefetch.ts6
-rw-r--r--packages/astro/src/transitions/vite-plugin-transitions.ts4
-rw-r--r--packages/astro/src/virtual-modules/README.md3
-rw-r--r--packages/astro/src/virtual-modules/i18n.ts1
-rw-r--r--packages/astro/src/virtual-modules/middleware.ts1
-rw-r--r--packages/astro/src/virtual-modules/prefetch.ts1
-rw-r--r--packages/astro/src/virtual-modules/transitions-router.ts1
-rw-r--r--packages/astro/src/virtual-modules/transitions.ts1
15 files changed, 40 insertions, 32 deletions
diff --git a/.changeset/sour-games-burn.md b/.changeset/sour-games-burn.md
new file mode 100644
index 000000000..64203dbd4
--- /dev/null
+++ b/.changeset/sour-games-burn.md
@@ -0,0 +1,11 @@
+---
+"astro": patch
+---
+
+Refactors virtual modules exports. This should not break your project unless you import Astro's internal modules, including:
+
+- `astro/middleware/namespace`
+- `astro/transitions`
+- `astro/transitions/router`
+- `astro/prefetch`
+- `astro/i18n`
diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts
index f1cb0ff11..ee4c9df7e 100644
--- a/packages/astro/client.d.ts
+++ b/packages/astro/client.d.ts
@@ -106,7 +106,7 @@ declare module '*.avif' {
}
declare module 'astro:transitions' {
- type TransitionModule = typeof import('./dist/transitions/index.js');
+ type TransitionModule = typeof import('./dist/virtual-modules/transitions.js');
export const slide: TransitionModule['slide'];
export const fade: TransitionModule['fade'];
@@ -115,24 +115,24 @@ declare module 'astro:transitions' {
}
declare module 'astro:transitions/client' {
- type TransitionRouterModule = typeof import('./dist/transitions/router.js');
+ type TransitionRouterModule = typeof import('./dist/virtual-modules/transitions-router.js');
export const supportsViewTransitions: TransitionRouterModule['supportsViewTransitions'];
export const transitionEnabledOnThisPage: TransitionRouterModule['transitionEnabledOnThisPage'];
export const navigate: TransitionRouterModule['navigate'];
- export type Options = import('./dist/transitions/router.js').Options;
+ export type Options = import('./dist/virtual-modules/transitions-router.js').Options;
}
declare module 'astro:prefetch' {
- export { prefetch, PrefetchOptions } from 'astro/prefetch';
+ export { prefetch, PrefetchOptions } from 'astro/virtual-modules/prefetch.js';
}
declare module 'astro:i18n' {
- export type GetLocaleOptions = import('./dist/i18n/index.js').GetLocaleOptions;
+ export type GetLocaleOptions = import('./dist/virtual-modules/i18n.js').GetLocaleOptions;
/**
* @param {string} locale A locale
* @param {string} [path=""] An optional path to add after the `locale`.
- * @param {import('./dist/i18n/index.js').GetLocaleOptions} options Customise the generated path
+ * @param {import('./dist/virtual-modules/i18n.js').GetLocaleOptions} options Customise the generated path
* @return {string}
*
* Returns a _relative_ path with passed locale.
@@ -161,7 +161,7 @@ declare module 'astro:i18n' {
*
* @param {string} locale A locale
* @param {string} [path=""] An optional path to add after the `locale`.
- * @param {import('./dist/i18n/index.js').GetLocaleOptions} options Customise the generated path
+ * @param {import('./dist/virtual-modules/i18n.js').GetLocaleOptions} options Customise the generated path
* @return {string}
*
* Returns an absolute path with the passed locale. The behaviour is subject to change based on `site` configuration.
@@ -191,7 +191,7 @@ declare module 'astro:i18n' {
/**
* @param {string} [path=""] An optional path to add after the `locale`.
- * @param {import('./dist/i18n/index.js').GetLocaleOptions} options Customise the generated path
+ * @param {import('./dist/virtual-modules/i18n.js').GetLocaleOptions} options Customise the generated path
* @return {string[]}
*
* Works like `getRelativeLocaleUrl` but it emits the relative URLs for ALL locales:
@@ -199,7 +199,7 @@ declare module 'astro:i18n' {
export const getRelativeLocaleUrlList: (path?: string, options?: GetLocaleOptions) => string[];
/**
* @param {string} [path=""] An optional path to add after the `locale`.
- * @param {import('./dist/i18n/index.js').GetLocaleOptions} options Customise the generated path
+ * @param {import('./dist/virtual-modules/i18n.js').GetLocaleOptions} options Customise the generated path
* @return {string[]}
*
* Works like `getAbsoluteLocaleUrl` but it emits the absolute URLs for ALL locales:
@@ -208,7 +208,7 @@ declare module 'astro:i18n' {
}
declare module 'astro:middleware' {
- export * from 'astro/middleware/namespace';
+ export * from 'astro/virtual-modules/middleware.js';
}
declare module 'astro:components' {
diff --git a/packages/astro/components/ViewTransitions.astro b/packages/astro/components/ViewTransitions.astro
index 089d8d8e5..1d2d72d8a 100644
--- a/packages/astro/components/ViewTransitions.astro
+++ b/packages/astro/components/ViewTransitions.astro
@@ -29,8 +29,8 @@ const { fallback = 'animate', handleForms } = Astro.props;
<script>
import type { Options } from 'astro:transitions/client';
import { supportsViewTransitions, navigate } from 'astro:transitions/client';
- // NOTE: import from `astro/prefetch` as `astro:prefetch` requires the `prefetch` config to be enabled
- import { init } from 'astro/prefetch';
+ // NOTE: import from `astro/virtual-modules/prefetch.js` as `astro:prefetch` requires the `prefetch` config to be enabled
+ import { init } from 'astro/virtual-modules/prefetch.js';
export type Fallback = 'none' | 'animate' | 'swap';
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 751c511b2..4cd290206 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -22,10 +22,7 @@
"./dist/core/app/*"
],
"middleware": [
- "./dist/core/middleware/index.d.ts"
- ],
- "middleware/namespace": [
- "./dist/core/middleware/namespace.d.ts"
+ "./dist/virtual-modules/middleware.d.ts"
]
}
},
@@ -73,14 +70,7 @@
"types": "./dist/core/middleware/index.d.ts",
"default": "./dist/core/middleware/index.js"
},
- "./middleware/namespace": {
- "types": "./dist/core/middleware/namespace.d.ts",
- "default": "./dist/core/middleware/namespace.js"
- },
- "./transitions": "./dist/transitions/index.js",
- "./transitions/router": "./dist/transitions/router.js",
- "./prefetch": "./dist/prefetch/index.js",
- "./i18n": "./dist/i18n/index.js"
+ "./virtual-modules/*": "./dist/virtual-modules/*"
},
"imports": {
"#astro/*": "./dist/*.js"
diff --git a/packages/astro/src/core/create-vite.ts b/packages/astro/src/core/create-vite.ts
index 2b677c1d9..c9716af89 100644
--- a/packages/astro/src/core/create-vite.ts
+++ b/packages/astro/src/core/create-vite.ts
@@ -192,7 +192,7 @@ export async function createVite(
},
{
find: 'astro:middleware',
- replacement: 'astro/middleware/namespace',
+ replacement: 'astro/virtual-modules/middleware.js',
},
{
find: 'astro:components',
diff --git a/packages/astro/src/core/middleware/namespace.ts b/packages/astro/src/core/middleware/namespace.ts
deleted file mode 100644
index 55a84f666..000000000
--- a/packages/astro/src/core/middleware/namespace.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { defineMiddleware, sequence } from './index.js';
diff --git a/packages/astro/src/i18n/vite-plugin-i18n.ts b/packages/astro/src/i18n/vite-plugin-i18n.ts
index 4aa6ee42e..faba67da3 100644
--- a/packages/astro/src/i18n/vite-plugin-i18n.ts
+++ b/packages/astro/src/i18n/vite-plugin-i18n.ts
@@ -28,7 +28,7 @@ export default function astroInternationalization({
getLocaleAbsoluteUrl as _getLocaleAbsoluteUrl,
getLocaleAbsoluteUrlList as _getLocaleAbsoluteUrlList,
- } from "astro/i18n";
+ } from "astro/virtual-modules/i18n.js";
const base = ${JSON.stringify(settings.config.base)};
const trailingSlash = ${JSON.stringify(settings.config.trailingSlash)};
diff --git a/packages/astro/src/prefetch/vite-plugin-prefetch.ts b/packages/astro/src/prefetch/vite-plugin-prefetch.ts
index 73ae53f63..69714fd49 100644
--- a/packages/astro/src/prefetch/vite-plugin-prefetch.ts
+++ b/packages/astro/src/prefetch/vite-plugin-prefetch.ts
@@ -4,7 +4,7 @@ import type { AstroSettings } from '../@types/astro.js';
const virtualModuleId = 'astro:prefetch';
const resolvedVirtualModuleId = '\0' + virtualModuleId;
const prefetchInternalModuleFsSubpath = 'astro/dist/prefetch/index.js';
-const prefetchCode = `import { init } from 'astro/prefetch';init()`;
+const prefetchCode = `import { init } from 'astro/virtual-modules/prefetch.js';init()`;
export default function astroPrefetch({ settings }: { settings: AstroSettings }): vite.Plugin {
const prefetchOption = settings.config.prefetch;
@@ -19,7 +19,7 @@ export default function astroPrefetch({ settings }: { settings: AstroSettings })
// Inject prefetch script to all pages
settings.scripts.push({
stage: 'page',
- content: `import { init } from 'astro/prefetch';init()`,
+ content: `import { init } from 'astro/virtual-modules/prefetch.js';init()`,
});
}
@@ -40,7 +40,7 @@ export default function astroPrefetch({ settings }: { settings: AstroSettings })
load(id) {
if (id === resolvedVirtualModuleId) {
if (!prefetch) throwPrefetchNotEnabledError();
- return `export { prefetch } from "astro/prefetch";`;
+ return `export { prefetch } from "astro/virtual-modules/prefetch.js";`;
}
},
transform(code, id) {
diff --git a/packages/astro/src/transitions/vite-plugin-transitions.ts b/packages/astro/src/transitions/vite-plugin-transitions.ts
index 8d5dbe553..cd5b0e616 100644
--- a/packages/astro/src/transitions/vite-plugin-transitions.ts
+++ b/packages/astro/src/transitions/vite-plugin-transitions.ts
@@ -21,13 +21,13 @@ export default function astroTransitions({ settings }: { settings: AstroSettings
load(id) {
if (id === resolvedVirtualModuleId) {
return `
- export * from "astro/transitions";
+ export * from "astro/virtual-modules/transitions.js";
export { default as ViewTransitions } from "astro/components/ViewTransitions.astro";
`;
}
if (id === resolvedVirtualClientModuleId) {
return `
- export * from "astro/transitions/router";
+ export * from "astro/virtual-modules/transitions-router.js";
`;
}
},
diff --git a/packages/astro/src/virtual-modules/README.md b/packages/astro/src/virtual-modules/README.md
new file mode 100644
index 000000000..137e2e16f
--- /dev/null
+++ b/packages/astro/src/virtual-modules/README.md
@@ -0,0 +1,3 @@
+# virtual-modules
+
+This directory contains the entry points for Astro virtual modules. For example, `astro:foobar` would re-export or use `astro/virtual-modules/foobar.js` which maps to the internal file `astro/dist/virtual-modules/foobar.js`.
diff --git a/packages/astro/src/virtual-modules/i18n.ts b/packages/astro/src/virtual-modules/i18n.ts
new file mode 100644
index 000000000..a55c1f6cf
--- /dev/null
+++ b/packages/astro/src/virtual-modules/i18n.ts
@@ -0,0 +1 @@
+export * from '../i18n/index.js';
diff --git a/packages/astro/src/virtual-modules/middleware.ts b/packages/astro/src/virtual-modules/middleware.ts
new file mode 100644
index 000000000..4874c88d0
--- /dev/null
+++ b/packages/astro/src/virtual-modules/middleware.ts
@@ -0,0 +1 @@
+export { defineMiddleware, sequence } from '../core/middleware/index.js';
diff --git a/packages/astro/src/virtual-modules/prefetch.ts b/packages/astro/src/virtual-modules/prefetch.ts
new file mode 100644
index 000000000..72bc23e2d
--- /dev/null
+++ b/packages/astro/src/virtual-modules/prefetch.ts
@@ -0,0 +1 @@
+export * from '../prefetch/index.js';
diff --git a/packages/astro/src/virtual-modules/transitions-router.ts b/packages/astro/src/virtual-modules/transitions-router.ts
new file mode 100644
index 000000000..666089f3f
--- /dev/null
+++ b/packages/astro/src/virtual-modules/transitions-router.ts
@@ -0,0 +1 @@
+export * from '../transitions/router.js';
diff --git a/packages/astro/src/virtual-modules/transitions.ts b/packages/astro/src/virtual-modules/transitions.ts
new file mode 100644
index 000000000..84aeb3a2c
--- /dev/null
+++ b/packages/astro/src/virtual-modules/transitions.ts
@@ -0,0 +1 @@
+export * from '../transitions/index.js';