<template>
  <div>
    <n-space item-style="flex:1 1 0">
      <div>
        <n-space item-style="flex:1 1 0">
          <n-form-item label="Start address" v-bind="startIpValidation.attrs as any">
            <n-input v-model:value="rawStartAddress" placeholder="Start IPv4 address..." />
          </n-form-item>
          <n-form-item label="End address" v-bind="endIpValidation.attrs as any">
            <n-input v-model:value="rawEndAddress" placeholder="End IPv4 address..." />
          </n-form-item>
        </n-space>

        <n-table v-if="showResult" data-test-id="result">
          <thead>
            <tr>
              <th scope="col">&nbsp;</th>
              <th scope="col">old value</th>
              <th scope="col">new value</th>
            </tr>
          </thead>
          <tbody>
            <result-row
              v-for="{ label, getOldValue, getNewValue } in calculatedValues"
              :key="label"
              :label="label"
              :old-value="getOldValue(result)"
              :new-value="getNewValue(result)"
            />
          </tbody>
        </n-table>
        <n-alert
          v-else-if="startIpValidation.isValid && endIpValidation.isValid"
          title="Invalid combination of start and end IPv4 address"
          type="error"
        >
          <n-space vertical>
            <n-text depth="3">
              The end IPv4 address is lower than the start IPv4 address. This is not valid and no result could be
              calculated. In the most cases the solution to solve this problem is to change start and end address.
            </n-text>
            <c-button @click="onSwitchStartEndClicked">
              <n-icon mr-2 :component="Exchange" depth="3" size="22" />
              Switch start and end IPv4 address
            </c-button>
          </n-space>
        </n-alert>
      </div>
    </n-space>
  </div>
</template>

<script setup lang="ts">
import { useValidation } from '@/composable/validation';
import { Exchange } from '@vicons/tabler';
import { isValidIpv4 } from '../ipv4-address-converter/ipv4-address-converter.service';
import type { Ipv4RangeExpanderResult } from './ipv4-range-expander.types';
import { calculateCidr } from './ipv4-range-expander.service';
import ResultRow from './result-row.vue';

const rawStartAddress = useStorage('ipv4-range-expander:startAddress', '192.168.1.1');
const rawEndAddress = useStorage('ipv4-range-expander:endAddress', '192.168.6.255');

const result = computed(() => calculateCidr({ startIp: rawStartAddress.value, endIp: rawEndAddress.value }));

const calculatedValues: {
  label: string;
  getOldValue: (result: Ipv4RangeExpanderResult | undefined) => string | undefined;
  getNewValue: (result: Ipv4RangeExpanderResult | undefined) => string | undefined;
}[] = [
  {
    label: 'Start address',
    getOldValue: () => rawStartAddress.value,
    getNewValue: (result) => result?.newStart,
  },
  {
    label: 'End address',
    getOldValue: () => rawEndAddress.value,
    getNewValue: (result) => result?.newEnd,
  },
  {
    label: 'Addresses in range',
    getOldValue: (result) => result?.oldSize?.toLocaleString(),
    getNewValue: (result) => result?.newSize?.toLocaleString(),
  },
  {
    label: 'CIDR',
    getOldValue: () => '',
    getNewValue: (result) => result?.newCidr,
  },
];

const showResult = computed(() => endIpValidation.isValid && startIpValidation.isValid && result.value !== undefined);
const startIpValidation = useValidation({
  source: rawStartAddress,
  rules: [{ message: 'Invalid ipv4 address', validator: (ip) => isValidIpv4({ ip }) }],
});
const endIpValidation = useValidation({
  source: rawEndAddress,
  rules: [{ message: 'Invalid ipv4 address', validator: (ip) => isValidIpv4({ ip }) }],
});

function onSwitchStartEndClicked() {
  const tmpStart = rawStartAddress.value;
  rawStartAddress.value = rawEndAddress.value;
  rawEndAddress.value = tmpStart;
}
</script>

<style lang="less" scoped></style>
amework-react'>examples/framework-react</option>
<option value='examples/framework-solid'>examples/framework-solid</option>
<option value='examples/framework-svelte'>examples/framework-svelte</option>
<option value='examples/framework-vue'>examples/framework-vue</option>
<option value='examples/hackernews'>examples/hackernews</option>
<option value='examples/integration'>examples/integration</option>
<option value='examples/minimal'>examples/minimal</option>
<option value='examples/portfolio'>examples/portfolio</option>
<option value='examples/ssr'>examples/ssr</option>
<option value='examples/starlog'>examples/starlog</option>
<option value='examples/toolbar-app'>examples/toolbar-app</option>
<option value='examples/with-markdoc'>examples/with-markdoc</option>
<option value='examples/with-mdx'>examples/with-mdx</option>
<option value='examples/with-nanostores'>examples/with-nanostores</option>
<option value='examples/with-tailwindcss'>examples/with-tailwindcss</option>
<option value='examples/with-vitest'>examples/with-vitest</option>
<option value='experiment-routes'>experiment-routes</option>
<option value='experiment/markdown-components'>experiment/markdown-components</option>
<option value='expr-before'>expr-before</option>
<option value='fallback-default-fade'>fallback-default-fade</option>
<option value='feat/action-on-result'>feat/action-on-result</option>
<option value='feat/action-success'>feat/action-success</option>
<option value='feat/all-fragments'>feat/all-fragments</option>
<option value='feat/astro-add'>feat/astro-add</option>
<option value='feat/astro-client'>feat/astro-client</option>
<option value='feat/astro-jsx'>feat/astro-jsx</option>
<option value='feat/astro-v-config'>feat/astro-v-config</option>
<option value='feat/autogenerated-tsconfig'>feat/autogenerated-tsconfig</option>
<option value='feat/better-data-types'>feat/better-data-types</option>
<option value='feat/better-table-type'>feat/better-table-type</option>
<option value='feat/break-out-seed-returning'>feat/break-out-seed-returning</option>
<option value='feat/cache-module-graph'>feat/cache-module-graph</option>
<option value='feat/ci-next'>feat/ci-next</option>
<option value='feat/cli'>feat/cli</option>
<option value='feat/codemod'>feat/codemod</option>
<option value='feat/config-log-level'>feat/config-log-level</option>
<option value='feat/container'>feat/container</option>
<option value='feat/context'>feat/context</option>
<option value='feat/create-astro-replace-component-selector-with-astro-add'>feat/create-astro-replace-component-selector-with-astro-add</option>
<option value='feat/create-astro-ui'>feat/create-astro-ui</option>
<option value='feat/csr'>feat/csr</option>
<option value='feat/data-improvements'>feat/data-improvements</option>
<option value='feat/data-with-set'>feat/data-with-set</option>
<option value='feat/db-action'>feat/db-action</option>
<option value='feat/db-relations'>feat/db-relations</option>
<option value='feat/define-data'>feat/define-data</option>
<option value='feat/devtools'>feat/devtools</option>
<option value='feat/dynamic-client-directives'>feat/dynamic-client-directives</option>
<option value='feat/editor'>feat/editor</option>
<option value='feat/experimental-jsx'>feat/experimental-jsx</option>
<option value='feat/expose-action-api-context'>feat/expose-action-api-context</option>
<option value='feat/expose-frontmatter-to-build-done-hook'>feat/expose-frontmatter-to-build-done-hook</option>
<option value='feat/fetch-cache'>feat/fetch-cache</option>
<option value='feat/flow-components'>feat/flow-components</option>
<option value='feat/fonts-granular-preload'>feat/fonts-granular-preload</option>
<option value='feat/fonts-retrieve-data'>feat/fonts-retrieve-data</option>
<option value='feat/foreign-key-migrations'>feat/foreign-key-migrations</option>
<option value='feat/foreign-keys'>feat/foreign-keys</option>
<option value='feat/html-pages'>feat/html-pages</option>
<option value='feat/image-placeholders'>feat/image-placeholders</option>
<option value='feat/improve-custom-element-detection'>feat/improve-custom-element-detection</option>
<option value='feat/incremental-build'>feat/incremental-build</option>
<option value='feat/indexes'>feat/indexes</option>
<option value='feat/integration-kit'>feat/integration-kit</option>
<option value='feat/jsx-transform'>feat/jsx-transform</option>
<option value='feat/legacy-markdown-flag'>feat/legacy-markdown-flag</option>
<option value='feat/markdoc-embeds'>feat/markdoc-embeds</option>
<option value='feat/markdown-components'>feat/markdown-components</option>
<option value='feat/mdx-js-injection'>feat/mdx-js-injection</option>
<option value='feat/mdx-plugin-export'>feat/mdx-plugin-export</option>
<option value='feat/minify-html'>feat/minify-html</option>
<option value='feat/next-get-env'>feat/next-get-env</option>
<option value='feat/og'>feat/og</option>
<option value='feat/ooo-streaming'>feat/ooo-streaming</option>
<option value='feat/pragma'>feat/pragma</option>
<option value='feat/preview'>feat/preview</option>
<option value='feat/react-19'>feat/react-19</option>
<option value='feat/react-19-actions'>feat/react-19-actions</option>
<option value='feat/redirect-on-html-backup'>feat/redirect-on-html-backup</option>
<option value='feat/references'>feat/references</option>
<option value='feat/remote-flag'>feat/remote-flag</option>
<option value='feat/remove-astro-image-backup'>feat/remove-astro-image-backup</option>
<option value='feat/remove-studio'>feat/remove-studio</option>
<option value='feat/render-with-queue'>feat/render-with-queue</option>
<option value='feat/reroute-ssr'>feat/reroute-ssr</option>
<option value='feat/resolve-entrypoint'>feat/resolve-entrypoint</option>
<option value='feat/router'>feat/router</option>
<option value='feat/router-ii'>feat/router-ii</option>
<option value='feat/seo-components'>feat/seo-components</option>
<option value='feat/skip-sync-flag'>feat/skip-sync-flag</option>
<option value='feat/spa'>feat/spa</option>
<option value='feat/spa-ii'>feat/spa-ii</option>
<option value='feat/squoosh'>feat/squoosh</option>
<option value='feat/standard-schema'>feat/standard-schema</option>
<option value='feat/storage-studio'>feat/storage-studio</option>
<option value='feat/streaming-rendering'>feat/streaming-rendering</option>
<option value='feat/style-obj'>feat/style-obj</option>
<option value='feat/test-utils'>feat/test-utils</option>
<option value='feat/xray-improvements'>feat/xray-improvements</option>
<option value='fetch-astro-pages-mvp'>fetch-astro-pages-mvp</option>
<option value='fix-408'>fix-408</option>
<option value='fix-all-pages-key'>fix-all-pages-key</option>
<option value='fix-beta-ref'>fix-beta-ref</option>
<option value='fix-create-ref'>fix-create-ref</option>
<option value='fix-netlify-edge'>fix-netlify-edge</option>
<option value='fix-next-basics'>fix-next-basics</option>
<option value='fix-nullish-slot-name'>fix-nullish-slot-name</option>
<option value='fix-s-island-fallback' selected='selected'>fix-s-island-fallback</option>
<option value='fix-vite-asset'>fix-vite-asset</option>
<option value='fix/actions-cookies'>fix/actions-cookies</option>
<option value='fix/actions-pending-timeout'>fix/actions-pending-timeout</option>
<option value='fix/assets-types'>fix/assets-types</option>
<option value='fix/astro-config-refresh'>fix/astro-config-refresh</option>
<option value='fix/astro-html-escape-bug'>fix/astro-html-escape-bug</option>
<option value='fix/build-subpaths'>fix/build-subpaths</option>
<option value='fix/client-only-component-css'>fix/client-only-component-css</option>
<option value='fix/client-scripts-windows'>fix/client-scripts-windows</option>
<option value='fix/config-migration-defaults'>fix/config-migration-defaults</option>
<option value='fix/container-directives'>fix/container-directives</option>
<option value='fix/dates'>fix/dates</option>
<option value='fix/db-integration-with-missing-config'>fix/db-integration-with-missing-config</option>
<option value='fix/devtoolbar-data-unset'>fix/devtoolbar-data-unset</option>
<option value='fix/empty-slots'>fix/empty-slots</option>
<option value='fix/filepath-layer'>fix/filepath-layer</option>
<option value='fix/frontmatter-file-url'>fix/frontmatter-file-url</option>
<option value='fix/head-propagation'>fix/head-propagation</option>
<option value='fix/hmr-css-deps'>fix/hmr-css-deps</option>
<option value='fix/import-ts-errors'>fix/import-ts-errors</option>
<option value='fix/main-build-failure'>fix/main-build-failure</option>
<option value='fix/map-file-404-logs'>fix/map-file-404-logs</option>
<option value='fix/mdx-named-slots'>fix/mdx-named-slots</option>
<option value='fix/middleware-import'>fix/middleware-import</option>
<option value='fix/multi-images'>fix/multi-images</option>
<option value='fix/nested-get-collection-call'>fix/nested-get-collection-call</option>
<option value='fix/preact-package-build-failure'>fix/preact-package-build-failure</option>
<option value='fix/primary-key-optional'>fix/primary-key-optional</option>
<option value='fix/regex-flags'>fix/regex-flags</option>
<option value='fix/server-headers'>fix/server-headers</option>
<option value='fix/stable-renderer-order'>fix/stable-renderer-order</option>
<option value='fix/transaction-type'>fix/transaction-type</option>
<option value='fix/vue-nested'>fix/vue-nested</option>
<option value='fix/webapi-dev'>fix/webapi-dev</option>
<option value='fork/markdoc-poc-with-md-support'>fork/markdoc-poc-with-md-support</option>
<option value='fork/markdoc-poc-with-parser'>fork/markdoc-poc-with-parser</option>
<option value='format-imports-run'>format-imports-run</option>
<option value='formatting'>formatting</option>
<option value='forward-button'>forward-button</option>
<option value='framework-agnostic-astro-components'>framework-agnostic-astro-components</option>
<option value='fryuni/db-pluggable-backend'>fryuni/db-pluggable-backend</option>
<option value='fryuni/test-route-setup-hook'>fryuni/test-route-setup-hook</option>
<option value='fryuni/tracing-hooks'>fryuni/tracing-hooks</option>
<option value='hippotastic/legitimate-bat'>hippotastic/legitimate-bat</option>
<option value='hoisted-script-ts'>hoisted-script-ts</option>
<option value='host-ssr-example-2'>host-ssr-example-2</option>
<option value='hostfornode'>hostfornode</option>
<option value='image-non-node'>image-non-node</option>
<option value='improve-base-handling'>improve-base-handling</option>
<option value='inline-hoisted-scripts-now'>inline-hoisted-scripts-now</option>
<option value='jn.convert-assertions-to-query-params'>jn.convert-assertions-to-query-params</option>
<option value='latest'>latest</option>
<option value='live-loaders'>live-loaders</option>
<option value='main'>main</option>
<option value='mandar1jn/ci-repo-check'>mandar1jn/ci-repo-check</option>
<option value='markdoc-embed-prototyping'>markdoc-embed-prototyping</option>
<option value='markdown'>markdown</option>
<option value='markdown-poc'>markdown-poc</option>
<option value='mdx-path'>mdx-path</option>
<option value='mk/render-slot-template-backup'>mk/render-slot-template-backup</option>
<option value='move-default-md-code-component'>move-default-md-code-component</option>
<option value='mt/lit-DSD'>mt/lit-DSD</option>
<option value='mt/lit-regen'>mt/lit-regen</option>
<option value='mt/parse-DSD'>mt/parse-DSD</option>
<option value='mt/router_refactoring'>mt/router_refactoring</option>
<option value='nate/new-blog-template'>nate/new-blog-template</option>
<option value='netlify-1'>netlify-1</option>
<option value='netlify-preview'>netlify-preview</option>
<option value='new-adapter-api'>new-adapter-api</option>
<option value='next'>next</option>
<option value='next-render'>next-render</option>
<option value='no-more-vite-postprocess'>no-more-vite-postprocess</option>
<option value='no-more-vite-postprocess2'>no-more-vite-postprocess2</option>
<option value='old-build'>old-build</option>
<option value='plt-1006/unified-and-mdx'>plt-1006/unified-and-mdx</option>
<option value='plt-1768-trailing-slash-object'>plt-1768-trailing-slash-object</option>
<option value='preact-shared-signals'>preact-shared-signals</option>
<option value='process-env-override'>process-env-override</option>
<option value='progress-log'>progress-log</option>
<option value='re-export-drivers'>re-export-drivers</option>
<option value='react-fast-refresh'>react-fast-refresh</option>
<option value='redirects-priority2'>redirects-priority2</option>
<option value='redirects-ssg-object'>redirects-ssg-object</option>
<option value='refactor-how-client-directives-work'>refactor-how-client-directives-work</option>
<option value='refactor/image-internals'>refactor/image-internals</option>
<option value='refactor/markdoc-renderer'>refactor/markdoc-renderer</option>
<option value='refactor/rendere-queue'>refactor/rendere-queue</option>
<option value='refactor/sitemap'>refactor/sitemap</option>
<option value='refactor/ssr-size'>refactor/ssr-size</option>
<option value='release/0.17'>release/0.17</option>
<option value='release/0.18'>release/0.18</option>
<option value='remote-cdn-link'>remote-cdn-link</option>
<option value='remove-fs-abstraction'>remove-fs-abstraction</option>
<option value='remove-start'>remove-start</option>
<option value='restart-on-lock'>restart-on-lock</option>
<option value='revert-13008-renovate/all-minor-patch'>revert-13008-renovate/all-minor-patch</option>
<option value='revert-lockfile'>revert-lockfile</option>
<option value='route-manifest-adapter'>route-manifest-adapter</option>
<option value='sarah11918-image-errors'>sarah11918-image-errors</option>
<option value='sarah11918-patch-2'>sarah11918-patch-2</option>
<option value='sb-tests2'>sb-tests2</option>
<option value='seroval'>seroval</option>
<option value='server-islands-children'>server-islands-children</option>
<option value='session-docs'>session-docs</option>
<option value='single-file-build-2'>single-file-build-2</option>
<option value='slash-404-hint'>slash-404-hint</option>
<option value='slot-bug-1'>slot-bug-1</option>
<option value='solid-ecosystem-pkg'>solid-ecosystem-pkg</option>
<option value='spike/app-setup'>spike/app-setup</option>
<option value='spike/autonav'>spike/autonav</option>
<option value='spike/codehike'>spike/codehike</option>
<option value='spike/context'>spike/context</option>
<option value='spike/csr'>spike/csr</option>
<option value='spike/default-content'>spike/default-content</option>
<option value='spike/incremental'>spike/incremental</option>
<option value='spike/incremental-ii'>spike/incremental-ii</option>
<option value='spike/markdown-wasm'>spike/markdown-wasm</option>
<option value='spike/render'>spike/render</option>
<option value='spike/streaming'>spike/streaming</option>
<option value='spike/svg'>spike/svg</option>
<option value='sqlite-test'>sqlite-test</option>
<option value='squeal'>squeal</option>
<option value='ssr-redirect'>ssr-redirect</option>
<option value='stream-buffer'>stream-buffer</option>
<option value='streaming'>streaming</option>
<option value='telemetry-audit-1'>telemetry-audit-1</option>
<option value='test/new-integrations-demo'>test/new-integrations-demo</option>
<option value='test/new-ssr-demo'>test/new-ssr-demo</option>
<option value='top-level-exports-integrations'>top-level-exports-integrations</option>
<option value='ts-in-hoisted-script'>ts-in-hoisted-script</option>
<option value='ts-no-err'>ts-no-err</option>
<option value='upd-vite-vendored'>upd-vite-vendored</option>
<option value='upgrade-deps'>upgrade-deps</option>
<option value='v1-beta'>v1-beta</option>
<option value='vercel-test'>vercel-test</option>
<option value='vite-fork'>vite-fork</option>
<option value='vscode-astro-global'>vscode-astro-global</option>
<option value='vt-follow-redirects'>vt-follow-redirects</option>
<option value='warn-exp-flag'>warn-exp-flag</option>
<option value='win'>win</option>
<option value='windows-tests-beta'>windows-tests-beta</option>
<option value='wip-assets'>wip-assets</option>
<option value='wip-component-api-2'>wip-component-api-2</option>
<option value='wip-docs-components'>wip-docs-components</option>
<option value='wip-docs-reference-gen'>wip-docs-reference-gen</option>
<option value='wip-fetch-cache'>wip-fetch-cache</option>
<option value='wip-fun-flags'>wip-fun-flags</option>
<option value='wip-icons'>wip-icons</option>
<option value='wip-logging'>wip-logging</option>
<option value='wip-logging-saved'>wip-logging-saved</option>
<option value='wip-mdc'>wip-mdc</option>
<option value='wip-mdx-to-astro-js'>wip-mdx-to-astro-js</option>
<option value='wip-preview-command-integrations'>wip-preview-command-integrations</option>
<option value='wip-setup-content'>wip-setup-content</option>
<option value='wip-smoke'>wip-smoke</option>
<option value='wip-speed-up-markdown'>wip-speed-up-markdown</option>
<option value='wip-stage'>wip-stage</option>
<option value='wip/react-19-test'>wip/react-19-test</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>Unnamed repository; edit this file 'description' to name the repository.</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/ansg191/astro/about/?h=fix-s-island-fallback'>about</a><a href='/ansg191/astro/?h=fix-s-island-fallback'>summary</a><a href='/ansg191/astro/refs/?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9'>refs</a><a class='active' href='/ansg191/astro/log/packages/astro-prism?h=fix-s-island-fallback&amp;follow=1'>log</a><a href='/ansg191/astro/tree/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9'>tree</a><a href='/ansg191/astro/commit/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;follow=1'>commit</a><a href='/ansg191/astro/diff/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;follow=1'>diff</a></td><td class='form'><form class='right' method='get' action='/ansg191/astro/log/packages/astro-prism'>
<input type='hidden' name='h' value='fix-s-island-fallback'/><input type='hidden' name='id' value='2279053954742436a85208f7751ad9a5b60543f9'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/ansg191/astro/log/?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;follow=1'>root</a>/<a href='/ansg191/astro/log/packages?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;follow=1'>packages</a>/<a href='/ansg191/astro/log/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;follow=1'>astro-prism</a> (<a href='/ansg191/astro/log/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/ansg191/astro/log/packages/astro-prism?h=fix-s-island-fallback&amp;id=2279053954742436a85208f7751ad9a5b60543f9&amp;showmsg=1&amp;follow=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>
<tr><td><span title='2025-04-02 11:06:04 +0100'>2025-04-02</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/prefetch/index.ts?h=fix-s-island-fallback&amp;id=21e7e8077d6f0c9ad14fe1876d87bb445f5584b1&amp;follow=1'>feat: Add `eagerness` support for `prefetch()` (#13405)</a></td><td><img src='//www.gravatar.com/avatar/1e58f30942aa0d5f52c13cba5503f058?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Marocco2
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+40</span></td></tr>
<tr><td><span title='2025-04-02 11:09:13 +0200'>2025-04-02</span></td><td><a href='/ansg191/astro/commit/.github/workflows/check-merge.yml?h=fix-s-island-fallback&amp;id=b19cba5016007a23ff388b48d841077bf4cc3040&amp;follow=1'>chore(deps): update tj-actions/changed-files action to v46.0.3 (#13497)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-31 16:46:15 +0100'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=ddc98eb2add2836aef77541978629dcef6d712d6&amp;follow=1'>[ci] release (#13513)</a><span class='decoration'><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=astro@5.5.6'>astro@5.5.6</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/vue@5.0.9'>@astrojs/vue@5.0.9</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/svelte@7.0.9'>@astrojs/svelte@7.0.9</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/studio@0.1.6'>@astrojs/studio@0.1.6</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/solid-js@5.0.7'>@astrojs/solid-js@5.0.7</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/react@4.2.3'>@astrojs/react@4.2.3</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/preact@4.0.8'>@astrojs/preact@4.0.8</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/netlify@6.2.5'>@astrojs/netlify@6.2.5</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/mdx@4.2.3'>@astrojs/mdx@4.2.3</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/markdoc@0.13.3'>@astrojs/markdoc@0.13.3</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/db@0.14.10'>@astrojs/db@0.14.10</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/cloudflare@12.4.0'>@astrojs/cloudflare@12.4.0</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/alpinejs@0.4.5'>@astrojs/alpinejs@0.4.5</a></span></td><td><img src='//www.gravatar.com/avatar/baa603bdd57a23841094bcde4bbdc646?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Houston (Bot)
</td><td>54</td><td><span class='deletions'>-178</span>/<span class='insertions'>+238</span></td></tr>
<tr><td><span title='2025-03-31 23:18:20 +0900'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=ff9d69e3443c80059c54f6296d19f66bb068ead3&amp;follow=1'>fix: update `vite` to latest version (#13526)</a></td><td><img src='//www.gravatar.com/avatar/3a751227cb2729b04759cfd589e6e45e?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Junseong Park
</td><td>15</td><td><span class='deletions'>-101</span>/<span class='insertions'>+118</span></td></tr>
<tr><td><span title='2025-03-31 13:07:11 +0000'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/i18n-routing.test.js?h=fix-s-island-fallback&amp;id=b8645c18fcbc903d494c42b70d54ce66852810bc&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/ec336944c0a37861b5113fa6c01e3138?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>3</td><td><span class='deletions'>-4</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2025-03-31 14:06:15 +0100'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/i18n-routing.test.js?h=fix-s-island-fallback&amp;id=82cd5832860d70ea7524473ae927db0cc2682b12&amp;follow=1'>fix(i18n): return value from `preferredLocale` (#13524)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>5</td><td><span class='deletions'>-15</span>/<span class='insertions'>+51</span></td></tr>
<tr><td><span title='2025-03-31 14:48:38 +0200'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=32499c0acbb366b06fb1eeaf5d387b2309976f36&amp;follow=1'>chore(tailwind): delete integration (#13511)</a></td><td><img src='//www.gravatar.com/avatar/3ff80d2c1d7ff04824056e5101d0d7b2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Florian Lefebvre
</td><td>16</td><td><span class='deletions'>-1083</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-31 10:40:59 +0100'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=758523cc04c51cc4a0cd55fb7800552c9ff0a5fc&amp;follow=1'>fix(deps): update all non-major dependencies (#13521)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>14</td><td><span class='deletions'>-163</span>/<span class='insertions'>+163</span></td></tr>
<tr><td><span title='2025-03-31 09:06:33 +0000'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/packages/integrations/cloudflare/test/sessions.test.js?h=fix-s-island-fallback&amp;id=2f6c0a751484d48a26f8945a5e8a42ce3c6f9381&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/71481ca2303279eb4d7e2a0c0cbf188f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>3</td><td><span class='deletions'>-4</span>/<span class='insertions'>+3</span></td></tr>
<tr><td><span title='2025-03-31 10:05:44 +0100'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=a9aafec47a4d8a92c826663dca2f9850643651ec&amp;follow=1'>feat(cloudflare): add KV session storage support (#13514)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>19</td><td><span class='deletions'>-487</span>/<span class='insertions'>+490</span></td></tr>
<tr><td><span title='2025-03-31 09:29:32 +0100'>2025-03-31</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=19bd710ad5dd993628626ebd37f75d4d339b08a9&amp;follow=1'>fix(deps): update astro client runtimes (#13522)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>4</td><td><span class='deletions'>-6</span>/<span class='insertions'>+7</span></td></tr>
<tr><td><span title='2025-03-27 12:43:34 +0000'>2025-03-27</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=a5061d62e920a75b9764ed9aeb5f60e51046db32&amp;follow=1'>fix(deps): update astro dependencies (#13498)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>47</td><td><span class='deletions'>-412</span>/<span class='insertions'>+427</span></td></tr>
<tr><td><span title='2025-03-27 07:34:07 +0000'>2025-03-27</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/core/render-context.ts?h=fix-s-island-fallback&amp;id=718549174748c78bfd25d3b69dd2ba042f1d0158&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/ec336944c0a37861b5113fa6c01e3138?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>3</td><td><span class='deletions'>-8</span>/<span class='insertions'>+7</span></td></tr>
<tr><td><span title='2025-03-27 07:33:06 +0000'>2025-03-27</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/types/public/context.ts?h=fix-s-island-fallback&amp;id=06de673375f2339eb1bf8eda03d79177598979a9&amp;follow=1'>refactor(actions): use `Omit` to avoid leaking types to shared context (#13429)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>5</td><td><span class='deletions'>-11</span>/<span class='insertions'>+41</span></td></tr>
<tr><td><span title='2025-03-26 10:24:03 +0000'>2025-03-26</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=b33cc17f37b6f7bd1af06c9debcc8f7a7916eedc&amp;follow=1'>[ci] release (#13504)</a><span class='decoration'><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=astro@5.5.5'>astro@5.5.5</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/vue@5.0.8'>@astrojs/vue@5.0.8</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/tailwind@6.0.2'>@astrojs/tailwind@6.0.2</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/svelte@7.0.8'>@astrojs/svelte@7.0.8</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/studio@0.1.5'>@astrojs/studio@0.1.5</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/solid-js@5.0.6'>@astrojs/solid-js@5.0.6</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/react@4.2.2'>@astrojs/react@4.2.2</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/preact@4.0.7'>@astrojs/preact@4.0.7</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/netlify@6.2.4'>@astrojs/netlify@6.2.4</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/mdx@4.2.2'>@astrojs/mdx@4.2.2</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/markdoc@0.13.2'>@astrojs/markdoc@0.13.2</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/db@0.14.9'>@astrojs/db@0.14.9</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/cloudflare@12.3.1'>@astrojs/cloudflare@12.3.1</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/alpinejs@0.4.4'>@astrojs/alpinejs@0.4.4</a></span></td><td><img src='//www.gravatar.com/avatar/baa603bdd57a23841094bcde4bbdc646?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Houston (Bot)
</td><td>56</td><td><span class='deletions'>-132</span>/<span class='insertions'>+197</span></td></tr>
<tr><td><span title='2025-03-26 09:39:50 +0000'>2025-03-26</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/core/build/generate.ts?h=fix-s-island-fallback&amp;id=3488324f235a8f4af4b44dda438194f013910b14&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/f60fcd9bd4a49013cc40d285e96c4ca6?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Florian Lefebvre
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2025-03-26 10:38:50 +0100'>2025-03-26</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=5b14d33f81cdac0f7ac77186113dcce4369d848d&amp;follow=1'>fix(astro): dynamically import actions (#13510)</a></td><td><img src='//www.gravatar.com/avatar/3ff80d2c1d7ff04824056e5101d0d7b2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Florian Lefebvre
</td><td>12</td><td><span class='deletions'>-51</span>/<span class='insertions'>+96</span></td></tr>
<tr><td><span title='2025-03-26 09:04:25 +0000'>2025-03-26</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/units/cookies/get.test.js?h=fix-s-island-fallback&amp;id=e4f870b79a9656f973deeb2c0dcc6c4a7e173528&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/71481ca2303279eb4d7e2a0c0cbf188f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2025-03-26 09:03:33 +0000'>2025-03-26</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/units/cookies/get.test.js?h=fix-s-island-fallback&amp;id=018fbe90f4030bbc2b2db7589d750e5392f38e59&amp;follow=1'>fix: cache raw cookie value and decode when getting (#13485)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>3</td><td><span class='deletions'>-17</span>/<span class='insertions'>+37</span></td></tr>
<tr><td><span title='2025-03-25 15:28:05 +0000'>2025-03-25</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=a98ae5b8f5c33900379012e9e253a755c0a8927e&amp;follow=1'>fix: update vite (#13505)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>16</td><td><span class='deletions'>-104</span>/<span class='insertions'>+123</span></td></tr>
<tr><td><span title='2025-03-24 14:24:38 +0000'>2025-03-24</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/core/app/index.ts?h=fix-s-island-fallback&amp;id=70c95958e7567816ba8488880a439f2e5407b4c0&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/ec336944c0a37861b5113fa6c01e3138?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-24 14:23:37 +0000'>2025-03-24</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/middleware.test.js?h=fix-s-island-fallback&amp;id=fc2dcb83543d88af9e0920b90a035652d6db5166&amp;follow=1'>fix(app): call renderer when routes don't match (#13483)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>4</td><td><span class='deletions'>-1</span>/<span class='insertions'>+30</span></td></tr>
<tr><td><span title='2025-03-21 14:27:52 +0000'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=6b9020026fc0745143a5c5751a3d73f4ff05d136&amp;follow=1'>[ci] release (#13460)</a><span class='decoration'><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=astro@5.5.4'>astro@5.5.4</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/vercel@8.1.3'>@astrojs/vercel@8.1.3</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/tailwind@6.0.1'>@astrojs/tailwind@6.0.1</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/svelte@7.0.7'>@astrojs/svelte@7.0.7</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/preact@4.0.6'>@astrojs/preact@4.0.6</a><a class='tag-annotated-deco' href='/ansg191/astro/tag/?h=@astrojs/cloudflare@12.3.0'>@astrojs/cloudflare@12.3.0</a></span></td><td><img src='//www.gravatar.com/avatar/baa603bdd57a23841094bcde4bbdc646?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Houston (Bot)
</td><td>45</td><td><span class='deletions'>-118</span>/<span class='insertions'>+119</span></td></tr>
<tr><td><span title='2025-03-21 14:01:57 +0000'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/core/config/vite-load.ts?h=fix-s-island-fallback&amp;id=8b5e4dc733bccce7d77defdbb973204aa9b8126b&amp;follow=1'>fix: better error handling on Stackblitz (#13484)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>2</td><td><span class='deletions'>-0</span>/<span class='insertions'>+12</span></td></tr>
<tr><td><span title='2025-03-21 13:46:37 +0100'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/runtime/server/render/server-islands.ts?h=fix-s-island-fallback&amp;id=e9e9245c7c0ad6e3bda2b7600ff2bd845921a19d&amp;follow=1'>Repair server islands to work with client router (#13481)</a></td><td><img src='//www.gravatar.com/avatar/e291ce94117cd7ba425e058292300ec6?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Martin Trapp
</td><td>2</td><td><span class='deletions'>-6</span>/<span class='insertions'>+11</span></td></tr>
<tr><td><span title='2025-03-21 10:48:15 +0000'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/packages/integrations/vercel/test/redirects.test.js?h=fix-s-island-fallback&amp;id=12cc4d88f216ba3f684ddffb33d117baa7197726&amp;follow=1'>fix: generate correct external redirects (#13480)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>3</td><td><span class='deletions'>-4</span>/<span class='insertions'>+21</span></td></tr>
<tr><td><span title='2025-03-21 10:35:17 +0000'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=9a0808cf18172f14fd6ddaa77eecf74093767348&amp;follow=1'>fix(deps): update all non-major dependencies (#13440)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>24</td><td><span class='deletions'>-435</span>/<span class='insertions'>+436</span></td></tr>
<tr><td><span title='2025-03-21 10:03:15 +0000'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/packages/integrations/cloudflare/src/entrypoints/server.ts?h=fix-s-island-fallback&amp;id=b67e9830525a1eb5968e9266e521134c663ffa4b&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/f60fcd9bd4a49013cc40d285e96c4ca6?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Florian Lefebvre
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2025-03-21 11:02:21 +0100'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=9721f4a69f0fca389f146a5b8051cc17a34cdb0f&amp;follow=1'>feat(cloudflare): global env (#13444)</a></td><td><img src='//www.gravatar.com/avatar/3ff80d2c1d7ff04824056e5101d0d7b2?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Florian Lefebvre
</td><td>6</td><td><span class='deletions'>-47</span>/<span class='insertions'>+130</span></td></tr>
<tr><td><span title='2025-03-21 09:57:20 +0100'>2025-03-21</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=3bc2c094c995c47bd3e1e0e046e60db45de7a02c&amp;follow=1'>fix(deps): update astro client runtimes (#13474)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>7</td><td><span class='deletions'>-345</span>/<span class='insertions'>+348</span></td></tr>
<tr><td><span title='2025-03-20 14:45:27 +0100'>2025-03-20</span></td><td><a href='/ansg191/astro/commit/packages/integrations/tailwind/README.md?h=fix-s-island-fallback&amp;id=f49155f5a636300888373e4b201709407eb360b7&amp;follow=1'>Small change to linking style (#13472)</a></td><td><img src='//www.gravatar.com/avatar/5f38a37eed5c2703f68e8b38b8622bda?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris Swithinbank
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-20 09:27:58 -0300'>2025-03-20</span></td><td><a href='/ansg191/astro/commit/packages/integrations/tailwind/README.md?h=fix-s-island-fallback&amp;id=020c54247909fadc2c80c89b226ba59565d12cbf&amp;follow=1'>Add deprecation notice to Tailwind integration README (#13471)</a></td><td><img src='//www.gravatar.com/avatar/5f38a37eed5c2703f68e8b38b8622bda?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Chris Swithinbank
</td><td>2</td><td><span class='deletions'>-6</span>/<span class='insertions'>+11</span></td></tr>
<tr><td><span title='2025-03-20 11:43:53 +0000'>2025-03-20</span></td><td><a href='/ansg191/astro/commit/packages/integrations/svelte/client.svelte.js?h=fix-s-island-fallback&amp;id=baa6265095ba375404382e9aeecf327dd186caf0&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/71481ca2303279eb4d7e2a0c0cbf188f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-20 11:43:04 +0000'>2025-03-20</span></td><td><a href='/ansg191/astro/commit/packages/integrations/svelte/client.svelte.js?h=fix-s-island-fallback&amp;id=ecadb6b02e942feccf584547fe9c14d3d1e21ba6&amp;follow=1'>fix(preact,svelte): empty target container before rendering `client:only` isl...</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>5</td><td><span class='deletions'>-5</span>/<span class='insertions'>+41</span></td></tr>
<tr><td><span title='2025-03-20 08:39:05 +0000'>2025-03-20</span></td><td><a href='/ansg191/astro/commit/.github/renovate.json5?h=fix-s-island-fallback&amp;id=62595a00c6d8a24f587abce6a9c7cff6e9f1da68&amp;follow=1'>chore(renovate): group updates (#13466)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>1</td><td><span class='deletions'>-11</span>/<span class='insertions'>+58</span></td></tr>
<tr><td><span title='2025-03-19 13:55:19 +0000'>2025-03-19</span></td><td><a href='/ansg191/astro/commit/packages/integrations/cloudflare/test/with-base-path.js?h=fix-s-island-fallback&amp;id=e26938ba94c6e81621ce715c557bd26e2e89d951&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/71481ca2303279eb4d7e2a0c0cbf188f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>1</td><td><span class='deletions'>-3</span>/<span class='insertions'>+2</span></td></tr>
<tr><td><span title='2025-03-19 13:54:21 +0000'>2025-03-19</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=d5ad591230918db302edc89c1a98436c16a4e0d2&amp;follow=1'>fix: don't attempt to move files after build with base (#13463)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>8</td><td><span class='deletions'>-13</span>/<span class='insertions'>+66</span></td></tr>
<tr><td><span title='2025-03-19 12:30:19 +0000'>2025-03-19</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/vite-plugin-astro-server/response.ts?h=fix-s-island-fallback&amp;id=53abc9d4c8a63a4cfb4c682ed8a3e265cc87561e&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/ec336944c0a37861b5113fa6c01e3138?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>2</td><td><span class='deletions'>-6</span>/<span class='insertions'>+18</span></td></tr>
<tr><td><span title='2025-03-19 12:29:29 +0000'>2025-03-19</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/redirects.test.js?h=fix-s-island-fallback&amp;id=d80ba2b27d33d2972ffa3242330fb00d0fc58ba9&amp;follow=1'>fix(routing): don't add site to static redirects (#13447)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>7</td><td><span class='deletions'>-10</span>/<span class='insertions'>+49</span></td></tr>
<tr><td><span title='2025-03-18 16:58:45 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/custom-500.test.js?h=fix-s-island-fallback&amp;id=b3d445f5148c2492434b4163d6be4b22e027294e&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/71481ca2303279eb4d7e2a0c0cbf188f?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>2</td><td><span class='deletions'>-2</span>/<span class='insertions'>+1</span></td></tr>
<tr><td><span title='2025-03-18 16:57:51 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/packages/astro/test/custom-500.test.js?h=fix-s-island-fallback&amp;id=968e713c268e1b2176c9265b6c438c56105c2730&amp;follow=1'>fix: set correct statusText for custom error pages (#13457)</a></td><td><img src='//www.gravatar.com/avatar/616891f0743c4864e5b2513508a0ca46?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Matt Kane
</td><td>4</td><td><span class='deletions'>-2</span>/<span class='insertions'>+19</span></td></tr>
<tr><td><span title='2025-03-18 16:42:32 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/.github/workflows/test-hosts.yml?h=fix-s-island-fallback&amp;id=5fe5c4c7e65cc7b5b5cd90bbb813ed8e78dc8e16&amp;follow=1'>chore(deps): update github-actions (#13459)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>9</td><td><span class='deletions'>-13</span>/<span class='insertions'>+13</span></td></tr>
<tr><td><span title='2025-03-18 15:43:03 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/.github/workflows/check-merge.yml?h=fix-s-island-fallback&amp;id=64c8d673c356408c97d281ad3d93348db2a45797&amp;follow=1'>chore(deps): update github-actions (#13458)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>1</td><td><span class='deletions'>-5</span>/<span class='insertions'>+5</span></td></tr>
<tr><td><span title='2025-03-18 15:32:00 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/packages/astro/src/core/cookies/cookies.ts?h=fix-s-island-fallback&amp;id=5339f1780fc1a10452fb8005fea0124ddd699d37&amp;follow=1'>[ci] format</a></td><td><img src='//www.gravatar.com/avatar/ec336944c0a37861b5113fa6c01e3138?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>1</td><td><span class='deletions'>-1</span>/<span class='insertions'>+3</span></td></tr>
<tr><td><span title='2025-03-18 15:31:03 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=c69bf18a4e268b196ab1cf0f371df296e7cdf358&amp;follow=1'>chore: remove deprecated package (#13455)</a></td><td><img src='//www.gravatar.com/avatar/c689b0e2ddfdfc7f0635e53fb43fd5b7?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> Emanuele Stoppa
</td><td>3</td><td><span class='deletions'>-23</span>/<span class='insertions'>+16</span></td></tr>
<tr><td><span title='2025-03-18 15:29:24 +0000'>2025-03-18</span></td><td><a href='/ansg191/astro/commit/pnpm-lock.yaml?h=fix-s-island-fallback&amp;id=841f5778c645be7d936251d5a4715f2521db666c&amp;follow=1'>fix(deps): update dependency miniflare to v4 (#13441)</a></td><td><img src='//www.gravatar.com/avatar/8555d8629c2fc48c5a5a2280a4715590?s=13&amp;d=retro' width='13' height='13' alt='Gravatar' /> renovate[bot]
</td><td>2</td><td><span class='deletions'>-31</span>/<span class='insertions'>+31</span></td></tr>
