astro 1.1.0 → 1.1.3

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/astro-jsx.d.ts CHANGED
@@ -1007,7 +1007,7 @@ declare namespace astroHTML.JSX {
1007
1007
  // - "string"
1008
1008
  // - union of string literals
1009
1009
  interface SVGAttributes extends AriaAttributes, DOMAttributes, AstroBuiltinAttributes {
1010
- // Attributes which also defined in HTMLAttributes
1010
+ // Attributes which are also defined in HTMLAttributes
1011
1011
  class?: string | undefined | null;
1012
1012
  color?: string | undefined | null;
1013
1013
  height?: number | string | undefined | null;
@@ -1018,6 +1018,7 @@ declare namespace astroHTML.JSX {
1018
1018
  method?: string | undefined | null;
1019
1019
  min?: number | string | undefined | null;
1020
1020
  name?: string | undefined | null;
1021
+ slot?: string | undefined | null;
1021
1022
  style?: string | Record<string, any> | undefined | null;
1022
1023
  target?: string | undefined | null;
1023
1024
  type?: string | undefined | null;
@@ -38,11 +38,6 @@ const { code, lang = 'plaintext', theme = 'github-dark', wrap = false } = Astro.
38
38
  function repairShikiTheme(html: string): string {
39
39
  // Replace "shiki" class naming with "astro"
40
40
  html = html.replace('<pre class="shiki"', '<pre class="astro-code"');
41
- // Replace "shiki" css variable naming with "astro".
42
- html = html.replace(
43
- /style="(background-)?color: var\(--shiki-/g,
44
- 'style="$1color: var(--astro-code-'
45
- );
46
41
  // Handle code wrapping
47
42
  // if wrap=null, do nothing.
48
43
  if (wrap === false) {
@@ -8,6 +8,10 @@ function stringify(opts) {
8
8
  return JSON.stringify(opts, Object.keys(opts).sort());
9
9
  }
10
10
 
11
+ /**
12
+ * @param {import('shiki').HighlighterOptions} opts
13
+ * @returns {Promise<import('shiki').Highlighter>}
14
+ */
11
15
  export function getHighlighter(opts) {
12
16
  const key = stringify(opts);
13
17
 
@@ -17,7 +21,22 @@ export function getHighlighter(opts) {
17
21
  }
18
22
 
19
23
  // Start the async getHighlighter call and cache the Promise
20
- const highlighter = getShikiHighlighter(opts);
24
+ const highlighter = getShikiHighlighter(opts).then((hl) => {
25
+ hl.setColorReplacements({
26
+ '#000001': 'var(--astro-code-color-text)',
27
+ '#000002': 'var(--astro-code-color-background)',
28
+ '#000004': 'var(--astro-code-token-constant)',
29
+ '#000005': 'var(--astro-code-token-string)',
30
+ '#000006': 'var(--astro-code-token-comment)',
31
+ '#000007': 'var(--astro-code-token-keyword)',
32
+ '#000008': 'var(--astro-code-token-parameter)',
33
+ '#000009': 'var(--astro-code-token-function)',
34
+ '#000010': 'var(--astro-code-token-string-expression)',
35
+ '#000011': 'var(--astro-code-token-punctuation)',
36
+ '#000012': 'var(--astro-code-token-link)',
37
+ });
38
+ return hl;
39
+ });
21
40
  _resolvedHighlighters.set(key, highlighter);
22
41
 
23
42
  return highlighter;
package/config.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  type ViteUserConfig = import('vite').UserConfig;
2
- type AstroUserConfig = import('./dist/types/@types/astro').AstroUserConfig;
2
+ type AstroUserConfig = import('./dist/@types/astro').AstroUserConfig;
3
3
 
4
4
  /**
5
5
  * See the full Astro Configuration API Documentation
@@ -51,29 +51,29 @@ async function add(names, { cwd, flags, logging, telemetry }) {
51
51
  ["--yes", "Accept all prompts."],
52
52
  ["--help", "Show this help message."]
53
53
  ],
54
- "Recommended: UI Frameworks": [
54
+ "UI Frameworks": [
55
55
  ["react", "astro add react"],
56
56
  ["preact", "astro add preact"],
57
57
  ["vue", "astro add vue"],
58
58
  ["svelte", "astro add svelte"],
59
59
  ["solid-js", "astro add solid-js"],
60
- ["lit", "astro add lit"]
60
+ ["lit", "astro add lit"],
61
+ ["alpine", "astro add alpine"]
61
62
  ],
62
- "Recommended: Hosting": [
63
+ "SSR Adapters": [
63
64
  ["netlify", "astro add netlify"],
64
65
  ["vercel", "astro add vercel"],
66
+ ["deno", "astro add deno"],
65
67
  ["cloudflare", "astro add cloudflare"],
66
- ["deno", "astro add deno"]
68
+ ["node", "astro add node"]
67
69
  ],
68
- "Recommended: Integrations": [
70
+ Others: [
69
71
  ["tailwind", "astro add tailwind"],
72
+ ["image", "astro add image"],
73
+ ["mdx", "astro add mdx"],
70
74
  ["partytown", "astro add partytown"],
71
- ["sitemap", "astro add sitemap"]
72
- ],
73
- "Example: Add an Adapter": [
74
- ["netlify", "astro add netlify"],
75
- ["vercel", "astro add vercel"],
76
- ["deno", "astro add deno"]
75
+ ["sitemap", "astro add sitemap"],
76
+ ["prefetch", "astro add prefetch"]
77
77
  ]
78
78
  },
79
79
  description: `For more integrations, check out: ${cyan("https://astro.build/integrations")}`
@@ -153,8 +153,27 @@ async function getPathsForRoute(pageData, mod, opts, builtPaths) {
153
153
  }
154
154
  return paths;
155
155
  }
156
+ function shouldAppendForwardSlash(trailingSlash, buildFormat) {
157
+ switch (trailingSlash) {
158
+ case "always":
159
+ return true;
160
+ case "never":
161
+ return false;
162
+ case "ignore": {
163
+ switch (buildFormat) {
164
+ case "directory":
165
+ return true;
166
+ case "file":
167
+ return false;
168
+ }
169
+ }
170
+ }
171
+ }
156
172
  function addPageName(pathname, opts) {
157
- opts.pageNames.push(pathname.replace(/^\//, ""));
173
+ const trailingSlash = opts.astroConfig.trailingSlash;
174
+ const buildFormat = opts.astroConfig.build.format;
175
+ const pageName = shouldAppendForwardSlash(trailingSlash, buildFormat) ? pathname.replace(/\/?$/, "/").replace(/^\//, "") : pathname.replace(/^\//, "");
176
+ opts.pageNames.push(pageName);
158
177
  }
159
178
  function getUrlForPath(pathname, base, origin, format, routeType) {
160
179
  const ending = format === "directory" ? "/" : ".html";
@@ -46,8 +46,7 @@ class AstroBuilder {
46
46
  server: {
47
47
  hmr: false,
48
48
  middlewareMode: true
49
- },
50
- appType: "custom"
49
+ }
51
50
  },
52
51
  { astroConfig: this.config, logging, mode: "build" }
53
52
  );
@@ -1,7 +1,11 @@
1
1
  import type { OutputChunk, RenderedChunk } from 'rollup';
2
2
  import type { PageBuildData, ViteID } from './types';
3
3
  export interface BuildInternals {
4
- pureCSSChunks: Set<RenderedChunk>;
4
+ /**
5
+ * The module ids of all CSS chunks, used to deduplicate CSS assets between
6
+ * SSR build and client build in vite-plugin-css.
7
+ */
8
+ cssChunkModuleIds: Set<string>;
5
9
  hoistedScriptIdToHoistedMap: Map<string, Set<string>>;
6
10
  hoistedScriptIdToPagesMap: Map<string, Set<string>>;
7
11
  entrySpecifierToBundleMap: Map<string, string>;
@@ -1,11 +1,10 @@
1
1
  import { prependForwardSlash } from "../path.js";
2
2
  import { viteID } from "../util.js";
3
3
  function createBuildInternals() {
4
- const pureCSSChunks = /* @__PURE__ */ new Set();
5
4
  const hoistedScriptIdToHoistedMap = /* @__PURE__ */ new Map();
6
5
  const hoistedScriptIdToPagesMap = /* @__PURE__ */ new Map();
7
6
  return {
8
- pureCSSChunks,
7
+ cssChunkModuleIds: /* @__PURE__ */ new Set(),
9
8
  hoistedScriptIdToHoistedMap,
10
9
  hoistedScriptIdToPagesMap,
11
10
  entrySpecifierToBundleMap: /* @__PURE__ */ new Map(),
@@ -64,11 +64,8 @@ Example:
64
64
  await clientBuild(opts, internals, clientInput);
65
65
  timer.generate = performance.now();
66
66
  if (astroConfig.output === "static") {
67
- try {
68
- await generatePages(opts, internals);
69
- } finally {
70
- await cleanSsrOutput(opts);
71
- }
67
+ await generatePages(opts, internals);
68
+ await cleanSsrOutput(opts);
72
69
  } else {
73
70
  await injectManifest(opts, internals);
74
71
  info(opts.logging, null, `
@@ -83,8 +83,21 @@ function rollupPluginAstroBuildCSS(options) {
83
83
  if ("viteMetadata" in chunk) {
84
84
  const meta = chunk["viteMetadata"];
85
85
  if (meta.importedCss.size) {
86
+ if (options.target === "server") {
87
+ for (const id of Object.keys(c.modules)) {
88
+ internals.cssChunkModuleIds.add(id);
89
+ }
90
+ }
91
+ if (options.target === "client") {
92
+ if (Object.keys(c.modules).every((id) => internals.cssChunkModuleIds.has(id))) {
93
+ for (const importedCssImport of meta.importedCss) {
94
+ delete bundle[importedCssImport];
95
+ }
96
+ return;
97
+ }
98
+ }
86
99
  if (options.target === "client") {
87
- for (const [id] of Object.entries(c.modules)) {
100
+ for (const id of Object.keys(c.modules)) {
88
101
  for (const pageData of getParentClientOnlys(id, this)) {
89
102
  for (const importedCssImport of meta.importedCss) {
90
103
  pageData.css.set(importedCssImport, { depth: -1 });
@@ -92,7 +105,7 @@ function rollupPluginAstroBuildCSS(options) {
92
105
  }
93
106
  }
94
107
  }
95
- for (const [id] of Object.entries(c.modules)) {
108
+ for (const id of Object.keys(c.modules)) {
96
109
  for (const [pageInfo, depth] of walkParentInfos(id, this)) {
97
110
  if (moduleIsTopLevelPage(pageInfo)) {
98
111
  const pageViteID = pageInfo.id;
@@ -94,11 +94,11 @@ export declare const AstroConfigSchema: z.ZodObject<{
94
94
  wrap: z.ZodDefault<z.ZodUnion<[z.ZodBoolean, z.ZodNull]>>;
95
95
  }, "strip", z.ZodTypeAny, {
96
96
  langs: ILanguageRegistration[];
97
- theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
97
+ theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
98
98
  wrap: boolean | null;
99
99
  }, {
100
100
  langs?: ILanguageRegistration[] | undefined;
101
- theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
101
+ theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
102
102
  wrap?: boolean | null | undefined;
103
103
  }>>;
104
104
  remarkPlugins: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodString, z.ZodAny], null>, z.ZodType<RemarkPlugin<any[]>, z.ZodTypeDef, RemarkPlugin<any[]>>, z.ZodTuple<[z.ZodType<RemarkPlugin<any[]>, z.ZodTypeDef, RemarkPlugin<any[]>>, z.ZodAny], null>]>, "many">>;
@@ -110,7 +110,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
110
110
  syntaxHighlight: false | "shiki" | "prism";
111
111
  shikiConfig: {
112
112
  langs: ILanguageRegistration[];
113
- theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
113
+ theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
114
114
  wrap: boolean | null;
115
115
  };
116
116
  remarkPlugins: (string | [string, any] | RemarkPlugin<any[]> | [RemarkPlugin<any[]>, any])[];
@@ -122,7 +122,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
122
122
  syntaxHighlight?: false | "shiki" | "prism" | undefined;
123
123
  shikiConfig?: {
124
124
  langs?: ILanguageRegistration[] | undefined;
125
- theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
125
+ theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
126
126
  wrap?: boolean | null | undefined;
127
127
  } | undefined;
128
128
  remarkPlugins?: (string | [string, any] | RemarkPlugin<any[]> | [RemarkPlugin<any[]>, any])[] | undefined;
@@ -150,7 +150,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
150
150
  syntaxHighlight: false | "shiki" | "prism";
151
151
  shikiConfig: {
152
152
  langs: ILanguageRegistration[];
153
- theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
153
+ theme: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {});
154
154
  wrap: boolean | null;
155
155
  };
156
156
  remarkPlugins: (string | [string, any] | RemarkPlugin<any[]> | [RemarkPlugin<any[]>, any])[];
@@ -193,7 +193,7 @@ export declare const AstroConfigSchema: z.ZodObject<{
193
193
  syntaxHighlight?: false | "shiki" | "prism" | undefined;
194
194
  shikiConfig?: {
195
195
  langs?: ILanguageRegistration[] | undefined;
196
- theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
196
+ theme?: "css-variables" | "dark-plus" | "dracula-soft" | "dracula" | "github-dark-dimmed" | "github-dark" | "github-light" | "hc_light" | "light-plus" | "material-darker" | "material-default" | "material-lighter" | "material-ocean" | "material-palenight" | "min-dark" | "min-light" | "monokai" | "nord" | "one-dark-pro" | "poimandres" | "rose-pine-dawn" | "rose-pine-moon" | "rose-pine" | "slack-dark" | "slack-ochin" | "solarized-dark" | "solarized-light" | "vitesse-dark" | "vitesse-light" | import("shiki").IShikiTheme | (string & {}) | undefined;
197
197
  wrap?: boolean | null | undefined;
198
198
  } | undefined;
199
199
  remarkPlugins?: (string | [string, any] | RemarkPlugin<any[]> | [RemarkPlugin<any[]>, any])[] | undefined;
@@ -38,6 +38,7 @@ async function createVite(commandConfig, { astroConfig, logging, mode }) {
38
38
  cacheDir: fileURLToPath(new URL("./node_modules/.vite/", astroConfig.root)),
39
39
  clearScreen: false,
40
40
  logLevel: "warn",
41
+ appType: "custom",
41
42
  optimizeDeps: {
42
43
  entries: ["src/**/*"],
43
44
  exclude: ["node-fetch"]
@@ -46,7 +46,7 @@ async function dev(config, options) {
46
46
  https: !!((_a = viteConfig.server) == null ? void 0 : _a.https)
47
47
  })
48
48
  );
49
- const currentVersion = "1.1.0";
49
+ const currentVersion = "1.1.3";
50
50
  if (currentVersion.includes("-")) {
51
51
  warn(options.logging, null, msg.prerelease({ currentVersion }));
52
52
  }
@@ -46,7 +46,7 @@ function devStart({
46
46
  https,
47
47
  site
48
48
  }) {
49
- const version = "1.1.0";
49
+ const version = "1.1.3";
50
50
  const rootPath = site ? site.pathname : "/";
51
51
  const localPrefix = `${dim("\u2503")} Local `;
52
52
  const networkPrefix = `${dim("\u2503")} Network `;
@@ -225,7 +225,7 @@ function printHelp({
225
225
  message.push(
226
226
  linebreak(),
227
227
  ` ${bgGreen(black(` ${commandName} `))} ${green(
228
- `v${"1.1.0"}`
228
+ `v${"1.1.3"}`
229
229
  )} ${headline}`
230
230
  );
231
231
  }
@@ -1,3 +1,3 @@
1
1
  import vite from 'vite';
2
2
  /** recursively crawl the module graph to get all style files imported by parent id */
3
- export declare function crawlGraph(viteServer: vite.ViteDevServer, _id: string, isFile: boolean, scanned?: Set<string>): AsyncGenerator<vite.ModuleNode, void, unknown>;
3
+ export declare function crawlGraph(viteServer: vite.ViteDevServer, _id: string, isRootFile: boolean, scanned?: Set<string>): AsyncGenerator<vite.ModuleNode, void, unknown>;
@@ -3,10 +3,10 @@ import { unwrapId } from "../../util.js";
3
3
  import { STYLE_EXTENSIONS } from "../util.js";
4
4
  const fileExtensionsToSSR = /* @__PURE__ */ new Set([".astro", ".md"]);
5
5
  const STRIP_QUERY_PARAMS_REGEX = /\?.*$/;
6
- async function* crawlGraph(viteServer, _id, isFile, scanned = /* @__PURE__ */ new Set()) {
6
+ async function* crawlGraph(viteServer, _id, isRootFile, scanned = /* @__PURE__ */ new Set()) {
7
7
  const id = unwrapId(_id);
8
8
  const importedModules = /* @__PURE__ */ new Set();
9
- const moduleEntriesForId = isFile ? viteServer.moduleGraph.getModulesByFile(id) ?? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([viteServer.moduleGraph.getModuleById(id)]);
9
+ const moduleEntriesForId = isRootFile ? viteServer.moduleGraph.getModulesByFile(id) ?? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([viteServer.moduleGraph.getModuleById(id)]);
10
10
  for (const entry of moduleEntriesForId) {
11
11
  if (!entry) {
12
12
  continue;
@@ -23,7 +23,10 @@ async function* crawlGraph(viteServer, _id, isFile, scanned = /* @__PURE__ */ ne
23
23
  if (fileExtensionsToSSR.has(npath.extname(importedModulePathname))) {
24
24
  const mod = viteServer.moduleGraph.getModuleById(importedModule.id);
25
25
  if (!(mod == null ? void 0 : mod.ssrModule)) {
26
- await viteServer.ssrLoadModule(importedModule.id);
26
+ try {
27
+ await viteServer.ssrLoadModule(importedModule.id);
28
+ } catch {
29
+ }
27
30
  }
28
31
  }
29
32
  }
package/dist/core/util.js CHANGED
@@ -5,7 +5,7 @@ import resolve from "resolve";
5
5
  import slash from "slash";
6
6
  import { fileURLToPath, pathToFileURL } from "url";
7
7
  import { prependForwardSlash, removeTrailingForwardSlash } from "./path.js";
8
- const ASTRO_VERSION = "1.1.0";
8
+ const ASTRO_VERSION = "1.1.3";
9
9
  function isObject(value) {
10
10
  return typeof value === "object" && value != null;
11
11
  }
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "1.1.0";
1
+ const ASTRO_VERSION = "1.1.3";
2
2
  function createDeprecatedFetchContentFn() {
3
3
  return () => {
4
4
  throw new Error("Deprecated: Astro.fetchContent() has been replaced with Astro.glob().");
@@ -16,18 +16,6 @@ import { createRequest } from "../core/request.js";
16
16
  import { createRouteManifest, matchAllRoutes } from "../core/routing/index.js";
17
17
  import { createSafeError, resolvePages } from "../core/util.js";
18
18
  import notFoundTemplate, { subpathNotUsedTemplate } from "../template/4xx.js";
19
- const BAD_VITE_MIDDLEWARE = [
20
- "viteIndexHtmlMiddleware",
21
- "vite404Middleware",
22
- "viteSpaFallbackMiddleware"
23
- ];
24
- function removeViteHttpMiddleware(server) {
25
- for (let i = server.stack.length - 1; i > 0; i--) {
26
- if (BAD_VITE_MIDDLEWARE.includes(server.stack[i].handle.name)) {
27
- server.stack.splice(i, 1);
28
- }
29
- }
30
- }
31
19
  function truncateString(str, n) {
32
20
  if (str.length > n) {
33
21
  return str.substring(0, n) + "&#8230;";
@@ -288,7 +276,6 @@ function createPlugin({ config, logging }) {
288
276
  viteServer.watcher.on("unlink", rebuildManifest.bind(null, true));
289
277
  viteServer.watcher.on("change", rebuildManifest.bind(null, false));
290
278
  return () => {
291
- removeViteHttpMiddleware(viteServer.middlewares);
292
279
  if (config.base !== "/") {
293
280
  viteServer.middlewares.stack.unshift({
294
281
  route: "",
@@ -0,0 +1,37 @@
1
+ // File vendored from Vite itself, as a workaround to https://github.com/vitejs/vite/pull/9827 until Vite 4 comes out
2
+
3
+ // This file is an augmentation to the built-in ImportMeta interface
4
+ // Thus cannot contain any top-level imports
5
+ // <https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation>
6
+
7
+ /* eslint-disable @typescript-eslint/consistent-type-imports */
8
+
9
+ // Duplicate of import('../src/node/importGlob').GlobOptions in order to
10
+ // avoid breaking the production client type. Because this file is referenced
11
+ // in vite/client.d.ts and in production src/node/importGlob.ts doesn't exist.
12
+ interface GlobOptions {
13
+ as?: string;
14
+ }
15
+
16
+ interface ImportMeta {
17
+ url: string;
18
+
19
+ readonly hot?: import('vite/types/hot').ViteHotContext;
20
+
21
+ readonly env: ImportMetaEnv;
22
+
23
+ glob: import('vite/types/importGlob').ImportGlobFunction;
24
+ /**
25
+ * @deprecated Use `import.meta.glob('*', { eager: true })` instead
26
+ */
27
+ globEager: import('vite/types/importGlob').ImportGlobEagerFunction;
28
+ }
29
+
30
+ interface ImportMetaEnv {
31
+ [key: string]: any;
32
+ BASE_URL: string;
33
+ MODE: string;
34
+ DEV: boolean;
35
+ PROD: boolean;
36
+ SSR: boolean;
37
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "1.1.0",
3
+ "version": "1.1.3",
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",
@@ -31,6 +31,7 @@
31
31
  "./env": "./env.d.ts",
32
32
  "./client": "./client.d.ts",
33
33
  "./client-base": "./client-base.d.ts",
34
+ "./import-meta": "./import-meta.d.ts",
34
35
  "./astro-jsx": "./astro-jsx.d.ts",
35
36
  "./tsconfigs/*.json": "./tsconfigs/*",
36
37
  "./tsconfigs/*": "./tsconfigs/*.json",
@@ -75,6 +76,7 @@
75
76
  "env.d.ts",
76
77
  "client.d.ts",
77
78
  "client-base.d.ts",
79
+ "import-meta.d.ts",
78
80
  "astro-jsx.d.ts",
79
81
  "README.md",
80
82
  "vendor"
@@ -82,7 +84,7 @@
82
84
  "dependencies": {
83
85
  "@astrojs/compiler": "^0.23.4",
84
86
  "@astrojs/language-server": "^0.23.0",
85
- "@astrojs/markdown-remark": "^1.1.0",
87
+ "@astrojs/markdown-remark": "^1.1.1",
86
88
  "@astrojs/telemetry": "^1.0.0",
87
89
  "@astrojs/webapi": "^1.0.0",
88
90
  "@babel/core": "^7.18.2",
@@ -123,7 +125,7 @@
123
125
  "resolve": "^1.22.0",
124
126
  "rollup": "~2.77.0",
125
127
  "semver": "^7.3.7",
126
- "shiki": "^0.10.1",
128
+ "shiki": "^0.11.1",
127
129
  "sirv": "^2.0.2",
128
130
  "slash": "^4.0.0",
129
131
  "string-width": "^5.1.2",