astro 2.10.0 → 2.10.1

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.
@@ -2,7 +2,11 @@ import mime from "mime";
2
2
  import { attachToResponse, getSetCookiesFromResponse } from "../cookies/index.js";
3
3
  import { consoleLogDestination } from "../logger/console.js";
4
4
  import { error } from "../logger/core.js";
5
- import { prependForwardSlash, removeTrailingForwardSlash } from "../path.js";
5
+ import {
6
+ collapseDuplicateSlashes,
7
+ prependForwardSlash,
8
+ removeTrailingForwardSlash
9
+ } from "../path.js";
6
10
  import { RedirectSinglePageBuiltModule } from "../redirects/index.js";
7
11
  import { isResponse } from "../render/core.js";
8
12
  import {
@@ -98,13 +102,16 @@ class App {
98
102
  const url = new URL(request.url);
99
103
  if (this.#manifest.assets.has(url.pathname))
100
104
  return void 0;
101
- let pathname = prependForwardSlash(this.removeBase(url.pathname));
102
- let routeData = matchRoute(pathname, this.#manifestData);
105
+ const pathname = prependForwardSlash(this.removeBase(url.pathname));
106
+ const routeData = matchRoute(pathname, this.#manifestData);
103
107
  if (!routeData || routeData.prerender)
104
108
  return void 0;
105
109
  return routeData;
106
110
  }
107
111
  async render(request, routeData, locals) {
112
+ if (request.url !== collapseDuplicateSlashes(request.url)) {
113
+ request = new Request(collapseDuplicateSlashes(request.url), request);
114
+ }
108
115
  if (!routeData) {
109
116
  routeData = this.match(request);
110
117
  }
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "2.10.0";
1
+ const ASTRO_VERSION = "2.10.1";
2
2
  const SUPPORTED_MARKDOWN_FILE_EXTENSIONS = [
3
3
  ".markdown",
4
4
  ".mdown",
@@ -23,7 +23,7 @@ async function dev(inlineConfig) {
23
23
  base: restart.container.settings.config.base
24
24
  })
25
25
  );
26
- const currentVersion = "2.10.0";
26
+ const currentVersion = "2.10.1";
27
27
  if (currentVersion.includes("-")) {
28
28
  warn(logging, null, msg.prerelease({ currentVersion }));
29
29
  }
@@ -47,7 +47,7 @@ function serverStart({
47
47
  base,
48
48
  isRestart = false
49
49
  }) {
50
- const version = "2.10.0";
50
+ const version = "2.10.1";
51
51
  const localPrefix = `${dim("\u2503")} Local `;
52
52
  const networkPrefix = `${dim("\u2503")} Network `;
53
53
  const emptyPrefix = " ".repeat(11);
@@ -233,7 +233,7 @@ function printHelp({
233
233
  message.push(
234
234
  linebreak(),
235
235
  ` ${bgGreen(black(` ${commandName} `))} ${green(
236
- `v${"2.10.0"}`
236
+ `v${"2.10.1"}`
237
237
  )} ${headline}`
238
238
  );
239
239
  }
@@ -5,7 +5,7 @@ export { escapeHTML, HTMLBytes, HTMLString, isHTMLString, markHTMLString, unesca
5
5
  export { renderJSX } from './jsx.js';
6
6
  export { addAttribute, createHeadAndContent, defineScriptVars, Fragment, maybeRenderHead, renderTemplate as render, renderComponent, Renderer as Renderer, renderHead, renderHTMLElement, renderPage, renderScriptElement, renderSlot, renderSlotToString, renderTemplate, renderToString, renderUniqueStylesheet, voidElementNames, } from './render/index.js';
7
7
  export type { AstroComponentFactory, AstroComponentInstance, ComponentSlots, RenderInstruction, } from './render/index.js';
8
- export { renderTransition } from './transition.js';
8
+ export { createTransitionScope, renderTransition } from './transition.js';
9
9
  export declare function mergeSlots(...slotted: unknown[]): Record<string, () => any>;
10
10
  /** @internal Associate JSX components with a specific renderer (see /src/vite-plugin-jsx/tag.ts) */
11
11
  export declare function __astro_tag_component__(Component: unknown, rendererName: string): void;
@@ -30,7 +30,7 @@ import {
30
30
  renderUniqueStylesheet,
31
31
  voidElementNames
32
32
  } from "./render/index.js";
33
- import { renderTransition } from "./transition.js";
33
+ import { createTransitionScope, renderTransition } from "./transition.js";
34
34
  import { markHTMLString as markHTMLString2 } from "./escape.js";
35
35
  import { addAttribute as addAttribute2, Renderer as Renderer2 } from "./render/index.js";
36
36
  function mergeSlots(...slotted) {
@@ -95,6 +95,7 @@ export {
95
95
  createAstro,
96
96
  createComponent,
97
97
  createHeadAndContent,
98
+ createTransitionScope,
98
99
  defineScriptVars,
99
100
  defineStyleVars,
100
101
  escapeHTML,
@@ -2,7 +2,7 @@ import { collectErrorMetadata } from "../core/errors/dev/index.js";
2
2
  import { createSafeError } from "../core/errors/index.js";
3
3
  import { error } from "../core/logger/core.js";
4
4
  import * as msg from "../core/messages.js";
5
- import { removeTrailingForwardSlash } from "../core/path.js";
5
+ import { collapseDuplicateSlashes, removeTrailingForwardSlash } from "../core/path.js";
6
6
  import { eventError, telemetry } from "../events/index.js";
7
7
  import { isServerLikeOutput } from "../prerender/utils.js";
8
8
  import { runWithErrorHandling } from "./controller.js";
@@ -20,7 +20,7 @@ async function handleRequest({
20
20
  const { config } = settings;
21
21
  const origin = `${moduleLoader.isHttps() ? "https" : "http"}://${incomingRequest.headers.host}`;
22
22
  const buildingToSSR = isServerLikeOutput(config);
23
- const url = new URL(origin + incomingRequest.url);
23
+ const url = new URL(collapseDuplicateSlashes(origin + incomingRequest.url));
24
24
  let pathname;
25
25
  if (config.trailingSlash === "never" && !incomingRequest.url) {
26
26
  pathname = "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "2.10.0",
3
+ "version": "2.10.1",
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",
@@ -103,7 +103,7 @@
103
103
  ],
104
104
  "dependencies": {
105
105
  "@astrojs/compiler": "^1.8.0",
106
- "@astrojs/internal-helpers": "^0.1.1",
106
+ "@astrojs/internal-helpers": "^0.1.2",
107
107
  "@astrojs/language-server": "^1.0.0",
108
108
  "@astrojs/markdown-remark": "^2.2.1",
109
109
  "@astrojs/telemetry": "^2.1.1",