18 Commits

Author SHA1 Message Date
5331d06702 chore(release): 1.0.1 [skip ci]
## [1.0.1](https://github.com/Arlind-dev/sulej.ch/compare/v1.0.0...v1.0.1) (2025-10-17)

### Bug Fixes

* **ui:** top-align layout and restyle footer version link ([#20](https://github.com/Arlind-dev/sulej.ch/issues/20)) ([6a71380](6a71380297))
2025-10-17 10:50:10 +00:00
6a71380297 fix(ui): top-align layout and restyle footer version link (#20)
* fix(footer): improve version hyperlink design

* fix(layout): avoid vertical centering; top-align with responsive offset
2025-10-17 12:49:50 +02:00
9c3aad5205 chore(docs): fix changelog 2025-10-17 11:08:26 +02:00
5f19f10ad0 chore(ci): rework image creation add a dev build
chore(ci): enable provenance and enrich OCI metadata for docker images

chore(ci): align dev and prod docker builds with multi-arch release

chore(ci): enable provenance mode=max for image build

chore(ci): fix multi-arch build to support provenance mode=max

chore(docker): install corepack in build image with npm

chore(ci): use action for gpg import
2025-10-17 11:03:04 +02:00
dependabot[bot]
1601d979df chore(deps-dev): bump @sveltejs/kit from 2.46.5 to 2.47.0 (#17)
Bumps [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit) from 2.46.5 to 2.47.0.
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.47.0/packages/kit)

---
updated-dependencies:
- dependency-name: "@sveltejs/kit"
  dependency-version: 2.47.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 11:03:04 +02:00
dependabot[bot]
656533a9e6 chore(deps): bump svelte from 5.40.0 to 5.40.1 (#18)
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 5.40.0 to 5.40.1.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.40.1/packages/svelte)

---
updated-dependencies:
- dependency-name: svelte
  dependency-version: 5.40.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 11:03:04 +02:00
dependabot[bot]
a4836e7d0b chore(deps-dev): bump vite from 7.1.9 to 7.1.10 (#15) 2025-10-17 11:03:04 +02:00
dependabot[bot]
129661b096 chore(deps): bump svelte from 5.39.11 to 5.40.0 (#14) 2025-10-17 11:03:04 +02:00
dependabot[bot]
a94a9ddfad chore(deps-dev): bump @sveltejs/kit from 2.46.4 to 2.46.5 (#11)
Bumps [@sveltejs/kit](https://github.com/sveltejs/kit/tree/HEAD/packages/kit) from 2.46.4 to 2.46.5.
- [Release notes](https://github.com/sveltejs/kit/releases)
- [Changelog](https://github.com/sveltejs/kit/blob/main/packages/kit/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/kit/commits/@sveltejs/kit@2.46.5/packages/kit)

---
updated-dependencies:
- dependency-name: "@sveltejs/kit"
  dependency-version: 2.46.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 11:03:04 +02:00
4fdcfba3bf chore(ci): run cloudflare pages deploy even if there's no release 2025-10-17 11:03:04 +02:00
ad363a9726 chore(ci): only deploy cloudflare pages on main 2025-10-17 11:03:04 +02:00
b5d5d93d53 docs(changelog): rebased entire repo 2025-10-17 11:03:02 +02:00
ca43f3ee5d docs(security): add reporting 2025-10-17 11:02:57 +02:00
22459635c1 docs(security): add Security Policy 2025-10-17 11:02:57 +02:00
21f517bdf4 chore(ci): rename workflow 2025-10-17 11:02:57 +02:00
09a1e38086 chore(ci): add PR limit for dependabot 2025-10-17 11:02:57 +02:00
cee85a9a1f chore(ci): enable dependabot for dependency updates 2025-10-17 11:02:57 +02:00
5b90f1ec52 docs(changelog): edit changelog 2025-10-17 11:02:50 +02:00
10 changed files with 352 additions and 205 deletions

16
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,16 @@
# Dependabot configuration file
# Docs: https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 10
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 10

View File

@@ -1,19 +1,25 @@
name: Release & Deploy Docker name: Semantic Release, Build & Deploy
on: on:
push: push:
branches: branches:
- '**' - '**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: permissions:
contents: write contents: read
packages: write
id-token: write
jobs: jobs:
release: release:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
if: github.ref == 'refs/heads/main' if: github.ref == 'refs/heads/main'
timeout-minutes: 20
permissions:
contents: write
outputs: outputs:
new_release_published: ${{ steps.semantic.outputs.new_release_published }} new_release_published: ${{ steps.semantic.outputs.new_release_published }}
@@ -24,27 +30,20 @@ jobs:
uses: actions/checkout@v5 uses: actions/checkout@v5
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Import GPG key and configure signing - name: Import GPG key and configure signing
env: uses: crazy-max/ghaction-import-gpg@v6
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} with:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
git_user_signingkey: true
git_commit_gpgsign: true
git_config_global: true
- name: Configure git user
run: | run: |
echo "$GPG_PRIVATE_KEY" | gpg --batch --import git config --global user.name "Arlind-dev"
KEY_ID=$(gpg --list-secret-keys --keyid-format LONG | grep sec | tail -n1 | awk '{print $2}' | cut -d'/' -f2) git config --global user.email "arlind@sulej.ch"
echo "use-agent" >> ~/.gnupg/gpg.conf
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
git config --global user.signingkey "$KEY_ID"
git config --global commit.gpgsign true
git config --global gpg.program gpg
git config --global gpg.format openpgp
export GPG_TTY=$(tty)
echo "test" | gpg --batch --yes --passphrase "$GPG_PASSPHRASE" --pinentry-mode loopback -u "$KEY_ID" -s >/dev/null
echo "Using GPG key: $KEY_ID"
- name: Run semantic-release - name: Run semantic-release
id: semantic id: semantic
@@ -59,14 +58,20 @@ jobs:
conventional-changelog-conventionalcommits conventional-changelog-conventionalcommits
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_AUTHOR_NAME: semantic-release-bot GIT_AUTHOR_NAME: Arlind-dev
GIT_COMMITTER_NAME: semantic-release-bot GIT_COMMITTER_NAME: Arlind-dev
GIT_AUTHOR_EMAIL: arlind@sulej.ch GIT_AUTHOR_EMAIL: arlind@sulej.ch
GIT_COMMITTER_EMAIL: arlind@sulej.ch GIT_COMMITTER_EMAIL: arlind@sulej.ch
docker:
docker-prod:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
needs: release needs: [release]
if: github.ref == 'refs/heads/main' && needs.release.outputs.new_release_published == 'true' if: github.ref == 'refs/heads/main' && needs.release.outputs.new_release_published == 'true'
timeout-minutes: 60
permissions:
contents: read
packages: write
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -82,8 +87,13 @@ jobs:
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
- name: Normalize repository owner to lowercase - name: Prepare build metadata
run: echo "OWNER_LC=${GITHUB_REPOSITORY_OWNER,,}" >> $GITHUB_ENV id: meta
run: |
echo "owner_lc=${GITHUB_REPOSITORY_OWNER,,}" >> "$GITHUB_OUTPUT"
echo "build_date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"
- name: Build and push build-stage image - name: Build and push build-stage image
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
@@ -92,32 +102,108 @@ jobs:
file: Dockerfile.build file: Dockerfile.build
platforms: linux/amd64 platforms: linux/amd64
push: true push: true
provenance: false provenance: mode=max
sbom: true
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max
outputs: type=registry,oci-mediatypes=true
tags: | tags: |
ghcr.io/${{ env.OWNER_LC }}/${{ vars.IMAGE_NAME }}:build-latest ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:build-latest
ghcr.io/${{ env.OWNER_LC }}/${{ vars.IMAGE_NAME }}:build-${{ needs.release.outputs.new_release_version }} ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:build-${{ needs.release.outputs.new_release_version }}
- name: Build and push main image - name: Build and push main image
uses: docker/build-push-action@v6 uses: docker/build-push-action@v6
with: with:
context: . context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/386,linux/ppc64le,linux/riscv64,linux/s390x platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/386,linux/ppc64le,linux/riscv64,linux/s390x
push: true push: true
provenance: false provenance: mode=max
sbom: true
cache-from: type=gha cache-from: type=gha
cache-to: type=gha,mode=max cache-to: type=gha,mode=max
outputs: type=registry,oci-mediatypes=true
build-args: | build-args: |
BUILD_IMAGE=ghcr.io/${{ env.OWNER_LC }}/${{ vars.IMAGE_NAME }}:build-latest BUILD_IMAGE=ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:build-${{ needs.release.outputs.new_release_version }}
tags: | tags: |
ghcr.io/${{ env.OWNER_LC }}/${{ vars.IMAGE_NAME }}:latest ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:latest
ghcr.io/${{ env.OWNER_LC }}/${{ vars.IMAGE_NAME }}:${{ needs.release.outputs.new_release_version }} ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:${{ needs.release.outputs.new_release_version }}
docker-dev:
runs-on: ubuntu-24.04
if: github.ref != 'refs/heads/main'
timeout-minutes: 60
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare metadata and branch vars
id: meta
run: |
echo "owner_lc=${GITHUB_REPOSITORY_OWNER,,}" >> "$GITHUB_OUTPUT"
BRANCH_NAME=${GITHUB_REF#refs/heads/}
SANITIZED_BRANCH=$(echo "$BRANCH_NAME" | tr '/' '-' | tr '_' '-' | tr -cd '[:alnum:]-')
echo "sanitized_branch=$SANITIZED_BRANCH" >> "$GITHUB_OUTPUT"
echo "sha_short=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
echo "build_date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT"
- name: Build and push build-stage image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile.build
platforms: linux/amd64
push: true
provenance: mode=max
sbom: true
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=registry,oci-mediatypes=true
tags: |
ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:build-${{ steps.meta.outputs.sanitized_branch }}-${{ steps.meta.outputs.sha_short }}
- name: Build and push main image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/386,linux/ppc64le,linux/riscv64,linux/s390x
push: true
provenance: mode=max
sbom: true
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=registry,oci-mediatypes=true
build-args: |
BUILD_IMAGE=ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:build-${{ steps.meta.outputs.sanitized_branch }}-${{ steps.meta.outputs.sha_short }}
tags: |
ghcr.io/${{ steps.meta.outputs.owner_lc }}/${{ vars.IMAGE_NAME }}:${{ steps.meta.outputs.sanitized_branch }}-${{ steps.meta.outputs.sha_short }}
deploy: deploy:
runs-on: ubuntu-24.04 runs-on: ubuntu-24.04
needs: release needs: release
if: always() if: github.ref == 'refs/heads/main'
timeout-minutes: 10
permissions:
contents: read
steps: steps:
- name: Trigger Cloudflare Pages deploy - name: Trigger Cloudflare Pages deploy
run: | run: |

View File

@@ -1,14 +1,15 @@
## [1.0.1](https://github.com/Arlind-dev/sulej.ch/compare/v1.0.0...v1.0.1) (2025-10-17)
### Bug Fixes
* **ui:** top-align layout and restyle footer version link ([#20](https://github.com/Arlind-dev/sulej.ch/issues/20)) ([6a71380](https://github.com/Arlind-dev/sulej.ch/commit/6a71380297ad9047cb79c7417e513a11bc57e6ad))
## 1.0.0 (2025-10-12) ## 1.0.0 (2025-10-12)
### ⚠ BREAKING CHANGES
* **ci:** add signed commits
* Create sulej.ch
### Features ### Features
* Create sulej.ch ([9814ab8](https://github.com/Arlind-dev/sulej.ch/commit/9814ab83122785f7baefba7da27c9871b926e7e6)) * **init:** Create sulej.ch ([40c353f](https://github.com/Arlind-dev/sulej.ch/commit/40c353ff4efe2ed26f4462ecef7dd08a23437474))
### Miscellaneous Chores ### Miscellaneous Chores
* **ci:** add signed commits ([c926beb](https://github.com/Arlind-dev/sulej.ch/commit/c926beb5c8a4a75acac59528b696a84b45398fcd)) * **ci:** add signed commits ([61fc8af](https://github.com/Arlind-dev/sulej.ch/commit/61fc8af54da54653a5faedcded6ea3830c17e50d))

View File

@@ -1,10 +1,12 @@
FROM ghcr.io/arlind-dev/sulej.ch:build-latest AS build ARG BUILD_IMAGE=ghcr.io/arlind-dev/sulej.ch:build-latest
FROM --platform=$BUILDPLATFORM ${BUILD_IMAGE} AS build
FROM nginx:alpine FROM nginx:alpine
WORKDIR /usr/share/nginx/html
ARG BUILD_IMAGE
WORKDIR /usr/share/nginx/html
COPY --from=build /output ./ COPY --from=build /output ./
EXPOSE 80 EXPOSE 80
CMD ["nginx", "-g", "daemon off;"] CMD ["nginx", "-g", "daemon off;"]

View File

@@ -2,14 +2,12 @@ FROM node:alpine AS build
WORKDIR /app WORKDIR /app
RUN corepack enable && corepack prepare pnpm@latest --activate RUN npm install -g --force corepack && corepack enable && corepack prepare pnpm@latest --activate
COPY package.json pnpm-lock.yaml ./ COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile RUN pnpm install --frozen-lockfile
COPY . . COPY . .
RUN pnpm run build RUN pnpm run build
RUN mkdir -p /output && cp -r /app/build/. /output/ RUN mkdir -p /output && cp -r /app/build/. /output/

16
SECURITY.md Normal file
View File

@@ -0,0 +1,16 @@
# Security Policy
## Supported Versions
This project only supports the **latest release**.
Older versions do **not** receive security updates or patches.
| Version | Supported |
| ------- | --------------------- |
| Latest | ✅ Supported |
| Older | ❌ Not supported |
## Reporting a Vulnerability
If you discover a security vulnerability, please report it by emailing **arlind@sulej.ch**.
Alternatively, you may open a private issue on GitHub or contact the maintainers directly.

View File

@@ -1,6 +1,6 @@
{ {
"name": "sulej.ch", "name": "sulej.ch",
"version": "1.0.0", "version": "1.0.1",
"packageManager": "pnpm@10.15.0", "packageManager": "pnpm@10.15.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
@@ -12,14 +12,14 @@
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
}, },
"dependencies": { "dependencies": {
"svelte": "^5.39.11" "svelte": "^5.40.1"
}, },
"devDependencies": { "devDependencies": {
"@sveltejs/adapter-static": "^3.0.10", "@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.46.4", "@sveltejs/kit": "^2.47.0",
"@sveltejs/vite-plugin-svelte": "^6.2.1", "@sveltejs/vite-plugin-svelte": "^6.2.1",
"svelte-check": "^4.3.3", "svelte-check": "^4.3.3",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"vite": "^7.1.9" "vite": "^7.1.10"
} }
} }

296
pnpm-lock.yaml generated
View File

@@ -9,182 +9,182 @@ importers:
.: .:
dependencies: dependencies:
svelte: svelte:
specifier: ^5.39.11 specifier: ^5.40.1
version: 5.39.11 version: 5.40.1
devDependencies: devDependencies:
'@sveltejs/adapter-static': '@sveltejs/adapter-static':
specifier: ^3.0.10 specifier: ^3.0.10
version: 3.0.10(@sveltejs/kit@2.46.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4))) version: 3.0.10(@sveltejs/kit@2.47.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))
'@sveltejs/kit': '@sveltejs/kit':
specifier: ^2.46.4 specifier: ^2.47.0
version: 2.46.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) version: 2.47.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
'@sveltejs/vite-plugin-svelte': '@sveltejs/vite-plugin-svelte':
specifier: ^6.2.1 specifier: ^6.2.1
version: 6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) version: 6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
svelte-check: svelte-check:
specifier: ^4.3.3 specifier: ^4.3.3
version: 4.3.3(picomatch@4.0.3)(svelte@5.39.11)(typescript@5.9.3) version: 4.3.3(picomatch@4.0.3)(svelte@5.40.1)(typescript@5.9.3)
typescript: typescript:
specifier: ^5.9.3 specifier: ^5.9.3
version: 5.9.3 version: 5.9.3
vite: vite:
specifier: ^7.1.9 specifier: ^7.1.10
version: 7.1.9(sass@1.80.4) version: 7.1.10(sass@1.80.4)
packages: packages:
'@esbuild/aix-ppc64@0.25.10': '@esbuild/aix-ppc64@0.25.11':
resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [aix] os: [aix]
'@esbuild/android-arm64@0.25.10': '@esbuild/android-arm64@0.25.11':
resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@esbuild/android-arm@0.25.10': '@esbuild/android-arm@0.25.11':
resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@esbuild/android-x64@0.25.10': '@esbuild/android-x64@0.25.11':
resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [android] os: [android]
'@esbuild/darwin-arm64@0.25.10': '@esbuild/darwin-arm64@0.25.11':
resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@esbuild/darwin-x64@0.25.10': '@esbuild/darwin-x64@0.25.11':
resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@esbuild/freebsd-arm64@0.25.10': '@esbuild/freebsd-arm64@0.25.11':
resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@esbuild/freebsd-x64@0.25.10': '@esbuild/freebsd-x64@0.25.11':
resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@esbuild/linux-arm64@0.25.10': '@esbuild/linux-arm64@0.25.11':
resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@esbuild/linux-arm@0.25.10': '@esbuild/linux-arm@0.25.11':
resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@esbuild/linux-ia32@0.25.10': '@esbuild/linux-ia32@0.25.11':
resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [linux] os: [linux]
'@esbuild/linux-loong64@0.25.10': '@esbuild/linux-loong64@0.25.11':
resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
'@esbuild/linux-mips64el@0.25.10': '@esbuild/linux-mips64el@0.25.11':
resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [mips64el] cpu: [mips64el]
os: [linux] os: [linux]
'@esbuild/linux-ppc64@0.25.10': '@esbuild/linux-ppc64@0.25.11':
resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@esbuild/linux-riscv64@0.25.10': '@esbuild/linux-riscv64@0.25.11':
resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@esbuild/linux-s390x@0.25.10': '@esbuild/linux-s390x@0.25.11':
resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@esbuild/linux-x64@0.25.10': '@esbuild/linux-x64@0.25.11':
resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@esbuild/netbsd-arm64@0.25.10': '@esbuild/netbsd-arm64@0.25.11':
resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [netbsd] os: [netbsd]
'@esbuild/netbsd-x64@0.25.10': '@esbuild/netbsd-x64@0.25.11':
resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [netbsd] os: [netbsd]
'@esbuild/openbsd-arm64@0.25.10': '@esbuild/openbsd-arm64@0.25.11':
resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [openbsd] os: [openbsd]
'@esbuild/openbsd-x64@0.25.10': '@esbuild/openbsd-x64@0.25.11':
resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [openbsd] os: [openbsd]
'@esbuild/openharmony-arm64@0.25.10': '@esbuild/openharmony-arm64@0.25.11':
resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [openharmony] os: [openharmony]
'@esbuild/sunos-x64@0.25.10': '@esbuild/sunos-x64@0.25.11':
resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [sunos] os: [sunos]
'@esbuild/win32-arm64@0.25.10': '@esbuild/win32-arm64@0.25.11':
resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@esbuild/win32-ia32@0.25.10': '@esbuild/win32-ia32@0.25.11':
resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@esbuild/win32-x64@0.25.10': '@esbuild/win32-x64@0.25.11':
resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==}
engines: {node: '>=18'} engines: {node: '>=18'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -413,8 +413,8 @@ packages:
peerDependencies: peerDependencies:
'@sveltejs/kit': ^2.0.0 '@sveltejs/kit': ^2.0.0
'@sveltejs/kit@2.46.4': '@sveltejs/kit@2.47.0':
resolution: {integrity: sha512-J1fd80WokLzIm6EAV7z7C2+/C02qVAX645LZomARARTRJkbbJSY1Jln3wtBZYibUB8c9/5Z6xqLAV39VdbtWCQ==} resolution: {integrity: sha512-mznN01MBXtr4T7X/E3ENkhF6GzqxTxL6/whG3OzCzUu8G8KYRNiCdoxLMVWAHJx/mDMPP3XAeKCMZHF/Xd/CDw==}
engines: {node: '>=18.13'} engines: {node: '>=18.13'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -494,11 +494,11 @@ packages:
engines: {node: '>=0.10'} engines: {node: '>=0.10'}
hasBin: true hasBin: true
devalue@5.3.2: devalue@5.4.1:
resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} resolution: {integrity: sha512-YtoaOfsqjbZQKGIMRYDWKjUmSB4VJ/RElB+bXZawQAQYAo4xu08GKTMVlsZDTF6R2MbAgjcAQRPI5eIyRAT2OQ==}
esbuild@0.25.10: esbuild@0.25.11:
resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==}
engines: {node: '>=18'} engines: {node: '>=18'}
hasBin: true hasBin: true
@@ -629,8 +629,8 @@ packages:
svelte: ^4.0.0 || ^5.0.0-next.0 svelte: ^4.0.0 || ^5.0.0-next.0
typescript: '>=5.0.0' typescript: '>=5.0.0'
svelte@5.39.11: svelte@5.40.1:
resolution: {integrity: sha512-8MxWVm2+3YwrFbPaxOlT1bbMi6OTenrAgks6soZfiaS8Fptk4EVyRIFhJc3RpO264EeSNwgjWAdki0ufg4zkGw==} resolution: {integrity: sha512-0R3t2oiLxJNJb2buz61MNfPdkjeyj2qTCM7TtIv/4ZfF12zD7Ig8iIo+C8febroy+9S4QJ7qfijtearSdO/1ww==}
engines: {node: '>=18'} engines: {node: '>=18'}
tinyglobby@0.2.15: tinyglobby@0.2.15:
@@ -650,8 +650,8 @@ packages:
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
hasBin: true hasBin: true
vite@7.1.9: vite@7.1.10:
resolution: {integrity: sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==} resolution: {integrity: sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==}
engines: {node: ^20.19.0 || >=22.12.0} engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -703,82 +703,82 @@ packages:
snapshots: snapshots:
'@esbuild/aix-ppc64@0.25.10': '@esbuild/aix-ppc64@0.25.11':
optional: true optional: true
'@esbuild/android-arm64@0.25.10': '@esbuild/android-arm64@0.25.11':
optional: true optional: true
'@esbuild/android-arm@0.25.10': '@esbuild/android-arm@0.25.11':
optional: true optional: true
'@esbuild/android-x64@0.25.10': '@esbuild/android-x64@0.25.11':
optional: true optional: true
'@esbuild/darwin-arm64@0.25.10': '@esbuild/darwin-arm64@0.25.11':
optional: true optional: true
'@esbuild/darwin-x64@0.25.10': '@esbuild/darwin-x64@0.25.11':
optional: true optional: true
'@esbuild/freebsd-arm64@0.25.10': '@esbuild/freebsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/freebsd-x64@0.25.10': '@esbuild/freebsd-x64@0.25.11':
optional: true optional: true
'@esbuild/linux-arm64@0.25.10': '@esbuild/linux-arm64@0.25.11':
optional: true optional: true
'@esbuild/linux-arm@0.25.10': '@esbuild/linux-arm@0.25.11':
optional: true optional: true
'@esbuild/linux-ia32@0.25.10': '@esbuild/linux-ia32@0.25.11':
optional: true optional: true
'@esbuild/linux-loong64@0.25.10': '@esbuild/linux-loong64@0.25.11':
optional: true optional: true
'@esbuild/linux-mips64el@0.25.10': '@esbuild/linux-mips64el@0.25.11':
optional: true optional: true
'@esbuild/linux-ppc64@0.25.10': '@esbuild/linux-ppc64@0.25.11':
optional: true optional: true
'@esbuild/linux-riscv64@0.25.10': '@esbuild/linux-riscv64@0.25.11':
optional: true optional: true
'@esbuild/linux-s390x@0.25.10': '@esbuild/linux-s390x@0.25.11':
optional: true optional: true
'@esbuild/linux-x64@0.25.10': '@esbuild/linux-x64@0.25.11':
optional: true optional: true
'@esbuild/netbsd-arm64@0.25.10': '@esbuild/netbsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/netbsd-x64@0.25.10': '@esbuild/netbsd-x64@0.25.11':
optional: true optional: true
'@esbuild/openbsd-arm64@0.25.10': '@esbuild/openbsd-arm64@0.25.11':
optional: true optional: true
'@esbuild/openbsd-x64@0.25.10': '@esbuild/openbsd-x64@0.25.11':
optional: true optional: true
'@esbuild/openharmony-arm64@0.25.10': '@esbuild/openharmony-arm64@0.25.11':
optional: true optional: true
'@esbuild/sunos-x64@0.25.10': '@esbuild/sunos-x64@0.25.11':
optional: true optional: true
'@esbuild/win32-arm64@0.25.10': '@esbuild/win32-arm64@0.25.11':
optional: true optional: true
'@esbuild/win32-ia32@0.25.10': '@esbuild/win32-ia32@0.25.11':
optional: true optional: true
'@esbuild/win32-x64@0.25.10': '@esbuild/win32-x64@0.25.11':
optional: true optional: true
'@jridgewell/gen-mapping@0.3.13': '@jridgewell/gen-mapping@0.3.13':
@@ -935,19 +935,19 @@ snapshots:
dependencies: dependencies:
acorn: 8.15.0 acorn: 8.15.0
'@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.46.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))': '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.47.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))':
dependencies: dependencies:
'@sveltejs/kit': 2.46.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) '@sveltejs/kit': 2.47.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
'@sveltejs/kit@2.46.4(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4))': '@sveltejs/kit@2.47.0(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))':
dependencies: dependencies:
'@standard-schema/spec': 1.0.0 '@standard-schema/spec': 1.0.0
'@sveltejs/acorn-typescript': 1.0.6(acorn@8.15.0) '@sveltejs/acorn-typescript': 1.0.6(acorn@8.15.0)
'@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
'@types/cookie': 0.6.0 '@types/cookie': 0.6.0
acorn: 8.15.0 acorn: 8.15.0
cookie: 0.6.0 cookie: 0.6.0
devalue: 5.3.2 devalue: 5.4.1
esm-env: 1.2.2 esm-env: 1.2.2
kleur: 4.1.5 kleur: 4.1.5
magic-string: 0.30.19 magic-string: 0.30.19
@@ -955,27 +955,27 @@ snapshots:
sade: 1.8.1 sade: 1.8.1
set-cookie-parser: 2.7.1 set-cookie-parser: 2.7.1
sirv: 3.0.2 sirv: 3.0.2
svelte: 5.39.11 svelte: 5.40.1
vite: 7.1.9(sass@1.80.4) vite: 7.1.10(sass@1.80.4)
'@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4))': '@sveltejs/vite-plugin-svelte-inspector@5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) '@sveltejs/vite-plugin-svelte': 6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
debug: 4.4.3 debug: 4.4.3
svelte: 5.39.11 svelte: 5.40.1
vite: 7.1.9(sass@1.80.4) vite: 7.1.10(sass@1.80.4)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4))': '@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))':
dependencies: dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)))(svelte@5.39.11)(vite@7.1.9(sass@1.80.4)) '@sveltejs/vite-plugin-svelte-inspector': 5.0.1(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.40.1)(vite@7.1.10(sass@1.80.4)))(svelte@5.40.1)(vite@7.1.10(sass@1.80.4))
debug: 4.4.3 debug: 4.4.3
deepmerge: 4.3.1 deepmerge: 4.3.1
magic-string: 0.30.19 magic-string: 0.30.19
svelte: 5.39.11 svelte: 5.40.1
vite: 7.1.9(sass@1.80.4) vite: 7.1.10(sass@1.80.4)
vitefu: 1.1.1(vite@7.1.9(sass@1.80.4)) vitefu: 1.1.1(vite@7.1.10(sass@1.80.4))
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@@ -1011,36 +1011,36 @@ snapshots:
detect-libc@1.0.3: detect-libc@1.0.3:
optional: true optional: true
devalue@5.3.2: {} devalue@5.4.1: {}
esbuild@0.25.10: esbuild@0.25.11:
optionalDependencies: optionalDependencies:
'@esbuild/aix-ppc64': 0.25.10 '@esbuild/aix-ppc64': 0.25.11
'@esbuild/android-arm': 0.25.10 '@esbuild/android-arm': 0.25.11
'@esbuild/android-arm64': 0.25.10 '@esbuild/android-arm64': 0.25.11
'@esbuild/android-x64': 0.25.10 '@esbuild/android-x64': 0.25.11
'@esbuild/darwin-arm64': 0.25.10 '@esbuild/darwin-arm64': 0.25.11
'@esbuild/darwin-x64': 0.25.10 '@esbuild/darwin-x64': 0.25.11
'@esbuild/freebsd-arm64': 0.25.10 '@esbuild/freebsd-arm64': 0.25.11
'@esbuild/freebsd-x64': 0.25.10 '@esbuild/freebsd-x64': 0.25.11
'@esbuild/linux-arm': 0.25.10 '@esbuild/linux-arm': 0.25.11
'@esbuild/linux-arm64': 0.25.10 '@esbuild/linux-arm64': 0.25.11
'@esbuild/linux-ia32': 0.25.10 '@esbuild/linux-ia32': 0.25.11
'@esbuild/linux-loong64': 0.25.10 '@esbuild/linux-loong64': 0.25.11
'@esbuild/linux-mips64el': 0.25.10 '@esbuild/linux-mips64el': 0.25.11
'@esbuild/linux-ppc64': 0.25.10 '@esbuild/linux-ppc64': 0.25.11
'@esbuild/linux-riscv64': 0.25.10 '@esbuild/linux-riscv64': 0.25.11
'@esbuild/linux-s390x': 0.25.10 '@esbuild/linux-s390x': 0.25.11
'@esbuild/linux-x64': 0.25.10 '@esbuild/linux-x64': 0.25.11
'@esbuild/netbsd-arm64': 0.25.10 '@esbuild/netbsd-arm64': 0.25.11
'@esbuild/netbsd-x64': 0.25.10 '@esbuild/netbsd-x64': 0.25.11
'@esbuild/openbsd-arm64': 0.25.10 '@esbuild/openbsd-arm64': 0.25.11
'@esbuild/openbsd-x64': 0.25.10 '@esbuild/openbsd-x64': 0.25.11
'@esbuild/openharmony-arm64': 0.25.10 '@esbuild/openharmony-arm64': 0.25.11
'@esbuild/sunos-x64': 0.25.10 '@esbuild/sunos-x64': 0.25.11
'@esbuild/win32-arm64': 0.25.10 '@esbuild/win32-arm64': 0.25.11
'@esbuild/win32-ia32': 0.25.10 '@esbuild/win32-ia32': 0.25.11
'@esbuild/win32-x64': 0.25.10 '@esbuild/win32-x64': 0.25.11
esm-env@1.2.2: {} esm-env@1.2.2: {}
@@ -1168,19 +1168,19 @@ snapshots:
source-map-js@1.2.1: {} source-map-js@1.2.1: {}
svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.39.11)(typescript@5.9.3): svelte-check@4.3.3(picomatch@4.0.3)(svelte@5.40.1)(typescript@5.9.3):
dependencies: dependencies:
'@jridgewell/trace-mapping': 0.3.31 '@jridgewell/trace-mapping': 0.3.31
chokidar: 4.0.3 chokidar: 4.0.3
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)
picocolors: 1.1.1 picocolors: 1.1.1
sade: 1.8.1 sade: 1.8.1
svelte: 5.39.11 svelte: 5.40.1
typescript: 5.9.3 typescript: 5.9.3
transitivePeerDependencies: transitivePeerDependencies:
- picomatch - picomatch
svelte@5.39.11: svelte@5.40.1:
dependencies: dependencies:
'@jridgewell/remapping': 2.3.5 '@jridgewell/remapping': 2.3.5
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
@@ -1211,9 +1211,9 @@ snapshots:
typescript@5.9.3: {} typescript@5.9.3: {}
vite@7.1.9(sass@1.80.4): vite@7.1.10(sass@1.80.4):
dependencies: dependencies:
esbuild: 0.25.10 esbuild: 0.25.11
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3 picomatch: 4.0.3
postcss: 8.5.6 postcss: 8.5.6
@@ -1223,8 +1223,8 @@ snapshots:
fsevents: 2.3.3 fsevents: 2.3.3
sass: 1.80.4 sass: 1.80.4
vitefu@1.1.1(vite@7.1.9(sass@1.80.4)): vitefu@1.1.1(vite@7.1.10(sass@1.80.4)):
optionalDependencies: optionalDependencies:
vite: 7.1.9(sass@1.80.4) vite: 7.1.10(sass@1.80.4)
zimmerframe@1.1.4: {} zimmerframe@1.1.4: {}

View File

@@ -7,9 +7,37 @@
<div style="display: inline-flex; align-items: baseline; gap: 1rem; margin: 1rem 0 0;"> <div style="display: inline-flex; align-items: baseline; gap: 1rem; margin: 1rem 0 0;">
<small>© 2025 sulej.ch</small> <small>© 2025 sulej.ch</small>
<small> <small>
<a href="https://github.com/Arlind-dev/sulej.ch"> <a class="version-link" href="https://github.com/Arlind-dev/sulej.ch">
{versionInfo.version} ({versionInfo.commit}) {versionInfo.version} <span class="commit">({versionInfo.commit})</span>
</a> </a>
</small> </small>
</div> </div>
</footer> </footer>
<style>
.version-link {
color: inherit;
text-decoration: none;
border-bottom: 1px solid transparent;
opacity: 0.85;
transition: border-color 120ms ease, opacity 120ms ease, color 120ms ease;
}
.version-link:hover {
border-color: currentColor;
opacity: 1;
}
.version-link:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
border-color: transparent;
}
.commit {
opacity: 0.7;
letter-spacing: 0.02em;
font-family: var(--font-mono);
font-variant-numeric: tabular-nums;
}
</style>

View File

@@ -8,7 +8,7 @@
<title>sulej.ch</title> <title>sulej.ch</title>
</svelte:head> </svelte:head>
<div style="height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: clamp(1rem, 1.5vw, 1.5rem); padding: clamp(0.5rem, 2vw, 1.5rem); font-size: clamp(1rem, 1rem + 1vw, 1.5rem);"> <div style="min-height: 100vh; padding-top: clamp(1rem, 8vh, 6rem); display: flex; flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; gap: clamp(1rem, 1.5vw, 1.5rem); padding-left: clamp(0.5rem, 2vw, 1.5rem); padding-right: clamp(0.5rem, 2vw, 1.5rem); padding-bottom: clamp(0.5rem, 2vw, 1.5rem); font-size: clamp(1rem, 1rem + 1vw, 1.5rem);">
<slot /> <slot />
</div> </div>