diff --git a/.github/workflows/hanging-process.yml b/.github/workflows/hanging-process.yml
new file mode 100644
index 000000000..f3e80eed0
--- /dev/null
+++ b/.github/workflows/hanging-process.yml
@@ -0,0 +1,41 @@
+# This is a GitHub Actions workflow file that runs the vitest-hanging-process
+# tests in various nodejs versions.
+
+name: hanging-process
+
+on:
+ workflow_dispatch:
+ pull_request:
+
+jobs:
+ test:
+ name: Test on Node.js Version ${{ matrix.node-version }}
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ working-directory: packages/vitest-hanging-process
+
+ strategy:
+ matrix:
+ node-version: [18, 19, 20, 21, 22, 23]
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v2
+ with:
+ node-version: ${{ matrix.node-version }}
+
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v3
+
+ - name: Install dependencies
+ run: pnpm install
+
+ - name: Build package/cloudflare
+ working-directory: packages/cloudflare
+ run: pnpm build
+
+ - name: Run tests for hanging process
+ run: pnpm test:hanging-process
diff --git a/.tool-versions b/.tool-versions
new file mode 100644
index 000000000..db7ffc58e
--- /dev/null
+++ b/.tool-versions
@@ -0,0 +1,3 @@
+pnpm 9.13.2
+act 0.2.69
+just 1.36.0
diff --git a/justfile b/justfile
new file mode 100644
index 000000000..a99f07410
--- /dev/null
+++ b/justfile
@@ -0,0 +1,5 @@
+default:
+ @just --choose
+
+test-workflow:
+ act --workflows .github/workflows/hanging-process.yml
diff --git a/packages/vitest-hanging-process/.gitignore b/packages/vitest-hanging-process/.gitignore
new file mode 100644
index 000000000..16d54bb13
--- /dev/null
+++ b/packages/vitest-hanging-process/.gitignore
@@ -0,0 +1,24 @@
+# build output
+dist/
+# generated types
+.astro/
+
+# dependencies
+node_modules/
+
+# logs
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+
+# environment variables
+.env
+.env.production
+
+# macOS-specific files
+.DS_Store
+
+# jetbrains setting folder
+.idea/
diff --git a/packages/vitest-hanging-process/.tool-versions b/packages/vitest-hanging-process/.tool-versions
new file mode 100644
index 000000000..350a87282
--- /dev/null
+++ b/packages/vitest-hanging-process/.tool-versions
@@ -0,0 +1 @@
+act 0.2.69
diff --git a/packages/vitest-hanging-process/.vscode/extensions.json b/packages/vitest-hanging-process/.vscode/extensions.json
new file mode 100644
index 000000000..22a15055d
--- /dev/null
+++ b/packages/vitest-hanging-process/.vscode/extensions.json
@@ -0,0 +1,4 @@
+{
+ "recommendations": ["astro-build.astro-vscode"],
+ "unwantedRecommendations": []
+}
diff --git a/packages/vitest-hanging-process/.vscode/launch.json b/packages/vitest-hanging-process/.vscode/launch.json
new file mode 100644
index 000000000..d64220976
--- /dev/null
+++ b/packages/vitest-hanging-process/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "command": "./node_modules/.bin/astro dev",
+ "name": "Development server",
+ "request": "launch",
+ "type": "node-terminal"
+ }
+ ]
+}
diff --git a/packages/vitest-hanging-process/README.md b/packages/vitest-hanging-process/README.md
new file mode 100644
index 000000000..e34a99b44
--- /dev/null
+++ b/packages/vitest-hanging-process/README.md
@@ -0,0 +1,47 @@
+# Astro Starter Kit: Minimal
+
+```sh
+npm create astro@latest -- --template minimal
+```
+
+[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/minimal)
+[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/minimal)
+[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/minimal/devcontainer.json)
+
+> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
+
+## 🚀 Project Structure
+
+Inside of your Astro project, you'll see the following folders and files:
+
+```text
+/
+├── public/
+├── src/
+│ └── pages/
+│ └── index.astro
+└── package.json
+```
+
+Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name.
+
+There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.
+
+Any static assets, like images, can be placed in the `public/` directory.
+
+## 🧞 Commands
+
+All commands are run from the root of the project, from a terminal:
+
+| Command | Action |
+| :------------------------ | :----------------------------------------------- |
+| `npm install` | Installs dependencies |
+| `npm run dev` | Starts local dev server at `localhost:4321` |
+| `npm run build` | Build your production site to `./dist/` |
+| `npm run preview` | Preview your build locally, before deploying |
+| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
+| `npm run astro -- --help` | Get help using the Astro CLI |
+
+## 👀 Want to learn more?
+
+Feel free to check [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat).
diff --git a/packages/vitest-hanging-process/astro.config.mjs b/packages/vitest-hanging-process/astro.config.mjs
new file mode 100644
index 000000000..fc681bfc3
--- /dev/null
+++ b/packages/vitest-hanging-process/astro.config.mjs
@@ -0,0 +1,10 @@
+// @ts-check
+import { defineConfig } from 'astro/config';
+
+import cloudflare from '@astrojs/cloudflare';
+
+// https://astro.build/config
+export default defineConfig({
+ output: 'server',
+ adapter: cloudflare()
+});
\ No newline at end of file
diff --git a/packages/vitest-hanging-process/package.json b/packages/vitest-hanging-process/package.json
new file mode 100644
index 000000000..27aa333a2
--- /dev/null
+++ b/packages/vitest-hanging-process/package.json
@@ -0,0 +1,23 @@
+{
+ "name": "Astro Vitest with Cloudflare adapter hanging process",
+ "type": "module",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "astro dev",
+ "start": "astro dev",
+ "build": "astro check && astro build",
+ "preview": "astro preview",
+ "astro": "astro",
+ "test": "vitest run",
+ "test:hanging-process": "vitest run --reporter=hanging-process"
+ },
+ "dependencies": {
+ "@astrojs/check": "^0.9.4",
+ "@astrojs/cloudflare": "workspace:^11.2.0",
+ "astro": "^4.16.12",
+ "typescript": "^5.6.3"
+ },
+ "devDependencies": {
+ "vitest": "^2.1.5"
+ }
+}
diff --git a/packages/vitest-hanging-process/public/favicon.svg b/packages/vitest-hanging-process/public/favicon.svg
new file mode 100644
index 000000000..f157bd1c5
--- /dev/null
+++ b/packages/vitest-hanging-process/public/favicon.svg
@@ -0,0 +1,9 @@
+
diff --git a/packages/vitest-hanging-process/src/env.d.ts b/packages/vitest-hanging-process/src/env.d.ts
new file mode 100644
index 000000000..e16c13c69
--- /dev/null
+++ b/packages/vitest-hanging-process/src/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/packages/vitest-hanging-process/src/pages/index.astro b/packages/vitest-hanging-process/src/pages/index.astro
new file mode 100644
index 000000000..2d1410736
--- /dev/null
+++ b/packages/vitest-hanging-process/src/pages/index.astro
@@ -0,0 +1,16 @@
+---
+
+---
+
+
+
+
+
+
+
+ Astro
+
+
+ Astro
+
+
diff --git a/packages/vitest-hanging-process/tsconfig.json b/packages/vitest-hanging-process/tsconfig.json
new file mode 100644
index 000000000..bcbf8b509
--- /dev/null
+++ b/packages/vitest-hanging-process/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "astro/tsconfigs/strict"
+}
diff --git a/packages/vitest-hanging-process/vitest.config.ts b/packages/vitest-hanging-process/vitest.config.ts
new file mode 100644
index 000000000..5527cfddf
--- /dev/null
+++ b/packages/vitest-hanging-process/vitest.config.ts
@@ -0,0 +1,8 @@
+///
+import { getViteConfig } from 'astro/config';
+
+export default getViteConfig({
+ test: {
+ // Vitest configuration options
+ },
+});
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 73e3f57ce..13ecd0476 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -711,6 +711,25 @@ importers:
specifier: ^4.16.8
version: 4.16.8(@types/node@22.4.1)(rollup@4.24.3)(typescript@5.6.3)
+ packages/vitest-hanging-process:
+ dependencies:
+ '@astrojs/check':
+ specifier: ^0.9.4
+ version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.3)
+ '@astrojs/cloudflare':
+ specifier: workspace:^11.2.0
+ version: link:../cloudflare
+ astro:
+ specifier: ^4.16.12
+ version: 4.16.12(@types/node@22.4.1)(rollup@4.24.3)(typescript@5.6.3)
+ typescript:
+ specifier: ^5.6.3
+ version: 5.6.3
+ devDependencies:
+ vitest:
+ specifier: ^2.1.5
+ version: 2.1.5(@types/node@22.4.1)
+
scripts:
dependencies:
tiny-glob:
@@ -2009,6 +2028,35 @@ packages:
engines: {node: '>=16'}
hasBin: true
+ '@vitest/expect@2.1.5':
+ resolution: {integrity: sha512-nZSBTW1XIdpZvEJyoP/Sy8fUg0b8od7ZpGDkTUcfJ7wz/VoZAFzFfLyxVxGFhUjJzhYqSbIpfMtl/+k/dpWa3Q==}
+
+ '@vitest/mocker@2.1.5':
+ resolution: {integrity: sha512-XYW6l3UuBmitWqSUXTNXcVBUCRytDogBsWuNXQijc00dtnU/9OqpXWp4OJroVrad/gLIomAq9aW8yWDBtMthhQ==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@2.1.5':
+ resolution: {integrity: sha512-4ZOwtk2bqG5Y6xRGHcveZVr+6txkH7M2e+nPFd6guSoN638v/1XQ0K06eOpi0ptVU/2tW/pIU4IoPotY/GZ9fw==}
+
+ '@vitest/runner@2.1.5':
+ resolution: {integrity: sha512-pKHKy3uaUdh7X6p1pxOkgkVAFW7r2I818vHDthYLvUyjRfkKOU6P45PztOch4DZarWQne+VOaIMwA/erSSpB9g==}
+
+ '@vitest/snapshot@2.1.5':
+ resolution: {integrity: sha512-zmYw47mhfdfnYbuhkQvkkzYroXUumrwWDGlMjpdUr4jBd3HZiV2w7CQHj+z7AAS4VOtWxI4Zt4bWt4/sKcoIjg==}
+
+ '@vitest/spy@2.1.5':
+ resolution: {integrity: sha512-aWZF3P0r3w6DiYTVskOYuhBc7EMc3jvn1TkBg8ttylFFRqNN2XGD7V5a4aQdk6QiUzZQ4klNBSpCLJgWNdIiNw==}
+
+ '@vitest/utils@2.1.5':
+ resolution: {integrity: sha512-yfj6Yrp0Vesw2cwJbP+cl04OC+IHFsuQsrsJBL9pyGeQXE56v1UAOQco+SR55Vf1nQzfV0QJg1Qum7AaWUwwYg==}
+
'@volar/kit@2.4.6':
resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==}
peerDependencies:
@@ -2129,6 +2177,10 @@ packages:
as-table@1.0.55:
resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+
ast-types@0.16.1:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: '>=4'}
@@ -2138,6 +2190,11 @@ packages:
peerDependencies:
astro: ^4.12.0
+ astro@4.16.12:
+ resolution: {integrity: sha512-NnFeIKhGW6MdXCQT2hRariUwfxqJUIRs6qKqaovaQkTojzxh2r1L8C49qanKc+huH9wK2C94VZB2T/tosyRl1A==}
+ engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
+ hasBin: true
+
astro@4.16.8:
resolution: {integrity: sha512-BRWFP0UQ8gkOr90KQW7oooedtgCk/j91pyv1WQUmgZwMUZk/v0HJRiddAZgvGCECOnmZFc9ZqRZnBsAMUgApNQ==}
engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -2213,6 +2270,10 @@ packages:
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
engines: {node: '>= 0.8'}
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
+
call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -2234,6 +2295,10 @@ packages:
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+ chai@5.1.2:
+ resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
+ engines: {node: '>=12'}
+
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -2254,6 +2319,10 @@ packages:
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
+ check-error@2.1.1:
+ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+ engines: {node: '>= 16'}
+
cheerio-select@2.1.0:
resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==}
@@ -2415,6 +2484,10 @@ packages:
decode-named-character-reference@1.0.2:
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
+ deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+ engines: {node: '>=6'}
+
deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
@@ -2665,6 +2738,10 @@ packages:
resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==}
engines: {node: '>=6'}
+ expect-type@1.1.0:
+ resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==}
+ engines: {node: '>=12.0.0'}
+
express@4.21.1:
resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==}
engines: {node: '>= 0.10.0'}
@@ -3154,6 +3231,9 @@ packages:
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
+ loupe@3.1.2:
+ resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+
lru-cache@4.1.5:
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
@@ -3516,6 +3596,10 @@ packages:
resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==}
engines: {node: '>=18'}
+ ora@8.1.1:
+ resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==}
+ engines: {node: '>=18'}
+
os-tmpdir@1.0.2:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
@@ -3621,6 +3705,10 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ pathval@2.0.0:
+ resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+ engines: {node: '>= 14.16'}
+
picocolors@1.1.0:
resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
@@ -3959,6 +4047,9 @@ packages:
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
engines: {node: '>= 0.4'}
+ siginfo@2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -4005,6 +4096,9 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
stacktracey@2.1.8:
resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==}
@@ -4012,6 +4106,9 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
+ std-env@3.8.0:
+ resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==}
+
stdin-discarder@0.2.2:
resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==}
engines: {node: '>=18'}
@@ -4090,9 +4187,24 @@ packages:
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
tinyexec@0.3.1:
resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==}
+ tinypool@1.0.2:
+ resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
+ tinyrainbow@1.2.0:
+ resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
+ engines: {node: '>=14.0.0'}
+
+ tinyspy@3.0.2:
+ resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
+ engines: {node: '>=14.0.0'}
+
tmp@0.0.33:
resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==}
engines: {node: '>=0.6.0'}
@@ -4292,6 +4404,11 @@ packages:
vfile@6.0.3:
resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+ vite-node@2.1.5:
+ resolution: {integrity: sha512-rd0QIgx74q4S1Rd56XIiL2cYEdyWn13cunYBIuqh9mpmQr7gGS0IxXoP8R6OaZtNQQLyXSWbd4rXKYUbhFpK5w==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+
vite-plugin-solid@2.10.2:
resolution: {integrity: sha512-AOEtwMe2baBSXMXdo+BUwECC8IFHcKS6WQV/1NEd+Q7vHPap5fmIhLcAzr+DUJ04/KHx/1UBU0l1/GWP+rMAPQ==}
peerDependencies:
@@ -4349,6 +4466,31 @@ packages:
vite:
optional: true
+ vitest@2.1.5:
+ resolution: {integrity: sha512-P4ljsdpuzRTPI/kbND2sDZ4VmieerR2c9szEZpjc+98Z9ebvnXmM5+0tHEKqYZumXqlvnmfWsjeFOjXVriDG7A==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 2.1.5
+ '@vitest/ui': 2.1.5
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
volar-service-css@0.0.61:
resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==}
peerDependencies:
@@ -4499,6 +4641,11 @@ packages:
engines: {node: '>= 8'}
hasBin: true
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+ engines: {node: '>=8'}
+ hasBin: true
+
wide-align@1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
@@ -5986,6 +6133,46 @@ snapshots:
- encoding
- supports-color
+ '@vitest/expect@2.1.5':
+ dependencies:
+ '@vitest/spy': 2.1.5
+ '@vitest/utils': 2.1.5
+ chai: 5.1.2
+ tinyrainbow: 1.2.0
+
+ '@vitest/mocker@2.1.5(vite@5.4.10(@types/node@22.4.1))':
+ dependencies:
+ '@vitest/spy': 2.1.5
+ estree-walker: 3.0.3
+ magic-string: 0.30.12
+ optionalDependencies:
+ vite: 5.4.10(@types/node@22.4.1)
+
+ '@vitest/pretty-format@2.1.5':
+ dependencies:
+ tinyrainbow: 1.2.0
+
+ '@vitest/runner@2.1.5':
+ dependencies:
+ '@vitest/utils': 2.1.5
+ pathe: 1.1.2
+
+ '@vitest/snapshot@2.1.5':
+ dependencies:
+ '@vitest/pretty-format': 2.1.5
+ magic-string: 0.30.12
+ pathe: 1.1.2
+
+ '@vitest/spy@2.1.5':
+ dependencies:
+ tinyspy: 3.0.2
+
+ '@vitest/utils@2.1.5':
+ dependencies:
+ '@vitest/pretty-format': 2.1.5
+ loupe: 3.1.2
+ tinyrainbow: 1.2.0
+
'@volar/kit@2.4.6(typescript@5.6.3)':
dependencies:
'@volar/language-service': 2.4.6
@@ -6121,6 +6308,8 @@ snapshots:
dependencies:
printable-characters: 1.0.42
+ assertion-error@2.0.1: {}
+
ast-types@0.16.1:
dependencies:
tslib: 2.6.2
@@ -6131,6 +6320,85 @@ snapshots:
pathe: 1.1.2
recast: 0.23.9
+ astro@4.16.12(@types/node@22.4.1)(rollup@4.24.3)(typescript@5.6.3):
+ dependencies:
+ '@astrojs/compiler': 2.10.3
+ '@astrojs/internal-helpers': 0.4.1
+ '@astrojs/markdown-remark': 5.3.0
+ '@astrojs/telemetry': 3.1.0
+ '@babel/core': 7.26.0
+ '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0)
+ '@babel/types': 7.26.0
+ '@oslojs/encoding': 1.1.0
+ '@rollup/pluginutils': 5.1.3(rollup@4.24.3)
+ '@types/babel__core': 7.20.5
+ '@types/cookie': 0.6.0
+ acorn: 8.14.0
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ boxen: 8.0.1
+ ci-info: 4.0.0
+ clsx: 2.1.1
+ common-ancestor-path: 1.0.1
+ cookie: 0.7.2
+ cssesc: 3.0.0
+ debug: 4.3.7
+ deterministic-object-hash: 2.0.2
+ devalue: 5.1.1
+ diff: 5.2.0
+ dlv: 1.1.3
+ dset: 3.1.4
+ es-module-lexer: 1.5.4
+ esbuild: 0.21.5
+ estree-walker: 3.0.3
+ fast-glob: 3.3.2
+ flattie: 1.1.1
+ github-slugger: 2.0.0
+ gray-matter: 4.0.3
+ html-escaper: 3.0.3
+ http-cache-semantics: 4.1.1
+ js-yaml: 4.1.0
+ kleur: 4.1.5
+ magic-string: 0.30.12
+ magicast: 0.3.5
+ micromatch: 4.0.8
+ mrmime: 2.0.0
+ neotraverse: 0.6.18
+ ora: 8.1.1
+ p-limit: 6.1.0
+ p-queue: 8.0.1
+ preferred-pm: 4.0.0
+ prompts: 2.4.2
+ rehype: 13.0.2
+ semver: 7.6.3
+ shiki: 1.22.2
+ tinyexec: 0.3.1
+ tsconfck: 3.1.4(typescript@5.6.3)
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+ vite: 5.4.10(@types/node@22.4.1)
+ vitefu: 1.0.3(vite@5.4.10(@types/node@22.4.1))
+ which-pm: 3.0.0
+ xxhash-wasm: 1.0.2
+ yargs-parser: 21.1.1
+ zod: 3.23.8
+ zod-to-json-schema: 3.23.5(zod@3.23.8)
+ zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8)
+ optionalDependencies:
+ sharp: 0.33.5
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - rollup
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+ - typescript
+
astro@4.16.8(@types/node@18.19.62)(rollup@4.24.3)(typescript@5.6.3):
dependencies:
'@astrojs/compiler': 2.10.3
@@ -6456,6 +6724,8 @@ snapshots:
bytes@3.1.2: {}
+ cac@6.7.14: {}
+
call-bind@1.0.7:
dependencies:
es-define-property: 1.0.0
@@ -6479,6 +6749,14 @@ snapshots:
ccount@2.0.1: {}
+ chai@5.1.2:
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.1.2
+ pathval: 2.0.0
+
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -6494,6 +6772,8 @@ snapshots:
chardet@0.7.0: {}
+ check-error@2.1.1: {}
+
cheerio-select@2.1.0:
dependencies:
boolbase: 1.0.0
@@ -6645,6 +6925,8 @@ snapshots:
dependencies:
character-entities: 2.0.2
+ deep-eql@5.0.2: {}
+
deep-is@0.1.4: {}
define-data-property@1.1.4:
@@ -6926,6 +7208,8 @@ snapshots:
exit-hook@2.2.1: {}
+ expect-type@1.1.0: {}
+
express@4.21.1:
dependencies:
accepts: 1.3.8
@@ -7465,6 +7749,8 @@ snapshots:
longest-streak@3.1.0: {}
+ loupe@3.1.2: {}
+
lru-cache@4.1.5:
dependencies:
pseudomap: 1.0.2
@@ -8001,6 +8287,18 @@ snapshots:
string-width: 7.2.0
strip-ansi: 7.1.0
+ ora@8.1.1:
+ dependencies:
+ chalk: 5.3.0
+ cli-cursor: 5.0.0
+ cli-spinners: 2.9.2
+ is-interactive: 2.0.0
+ is-unicode-supported: 2.0.0
+ log-symbols: 6.0.0
+ stdin-discarder: 0.2.2
+ string-width: 7.2.0
+ strip-ansi: 7.1.0
+
os-tmpdir@1.0.2: {}
outdent@0.5.0: {}
@@ -8090,6 +8388,8 @@ snapshots:
pathe@1.1.2: {}
+ pathval@2.0.0: {}
+
picocolors@1.1.0: {}
picomatch@2.3.1: {}
@@ -8549,6 +8849,8 @@ snapshots:
get-intrinsic: 1.2.4
object-inspect: 1.13.2
+ siginfo@2.0.0: {}
+
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@@ -8591,6 +8893,8 @@ snapshots:
sprintf-js@1.0.3: {}
+ stackback@0.0.2: {}
+
stacktracey@2.1.8:
dependencies:
as-table: 1.0.55
@@ -8598,6 +8902,8 @@ snapshots:
statuses@2.0.1: {}
+ std-env@3.8.0: {}
+
stdin-discarder@0.2.2: {}
stoppable@1.1.0: {}
@@ -8674,8 +8980,16 @@ snapshots:
tiny-invariant@1.3.3: {}
+ tinybench@2.9.0: {}
+
tinyexec@0.3.1: {}
+ tinypool@1.0.2: {}
+
+ tinyrainbow@1.2.0: {}
+
+ tinyspy@3.0.2: {}
+
tmp@0.0.33:
dependencies:
os-tmpdir: 1.0.2
@@ -8869,6 +9183,24 @@ snapshots:
'@types/unist': 3.0.2
vfile-message: 4.0.2
+ vite-node@2.1.5(@types/node@22.4.1):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.3.7
+ es-module-lexer: 1.5.4
+ pathe: 1.1.2
+ vite: 5.4.10(@types/node@22.4.1)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
vite-plugin-solid@2.10.2(solid-js@1.9.3)(vite@5.4.10(@types/node@22.4.1)):
dependencies:
'@babel/core': 7.26.0
@@ -8925,6 +9257,41 @@ snapshots:
optionalDependencies:
vite: 5.4.10(@types/node@22.4.1)
+ vitest@2.1.5(@types/node@22.4.1):
+ dependencies:
+ '@vitest/expect': 2.1.5
+ '@vitest/mocker': 2.1.5(vite@5.4.10(@types/node@22.4.1))
+ '@vitest/pretty-format': 2.1.5
+ '@vitest/runner': 2.1.5
+ '@vitest/snapshot': 2.1.5
+ '@vitest/spy': 2.1.5
+ '@vitest/utils': 2.1.5
+ chai: 5.1.2
+ debug: 4.3.7
+ expect-type: 1.1.0
+ magic-string: 0.30.12
+ pathe: 1.1.2
+ std-env: 3.8.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.1
+ tinypool: 1.0.2
+ tinyrainbow: 1.2.0
+ vite: 5.4.10(@types/node@22.4.1)
+ vite-node: 2.1.5(@types/node@22.4.1)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@types/node': 22.4.1
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
volar-service-css@0.0.61(@volar/language-service@2.4.6):
dependencies:
vscode-css-languageservice: 6.3.0
@@ -9070,6 +9437,11 @@ snapshots:
dependencies:
isexe: 2.0.0
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
wide-align@1.1.5:
dependencies:
string-width: 4.2.3