Compare commits

...

9 commits

Author SHA1 Message Date
Ayo
2b5f45153e chore: release v1.0.0
Some checks failed
Demo / Explore-CI (push) Has been cancelled
2026-05-15 20:30:11 +02:00
Ayo
c7746357e4 feat: add public assets (recursive) on static output
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-05-15 20:27:42 +02:00
Ayo
c4bd0ae0b8 chore: add demo-static workspace
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-05-15 20:27:02 +02:00
Ayo
6a5846b910 chore: make demo ssr output
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-05-15 20:26:17 +02:00
Ayo
cbe210855e chore: add new demo-static
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-05-15 20:25:36 +02:00
Ayo
c6ba991d12 chore: add build:demo monorepo script
Some checks failed
Demo / Explore-CI (push) Has been cancelled
2026-04-06 13:18:40 +02:00
Ayo
f1ea017918 chore: release v0.10.1
Some checks failed
Demo / Explore-CI (push) Has been cancelled
2026-04-05 23:06:15 +02:00
Ayo
cf4a0ff10a chore(deps): move bumpp to devdep
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-04-05 23:06:01 +02:00
Ayo
45b85d29c6 chore: add bump script
Some checks are pending
Demo / Explore-CI (push) Waiting to run
2026-04-05 23:03:54 +02:00
21 changed files with 519 additions and 69 deletions

View file

@ -0,0 +1,36 @@
// @ts-check
import { defineConfig } from 'astro/config'
import serviceWorker from '@ayco/astro-sw'
// import { deleteOldCaches, staleWhileRevalidate } from '@ayco/astro-sw/presets'
import * as pkg from './package.json'
export default defineConfig({
output: 'static',
site: 'https://ayo.ayco.io',
integrations: [
serviceWorker({
path: './src/sw.ts',
assetCachePrefix: 'AstroSWTest',
assetCacheVersionID: pkg.version,
// presets: [staleWhileRevalidate(), deleteOldCaches()],
exclude: ['/exclude'],
// include: ['/components/web-component.js'],
logAssets: true,
esbuild: {
minify: true,
},
registrationHooks: {
installing: () => console.log('>>> installing...'),
waiting: () => console.log('>>> waiting...'),
active: () => console.log('>>> active...'),
error: (error) => console.error('>>> error', error),
afterRegistration: async () => {
const sw = await navigator.serviceWorker.getRegistration()
console.log('>>> registrered', sw)
},
},
}),
],
})

24
demo-static/package.json Normal file
View file

@ -0,0 +1,24 @@
{
"name": "demo-static",
"private": true,
"version": "1.0.3",
"main": "index.js",
"scripts": {
"start": "astro dev",
"dev": "astro dev",
"build": "astro build",
"build:preview:static": "astro build && astro preview",
"build:preview": "astro build && astro preview"
},
"author": "Ayo Ayco",
"license": "MIT",
"description": "",
"devDependencies": {
"@astrojs/node": "^10.0.4",
"@ayco/astro-sw": "workspace:*",
"@fastify/middie": "^9.3.1",
"@fastify/static": "^9.0.0",
"astro": "^6.1.3",
"fastify": "^5.8.4"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View file

@ -0,0 +1,14 @@
function register(){
if ('customElements' in window)
window.customElements.define('web-component', WebComponent)
}
class WebComponent extends HTMLElement {
connectedCallback() {
console.log('hello')
}
}
register()
export default WebComponent

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View file

@ -0,0 +1 @@
asset

2
demo-static/src/env.d.ts vendored Normal file
View file

@ -0,0 +1,2 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" />

View file

@ -0,0 +1,5 @@
---
---
404

View file

@ -0,0 +1,17 @@
---
import { type CollectionEntry, getCollection } from 'astro:content'
export async function getStaticPaths() {
const posts = await getCollection('blog')
return posts.map((post) => ({
params: { slug: post.slug },
props: post,
}))
}
type Props = CollectionEntry<'blog'>
const post = Astro.props
const { Content } = await post.render()
---
<Content />

View file

@ -0,0 +1,7 @@
---
---
blog index
<a href="/blog/building-a-cozy-web">post</a>

View file

@ -0,0 +1,5 @@
---
---
exclude

View file

@ -0,0 +1,15 @@
---
// export const prerender = false
---
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hello</title>
<script type="module" src="components/web-component.js"></script>
</head>
<body> Hello </body><web-component></web-component>
</html>
<!-- <Fragment set:html={content} /> -->

135
demo-static/src/sw.ts Normal file
View file

@ -0,0 +1,135 @@
/**
* Note: @ayco/astro-sw integration injects variables `__prefix`, `__version`, & `__assets`
* -- find usage in `astro.config.mjs` integrations
* @see https://ayco.io/n/@ayco/astro-sw
*/
const cacheName = `${__prefix ?? 'app'}-v${__version ?? '000'}`
const forceLogging = true
/**
* Cleans up old service worker caches by deleting any cache that doesn't match the current cache name.
* This ensures only the current version of the application's cache is retained.
* @async
* @function cleanOldCaches
* @returns {Promise<void>} A promise that resolves when old caches have been deleted
*/
const cleanOldCaches = async () => {
const allowCacheNames = [cacheName]
const allCaches = await caches.keys()
allCaches.forEach((key) => {
if (!allowCacheNames.includes(key)) {
console.info('Deleting old cache', key)
caches
.delete(key)
.then(() => {
console.info('Successfully deleted cache:', key)
})
.catch((error) => {
console.warn('Failed to delete old cache:', key, error)
})
}
})
}
/**
* Adds specified resources to the service worker cache.
* This function is used to cache static assets for offline access.
* @async
* @function addResourcesToCache
* @param {Array<string>} resources - An array of URLs representing the resources to be cached.
* @returns {Promise<void>} A promise that resolves when all resources have been successfully added to the cache.
*/
const addResourcesToCache = async (resources) => {
const cache = await caches.open(cacheName)
console.info('adding resources to cache...', {
force: !!forceLogging,
context: 'ayco-sw',
data: resources,
})
try {
await cache.addAll(resources)
} catch (error) {
console.error(
'failed to add resources to cache; make sure requests exists and that there are no duplicates',
error
)
}
}
/**
* Puts a response in the cache.
* @async
* @function putInCache
* @param {Request} request - The request to be cached.
* @param {Response} response - The response to be cached.
* @returns {Promise<void>} A promise that resolves when the response has been added to the cache.
*/
const putInCache = async (request, response) => {
const cache = await caches.open(cacheName)
if (response.ok) {
console.info('adding one response to cache...', request.url)
cache.put(request, response)
}
}
const networkFirst = async ({ request, fallbackUrl }) => {
const cache = await caches.open(cacheName)
try {
// Try to get the resource from the network for 5 seconds
const responseFromNetwork = await fetch(request.clone())
putInCache(request, responseFromNetwork.clone())
console.info('using network response', responseFromNetwork.url)
return responseFromNetwork
// eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (error) {
// Try get the resource from the cache
const responseFromCache = await cache.match(request)
if (responseFromCache) {
console.info('using cached response...', responseFromCache.url)
return responseFromCache
}
// If fallback is provided, try to use it, otherwise return error
if (fallbackUrl) {
const fallbackResponse = await cache.match(fallbackUrl)
if (fallbackResponse) {
console.info('using fallback cached response...', fallbackResponse.url)
return fallbackResponse
}
}
// when even the fallback response is not available,
// there is nothing we can do, but we must always
// return a Response object
return new Response('Network error happened', {
status: 408,
headers: { 'Content-Type': 'text/plain' },
})
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
self.addEventListener('activate', (event) => {
console.info('activating service worker...')
cleanOldCaches()
})
self.addEventListener('install', (event) => {
console.info('installing service worker...')
self.skipWaiting() // go straight to activate
event.waitUntil(addResourcesToCache(__assets ?? []))
})
self.addEventListener('fetch', (event) => {
console.info('fetch happened', { data: event })
event.respondWith(
networkFirst({
request: event.request,
fallbackUrl: './',
})
)
})

View file

@ -0,0 +1,5 @@
{
"extends": "astro/tsconfigs/strict",
"include": [".astro/types.d.ts", "**/*"],
"exclude": ["dist"]
}

View file

@ -8,7 +8,7 @@ import serviceWorker from '@ayco/astro-sw'
import * as pkg from './package.json'
export default defineConfig({
output: 'static',
output: 'server',
adapter: node({
mode: 'middleware',
}),

View file

@ -1,5 +1,5 @@
---
export const prerender = false
// export const prerender = false
---
<!doctype html>

View file

@ -11,12 +11,17 @@
"test": "pnpm -F @ayco/astro-sw test",
"build": "pnpm -F @ayco/astro-sw build",
"publish": "pnpm -F @ayco/astro-sw publish",
"bump": "pnpm -F @ayco/astro-sw bump",
"build:publish": "npm run build && npm run publish",
"bump:build:publish": "npm run bump && npm run build && npm run publish",
"version:patch": "pnpm -F @ayco/astro-sw run version:patch",
"version:minor": "pnpm -F @ayco/astro-sw run version:minor",
"version:major": "pnpm -F @ayco/astro-sw run version:major",
"build:demo": "pnpm run build && pnpm -F demo build",
"demo": "pnpm run build && pnpm -F demo build:preview",
"dev": "pnpm run demo",
"demo:static": "pnpm run build && pnpm -F demo-static build:preview",
"dev:static": "pnpm run demo:static",
"postinstall": "pnpm run build"
},
"devDependencies": {

View file

@ -2,7 +2,7 @@
"name": "@ayco/astro-sw",
"author": "Ayo Ayco",
"license": "MIT",
"version": "0.10.0",
"version": "1.0.0",
"repository": {
"type": "git",
"url": "https://git.ayo.run/ayo/astro-sw"
@ -54,13 +54,13 @@
"perf"
],
"dependencies": {
"bumpp": "^11.0.1",
"esbuild": "^0.27.4"
},
"peerDependencies": {
"astro": "^6"
},
"devDependencies": {
"@types/node": "^25.5.0"
"@types/node": "^25.5.0",
"bumpp": "^11.0.1"
}
}

View file

@ -3,7 +3,7 @@
* @author Ayo Ayco <https://ayo.ayco.io>
*/
import { readFile, writeFile, unlink } from 'node:fs/promises'
import { readFile, writeFile, unlink, readdir } from 'node:fs/promises'
import { fileURLToPath } from 'node:url'
import { resolve, dirname, join } from 'node:path'
import { build } from 'esbuild'
@ -75,20 +75,21 @@ export default function serviceWorker(
registerSW();`
// let output = 'static'
let output = 'static'
const __dirname = resolve(dirname('.'))
return {
name: ASTROSW,
hooks: {
'astro:config:setup': async ({ injectScript, command, logger }) => {
'astro:config:setup': async ({ injectScript, command, logger, config }) => {
if (!serviceWorkerPath || serviceWorkerPath === '') {
// REQUIRED OPTION IS MISSING
logger.error('Missing required path to service worker script')
}
// const transformedScript=await transform(registrationScript)
// output = _config.output
output = config.output
if (command === 'build') {
injectScript('page', registrationScript)
}
@ -107,6 +108,7 @@ declare const __prefix: string;`
dir,
pages,
logger,
assets: buildAssets
}) => {
const outfile = fileURLToPath(new URL('./sw.js', dir))
const swPath =
@ -115,6 +117,25 @@ declare const __prefix: string;`
: undefined
let originalScript
/**
* only for output = 'static
*/
let _publicFiles: string[] = []
if (output === 'static') {
_publicFiles = (
(await readdir(dir, { withFileTypes: true, recursive: true })) ?? []
)
.filter(dirent => dirent.isFile())
.map((dirent) => {
const currentDir = dirent.parentPath.replace(__dirname + '/dist/', '/')
const filepath = `${currentDir === '/' ? '' : currentDir}/${dirent.name}`
return filepath
})
}
const _pages =
pages
.filter(({ pathname }) => pathname !== '')
@ -140,12 +161,17 @@ declare const __prefix: string;`
...exclude.map((route) => `${route}/`),
]
const _buildAssets = Array.from(buildAssets.keys())
.filter(key => !key.includes('...slug'))
const __assets = [
...new Set([
...new Set([ // dedupe
...ssrAssets,
...include,
..._buildAssets,
..._pages,
..._pagesWithoutEndSlash,
...(output === 'static' ? _publicFiles : [])
]),
].filter(
(asset) =>

View file

@ -13,19 +13,19 @@ importers:
version: 0.8.14
'@eslint/js':
specifier: ^10.0.1
version: 10.0.1(eslint@10.0.3)
version: 10.0.1(eslint@10.0.3(jiti@2.6.1))
astro-eslint-parser:
specifier: ^1.3.0
version: 1.3.0
eslint:
specifier: ^10.0.3
version: 10.0.3
version: 10.0.3(jiti@2.6.1)
eslint-plugin-astro:
specifier: ^1.6.0
version: 1.6.0(eslint@10.0.3)
version: 1.6.0(eslint@10.0.3(jiti@2.6.1))
eslint-plugin-jsx-a11y:
specifier: ^6.10.2
version: 6.10.2(eslint@10.0.3)
version: 6.10.2(eslint@10.0.3(jiti@2.6.1))
globals:
specifier: ^17.4.0
version: 17.4.0
@ -40,22 +40,22 @@ importers:
version: 0.14.1
tsup:
specifier: ^8.5.1
version: 8.5.1(postcss@8.5.8)(typescript@5.9.3)
version: 8.5.1(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3)
typescript:
specifier: ^5.9.3
version: 5.9.3
typescript-eslint:
specifier: ^8.57.0
version: 8.57.0(eslint@10.0.3)(typescript@5.9.3)
version: 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
vitest:
specifier: ^4.1.0
version: 4.1.0(@types/node@25.5.0)(vite@7.3.1(@types/node@25.5.0))
version: 4.1.0(@types/node@25.5.0)(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3))
demo:
devDependencies:
'@astrojs/node':
specifier: ^10.0.4
version: 10.0.4(astro@6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3))
version: 10.0.4(astro@6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3))
'@ayco/astro-sw':
specifier: workspace:*
version: link:../package
@ -67,7 +67,28 @@ importers:
version: 9.0.0
astro:
specifier: ^6.1.3
version: 6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3)
version: 6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3)
fastify:
specifier: ^5.8.4
version: 5.8.4
demo-static:
devDependencies:
'@astrojs/node':
specifier: ^10.0.4
version: 10.0.4(astro@6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3))
'@ayco/astro-sw':
specifier: workspace:*
version: link:../package
'@fastify/middie':
specifier: ^9.3.1
version: 9.3.1
'@fastify/static':
specifier: ^9.0.0
version: 9.0.0
astro:
specifier: ^6.1.3
version: 6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3)
fastify:
specifier: ^5.8.4
version: 5.8.4
@ -76,7 +97,7 @@ importers:
dependencies:
astro:
specifier: ^6
version: 6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3)
version: 6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3)
esbuild:
specifier: ^0.27.4
version: 0.27.4
@ -84,6 +105,9 @@ importers:
'@types/node':
specifier: ^25.5.0
version: 25.5.0
bumpp:
specifier: ^11.0.1
version: 11.0.1
packages:
@ -717,89 +741,105 @@ packages:
resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-arm@1.2.4':
resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-ppc64@1.2.4':
resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-riscv64@1.2.4':
resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-s390x@1.2.4':
resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linux-x64@1.2.4':
resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@img/sharp-libvips-linuxmusl-arm64@1.2.4':
resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@img/sharp-libvips-linuxmusl-x64@1.2.4':
resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==}
cpu: [x64]
os: [linux]
libc: [musl]
'@img/sharp-linux-arm64@0.34.5':
resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@img/sharp-linux-arm@0.34.5':
resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm]
os: [linux]
libc: [glibc]
'@img/sharp-linux-ppc64@0.34.5':
resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@img/sharp-linux-riscv64@0.34.5':
resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@img/sharp-linux-s390x@0.34.5':
resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@img/sharp-linux-x64@0.34.5':
resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [glibc]
'@img/sharp-linuxmusl-arm64@0.34.5':
resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [arm64]
os: [linux]
libc: [musl]
'@img/sharp-linuxmusl-x64@0.34.5':
resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
cpu: [x64]
os: [linux]
libc: [musl]
'@img/sharp-wasm32@0.34.5':
resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==}
@ -863,6 +903,9 @@ packages:
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
'@quansync/fs@1.0.0':
resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
'@rollup/pluginutils@5.3.0':
resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==}
engines: {node: '>=14.0.0'}
@ -936,131 +979,157 @@ packages:
resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm-gnueabihf@4.60.1':
resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==}
cpu: [arm]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm-musleabihf@4.59.0':
resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==}
cpu: [arm]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-arm-musleabihf@4.60.1':
resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==}
cpu: [arm]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-arm64-gnu@4.59.0':
resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm64-gnu@4.60.1':
resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-arm64-musl@4.59.0':
resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-arm64-musl@4.60.1':
resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-loong64-gnu@4.59.0':
resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==}
cpu: [loong64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-loong64-gnu@4.60.1':
resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==}
cpu: [loong64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-loong64-musl@4.59.0':
resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==}
cpu: [loong64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-loong64-musl@4.60.1':
resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==}
cpu: [loong64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-ppc64-gnu@4.59.0':
resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-ppc64-gnu@4.60.1':
resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==}
cpu: [ppc64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-ppc64-musl@4.59.0':
resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==}
cpu: [ppc64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-ppc64-musl@4.60.1':
resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==}
cpu: [ppc64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-riscv64-gnu@4.59.0':
resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-riscv64-gnu@4.60.1':
resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==}
cpu: [riscv64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-riscv64-musl@4.59.0':
resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-riscv64-musl@4.60.1':
resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==}
cpu: [riscv64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-s390x-gnu@4.59.0':
resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-s390x-gnu@4.60.1':
resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==}
cpu: [s390x]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.59.0':
resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-gnu@4.60.1':
resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rollup/rollup-linux-x64-musl@4.59.0':
resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rollup/rollup-linux-x64-musl@4.60.1':
resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rollup/rollup-openbsd-x64@4.59.0':
resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==}
@ -1320,6 +1389,9 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
args-tokenizer@0.3.0:
resolution: {integrity: sha512-xXAd7G2Mll5W8uo37GETpQ2VrE84M181Z7ugHFGQnJZ50M2mbOv0osSZ9VsSgPfJQ+LVG0prSi0th+ELMsno7Q==}
aria-query@5.3.2:
resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
engines: {node: '>= 0.4'}
@ -1420,6 +1492,11 @@ packages:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
bumpp@11.0.1:
resolution: {integrity: sha512-X0ti27I/ewsx/u0EJSyl0IZWWOE95q+wIpAG/60kc5gqMNR4a23YJdd3lL7JsBN11TgLbCM4KpfGMuFfdigb4g==}
engines: {node: '>=20.19.0'}
hasBin: true
bundle-require@5.1.0:
resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -1430,6 +1507,10 @@ packages:
resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
engines: {node: '>=8'}
cac@7.0.0:
resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==}
engines: {node: '>=20.19.0'}
call-bind-apply-helpers@1.0.2:
resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==}
engines: {node: '>= 0.4'}
@ -2180,6 +2261,10 @@ packages:
isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
joycon@3.1.1:
resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==}
engines: {node: '>=10'}
@ -2203,6 +2288,9 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
jsonc-parser@3.3.1:
resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
jsx-ast-utils@3.3.5:
resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
engines: {node: '>=4.0'}
@ -2662,6 +2750,9 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
quansync@1.0.0:
resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==}
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
@ -3090,6 +3181,12 @@ packages:
resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
engines: {node: '>= 0.4'}
unconfig-core@7.5.0:
resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==}
unconfig@7.5.0:
resolution: {integrity: sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA==}
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
@ -3329,6 +3426,11 @@ packages:
xxhash-wasm@1.1.0:
resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
yaml@2.8.3:
resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
engines: {node: '>= 14.6'}
hasBin: true
yargs-parser@22.0.0:
resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
@ -3383,10 +3485,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@astrojs/node@10.0.4(astro@6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3))':
'@astrojs/node@10.0.4(astro@6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3))':
dependencies:
'@astrojs/internal-helpers': 0.8.0
astro: 6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3)
astro: 6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3)
send: 1.2.1
server-destroy: 1.0.1
transitivePeerDependencies:
@ -3674,9 +3776,9 @@ snapshots:
'@esbuild/win32-x64@0.27.7':
optional: true
'@eslint-community/eslint-utils@4.9.1(eslint@10.0.3)':
'@eslint-community/eslint-utils@4.9.1(eslint@10.0.3(jiti@2.6.1))':
dependencies:
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
@ -3697,9 +3799,9 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
'@eslint/js@10.0.1(eslint@10.0.3)':
'@eslint/js@10.0.1(eslint@10.0.3(jiti@2.6.1))':
optionalDependencies:
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
'@eslint/object-schema@3.0.3': {}
@ -3900,6 +4002,10 @@ snapshots:
'@pkgr/core@0.2.9': {}
'@quansync/fs@1.0.0':
dependencies:
quansync: 1.0.0
'@rollup/pluginutils@5.3.0(rollup@4.60.1)':
dependencies:
'@types/estree': 1.0.8
@ -4137,15 +4243,15 @@ snapshots:
'@types/unist@3.0.3': {}
'@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3)':
'@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/parser': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/type-utils': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/type-utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.57.0
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.4.0(typescript@5.9.3)
@ -4153,14 +4259,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.57.0(eslint@10.0.3)(typescript@5.9.3)':
'@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.57.0
debug: 4.4.3
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -4183,13 +4289,13 @@ snapshots:
dependencies:
typescript: 5.9.3
'@typescript-eslint/type-utils@8.57.0(eslint@10.0.3)(typescript@5.9.3)':
'@typescript-eslint/type-utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
ts-api-utils: 2.4.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
@ -4212,13 +4318,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.57.0(eslint@10.0.3)(typescript@5.9.3)':
'@typescript-eslint/utils@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3)
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.57.0
'@typescript-eslint/types': 8.57.0
'@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -4239,13 +4345,13 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
'@vitest/mocker@4.1.0(vite@7.3.1(@types/node@25.5.0))':
'@vitest/mocker@4.1.0(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.0
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
vite: 7.3.1(@types/node@25.5.0)
vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)
'@vitest/pretty-format@4.1.0':
dependencies:
@ -4306,6 +4412,8 @@ snapshots:
argparse@2.0.1: {}
args-tokenizer@0.3.0: {}
aria-query@5.3.2: {}
array-buffer-byte-length@1.0.2:
@ -4371,7 +4479,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
astro@6.1.3(@types/node@25.5.0)(rollup@4.60.1)(typescript@5.9.3):
astro@6.1.3(@types/node@25.5.0)(jiti@2.6.1)(rollup@4.60.1)(typescript@5.9.3)(yaml@2.8.3):
dependencies:
'@astrojs/compiler': 3.0.1
'@astrojs/internal-helpers': 0.8.0
@ -4423,8 +4531,8 @@ snapshots:
unist-util-visit: 5.1.0
unstorage: 1.17.5
vfile: 6.0.3
vite: 7.3.1(@types/node@25.5.0)
vitefu: 1.1.3(vite@7.3.1(@types/node@25.5.0))
vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)
vitefu: 1.1.3(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3))
xxhash-wasm: 1.1.0
yargs-parser: 22.0.0
zod: 4.3.6
@ -4512,6 +4620,18 @@ snapshots:
dependencies:
fill-range: 7.1.1
bumpp@11.0.1:
dependencies:
args-tokenizer: 0.3.0
cac: 7.0.0
jsonc-parser: 3.3.1
package-manager-detector: 1.6.0
semver: 7.7.4
tinyexec: 1.0.4
tinyglobby: 0.2.15
unconfig: 7.5.0
yaml: 2.8.3
bundle-require@5.1.0(esbuild@0.27.4):
dependencies:
esbuild: 0.27.4
@ -4519,6 +4639,8 @@ snapshots:
cac@6.7.14: {}
cac@7.0.0: {}
call-bind-apply-helpers@1.0.2:
dependencies:
es-errors: 1.3.0
@ -4890,26 +5012,26 @@ snapshots:
escape-string-regexp@5.0.0: {}
eslint-compat-utils@0.6.5(eslint@10.0.3):
eslint-compat-utils@0.6.5(eslint@10.0.3(jiti@2.6.1)):
dependencies:
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
semver: 7.7.4
eslint-plugin-astro@1.6.0(eslint@10.0.3):
eslint-plugin-astro@1.6.0(eslint@10.0.3(jiti@2.6.1)):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3)
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1))
'@jridgewell/sourcemap-codec': 1.5.5
'@typescript-eslint/types': 8.57.0
astro-eslint-parser: 1.3.0
eslint: 10.0.3
eslint-compat-utils: 0.6.5(eslint@10.0.3)
eslint: 10.0.3(jiti@2.6.1)
eslint-compat-utils: 0.6.5(eslint@10.0.3(jiti@2.6.1))
globals: 16.5.0
postcss: 8.5.8
postcss-selector-parser: 7.1.1
transitivePeerDependencies:
- supports-color
eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.3):
eslint-plugin-jsx-a11y@6.10.2(eslint@10.0.3(jiti@2.6.1)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
@ -4919,7 +5041,7 @@ snapshots:
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 10.0.3
eslint: 10.0.3(jiti@2.6.1)
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
@ -4946,9 +5068,9 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
eslint@10.0.3:
eslint@10.0.3(jiti@2.6.1):
dependencies:
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3)
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.23.3
'@eslint/config-helpers': 0.5.3
@ -4978,6 +5100,8 @@ snapshots:
minimatch: 10.2.4
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
jiti: 2.6.1
transitivePeerDependencies:
- supports-color
@ -5478,6 +5602,8 @@ snapshots:
isexe@2.0.0: {}
jiti@2.6.1: {}
joycon@3.1.1: {}
js-yaml@4.1.1:
@ -5496,6 +5622,8 @@ snapshots:
json-stable-stringify-without-jsonify@1.0.1: {}
jsonc-parser@3.3.1: {}
jsx-ast-utils@3.3.5:
dependencies:
array-includes: 3.1.9
@ -6088,11 +6216,13 @@ snapshots:
possible-typed-array-names@1.1.0: {}
postcss-load-config@6.0.1(postcss@8.5.8):
postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
jiti: 2.6.1
postcss: 8.5.8
yaml: 2.8.3
postcss-selector-parser@7.1.1:
dependencies:
@ -6125,6 +6255,8 @@ snapshots:
punycode@2.3.1: {}
quansync@1.0.0: {}
queue-microtask@1.2.3: {}
quick-format-unescaped@4.0.4: {}
@ -6641,7 +6773,7 @@ snapshots:
tslib@2.8.1:
optional: true
tsup@8.5.1(postcss@8.5.8)(typescript@5.9.3):
tsup@8.5.1(jiti@2.6.1)(postcss@8.5.8)(typescript@5.9.3)(yaml@2.8.3):
dependencies:
bundle-require: 5.1.0(esbuild@0.27.4)
cac: 6.7.14
@ -6652,7 +6784,7 @@ snapshots:
fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
postcss-load-config: 6.0.1(postcss@8.5.8)
postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(yaml@2.8.3)
resolve-from: 5.0.0
rollup: 4.59.0
source-map: 0.7.6
@ -6706,13 +6838,13 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
typescript-eslint@8.57.0(eslint@10.0.3)(typescript@5.9.3):
typescript-eslint@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/parser': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
'@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.57.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3)(typescript@5.9.3)
eslint: 10.0.3
'@typescript-eslint/utils': 8.57.0(eslint@10.0.3(jiti@2.6.1))(typescript@5.9.3)
eslint: 10.0.3(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@ -6730,6 +6862,19 @@ snapshots:
has-symbols: 1.1.0
which-boxed-primitive: 1.1.1
unconfig-core@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
quansync: 1.0.0
unconfig@7.5.0:
dependencies:
'@quansync/fs': 1.0.0
defu: 6.1.6
jiti: 2.6.1
quansync: 1.0.0
unconfig-core: 7.5.0
uncrypto@0.1.3: {}
undici-types@7.18.2: {}
@ -6824,7 +6969,7 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
vite@7.3.1(@types/node@25.5.0):
vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3):
dependencies:
esbuild: 0.27.7
fdir: 6.5.0(picomatch@4.0.4)
@ -6835,15 +6980,17 @@ snapshots:
optionalDependencies:
'@types/node': 25.5.0
fsevents: 2.3.3
jiti: 2.6.1
yaml: 2.8.3
vitefu@1.1.3(vite@7.3.1(@types/node@25.5.0)):
vitefu@1.1.3(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)):
optionalDependencies:
vite: 7.3.1(@types/node@25.5.0)
vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)
vitest@4.1.0(@types/node@25.5.0)(vite@7.3.1(@types/node@25.5.0)):
vitest@4.1.0(@types/node@25.5.0)(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)):
dependencies:
'@vitest/expect': 4.1.0
'@vitest/mocker': 4.1.0(vite@7.3.1(@types/node@25.5.0))
'@vitest/mocker': 4.1.0(vite@7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/pretty-format': 4.1.0
'@vitest/runner': 4.1.0
'@vitest/snapshot': 4.1.0
@ -6860,7 +7007,7 @@ snapshots:
tinyexec: 1.0.4
tinyglobby: 0.2.15
tinyrainbow: 3.1.0
vite: 7.3.1(@types/node@25.5.0)
vite: 7.3.1(@types/node@25.5.0)(jiti@2.6.1)(yaml@2.8.3)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.5.0
@ -6925,6 +7072,8 @@ snapshots:
xxhash-wasm@1.1.0: {}
yaml@2.8.3: {}
yargs-parser@22.0.0: {}
yocto-queue@0.1.0: {}

View file

@ -1,3 +1,7 @@
packages:
- "package"
- "demo"
- "demo"
- "demo-static"
allowBuilds:
esbuild: false
sharp: false