astro 1.1.2 → 1.1.5

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.
@@ -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 SSR 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")}`
@@ -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
- import { prependForwardSlash } from "../path.js";
1
+ import { prependForwardSlash, removeFileExtension } 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(),
@@ -46,8 +45,12 @@ function* getPageDatasByChunk(internals, chunk) {
46
45
  function* getPageDatasByClientOnlyID(internals, viteid) {
47
46
  const pagesByClientOnly = internals.pagesByClientOnly;
48
47
  if (pagesByClientOnly.size) {
49
- const pathname = `/@fs${prependForwardSlash(viteid)}`;
50
- const pageBuildDatas = pagesByClientOnly.get(pathname);
48
+ let pathname = `/@fs${prependForwardSlash(viteid)}`;
49
+ let pageBuildDatas = pagesByClientOnly.get(viteid);
50
+ if (!pageBuildDatas) {
51
+ pathname = `/@fs${prependForwardSlash(removeFileExtension(viteid))}`;
52
+ pageBuildDatas = pagesByClientOnly.get(pathname);
53
+ }
51
54
  if (pageBuildDatas) {
52
55
  for (const pageData of pageBuildDatas) {
53
56
  yield pageData;
@@ -23,9 +23,9 @@ async function staticBuild(opts) {
23
23
  if (isModeServerWithNoAdapter(opts.astroConfig)) {
24
24
  throw new Error(`Cannot use \`output: 'server'\` without an adapter.
25
25
  Install and configure the appropriate server adapter for your final deployment.
26
- Example:
26
+ Learn more: https://docs.astro.build/en/guides/server-side-rendering/
27
27
 
28
- // astro.config.js
28
+ // Example: astro.config.js
29
29
  import netlify from '@astrojs/netlify';
30
30
  export default {
31
31
  output: 'server',
@@ -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;
@@ -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.2";
49
+ const currentVersion = "1.1.5";
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.2";
49
+ const version = "1.1.5";
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.2"}`
228
+ `v${"1.1.5"}`
229
229
  )} ${headline}`
230
230
  );
231
231
  }
@@ -8,3 +8,4 @@ export declare function startsWithDotDotSlash(path: string): boolean;
8
8
  export declare function startsWithDotSlash(path: string): boolean;
9
9
  export declare function isRelativePath(path: string): boolean;
10
10
  export declare function joinPaths(...paths: (string | undefined)[]): string;
11
+ export declare function removeFileExtension(path: string): string;
package/dist/core/path.js CHANGED
@@ -36,11 +36,16 @@ function isString(path) {
36
36
  function joinPaths(...paths) {
37
37
  return paths.filter(isString).map(trimSlashes).join("/");
38
38
  }
39
+ function removeFileExtension(path) {
40
+ let idx = path.lastIndexOf(".");
41
+ return idx === -1 ? path : path.slice(0, idx);
42
+ }
39
43
  export {
40
44
  appendForwardSlash,
41
45
  isRelativePath,
42
46
  joinPaths,
43
47
  prependForwardSlash,
48
+ removeFileExtension,
44
49
  removeLeadingForwardSlash,
45
50
  removeTrailingForwardSlash,
46
51
  startsWithDotDotSlash,
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.2";
8
+ const ASTRO_VERSION = "1.1.5";
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.2";
1
+ const ASTRO_VERSION = "1.1.5";
2
2
  function createDeprecatedFetchContentFn() {
3
3
  return () => {
4
4
  throw new Error("Deprecated: Astro.fetchContent() has been replaced with Astro.glob().");
@@ -112,7 +112,7 @@ function jsx({ config, logging }) {
112
112
  enforce: "pre",
113
113
  async configResolved(resolvedConfig) {
114
114
  viteConfig = resolvedConfig;
115
- const possibleRenderers = await collectJSXRenderers(config._ctx.renderers);
115
+ const possibleRenderers = collectJSXRenderers(config._ctx.renderers);
116
116
  for (const [importSource, renderer] of possibleRenderers) {
117
117
  jsxRenderers.set(importSource, renderer);
118
118
  if (importSource === "astro") {
@@ -163,8 +163,8 @@ function jsx({ config, logging }) {
163
163
  if (!importSource && IMPORT_KEYWORD_REGEX.test(code)) {
164
164
  importSource = await detectImportSourceFromImports(code, id, jsxRenderers);
165
165
  }
166
- if (!importSource) {
167
- const [defaultRendererName] = defaultJSXRendererEntry[0];
166
+ if (!importSource && defaultJSXRendererEntry) {
167
+ const [defaultRendererName] = defaultJSXRendererEntry;
168
168
  error(
169
169
  logging,
170
170
  "renderer",
@@ -173,6 +173,16 @@ Unable to resolve a renderer that handles this file! With more than one renderer
173
173
  Add ${colors.cyan(
174
174
  IMPORT_STATEMENTS[defaultRendererName] || `import '${defaultRendererName}';`
175
175
  )} or ${colors.cyan(`/* jsxImportSource: ${defaultRendererName} */`)} to this file.
176
+ `
177
+ );
178
+ return null;
179
+ } else if (!importSource) {
180
+ error(
181
+ logging,
182
+ "renderer",
183
+ `${colors.yellow(id)}
184
+ Unable to find a renderer for JSX. Do you have one configured in your Astro config? See this page to learn how:
185
+ https://docs.astro.build/en/core-concepts/framework-components/#installing-integrations
176
186
  `
177
187
  );
178
188
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "1.1.2",
3
+ "version": "1.1.5",
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",
@@ -95,7 +95,6 @@
95
95
  "@babel/types": "^7.18.4",
96
96
  "@proload/core": "^0.3.2",
97
97
  "@proload/plugin-tsm": "^0.2.1",
98
- "ast-types": "^0.14.2",
99
98
  "boxen": "^6.2.1",
100
99
  "ci-info": "^3.3.1",
101
100
  "common-ancestor-path": "^1.0.1",
@@ -160,6 +159,7 @@
160
159
  "@types/send": "^0.17.1",
161
160
  "@types/unist": "^2.0.6",
162
161
  "@types/yargs-parser": "^21.0.0",
162
+ "ast-types": "^0.14.2",
163
163
  "astro-scripts": "0.0.7",
164
164
  "chai": "^4.3.6",
165
165
  "cheerio": "^1.0.0-rc.11",