astro 4.4.4 → 4.4.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.
@@ -38,14 +38,15 @@ function getPathFromVirtualModulePageName(virtualModulePrefix, id) {
38
38
  return pageName.replace(ASTRO_PAGE_EXTENSION_POST_PATTERN, ".");
39
39
  }
40
40
  function shouldInlineAsset(assetContent, assetPath, assetsInlineLimit) {
41
- if (typeof assetsInlineLimit === "number") {
42
- return Buffer.byteLength(assetContent) < assetsInlineLimit;
43
- }
44
- const result = assetsInlineLimit(assetPath, Buffer.from(assetContent));
45
- if (result != null) {
46
- return result;
41
+ if (typeof assetsInlineLimit === "function") {
42
+ const result = assetsInlineLimit(assetPath, Buffer.from(assetContent));
43
+ if (result != null) {
44
+ return result;
45
+ } else {
46
+ return Buffer.byteLength(assetContent) < 4096;
47
+ }
47
48
  }
48
- return Buffer.byteLength(assetContent) < 4096;
49
+ return Buffer.byteLength(assetContent) < Number(assetsInlineLimit);
49
50
  }
50
51
  export {
51
52
  ASTRO_PAGE_EXTENSION_POST_PATTERN,
@@ -1,4 +1,4 @@
1
- const ASTRO_VERSION = "4.4.4";
1
+ const ASTRO_VERSION = "4.4.5";
2
2
  const REROUTE_DIRECTIVE_HEADER = "X-Astro-Reroute";
3
3
  const ROUTE_TYPE_HEADER = "X-Astro-Route-Type";
4
4
  const REROUTABLE_STATUS_CODES = [404, 500];
@@ -23,7 +23,7 @@ async function dev(inlineConfig) {
23
23
  base: restart.container.settings.config.base
24
24
  })
25
25
  );
26
- const currentVersion = "4.4.4";
26
+ const currentVersion = "4.4.5";
27
27
  if (currentVersion.includes("-")) {
28
28
  logger.warn("SKIP_FORMAT", msg.prerelease({ currentVersion }));
29
29
  }
@@ -36,7 +36,7 @@ function serverStart({
36
36
  host,
37
37
  base
38
38
  }) {
39
- const version = "4.4.4";
39
+ const version = "4.4.5";
40
40
  const localPrefix = `${dim("\u2503")} Local `;
41
41
  const networkPrefix = `${dim("\u2503")} Network `;
42
42
  const emptyPrefix = " ".repeat(11);
@@ -261,7 +261,7 @@ function printHelp({
261
261
  message.push(
262
262
  linebreak(),
263
263
  ` ${bgGreen(black(` ${commandName} `))} ${green(
264
- `v${"4.4.4"}`
264
+ `v${"4.4.5"}`
265
265
  )} ${headline}`
266
266
  );
267
267
  }
@@ -62,7 +62,7 @@ class Slots {
62
62
  if (expression) {
63
63
  const slot = async () => typeof expression === "function" ? expression(...args) : expression;
64
64
  return await renderSlotToString(result, slot).then((res) => {
65
- return res != null ? String(res) : res;
65
+ return res;
66
66
  });
67
67
  }
68
68
  if (typeof component === "function") {
@@ -12,6 +12,7 @@ export declare class RenderContext {
12
12
  status: number;
13
13
  readonly cookies: AstroCookies;
14
14
  readonly params: import("../@types/astro.js").Params;
15
+ readonly url: URL;
15
16
  private constructor();
16
17
  static create({ locals, middleware, pathname, pipeline, request, routeData, status, }: Pick<RenderContext, 'pathname' | 'pipeline' | 'request' | 'routeData'> & Partial<Pick<RenderContext, 'locals' | 'middleware' | 'status'>>): RenderContext;
17
18
  /**
@@ -28,5 +29,7 @@ export declare class RenderContext {
28
29
  render(componentInstance: ComponentInstance | undefined): Promise<Response>;
29
30
  createAPIContext(props: APIContext['props']): APIContext;
30
31
  createResult(mod: ComponentInstance): Promise<import("../@types/astro.js").SSRResult>;
31
- get i18nData(): Pick<APIContext<Record<string, any>, Record<string, string | undefined>>, "currentLocale" | "preferredLocale" | "preferredLocaleList">;
32
+ computeCurrentLocale(): string | undefined;
33
+ computePreferredLocale(): string | undefined;
34
+ computePreferredLocaleList(): string[] | undefined;
32
35
  }
@@ -20,7 +20,7 @@ import {
20
20
  } from "../i18n/utils.js";
21
21
  import { renderRedirect } from "./redirects/render.js";
22
22
  class RenderContext {
23
- constructor(pipeline, locals, middleware, pathname, request, routeData, status, cookies = new AstroCookies(request), params = getParams(routeData, pathname)) {
23
+ constructor(pipeline, locals, middleware, pathname, request, routeData, status, cookies = new AstroCookies(request), params = getParams(routeData, pathname), url = new URL(request.url)) {
24
24
  this.pipeline = pipeline;
25
25
  this.locals = locals;
26
26
  this.middleware = middleware;
@@ -30,6 +30,7 @@ class RenderContext {
30
30
  this.status = status;
31
31
  this.cookies = cookies;
32
32
  this.params = params;
33
+ this.url = url;
33
34
  }
34
35
  static create({
35
36
  locals = {},
@@ -98,19 +99,23 @@ class RenderContext {
98
99
  }
99
100
  createAPIContext(props) {
100
101
  const renderContext = this;
101
- const { cookies, i18nData, params, pipeline, request } = this;
102
- const { currentLocale, preferredLocale, preferredLocaleList } = i18nData;
102
+ const { cookies, params, pipeline, request, url } = this;
103
103
  const generator = `Astro v${ASTRO_VERSION}`;
104
104
  const redirect = (path, status = 302) => new Response(null, { status, headers: { Location: path } });
105
105
  const site = pipeline.site ? new URL(pipeline.site) : void 0;
106
- const url = new URL(request.url);
107
106
  return {
108
107
  cookies,
109
- currentLocale,
108
+ get currentLocale() {
109
+ return renderContext.computeCurrentLocale();
110
+ },
110
111
  generator,
111
112
  params,
112
- preferredLocale,
113
- preferredLocaleList,
113
+ get preferredLocale() {
114
+ return renderContext.computePreferredLocale();
115
+ },
116
+ get preferredLocaleList() {
117
+ return renderContext.computePreferredLocaleList();
118
+ },
114
119
  props,
115
120
  redirect,
116
121
  request,
@@ -191,27 +196,42 @@ class RenderContext {
191
196
  * API Context may be created multiple times per request, i18n data needs to be computed only once.
192
197
  * So, it is computed and saved here on creation of the first APIContext and reused for later ones.
193
198
  */
194
- #i18nData;
195
- get i18nData() {
196
- if (this.#i18nData)
197
- return this.#i18nData;
199
+ #currentLocale;
200
+ computeCurrentLocale() {
198
201
  const {
202
+ url,
199
203
  pipeline: { i18n },
200
- request,
201
204
  routeData
202
205
  } = this;
203
206
  if (!i18n)
204
- return {
205
- currentLocale: void 0,
206
- preferredLocale: void 0,
207
- preferredLocaleList: void 0
208
- };
207
+ return;
209
208
  const { defaultLocale, locales, strategy } = i18n;
210
- return this.#i18nData = {
211
- currentLocale: computeCurrentLocale(routeData.route, locales, strategy, defaultLocale),
212
- preferredLocale: computePreferredLocale(request, locales),
213
- preferredLocaleList: computePreferredLocaleList(request, locales)
214
- };
209
+ return this.#currentLocale ??= computeCurrentLocale(
210
+ routeData.route,
211
+ locales,
212
+ strategy,
213
+ defaultLocale
214
+ );
215
+ }
216
+ #preferredLocale;
217
+ computePreferredLocale() {
218
+ const {
219
+ pipeline: { i18n },
220
+ request
221
+ } = this;
222
+ if (!i18n)
223
+ return;
224
+ return this.#preferredLocale ??= computePreferredLocale(request, i18n.locales);
225
+ }
226
+ #preferredLocaleList;
227
+ computePreferredLocaleList() {
228
+ const {
229
+ pipeline: { i18n },
230
+ request
231
+ } = this;
232
+ if (!i18n)
233
+ return;
234
+ return this.#preferredLocaleList ??= computePreferredLocaleList(request, i18n.locales);
215
235
  }
216
236
  }
217
237
  export {
@@ -12,6 +12,7 @@ export interface CreateRequestOptions {
12
12
  logger: Logger;
13
13
  ssr: boolean;
14
14
  locals?: object | undefined;
15
+ removeParams?: boolean;
15
16
  }
16
- export declare function createRequest({ url, headers, clientAddress, method, body, logger, ssr, locals, }: CreateRequestOptions): Request;
17
+ export declare function createRequest({ url, headers, clientAddress, method, body, logger, ssr, locals, removeParams, }: CreateRequestOptions): Request;
17
18
  export {};
@@ -8,10 +8,16 @@ function createRequest({
8
8
  body = void 0,
9
9
  logger,
10
10
  ssr,
11
- locals
11
+ locals,
12
+ removeParams = false
12
13
  }) {
13
14
  let headersObj = headers instanceof Headers ? headers : new Headers(Object.entries(headers));
14
- const request = new Request(url.toString(), {
15
+ if (typeof url === "string")
16
+ url = new URL(url);
17
+ if (removeParams && url.pathname !== "/_image") {
18
+ url.search = "";
19
+ }
20
+ const request = new Request(url, {
15
21
  method,
16
22
  headers: headersObj,
17
23
  body
@@ -1,6 +1,6 @@
1
1
  import { isDefinedIcon } from "../ui-library/icons.js";
2
2
  import { colorForIntegration, iconForIntegration } from "./utils/icons.js";
3
- import { createWindowElement } from "./utils/window.js";
3
+ import { closeOnOutsideClick, createWindowElement } from "./utils/window.js";
4
4
  const astroLogo = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 99 26" width="100"><path fill="#fff" d="M6.70402 22.1453c-1.17459-1.0737-1.51748-3.3297-1.02811-4.9641.84853 1.0304 2.02424 1.3569 3.24204 1.5411 1.88005.2844 3.72635.178 5.47285-.6813.1998-.0984.3844-.2292.6027-.3617.1639.4755.2065.9554.1493 1.4439-.1392 1.1898-.7313 2.1088-1.673 2.8054-.3765.2787-.775.5278-1.1639.7905-1.1948.8075-1.518 1.7544-1.0691 3.1318.0107.0336.0202.0671.0444.149-.6101-.273-1.0557-.6705-1.39518-1.1931-.3586-.5517-.52921-1.1619-.53819-1.8221-.00449-.3213-.00449-.6455-.0477-.9623-.10551-.7722-.46804-1.118-1.15102-1.1379-.70094-.0205-1.2554.4129-1.40244 1.0953-.01122.0523-.02749.1041-.04377.1649l.00112.0006Z"/><path fill="url(#paint0_linear_386_2739)" d="M6.70402 22.1453c-1.17459-1.0737-1.51748-3.3297-1.02811-4.9641.84853 1.0304 2.02424 1.3569 3.24204 1.5411 1.88005.2844 3.72635.178 5.47285-.6813.1998-.0984.3844-.2292.6027-.3617.1639.4755.2065.9554.1493 1.4439-.1392 1.1898-.7313 2.1088-1.673 2.8054-.3765.2787-.775.5278-1.1639.7905-1.1948.8075-1.518 1.7544-1.0691 3.1318.0107.0336.0202.0671.0444.149-.6101-.273-1.0557-.6705-1.39518-1.1931-.3586-.5517-.52921-1.1619-.53819-1.8221-.00449-.3213-.00449-.6455-.0477-.9623-.10551-.7722-.46804-1.118-1.15102-1.1379-.70094-.0205-1.2554.4129-1.40244 1.0953-.01122.0523-.02749.1041-.04377.1649l.00112.0006Z"/><path fill="#fff" d="M0 16.909s3.47815-1.6944 6.96603-1.6944l2.62973-8.13858c.09846-.39359.38592-.66106.71044-.66106.3246 0 .612.26747.7105.66106l2.6297 8.13858c4.1309 0 6.966 1.6944 6.966 1.6944S14.7045.814589 14.693.782298C14.5234.306461 14.2371 0 13.8512 0H6.76183c-.38593 0-.66063.306461-.84174.782298C5.90733.81398 0 16.909 0 16.909ZM36.671 11.7318c0 1.4262-1.7739 2.2779-4.2302 2.2779-1.5985 0-2.1638-.3962-2.1638-1.2281 0-.8715.7018-1.2875 2.3003-1.2875 1.4426 0 2.6707.0198 4.0937.1981v.0396Zm.0195-1.7629c-.8772-.19808-2.2028-.31693-3.7818-.31693-4.6006 0-6.7644 1.08943-6.7644 3.62483 0 2.6344 1.4815 3.6446 4.9125 3.6446 2.9046 0 4.8735-.7328 5.5947-2.5354h.117c-.0195.4358-.039.8716-.039 1.2083 0 .931.156 1.0102.9162 1.0102h3.5869c-.1949-.5546-.3119-2.1194-.3119-3.4663 0-1.446.0585-2.5355.0585-4.00123 0-2.99098-1.7934-4.89253-7.4077-4.89253-2.4173 0-5.1074.41596-7.1543 1.03.1949.81213.4679 2.45617.6043 3.5258 1.774-.83193 4.2887-1.18847 6.2381-1.18847 2.6902 0 3.4309.61404 3.4309 1.86193v.4952ZM46.5325 12.5637c-.4874.0594-1.1502.0594-1.8325.0594-.7213 0-1.3841-.0198-1.8324-.0792 0 .1585-.0195.3367-.0195.4952 0 2.476 1.618 3.922 7.3102 3.922 5.3609 0 7.0958-1.4262 7.0958-3.9418 0-2.3769-1.1501-3.5456-6.238-3.8031-3.9573-.17827-4.3082-.61404-4.3082-1.10924 0-.57442.5068-.87154 3.158-.87154 2.7487 0 3.4894.37635 3.4894 1.16866v.17827c.3899-.01981 1.0917-.03961 1.813-.03961.6823 0 1.423.0198 1.8519.05942 0-.17827.0195-.33674.0195-.47539 0-2.91175-2.4172-3.86252-7.0958-3.86252-5.2634 0-7.0373 1.2875-7.0373 3.8031 0 2.25805 1.423 3.66445 6.472 3.88235 3.7233.1188 4.1327.5348 4.1327 1.1092 0 .6141-.6043.8914-3.2165.8914-3.0021 0-3.7623-.416-3.7623-1.2677v-.1189ZM63.6883 2.125c-1.423 1.32712-3.9768 2.65425-5.3998 3.01079.0195.73289.0195 2.07982.0195 2.81271l1.3061.01981c-.0195 1.40635-.039 3.10979-.039 4.23889 0 2.6344 1.3841 4.6152 5.6922 4.6152 1.813 0 3.0216-.1981 4.5226-.515-.1559-.9706-.3314-2.4562-.3898-3.5852-.8968.2971-2.0274.4556-3.275.4556-1.735 0-2.4368-.4754-2.4368-1.8422 0-1.1884 0-2.29767.0195-3.32768 2.2223.01981 4.4446.05943 5.7507.09904-.0195-1.03.0195-2.51559.078-3.50598-1.8909.03961-4.0157.05942-5.7702.05942.0195-.87154.039-1.70347.0585-2.5354h-.1365ZM75.3313 7.35427c.0195-1.03001.039-1.90156.0585-2.75329h-3.9183c.0585 1.70347.0585 3.44656.0585 6.00172 0 2.5553-.0195 4.3182-.0585 6.0018h4.4836c-.078-1.1885-.0975-3.189-.0975-4.8925 0-2.69388 1.0917-3.46638 3.5674-3.46638 1.1502 0 1.9689.13865 2.6902.39615.0195-1.01019.2144-2.97117.3314-3.84271-.7408-.21789-1.5595-.35655-2.5537-.35655-2.1249-.0198-3.6844.85174-4.4056 2.93156l-.156-.0198ZM94.8501 10.5235c0 2.1591-1.5595 3.1693-4.0157 3.1693-2.4368 0-3.9963-.9508-3.9963-3.1693 0-2.21846 1.579-3.05039 3.9963-3.05039 2.4367 0 4.0157.89135 4.0157 3.05039Zm4.0743-.099c0-4.29832-3.353-6.21968-8.09-6.21968-4.7566 0-7.9926 1.92136-7.9926 6.21968 0 4.2785 3.0216 6.5762 7.9731 6.5762 4.9904 0 8.1095-2.2977 8.1095-6.5762Z"/><defs><linearGradient id="paint0_linear_386_2739" x1="5.46011" x2="16.8017" y1="25.9999" y2="20.6412" gradientUnits="userSpaceOnUse"><stop stop-color="#D83333"/><stop offset="1" stop-color="#F041FF"/></linearGradient></defs></svg>';
5
5
  let integrationData;
6
6
  var astro_default = {
@@ -10,7 +10,6 @@ var astro_default = {
10
10
  async init(canvas, eventTarget) {
11
11
  createCanvas();
12
12
  document.addEventListener("astro:after-swap", createCanvas);
13
- document.addEventListener("astro:after-swap", fetchIntegrationData);
14
13
  eventTarget.addEventListener("app-toggled", async (event) => {
15
14
  resetDebugButton();
16
15
  if (!(event instanceof CustomEvent))
@@ -20,6 +19,7 @@ var astro_default = {
20
19
  fetchIntegrationData();
21
20
  }
22
21
  });
22
+ closeOnOutsideClick(eventTarget);
23
23
  function fetchIntegrationData() {
24
24
  fetch("https://astro.build/api/v1/dev-overlay/", {
25
25
  cache: "no-cache"
@@ -333,6 +333,8 @@ var astro_default = {
333
333
  }, 3500);
334
334
  });
335
335
  canvas.append(windowComponent);
336
+ if (integrationData)
337
+ refreshIntegrationList();
336
338
  }
337
339
  function resetDebugButton() {
338
340
  const copyDebugButton = canvas.querySelector("#copy-debug-button");
@@ -1,12 +1,12 @@
1
+ import { finder } from "@medv/finder";
1
2
  import {
2
3
  attachTooltipToHighlight,
3
4
  createHighlight,
4
5
  getElementsPositionInDocument,
5
6
  positionHighlight
6
7
  } from "../utils/highlight.js";
7
- import { createWindowElement } from "../utils/window.js";
8
+ import { closeOnOutsideClick, createWindowElement } from "../utils/window.js";
8
9
  import { a11y } from "./a11y.js";
9
- import { finder } from "@medv/finder";
10
10
  import { perf } from "./perf.js";
11
11
  const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 1 20 16"><path fill="#fff" d="M.6 2A1.1 1.1 0 0 1 1.7.9h16.6a1.1 1.1 0 1 1 0 2.2H1.6A1.1 1.1 0 0 1 .8 2Zm1.1 7.1h6a1.1 1.1 0 0 0 0-2.2h-6a1.1 1.1 0 0 0 0 2.2ZM9.3 13H1.8a1.1 1.1 0 1 0 0 2.2h7.5a1.1 1.1 0 1 0 0-2.2Zm11.3 1.9a1.1 1.1 0 0 1-1.5 0l-1.7-1.7a4.1 4.1 0 1 1 1.6-1.6l1.6 1.7a1.1 1.1 0 0 1 0 1.6Zm-5.3-3.4a1.9 1.9 0 1 0 0-3.8 1.9 1.9 0 0 0 0 3.8Z"/></svg>';
12
12
  const rules = [...a11y, ...perf];
@@ -30,29 +30,7 @@ var audit_default = {
30
30
  await lint();
31
31
  document.addEventListener("astro:after-swap", async () => lint());
32
32
  document.addEventListener("astro:page-load", async () => refreshLintPositions);
33
- function onPageClick(event) {
34
- const target = event.target;
35
- if (!target)
36
- return;
37
- if (!target.closest)
38
- return;
39
- if (target.closest("astro-dev-toolbar"))
40
- return;
41
- eventTarget.dispatchEvent(
42
- new CustomEvent("toggle-app", {
43
- detail: {
44
- state: false
45
- }
46
- })
47
- );
48
- }
49
- eventTarget.addEventListener("app-toggled", (event) => {
50
- if (event.detail.state === true) {
51
- document.addEventListener("click", onPageClick, true);
52
- } else {
53
- document.removeEventListener("click", onPageClick, true);
54
- }
55
- });
33
+ closeOnOutsideClick(eventTarget);
56
34
  async function lint() {
57
35
  audits.forEach(({ highlightElement }) => {
58
36
  highlightElement.remove();
@@ -2,6 +2,6 @@ declare const _default: {
2
2
  id: string;
3
3
  name: string;
4
4
  icon: "gear";
5
- init(canvas: ShadowRoot): void;
5
+ init(canvas: ShadowRoot, eventTarget: EventTarget): void;
6
6
  };
7
7
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import { settings } from "../settings.js";
2
- import { createWindowElement } from "./utils/window.js";
2
+ import { closeOnOutsideClick, createWindowElement } from "./utils/window.js";
3
3
  const settingsRows = [
4
4
  {
5
5
  name: "Disable notifications",
@@ -36,9 +36,10 @@ var settings_default = {
36
36
  id: "astro:settings",
37
37
  name: "Settings",
38
38
  icon: "gear",
39
- init(canvas) {
39
+ init(canvas, eventTarget) {
40
40
  createSettingsWindow();
41
41
  document.addEventListener("astro:after-swap", createSettingsWindow);
42
+ closeOnOutsideClick(eventTarget);
42
43
  function createSettingsWindow() {
43
44
  const windowElement = createWindowElement(
44
45
  `<style>
@@ -1 +1,2 @@
1
1
  export declare function createWindowElement(content: string): import("../../ui-library/window.js").DevToolbarWindow;
2
+ export declare function closeOnOutsideClick(eventTarget: EventTarget): void;
@@ -3,6 +3,32 @@ function createWindowElement(content) {
3
3
  windowElement.innerHTML = content;
4
4
  return windowElement;
5
5
  }
6
+ function closeOnOutsideClick(eventTarget) {
7
+ function onPageClick(event) {
8
+ const target = event.target;
9
+ if (!target)
10
+ return;
11
+ if (!target.closest)
12
+ return;
13
+ if (target.closest("astro-dev-toolbar"))
14
+ return;
15
+ eventTarget.dispatchEvent(
16
+ new CustomEvent("toggle-app", {
17
+ detail: {
18
+ state: false
19
+ }
20
+ })
21
+ );
22
+ }
23
+ eventTarget.addEventListener("app-toggled", (event) => {
24
+ if (event.detail.state === true) {
25
+ document.addEventListener("click", onPageClick, true);
26
+ } else {
27
+ document.removeEventListener("click", onPageClick, true);
28
+ }
29
+ });
30
+ }
6
31
  export {
32
+ closeOnOutsideClick,
7
33
  createWindowElement
8
34
  };
@@ -4,7 +4,7 @@ import {
4
4
  getElementsPositionInDocument,
5
5
  positionHighlight
6
6
  } from "./utils/highlight.js";
7
- import { createWindowElement } from "./utils/window.js";
7
+ import { closeOnOutsideClick, createWindowElement } from "./utils/window.js";
8
8
  const icon = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><path fill="#fff" d="M7.9 1.5v-.4a1.1 1.1 0 0 1 2.2 0v.4a1.1 1.1 0 1 1-2.2 0Zm-6.4 8.6a1.1 1.1 0 1 0 0-2.2h-.4a1.1 1.1 0 0 0 0 2.2h.4ZM12 3.7a1.1 1.1 0 0 0 1.4-.7l.4-1.1a1.1 1.1 0 0 0-2.1-.8l-.4 1.2a1.1 1.1 0 0 0 .7 1.4Zm-9.7 7.6-1.2.4a1.1 1.1 0 1 0 .8 2.1l1-.4a1.1 1.1 0 1 0-.6-2ZM20.8 17a1.9 1.9 0 0 1 0 2.6l-1.2 1.2a1.9 1.9 0 0 1-2.6 0l-4.3-4.2-1.6 3.6a1.9 1.9 0 0 1-1.7 1.2A1.9 1.9 0 0 1 7.5 20L2.7 5a1.9 1.9 0 0 1 2.4-2.4l15 5a1.9 1.9 0 0 1 .2 3.4l-3.7 1.6 4.2 4.3ZM19 18.3 14.6 14a1.9 1.9 0 0 1 .6-3l3.2-1.5L5.1 5.1l4.3 13.3 1.5-3.2a1.9 1.9 0 0 1 3-.6l4.4 4.4.7-.7Z"/></svg>';
9
9
  var xray_default = {
10
10
  id: "astro:xray",
@@ -15,31 +15,7 @@ var xray_default = {
15
15
  addIslandsOverlay();
16
16
  document.addEventListener("astro:after-swap", addIslandsOverlay);
17
17
  document.addEventListener("astro:page-load", refreshIslandsOverlayPositions);
18
- function onPageClick(event) {
19
- const target = event.target;
20
- if (!target)
21
- return;
22
- if (!target.closest)
23
- return;
24
- if (target.closest("astro-dev-toolbar"))
25
- return;
26
- event.preventDefault();
27
- event.stopPropagation();
28
- eventTarget.dispatchEvent(
29
- new CustomEvent("toggle-app", {
30
- detail: {
31
- state: false
32
- }
33
- })
34
- );
35
- }
36
- eventTarget.addEventListener("app-toggled", (event) => {
37
- if (event.detail.state === true) {
38
- document.addEventListener("click", onPageClick, true);
39
- } else {
40
- document.removeEventListener("click", onPageClick, true);
41
- }
42
- });
18
+ closeOnOutsideClick(eventTarget);
43
19
  function addIslandsOverlay() {
44
20
  islandsOverlays.forEach(({ highlightElement }) => {
45
21
  highlightElement.remove();
@@ -61,6 +61,8 @@ function unescapeHTML(str) {
61
61
  return Promise.resolve(str).then((value) => {
62
62
  return unescapeHTML(value);
63
63
  });
64
+ } else if (str[Symbol.for("astro:slot-string")]) {
65
+ return str;
64
66
  } else if (Symbol.iterator in str) {
65
67
  return unescapeChunks(str);
66
68
  } else if (Symbol.asyncIterator in str || hasGetReader(str)) {
@@ -106,6 +106,8 @@ function renderToBufferDestination(bufferRenderFunction) {
106
106
  write: (chunk) => bufferChunks.push(chunk)
107
107
  };
108
108
  const renderPromise = bufferRenderFunction(bufferDestination);
109
+ Promise.resolve(renderPromise).catch(() => {
110
+ });
109
111
  return {
110
112
  async renderToFinalDestination(destination) {
111
113
  for (const chunk of bufferChunks) {
@@ -22,12 +22,6 @@ async function handleRequest({
22
22
  pathname = url.pathname;
23
23
  }
24
24
  url.pathname = removeTrailingForwardSlash(config.base) + url.pathname;
25
- if (!buildingToSSR && pathname !== "/_image") {
26
- const allSearchParams = Array.from(url.searchParams);
27
- for (const [key] of allSearchParams) {
28
- url.searchParams.delete(key);
29
- }
30
- }
31
25
  let body = void 0;
32
26
  if (!(incomingRequest.method === "GET" || incomingRequest.method === "HEAD")) {
33
27
  let bytes = [];
@@ -169,7 +169,8 @@ async function handleRoute({
169
169
  body,
170
170
  logger,
171
171
  ssr: buildingToSSR,
172
- clientAddress: buildingToSSR ? incomingRequest.socket.remoteAddress : void 0
172
+ clientAddress: buildingToSSR ? incomingRequest.socket.remoteAddress : void 0,
173
+ removeParams: buildingToSSR === false || route.prerender
173
174
  });
174
175
  for (const [name, value] of Object.entries(config.server.headers ?? {})) {
175
176
  if (value)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astro",
3
- "version": "4.4.4",
3
+ "version": "4.4.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",