astro 1.1.1 → 1.1.2

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
@@ -70,7 +70,7 @@ async function add(names, { cwd, flags, logging, telemetry }) {
70
70
  ["partytown", "astro add partytown"],
71
71
  ["sitemap", "astro add sitemap"]
72
72
  ],
73
- "Example: Add an Adapter": [
73
+ "Example: Add an SSR Adapter": [
74
74
  ["netlify", "astro add netlify"],
75
75
  ["vercel", "astro add vercel"],
76
76
  ["deno", "astro add deno"]
@@ -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
  );
@@ -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, `
@@ -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.1";
49
+ const currentVersion = "1.1.2";
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.1";
49
+ const version = "1.1.2";
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.1"}`
228
+ `v${"1.1.2"}`
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.1";
8
+ const ASTRO_VERSION = "1.1.2";
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.1";
1
+ const ASTRO_VERSION = "1.1.2";
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: "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
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",
@@ -84,7 +84,7 @@
84
84
  "dependencies": {
85
85
  "@astrojs/compiler": "^0.23.4",
86
86
  "@astrojs/language-server": "^0.23.0",
87
- "@astrojs/markdown-remark": "^1.1.0",
87
+ "@astrojs/markdown-remark": "^1.1.1",
88
88
  "@astrojs/telemetry": "^1.0.0",
89
89
  "@astrojs/webapi": "^1.0.0",
90
90
  "@babel/core": "^7.18.2",
@@ -125,7 +125,7 @@
125
125
  "resolve": "^1.22.0",
126
126
  "rollup": "~2.77.0",
127
127
  "semver": "^7.3.7",
128
- "shiki": "^0.10.1",
128
+ "shiki": "^0.11.1",
129
129
  "sirv": "^2.0.2",
130
130
  "slash": "^4.0.0",
131
131
  "string-width": "^5.1.2",