Merge GitHub main into Gitea repo (allow unrelated histories)
Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Resolved conflicts by taking GitHub versions for: - .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml Kept deploy.sh updated to: - Pull from GitHub (primary source) - Push to Gitea (push-mirror) - Build from site/ directory (GitHub structure) Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
commit
df378d33ef
@ -1,7 +1,37 @@
|
|||||||
node_modules
|
# Git
|
||||||
.next
|
|
||||||
.git
|
.git
|
||||||
*.md
|
.gitignore
|
||||||
.env*
|
.gitattributes
|
||||||
.vscode
|
|
||||||
.idea
|
# Docs (not needed at runtime)
|
||||||
|
docs/
|
||||||
|
|
||||||
|
# Editor config
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
# OS files
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# Environment (keep .env.example)
|
||||||
|
.env
|
||||||
|
.env.local
|
||||||
|
.env.*.local
|
||||||
|
|
||||||
|
# Docker (avoid recursive copy)
|
||||||
|
Dockerfile
|
||||||
|
docker-compose.yml
|
||||||
|
.dockerignore
|
||||||
|
|
||||||
|
# Node artifacts (from pre-migration scaffold, will be removed by ELF-15)
|
||||||
|
node_modules/
|
||||||
|
pnpm-lock.yaml
|
||||||
|
package.json
|
||||||
|
apps/
|
||||||
|
|
||||||
|
# Test / build caches
|
||||||
|
*.test
|
||||||
|
coverage/
|
||||||
|
|||||||
6
.env.example
Normal file
6
.env.example
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
# Public hostname for HTTPS (Caddy will obtain a Let's Encrypt cert automatically).
|
||||||
|
# Leave unset or set to "localhost" for local dev (self-signed cert).
|
||||||
|
HATCH_HOSTNAME=hatch.example.com
|
||||||
|
|
||||||
|
# Base URL for SSE and self-referencing links within the UI.
|
||||||
|
HATCH_BASE_URL=https://hatch.example.com
|
||||||
88
.github/workflows/ci.yml
vendored
Normal file
88
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
go:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '1.24'
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Check formatting
|
||||||
|
run: |
|
||||||
|
if [ -n "$(gofmt -l .)" ]; then
|
||||||
|
echo "Files not formatted:"
|
||||||
|
gofmt -l .
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Vet
|
||||||
|
run: go vet ./...
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: go test ./... -v -race
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: CGO_ENABLED=0 go build -o /dev/null ./cmd/hatch
|
||||||
|
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build Docker image
|
||||||
|
run: docker build -t hatch:ci .
|
||||||
|
|
||||||
|
- name: Smoke test the Docker image
|
||||||
|
run: |
|
||||||
|
docker run --rm -d -p 8080:8080 --name hatch-ci hatch:ci
|
||||||
|
sleep 2
|
||||||
|
curl -fsS http://localhost:8080/healthz | grep -q 'ok'
|
||||||
|
docker stop hatch-ci
|
||||||
|
|
||||||
|
lint-go:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '1.24'
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Run golangci-lint
|
||||||
|
uses: golangci/golangci-lint-action@v6
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
continue-on-error: true # v1.64.8 built with Go 1.24; migrate to v2.x tracking ELF-232
|
||||||
|
|
||||||
|
lint-docs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Check markdown formatting
|
||||||
|
uses: DavidAnson/markdownlint-cli2-action@v16
|
||||||
|
with:
|
||||||
|
globs: '**/*.md'
|
||||||
|
continue-on-error: true
|
||||||
|
|
||||||
|
check-paperclip:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Need full history for PR range
|
||||||
|
- name: Check for Paperclip references in commit messages
|
||||||
|
run: ./scripts/check-paperclip.sh
|
||||||
|
env:
|
||||||
|
GITHUB_EVENT_NAME: ${{ github.event_name }}
|
||||||
|
GITHUB_BASE_REF: ${{ github.base_ref }}
|
||||||
93
.github/workflows/deploy-site.yml
vendored
Normal file
93
.github/workflows/deploy-site.yml
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
name: Deploy static site
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
paths:
|
||||||
|
- 'site/**'
|
||||||
|
- '.github/workflows/deploy-site.yml'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
|
||||||
|
# Allow only one concurrent deployment
|
||||||
|
concurrency:
|
||||||
|
group: "pages"
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy-github-pages:
|
||||||
|
name: Deploy to GitHub Pages
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Pages
|
||||||
|
uses: actions/configure-pages@v5
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
# Upload the site directory
|
||||||
|
path: 'site'
|
||||||
|
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
||||||
|
|
||||||
|
deploy-docker:
|
||||||
|
name: Deploy via Docker to hatch.surf
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build Docker image
|
||||||
|
run: docker build -t hatch-homepage:latest ./site
|
||||||
|
|
||||||
|
- name: Save Docker image
|
||||||
|
run: docker save hatch-homepage:latest | gzip > hatch-homepage.tar.gz
|
||||||
|
|
||||||
|
- name: Deploy to server
|
||||||
|
uses: appleboy/scp-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.DEPLOY_HOST }}
|
||||||
|
username: ${{ secrets.DEPLOY_USER }}
|
||||||
|
key: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
source: "hatch-homepage.tar.gz"
|
||||||
|
target: "/tmp/hatch-homepage.tar.gz"
|
||||||
|
|
||||||
|
- name: Load and restart container
|
||||||
|
uses: appleboy/ssh-action@v1
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.DEPLOY_HOST }}
|
||||||
|
username: ${{ secrets.DEPLOY_USER }}
|
||||||
|
key: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
script: |
|
||||||
|
# Load the image
|
||||||
|
docker load < /tmp/hatch-homepage.tar.gz
|
||||||
|
|
||||||
|
# Stop and remove old container if exists
|
||||||
|
docker stop hatch-homepage 2>/dev/null || true
|
||||||
|
docker rm hatch-homepage 2>/dev/null || true
|
||||||
|
|
||||||
|
# Run new container (static files baked into image, no host mount)
|
||||||
|
docker run -d \
|
||||||
|
--name hatch-homepage \
|
||||||
|
--restart unless-stopped \
|
||||||
|
-p 127.0.0.1:3000:80 \
|
||||||
|
hatch-homepage:latest
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
rm -f /tmp/hatch-homepage.tar.gz
|
||||||
|
|
||||||
|
# Reload nginx if it's managing the reverse proxy
|
||||||
|
nginx -t && systemctl reload nginx 2>/dev/null || true
|
||||||
189
.github/workflows/release.yml
vendored
Normal file
189
.github/workflows/release.yml
vendored
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
tag:
|
||||||
|
description: 'Release tag (e.g., v1.0.0)'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build ${{ matrix.os }}/${{ matrix.arch }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- os: linux
|
||||||
|
arch: amd64
|
||||||
|
goos: linux
|
||||||
|
goarch: amd64
|
||||||
|
- os: linux
|
||||||
|
arch: arm64
|
||||||
|
goos: linux
|
||||||
|
goarch: arm64
|
||||||
|
- os: darwin
|
||||||
|
arch: amd64
|
||||||
|
goos: darwin
|
||||||
|
goarch: amd64
|
||||||
|
- os: darwin
|
||||||
|
arch: arm64
|
||||||
|
goos: darwin
|
||||||
|
goarch: arm64
|
||||||
|
- os: windows
|
||||||
|
arch: amd64
|
||||||
|
goos: windows
|
||||||
|
goarch: amd64
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Setup Go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: '1.25'
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Determine version
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
if [ "${{ github.ref_type }}" = "tag" ]; then
|
||||||
|
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "version=dev-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build binary
|
||||||
|
env:
|
||||||
|
GOOS: ${{ matrix.goos }}
|
||||||
|
GOARCH: ${{ matrix.goarch }}
|
||||||
|
CGO_ENABLED: 0
|
||||||
|
run: |
|
||||||
|
EXT=""
|
||||||
|
if [ "${{ matrix.goos }}" = "windows" ]; then
|
||||||
|
EXT=".exe"
|
||||||
|
fi
|
||||||
|
|
||||||
|
BINARY_NAME="hatch-${{ matrix.os }}-${{ matrix.arch }}${EXT}"
|
||||||
|
|
||||||
|
go build \
|
||||||
|
-ldflags="-s -w -X main.version=${{ steps.version.outputs.version }}" \
|
||||||
|
-o "${BINARY_NAME}" \
|
||||||
|
./cmd/hatch
|
||||||
|
|
||||||
|
echo "BINARY_NAME=${BINARY_NAME}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Generate checksum
|
||||||
|
run: |
|
||||||
|
sha256sum "${BINARY_NAME}" > "${BINARY_NAME}.sha256"
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.os }}-${{ matrix.arch }}
|
||||||
|
path: |
|
||||||
|
${{ env.BINARY_NAME }}
|
||||||
|
${{ env.BINARY_NAME }}.sha256
|
||||||
|
retention-days: 1
|
||||||
|
|
||||||
|
release:
|
||||||
|
name: Create Release
|
||||||
|
needs: build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Determine version
|
||||||
|
id: version
|
||||||
|
run: |
|
||||||
|
if [ "${{ github.ref_type }}" = "tag" ]; then
|
||||||
|
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "version=dev-$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Download all artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
path: artifacts
|
||||||
|
merge-multiple: true
|
||||||
|
|
||||||
|
- name: List artifacts
|
||||||
|
run: |
|
||||||
|
ls -la artifacts/
|
||||||
|
echo "---"
|
||||||
|
for f in artifacts/*; do
|
||||||
|
echo "$f: $(du -h "$f" | cut -f1)"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Create release notes
|
||||||
|
id: notes
|
||||||
|
run: |
|
||||||
|
# Extract changelog for this version if exists
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
NOTES=""
|
||||||
|
|
||||||
|
if [ -f CHANGELOG.md ]; then
|
||||||
|
# Extract notes for this version
|
||||||
|
NOTES=$(awk "/^## ${VERSION}/,/^## [0-9]/" CHANGELOG.md | head -n -1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$NOTES" ]; then
|
||||||
|
NOTES="## Changes in ${VERSION}
|
||||||
|
|
||||||
|
- Standalone binary releases for Linux, macOS, and Windows
|
||||||
|
- Updated CLI documentation
|
||||||
|
- See [CLI Reference](https://github.com/elfoundation/hatch/blob/main/docs/engineering/cli.md) for usage"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "notes<<EOF" >> $GITHUB_OUTPUT
|
||||||
|
echo "$NOTES" >> $GITHUB_OUTPUT
|
||||||
|
echo "EOF" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Create GitHub Release
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
name: "Hatch ${{ steps.version.outputs.version }}"
|
||||||
|
body: ${{ steps.notes.outputs.notes }}
|
||||||
|
draft: false
|
||||||
|
prerelease: ${{ contains(steps.version.outputs.version, '-') }}
|
||||||
|
files: |
|
||||||
|
artifacts/*
|
||||||
|
fail_on_unmatched_files: false
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Generate SBOM
|
||||||
|
run: |
|
||||||
|
# Create a simple SBOM with version info
|
||||||
|
cat > sbom.json << EOF
|
||||||
|
{
|
||||||
|
"name": "hatch",
|
||||||
|
"version": "${{ steps.version.outputs.version }}",
|
||||||
|
"buildDate": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
|
||||||
|
"goVersion": "$(go version | awk '{print $3}')",
|
||||||
|
"platforms": [
|
||||||
|
"linux/amd64",
|
||||||
|
"linux/arm64",
|
||||||
|
"darwin/amd64",
|
||||||
|
"darwin/arm64",
|
||||||
|
"windows/amd64"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Upload SBOM as release asset
|
||||||
|
gh release upload "${{ steps.version.outputs.version }}" sbom.json --clobber || true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
51
.gitignore
vendored
51
.gitignore
vendored
@ -1,29 +1,30 @@
|
|||||||
# dependencies
|
# Go
|
||||||
node_modules/
|
*.exe
|
||||||
|
*.exe~
|
||||||
|
*.dll
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.test
|
||||||
|
*.out
|
||||||
|
go.work
|
||||||
|
|
||||||
# next.js
|
# Build
|
||||||
.next/
|
/bin
|
||||||
out/
|
/dist
|
||||||
|
/data
|
||||||
|
|
||||||
# production
|
# Runtime data
|
||||||
build/
|
data/
|
||||||
|
*.db
|
||||||
|
coverage.out
|
||||||
|
|
||||||
# misc
|
# IDE
|
||||||
|
.idea/
|
||||||
|
.vscode/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*.pem
|
/hatch
|
||||||
|
hatch.exe
|
||||||
# debug
|
site/*.bak
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# local env files
|
|
||||||
.env*.local
|
|
||||||
|
|
||||||
# vercel
|
|
||||||
.vercel
|
|
||||||
|
|
||||||
# typescript
|
|
||||||
*.tsbuildinfo
|
|
||||||
next-env.d.ts
|
|
||||||
out.backup.*
|
|
||||||
|
|||||||
58
.golangci.yml
Normal file
58
.golangci.yml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
linters:
|
||||||
|
enable:
|
||||||
|
- errcheck
|
||||||
|
- gosimple
|
||||||
|
- govet
|
||||||
|
- ineffassign
|
||||||
|
- staticcheck
|
||||||
|
- unused
|
||||||
|
- gofmt
|
||||||
|
- misspell
|
||||||
|
- unconvert
|
||||||
|
- unparam
|
||||||
|
- prealloc
|
||||||
|
- gocritic
|
||||||
|
- revive
|
||||||
|
|
||||||
|
linters-settings:
|
||||||
|
errcheck:
|
||||||
|
check-type-assertions: true
|
||||||
|
check-blank: true
|
||||||
|
govet:
|
||||||
|
enable:
|
||||||
|
- shadow
|
||||||
|
revive:
|
||||||
|
rules:
|
||||||
|
- name: blank-imports
|
||||||
|
- name: context-as-argument
|
||||||
|
- name: dot-imports
|
||||||
|
- name: error-return
|
||||||
|
- name: error-strings
|
||||||
|
- name: error-naming
|
||||||
|
- name: exported
|
||||||
|
- name: if-return
|
||||||
|
- name: increment-decrement
|
||||||
|
- name: var-naming
|
||||||
|
- name: var-declaration
|
||||||
|
- name: range
|
||||||
|
- name: receiver-naming
|
||||||
|
- name: indent-error-flow
|
||||||
|
- name: superfluous-else
|
||||||
|
- name: unreachable-code
|
||||||
|
- name: redefines-builtin-id
|
||||||
|
|
||||||
|
issues:
|
||||||
|
exclude-rules:
|
||||||
|
# Exclude some linters from running on test files
|
||||||
|
- path: _test\.go
|
||||||
|
linters:
|
||||||
|
- errcheck
|
||||||
|
- gocritic
|
||||||
|
- unparam
|
||||||
|
# Exclude known issues in test files
|
||||||
|
- path: _test\.go
|
||||||
|
text: "func name"
|
||||||
|
|
||||||
|
run:
|
||||||
|
timeout: 5m
|
||||||
|
modules-download-mode: readonly
|
||||||
1
.next/BUILD_ID
Normal file
1
.next/BUILD_ID
Normal file
@ -0,0 +1 @@
|
|||||||
|
W0ph6BZ8oDeJaHcE9fuII
|
||||||
6
.next/app-path-routes-manifest.json
Normal file
6
.next/app-path-routes-manifest.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "/_global-error",
|
||||||
|
"/_not-found/page": "/_not-found",
|
||||||
|
"/favicon.ico/route": "/favicon.ico",
|
||||||
|
"/page": "/"
|
||||||
|
}
|
||||||
20
.next/build-manifest.json
Normal file
20
.next/build-manifest.json
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"pages": {
|
||||||
|
"/_app": []
|
||||||
|
},
|
||||||
|
"devFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/0cz1d0mv5g_q7.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_buildManifest.js",
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_ssgManifest.js",
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_clientMiddlewareManifest.js"
|
||||||
|
],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
"static/chunks/2ckqm4grawju5.js",
|
||||||
|
"static/chunks/2nykiepra7i1k.js",
|
||||||
|
"static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
6
.next/build/56416d4ae4ce586f.js
Normal file
6
.next/build/56416d4ae4ce586f.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
var R=require("./chunks/[turbopack]_runtime.js")("56416d4ae4ce586f.js")
|
||||||
|
R.c("chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js")
|
||||||
|
R.c("chunks/[root-of-the-server]__1f933tp._.js")
|
||||||
|
R.m("[turbopack-node]/child_process/globals.ts [postcss] (ecmascript)")
|
||||||
|
R.m("[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)")
|
||||||
|
module.exports=R.m("[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)").exports
|
||||||
5
.next/build/56416d4ae4ce586f.js.map
Normal file
5
.next/build/56416d4ae4ce586f.js.map
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
206
.next/build/chunks/[root-of-the-server]__0oj80bi._.js
Normal file
206
.next/build/chunks/[root-of-the-server]__0oj80bi._.js
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[externals]/path [external] (path, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("path", () => require("path"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/url [external] (url, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("url", () => require("url"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/fs [external] (fs, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("fs", () => require("fs"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[project]/postcss.config.mjs [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>__TURBOPACK__default__export__
|
||||||
|
]);
|
||||||
|
const config = {
|
||||||
|
plugins: {
|
||||||
|
"@tailwindcss/postcss": {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const __TURBOPACK__default__export__ = config;
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared utilities for our 2 transform implementations.
|
||||||
|
*/ __turbopack_context__.s([
|
||||||
|
"fromPath",
|
||||||
|
()=>fromPath,
|
||||||
|
"getReadEnvVariables",
|
||||||
|
()=>getReadEnvVariables,
|
||||||
|
"toPath",
|
||||||
|
()=>toPath
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/path [external] (path, cjs)");
|
||||||
|
;
|
||||||
|
const contextDir = process.cwd();
|
||||||
|
const toPath = (file)=>{
|
||||||
|
const relPath = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["relative"])(contextDir, file);
|
||||||
|
if ((0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["isAbsolute"])(relPath)) {
|
||||||
|
throw new Error(`Cannot depend on path (${file}) outside of root directory (${contextDir})`);
|
||||||
|
}
|
||||||
|
return __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? relPath.replaceAll(__TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"], '/') : relPath;
|
||||||
|
};
|
||||||
|
const fromPath = (path)=>{
|
||||||
|
return (0, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["join"])(/* turbopackIgnore: true */ contextDir, __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"] !== '/' ? path.replaceAll('/', __TURBOPACK__imported__module__$5b$externals$5d2f$path__$5b$external$5d$__$28$path$2c$__cjs$29$__["sep"]) : path);
|
||||||
|
};
|
||||||
|
// Patch process.env to track which env vars are read
|
||||||
|
const originalEnv = process.env;
|
||||||
|
const readEnvVars = new Set();
|
||||||
|
process.env = new Proxy(originalEnv, {
|
||||||
|
get (target, prop) {
|
||||||
|
if (typeof prop === 'string') {
|
||||||
|
// We register the env var as dependency on the
|
||||||
|
// current transform and all future transforms
|
||||||
|
// since the env var might be cached in module scope
|
||||||
|
// and influence them all
|
||||||
|
readEnvVars.add(prop);
|
||||||
|
}
|
||||||
|
return Reflect.get(target, prop);
|
||||||
|
},
|
||||||
|
set (target, prop, value) {
|
||||||
|
return Reflect.set(target, prop, value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
function getReadEnvVariables() {
|
||||||
|
return Array.from(readEnvVars);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>transform,
|
||||||
|
"init",
|
||||||
|
()=>init
|
||||||
|
]);
|
||||||
|
// @ts-ignore
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/postcss/lib/postcss.mjs [postcss] (ecmascript)");
|
||||||
|
// @ts-ignore
|
||||||
|
var __TURBOPACK__imported__module__$5b$project$5d2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/postcss.config.mjs [postcss] (ecmascript)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/transforms/transforms.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
let processor;
|
||||||
|
const init = async (ipc)=>{
|
||||||
|
let config = __TURBOPACK__imported__module__$5b$project$5d2f$postcss$2e$config$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"];
|
||||||
|
if (typeof config === 'function') {
|
||||||
|
config = await config({
|
||||||
|
env: 'development'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (typeof config === 'undefined') {
|
||||||
|
throw new Error('PostCSS config is undefined (make sure to export an function or object from config file)');
|
||||||
|
}
|
||||||
|
let plugins;
|
||||||
|
if (Array.isArray(config.plugins)) {
|
||||||
|
plugins = config.plugins.map((plugin)=>{
|
||||||
|
if (Array.isArray(plugin)) {
|
||||||
|
return plugin;
|
||||||
|
} else if (typeof plugin === 'string') {
|
||||||
|
return [
|
||||||
|
plugin,
|
||||||
|
{}
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
return plugin;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (typeof config.plugins === 'object') {
|
||||||
|
plugins = Object.entries(config.plugins).filter(([, options])=>options);
|
||||||
|
} else {
|
||||||
|
plugins = [];
|
||||||
|
}
|
||||||
|
const loadedPlugins = plugins.map((plugin)=>{
|
||||||
|
if (Array.isArray(plugin)) {
|
||||||
|
const [arg, options] = plugin;
|
||||||
|
let pluginFactory = arg;
|
||||||
|
if (typeof pluginFactory === 'string') {
|
||||||
|
pluginFactory = require(/* turbopackIgnore: true */ pluginFactory);
|
||||||
|
}
|
||||||
|
if (pluginFactory.default) {
|
||||||
|
pluginFactory = pluginFactory.default;
|
||||||
|
}
|
||||||
|
return pluginFactory(options);
|
||||||
|
}
|
||||||
|
return plugin;
|
||||||
|
});
|
||||||
|
processor = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$postcss$2f$lib$2f$postcss$2e$mjs__$5b$postcss$5d$__$28$ecmascript$29$__["default"])(loadedPlugins);
|
||||||
|
};
|
||||||
|
async function transform(ipc, cssContent, name, sourceMap) {
|
||||||
|
const { css, map, messages } = await processor.process(cssContent, {
|
||||||
|
from: name,
|
||||||
|
to: name,
|
||||||
|
map: sourceMap ? {
|
||||||
|
inline: false,
|
||||||
|
annotation: false
|
||||||
|
} : undefined
|
||||||
|
});
|
||||||
|
const assets = [];
|
||||||
|
const filePaths = [];
|
||||||
|
const buildFilePaths = [];
|
||||||
|
const directories = [];
|
||||||
|
for (const msg of messages){
|
||||||
|
switch(msg.type){
|
||||||
|
case 'asset':
|
||||||
|
assets.push({
|
||||||
|
file: msg.file,
|
||||||
|
content: msg.content,
|
||||||
|
sourceMap: !sourceMap ? undefined : typeof msg.sourceMap === 'string' ? msg.sourceMap : JSON.stringify(msg.sourceMap)
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'dependency':
|
||||||
|
case 'missing-dependency':
|
||||||
|
filePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
|
||||||
|
break;
|
||||||
|
case 'build-dependency':
|
||||||
|
buildFilePaths.push((0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.file));
|
||||||
|
break;
|
||||||
|
case 'dir-dependency':
|
||||||
|
directories.push([
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
|
||||||
|
msg.glob
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
case 'context-dependency':
|
||||||
|
directories.push([
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["toPath"])(msg.dir),
|
||||||
|
'**'
|
||||||
|
]);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ipc.sendInfo({
|
||||||
|
type: 'dependencies',
|
||||||
|
filePaths,
|
||||||
|
directories,
|
||||||
|
buildFilePaths,
|
||||||
|
envVariables: (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$transforms$2f$transforms$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["getReadEnvVariables"])()
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
css,
|
||||||
|
map: sourceMap ? JSON.stringify(map) : undefined,
|
||||||
|
assets
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0oj80bi._.js.map
|
||||||
File diff suppressed because one or more lines are too long
500
.next/build/chunks/[root-of-the-server]__1f933tp._.js
Normal file
500
.next/build/chunks/[root-of-the-server]__1f933tp._.js
Normal file
@ -0,0 +1,500 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[turbopack-node]/child_process/globals.ts [postcss] (ecmascript)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
// @ts-ignore
|
||||||
|
process.turbopack = {};
|
||||||
|
}),
|
||||||
|
"[externals]/node:net [external] (node:net, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("node:net", () => require("node:net"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[externals]/node:stream [external] (node:stream, cjs)", ((__turbopack_context__, module, exports) => {
|
||||||
|
|
||||||
|
const mod = __turbopack_context__.x("node:stream", () => require("node:stream"));
|
||||||
|
|
||||||
|
module.exports = mod;
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"parse",
|
||||||
|
()=>parse
|
||||||
|
]);
|
||||||
|
if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = ("TURBOPACK compile-time value", "/ROOT/compiled/stacktrace-parser") + "/";
|
||||||
|
var n = "<unknown>";
|
||||||
|
function parse(e) {
|
||||||
|
var r = e.split("\n");
|
||||||
|
return r.reduce(function(e, r) {
|
||||||
|
var n = parseChrome(r) || parseWinjs(r) || parseGecko(r) || parseNode(r) || parseJSC(r);
|
||||||
|
if (n) {
|
||||||
|
e.push(n);
|
||||||
|
}
|
||||||
|
return e;
|
||||||
|
}, []);
|
||||||
|
}
|
||||||
|
var a = /^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;
|
||||||
|
var l = /\((\S*)(?::(\d+))(?::(\d+))\)/;
|
||||||
|
function parseChrome(e) {
|
||||||
|
var r = a.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var u = r[2] && r[2].indexOf("native") === 0;
|
||||||
|
var t = r[2] && r[2].indexOf("eval") === 0;
|
||||||
|
var i = l.exec(r[2]);
|
||||||
|
if (t && i != null) {
|
||||||
|
r[2] = i[1];
|
||||||
|
r[3] = i[2];
|
||||||
|
r[4] = i[3];
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: !u ? r[2] : null,
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: u ? [
|
||||||
|
r[2]
|
||||||
|
] : [],
|
||||||
|
lineNumber: r[3] ? +r[3] : null,
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var u = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
||||||
|
function parseWinjs(e) {
|
||||||
|
var r = u.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[2],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[3],
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var t = /^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i;
|
||||||
|
var i = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
|
||||||
|
function parseGecko(e) {
|
||||||
|
var r = t.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var a = r[3] && r[3].indexOf(" > eval") > -1;
|
||||||
|
var l = i.exec(r[3]);
|
||||||
|
if (a && l != null) {
|
||||||
|
r[3] = l[1];
|
||||||
|
r[4] = l[2];
|
||||||
|
r[5] = null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[3],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: r[2] ? r[2].split(",") : [],
|
||||||
|
lineNumber: r[4] ? +r[4] : null,
|
||||||
|
column: r[5] ? +r[5] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var s = /^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;
|
||||||
|
function parseJSC(e) {
|
||||||
|
var r = s.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[3],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[4],
|
||||||
|
column: r[5] ? +r[5] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
var o = /^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
||||||
|
function parseNode(e) {
|
||||||
|
var r = o.exec(e);
|
||||||
|
if (!r) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
file: r[2],
|
||||||
|
methodName: r[1] || n,
|
||||||
|
arguments: [],
|
||||||
|
lineNumber: +r[3],
|
||||||
|
column: r[4] ? +r[4] : null
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/error.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"default",
|
||||||
|
()=>isError,
|
||||||
|
"getProperError",
|
||||||
|
()=>getProperError,
|
||||||
|
"structuredError",
|
||||||
|
()=>structuredError
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/compiled/stacktrace-parser/index.js [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
function isError(err) {
|
||||||
|
return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;
|
||||||
|
}
|
||||||
|
function getProperError(err) {
|
||||||
|
if (isError(err)) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
if ("TURBOPACK compile-time falsy", 0) //TURBOPACK unreachable
|
||||||
|
;
|
||||||
|
return new Error(isPlainObject(err) ? JSON.stringify(err) : err + '');
|
||||||
|
}
|
||||||
|
function getObjectClassLabel(value) {
|
||||||
|
return Object.prototype.toString.call(value);
|
||||||
|
}
|
||||||
|
function isPlainObject(value) {
|
||||||
|
if (getObjectClassLabel(value) !== '[object Object]') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const prototype = Object.getPrototypeOf(value);
|
||||||
|
/**
|
||||||
|
* this used to be previously:
|
||||||
|
*
|
||||||
|
* `return prototype === null || prototype === Object.prototype`
|
||||||
|
*
|
||||||
|
* but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.
|
||||||
|
*
|
||||||
|
* It was changed to the current implementation since it's resilient to serialization.
|
||||||
|
*/ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');
|
||||||
|
}
|
||||||
|
function structuredError(e) {
|
||||||
|
e = getProperError(e);
|
||||||
|
return {
|
||||||
|
name: e.name,
|
||||||
|
message: e.message,
|
||||||
|
stack: typeof e.stack === 'string' ? (0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$compiled$2f$stacktrace$2d$parser$2f$index$2e$js__$5b$postcss$5d$__$28$ecmascript$29$__["parse"])(e.stack) : [],
|
||||||
|
cause: e.cause ? structuredError(getProperError(e.cause)) : undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/index.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"IPC",
|
||||||
|
()=>IPC
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:net [external] (node:net, cjs)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__ = __turbopack_context__.i("[externals]/node:stream [external] (node:stream, cjs)");
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/error.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
;
|
||||||
|
;
|
||||||
|
function createIpc(port) {
|
||||||
|
const socket = (0, __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$net__$5b$external$5d$__$28$node$3a$net$2c$__cjs$29$__["createConnection"])({
|
||||||
|
port,
|
||||||
|
host: '127.0.0.1'
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* A writable stream that writes to the socket.
|
||||||
|
* We don't write directly to the socket because we need to
|
||||||
|
* handle backpressure and wait for the socket to be drained
|
||||||
|
* before writing more data.
|
||||||
|
*/ const socketWritable = new __TURBOPACK__imported__module__$5b$externals$5d2f$node$3a$stream__$5b$external$5d$__$28$node$3a$stream$2c$__cjs$29$__["Writable"]({
|
||||||
|
write (chunk, _enc, cb) {
|
||||||
|
if (socket.write(chunk)) {
|
||||||
|
cb();
|
||||||
|
} else {
|
||||||
|
socket.once('drain', cb);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
final (cb) {
|
||||||
|
socket.end(cb);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const packetQueue = [];
|
||||||
|
const recvPromiseResolveQueue = [];
|
||||||
|
function pushPacket(packet) {
|
||||||
|
const recvPromiseResolve = recvPromiseResolveQueue.shift();
|
||||||
|
if (recvPromiseResolve != null) {
|
||||||
|
recvPromiseResolve(JSON.parse(packet.toString('utf8')));
|
||||||
|
} else {
|
||||||
|
packetQueue.push(packet);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let state = {
|
||||||
|
type: 'waiting'
|
||||||
|
};
|
||||||
|
let buffer = Buffer.alloc(0);
|
||||||
|
socket.once('connect', ()=>{
|
||||||
|
socket.setNoDelay(true);
|
||||||
|
socket.on('data', (chunk)=>{
|
||||||
|
buffer = Buffer.concat([
|
||||||
|
buffer,
|
||||||
|
chunk
|
||||||
|
]);
|
||||||
|
loop: while(true){
|
||||||
|
switch(state.type){
|
||||||
|
case 'waiting':
|
||||||
|
{
|
||||||
|
if (buffer.length >= 4) {
|
||||||
|
const length = buffer.readUInt32BE(0);
|
||||||
|
buffer = buffer.subarray(4);
|
||||||
|
state = {
|
||||||
|
type: 'packet',
|
||||||
|
length
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'packet':
|
||||||
|
{
|
||||||
|
if (buffer.length >= state.length) {
|
||||||
|
const packet = buffer.subarray(0, state.length);
|
||||||
|
buffer = buffer.subarray(state.length);
|
||||||
|
state = {
|
||||||
|
type: 'waiting'
|
||||||
|
};
|
||||||
|
pushPacket(packet);
|
||||||
|
} else {
|
||||||
|
break loop;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
invariant(state, (state)=>`Unknown state type: ${state?.type}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
// When the socket is closed, this process is no longer needed.
|
||||||
|
// This might happen e. g. when parent process is killed or
|
||||||
|
// node.js pool is garbage collected.
|
||||||
|
socket.once('close', ()=>{
|
||||||
|
process.exit(0);
|
||||||
|
});
|
||||||
|
// TODO(lukesandberg): some of the messages being sent are very large and contain lots
|
||||||
|
// of redundant information. Consider adding gzip compression to our stream.
|
||||||
|
function doSend(message) {
|
||||||
|
return new Promise((resolve, reject)=>{
|
||||||
|
// Reserve 4 bytes for our length prefix, we will over-write after encoding.
|
||||||
|
const packet = Buffer.from('0000' + message, 'utf8');
|
||||||
|
packet.writeUInt32BE(packet.length - 4, 0);
|
||||||
|
socketWritable.write(packet, (err)=>{
|
||||||
|
process.stderr.write(`TURBOPACK_OUTPUT_D\n`);
|
||||||
|
process.stdout.write(`TURBOPACK_OUTPUT_D\n`);
|
||||||
|
if (err != null) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function send(message) {
|
||||||
|
return doSend(JSON.stringify(message));
|
||||||
|
}
|
||||||
|
function sendReady() {
|
||||||
|
return doSend('');
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
async recv () {
|
||||||
|
const packet = packetQueue.shift();
|
||||||
|
if (packet != null) {
|
||||||
|
return JSON.parse(packet.toString('utf8'));
|
||||||
|
}
|
||||||
|
const result = await new Promise((resolve)=>{
|
||||||
|
recvPromiseResolveQueue.push((result)=>{
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
send (message) {
|
||||||
|
return send(message);
|
||||||
|
},
|
||||||
|
sendReady,
|
||||||
|
async sendError (error) {
|
||||||
|
let failed = false;
|
||||||
|
try {
|
||||||
|
await send({
|
||||||
|
type: 'error',
|
||||||
|
...(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$error$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["structuredError"])(error)
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
// There's nothing we can do about errors that happen after this point, we can't tell anyone
|
||||||
|
// about them.
|
||||||
|
console.error('failed to send error back to rust:', err);
|
||||||
|
failed = true;
|
||||||
|
}
|
||||||
|
await new Promise((res)=>socket.end(()=>res()));
|
||||||
|
process.exit(failed ? 1 : 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const PORT = process.argv[2];
|
||||||
|
const IPC = createIpc(parseInt(PORT, 10));
|
||||||
|
process.on('uncaughtException', (err)=>{
|
||||||
|
IPC.sendError(err);
|
||||||
|
});
|
||||||
|
process.on('unhandledRejection', (reason)=>{
|
||||||
|
IPC.sendError(reason instanceof Error ? reason : new Error(String(reason)));
|
||||||
|
});
|
||||||
|
const improveConsole = (name, stream, addStack)=>{
|
||||||
|
// @ts-ignore
|
||||||
|
const original = console[name];
|
||||||
|
// @ts-ignore
|
||||||
|
const stdio = process[stream];
|
||||||
|
// @ts-ignore
|
||||||
|
console[name] = (...args)=>{
|
||||||
|
stdio.write(`TURBOPACK_OUTPUT_B\n`);
|
||||||
|
original(...args);
|
||||||
|
if (addStack) {
|
||||||
|
const stack = new Error().stack?.replace(/^.+\n.+\n/, '') + '\n';
|
||||||
|
stdio.write('TURBOPACK_OUTPUT_S\n');
|
||||||
|
stdio.write(stack);
|
||||||
|
}
|
||||||
|
stdio.write('TURBOPACK_OUTPUT_E\n');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
improveConsole('error', 'stderr', true);
|
||||||
|
improveConsole('warn', 'stderr', true);
|
||||||
|
improveConsole('count', 'stdout', true);
|
||||||
|
improveConsole('trace', 'stderr', false);
|
||||||
|
improveConsole('log', 'stdout', true);
|
||||||
|
improveConsole('group', 'stdout', true);
|
||||||
|
improveConsole('groupCollapsed', 'stdout', true);
|
||||||
|
improveConsole('table', 'stdout', true);
|
||||||
|
improveConsole('debug', 'stdout', true);
|
||||||
|
improveConsole('info', 'stdout', true);
|
||||||
|
improveConsole('dir', 'stdout', true);
|
||||||
|
improveConsole('dirxml', 'stdout', true);
|
||||||
|
improveConsole('timeEnd', 'stdout', true);
|
||||||
|
improveConsole('timeLog', 'stdout', true);
|
||||||
|
improveConsole('timeStamp', 'stdout', true);
|
||||||
|
improveConsole('assert', 'stderr', true);
|
||||||
|
/**
|
||||||
|
* Utility function to ensure all variants of an enum are handled.
|
||||||
|
*/ function invariant(never, computeMessage) {
|
||||||
|
throw new Error(`Invariant: ${computeMessage(never)}`);
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([
|
||||||
|
"run",
|
||||||
|
()=>run
|
||||||
|
]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/child_process/index.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
const ipc = __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$index$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["IPC"];
|
||||||
|
const queue = [];
|
||||||
|
const run = async (moduleFactory)=>{
|
||||||
|
let nextId = 1;
|
||||||
|
const requests = new Map();
|
||||||
|
const internalIpc = {
|
||||||
|
sendInfo: (message)=>ipc.send({
|
||||||
|
type: 'info',
|
||||||
|
data: message
|
||||||
|
}),
|
||||||
|
sendRequest: (message)=>{
|
||||||
|
const id = nextId++;
|
||||||
|
let resolve, reject;
|
||||||
|
const promise = new Promise((res, rej)=>{
|
||||||
|
resolve = res;
|
||||||
|
reject = rej;
|
||||||
|
});
|
||||||
|
requests.set(id, {
|
||||||
|
resolve,
|
||||||
|
reject
|
||||||
|
});
|
||||||
|
return ipc.send({
|
||||||
|
type: 'request',
|
||||||
|
id,
|
||||||
|
data: message
|
||||||
|
}).then(()=>promise);
|
||||||
|
},
|
||||||
|
sendError: (error)=>{
|
||||||
|
return ipc.sendError(error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Initialize module and send ready message
|
||||||
|
let getValue;
|
||||||
|
try {
|
||||||
|
const module = await moduleFactory();
|
||||||
|
if (typeof module.init === 'function') {
|
||||||
|
await module.init();
|
||||||
|
}
|
||||||
|
getValue = module.default;
|
||||||
|
await ipc.sendReady();
|
||||||
|
} catch (err) {
|
||||||
|
await ipc.sendReady();
|
||||||
|
await ipc.sendError(err);
|
||||||
|
}
|
||||||
|
// Queue handling
|
||||||
|
let isRunning = false;
|
||||||
|
const run = async ()=>{
|
||||||
|
while(queue.length > 0){
|
||||||
|
const args = queue.shift();
|
||||||
|
try {
|
||||||
|
const value = await getValue(internalIpc, ...args);
|
||||||
|
await ipc.send({
|
||||||
|
type: 'end',
|
||||||
|
data: value === undefined ? undefined : JSON.stringify(value, null, 2),
|
||||||
|
duration: 0
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
await ipc.sendError(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isRunning = false;
|
||||||
|
};
|
||||||
|
// Communication handling
|
||||||
|
while(true){
|
||||||
|
const msg = await ipc.recv();
|
||||||
|
switch(msg.type){
|
||||||
|
case 'evaluate':
|
||||||
|
{
|
||||||
|
queue.push(msg.args);
|
||||||
|
if (!isRunning) {
|
||||||
|
isRunning = true;
|
||||||
|
run();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 'result':
|
||||||
|
{
|
||||||
|
const request = requests.get(msg.id);
|
||||||
|
if (request) {
|
||||||
|
requests.delete(msg.id);
|
||||||
|
if (msg.error) {
|
||||||
|
request.reject(new Error(msg.error));
|
||||||
|
} else {
|
||||||
|
request.resolve(msg.data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
console.error('unexpected message type', msg.type);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
"[turbopack-node]/child_process/evaluate.ts/evaluate.js { INNER => \"[turbopack-node]/transforms/postcss.ts { CONFIG => \\\"[project]/postcss.config.mjs [postcss] (ecmascript)\\\" } [postcss] (ecmascript)\", RUNTIME => \"[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)\" } [postcss] (ecmascript)", ((__turbopack_context__) => {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
__turbopack_context__.s([]);
|
||||||
|
var __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[turbopack-node]/child_process/evaluate.ts [postcss] (ecmascript)");
|
||||||
|
;
|
||||||
|
(0, __TURBOPACK__imported__module__$5b$turbopack$2d$node$5d2f$child_process$2f$evaluate$2e$ts__$5b$postcss$5d$__$28$ecmascript$29$__["run"])(()=>__turbopack_context__.A('[turbopack-node]/transforms/postcss.ts { CONFIG => "[project]/postcss.config.mjs [postcss] (ecmascript)" } [postcss] (ecmascript, async loader)'));
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Broot-of-the-server%5D__1f933tp._.js.map
|
||||||
11
.next/build/chunks/[root-of-the-server]__1f933tp._.js.map
Normal file
11
.next/build/chunks/[root-of-the-server]__1f933tp._.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,13 @@
|
|||||||
|
module.exports = [
|
||||||
|
"[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript, async loader)", ((__turbopack_context__) => {
|
||||||
|
|
||||||
|
__turbopack_context__.v((parentImport) => {
|
||||||
|
return Promise.all([
|
||||||
|
"chunks/node_modules_20v-8wl._.js",
|
||||||
|
"chunks/[root-of-the-server]__0oj80bi._.js"
|
||||||
|
].map((chunk) => __turbopack_context__.l(chunk))).then(() => {
|
||||||
|
return parentImport("[turbopack-node]/transforms/postcss.ts { CONFIG => \"[project]/postcss.config.mjs [postcss] (ecmascript)\" } [postcss] (ecmascript)");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
];
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
890
.next/build/chunks/[turbopack]_runtime.js
Normal file
890
.next/build/chunks/[turbopack]_runtime.js
Normal file
@ -0,0 +1,890 @@
|
|||||||
|
const RUNTIME_PUBLIC_PATH = "chunks/[turbopack]_runtime.js";
|
||||||
|
const RELATIVE_ROOT_PATH = "..";
|
||||||
|
const ASSET_PREFIX = "/";
|
||||||
|
const WORKER_FORWARDED_GLOBALS = [];
|
||||||
|
/**
|
||||||
|
* This file contains runtime types and functions that are shared between all
|
||||||
|
* TurboPack ECMAScript runtimes.
|
||||||
|
*
|
||||||
|
* It will be prepended to the runtime code of each runtime.
|
||||||
|
*/ /* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="./runtime-types.d.ts" />
|
||||||
|
/**
|
||||||
|
* Describes why a module was instantiated.
|
||||||
|
* Shared between browser and Node.js runtimes.
|
||||||
|
*/ var SourceType = /*#__PURE__*/ function(SourceType) {
|
||||||
|
/**
|
||||||
|
* The module was instantiated because it was included in an evaluated chunk's
|
||||||
|
* runtime.
|
||||||
|
* SourceData is a ChunkPath.
|
||||||
|
*/ SourceType[SourceType["Runtime"] = 0] = "Runtime";
|
||||||
|
/**
|
||||||
|
* The module was instantiated because a parent module imported it.
|
||||||
|
* SourceData is a ModuleId.
|
||||||
|
*/ SourceType[SourceType["Parent"] = 1] = "Parent";
|
||||||
|
/**
|
||||||
|
* The module was instantiated because it was included in a chunk's hot module
|
||||||
|
* update.
|
||||||
|
* SourceData is an array of ModuleIds or undefined.
|
||||||
|
*/ SourceType[SourceType["Update"] = 2] = "Update";
|
||||||
|
return SourceType;
|
||||||
|
}(SourceType || {});
|
||||||
|
/**
|
||||||
|
* Flag indicating which module object type to create when a module is merged. Set to `true`
|
||||||
|
* by each runtime that uses ModuleWithDirection (browser dev-base.ts, nodejs dev-base.ts,
|
||||||
|
* nodejs build-base.ts). Browser production (build-base.ts) leaves it as `false` since it
|
||||||
|
* uses plain Module objects.
|
||||||
|
*/ let createModuleWithDirectionFlag = false;
|
||||||
|
const REEXPORTED_OBJECTS = new WeakMap();
|
||||||
|
/**
|
||||||
|
* Constructs the `__turbopack_context__` object for a module.
|
||||||
|
*/ function Context(module, exports) {
|
||||||
|
this.m = module;
|
||||||
|
// We need to store this here instead of accessing it from the module object to:
|
||||||
|
// 1. Make it available to factories directly, since we rewrite `this` to
|
||||||
|
// `__turbopack_context__.e` in CJS modules.
|
||||||
|
// 2. Support async modules which rewrite `module.exports` to a promise, so we
|
||||||
|
// can still access the original exports object from functions like
|
||||||
|
// `esmExport`
|
||||||
|
// Ideally we could find a new approach for async modules and drop this property altogether.
|
||||||
|
this.e = exports;
|
||||||
|
}
|
||||||
|
const contextPrototype = Context.prototype;
|
||||||
|
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||||
|
const toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag;
|
||||||
|
function defineProp(obj, name, options) {
|
||||||
|
if (!hasOwnProperty.call(obj, name)) Object.defineProperty(obj, name, options);
|
||||||
|
}
|
||||||
|
function getOverwrittenModule(moduleCache, id) {
|
||||||
|
let module = moduleCache[id];
|
||||||
|
if (!module) {
|
||||||
|
if (createModuleWithDirectionFlag) {
|
||||||
|
// set in development modes for hmr support
|
||||||
|
module = createModuleWithDirection(id);
|
||||||
|
} else {
|
||||||
|
module = createModuleObject(id);
|
||||||
|
}
|
||||||
|
moduleCache[id] = module;
|
||||||
|
}
|
||||||
|
return module;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Creates the module object. Only done here to ensure all module objects have the same shape.
|
||||||
|
*/ function createModuleObject(id) {
|
||||||
|
return {
|
||||||
|
exports: {},
|
||||||
|
error: undefined,
|
||||||
|
id,
|
||||||
|
namespaceObject: undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
function createModuleWithDirection(id) {
|
||||||
|
return {
|
||||||
|
exports: {},
|
||||||
|
error: undefined,
|
||||||
|
id,
|
||||||
|
namespaceObject: undefined,
|
||||||
|
parents: [],
|
||||||
|
children: []
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const BindingTag_Value = 0;
|
||||||
|
/**
|
||||||
|
* Adds the getters to the exports object.
|
||||||
|
*/ function esm(exports, bindings) {
|
||||||
|
defineProp(exports, '__esModule', {
|
||||||
|
value: true
|
||||||
|
});
|
||||||
|
if (toStringTag) defineProp(exports, toStringTag, {
|
||||||
|
value: 'Module'
|
||||||
|
});
|
||||||
|
let i = 0;
|
||||||
|
while(i < bindings.length){
|
||||||
|
const propName = bindings[i++];
|
||||||
|
const tagOrFunction = bindings[i++];
|
||||||
|
if (typeof tagOrFunction === 'number') {
|
||||||
|
if (tagOrFunction === BindingTag_Value) {
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
value: bindings[i++],
|
||||||
|
enumerable: true,
|
||||||
|
writable: false
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
throw new Error(`unexpected tag: ${tagOrFunction}`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const getterFn = tagOrFunction;
|
||||||
|
if (typeof bindings[i] === 'function') {
|
||||||
|
const setterFn = bindings[i++];
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
get: getterFn,
|
||||||
|
set: setterFn,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
defineProp(exports, propName, {
|
||||||
|
get: getterFn,
|
||||||
|
enumerable: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Object.seal(exports);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Makes the module an ESM with exports
|
||||||
|
*/ function esmExport(bindings, id) {
|
||||||
|
let module;
|
||||||
|
let exports;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
exports = module.exports;
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
exports = this.e;
|
||||||
|
}
|
||||||
|
module.namespaceObject = exports;
|
||||||
|
esm(exports, bindings);
|
||||||
|
}
|
||||||
|
contextPrototype.s = esmExport;
|
||||||
|
function ensureDynamicExports(module, exports) {
|
||||||
|
let reexportedObjects = REEXPORTED_OBJECTS.get(module);
|
||||||
|
if (!reexportedObjects) {
|
||||||
|
REEXPORTED_OBJECTS.set(module, reexportedObjects = []);
|
||||||
|
module.exports = module.namespaceObject = new Proxy(exports, {
|
||||||
|
get (target, prop) {
|
||||||
|
if (hasOwnProperty.call(target, prop) || prop === 'default' || prop === '__esModule') {
|
||||||
|
return Reflect.get(target, prop);
|
||||||
|
}
|
||||||
|
for (const obj of reexportedObjects){
|
||||||
|
const value = Reflect.get(obj, prop);
|
||||||
|
if (value !== undefined) return value;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
},
|
||||||
|
ownKeys (target) {
|
||||||
|
const keys = Reflect.ownKeys(target);
|
||||||
|
for (const obj of reexportedObjects){
|
||||||
|
for (const key of Reflect.ownKeys(obj)){
|
||||||
|
if (key !== 'default' && !keys.includes(key)) keys.push(key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return keys;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return reexportedObjects;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Dynamically exports properties from an object
|
||||||
|
*/ function dynamicExport(object, id) {
|
||||||
|
let module;
|
||||||
|
let exports;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
exports = module.exports;
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
exports = this.e;
|
||||||
|
}
|
||||||
|
const reexportedObjects = ensureDynamicExports(module, exports);
|
||||||
|
if (typeof object === 'object' && object !== null) {
|
||||||
|
reexportedObjects.push(object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contextPrototype.j = dynamicExport;
|
||||||
|
function exportValue(value, id) {
|
||||||
|
let module;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
}
|
||||||
|
module.exports = value;
|
||||||
|
}
|
||||||
|
contextPrototype.v = exportValue;
|
||||||
|
function exportNamespace(namespace, id) {
|
||||||
|
let module;
|
||||||
|
if (id != null) {
|
||||||
|
module = getOverwrittenModule(this.c, id);
|
||||||
|
} else {
|
||||||
|
module = this.m;
|
||||||
|
}
|
||||||
|
module.exports = module.namespaceObject = namespace;
|
||||||
|
}
|
||||||
|
contextPrototype.n = exportNamespace;
|
||||||
|
function createGetter(obj, key) {
|
||||||
|
return ()=>obj[key];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @returns prototype of the object
|
||||||
|
*/ const getProto = Object.getPrototypeOf ? (obj)=>Object.getPrototypeOf(obj) : (obj)=>obj.__proto__;
|
||||||
|
/** Prototypes that are not expanded for exports */ const LEAF_PROTOTYPES = [
|
||||||
|
null,
|
||||||
|
getProto({}),
|
||||||
|
getProto([]),
|
||||||
|
getProto(getProto)
|
||||||
|
];
|
||||||
|
/**
|
||||||
|
* @param raw
|
||||||
|
* @param ns
|
||||||
|
* @param allowExportDefault
|
||||||
|
* * `false`: will have the raw module as default export
|
||||||
|
* * `true`: will have the default property as default export
|
||||||
|
*/ function interopEsm(raw, ns, allowExportDefault) {
|
||||||
|
const bindings = [];
|
||||||
|
let defaultLocation = -1;
|
||||||
|
for(let current = raw; (typeof current === 'object' || typeof current === 'function') && !LEAF_PROTOTYPES.includes(current); current = getProto(current)){
|
||||||
|
for (const key of Object.getOwnPropertyNames(current)){
|
||||||
|
bindings.push(key, createGetter(raw, key));
|
||||||
|
if (defaultLocation === -1 && key === 'default') {
|
||||||
|
defaultLocation = bindings.length - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// this is not really correct
|
||||||
|
// we should set the `default` getter if the imported module is a `.cjs file`
|
||||||
|
if (!(allowExportDefault && defaultLocation >= 0)) {
|
||||||
|
// Replace the binding with one for the namespace itself in order to preserve iteration order.
|
||||||
|
if (defaultLocation >= 0) {
|
||||||
|
// Replace the getter with the value
|
||||||
|
bindings.splice(defaultLocation, 1, BindingTag_Value, raw);
|
||||||
|
} else {
|
||||||
|
bindings.push('default', BindingTag_Value, raw);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
esm(ns, bindings);
|
||||||
|
return ns;
|
||||||
|
}
|
||||||
|
function createNS(raw) {
|
||||||
|
if (typeof raw === 'function') {
|
||||||
|
return function(...args) {
|
||||||
|
return raw.apply(this, args);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return Object.create(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function esmImport(id) {
|
||||||
|
const module = getOrInstantiateModuleFromParent(id, this.m);
|
||||||
|
// any ES module has to have `module.namespaceObject` defined.
|
||||||
|
if (module.namespaceObject) return module.namespaceObject;
|
||||||
|
// only ESM can be an async module, so we don't need to worry about exports being a promise here.
|
||||||
|
const raw = module.exports;
|
||||||
|
return module.namespaceObject = interopEsm(raw, createNS(raw), raw && raw.__esModule);
|
||||||
|
}
|
||||||
|
contextPrototype.i = esmImport;
|
||||||
|
function asyncLoader(moduleId) {
|
||||||
|
const loader = this.r(moduleId);
|
||||||
|
return loader(esmImport.bind(this));
|
||||||
|
}
|
||||||
|
contextPrototype.A = asyncLoader;
|
||||||
|
// Add a simple runtime require so that environments without one can still pass
|
||||||
|
// `typeof require` CommonJS checks so that exports are correctly registered.
|
||||||
|
const runtimeRequire = // @ts-ignore
|
||||||
|
typeof require === 'function' ? require : function require1() {
|
||||||
|
throw new Error('Unexpected use of runtime require');
|
||||||
|
};
|
||||||
|
contextPrototype.t = runtimeRequire;
|
||||||
|
function commonJsRequire(id) {
|
||||||
|
return getOrInstantiateModuleFromParent(id, this.m).exports;
|
||||||
|
}
|
||||||
|
contextPrototype.r = commonJsRequire;
|
||||||
|
/**
|
||||||
|
* Remove fragments and query parameters since they are never part of the context map keys
|
||||||
|
*
|
||||||
|
* This matches how we parse patterns at resolving time. Arguably we should only do this for
|
||||||
|
* strings passed to `import` but the resolve does it for `import` and `require` and so we do
|
||||||
|
* here as well.
|
||||||
|
*/ function parseRequest(request) {
|
||||||
|
// Per the URI spec fragments can contain `?` characters, so we should trim it off first
|
||||||
|
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.5
|
||||||
|
const hashIndex = request.indexOf('#');
|
||||||
|
if (hashIndex !== -1) {
|
||||||
|
request = request.substring(0, hashIndex);
|
||||||
|
}
|
||||||
|
const queryIndex = request.indexOf('?');
|
||||||
|
if (queryIndex !== -1) {
|
||||||
|
request = request.substring(0, queryIndex);
|
||||||
|
}
|
||||||
|
return request;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* `require.context` and require/import expression runtime.
|
||||||
|
*/ function moduleContext(map) {
|
||||||
|
function moduleContext(id) {
|
||||||
|
id = parseRequest(id);
|
||||||
|
if (hasOwnProperty.call(map, id)) {
|
||||||
|
return map[id].module();
|
||||||
|
}
|
||||||
|
const e = new Error(`Cannot find module '${id}'`);
|
||||||
|
e.code = 'MODULE_NOT_FOUND';
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
moduleContext.keys = ()=>{
|
||||||
|
return Object.keys(map);
|
||||||
|
};
|
||||||
|
moduleContext.resolve = (id)=>{
|
||||||
|
id = parseRequest(id);
|
||||||
|
if (hasOwnProperty.call(map, id)) {
|
||||||
|
return map[id].id();
|
||||||
|
}
|
||||||
|
const e = new Error(`Cannot find module '${id}'`);
|
||||||
|
e.code = 'MODULE_NOT_FOUND';
|
||||||
|
throw e;
|
||||||
|
};
|
||||||
|
moduleContext.import = async (id)=>{
|
||||||
|
return await moduleContext(id);
|
||||||
|
};
|
||||||
|
return moduleContext;
|
||||||
|
}
|
||||||
|
contextPrototype.f = moduleContext;
|
||||||
|
/**
|
||||||
|
* Returns the path of a chunk defined by its data.
|
||||||
|
*/ function getChunkPath(chunkData) {
|
||||||
|
return typeof chunkData === 'string' ? chunkData : chunkData.path;
|
||||||
|
}
|
||||||
|
function isPromise(maybePromise) {
|
||||||
|
return maybePromise != null && typeof maybePromise === 'object' && 'then' in maybePromise && typeof maybePromise.then === 'function';
|
||||||
|
}
|
||||||
|
function isAsyncModuleExt(obj) {
|
||||||
|
return turbopackQueues in obj;
|
||||||
|
}
|
||||||
|
function createPromise() {
|
||||||
|
let resolve;
|
||||||
|
let reject;
|
||||||
|
const promise = new Promise((res, rej)=>{
|
||||||
|
reject = rej;
|
||||||
|
resolve = res;
|
||||||
|
});
|
||||||
|
return {
|
||||||
|
promise,
|
||||||
|
resolve: resolve,
|
||||||
|
reject: reject
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// Load the CompressedmoduleFactories of a chunk into the `moduleFactories` Map.
|
||||||
|
// The CompressedModuleFactories format is
|
||||||
|
// - 1 or more module ids
|
||||||
|
// - a module factory function
|
||||||
|
// So walking this is a little complex but the flat structure is also fast to
|
||||||
|
// traverse, we can use `typeof` operators to distinguish the two cases.
|
||||||
|
function installCompressedModuleFactories(chunkModules, offset, moduleFactories, newModuleId) {
|
||||||
|
let i = offset;
|
||||||
|
while(i < chunkModules.length){
|
||||||
|
let end = i + 1;
|
||||||
|
// Find our factory function
|
||||||
|
while(end < chunkModules.length && typeof chunkModules[end] !== 'function'){
|
||||||
|
end++;
|
||||||
|
}
|
||||||
|
if (end === chunkModules.length) {
|
||||||
|
throw new Error('malformed chunk format, expected a factory function');
|
||||||
|
}
|
||||||
|
// Install the factory for each module ID that doesn't already have one.
|
||||||
|
// When some IDs in this group already have a factory, reuse that existing
|
||||||
|
// group factory for the missing IDs to keep all IDs in the group consistent.
|
||||||
|
// Otherwise, install the factory from this chunk.
|
||||||
|
const moduleFactoryFn = chunkModules[end];
|
||||||
|
let existingGroupFactory = undefined;
|
||||||
|
for(let j = i; j < end; j++){
|
||||||
|
const id = chunkModules[j];
|
||||||
|
const existingFactory = moduleFactories.get(id);
|
||||||
|
if (existingFactory) {
|
||||||
|
existingGroupFactory = existingFactory;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const factoryToInstall = existingGroupFactory ?? moduleFactoryFn;
|
||||||
|
let didInstallFactory = false;
|
||||||
|
for(let j = i; j < end; j++){
|
||||||
|
const id = chunkModules[j];
|
||||||
|
if (!moduleFactories.has(id)) {
|
||||||
|
if (!didInstallFactory) {
|
||||||
|
if (factoryToInstall === moduleFactoryFn) {
|
||||||
|
applyModuleFactoryName(moduleFactoryFn);
|
||||||
|
}
|
||||||
|
didInstallFactory = true;
|
||||||
|
}
|
||||||
|
moduleFactories.set(id, factoryToInstall);
|
||||||
|
newModuleId?.(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i = end + 1; // end is pointing at the last factory advance to the next id or the end of the array.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// everything below is adapted from webpack
|
||||||
|
// https://github.com/webpack/webpack/blob/6be4065ade1e252c1d8dcba4af0f43e32af1bdc1/lib/runtime/AsyncModuleRuntimeModule.js#L13
|
||||||
|
const turbopackQueues = Symbol('turbopack queues');
|
||||||
|
const turbopackExports = Symbol('turbopack exports');
|
||||||
|
const turbopackError = Symbol('turbopack error');
|
||||||
|
function resolveQueue(queue) {
|
||||||
|
if (queue && queue.status !== 1) {
|
||||||
|
queue.status = 1;
|
||||||
|
queue.forEach((fn)=>fn.queueCount--);
|
||||||
|
queue.forEach((fn)=>fn.queueCount-- ? fn.queueCount++ : fn());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function wrapDeps(deps) {
|
||||||
|
return deps.map((dep)=>{
|
||||||
|
if (dep !== null && typeof dep === 'object') {
|
||||||
|
if (isAsyncModuleExt(dep)) return dep;
|
||||||
|
if (isPromise(dep)) {
|
||||||
|
const queue = Object.assign([], {
|
||||||
|
status: 0
|
||||||
|
});
|
||||||
|
const obj = {
|
||||||
|
[turbopackExports]: {},
|
||||||
|
[turbopackQueues]: (fn)=>fn(queue)
|
||||||
|
};
|
||||||
|
dep.then((res)=>{
|
||||||
|
obj[turbopackExports] = res;
|
||||||
|
resolveQueue(queue);
|
||||||
|
}, (err)=>{
|
||||||
|
obj[turbopackError] = err;
|
||||||
|
resolveQueue(queue);
|
||||||
|
});
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
[turbopackExports]: dep,
|
||||||
|
[turbopackQueues]: ()=>{}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function asyncModule(body, hasAwait) {
|
||||||
|
const module = this.m;
|
||||||
|
const queue = hasAwait ? Object.assign([], {
|
||||||
|
status: -1
|
||||||
|
}) : undefined;
|
||||||
|
const depQueues = new Set();
|
||||||
|
const { resolve, reject, promise: rawPromise } = createPromise();
|
||||||
|
const promise = Object.assign(rawPromise, {
|
||||||
|
[turbopackExports]: module.exports,
|
||||||
|
[turbopackQueues]: (fn)=>{
|
||||||
|
queue && fn(queue);
|
||||||
|
depQueues.forEach(fn);
|
||||||
|
promise['catch'](()=>{});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
const attributes = {
|
||||||
|
get () {
|
||||||
|
return promise;
|
||||||
|
},
|
||||||
|
set (v) {
|
||||||
|
// Calling `esmExport` leads to this.
|
||||||
|
if (v !== promise) {
|
||||||
|
promise[turbopackExports] = v;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Object.defineProperty(module, 'exports', attributes);
|
||||||
|
Object.defineProperty(module, 'namespaceObject', attributes);
|
||||||
|
function handleAsyncDependencies(deps) {
|
||||||
|
const currentDeps = wrapDeps(deps);
|
||||||
|
const getResult = ()=>currentDeps.map((d)=>{
|
||||||
|
if (d[turbopackError]) throw d[turbopackError];
|
||||||
|
return d[turbopackExports];
|
||||||
|
});
|
||||||
|
const { promise, resolve } = createPromise();
|
||||||
|
const fn = Object.assign(()=>resolve(getResult), {
|
||||||
|
queueCount: 0
|
||||||
|
});
|
||||||
|
function fnQueue(q) {
|
||||||
|
if (q !== queue && !depQueues.has(q)) {
|
||||||
|
depQueues.add(q);
|
||||||
|
if (q && q.status === 0) {
|
||||||
|
fn.queueCount++;
|
||||||
|
q.push(fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentDeps.map((dep)=>dep[turbopackQueues](fnQueue));
|
||||||
|
return fn.queueCount ? promise : getResult();
|
||||||
|
}
|
||||||
|
function asyncResult(err) {
|
||||||
|
if (err) {
|
||||||
|
reject(promise[turbopackError] = err);
|
||||||
|
} else {
|
||||||
|
resolve(promise[turbopackExports]);
|
||||||
|
}
|
||||||
|
resolveQueue(queue);
|
||||||
|
}
|
||||||
|
body(handleAsyncDependencies, asyncResult);
|
||||||
|
if (queue && queue.status === -1) {
|
||||||
|
queue.status = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contextPrototype.a = asyncModule;
|
||||||
|
/**
|
||||||
|
* A pseudo "fake" URL object to resolve to its relative path.
|
||||||
|
*
|
||||||
|
* When UrlRewriteBehavior is set to relative, calls to the `new URL()` will construct url without base using this
|
||||||
|
* runtime function to generate context-agnostic urls between different rendering context, i.e ssr / client to avoid
|
||||||
|
* hydration mismatch.
|
||||||
|
*
|
||||||
|
* This is based on webpack's existing implementation:
|
||||||
|
* https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/runtime/RelativeUrlRuntimeModule.js
|
||||||
|
*/ const relativeURL = function relativeURL(inputUrl) {
|
||||||
|
const realUrl = new URL(inputUrl, 'x:/');
|
||||||
|
const values = {};
|
||||||
|
for(const key in realUrl)values[key] = realUrl[key];
|
||||||
|
values.href = inputUrl;
|
||||||
|
values.pathname = inputUrl.replace(/[?#].*/, '');
|
||||||
|
values.origin = values.protocol = '';
|
||||||
|
values.toString = values.toJSON = (..._args)=>inputUrl;
|
||||||
|
for(const key in values)Object.defineProperty(this, key, {
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
value: values[key]
|
||||||
|
});
|
||||||
|
};
|
||||||
|
relativeURL.prototype = URL.prototype;
|
||||||
|
contextPrototype.U = relativeURL;
|
||||||
|
/**
|
||||||
|
* Utility function to ensure all variants of an enum are handled.
|
||||||
|
*/ function invariant(never, computeMessage) {
|
||||||
|
throw new Error(`Invariant: ${computeMessage(never)}`);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Constructs an error message for when a module factory is not available.
|
||||||
|
*/ function factoryNotAvailableMessage(moduleId, sourceType, sourceData) {
|
||||||
|
let instantiationReason;
|
||||||
|
switch(sourceType){
|
||||||
|
case 0:
|
||||||
|
instantiationReason = `as a runtime entry of chunk ${sourceData}`;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
instantiationReason = `because it was required from module ${sourceData}`;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
instantiationReason = 'because of an HMR update';
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
invariant(sourceType, (sourceType)=>`Unknown source type: ${sourceType}`);
|
||||||
|
}
|
||||||
|
return `Module ${moduleId} was instantiated ${instantiationReason}, but the module factory is not available.`;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* A stub function to make `require` available but non-functional in ESM.
|
||||||
|
*/ function requireStub(_moduleId) {
|
||||||
|
throw new Error('dynamic usage of require is not supported');
|
||||||
|
}
|
||||||
|
contextPrototype.z = requireStub;
|
||||||
|
// Make `globalThis` available to the module in a way that cannot be shadowed by a local variable.
|
||||||
|
contextPrototype.g = globalThis;
|
||||||
|
function applyModuleFactoryName(factory) {
|
||||||
|
// Give the module factory a nice name to improve stack traces.
|
||||||
|
Object.defineProperty(factory, 'name', {
|
||||||
|
value: 'module evaluation'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// <reference path="../shared/runtime/runtime-utils.ts" />
|
||||||
|
/// A 'base' utilities to support runtime can have externals.
|
||||||
|
/// Currently this is for node.js / edge runtime both.
|
||||||
|
/// If a fn requires node.js specific behavior, it should be placed in `node-external-utils` instead.
|
||||||
|
async function externalImport(id) {
|
||||||
|
let raw;
|
||||||
|
try {
|
||||||
|
raw = await import(id);
|
||||||
|
} catch (err) {
|
||||||
|
// TODO(alexkirsz) This can happen when a client-side module tries to load
|
||||||
|
// an external module we don't provide a shim for (e.g. querystring, url).
|
||||||
|
// For now, we fail semi-silently, but in the future this should be a
|
||||||
|
// compilation error.
|
||||||
|
throw new Error(`Failed to load external module ${id}: ${err}`);
|
||||||
|
}
|
||||||
|
if (raw && raw.__esModule && raw.default && 'default' in raw.default) {
|
||||||
|
return interopEsm(raw.default, createNS(raw), true);
|
||||||
|
}
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
contextPrototype.y = externalImport;
|
||||||
|
function externalRequire(id, thunk, esm = false) {
|
||||||
|
let raw;
|
||||||
|
try {
|
||||||
|
raw = thunk();
|
||||||
|
} catch (err) {
|
||||||
|
// TODO(alexkirsz) This can happen when a client-side module tries to load
|
||||||
|
// an external module we don't provide a shim for (e.g. querystring, url).
|
||||||
|
// For now, we fail semi-silently, but in the future this should be a
|
||||||
|
// compilation error.
|
||||||
|
throw new Error(`Failed to load external module ${id}: ${err}`);
|
||||||
|
}
|
||||||
|
if (!esm || raw.__esModule) {
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
return interopEsm(raw, createNS(raw), true);
|
||||||
|
}
|
||||||
|
externalRequire.resolve = (id, options)=>{
|
||||||
|
return require.resolve(id, options);
|
||||||
|
};
|
||||||
|
contextPrototype.x = externalRequire;
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ const path = require('path');
|
||||||
|
const relativePathToRuntimeRoot = path.relative(RUNTIME_PUBLIC_PATH, '.');
|
||||||
|
// Compute the relative path to the `distDir`.
|
||||||
|
const relativePathToDistRoot = path.join(relativePathToRuntimeRoot, RELATIVE_ROOT_PATH);
|
||||||
|
const RUNTIME_ROOT = path.resolve(__filename, relativePathToRuntimeRoot);
|
||||||
|
// Compute the absolute path to the root, by stripping distDir from the absolute path to this file.
|
||||||
|
const ABSOLUTE_ROOT = path.resolve(__filename, relativePathToDistRoot);
|
||||||
|
/**
|
||||||
|
* Returns an absolute path to the given module path.
|
||||||
|
* Module path should be relative, either path to a file or a directory.
|
||||||
|
*
|
||||||
|
* This fn allows to calculate an absolute path for some global static values, such as
|
||||||
|
* `__dirname` or `import.meta.url` that Turbopack will not embeds in compile time.
|
||||||
|
* See ImportMetaBinding::code_generation for the usage.
|
||||||
|
*/ function resolveAbsolutePath(modulePath) {
|
||||||
|
if (modulePath) {
|
||||||
|
return path.join(ABSOLUTE_ROOT, modulePath);
|
||||||
|
}
|
||||||
|
return ABSOLUTE_ROOT;
|
||||||
|
}
|
||||||
|
Context.prototype.P = resolveAbsolutePath;
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../shared/runtime/runtime-utils.ts" />
|
||||||
|
function readWebAssemblyAsResponse(path) {
|
||||||
|
const { createReadStream } = require('fs');
|
||||||
|
const { Readable } = require('stream');
|
||||||
|
const stream = createReadStream(path);
|
||||||
|
// @ts-ignore unfortunately there's a slight type mismatch with the stream.
|
||||||
|
return new Response(Readable.toWeb(stream), {
|
||||||
|
headers: {
|
||||||
|
'content-type': 'application/wasm'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
async function compileWebAssemblyFromPath(path) {
|
||||||
|
const response = readWebAssemblyAsResponse(path);
|
||||||
|
return await WebAssembly.compileStreaming(response);
|
||||||
|
}
|
||||||
|
async function instantiateWebAssemblyFromPath(path, importsObj) {
|
||||||
|
const response = readWebAssemblyAsResponse(path);
|
||||||
|
const { instance } = await WebAssembly.instantiateStreaming(response, importsObj);
|
||||||
|
return instance.exports;
|
||||||
|
}
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="../../shared/runtime/runtime-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/base-externals-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/node-externals-utils.ts" />
|
||||||
|
/// <reference path="../../shared-node/node-wasm-utils.ts" />
|
||||||
|
/// <reference path="./nodejs-globals.d.ts" />
|
||||||
|
/**
|
||||||
|
* Base Node.js runtime shared between production and development.
|
||||||
|
* Contains chunk loading, module caching, and other non-HMR functionality.
|
||||||
|
*/ process.env.TURBOPACK = '1';
|
||||||
|
const url = require('url');
|
||||||
|
const moduleFactories = new Map();
|
||||||
|
const moduleCache = Object.create(null);
|
||||||
|
/**
|
||||||
|
* Returns an absolute path to the given module's id.
|
||||||
|
*/ function resolvePathFromModule(moduleId) {
|
||||||
|
const exported = this.r(moduleId);
|
||||||
|
const exportedPath = exported?.default ?? exported;
|
||||||
|
if (typeof exportedPath !== 'string') {
|
||||||
|
return exported;
|
||||||
|
}
|
||||||
|
const strippedAssetPrefix = exportedPath.slice(ASSET_PREFIX.length);
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, strippedAssetPrefix);
|
||||||
|
return url.pathToFileURL(resolved).href;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Exports a URL value. No suffix is added in Node.js runtime.
|
||||||
|
*/ function exportUrl(urlValue, id) {
|
||||||
|
exportValue.call(this, urlValue, id);
|
||||||
|
}
|
||||||
|
function loadRuntimeChunk(sourcePath, chunkData) {
|
||||||
|
if (typeof chunkData === 'string') {
|
||||||
|
loadRuntimeChunkPath(sourcePath, chunkData);
|
||||||
|
} else {
|
||||||
|
loadRuntimeChunkPath(sourcePath, chunkData.path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const loadedChunks = new Set();
|
||||||
|
const unsupportedLoadChunk = Promise.resolve(undefined);
|
||||||
|
const loadedChunk = Promise.resolve(undefined);
|
||||||
|
const chunkCache = new Map();
|
||||||
|
function clearChunkCache() {
|
||||||
|
chunkCache.clear();
|
||||||
|
loadedChunks.clear();
|
||||||
|
}
|
||||||
|
function loadRuntimeChunkPath(sourcePath, chunkPath) {
|
||||||
|
if (!isJs(chunkPath)) {
|
||||||
|
// We only support loading JS chunks in Node.js.
|
||||||
|
// This branch can be hit when trying to load a CSS chunk.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (loadedChunks.has(chunkPath)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
const chunkModules = require(resolved);
|
||||||
|
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
|
||||||
|
loadedChunks.add(chunkPath);
|
||||||
|
} catch (cause) {
|
||||||
|
let errorMessage = `Failed to load chunk ${chunkPath}`;
|
||||||
|
if (sourcePath) {
|
||||||
|
errorMessage += ` from runtime for chunk ${sourcePath}`;
|
||||||
|
}
|
||||||
|
const error = new Error(errorMessage, {
|
||||||
|
cause
|
||||||
|
});
|
||||||
|
error.name = 'ChunkLoadError';
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function loadChunkAsync(chunkData) {
|
||||||
|
const chunkPath = typeof chunkData === 'string' ? chunkData : chunkData.path;
|
||||||
|
if (!isJs(chunkPath)) {
|
||||||
|
// We only support loading JS chunks in Node.js.
|
||||||
|
// This branch can be hit when trying to load a CSS chunk.
|
||||||
|
return unsupportedLoadChunk;
|
||||||
|
}
|
||||||
|
let entry = chunkCache.get(chunkPath);
|
||||||
|
if (entry === undefined) {
|
||||||
|
try {
|
||||||
|
// resolve to an absolute path to simplify `require` handling
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
// TODO: consider switching to `import()` to enable concurrent chunk loading and async file io
|
||||||
|
// However this is incompatible with hot reloading (since `import` doesn't use the require cache)
|
||||||
|
const chunkModules = require(resolved);
|
||||||
|
installCompressedModuleFactories(chunkModules, 0, moduleFactories);
|
||||||
|
entry = loadedChunk;
|
||||||
|
} catch (cause) {
|
||||||
|
const errorMessage = `Failed to load chunk ${chunkPath} from module ${this.m.id}`;
|
||||||
|
const error = new Error(errorMessage, {
|
||||||
|
cause
|
||||||
|
});
|
||||||
|
error.name = 'ChunkLoadError';
|
||||||
|
// Cache the failure promise, future requests will also get this same rejection
|
||||||
|
entry = Promise.reject(error);
|
||||||
|
}
|
||||||
|
chunkCache.set(chunkPath, entry);
|
||||||
|
}
|
||||||
|
// TODO: Return an instrumented Promise that React can use instead of relying on referential equality.
|
||||||
|
return entry;
|
||||||
|
}
|
||||||
|
contextPrototype.l = loadChunkAsync;
|
||||||
|
function loadChunkAsyncByUrl(chunkUrl) {
|
||||||
|
const path1 = url.fileURLToPath(new URL(chunkUrl, RUNTIME_ROOT));
|
||||||
|
return loadChunkAsync.call(this, path1);
|
||||||
|
}
|
||||||
|
contextPrototype.L = loadChunkAsyncByUrl;
|
||||||
|
function loadWebAssembly(chunkPath, _edgeModule, imports) {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
return instantiateWebAssemblyFromPath(resolved, imports);
|
||||||
|
}
|
||||||
|
contextPrototype.w = loadWebAssembly;
|
||||||
|
function loadWebAssemblyModule(chunkPath, _edgeModule) {
|
||||||
|
const resolved = path.resolve(RUNTIME_ROOT, chunkPath);
|
||||||
|
return compileWebAssemblyFromPath(resolved);
|
||||||
|
}
|
||||||
|
contextPrototype.u = loadWebAssemblyModule;
|
||||||
|
/**
|
||||||
|
* Creates a Node.js worker thread by instantiating the given WorkerConstructor
|
||||||
|
* with the appropriate path and options, including forwarded globals.
|
||||||
|
*
|
||||||
|
* @param WorkerConstructor The Worker constructor from worker_threads
|
||||||
|
* @param workerPath Path to the worker entry chunk
|
||||||
|
* @param workerOptions options to pass to the Worker constructor (optional)
|
||||||
|
*/ function createWorker(WorkerConstructor, workerPath, workerOptions) {
|
||||||
|
// Build the forwarded globals object
|
||||||
|
const forwardedGlobals = {};
|
||||||
|
for (const name of WORKER_FORWARDED_GLOBALS){
|
||||||
|
forwardedGlobals[name] = globalThis[name];
|
||||||
|
}
|
||||||
|
// Merge workerData with forwarded globals
|
||||||
|
const existingWorkerData = workerOptions?.workerData || {};
|
||||||
|
const options = {
|
||||||
|
...workerOptions,
|
||||||
|
workerData: {
|
||||||
|
...typeof existingWorkerData === 'object' ? existingWorkerData : {},
|
||||||
|
__turbopack_globals__: forwardedGlobals
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return new WorkerConstructor(workerPath, options);
|
||||||
|
}
|
||||||
|
const regexJsUrl = /\.js(?:\?[^#]*)?(?:#.*)?$/;
|
||||||
|
/**
|
||||||
|
* Checks if a given path/URL ends with .js, optionally followed by ?query or #fragment.
|
||||||
|
*/ function isJs(chunkUrlOrPath) {
|
||||||
|
return regexJsUrl.test(chunkUrlOrPath);
|
||||||
|
}
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */ /// <reference path="./runtime-base.ts" />
|
||||||
|
/**
|
||||||
|
* Production Node.js runtime.
|
||||||
|
* Uses ModuleWithDirection and simple module instantiation without HMR support.
|
||||||
|
*/ // moduleCache and moduleFactories are declared in runtime-base.ts
|
||||||
|
// this is read in runtime-utils.ts so it creates a module with direction for hmr
|
||||||
|
createModuleWithDirectionFlag = true;
|
||||||
|
const nodeContextPrototype = Context.prototype;
|
||||||
|
nodeContextPrototype.q = exportUrl;
|
||||||
|
nodeContextPrototype.M = moduleFactories;
|
||||||
|
// Cast moduleCache to ModuleWithDirection for production mode
|
||||||
|
nodeContextPrototype.c = moduleCache;
|
||||||
|
nodeContextPrototype.R = resolvePathFromModule;
|
||||||
|
nodeContextPrototype.b = createWorker;
|
||||||
|
nodeContextPrototype.C = clearChunkCache;
|
||||||
|
function instantiateModule(id, sourceType, sourceData) {
|
||||||
|
const moduleFactory = moduleFactories.get(id);
|
||||||
|
if (typeof moduleFactory !== 'function') {
|
||||||
|
// This can happen if modules incorrectly handle HMR disposes/updates,
|
||||||
|
// e.g. when they keep a `setTimeout` around which still executes old code
|
||||||
|
// and contains e.g. a `require("something")` call.
|
||||||
|
throw new Error(factoryNotAvailableMessage(id, sourceType, sourceData));
|
||||||
|
}
|
||||||
|
const module1 = createModuleWithDirection(id);
|
||||||
|
const exports = module1.exports;
|
||||||
|
moduleCache[id] = module1;
|
||||||
|
const context = new Context(module1, exports);
|
||||||
|
// NOTE(alexkirsz) This can fail when the module encounters a runtime error.
|
||||||
|
try {
|
||||||
|
moduleFactory(context, module1, exports);
|
||||||
|
} catch (error) {
|
||||||
|
module1.error = error;
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
module1.loaded = true;
|
||||||
|
if (module1.namespaceObject && module1.exports !== module1.namespaceObject) {
|
||||||
|
// in case of a circular dependency: cjs1 -> esm2 -> cjs1
|
||||||
|
interopEsm(module1.exports, module1.namespaceObject);
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retrieves a module from the cache, or instantiate it if it is not cached.
|
||||||
|
*/ // @ts-ignore
|
||||||
|
function getOrInstantiateModuleFromParent(id, sourceModule) {
|
||||||
|
const module1 = moduleCache[id];
|
||||||
|
if (module1) {
|
||||||
|
if (module1.error) {
|
||||||
|
throw module1.error;
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
return instantiateModule(id, SourceType.Parent, sourceModule.id);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Instantiates a runtime module.
|
||||||
|
*/ function instantiateRuntimeModule(chunkPath, moduleId) {
|
||||||
|
return instantiateModule(moduleId, SourceType.Runtime, chunkPath);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Retrieves a module from the cache, or instantiate it as a runtime module if it is not cached.
|
||||||
|
*/ // @ts-ignore TypeScript doesn't separate this module space from the browser runtime
|
||||||
|
function getOrInstantiateRuntimeModule(chunkPath, moduleId) {
|
||||||
|
const module1 = moduleCache[moduleId];
|
||||||
|
if (module1) {
|
||||||
|
if (module1.error) {
|
||||||
|
throw module1.error;
|
||||||
|
}
|
||||||
|
return module1;
|
||||||
|
}
|
||||||
|
return instantiateRuntimeModule(chunkPath, moduleId);
|
||||||
|
}
|
||||||
|
module.exports = (sourcePath)=>({
|
||||||
|
m: (id)=>getOrInstantiateRuntimeModule(sourcePath, id),
|
||||||
|
c: (chunkData)=>loadRuntimeChunk(sourcePath, chunkData)
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//# sourceMappingURL=%5Bturbopack%5D_runtime.js.map
|
||||||
11
.next/build/chunks/[turbopack]_runtime.js.map
Normal file
11
.next/build/chunks/[turbopack]_runtime.js.map
Normal file
File diff suppressed because one or more lines are too long
6814
.next/build/chunks/node_modules_20v-8wl._.js
Normal file
6814
.next/build/chunks/node_modules_20v-8wl._.js
Normal file
File diff suppressed because it is too large
Load Diff
47
.next/build/chunks/node_modules_20v-8wl._.js.map
Normal file
47
.next/build/chunks/node_modules_20v-8wl._.js.map
Normal file
File diff suppressed because one or more lines are too long
1
.next/build/package.json
Normal file
1
.next/build/package.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"type": "commonjs"}
|
||||||
1
.next/cache/.previewinfo
vendored
Normal file
1
.next/cache/.previewinfo
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"previewModeId":"4dbaac0b264ca6f91a02194460243f7a","previewModeSigningKey":"f70c7152b8842c100103613c1289ed7d989a58aafbc16a56530e990f2cc7e131","previewModeEncryptionKey":"1a76359dbe856ec6a566270d9c9e3288bdc7e018dbd6e4528829d954c9bd157d","expireAt":1783500404112}
|
||||||
1
.next/cache/.rscinfo
vendored
Normal file
1
.next/cache/.rscinfo
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"encryption.key":"ni9seIaXPnf9W/IK9IjxOPES1FOAXuJEAQLMrXy71pI=","encryption.expire_at":1783500404048}
|
||||||
1
.next/cache/.tsbuildinfo
vendored
Normal file
1
.next/cache/.tsbuildinfo
vendored
Normal file
File diff suppressed because one or more lines are too long
6
.next/diagnostics/build-diagnostics.json
Normal file
6
.next/diagnostics/build-diagnostics.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"buildStage": "static-generation",
|
||||||
|
"buildOptions": {
|
||||||
|
"useBuildWorker": "true"
|
||||||
|
}
|
||||||
|
}
|
||||||
1
.next/diagnostics/framework.json
Normal file
1
.next/diagnostics/framework.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"Next.js","version":"16.2.9"}
|
||||||
24
.next/diagnostics/route-bundle-stats.json
Normal file
24
.next/diagnostics/route-bundle-stats.json
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"route": "/",
|
||||||
|
"firstLoadUncompressedJsBytes": 513840,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next/static/chunks/158myu8e_yme3.js",
|
||||||
|
".next/static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
".next/static/chunks/2ckqm4grawju5.js",
|
||||||
|
".next/static/chunks/2nykiepra7i1k.js",
|
||||||
|
".next/static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"route": "/_not-found",
|
||||||
|
"firstLoadUncompressedJsBytes": 513840,
|
||||||
|
"firstLoadChunkPaths": [
|
||||||
|
".next/static/chunks/158myu8e_yme3.js",
|
||||||
|
".next/static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
".next/static/chunks/2ckqm4grawju5.js",
|
||||||
|
".next/static/chunks/2nykiepra7i1k.js",
|
||||||
|
".next/static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
5
.next/export-detail.json
Normal file
5
.next/export-detail.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"outDirectory": "/home/nara/apps/web/out",
|
||||||
|
"success": true
|
||||||
|
}
|
||||||
6
.next/export-marker.json
Normal file
6
.next/export-marker.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"hasExportPathMap": false,
|
||||||
|
"exportTrailingSlash": false,
|
||||||
|
"isNextImageImported": false
|
||||||
|
}
|
||||||
13
.next/fallback-build-manifest.json
Normal file
13
.next/fallback-build-manifest.json
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"pages": {
|
||||||
|
"/_app": []
|
||||||
|
},
|
||||||
|
"devFiles": [],
|
||||||
|
"polyfillFiles": [],
|
||||||
|
"lowPriorityFiles": [
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_buildManifest.js",
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_ssgManifest.js",
|
||||||
|
"static/W0ph6BZ8oDeJaHcE9fuII/_clientMiddlewareManifest.js"
|
||||||
|
],
|
||||||
|
"rootMainFiles": []
|
||||||
|
}
|
||||||
68
.next/images-manifest.json
Normal file
68
.next/images-manifest.json
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "^(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$))(?:(?:(?!(?:^|\\/)\\.{1,2}(?:\\/|$)).)*?)\\/?)$",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": true,
|
||||||
|
"customCacheHandler": false,
|
||||||
|
"sizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840,
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
1
.next/next-minimal-server.js.nft.json
Normal file
1
.next/next-minimal-server.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
1
.next/next-server.js.nft.json
Normal file
1
.next/next-server.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
1
.next/package.json
Normal file
1
.next/package.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"type": "commonjs"}
|
||||||
114
.next/prerender-manifest.json
Normal file
114
.next/prerender-manifest.json
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"routes": {
|
||||||
|
"/": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/",
|
||||||
|
"dataRoute": "/index.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/_global-error": {
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/_global-error",
|
||||||
|
"dataRoute": "/_global-error.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/_not-found": {
|
||||||
|
"initialStatus": 404,
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/_not-found",
|
||||||
|
"dataRoute": "/_not-found.rsc",
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"/favicon.ico": {
|
||||||
|
"initialHeaders": {
|
||||||
|
"cache-control": "public, max-age=0, must-revalidate",
|
||||||
|
"content-type": "image/x-icon",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"
|
||||||
|
},
|
||||||
|
"experimentalBypassFor": [
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "next-action"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "header",
|
||||||
|
"key": "content-type",
|
||||||
|
"value": "multipart/form-data;.*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"initialRevalidateSeconds": false,
|
||||||
|
"srcRoute": "/favicon.ico",
|
||||||
|
"dataRoute": null,
|
||||||
|
"allowHeader": [
|
||||||
|
"host",
|
||||||
|
"x-matched-path",
|
||||||
|
"x-prerender-revalidate",
|
||||||
|
"x-prerender-revalidate-if-generated",
|
||||||
|
"x-next-revalidated-tags",
|
||||||
|
"x-next-revalidate-tag-token"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dynamicRoutes": {},
|
||||||
|
"notFoundRoutes": [],
|
||||||
|
"preview": {
|
||||||
|
"previewModeId": "4dbaac0b264ca6f91a02194460243f7a",
|
||||||
|
"previewModeSigningKey": "f70c7152b8842c100103613c1289ed7d989a58aafbc16a56530e990f2cc7e131",
|
||||||
|
"previewModeEncryptionKey": "1a76359dbe856ec6a566270d9c9e3288bdc7e018dbd6e4528829d954c9bd157d"
|
||||||
|
}
|
||||||
|
}
|
||||||
334
.next/required-server-files.js
Normal file
334
.next/required-server-files.js
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
self.__SERVER_FILES_MANIFEST={
|
||||||
|
"version": 1,
|
||||||
|
"config": {
|
||||||
|
"env": {},
|
||||||
|
"webpack": null,
|
||||||
|
"typescript": {
|
||||||
|
"ignoreBuildErrors": false
|
||||||
|
},
|
||||||
|
"typedRoutes": false,
|
||||||
|
"distDir": ".next",
|
||||||
|
"cleanDistDir": true,
|
||||||
|
"assetPrefix": "",
|
||||||
|
"cacheMaxMemorySize": 52428800,
|
||||||
|
"configOrigin": "next.config.ts",
|
||||||
|
"useFileSystemPublicRoutes": true,
|
||||||
|
"generateEtags": true,
|
||||||
|
"pageExtensions": [
|
||||||
|
"tsx",
|
||||||
|
"ts",
|
||||||
|
"jsx",
|
||||||
|
"js"
|
||||||
|
],
|
||||||
|
"poweredByHeader": true,
|
||||||
|
"compress": true,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "**",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": true,
|
||||||
|
"customCacheHandler": false
|
||||||
|
},
|
||||||
|
"devIndicators": {
|
||||||
|
"position": "bottom-left"
|
||||||
|
},
|
||||||
|
"onDemandEntries": {
|
||||||
|
"maxInactiveAge": 60000,
|
||||||
|
"pagesBufferLength": 5
|
||||||
|
},
|
||||||
|
"basePath": "",
|
||||||
|
"sassOptions": {},
|
||||||
|
"trailingSlash": false,
|
||||||
|
"i18n": null,
|
||||||
|
"productionBrowserSourceMaps": false,
|
||||||
|
"excludeDefaultMomentLocales": true,
|
||||||
|
"reactProductionProfiling": false,
|
||||||
|
"reactStrictMode": null,
|
||||||
|
"reactMaxHeadersLength": 6000,
|
||||||
|
"httpAgentOptions": {
|
||||||
|
"keepAlive": true
|
||||||
|
},
|
||||||
|
"logging": {
|
||||||
|
"serverFunctions": true,
|
||||||
|
"browserToTerminal": "warn"
|
||||||
|
},
|
||||||
|
"compiler": {},
|
||||||
|
"expireTime": 31536000,
|
||||||
|
"staticPageGenerationTimeout": 60,
|
||||||
|
"output": "export",
|
||||||
|
"modularizeImports": {
|
||||||
|
"@mui/icons-material": {
|
||||||
|
"transform": "@mui/icons-material/{{member}}"
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"transform": "lodash/{{member}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputFileTracingRoot": "/home/nara/apps/web",
|
||||||
|
"cacheComponents": false,
|
||||||
|
"cacheLife": {
|
||||||
|
"default": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 900,
|
||||||
|
"expire": 4294967294
|
||||||
|
},
|
||||||
|
"seconds": {
|
||||||
|
"stale": 30,
|
||||||
|
"revalidate": 1,
|
||||||
|
"expire": 60
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 60,
|
||||||
|
"expire": 3600
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 3600,
|
||||||
|
"expire": 86400
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 86400,
|
||||||
|
"expire": 604800
|
||||||
|
},
|
||||||
|
"weeks": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 604800,
|
||||||
|
"expire": 2592000
|
||||||
|
},
|
||||||
|
"max": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 2592000,
|
||||||
|
"expire": 31536000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cacheHandlers": {},
|
||||||
|
"experimental": {
|
||||||
|
"appNewScrollHandler": false,
|
||||||
|
"useSkewCookie": false,
|
||||||
|
"cssChunking": true,
|
||||||
|
"multiZoneDraftMode": false,
|
||||||
|
"appNavFailHandling": false,
|
||||||
|
"prerenderEarlyExit": true,
|
||||||
|
"serverMinification": true,
|
||||||
|
"linkNoTouchStart": false,
|
||||||
|
"caseSensitiveRoutes": false,
|
||||||
|
"cachedNavigations": false,
|
||||||
|
"partialFallbacks": false,
|
||||||
|
"dynamicOnHover": false,
|
||||||
|
"varyParams": false,
|
||||||
|
"prefetchInlining": false,
|
||||||
|
"preloadEntriesOnStart": true,
|
||||||
|
"clientRouterFilter": true,
|
||||||
|
"clientRouterFilterRedirects": false,
|
||||||
|
"fetchCacheKeyPrefix": "",
|
||||||
|
"proxyPrefetch": "flexible",
|
||||||
|
"optimisticClientCache": true,
|
||||||
|
"manualClientBasePath": false,
|
||||||
|
"cpus": 3,
|
||||||
|
"memoryBasedWorkersCount": false,
|
||||||
|
"imgOptConcurrency": null,
|
||||||
|
"imgOptTimeoutInSeconds": 7,
|
||||||
|
"imgOptMaxInputPixels": 268402689,
|
||||||
|
"imgOptSequentialRead": null,
|
||||||
|
"imgOptSkipMetadata": null,
|
||||||
|
"isrFlushToDisk": true,
|
||||||
|
"workerThreads": false,
|
||||||
|
"optimizeCss": false,
|
||||||
|
"nextScriptWorkers": false,
|
||||||
|
"scrollRestoration": false,
|
||||||
|
"externalDir": false,
|
||||||
|
"disableOptimizedLoading": false,
|
||||||
|
"gzipSize": true,
|
||||||
|
"craCompat": false,
|
||||||
|
"esmExternals": true,
|
||||||
|
"fullySpecified": false,
|
||||||
|
"swcTraceProfiling": false,
|
||||||
|
"forceSwcTransforms": false,
|
||||||
|
"largePageDataBytes": 128000,
|
||||||
|
"typedEnv": false,
|
||||||
|
"parallelServerCompiles": false,
|
||||||
|
"parallelServerBuildTraces": false,
|
||||||
|
"ppr": false,
|
||||||
|
"authInterrupts": false,
|
||||||
|
"webpackMemoryOptimizations": false,
|
||||||
|
"optimizeServerReact": true,
|
||||||
|
"strictRouteTypes": false,
|
||||||
|
"viewTransition": false,
|
||||||
|
"removeUncaughtErrorAndRejectionListeners": false,
|
||||||
|
"validateRSCRequestHeaders": false,
|
||||||
|
"staleTimes": {
|
||||||
|
"dynamic": 0,
|
||||||
|
"static": 300
|
||||||
|
},
|
||||||
|
"reactDebugChannel": true,
|
||||||
|
"serverComponentsHmrCache": true,
|
||||||
|
"staticGenerationMaxConcurrency": 8,
|
||||||
|
"staticGenerationMinPagesPerWorker": 25,
|
||||||
|
"transitionIndicator": false,
|
||||||
|
"gestureTransition": false,
|
||||||
|
"inlineCss": false,
|
||||||
|
"useCache": false,
|
||||||
|
"globalNotFound": false,
|
||||||
|
"browserDebugInfoInTerminal": "warn",
|
||||||
|
"lockDistDir": true,
|
||||||
|
"proxyClientMaxBodySize": 10485760,
|
||||||
|
"hideLogsAfterAbort": false,
|
||||||
|
"mcpServer": true,
|
||||||
|
"turbopackFileSystemCacheForDev": true,
|
||||||
|
"turbopackFileSystemCacheForBuild": false,
|
||||||
|
"turbopackInferModuleSideEffects": true,
|
||||||
|
"turbopackPluginRuntimeStrategy": "childProcesses",
|
||||||
|
"optimizePackageImports": [
|
||||||
|
"lucide-react",
|
||||||
|
"date-fns",
|
||||||
|
"lodash-es",
|
||||||
|
"ramda",
|
||||||
|
"antd",
|
||||||
|
"react-bootstrap",
|
||||||
|
"ahooks",
|
||||||
|
"@ant-design/icons",
|
||||||
|
"@headlessui/react",
|
||||||
|
"@headlessui-float/react",
|
||||||
|
"@heroicons/react/20/solid",
|
||||||
|
"@heroicons/react/24/solid",
|
||||||
|
"@heroicons/react/24/outline",
|
||||||
|
"@visx/visx",
|
||||||
|
"@tremor/react",
|
||||||
|
"rxjs",
|
||||||
|
"@mui/material",
|
||||||
|
"@mui/icons-material",
|
||||||
|
"recharts",
|
||||||
|
"react-use",
|
||||||
|
"effect",
|
||||||
|
"@effect/schema",
|
||||||
|
"@effect/platform",
|
||||||
|
"@effect/platform-node",
|
||||||
|
"@effect/platform-browser",
|
||||||
|
"@effect/platform-bun",
|
||||||
|
"@effect/sql",
|
||||||
|
"@effect/sql-mssql",
|
||||||
|
"@effect/sql-mysql2",
|
||||||
|
"@effect/sql-pg",
|
||||||
|
"@effect/sql-sqlite-node",
|
||||||
|
"@effect/sql-sqlite-bun",
|
||||||
|
"@effect/sql-sqlite-wasm",
|
||||||
|
"@effect/sql-sqlite-react-native",
|
||||||
|
"@effect/rpc",
|
||||||
|
"@effect/rpc-http",
|
||||||
|
"@effect/typeclass",
|
||||||
|
"@effect/experimental",
|
||||||
|
"@effect/opentelemetry",
|
||||||
|
"@material-ui/core",
|
||||||
|
"@material-ui/icons",
|
||||||
|
"@tabler/icons-react",
|
||||||
|
"mui-core",
|
||||||
|
"react-icons/ai",
|
||||||
|
"react-icons/bi",
|
||||||
|
"react-icons/bs",
|
||||||
|
"react-icons/cg",
|
||||||
|
"react-icons/ci",
|
||||||
|
"react-icons/di",
|
||||||
|
"react-icons/fa",
|
||||||
|
"react-icons/fa6",
|
||||||
|
"react-icons/fc",
|
||||||
|
"react-icons/fi",
|
||||||
|
"react-icons/gi",
|
||||||
|
"react-icons/go",
|
||||||
|
"react-icons/gr",
|
||||||
|
"react-icons/hi",
|
||||||
|
"react-icons/hi2",
|
||||||
|
"react-icons/im",
|
||||||
|
"react-icons/io",
|
||||||
|
"react-icons/io5",
|
||||||
|
"react-icons/lia",
|
||||||
|
"react-icons/lib",
|
||||||
|
"react-icons/lu",
|
||||||
|
"react-icons/md",
|
||||||
|
"react-icons/pi",
|
||||||
|
"react-icons/ri",
|
||||||
|
"react-icons/rx",
|
||||||
|
"react-icons/si",
|
||||||
|
"react-icons/sl",
|
||||||
|
"react-icons/tb",
|
||||||
|
"react-icons/tfi",
|
||||||
|
"react-icons/ti",
|
||||||
|
"react-icons/vsc",
|
||||||
|
"react-icons/wi"
|
||||||
|
],
|
||||||
|
"trustHostHeader": false,
|
||||||
|
"isExperimentalCompile": false
|
||||||
|
},
|
||||||
|
"htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
|
||||||
|
"bundlePagesRouterDependencies": false,
|
||||||
|
"configFileName": "next.config.ts",
|
||||||
|
"turbopack": {
|
||||||
|
"root": "/home/nara/apps/web"
|
||||||
|
},
|
||||||
|
"distDirRoot": ".next"
|
||||||
|
},
|
||||||
|
"appDir": "/home/nara/apps/web",
|
||||||
|
"relativeAppDir": "",
|
||||||
|
"files": [
|
||||||
|
".next/package.json",
|
||||||
|
".next/routes-manifest.json",
|
||||||
|
".next/server/pages-manifest.json",
|
||||||
|
".next/build-manifest.json",
|
||||||
|
".next/prerender-manifest.json",
|
||||||
|
".next/server/functions-config-manifest.json",
|
||||||
|
".next/server/middleware-manifest.json",
|
||||||
|
".next/server/middleware-build-manifest.js",
|
||||||
|
".next/server/app-paths-manifest.json",
|
||||||
|
".next/app-path-routes-manifest.json",
|
||||||
|
".next/server/server-reference-manifest.js",
|
||||||
|
".next/server/server-reference-manifest.json",
|
||||||
|
".next/server/prefetch-hints.json",
|
||||||
|
".next/BUILD_ID",
|
||||||
|
".next/server/next-font-manifest.js",
|
||||||
|
".next/server/next-font-manifest.json",
|
||||||
|
".next/required-server-files.json"
|
||||||
|
],
|
||||||
|
"ignore": []
|
||||||
|
}
|
||||||
334
.next/required-server-files.json
Normal file
334
.next/required-server-files.json
Normal file
@ -0,0 +1,334 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"config": {
|
||||||
|
"env": {},
|
||||||
|
"webpack": null,
|
||||||
|
"typescript": {
|
||||||
|
"ignoreBuildErrors": false
|
||||||
|
},
|
||||||
|
"typedRoutes": false,
|
||||||
|
"distDir": ".next",
|
||||||
|
"cleanDistDir": true,
|
||||||
|
"assetPrefix": "",
|
||||||
|
"cacheMaxMemorySize": 52428800,
|
||||||
|
"configOrigin": "next.config.ts",
|
||||||
|
"useFileSystemPublicRoutes": true,
|
||||||
|
"generateEtags": true,
|
||||||
|
"pageExtensions": [
|
||||||
|
"tsx",
|
||||||
|
"ts",
|
||||||
|
"jsx",
|
||||||
|
"js"
|
||||||
|
],
|
||||||
|
"poweredByHeader": true,
|
||||||
|
"compress": true,
|
||||||
|
"images": {
|
||||||
|
"deviceSizes": [
|
||||||
|
640,
|
||||||
|
750,
|
||||||
|
828,
|
||||||
|
1080,
|
||||||
|
1200,
|
||||||
|
1920,
|
||||||
|
2048,
|
||||||
|
3840
|
||||||
|
],
|
||||||
|
"imageSizes": [
|
||||||
|
32,
|
||||||
|
48,
|
||||||
|
64,
|
||||||
|
96,
|
||||||
|
128,
|
||||||
|
256,
|
||||||
|
384
|
||||||
|
],
|
||||||
|
"path": "/_next/image",
|
||||||
|
"loader": "default",
|
||||||
|
"loaderFile": "",
|
||||||
|
"domains": [],
|
||||||
|
"disableStaticImages": false,
|
||||||
|
"minimumCacheTTL": 14400,
|
||||||
|
"formats": [
|
||||||
|
"image/webp"
|
||||||
|
],
|
||||||
|
"maximumRedirects": 3,
|
||||||
|
"maximumResponseBody": 50000000,
|
||||||
|
"dangerouslyAllowLocalIP": false,
|
||||||
|
"dangerouslyAllowSVG": false,
|
||||||
|
"contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;",
|
||||||
|
"contentDispositionType": "attachment",
|
||||||
|
"localPatterns": [
|
||||||
|
{
|
||||||
|
"pathname": "**",
|
||||||
|
"search": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"remotePatterns": [],
|
||||||
|
"qualities": [
|
||||||
|
75
|
||||||
|
],
|
||||||
|
"unoptimized": true,
|
||||||
|
"customCacheHandler": false
|
||||||
|
},
|
||||||
|
"devIndicators": {
|
||||||
|
"position": "bottom-left"
|
||||||
|
},
|
||||||
|
"onDemandEntries": {
|
||||||
|
"maxInactiveAge": 60000,
|
||||||
|
"pagesBufferLength": 5
|
||||||
|
},
|
||||||
|
"basePath": "",
|
||||||
|
"sassOptions": {},
|
||||||
|
"trailingSlash": false,
|
||||||
|
"i18n": null,
|
||||||
|
"productionBrowserSourceMaps": false,
|
||||||
|
"excludeDefaultMomentLocales": true,
|
||||||
|
"reactProductionProfiling": false,
|
||||||
|
"reactStrictMode": null,
|
||||||
|
"reactMaxHeadersLength": 6000,
|
||||||
|
"httpAgentOptions": {
|
||||||
|
"keepAlive": true
|
||||||
|
},
|
||||||
|
"logging": {
|
||||||
|
"serverFunctions": true,
|
||||||
|
"browserToTerminal": "warn"
|
||||||
|
},
|
||||||
|
"compiler": {},
|
||||||
|
"expireTime": 31536000,
|
||||||
|
"staticPageGenerationTimeout": 60,
|
||||||
|
"output": "export",
|
||||||
|
"modularizeImports": {
|
||||||
|
"@mui/icons-material": {
|
||||||
|
"transform": "@mui/icons-material/{{member}}"
|
||||||
|
},
|
||||||
|
"lodash": {
|
||||||
|
"transform": "lodash/{{member}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"outputFileTracingRoot": "/home/nara/apps/web",
|
||||||
|
"cacheComponents": false,
|
||||||
|
"cacheLife": {
|
||||||
|
"default": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 900,
|
||||||
|
"expire": 4294967294
|
||||||
|
},
|
||||||
|
"seconds": {
|
||||||
|
"stale": 30,
|
||||||
|
"revalidate": 1,
|
||||||
|
"expire": 60
|
||||||
|
},
|
||||||
|
"minutes": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 60,
|
||||||
|
"expire": 3600
|
||||||
|
},
|
||||||
|
"hours": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 3600,
|
||||||
|
"expire": 86400
|
||||||
|
},
|
||||||
|
"days": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 86400,
|
||||||
|
"expire": 604800
|
||||||
|
},
|
||||||
|
"weeks": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 604800,
|
||||||
|
"expire": 2592000
|
||||||
|
},
|
||||||
|
"max": {
|
||||||
|
"stale": 300,
|
||||||
|
"revalidate": 2592000,
|
||||||
|
"expire": 31536000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cacheHandlers": {},
|
||||||
|
"experimental": {
|
||||||
|
"appNewScrollHandler": false,
|
||||||
|
"useSkewCookie": false,
|
||||||
|
"cssChunking": true,
|
||||||
|
"multiZoneDraftMode": false,
|
||||||
|
"appNavFailHandling": false,
|
||||||
|
"prerenderEarlyExit": true,
|
||||||
|
"serverMinification": true,
|
||||||
|
"linkNoTouchStart": false,
|
||||||
|
"caseSensitiveRoutes": false,
|
||||||
|
"cachedNavigations": false,
|
||||||
|
"partialFallbacks": false,
|
||||||
|
"dynamicOnHover": false,
|
||||||
|
"varyParams": false,
|
||||||
|
"prefetchInlining": false,
|
||||||
|
"preloadEntriesOnStart": true,
|
||||||
|
"clientRouterFilter": true,
|
||||||
|
"clientRouterFilterRedirects": false,
|
||||||
|
"fetchCacheKeyPrefix": "",
|
||||||
|
"proxyPrefetch": "flexible",
|
||||||
|
"optimisticClientCache": true,
|
||||||
|
"manualClientBasePath": false,
|
||||||
|
"cpus": 3,
|
||||||
|
"memoryBasedWorkersCount": false,
|
||||||
|
"imgOptConcurrency": null,
|
||||||
|
"imgOptTimeoutInSeconds": 7,
|
||||||
|
"imgOptMaxInputPixels": 268402689,
|
||||||
|
"imgOptSequentialRead": null,
|
||||||
|
"imgOptSkipMetadata": null,
|
||||||
|
"isrFlushToDisk": true,
|
||||||
|
"workerThreads": false,
|
||||||
|
"optimizeCss": false,
|
||||||
|
"nextScriptWorkers": false,
|
||||||
|
"scrollRestoration": false,
|
||||||
|
"externalDir": false,
|
||||||
|
"disableOptimizedLoading": false,
|
||||||
|
"gzipSize": true,
|
||||||
|
"craCompat": false,
|
||||||
|
"esmExternals": true,
|
||||||
|
"fullySpecified": false,
|
||||||
|
"swcTraceProfiling": false,
|
||||||
|
"forceSwcTransforms": false,
|
||||||
|
"largePageDataBytes": 128000,
|
||||||
|
"typedEnv": false,
|
||||||
|
"parallelServerCompiles": false,
|
||||||
|
"parallelServerBuildTraces": false,
|
||||||
|
"ppr": false,
|
||||||
|
"authInterrupts": false,
|
||||||
|
"webpackMemoryOptimizations": false,
|
||||||
|
"optimizeServerReact": true,
|
||||||
|
"strictRouteTypes": false,
|
||||||
|
"viewTransition": false,
|
||||||
|
"removeUncaughtErrorAndRejectionListeners": false,
|
||||||
|
"validateRSCRequestHeaders": false,
|
||||||
|
"staleTimes": {
|
||||||
|
"dynamic": 0,
|
||||||
|
"static": 300
|
||||||
|
},
|
||||||
|
"reactDebugChannel": true,
|
||||||
|
"serverComponentsHmrCache": true,
|
||||||
|
"staticGenerationMaxConcurrency": 8,
|
||||||
|
"staticGenerationMinPagesPerWorker": 25,
|
||||||
|
"transitionIndicator": false,
|
||||||
|
"gestureTransition": false,
|
||||||
|
"inlineCss": false,
|
||||||
|
"useCache": false,
|
||||||
|
"globalNotFound": false,
|
||||||
|
"browserDebugInfoInTerminal": "warn",
|
||||||
|
"lockDistDir": true,
|
||||||
|
"proxyClientMaxBodySize": 10485760,
|
||||||
|
"hideLogsAfterAbort": false,
|
||||||
|
"mcpServer": true,
|
||||||
|
"turbopackFileSystemCacheForDev": true,
|
||||||
|
"turbopackFileSystemCacheForBuild": false,
|
||||||
|
"turbopackInferModuleSideEffects": true,
|
||||||
|
"turbopackPluginRuntimeStrategy": "childProcesses",
|
||||||
|
"optimizePackageImports": [
|
||||||
|
"lucide-react",
|
||||||
|
"date-fns",
|
||||||
|
"lodash-es",
|
||||||
|
"ramda",
|
||||||
|
"antd",
|
||||||
|
"react-bootstrap",
|
||||||
|
"ahooks",
|
||||||
|
"@ant-design/icons",
|
||||||
|
"@headlessui/react",
|
||||||
|
"@headlessui-float/react",
|
||||||
|
"@heroicons/react/20/solid",
|
||||||
|
"@heroicons/react/24/solid",
|
||||||
|
"@heroicons/react/24/outline",
|
||||||
|
"@visx/visx",
|
||||||
|
"@tremor/react",
|
||||||
|
"rxjs",
|
||||||
|
"@mui/material",
|
||||||
|
"@mui/icons-material",
|
||||||
|
"recharts",
|
||||||
|
"react-use",
|
||||||
|
"effect",
|
||||||
|
"@effect/schema",
|
||||||
|
"@effect/platform",
|
||||||
|
"@effect/platform-node",
|
||||||
|
"@effect/platform-browser",
|
||||||
|
"@effect/platform-bun",
|
||||||
|
"@effect/sql",
|
||||||
|
"@effect/sql-mssql",
|
||||||
|
"@effect/sql-mysql2",
|
||||||
|
"@effect/sql-pg",
|
||||||
|
"@effect/sql-sqlite-node",
|
||||||
|
"@effect/sql-sqlite-bun",
|
||||||
|
"@effect/sql-sqlite-wasm",
|
||||||
|
"@effect/sql-sqlite-react-native",
|
||||||
|
"@effect/rpc",
|
||||||
|
"@effect/rpc-http",
|
||||||
|
"@effect/typeclass",
|
||||||
|
"@effect/experimental",
|
||||||
|
"@effect/opentelemetry",
|
||||||
|
"@material-ui/core",
|
||||||
|
"@material-ui/icons",
|
||||||
|
"@tabler/icons-react",
|
||||||
|
"mui-core",
|
||||||
|
"react-icons/ai",
|
||||||
|
"react-icons/bi",
|
||||||
|
"react-icons/bs",
|
||||||
|
"react-icons/cg",
|
||||||
|
"react-icons/ci",
|
||||||
|
"react-icons/di",
|
||||||
|
"react-icons/fa",
|
||||||
|
"react-icons/fa6",
|
||||||
|
"react-icons/fc",
|
||||||
|
"react-icons/fi",
|
||||||
|
"react-icons/gi",
|
||||||
|
"react-icons/go",
|
||||||
|
"react-icons/gr",
|
||||||
|
"react-icons/hi",
|
||||||
|
"react-icons/hi2",
|
||||||
|
"react-icons/im",
|
||||||
|
"react-icons/io",
|
||||||
|
"react-icons/io5",
|
||||||
|
"react-icons/lia",
|
||||||
|
"react-icons/lib",
|
||||||
|
"react-icons/lu",
|
||||||
|
"react-icons/md",
|
||||||
|
"react-icons/pi",
|
||||||
|
"react-icons/ri",
|
||||||
|
"react-icons/rx",
|
||||||
|
"react-icons/si",
|
||||||
|
"react-icons/sl",
|
||||||
|
"react-icons/tb",
|
||||||
|
"react-icons/tfi",
|
||||||
|
"react-icons/ti",
|
||||||
|
"react-icons/vsc",
|
||||||
|
"react-icons/wi"
|
||||||
|
],
|
||||||
|
"trustHostHeader": false,
|
||||||
|
"isExperimentalCompile": false
|
||||||
|
},
|
||||||
|
"htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight",
|
||||||
|
"bundlePagesRouterDependencies": false,
|
||||||
|
"configFileName": "next.config.ts",
|
||||||
|
"turbopack": {
|
||||||
|
"root": "/home/nara/apps/web"
|
||||||
|
},
|
||||||
|
"distDirRoot": ".next"
|
||||||
|
},
|
||||||
|
"appDir": "/home/nara/apps/web",
|
||||||
|
"relativeAppDir": "",
|
||||||
|
"files": [
|
||||||
|
".next/package.json",
|
||||||
|
".next/routes-manifest.json",
|
||||||
|
".next/server/pages-manifest.json",
|
||||||
|
".next/build-manifest.json",
|
||||||
|
".next/prerender-manifest.json",
|
||||||
|
".next/server/functions-config-manifest.json",
|
||||||
|
".next/server/middleware-manifest.json",
|
||||||
|
".next/server/middleware-build-manifest.js",
|
||||||
|
".next/server/app-paths-manifest.json",
|
||||||
|
".next/app-path-routes-manifest.json",
|
||||||
|
".next/server/server-reference-manifest.js",
|
||||||
|
".next/server/server-reference-manifest.json",
|
||||||
|
".next/server/prefetch-hints.json",
|
||||||
|
".next/BUILD_ID",
|
||||||
|
".next/server/next-font-manifest.js",
|
||||||
|
".next/server/next-font-manifest.json",
|
||||||
|
".next/required-server-files.json"
|
||||||
|
],
|
||||||
|
"ignore": []
|
||||||
|
}
|
||||||
69
.next/routes-manifest.json
Normal file
69
.next/routes-manifest.json
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"pages404": true,
|
||||||
|
"appType": "app",
|
||||||
|
"caseSensitive": false,
|
||||||
|
"basePath": "",
|
||||||
|
"redirects": [
|
||||||
|
{
|
||||||
|
"source": "/:path+/",
|
||||||
|
"destination": "/:path+",
|
||||||
|
"internal": true,
|
||||||
|
"priority": true,
|
||||||
|
"statusCode": 308,
|
||||||
|
"regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"headers": [],
|
||||||
|
"onMatchHeaders": [],
|
||||||
|
"rewrites": {
|
||||||
|
"beforeFiles": [],
|
||||||
|
"afterFiles": [],
|
||||||
|
"fallback": []
|
||||||
|
},
|
||||||
|
"dynamicRoutes": [],
|
||||||
|
"staticRoutes": [
|
||||||
|
{
|
||||||
|
"page": "/",
|
||||||
|
"regex": "^/(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/_global-error",
|
||||||
|
"regex": "^/_global\\-error(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/_global\\-error(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/_not-found",
|
||||||
|
"regex": "^/_not\\-found(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/_not\\-found(?:/)?$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"page": "/favicon.ico",
|
||||||
|
"regex": "^/favicon\\.ico(?:/)?$",
|
||||||
|
"routeKeys": {},
|
||||||
|
"namedRegex": "^/favicon\\.ico(?:/)?$"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataRoutes": [],
|
||||||
|
"rsc": {
|
||||||
|
"header": "rsc",
|
||||||
|
"varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch",
|
||||||
|
"prefetchHeader": "next-router-prefetch",
|
||||||
|
"didPostponeHeader": "x-nextjs-postponed",
|
||||||
|
"contentTypeHeader": "text/x-component",
|
||||||
|
"suffix": ".rsc",
|
||||||
|
"prefetchSegmentHeader": "next-router-segment-prefetch",
|
||||||
|
"prefetchSegmentSuffix": ".segment.rsc",
|
||||||
|
"prefetchSegmentDirSuffix": ".segments",
|
||||||
|
"clientParamParsing": false,
|
||||||
|
"dynamicRSCPrerender": false
|
||||||
|
},
|
||||||
|
"rewriteHeaders": {
|
||||||
|
"pathHeader": "x-nextjs-rewritten-path",
|
||||||
|
"queryHeader": "x-nextjs-rewritten-query"
|
||||||
|
}
|
||||||
|
}
|
||||||
6
.next/server/app-paths-manifest.json
Normal file
6
.next/server/app-paths-manifest.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "app/_global-error/page.js",
|
||||||
|
"/_not-found/page": "app/_not-found/page.js",
|
||||||
|
"/favicon.ico/route": "app/favicon.ico/route.js",
|
||||||
|
"/page": "app/page.js"
|
||||||
|
}
|
||||||
1
.next/server/app/_global-error.html
Normal file
1
.next/server/app/_global-error.html
Normal file
File diff suppressed because one or more lines are too long
15
.next/server/app/_global-error.meta
Normal file
15
.next/server/app/_global-error.meta
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
"status": 500,
|
||||||
|
"headers": {
|
||||||
|
"x-nextjs-stale-time": "300",
|
||||||
|
"x-nextjs-prerender": "1",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/_global-error/layout,_N_T_/_global-error/page,_N_T_/_global-error"
|
||||||
|
},
|
||||||
|
"segmentPaths": [
|
||||||
|
"/_tree",
|
||||||
|
"/_full",
|
||||||
|
"/__PAGE__",
|
||||||
|
"/_index",
|
||||||
|
"/_head"
|
||||||
|
]
|
||||||
|
}
|
||||||
15
.next/server/app/_global-error.rsc
Normal file
15
.next/server/app/_global-error.rsc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
4:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
5:"$Sreact.suspense"
|
||||||
|
8:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
a:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
c:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
|
||||||
|
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
d:[]
|
||||||
|
7:"$Wd"
|
||||||
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
e:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
6:null
|
||||||
|
b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Le","1",{}]]
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
3:"$Sreact.suspense"
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
4:null
|
||||||
15
.next/server/app/_global-error.segments/_full.segment.rsc
Normal file
15
.next/server/app/_global-error.segments/_full.segment.rsc
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
4:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
5:"$Sreact.suspense"
|
||||||
|
8:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
a:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
c:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
|
||||||
|
0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
d:[]
|
||||||
|
7:"$Wd"
|
||||||
|
9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
e:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
6:null
|
||||||
|
b:[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$Le","1",{}]]
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
3:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
4:"$Sreact.suspense"
|
||||||
|
5:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","$L5","1",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
4:[]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
10
.next/server/app/_global-error/page.js
Normal file
10
.next/server/app/_global-error/page.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_global-error/page.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0c6sjbl._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_09r9c10._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_13q04th.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__1jp7az7._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0g84hko._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js")
|
||||||
|
R.c("server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js")
|
||||||
|
R.m(99158)
|
||||||
|
module.exports=R.m(99158).exports
|
||||||
5
.next/server/app/_global-error/page.js.map
Normal file
5
.next/server/app/_global-error/page.js.map
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
1
.next/server/app/_global-error/page.js.nft.json
Normal file
1
.next/server/app/_global-error/page.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"/_global-error/page": "app/_global-error/page.js"
|
||||||
|
}
|
||||||
16
.next/server/app/_global-error/page/build-manifest.json
Normal file
16
.next/server/app/_global-error/page/build-manifest.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"devFiles": [],
|
||||||
|
"ampDevFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/0cz1d0mv5g_q7.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
"static/chunks/2ckqm4grawju5.js",
|
||||||
|
"static/chunks/2nykiepra7i1k.js",
|
||||||
|
"static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
],
|
||||||
|
"pages": {},
|
||||||
|
"ampFirstPages": []
|
||||||
|
}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pages": {},
|
||||||
|
"app": {},
|
||||||
|
"appUsingSizeAdjust": false,
|
||||||
|
"pagesUsingSizeAdjust": false
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"node": {},
|
||||||
|
"edge": {}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
1
.next/server/app/_not-found.html
Normal file
1
.next/server/app/_not-found.html
Normal file
File diff suppressed because one or more lines are too long
16
.next/server/app/_not-found.meta
Normal file
16
.next/server/app/_not-found.meta
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"status": 404,
|
||||||
|
"headers": {
|
||||||
|
"x-nextjs-stale-time": "300",
|
||||||
|
"x-nextjs-prerender": "1",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found"
|
||||||
|
},
|
||||||
|
"segmentPaths": [
|
||||||
|
"/_tree",
|
||||||
|
"/_full",
|
||||||
|
"/_not-found/__PAGE__",
|
||||||
|
"/_not-found",
|
||||||
|
"/_index",
|
||||||
|
"/_head"
|
||||||
|
]
|
||||||
|
}
|
||||||
21
.next/server/app/_not-found.rsc
Normal file
21
.next/server/app/_not-found.rsc
Normal file
File diff suppressed because one or more lines are too long
21
.next/server/app/_not-found.segments/_full.segment.rsc
Normal file
21
.next/server/app/_not-found.segments/_full.segment.rsc
Normal file
File diff suppressed because one or more lines are too long
6
.next/server/app/_not-found.segments/_head.segment.rsc
Normal file
6
.next/server/app/_not-found.segments/_head.segment.rsc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
3:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
4:"$Sreact.suspense"
|
||||||
|
5:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","1",{"name":"description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","2",{"property":"og:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","3",{"property":"og:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","4",{"property":"og:url","content":"https://hatch.surf"}],["$","meta","5",{"property":"og:site_name","content":"Hatch"}],["$","meta","6",{"property":"og:image","content":"http://localhost:3000/brand/og/default.png"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:type","content":"website"}],["$","meta","10",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","11",{"name":"twitter:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","12",{"name":"twitter:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","13",{"name":"twitter:image","content":"http://localhost:3000/brand/og/default.png"}],["$","link","14",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","link","15",{"rel":"icon","href":"/brand/favicon/favicon-48.png"}],["$","$L5","16",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
5
.next/server/app/_not-found.segments/_index.segment.rsc
Normal file
5
.next/server/app/_not-found.segments/_index.segment.rsc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","className":"inter_5901b7c6-module__ec5Qua__variable jetbrains_mono_d5591ac2-module__D88TVW__variable","children":["$","body",null,{"className":"min-h-screen bg-zinc-950 text-white font-sans antialiased","children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-blue-500 focus:text-white focus:rounded-lg","children":"Skip to content"}],["$","header",null,{"className":"fixed top-0 left-0 right-0 z-50 py-4 bg-zinc-950/80 backdrop-blur-lg border-b border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto px-6 flex justify-between items-center","children":[["$","a",null,{"href":"/","className":"text-xl font-bold text-white flex items-center gap-2 hover:text-white transition-colors","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","nav",null,{"className":"flex items-center gap-6","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"GitHub"}],["$","a",null,{"href":"/blog/","className":"text-zinc-400 hover:text-white transition-colors","children":"Blog"}]]}]]}]}],["$","main",null,{"id":"main-content","role":"main","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","footer",null,{"className":"py-8 px-6 border-t border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center gap-4","children":[["$","span",null,{"className":"text-white font-bold flex items-center gap-2","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","p",null,{"className":"text-zinc-500 text-sm text-center md:text-right","children":["© 2026 El Foundation."," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"Hatch"}]," ","is released under the"," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch/blob/main/LICENSE","className":"text-zinc-400 hover:text-white transition-colors","children":"MIT License"}],"."]}]]}]}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
4:[]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
3:"$Sreact.suspense"
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
4:null
|
||||||
2
.next/server/app/_not-found.segments/_tree.segment.rsc
Normal file
2
.next/server/app/_not-found.segments/_tree.segment.rsc
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"/_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
13
.next/server/app/_not-found/page.js
Normal file
13
.next/server/app/_not-found/page.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
var R=require("../../chunks/ssr/[turbopack]_runtime.js")("server/app/_not-found/page.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__04at3p9._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_09r9c10._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0048lj3.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__1jp7az7._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0g84hko._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0gn_kkd._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js")
|
||||||
|
R.c("server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js")
|
||||||
|
R.m(75972)
|
||||||
|
module.exports=R.m(75972).exports
|
||||||
5
.next/server/app/_not-found/page.js.map
Normal file
5
.next/server/app/_not-found/page.js.map
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
1
.next/server/app/_not-found/page.js.nft.json
Normal file
1
.next/server/app/_not-found/page.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
3
.next/server/app/_not-found/page/app-paths-manifest.json
Normal file
3
.next/server/app/_not-found/page/app-paths-manifest.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"/_not-found/page": "app/_not-found/page.js"
|
||||||
|
}
|
||||||
16
.next/server/app/_not-found/page/build-manifest.json
Normal file
16
.next/server/app/_not-found/page/build-manifest.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"devFiles": [],
|
||||||
|
"ampDevFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/0cz1d0mv5g_q7.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
"static/chunks/2ckqm4grawju5.js",
|
||||||
|
"static/chunks/2nykiepra7i1k.js",
|
||||||
|
"static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
],
|
||||||
|
"pages": {},
|
||||||
|
"ampFirstPages": []
|
||||||
|
}
|
||||||
11
.next/server/app/_not-found/page/next-font-manifest.json
Normal file
11
.next/server/app/_not-found/page/next-font-manifest.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"pages": {},
|
||||||
|
"app": {
|
||||||
|
"[project]/app/_not-found/page": [
|
||||||
|
"static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2",
|
||||||
|
"static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"appUsingSizeAdjust": true,
|
||||||
|
"pagesUsingSizeAdjust": false
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"node": {},
|
||||||
|
"edge": {}
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
BIN
.next/server/app/favicon.ico.body
Normal file
BIN
.next/server/app/favicon.ico.body
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
1
.next/server/app/favicon.ico.meta
Normal file
1
.next/server/app/favicon.ico.meta
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"}}
|
||||||
6
.next/server/app/favicon.ico/route.js
Normal file
6
.next/server/app/favicon.ico/route.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
var R=require("../../chunks/[turbopack]_runtime.js")("server/app/favicon.ico/route.js")
|
||||||
|
R.c("server/chunks/[externals]_next_dist_0iuj5m_._.js")
|
||||||
|
R.c("server/chunks/[root-of-the-server]__17cj935._.js")
|
||||||
|
R.c("server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js")
|
||||||
|
R.m(6218)
|
||||||
|
module.exports=R.m(6218).exports
|
||||||
5
.next/server/app/favicon.ico/route.js.map
Normal file
5
.next/server/app/favicon.ico/route.js.map
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
1
.next/server/app/favicon.ico/route.js.nft.json
Normal file
1
.next/server/app/favicon.ico/route.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"/favicon.ico/route": "app/favicon.ico/route.js"
|
||||||
|
}
|
||||||
9
.next/server/app/favicon.ico/route/build-manifest.json
Normal file
9
.next/server/app/favicon.ico/route/build-manifest.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"devFiles": [],
|
||||||
|
"ampDevFiles": [],
|
||||||
|
"polyfillFiles": [],
|
||||||
|
"lowPriorityFiles": [],
|
||||||
|
"rootMainFiles": [],
|
||||||
|
"pages": {},
|
||||||
|
"ampFirstPages": []
|
||||||
|
}
|
||||||
4
.next/server/app/index.html
Normal file
4
.next/server/app/index.html
Normal file
File diff suppressed because one or more lines are too long
14
.next/server/app/index.meta
Normal file
14
.next/server/app/index.meta
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"headers": {
|
||||||
|
"x-nextjs-stale-time": "300",
|
||||||
|
"x-nextjs-prerender": "1",
|
||||||
|
"x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/,_N_T_/index"
|
||||||
|
},
|
||||||
|
"segmentPaths": [
|
||||||
|
"/_tree",
|
||||||
|
"/_full",
|
||||||
|
"/__PAGE__",
|
||||||
|
"/_index",
|
||||||
|
"/_head"
|
||||||
|
]
|
||||||
|
}
|
||||||
26
.next/server/app/index.rsc
Normal file
26
.next/server/app/index.rsc
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
d:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
|
||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"inter_5901b7c6-module__ec5Qua__variable jetbrains_mono_d5591ac2-module__D88TVW__variable","children":["$","body",null,{"className":"min-h-screen bg-zinc-950 text-white font-sans antialiased","children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-blue-500 focus:text-white focus:rounded-lg","children":"Skip to content"}],["$","header",null,{"className":"fixed top-0 left-0 right-0 z-50 py-4 bg-zinc-950/80 backdrop-blur-lg border-b border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto px-6 flex justify-between items-center","children":[["$","a",null,{"href":"/","className":"text-xl font-bold text-white flex items-center gap-2 hover:text-white transition-colors","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","nav",null,{"className":"flex items-center gap-6","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"GitHub"}],["$","a",null,{"href":"/blog/","className":"text-zinc-400 hover:text-white transition-colors","children":"Blog"}]]}]]}]}],["$","main",null,{"id":"main-content","role":"main","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"py-8 px-6 border-t border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center gap-4","children":[["$","span",null,{"className":"text-white font-bold flex items-center gap-2","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","p",null,{"className":"text-zinc-500 text-sm text-center md:text-right","children":["© 2026 El Foundation."," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"Hatch"}]," ","is released under the"," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch/blob/main/LICENSE","className":"text-zinc-400 hover:text-white transition-colors","children":"MIT License"}],"."]}]]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[[["$","section",null,{"className":"pt-32 pb-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","div",null,{"className":"inline-block mb-6 px-5 py-2 rounded-full bg-blue-500/10 border border-blue-500/30 text-blue-400 text-sm font-medium","children":"Open source · MIT licensed"}],["$","h1",null,{"className":"text-4xl md:text-5xl lg:text-6xl font-extrabold tracking-tight mb-6 leading-tight bg-gradient-to-r from-white to-zinc-400 bg-clip-text text-transparent","children":["Self-hostable HTTP request","$L4","inspector + mocker"]}],"$L5","$L6","$L7"]}]}],"$L8","$L9","$La"],null,"$Lb"]}],{},null,false,null]},null,false,null],"$Lc",false]],"m":"$undefined","G":["$d",["$Le"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
f:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
10:"$Sreact.suspense"
|
||||||
|
12:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
14:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
4:["$","br",null,{}]
|
||||||
|
5:["$","p",null,{"className":"text-lg md:text-xl text-zinc-400 mb-10 max-w-2xl mx-auto leading-relaxed","children":["One Go binary. SQLite under the hood.",["$","code",null,{"className":"mx-1 px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-base","children":"docker compose up"}],", and you have an inspection endpoint and a live feed in under 30 seconds."]}]
|
||||||
|
6:["$","div",null,{"className":"flex flex-col sm:flex-row gap-4 justify-center mb-16","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5","children":[["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"}]}],"View on GitHub"]}],["$","a",null,{"href":"https://github.com/elfoundation/hatch#quick-start","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-zinc-800 hover:bg-zinc-700 text-white font-semibold rounded-lg border border-zinc-700 transition-all shadow-lg hover:shadow-xl hover:-translate-y-0.5","children":"Quick Start →"}]]}]
|
||||||
|
7:["$","div",null,{"className":"max-w-2xl mx-auto rounded-xl overflow-hidden border border-zinc-800 bg-zinc-900/50 backdrop-blur-sm shadow-2xl","children":[["$","div",null,{"className":"flex items-center gap-2 px-4 py-3 bg-gradient-to-r from-zinc-800/50 to-zinc-800/30 border-b border-zinc-800","children":[["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","span",null,{"className":"ml-2 text-sm text-zinc-500","children":"terminal"}]]}],["$","pre",null,{"className":"p-5 text-left text-sm font-mono overflow-x-auto","children":["$","code",null,{"children":[["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":"docker compose up -d"}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ hatch started on :8080"}],"\n",["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":["curl -X POST https://your-bin.hatch.surf/test -d ","{'hello':'world'}"]}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ captured — view at https://your-bin.hatch.surf/inspect"}]]}]}]]}]
|
||||||
|
8:["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Three things, and nothing else"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-8","children":[["$","div","Capture",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-blue-500/40 hover:shadow-blue-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-blue-500/15 text-blue-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"12","r":"10"}],["$","polyline",null,{"points":"12 6 12 12 16 14"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Capture"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Method, path, headers, query, body. Persists across restarts because the storage is SQLite on disk, not a hosted queue."}]]}],["$","div","Inspect",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-purple-500/40 hover:shadow-purple-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-purple-500/15 text-purple-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Inspect"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A live SSE feed of incoming requests. Click any captured request to see the headers, the body, the timing."}]]}],["$","div","Mock",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-cyan-500/40 hover:shadow-cyan-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-cyan-500/15 text-cyan-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","polyline",null,{"points":"16 18 22 12 16 6"}],["$","polyline",null,{"points":"8 6 2 12 8 18"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Mock"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Return a 200, a 500, or a custom JSON payload. For testing your own retry, backoff, and error-handling logic."}]]}]]}]]}]}]
|
||||||
|
9:["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Why a single binary, not a SaaS"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-6","children":[["$","div","01",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-blue-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"01"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Compliance and privacy"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Some teams cannot legally send webhook payloads to a hosted SaaS. Hatch keeps the data on your own network."}]]}],["$","div","02",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-purple-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"02"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Cost"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A hosted inspector charges per request, per seat, or per retention day. Hatch is one Go binary on a $5 VPS. There is no per-request fee because there is no one to charge it."}]]}],["$","div","03",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-cyan-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"03"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Speed of setup"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":[["$","code",null,{"className":"px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-sm","children":"docker compose up"}]," ","is faster than signing up for a SaaS, verifying your email, configuring your first bin, and pasting the URL into your webhook config."]}]]}]]}]]}]}]
|
||||||
|
a:["$","section",null,{"className":"py-24 px-6 bg-gradient-to-b from-zinc-900/30 to-zinc-900/60","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","h2",null,{"className":"text-4xl md:text-5xl font-extrabold mb-4 bg-gradient-to-r from-white to-blue-400 bg-clip-text text-transparent","children":"Start inspecting in 30 seconds"}],["$","p",null,{"className":"text-xl text-zinc-400 mb-10","children":"One binary. Your data stays yours."}],["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-10 py-5 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5 text-lg","children":"Get Hatch →"}]]}]}]
|
||||||
|
b:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
|
||||||
|
c:["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$10",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
||||||
|
e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
|
||||||
|
13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
16:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
11:null
|
||||||
|
15:[["$","title","0",{"children":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","1",{"name":"description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","2",{"property":"og:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","3",{"property":"og:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","4",{"property":"og:url","content":"https://hatch.surf"}],["$","meta","5",{"property":"og:site_name","content":"Hatch"}],["$","meta","6",{"property":"og:image","content":"http://localhost:3000/brand/og/default.png"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:type","content":"website"}],["$","meta","10",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","11",{"name":"twitter:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","12",{"name":"twitter:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","13",{"name":"twitter:image","content":"http://localhost:3000/brand/og/default.png"}],["$","link","14",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","link","15",{"rel":"icon","href":"/brand/favicon/favicon-48.png"}],["$","$L16","16",{}]]
|
||||||
13
.next/server/app/index.segments/__PAGE__.segment.rsc
Normal file
13
.next/server/app/index.segments/__PAGE__.segment.rsc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
a:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
b:"$Sreact.suspense"
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[[["$","section",null,{"className":"pt-32 pb-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","div",null,{"className":"inline-block mb-6 px-5 py-2 rounded-full bg-blue-500/10 border border-blue-500/30 text-blue-400 text-sm font-medium","children":"Open source · MIT licensed"}],["$","h1",null,{"className":"text-4xl md:text-5xl lg:text-6xl font-extrabold tracking-tight mb-6 leading-tight bg-gradient-to-r from-white to-zinc-400 bg-clip-text text-transparent","children":["Self-hostable HTTP request",["$","br",null,{}],"inspector + mocker"]}],["$","p",null,{"className":"text-lg md:text-xl text-zinc-400 mb-10 max-w-2xl mx-auto leading-relaxed","children":["One Go binary. SQLite under the hood.",["$","code",null,{"className":"mx-1 px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-base","children":"docker compose up"}],", and you have an inspection endpoint and a live feed in under 30 seconds."]}],["$","div",null,{"className":"flex flex-col sm:flex-row gap-4 justify-center mb-16","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5","children":[["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"}]}],"View on GitHub"]}],["$","a",null,{"href":"https://github.com/elfoundation/hatch#quick-start","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-zinc-800 hover:bg-zinc-700 text-white font-semibold rounded-lg border border-zinc-700 transition-all shadow-lg hover:shadow-xl hover:-translate-y-0.5","children":"Quick Start →"}]]}],["$","div",null,{"className":"max-w-2xl mx-auto rounded-xl overflow-hidden border border-zinc-800 bg-zinc-900/50 backdrop-blur-sm shadow-2xl","children":[["$","div",null,{"className":"flex items-center gap-2 px-4 py-3 bg-gradient-to-r from-zinc-800/50 to-zinc-800/30 border-b border-zinc-800","children":[["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","span",null,{"className":"ml-2 text-sm text-zinc-500","children":"terminal"}]]}],["$","pre",null,{"className":"p-5 text-left text-sm font-mono overflow-x-auto","children":["$","code",null,{"children":[["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":"docker compose up -d"}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ hatch started on :8080"}],"\n",["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":["curl -X POST https://your-bin.hatch.surf/test -d ","{'hello':'world'}"]}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ captured — view at https://your-bin.hatch.surf/inspect"}]]}]}]]}]]}]}],["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Three things, and nothing else"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-8","children":[["$","div","Capture",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-blue-500/40 hover:shadow-blue-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":["$L2","$L3","$L4"]}],"$L5","$L6"]}]]}]}],"$L7","$L8"],null,"$L9"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
2:["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-blue-500/15 text-blue-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"12","r":"10"}],["$","polyline",null,{"points":"12 6 12 12 16 14"}]]}]}]
|
||||||
|
3:["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Capture"}]
|
||||||
|
4:["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Method, path, headers, query, body. Persists across restarts because the storage is SQLite on disk, not a hosted queue."}]
|
||||||
|
5:["$","div","Inspect",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-purple-500/40 hover:shadow-purple-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-purple-500/15 text-purple-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Inspect"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A live SSE feed of incoming requests. Click any captured request to see the headers, the body, the timing."}]]}]
|
||||||
|
6:["$","div","Mock",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-cyan-500/40 hover:shadow-cyan-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-cyan-500/15 text-cyan-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","polyline",null,{"points":"16 18 22 12 16 6"}],["$","polyline",null,{"points":"8 6 2 12 8 18"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Mock"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Return a 200, a 500, or a custom JSON payload. For testing your own retry, backoff, and error-handling logic."}]]}]
|
||||||
|
7:["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Why a single binary, not a SaaS"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-6","children":[["$","div","01",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-blue-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"01"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Compliance and privacy"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Some teams cannot legally send webhook payloads to a hosted SaaS. Hatch keeps the data on your own network."}]]}],["$","div","02",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-purple-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"02"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Cost"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A hosted inspector charges per request, per seat, or per retention day. Hatch is one Go binary on a $5 VPS. There is no per-request fee because there is no one to charge it."}]]}],["$","div","03",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-cyan-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"03"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Speed of setup"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":[["$","code",null,{"className":"px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-sm","children":"docker compose up"}]," ","is faster than signing up for a SaaS, verifying your email, configuring your first bin, and pasting the URL into your webhook config."]}]]}]]}]]}]}]
|
||||||
|
8:["$","section",null,{"className":"py-24 px-6 bg-gradient-to-b from-zinc-900/30 to-zinc-900/60","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","h2",null,{"className":"text-4xl md:text-5xl font-extrabold mb-4 bg-gradient-to-r from-white to-blue-400 bg-clip-text text-transparent","children":"Start inspecting in 30 seconds"}],["$","p",null,{"className":"text-xl text-zinc-400 mb-10","children":"One binary. Your data stays yours."}],["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-10 py-5 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5 text-lg","children":"Get Hatch →"}]]}]}]
|
||||||
|
9:["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]
|
||||||
|
c:null
|
||||||
26
.next/server/app/index.segments/_full.segment.rsc
Normal file
26
.next/server/app/index.segments/_full.segment.rsc
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
d:I[68027,["/_next/static/chunks/158myu8e_yme3.js"],"default",1]
|
||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"inter_5901b7c6-module__ec5Qua__variable jetbrains_mono_d5591ac2-module__D88TVW__variable","children":["$","body",null,{"className":"min-h-screen bg-zinc-950 text-white font-sans antialiased","children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-blue-500 focus:text-white focus:rounded-lg","children":"Skip to content"}],["$","header",null,{"className":"fixed top-0 left-0 right-0 z-50 py-4 bg-zinc-950/80 backdrop-blur-lg border-b border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto px-6 flex justify-between items-center","children":[["$","a",null,{"href":"/","className":"text-xl font-bold text-white flex items-center gap-2 hover:text-white transition-colors","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","nav",null,{"className":"flex items-center gap-6","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"GitHub"}],["$","a",null,{"href":"/blog/","className":"text-zinc-400 hover:text-white transition-colors","children":"Blog"}]]}]]}]}],["$","main",null,{"id":"main-content","role":"main","children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","footer",null,{"className":"py-8 px-6 border-t border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center gap-4","children":[["$","span",null,{"className":"text-white font-bold flex items-center gap-2","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","p",null,{"className":"text-zinc-500 text-sm text-center md:text-right","children":["© 2026 El Foundation."," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"Hatch"}]," ","is released under the"," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch/blob/main/LICENSE","className":"text-zinc-400 hover:text-white transition-colors","children":"MIT License"}],"."]}]]}]}]}]]}]}]]}],{"children":[["$","$1","c",{"children":[[["$","section",null,{"className":"pt-32 pb-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","div",null,{"className":"inline-block mb-6 px-5 py-2 rounded-full bg-blue-500/10 border border-blue-500/30 text-blue-400 text-sm font-medium","children":"Open source · MIT licensed"}],["$","h1",null,{"className":"text-4xl md:text-5xl lg:text-6xl font-extrabold tracking-tight mb-6 leading-tight bg-gradient-to-r from-white to-zinc-400 bg-clip-text text-transparent","children":["Self-hostable HTTP request","$L4","inspector + mocker"]}],"$L5","$L6","$L7"]}]}],"$L8","$L9","$La"],null,"$Lb"]}],{},null,false,null]},null,false,null],"$Lc",false]],"m":"$undefined","G":["$d",["$Le"]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
|
f:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"OutletBoundary"]
|
||||||
|
10:"$Sreact.suspense"
|
||||||
|
12:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
14:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
4:["$","br",null,{}]
|
||||||
|
5:["$","p",null,{"className":"text-lg md:text-xl text-zinc-400 mb-10 max-w-2xl mx-auto leading-relaxed","children":["One Go binary. SQLite under the hood.",["$","code",null,{"className":"mx-1 px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-base","children":"docker compose up"}],", and you have an inspection endpoint and a live feed in under 30 seconds."]}]
|
||||||
|
6:["$","div",null,{"className":"flex flex-col sm:flex-row gap-4 justify-center mb-16","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5","children":[["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":["$","path",null,{"d":"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"}]}],"View on GitHub"]}],["$","a",null,{"href":"https://github.com/elfoundation/hatch#quick-start","className":"inline-flex items-center justify-center gap-2 px-8 py-4 bg-zinc-800 hover:bg-zinc-700 text-white font-semibold rounded-lg border border-zinc-700 transition-all shadow-lg hover:shadow-xl hover:-translate-y-0.5","children":"Quick Start →"}]]}]
|
||||||
|
7:["$","div",null,{"className":"max-w-2xl mx-auto rounded-xl overflow-hidden border border-zinc-800 bg-zinc-900/50 backdrop-blur-sm shadow-2xl","children":[["$","div",null,{"className":"flex items-center gap-2 px-4 py-3 bg-gradient-to-r from-zinc-800/50 to-zinc-800/30 border-b border-zinc-800","children":[["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","div",null,{"className":"w-3 h-3 rounded-full bg-zinc-600"}],["$","span",null,{"className":"ml-2 text-sm text-zinc-500","children":"terminal"}]]}],["$","pre",null,{"className":"p-5 text-left text-sm font-mono overflow-x-auto","children":["$","code",null,{"children":[["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":"docker compose up -d"}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ hatch started on :8080"}],"\n",["$","span",null,{"className":"text-blue-400 font-semibold","children":"$$"}]," ",["$","span",null,{"className":"text-zinc-300","children":["curl -X POST https://your-bin.hatch.surf/test -d ","{'hello':'world'}"]}],"\n",["$","span",null,{"className":"text-emerald-400","children":"✓ captured — view at https://your-bin.hatch.surf/inspect"}]]}]}]]}]
|
||||||
|
8:["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Three things, and nothing else"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-8","children":[["$","div","Capture",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-blue-500/40 hover:shadow-blue-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-blue-500/15 text-blue-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"12","cy":"12","r":"10"}],["$","polyline",null,{"points":"12 6 12 12 16 14"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Capture"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Method, path, headers, query, body. Persists across restarts because the storage is SQLite on disk, not a hosted queue."}]]}],["$","div","Inspect",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-purple-500/40 hover:shadow-purple-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-purple-500/15 text-purple-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","path",null,{"d":"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}],["$","circle",null,{"cx":"12","cy":"12","r":"3"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Inspect"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A live SSE feed of incoming requests. Click any captured request to see the headers, the body, the timing."}]]}],["$","div","Mock",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 hover:border-cyan-500/40 hover:shadow-cyan-500/10 transition-all hover:-translate-y-1 shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"w-14 h-14 flex items-center justify-center rounded-xl bg-cyan-500/15 text-cyan-400 mb-4 shadow-lg","children":["$","svg",null,{"width":"28","height":"28","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"1.5","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","polyline",null,{"points":"16 18 22 12 16 6"}],["$","polyline",null,{"points":"8 6 2 12 8 18"}]]}]}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Mock"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Return a 200, a 500, or a custom JSON payload. For testing your own retry, backoff, and error-handling logic."}]]}]]}]]}]}]
|
||||||
|
9:["$","section",null,{"className":"py-20 px-6","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":[["$","h2",null,{"className":"text-3xl md:text-4xl font-bold text-center mb-16","children":"Why a single binary, not a SaaS"}],["$","div",null,{"className":"grid md:grid-cols-3 gap-6","children":[["$","div","01",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-blue-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"01"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Compliance and privacy"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"Some teams cannot legally send webhook payloads to a hosted SaaS. Hatch keeps the data on your own network."}]]}],["$","div","02",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-purple-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"02"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Cost"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":"A hosted inspector charges per request, per seat, or per retention day. Hatch is one Go binary on a $5 VPS. There is no per-request fee because there is no one to charge it."}]]}],["$","div","03",{"className":"p-6 rounded-xl bg-gradient-to-b from-zinc-900/80 to-zinc-900/40 border border-zinc-800 border-l-4 border-l-cyan-500 hover:-translate-y-1 transition-all shadow-lg hover:shadow-xl","children":[["$","div",null,{"className":"text-4xl font-bold text-zinc-600 font-mono mb-4","children":"03"}],["$","h3",null,{"className":"text-xl font-semibold mb-2","children":"Speed of setup"}],["$","p",null,{"className":"text-zinc-400 leading-relaxed","children":[["$","code",null,{"className":"px-2 py-0.5 bg-zinc-800 border border-zinc-700 rounded text-fuchsia-400 text-sm","children":"docker compose up"}]," ","is faster than signing up for a SaaS, verifying your email, configuring your first bin, and pasting the URL into your webhook config."]}]]}]]}]]}]}]
|
||||||
|
a:["$","section",null,{"className":"py-24 px-6 bg-gradient-to-b from-zinc-900/30 to-zinc-900/60","children":["$","div",null,{"className":"max-w-4xl mx-auto text-center","children":[["$","h2",null,{"className":"text-4xl md:text-5xl font-extrabold mb-4 bg-gradient-to-r from-white to-blue-400 bg-clip-text text-transparent","children":"Start inspecting in 30 seconds"}],["$","p",null,{"className":"text-xl text-zinc-400 mb-10","children":"One binary. Your data stays yours."}],["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"inline-flex items-center justify-center gap-2 px-10 py-5 bg-blue-500 hover:bg-blue-600 text-white font-semibold rounded-lg transition-all shadow-lg shadow-blue-500/30 hover:shadow-xl hover:shadow-blue-500/40 hover:-translate-y-0.5 text-lg","children":"Get Hatch →"}]]}]}]
|
||||||
|
b:["$","$Lf",null,{"children":["$","$10",null,{"name":"Next.MetadataOutlet","children":"$@11"}]}]
|
||||||
|
c:["$","$1","h",{"children":[null,["$","$L12",null,{"children":"$L13"}],["$","div",null,{"hidden":true,"children":["$","$L14",null,{"children":["$","$10",null,{"name":"Next.Metadata","children":"$L15"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}]
|
||||||
|
e:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]
|
||||||
|
13:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
||||||
|
16:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
11:null
|
||||||
|
15:[["$","title","0",{"children":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","1",{"name":"description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","2",{"property":"og:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","3",{"property":"og:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","4",{"property":"og:url","content":"https://hatch.surf"}],["$","meta","5",{"property":"og:site_name","content":"Hatch"}],["$","meta","6",{"property":"og:image","content":"http://localhost:3000/brand/og/default.png"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:type","content":"website"}],["$","meta","10",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","11",{"name":"twitter:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","12",{"name":"twitter:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","13",{"name":"twitter:image","content":"http://localhost:3000/brand/og/default.png"}],["$","link","14",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","link","15",{"rel":"icon","href":"/brand/favicon/favicon-48.png"}],["$","$L16","16",{}]]
|
||||||
6
.next/server/app/index.segments/_head.segment.rsc
Normal file
6
.next/server/app/index.segments/_head.segment.rsc
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"ViewportBoundary"]
|
||||||
|
3:I[97367,["/_next/static/chunks/158myu8e_yme3.js"],"MetadataBoundary"]
|
||||||
|
4:"$Sreact.suspense"
|
||||||
|
5:I[27201,["/_next/static/chunks/158myu8e_yme3.js"],"IconMark"]
|
||||||
|
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","1",{"name":"description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","2",{"property":"og:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","3",{"property":"og:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","4",{"property":"og:url","content":"https://hatch.surf"}],["$","meta","5",{"property":"og:site_name","content":"Hatch"}],["$","meta","6",{"property":"og:image","content":"http://localhost:3000/brand/og/default.png"}],["$","meta","7",{"property":"og:image:width","content":"1200"}],["$","meta","8",{"property":"og:image:height","content":"630"}],["$","meta","9",{"property":"og:type","content":"website"}],["$","meta","10",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","11",{"name":"twitter:title","content":"Hatch — Self-hostable HTTP request inspector + mocker"}],["$","meta","12",{"name":"twitter:description","content":"Hatch is a self-hostable HTTP request inspector and mocker. One Go binary, SQLite, no SaaS, no per-request fee. Open source, MIT."}],["$","meta","13",{"name":"twitter:image","content":"http://localhost:3000/brand/og/default.png"}],["$","link","14",{"rel":"icon","href":"/favicon.ico?favicon.2vob68tjqpejf.ico","sizes":"256x256","type":"image/x-icon"}],["$","link","15",{"rel":"icon","href":"/brand/favicon/favicon-48.png"}],["$","$L5","16",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
5
.next/server/app/index.segments/_index.segment.rsc
Normal file
5
.next/server/app/index.segments/_index.segment.rsc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
1:"$Sreact.fragment"
|
||||||
|
2:I[39756,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
3:I[37457,["/_next/static/chunks/158myu8e_yme3.js"],"default"]
|
||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/40hwf0y1goj6_.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/158myu8e_yme3.js","async":true}]],["$","html",null,{"lang":"en","className":"inter_5901b7c6-module__ec5Qua__variable jetbrains_mono_d5591ac2-module__D88TVW__variable","children":["$","body",null,{"className":"min-h-screen bg-zinc-950 text-white font-sans antialiased","children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-50 focus:px-4 focus:py-2 focus:bg-blue-500 focus:text-white focus:rounded-lg","children":"Skip to content"}],["$","header",null,{"className":"fixed top-0 left-0 right-0 z-50 py-4 bg-zinc-950/80 backdrop-blur-lg border-b border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto px-6 flex justify-between items-center","children":[["$","a",null,{"href":"/","className":"text-xl font-bold text-white flex items-center gap-2 hover:text-white transition-colors","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","nav",null,{"className":"flex items-center gap-6","children":[["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"GitHub"}],["$","a",null,{"href":"/blog/","className":"text-zinc-400 hover:text-white transition-colors","children":"Blog"}]]}]]}]}],["$","main",null,{"id":"main-content","role":"main","children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}],["$","footer",null,{"className":"py-8 px-6 border-t border-zinc-800","children":["$","div",null,{"className":"max-w-4xl mx-auto","children":["$","div",null,{"className":"flex flex-col md:flex-row justify-between items-center gap-4","children":[["$","span",null,{"className":"text-white font-bold flex items-center gap-2","children":[["$","span",null,{"className":"text-blue-400","children":"⬡"}]," Hatch"]}],["$","p",null,{"className":"text-zinc-500 text-sm text-center md:text-right","children":["© 2026 El Foundation."," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch","className":"text-zinc-400 hover:text-white transition-colors","children":"Hatch"}]," ","is released under the"," ",["$","a",null,{"href":"https://github.com/elfoundation/hatch/blob/main/LICENSE","className":"text-zinc-400 hover:text-white transition-colors","children":"MIT License"}],"."]}]]}]}]}]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
4
.next/server/app/index.segments/_tree.segment.rsc
Normal file
4
.next/server/app/index.segments/_tree.segment.rsc
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
:HL["/_next/static/chunks/40hwf0y1goj6_.css","style"]
|
||||||
|
:HL["/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
:HL["/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
||||||
|
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"W0ph6BZ8oDeJaHcE9fuII"}
|
||||||
14
.next/server/app/page.js
Normal file
14
.next/server/app/page.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
var R=require("../chunks/ssr/[turbopack]_runtime.js")("server/app/page.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__02fbh2n._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_09r9c10._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_04tpgk4.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__1jp7az7._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0g84hko._.js")
|
||||||
|
R.c("server/chunks/ssr/[root-of-the-server]__0gn_kkd._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js")
|
||||||
|
R.c("server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js")
|
||||||
|
R.c("server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js")
|
||||||
|
R.m(51717)
|
||||||
|
module.exports=R.m(51717).exports
|
||||||
5
.next/server/app/page.js.map
Normal file
5
.next/server/app/page.js.map
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"sources": [],
|
||||||
|
"sections": []
|
||||||
|
}
|
||||||
1
.next/server/app/page.js.nft.json
Normal file
1
.next/server/app/page.js.nft.json
Normal file
File diff suppressed because one or more lines are too long
3
.next/server/app/page/app-paths-manifest.json
Normal file
3
.next/server/app/page/app-paths-manifest.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"/page": "app/page.js"
|
||||||
|
}
|
||||||
16
.next/server/app/page/build-manifest.json
Normal file
16
.next/server/app/page/build-manifest.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"devFiles": [],
|
||||||
|
"ampDevFiles": [],
|
||||||
|
"polyfillFiles": [
|
||||||
|
"static/chunks/0cz1d0mv5g_q7.js"
|
||||||
|
],
|
||||||
|
"lowPriorityFiles": [],
|
||||||
|
"rootMainFiles": [
|
||||||
|
"static/chunks/3z5q_p4msz2ha.js",
|
||||||
|
"static/chunks/2ckqm4grawju5.js",
|
||||||
|
"static/chunks/2nykiepra7i1k.js",
|
||||||
|
"static/chunks/turbopack-1n9x74gl-i54j.js"
|
||||||
|
],
|
||||||
|
"pages": {},
|
||||||
|
"ampFirstPages": []
|
||||||
|
}
|
||||||
11
.next/server/app/page/next-font-manifest.json
Normal file
11
.next/server/app/page/next-font-manifest.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"pages": {},
|
||||||
|
"app": {
|
||||||
|
"[project]/app/page": [
|
||||||
|
"static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2",
|
||||||
|
"static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"appUsingSizeAdjust": true,
|
||||||
|
"pagesUsingSizeAdjust": false
|
||||||
|
}
|
||||||
1
.next/server/app/page/react-loadable-manifest.json
Normal file
1
.next/server/app/page/react-loadable-manifest.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
4
.next/server/app/page/server-reference-manifest.json
Normal file
4
.next/server/app/page/server-reference-manifest.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"node": {},
|
||||||
|
"edge": {}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user