astro 1.0.0-beta.40 → 1.0.0-beta.41

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/dist/cli/index.js CHANGED
@@ -40,7 +40,7 @@ function printAstroHelp() {
40
40
  });
41
41
  }
42
42
  async function printVersion() {
43
- const version = "1.0.0-beta.40";
43
+ const version = "1.0.0-beta.41";
44
44
  console.log();
45
45
  console.log(` ${colors.bgGreen(colors.black(` astro `))} ${colors.green(`v${version}`)}`);
46
46
  }
@@ -83,7 +83,7 @@ async function cli(args) {
83
83
  } else if (flags.silent) {
84
84
  logging.level = "silent";
85
85
  }
86
- const telemetry = new AstroTelemetry({ version: "1.0.0-beta.40" });
86
+ const telemetry = new AstroTelemetry({ version: "1.0.0-beta.41" });
87
87
  if (cmd === "telemetry") {
88
88
  try {
89
89
  const subcommand = (_a = flags._[3]) == null ? void 0 : _a.toString();
@@ -97,7 +97,7 @@ async function cli(args) {
97
97
  try {
98
98
  const packages = flags._.slice(3);
99
99
  telemetry.record(event.eventCliSession({
100
- astroVersion: "1.0.0-beta.40",
100
+ astroVersion: "1.0.0-beta.41",
101
101
  cliCommand: "add"
102
102
  }));
103
103
  return await add(packages, { cwd: root, flags, logging, telemetry });
@@ -108,7 +108,7 @@ async function cli(args) {
108
108
  case "dev": {
109
109
  try {
110
110
  const { astroConfig, userConfig } = await openConfig({ cwd: root, flags, cmd });
111
- telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.40", cliCommand: "dev" }, userConfig, flags));
111
+ telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.41", cliCommand: "dev" }, userConfig, flags));
112
112
  await devServer(astroConfig, { logging, telemetry });
113
113
  return await new Promise(() => {
114
114
  });
@@ -119,7 +119,7 @@ async function cli(args) {
119
119
  case "build": {
120
120
  try {
121
121
  const { astroConfig, userConfig } = await openConfig({ cwd: root, flags, cmd });
122
- telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.40", cliCommand: "build" }, userConfig, flags));
122
+ telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.41", cliCommand: "build" }, userConfig, flags));
123
123
  return await build(astroConfig, { logging, telemetry });
124
124
  } catch (err) {
125
125
  return throwAndExit(err);
@@ -127,14 +127,14 @@ async function cli(args) {
127
127
  }
128
128
  case "check": {
129
129
  const { astroConfig, userConfig } = await openConfig({ cwd: root, flags, cmd });
130
- telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.40", cliCommand: "check" }, userConfig, flags));
130
+ telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.41", cliCommand: "check" }, userConfig, flags));
131
131
  const ret = await check(astroConfig);
132
132
  return process.exit(ret);
133
133
  }
134
134
  case "preview": {
135
135
  try {
136
136
  const { astroConfig, userConfig } = await openConfig({ cwd: root, flags, cmd });
137
- telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.40", cliCommand: "preview" }, userConfig, flags));
137
+ telemetry.record(event.eventCliSession({ astroVersion: "1.0.0-beta.41", cliCommand: "preview" }, userConfig, flags));
138
138
  const server = await preview(astroConfig, { logging, telemetry });
139
139
  return await server.closed();
140
140
  } catch (err) {
@@ -144,7 +144,7 @@ async function cli(args) {
144
144
  case "docs": {
145
145
  try {
146
146
  await telemetry.record(event.eventCliSession({
147
- astroVersion: "1.0.0-beta.40",
147
+ astroVersion: "1.0.0-beta.41",
148
148
  cliCommand: "docs"
149
149
  }));
150
150
  return await openInBrowser("https://docs.astro.build/");
@@ -29,6 +29,37 @@ import postcssrc from "postcss-load-config";
29
29
  import { arraify, isObject } from "./util.js";
30
30
  import { appendForwardSlash, prependForwardSlash, trimSlashes } from "./path.js";
31
31
  load.use([loadTypeScript]);
32
+ const ASTRO_CONFIG_DEFAULTS = {
33
+ root: ".",
34
+ srcDir: "./src",
35
+ publicDir: "./public",
36
+ outDir: "./dist",
37
+ base: "/",
38
+ trailingSlash: "ignore",
39
+ build: { format: "directory" },
40
+ server: {
41
+ host: false,
42
+ port: 3e3
43
+ },
44
+ style: { postcss: { options: {}, plugins: [] } },
45
+ integrations: [],
46
+ markdown: {
47
+ drafts: false,
48
+ syntaxHighlight: "shiki",
49
+ shikiConfig: {
50
+ langs: [],
51
+ theme: "github-dark",
52
+ wrap: false
53
+ },
54
+ remarkPlugins: [],
55
+ rehypePlugins: []
56
+ },
57
+ vite: {},
58
+ experimental: {
59
+ ssr: false,
60
+ integrations: false
61
+ }
62
+ };
32
63
  async function resolvePostcssConfig(inlineOptions, root) {
33
64
  if (isObject(inlineOptions)) {
34
65
  const options = __spreadValues({}, inlineOptions);
@@ -65,55 +96,55 @@ const LEGACY_ASTRO_CONFIG_KEYS = /* @__PURE__ */ new Set([
65
96
  ]);
66
97
  const AstroConfigSchema = z.object({
67
98
  adapter: z.object({ name: z.string(), hooks: z.object({}).passthrough().default({}) }).optional(),
68
- root: z.string().optional().default(".").transform((val) => new URL(val)),
69
- srcDir: z.string().optional().default("./src").transform((val) => new URL(val)),
70
- publicDir: z.string().optional().default("./public").transform((val) => new URL(val)),
71
- outDir: z.string().optional().default("./dist").transform((val) => new URL(val)),
99
+ root: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.root).transform((val) => new URL(val)),
100
+ srcDir: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.srcDir).transform((val) => new URL(val)),
101
+ publicDir: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.publicDir).transform((val) => new URL(val)),
102
+ outDir: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.outDir).transform((val) => new URL(val)),
72
103
  site: z.string().url().optional().transform((val) => val ? appendForwardSlash(val) : val).refine((val) => !val || new URL(val).pathname.length <= 1, {
73
104
  message: '"site" must be a valid URL origin (ex: "https://example.com") but cannot contain a URL path (ex: "https://example.com/blog"). Use "base" to configure your deployed URL path'
74
105
  }),
75
- base: z.string().optional().default("/").transform((val) => prependForwardSlash(appendForwardSlash(trimSlashes(val)))),
76
- trailingSlash: z.union([z.literal("always"), z.literal("never"), z.literal("ignore")]).optional().default("ignore"),
106
+ base: z.string().optional().default(ASTRO_CONFIG_DEFAULTS.base).transform((val) => prependForwardSlash(appendForwardSlash(trimSlashes(val)))),
107
+ trailingSlash: z.union([z.literal("always"), z.literal("never"), z.literal("ignore")]).optional().default(ASTRO_CONFIG_DEFAULTS.trailingSlash),
77
108
  build: z.object({
78
- format: z.union([z.literal("file"), z.literal("directory")]).optional().default("directory")
109
+ format: z.union([z.literal("file"), z.literal("directory")]).optional().default(ASTRO_CONFIG_DEFAULTS.build.format)
79
110
  }).optional().default({}),
80
111
  server: z.preprocess((val) => typeof val === "function" ? val({ command: "error" }) : val, z.object({
81
- host: z.union([z.string(), z.boolean()]).optional().default(false),
82
- port: z.number().optional().default(3e3)
112
+ host: z.union([z.string(), z.boolean()]).optional().default(ASTRO_CONFIG_DEFAULTS.server.host),
113
+ port: z.number().optional().default(ASTRO_CONFIG_DEFAULTS.server.port)
83
114
  }).optional().default({})),
84
- integrations: z.preprocess((val) => Array.isArray(val) ? val.flat(Infinity).filter(Boolean) : val, z.array(z.object({ name: z.string(), hooks: z.object({}).passthrough().default({}) })).default([])),
115
+ integrations: z.preprocess((val) => Array.isArray(val) ? val.flat(Infinity).filter(Boolean) : val, z.array(z.object({ name: z.string(), hooks: z.object({}).passthrough().default({}) })).default(ASTRO_CONFIG_DEFAULTS.integrations)),
85
116
  style: z.object({
86
117
  postcss: z.object({
87
118
  options: z.any(),
88
119
  plugins: z.array(z.any())
89
- }).optional().default({ options: {}, plugins: [] })
120
+ }).optional().default(ASTRO_CONFIG_DEFAULTS.style.postcss)
90
121
  }).optional().default({}),
91
122
  markdown: z.object({
92
123
  mode: z.enum(["md", "mdx"]).default("mdx"),
93
124
  drafts: z.boolean().default(false),
94
- syntaxHighlight: z.union([z.literal("shiki"), z.literal("prism"), z.literal(false)]).default("shiki"),
125
+ syntaxHighlight: z.union([z.literal("shiki"), z.literal("prism"), z.literal(false)]).default(ASTRO_CONFIG_DEFAULTS.markdown.syntaxHighlight),
95
126
  shikiConfig: z.object({
96
127
  langs: z.custom().array().default([]),
97
- theme: z.enum(BUNDLED_THEMES).or(z.custom()).default("github-dark"),
98
- wrap: z.boolean().or(z.null()).default(false)
128
+ theme: z.enum(BUNDLED_THEMES).or(z.custom()).default(ASTRO_CONFIG_DEFAULTS.markdown.shikiConfig.theme),
129
+ wrap: z.boolean().or(z.null()).default(ASTRO_CONFIG_DEFAULTS.markdown.shikiConfig.wrap)
99
130
  }).default({}),
100
131
  remarkPlugins: z.union([
101
132
  z.string(),
102
133
  z.tuple([z.string(), z.any()]),
103
134
  z.custom((data) => typeof data === "function"),
104
135
  z.tuple([z.custom((data) => typeof data === "function"), z.any()])
105
- ]).array().default([]),
136
+ ]).array().default(ASTRO_CONFIG_DEFAULTS.markdown.remarkPlugins),
106
137
  rehypePlugins: z.union([
107
138
  z.string(),
108
139
  z.tuple([z.string(), z.any()]),
109
140
  z.custom((data) => typeof data === "function"),
110
141
  z.tuple([z.custom((data) => typeof data === "function"), z.any()])
111
- ]).array().default([])
142
+ ]).array().default(ASTRO_CONFIG_DEFAULTS.markdown.rehypePlugins)
112
143
  }).default({}),
113
- vite: z.custom((data) => data instanceof Object && !Array.isArray(data)).default({}),
144
+ vite: z.custom((data) => data instanceof Object && !Array.isArray(data)).default(ASTRO_CONFIG_DEFAULTS.vite),
114
145
  experimental: z.object({
115
- ssr: z.boolean().optional().default(false),
116
- integrations: z.boolean().optional().default(false)
146
+ ssr: z.boolean().optional().default(ASTRO_CONFIG_DEFAULTS.experimental.ssr),
147
+ integrations: z.boolean().optional().default(ASTRO_CONFIG_DEFAULTS.experimental.integrations)
117
148
  }).optional().default({})
118
149
  });
119
150
  async function validateConfig(userConfig, root, cmd) {
@@ -158,19 +189,19 @@ Please update your configuration to the new format!
158
189
  See https://astro.build/config for more information.`);
159
190
  }
160
191
  const AstroConfigRelativeSchema = AstroConfigSchema.extend({
161
- root: z.string().default(".").transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
162
- srcDir: z.string().default("./src").transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
163
- publicDir: z.string().default("./public").transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
164
- outDir: z.string().default("./dist").transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
192
+ root: z.string().default(ASTRO_CONFIG_DEFAULTS.root).transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
193
+ srcDir: z.string().default(ASTRO_CONFIG_DEFAULTS.srcDir).transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
194
+ publicDir: z.string().default(ASTRO_CONFIG_DEFAULTS.publicDir).transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
195
+ outDir: z.string().default(ASTRO_CONFIG_DEFAULTS.outDir).transform((val) => new URL(appendForwardSlash(val), fileProtocolRoot)),
165
196
  server: z.preprocess((val) => typeof val === "function" ? val({ command: cmd === "dev" ? "dev" : "preview" }) : val, z.object({
166
- host: z.union([z.string(), z.boolean()]).optional().default(false),
167
- port: z.number().optional().default(3e3)
197
+ host: z.union([z.string(), z.boolean()]).optional().default(ASTRO_CONFIG_DEFAULTS.server.host),
198
+ port: z.number().optional().default(ASTRO_CONFIG_DEFAULTS.server.port)
168
199
  }).optional().default({})),
169
200
  style: z.object({
170
201
  postcss: z.preprocess((val) => resolvePostcssConfig(val, fileProtocolRoot), z.object({
171
202
  options: z.any(),
172
203
  plugins: z.array(z.any())
173
- }).optional().default({ options: {}, plugins: [] }))
204
+ }).optional().default(ASTRO_CONFIG_DEFAULTS.style.postcss))
174
205
  }).optional().default({})
175
206
  });
176
207
  const result = __spreadProps(__spreadValues({}, await AstroConfigRelativeSchema.parseAsync(userConfig)), {
@@ -1,3 +1,5 @@
1
+ import glob from "fast-glob";
2
+ import path from "path";
1
3
  import { performance } from "perf_hooks";
2
4
  import * as vite from "vite";
3
5
  import {
@@ -18,9 +20,14 @@ async function dev(config, options) {
18
20
  await options.telemetry.record([]);
19
21
  config = await runHookConfigSetup({ config, command: "dev" });
20
22
  const { host, port } = config.server;
23
+ const clientRuntimeScripts = await glob(new URL("../../runtime/client/*.js", import.meta.url).pathname);
24
+ const clientRuntimeFilePaths = clientRuntimeScripts.map((script) => `astro/client/${path.basename(script)}`).filter((filePath) => filePath !== "astro/client/hmr.js");
21
25
  const viteConfig = await createVite({
22
26
  mode: "development",
23
- server: { host }
27
+ server: { host },
28
+ optimizeDeps: {
29
+ include: clientRuntimeFilePaths
30
+ }
24
31
  }, { astroConfig: config, logging: options.logging, mode: "dev" });
25
32
  await runHookConfigDone({ config });
26
33
  warnIfUsingExperimentalSSR(options.logging, config);
@@ -36,7 +43,7 @@ async function dev(config, options) {
36
43
  site,
37
44
  https: !!((_a = viteConfig.server) == null ? void 0 : _a.https)
38
45
  }));
39
- const currentVersion = "1.0.0-beta.40";
46
+ const currentVersion = "1.0.0-beta.41";
40
47
  if (currentVersion.includes("-")) {
41
48
  warn(options.logging, null, msg.prerelease({ currentVersion }));
42
49
  }
@@ -47,7 +47,7 @@ function devStart({
47
47
  https,
48
48
  site
49
49
  }) {
50
- const version = "1.0.0-beta.40";
50
+ const version = "1.0.0-beta.41";
51
51
  const rootPath = site ? site.pathname : "/";
52
52
  const localPrefix = `${dim("\u2503")} Local `;
53
53
  const networkPrefix = `${dim("\u2503")} Network `;
@@ -206,7 +206,7 @@ function printHelp({
206
206
  };
207
207
  let message = [];
208
208
  if (headline) {
209
- message.push(linebreak(), ` ${bgGreen(black(` ${commandName} `))} ${green(`v${"1.0.0-beta.40"}`)} ${headline}`);
209
+ message.push(linebreak(), ` ${bgGreen(black(` ${commandName} `))} ${green(`v${"1.0.0-beta.41"}`)} ${headline}`);
210
210
  }
211
211
  if (usage) {
212
212
  message.push(linebreak(), ` ${green(commandName)} ${bold(usage)}`);
@@ -172,7 +172,12 @@ import "${PAGE_SSR_SCRIPT_ID}";`;
172
172
  }
173
173
  return {
174
174
  code: `${code}${SUFFIX}`,
175
- map
175
+ map,
176
+ meta: {
177
+ vite: {
178
+ lang: "ts"
179
+ }
180
+ }
176
181
  };
177
182
  } catch (err) {
178
183
  const scannedFrontmatter = FRONTMATTER_PARSE_REGEXP.exec(source);
@@ -179,7 +179,12 @@ ${tsResult}`;
179
179
  });
180
180
  return {
181
181
  code: escapeViteEnvReferences(code),
182
- map: null
182
+ map: null,
183
+ meta: {
184
+ vite: {
185
+ lang: "ts"
186
+ }
187
+ }
183
188
  };
184
189
  }
185
190
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "1.0.0-beta.40",
3
+ "version": "1.0.0-beta.41",
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",
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "@astrojs/compiler": "^0.15.2",
70
70
  "@astrojs/language-server": "^0.13.4",
71
- "@astrojs/markdown-remark": "^0.10.2",
71
+ "@astrojs/markdown-remark": "^0.11.0",
72
72
  "@astrojs/prism": "0.4.1",
73
73
  "@astrojs/telemetry": "^0.1.2",
74
74
  "@astrojs/webapi": "^0.12.0",
@@ -150,7 +150,7 @@
150
150
  "chai": "^4.3.6",
151
151
  "cheerio": "^1.0.0-rc.11",
152
152
  "mocha": "^9.2.2",
153
- "sass": "^1.52.1",
153
+ "sass": "^1.52.2",
154
154
  "srcset-parse": "^1.1.0"
155
155
  },
156
156
  "engines": {