diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 0000000..9c85af8
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,98 @@
+name: 배포
+
+# main에 올리면 정적 사이트를 만들어 GitHub Pages에 올린다.
+# 받기 버튼의 설치 파일 주소는 빌드할 때 최신 릴리스에서 읽는다. 앱을 새로 릴리스하면 이 워크플로를 다시 돌린다
+# (Actions → 배포 → Run workflow, 또는 앱 저장소에서 repository_dispatch: lantern-release).
+on:
+ push:
+ branches: [main]
+ pull_request:
+ workflow_dispatch:
+ repository_dispatch:
+ types: [lantern-release]
+
+# 배포는 한 번에 하나만. 진행 중인 배포는 끝까지 두고 대기시킨다.
+concurrency:
+ group: pages-${{ github.ref }}
+ cancel-in-progress: false
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+jobs:
+ build:
+ name: 정적 사이트 생성
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: actions/setup-node@v4
+ with:
+ node-version: 22
+ cache: npm
+
+ - name: 의존성
+ run: npm ci
+
+ - name: 타입 검사
+ run: npm run typecheck
+
+ - name: 생성
+ env:
+ # GitHub API 호출 한도를 넉넉히 (최신 릴리스 읽기)
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: npm run build
+
+ - name: 방향 계약이 빌드에 남았는지
+ run: grep -q "THESIS:" .output/public/index.html
+
+ - uses: actions/configure-pages@v5
+ if: github.event_name != 'pull_request'
+ with:
+ # 저장소에 Pages가 꺼져 있으면 직접 켠다 (공개 저장소라 무료 플랜에서도 된다)
+ enablement: true
+
+ - uses: actions/upload-pages-artifact@v3
+ if: github.event_name != 'pull_request'
+ with:
+ path: .output/public
+
+ deploy:
+ name: Pages 배포
+ if: github.event_name != 'pull_request'
+ needs: build
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ steps:
+ - uses: actions/deploy-pages@v4
+ id: deployment
+
+ smoke:
+ name: 배포 후 확인
+ if: github.event_name != 'pull_request'
+ needs: deploy
+ runs-on: ubuntu-latest
+ steps:
+ # 배포가 성공했다는 것과 사이트가 실제로 뜬다는 것은 다르다 (경로가 어긋나 CSS가 404인 경우가 대표적)
+ - name: 페이지와 CSS 응답
+ run: |
+ base="https://lantern-ide.github.io"
+ fail=0
+ for path in "/" "/en/" "/favicon.svg" "/shots/impact-ko.png"; do
+ code=$(curl -sS -o /dev/null -w '%{http_code}' --retry 5 --retry-delay 5 --retry-all-errors "$base$path")
+ printf ' %-24s %s\n' "$path" "$code"
+ [ "$code" = "200" ] || fail=1
+ done
+ css=$(curl -sS "$base/" | grep -oE 'href="[^"]+\.css"' | head -1 | sed -E 's/href="([^"]+)"/\1/')
+ if [ -n "$css" ]; then
+ code=$(curl -sS -o /dev/null -w '%{http_code}' "$base$css")
+ printf ' %-24s %s\n' "css" "$code"
+ [ "$code" = "200" ] || fail=1
+ else
+ echo " css 링크를 찾지 못했습니다"; fail=1
+ fi
+ exit $fail
diff --git a/.impeccable/design.json b/.impeccable/design.json
new file mode 100644
index 0000000..b773573
--- /dev/null
+++ b/.impeccable/design.json
@@ -0,0 +1,85 @@
+{
+ "schemaVersion": 2,
+ "generatedAt": "2026-09-26T04:40:00+09:00",
+ "title": "Design System: Lantern IDE 소개 사이트",
+ "extensions": {
+ "colorMeta": {
+ "ide-ground": { "role": "neutral", "displayName": "IDE Ground", "canonical": "#16171c", "tonalRamp": ["#0b0b0e", "#111216", "#16171c", "#202128", "#2a2c35", "#3a3d49", "#6f7585", "#d5d8e0"] },
+ "action-indigo": { "role": "primary", "displayName": "Action Indigo", "canonical": "#5b62e6", "tonalRamp": ["#1d1f52", "#2b2f7a", "#3d42a8", "#4f55d8", "#5b62e6", "#7c83ff", "#9aa3ff", "#d6d9ff"] },
+ "context-teal": { "role": "primary", "displayName": "Context Teal", "canonical": "#2cc6e0", "tonalRamp": ["#063a44", "#0a5563", "#0b7f94", "#16a3bb", "#2cc6e0", "#5cd6ea", "#9be6f3", "#dff7fb"] },
+ "impact-red": { "role": "secondary", "displayName": "Impact Red", "canonical": "#f2656a", "tonalRamp": ["#4a1417", "#7a2227", "#a8323a", "#c9353b", "#f2656a", "#f68e92", "#f9b7ba", "#fde4e5"] },
+ "impact-amber": { "role": "secondary", "displayName": "Impact Amber", "canonical": "#dcae3a", "tonalRamp": ["#3d2f08", "#5f4a0c", "#9a6b00", "#bf9022", "#dcae3a", "#e6c46c", "#f0da9e", "#faf1d9"] }
+ },
+ "typographyMeta": {
+ "display": { "displayName": "Display", "purpose": "첫 화면 제목 한 곳" },
+ "headline": { "displayName": "Headline", "purpose": "각 절의 제목" },
+ "code": { "displayName": "Code", "purpose": "diff, 경로, 명령에만" }
+ },
+ "shadows": [
+ { "name": "panel-lift", "value": "0 14px 36px rgba(0,0,0,0.38)", "purpose": "승인 카드, 앱 화면 캡처" },
+ { "name": "floating-header", "value": "0 10px 30px rgba(0,0,0,0.35), 0 1px 2px rgba(0,0,0,0.3)", "purpose": "작업 머리글" },
+ { "name": "action-glow", "value": "0 8px 22px rgba(91,98,230,0.32), 0 1px 2px rgba(0,0,0,0.4)", "purpose": "받기 버튼 한 곳" }
+ ],
+ "motion": [
+ { "name": "ease-out", "value": "cubic-bezier(0.16, 1, 0.3, 1)", "purpose": "머리글 등장, 버튼 떠오름" },
+ { "name": "map-approach", "value": "exponential 170ms (camera 260ms)", "purpose": "지도 노드가 단계 목표로 다가가는 속도" },
+ { "name": "impact-ripple", "value": "2400ms loop", "purpose": "영향 단계의 파문. 움직임 줄이기에서는 없음" }
+ ],
+ "breakpoints": [{ "name": "stacked", "value": "900px" }]
+ },
+ "components": [
+ {
+ "name": "Primary Button",
+ "kind": "button",
+ "refersTo": "button-primary",
+ "description": "운영체제에 맞는 설치 파일 받기. 페이지에 하나.",
+ "html": "Windows용 받기0.1.1 · 9.1 MB",
+ "css": ".ds-btn-primary { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 22px; border-radius: 6px; background: #5b62e6; color: #fff; text-decoration: none; font-weight: 620; font-size: 16px; box-shadow: 0 8px 22px rgba(91,98,230,0.32), 0 1px 2px rgba(0,0,0,0.4); transition: background .15s, transform .15s cubic-bezier(0.16,1,0.3,1); } .ds-btn-primary:hover { background: #6a71f0; transform: translateY(-1px); } .ds-btn-primary:focus-visible { outline: 2px solid #7c83ff; outline-offset: 3px; } .ds-meta { font-weight: 450; font-size: 13px; opacity: .85; font-variant-numeric: tabular-nums; }"
+ },
+ {
+ "name": "Outline Button",
+ "kind": "button",
+ "refersTo": "button-outline",
+ "description": "운영체제별 받기 줄의 버튼",
+ "html": "받기",
+ "css": ".ds-btn-outline { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: 6px; border: 1px solid #3a3d49; color: #f0f1f5; text-decoration: none; font-size: 14px; } .ds-btn-outline:hover { border-color: #5b62e6; background: rgba(91,98,230,0.12); } .ds-btn-outline:focus-visible { outline: 2px solid #7c83ff; outline-offset: 3px; }"
+ },
+ {
+ "name": "Term Chips",
+ "kind": "chip",
+ "refersTo": "chip-term",
+ "description": "질문에 쓴 말(중립)과 사전이 넓힌 말(청록)",
+ "html": "중복dedupe",
+ "css": ".ds-chip { display: inline-block; font-size: 13px; line-height: 24px; padding: 0 9px; border-radius: 12px; border: 1px solid #3a3d49; color: #d5d8e0; margin-right: 6px; } .ds-chip-x { border-color: rgba(44,198,224,0.55); color: #2cc6e0; background: rgba(44,198,224,0.12); }"
+ },
+ {
+ "name": "Impact Box",
+ "kind": "custom",
+ "refersTo": "app-panel",
+ "description": "승인 카드 안의 영향 반경 (앱에서 옮김)",
+ "html": "
영향 반경 위험도 높음
query_terms4직접 호출24간접 호출17파일에 걸침테스트 없음
",
+ "css": ".ds-impact { padding: 10px 12px; border: 1px solid rgba(242,101,106,0.45); border-radius: 6px; background: #131419; font-size: 13px; color: #9ba1b0; } .ds-impact-head { color: #f0f1f5; font-weight: 600; display: flex; gap: 8px; align-items: center; } .ds-risk { font-size: 11.5px; color: #f2656a; background: rgba(242,101,106,0.12); border-radius: 10px; padding: 1px 8px; } .ds-impact-stats { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; } .ds-impact-stats b { color: #f0f1f5; margin-right: 4px; font-variant-numeric: tabular-nums; } .ds-sym { font-family: 'Cascadia Code', Consolas, monospace; color: #d5d8e0; font-size: 12.5px; } .ds-warn { color: #dcae3a; }"
+ },
+ {
+ "name": "Top Navigation",
+ "kind": "nav",
+ "refersTo": "button-outline",
+ "description": "로고 + 언어 전환·GitHub·받기",
+ "html": "",
+ "css": ".ds-nav { display: flex; align-items: center; height: 56px; padding: 0 24px; background: #16171c; } .ds-brand { color: #f0f1f5; font-weight: 650; text-decoration: none; } .ds-links { margin-left: auto; display: flex; gap: 24px; font-size: 14px; } .ds-links a { color: #d5d8e0; text-decoration: none; } .ds-links a:hover { color: #f0f1f5; } .ds-links a:focus-visible { outline: 2px solid #7c83ff; outline-offset: 3px; border-radius: 3px; }"
+ }
+ ],
+ "narrative": {
+ "northStar": "The Working Map",
+ "overview": "이 사이트는 광고지가 아니라 일하는 중인 IDE 화면처럼 보인다. 바탕은 앱과 같은 어두운 편집기 바닥이고, 그 위에 Lantern 저장소 자체의 코드 지도가 깔려 있다. 스크롤이 에이전트 작업 하나를 진행시키고, 진행에 맞춰 지도 위에 맥락·읽음·수정·영향 반경이 켜진다. 색은 장식이 아니라 앱의 지도와 같은 의미를 가진다.",
+ "keyCharacteristics": ["앱과 같은 어두운 바닥(#16171c)과 앱 토큰 그대로", "뒤 장면은 실제 데이터(lantern graph)로 그린 캔버스 지도", "규칙선과 행, 표. 카드 격자와 제목 위 머리말 없음", "색 = 의미: 청록은 AI에 보낸 맥락, 남색은 행동·수정, 빨강·주황은 영향", "Pretendard 한 벌, 코드와 숫자만 코드 서체·표 숫자"],
+ "rules": [
+ { "name": "The Map Legend Rule", "body": "청록·남색·빨강·주황은 앱 지도의 범례와 같은 뜻으로만 쓴다.", "section": "colors" },
+ { "name": "The Measured Contrast Rule", "body": "모든 글자는 렌더된 색으로 잰다. 본문 4.5:1, 큰 글자 3:1 미만이면 배포하지 않는다.", "section": "colors" },
+ { "name": "The Hangul Leading Rule", "body": "한글은 행간을 라틴 기준보다 넉넉히 두고 음절 단위로 끊지 않는다.", "section": "typography" },
+ { "name": "The Tabular Numbers Rule", "body": "숫자는 서체를 바꾸지 않고 tabular-nums로 자릿수만 맞춘다.", "section": "typography" }
+ ],
+ "dos": ["Do 앱 토큰을 원본으로 둔다.", "Do 지도와 수치를 npm run export-map으로 다시 뽑는다.", "Do 설명용으로 만든 데이터에는 '예시'를 붙인다.", "Do 새 글자를 넣으면 npm run verify로 대비와 가로 넘침을 확인한다."],
+ "donts": ["Don't 제목 위에 작은 머리말(kicker)을 달지 않는다.", "Don't 그라데이션 글자를 쓰지 않는다.", "Don't 목록·카드에 1px보다 굵은 색 세로줄을 두지 않는다.", "Don't 아이콘 카드 3단 격자로 기능을 나열하지 않는다.", "Don't 네온 광채나 게임 같은 효과를 넣지 않는다."]
+ }
+}
diff --git a/DESIGN.md b/DESIGN.md
new file mode 100644
index 0000000..6e7389f
--- /dev/null
+++ b/DESIGN.md
@@ -0,0 +1,221 @@
+---
+name: Lantern IDE 소개 사이트
+description: 에이전트 작업 하나를 따라가며, Lantern 자신의 실제 코드 지도 위에 맥락·발자취·영향 반경을 켜는 소개 페이지
+colors:
+ ide-ground: "#16171c"
+ ide-sunken: "#131419"
+ ide-elevated: "#202128"
+ code-well: "#1b1c22"
+ rule: "#2a2c35"
+ rule-strong: "#3a3d49"
+ ink: "#d5d8e0"
+ ink-strong: "#f0f1f5"
+ ink-muted: "#9ba1b0"
+ ink-dim: "#7d8394"
+ action-indigo: "#5b62e6"
+ action-indigo-hover: "#6a71f0"
+ focus-indigo: "#7c83ff"
+ link-periwinkle: "#9aa3ff"
+ context-teal: "#2cc6e0"
+ impact-red: "#f2656a"
+ impact-amber: "#dcae3a"
+ ok-green: "#45bd86"
+typography:
+ display:
+ fontFamily: "Pretendard Variable, Pretendard, -apple-system, Segoe UI, sans-serif"
+ fontSize: "clamp(2.3rem, 4.4vw, 3.9rem)"
+ fontWeight: 700
+ lineHeight: 1.16
+ letterSpacing: "-0.035em"
+ headline:
+ fontFamily: "Pretendard Variable, Pretendard, sans-serif"
+ fontSize: "clamp(1.7rem, 2.9vw, 2.45rem)"
+ fontWeight: 700
+ lineHeight: 1.24
+ letterSpacing: "-0.03em"
+ lede:
+ fontFamily: "Pretendard Variable, Pretendard, sans-serif"
+ fontSize: "clamp(1.06rem, 1.35vw, 1.2rem)"
+ fontWeight: 400
+ lineHeight: 1.72
+ body:
+ fontFamily: "Pretendard Variable, Pretendard, sans-serif"
+ fontSize: "17px"
+ fontWeight: 400
+ lineHeight: 1.75
+ label:
+ fontFamily: "Pretendard Variable, Pretendard, sans-serif"
+ fontSize: "12px"
+ fontWeight: 600
+ lineHeight: 1.4
+ code:
+ fontFamily: "Cascadia Code, JetBrains Mono, Consolas, ui-monospace, monospace"
+ fontSize: "12.5px"
+ fontWeight: 400
+ lineHeight: 1.7
+rounded:
+ sm: "4px"
+ md: "6px"
+ lg: "8px"
+ pill: "12px"
+spacing:
+ s1: "6px"
+ s2: "10px"
+ s3: "16px"
+ s4: "24px"
+ s5: "36px"
+ s6: "56px"
+ s7: "88px"
+ s8: "132px"
+components:
+ button-primary:
+ backgroundColor: "{colors.action-indigo}"
+ textColor: "#ffffff"
+ rounded: "{rounded.md}"
+ padding: "0 22px"
+ height: "48px"
+ button-primary-hover:
+ backgroundColor: "{colors.action-indigo-hover}"
+ button-outline:
+ backgroundColor: "transparent"
+ textColor: "{colors.ink-strong}"
+ rounded: "{rounded.md}"
+ padding: "0 14px"
+ height: "34px"
+ chip-term:
+ backgroundColor: "transparent"
+ textColor: "{colors.ink}"
+ rounded: "{rounded.pill}"
+ padding: "0 9px"
+ height: "24px"
+ chip-term-expanded:
+ backgroundColor: "rgba(44, 198, 224, 0.12)"
+ textColor: "{colors.context-teal}"
+ app-panel:
+ backgroundColor: "{colors.ide-elevated}"
+ rounded: "{rounded.lg}"
+---
+
+# Design System: Lantern IDE 소개 사이트
+
+## Overview
+
+**Creative North Star: "The Working Map"**
+
+이 사이트는 광고지가 아니라 **일하는 중인 IDE 화면**처럼 보인다. 바탕은 앱과 같은 어두운 편집기 바닥이고, 그 위에 Lantern 저장소 자체의 코드 지도가 깔려 있다. 스크롤이 에이전트 작업 하나(요청 → 맥락 → 읽기 → 영향 → 격리 → 커밋)를 진행시키고, 진행에 맞춰 지도 위에 청록(맥락), 점선 고리(읽음), 남색(수정), 빨강·주황 고리(영향 반경)가 켜진다. 색은 장식이 아니라 앱의 지도와 같은 의미를 가진다.
+
+글은 왼쪽 한 열(최대 34rem)에 모이고, 지도는 오른쪽 넓은 면을 차지한다. 구조는 카드 격자가 아니라 규칙선과 행이다. 앱의 부품(작업 머리글, 입력창, 승인 카드, 소스 제어 목록)을 그대로 옮겨 와서, 사이트에서 본 인상과 앱을 열었을 때의 인상이 같게 한다. 수치는 실제로 계산한 값이고, 설명용으로 만든 것은 '예시'로 표시한다.
+
+**Key Characteristics:**
+- 앱과 같은 어두운 바닥(#16171c)과 앱 토큰 그대로
+- 뒤 장면은 실제 데이터(`lantern graph`)로 그린 캔버스 지도
+- 규칙선과 행, 표. 카드 격자와 제목 위 머리말 없음
+- 색 = 의미: 청록은 AI에 보낸 맥락, 남색은 행동·수정, 빨강·주황은 영향
+- Pretendard 한 벌, 코드와 숫자만 코드 서체·표 숫자
+
+## Colors
+
+어두운 IDE 바닥 위에 의미를 가진 강조색 네 개(청록, 남색, 빨강, 주황)만 쓴다.
+
+### Primary
+- **Action Indigo** (#5b62e6): 받기 버튼, 승인 카드의 '적용', 지도의 수정된 파일. 페이지에서 '행동'을 뜻하는 유일한 색. 마우스를 올리면 한 단계 밝게(#6a71f0).
+- **Context Teal** (#2cc6e0): AI에 보낸 맥락. 지도의 맥락 파일, 토큰 예산 막대, 사전이 넓힌 검색어, 진행 표시의 현재 단계.
+
+### Secondary
+- **Impact Red** (#f2656a): 영향 반경의 직접 호출과 위험도 높음, diff의 삭제 줄.
+- **Impact Amber** (#dcae3a): 간접 영향, 승인 대기 표시, 경고('테스트 없음'), '못 하는 것'의 항목 이름.
+
+### Neutral
+- **IDE Ground** (#16171c): 페이지 바닥. 지도 뒤 가림막도 이 색에서 투명으로 번진다.
+- **Elevated Panel** (#202128): 앱 부품(입력창, 승인 카드, 저장소 목록)의 면.
+- **Code Well** (#1b1c22): diff와 코드 줄의 바닥.
+- **Rule** (#2a2c35) / **Rule Strong** (#3a3d49): 행 구분선, 부품 테두리.
+- **Ink** (#d5d8e0) / **Ink Strong** (#f0f1f5): 본문 / 제목·강조.
+- **Ink Muted** (#9ba1b0): 보조 글. 앱의 #9298a8보다 한 단계 밝다. 장면 위 작은 글자에서도 4.5:1을 넘기기 위해서다.
+- **Link Periwinkle** (#9aa3ff): 링크, 작업 공간 이름.
+
+### Named Rules
+**The Map Legend Rule.** 청록·남색·빨강·주황은 앱 지도의 범례와 같은 뜻으로만 쓴다. 아무 뜻 없이 강조하려고 쓰지 않는다.
+
+**The Measured Contrast Rule.** 모든 글자는 렌더된 색으로 잰다(`npm run verify`). 본문 4.5:1, 큰 글자 3:1 미만이면 배포하지 않는다.
+
+## Typography
+
+**Display Font:** Pretendard Variable (Pretendard, 시스템 산세리프로 대체)
+**Body Font:** Pretendard Variable
+**Label/Mono Font:** Cascadia Code, JetBrains Mono, Consolas (코드와 경로에만)
+
+**Character:** 앱과 같은 서체 한 벌. 제목은 굵기(700)와 좁은 자간으로만 세운다. 코드 서체는 "기술적으로 보이려고" 쓰지 않고, 실제 코드·경로에만 쓴다.
+
+### Hierarchy
+- **Display** (700, clamp(2.3rem, 4.4vw, 3.9rem), 1.16, -0.035em): 첫 화면 제목 한 곳. 한 줄씩 끊어 쓴다.
+- **Headline** (700, clamp(1.7rem, 2.9vw, 2.45rem), 1.24, -0.03em): 각 절의 제목.
+- **Lede** (400, clamp(1.06rem, 1.35vw, 1.2rem), 1.72): 첫 화면 소개 문단. 최대 31em.
+- **Body** (400, 17px, 1.75): 본문. 최대 36em.
+- **Label** (600, 12px): 작업 머리글의 칩, 지도 이름표, 진행 단계.
+- **Code** (400, 12.5px, 1.7): diff, 경로, 명령.
+
+### Named Rules
+**The Hangul Leading Rule.** 한글은 글자가 상자를 꽉 채워 행간을 라틴 기준보다 넉넉히 둔다. 여러 줄 제목일수록 더 푼다. `word-break: keep-all`로 음절 단위로 끊지 않는다.
+
+**The Tabular Numbers Rule.** 토큰 수, 호출 수, 버전, 크기 같은 숫자는 서체를 바꾸지 않고 `tabular-nums`로 자릿수만 맞춘다.
+
+## Layout
+
+데스크톱은 두 겹이다. 뒤에는 화면 전체를 덮는 고정 캔버스(지도)가 있고, 지도 본체는 가로 72% 지점을 중심으로 오른쪽 면을 채운다. 앞에는 왼쪽 글 열(`min(34rem, 40vw)`, 좌우 여백 `clamp(20px, 4vw, 64px)`)이 있다. 글 열 뒤는 바닥색에서 투명으로 번지는 가림막이 덮어 대비를 지킨다. 각 절은 최소 화면 높이이고 세로 가운데 정렬이다. 화면 가운데를 지나는 절이 지도의 단계를 정한다.
+
+간격은 한 척도만 쓴다 (6 · 10 · 16 · 24 · 36 · 56 · 88 · 132px). 제목 아래 24px, 본문과 부품 사이 36px.
+
+900px 이하에서는 지도가 위 46svh 띠로 올라가고, 글은 그 아래 바닥색 면에 놓인다. 작업 머리글은 단계 표시 줄을 빼고 작아진다.
+
+## Elevation & Depth
+
+평평한 바닥 위에 앱 부품만 떠 있다. 그림자는 모두 부드럽게 퍼지고 아래로 내려앉는다(오프셋과 흐림이 함께 있음). 색 광채나 딱딱한 오프셋 그림자는 쓰지 않는다.
+
+### Shadow Vocabulary
+- **Panel Lift** (`box-shadow: 0 14px 36px rgba(0,0,0,0.38)`): 승인 카드, 앱 화면 캡처.
+- **Floating Header** (`box-shadow: 0 10px 30px rgba(0,0,0,0.35), 0 1px 2px rgba(0,0,0,0.3)`): 작업 머리글.
+- **Action Glow** (`box-shadow: 0 8px 22px rgba(91,98,230,0.32), 0 1px 2px rgba(0,0,0,0.4)`): 받기 버튼 한 곳.
+
+## Shapes
+
+앱과 같은 작은 모서리. 버튼·부품 6px, 앱 패널 8px, 작은 버튼 4px, 칩·배지는 알약 모양(10~12px). 격리된 작업 공간만 점선 테두리(1.5px dashed)로 구분한다. 지도 노드는 앱 지도의 파일 노드처럼 둥근 사각형이다.
+
+## Components
+
+### Buttons
+- **Shape:** 부드러운 모서리 (6px)
+- **Primary:** Action Indigo 바탕, 흰 글자, 높이 48px, 좌우 22px. 아이콘 + 동작 이름 + 버전·크기. 페이지에 하나(첫 화면), 닫는 절에서는 방문자 운영체제의 줄만 채운다.
+- **Hover / Focus:** 한 단계 밝아지고 1px 떠오름. 포커스는 2px Focus Indigo 윤곽.
+- **Outline:** 투명 바탕, Rule Strong 테두리, 높이 34px. 운영체제별 받기.
+
+### Chips
+- **Style:** 알약 모양 테두리 칩. 질문에 쓴 말은 중립, 사전이 넓힌 말은 청록 테두리·옅은 청록 바탕.
+- **State:** 작업 머리글의 칩은 단계가 지날 때 하나씩 붙는다 (맥락 → 읽음 → 위험도 → 수정).
+
+### App Panels (signature)
+앱에서 그대로 옮긴 부품. Elevated Panel 면, 8px 모서리, Rule 테두리.
+- **작업 머리글:** 작업 제목 + 칩 + 여섯 단계 진행 줄(현재 단계는 청록 윗줄).
+- **승인 카드:** 주황 테두리, 파일 수정 머리, 줄 번호가 붙은 diff(삭제 빨강·추가 초록 바탕), 빨강 테두리의 영향 반경 상자, 적용·거절.
+- **저장소 목록:** 저장소마다 브랜치·동기화·변경 수 배지. 선택된 줄은 배경으로만 표시한다.
+
+### Code Map (signature)
+캔버스 2D. 모듈별 탁한 색(보라, 황토, 초록, 장미, 청회색 등 8색)의 둥근 사각형 노드와 가는 연결선. 단계마다 목표 모습으로 지수 감쇠(170ms, 카메라 260ms)로 다가가고, 도착하면 그리기를 멈춘다. 영향 단계에서만 수정 파일에서 빨간 파문이 퍼진다(2.4초 주기). 움직임 줄이기 설정에서는 전환과 파문 없이 바로 바뀐다. 이름표는 겹치면 중요한 것(수정 → 읽음 → 직접 영향 → 맥락)만 남긴다.
+
+### Rows & Ledger
+행 사이는 1px Rule 선. 경로는 폴더를 흐리게, 파일 이름을 굵게. 비교 표는 두 값을 나란히 두고 Lantern 쪽 값만 굵게와 청록 막대로 표시한다.
+
+## Do's and Don'ts
+
+### Do:
+- **Do** 앱 토큰을 원본으로 둔다. 값을 바꿀 때는 앱(`Lantern-IDE/lantern` `app/src/styles.css`)을 먼저 본다.
+- **Do** 지도와 수치를 `npm run export-map`으로 다시 뽑는다. 손으로 고친 수치는 쓰지 않는다.
+- **Do** 설명용으로 만든 데이터(작업 공간 이름, 예시 작업 폴더, 예시 수정)에는 '예시'를 붙인다.
+- **Do** 새 글자를 넣으면 `npm run verify`로 대비와 가로 넘침을 확인한다.
+
+### Don't:
+- **Don't** 제목 위에 작은 머리말(kicker)을 달지 않는다.
+- **Don't** 그라데이션 글자를 쓰지 않는다. 강조는 굵기와 크기로 한다.
+- **Don't** 목록·카드에 1px보다 굵은 색 세로줄을 두지 않는다. 선택은 배경으로 표시한다.
+- **Don't** 아이콘 카드 3단 격자로 기능을 나열하지 않는다. 장면과 행으로 보여준다.
+- **Don't** 네온 광채나 게임 같은 효과를 넣지 않는다.
diff --git a/README.md b/README.md
index 2376d9a..ac866cd 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,48 @@
[Lantern IDE](https://github.com/Lantern-IDE/lantern)를 알리는 사이트입니다. https://lantern-ide.github.io
-앱과는 별개로 배포합니다. 소개 문구 한 줄을 고치려고 앱을 다시 빌드·릴리스할 이유가 없고, 앱 저장소의 CI(세 운영체제 빌드·E2E)를 거칠 필요도 없기 때문입니다.
+## 왜 별도 저장소인가
+
+소개 문구 한 줄을 고치려고 앱을 다시 빌드·릴리스할 이유가 없고, 앱 저장소의 CI(세 운영체제 빌드·E2E)를 거칠 필요도 없습니다. 배포 주기도 다릅니다.
+
+## 실행
+
+```bash
+npm install
+npm run dev # http://localhost:3000
+npm run build # .output/public 에 정적 파일 (nuxt generate)
+npm run verify # 데스크톱·모바일 화면 캡처 + 글자 대비·가로 넘침 검사 (Chrome/Edge 필요)
+```
+
+서버가 할 일이 없어 정적 파일만 만듭니다. 한국어가 `/`, 영어가 `/en/`입니다.
+
+## 페이지
+
+스크롤이 에이전트 작업 하나(요청 → 맥락 → 읽기 → 영향 → 격리 → 커밋)를 진행시키고, 화면 가운데를 지나는 절이 뒤의 지도 단계를 정합니다. 뒤의 지도는 **Lantern 저장소 자체**를 그린 것입니다.
+
+| 경로 | 내용 |
+|---|---|
+| `app/components/LandingPage.vue` | 페이지 한 장 (절, 작업 머리글, 받기) |
+| `app/components/CodeMap.vue` | 뒤의 코드 지도 (캔버스 2D) |
+| `app/content/ko.ts`, `en.ts` | 문구. 수치는 여기 쓰지 않는다 |
+| `app/data/lantern-map.json` | 지도·맥락·영향 반경 데이터 (아래 스크립트로 생성) |
+| `app/composables/useRelease.ts` | 빌드할 때 최신 릴리스의 설치 파일을 읽는다 |
+
+## 지도 데이터 다시 뽑기
+
+지도, 맥락으로 고른 파일, 영향 반경 수치는 전부 `lantern` CLI로 실제로 계산합니다. 손으로 고치지 않습니다.
+
+```bash
+# 앱 저장소(../Khala 등)에서 cargo build --release -p lantern-context 한 뒤
+npm run export-map -- --repo ../Khala [--ref origin/main]
+```
+
+지정한 커밋을 임시 worktree로 꺼내 읽으므로 앱 저장소의 로컬 변경은 섞이지 않습니다. 장면의 작업(질문, 예시 수정)은 `scripts/export-map.mjs`의 `TASK`에 있습니다.
+
+## 배포
+
+`main`에 올리면 `.github/workflows/deploy.yml`이 만들고 GitHub Pages에 올린 뒤, 페이지와 CSS가 실제로 뜨는지 확인합니다. 받기 버튼의 주소는 빌드할 때 최신 릴리스에서 읽으므로, **앱을 새로 릴리스하면 배포 워크플로를 다시 돌리세요** (Actions → 배포 → Run workflow).
+
+## 디자인
+
+앱과 같은 제품으로 보이게 색·서체는 앱(`Lantern-IDE/lantern` `app/src/styles.css`)을 원본으로 옮겼습니다. 기록은 [DESIGN.md](DESIGN.md), 제품 정의는 [PRODUCT.md](PRODUCT.md). 구조 문법(스크롤 = 의미 있는 축, 규칙선과 행, '못 하는 것' 절)은 CareCode·JellySafe 소개 사이트에서 이어받았습니다.
diff --git a/app/app.vue b/app/app.vue
new file mode 100644
index 0000000..c6e3a52
--- /dev/null
+++ b/app/app.vue
@@ -0,0 +1,11 @@
+
+
+
+
diff --git a/app/assets/css/main.css b/app/assets/css/main.css
new file mode 100644
index 0000000..6164538
--- /dev/null
+++ b/app/assets/css/main.css
@@ -0,0 +1,312 @@
+/*
+ * Lantern IDE 소개 사이트.
+ * 색은 앱(Lantern-IDE/lantern app/src/styles.css, 어두운 테마)이 원본이다. 값을 바꿀 때는 앱 쪽을 먼저 본다.
+ * 사이트에만 필요한 것(디스플레이 크기, 장면 가림막)만 덧붙였다.
+ */
+:root {
+ color-scheme: dark;
+ /* 앱 토큰 */
+ --bg: #16171c;
+ --sunken: #131419;
+ --elevated: #202128;
+ --border: #2a2c35;
+ --border-strong: #3a3d49;
+ --fg: #d5d8e0;
+ --fg-strong: #f0f1f5;
+ --muted: #9ba1b0; /* 앱 #9298a8보다 한 단계 밝게: 장면 위 작은 글자에서도 4.5:1 */
+ --dim: #7d8394;
+ --accent: #5b62e6;
+ --accent-hover: #6a71f0;
+ --focus: #7c83ff;
+ --context: #2cc6e0;
+ --context-soft: rgba(44, 198, 224, 0.12);
+ --link: #9aa3ff;
+ --error: #f2656a;
+ --warning: #dcae3a;
+ --ok: #45bd86;
+ --add-bg: rgba(69, 189, 134, 0.14);
+ --del-bg: rgba(242, 101, 106, 0.14);
+ --selection: rgba(108, 115, 245, 0.35);
+ --brand: linear-gradient(135deg, #22d3ee, #6366f1);
+ --code-font: "Cascadia Code", "JetBrains Mono", Consolas, ui-monospace, monospace;
+
+ /* 간격: 하나의 척도만 쓴다 */
+ --s1: 6px;
+ --s2: 10px;
+ --s3: 16px;
+ --s4: 24px;
+ --s5: 36px;
+ --s6: 56px;
+ --s7: 88px;
+ --s8: 132px;
+ --radius: 6px;
+ --radius-sm: 4px;
+ --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
+ --col: min(34rem, 40vw);
+ --pad: clamp(20px, 4vw, 64px);
+}
+
+* { box-sizing: border-box; }
+html { background: var(--bg); scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
+@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
+body {
+ margin: 0;
+ background: var(--bg);
+ color: var(--fg);
+ font-family: "Pretendard Variable", Pretendard, -apple-system, "Segoe UI", sans-serif;
+ font-size: 17px;
+ line-height: 1.75;
+ word-break: keep-all;
+ overflow-wrap: anywhere;
+ -webkit-font-smoothing: antialiased;
+ font-feature-settings: "ss06";
+}
+::selection { background: var(--selection); color: var(--fg-strong); }
+:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 3px; }
+* { scrollbar-width: thin; scrollbar-color: #3a3d49 transparent; }
+::-webkit-scrollbar { width: 10px; height: 10px; }
+::-webkit-scrollbar-thumb { background: #3a3d49; border-radius: 10px; border: 2px solid var(--bg); }
+a { color: var(--link); text-underline-offset: 3px; text-decoration-thickness: 1px; }
+a:hover { color: var(--fg-strong); }
+code, .mono { font-family: var(--code-font); font-size: 0.86em; }
+.num { font-variant-numeric: tabular-nums slashed-zero; }
+.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
+.skip { position: absolute; left: var(--s3); top: -60px; z-index: 50; padding: var(--s1) var(--s3); background: var(--accent); color: #fff; border-radius: var(--radius); }
+.skip:focus { top: var(--s2); }
+
+/* ── 육각형 로고 (앱과 같은 모양) ── */
+.hex { display: inline-block; width: 18px; height: 18px; flex-shrink: 0; }
+.hex svg { display: block; width: 100%; height: 100%; overflow: visible; }
+
+/* ── 머리글 ── */
+.top {
+ position: fixed; inset: 0 0 auto 0; z-index: 30;
+ display: flex; align-items: center; gap: var(--s4);
+ height: 56px; padding: 0 var(--pad);
+ background: linear-gradient(var(--bg) 55%, rgba(22, 23, 28, 0));
+}
+.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--fg-strong); text-decoration: none; font-weight: 650; letter-spacing: -0.01em; }
+.brand .hex { width: 20px; height: 20px; }
+.top nav { margin-left: auto; display: flex; align-items: center; gap: var(--s4); font-size: 14px; }
+.top nav a { color: var(--fg); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
+.top nav a:hover { color: var(--fg-strong); }
+
+/* ── 작업 머리글: 앱의 작업 목록 한 줄을 옮긴 진행 표시 ── */
+.task {
+ /* 지도 위, 오른쪽. 글 열을 가리지 않는다 */
+ position: fixed; z-index: 20; top: 68px; right: var(--pad);
+ width: min(27rem, calc(100vw - var(--col) - var(--pad) * 3));
+ padding: 10px 14px 12px; border: 1px solid var(--border); border-radius: var(--radius);
+ background: rgba(32, 33, 40, 0.92); backdrop-filter: blur(6px);
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), 0 1px 2px rgba(0, 0, 0, 0.3);
+ transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);
+}
+.task.off { opacity: 0; transform: translateY(-8px); pointer-events: none; }
+.task-title { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--fg-strong); line-height: 1.4; }
+.task-title .codicon { color: var(--warning); }
+.task-title.done .codicon { color: var(--ok); }
+.task-title span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.task-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; padding-left: 24px; font-size: 12px; color: var(--muted); }
+.task-meta b { color: var(--fg-strong); font-weight: 600; }
+.task-meta .ctx b { color: var(--context); }
+.task-meta .risk { color: var(--error); }
+.steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; margin-top: 10px; padding: 0; list-style: none; }
+.steps li { font-size: 11px; color: var(--dim); padding-top: 6px; border-top: 2px solid var(--border-strong); transition: color 0.3s, border-color 0.3s; letter-spacing: 0.02em; }
+.steps li.past { color: var(--muted); border-top-color: #4a4f63; }
+.steps li.now { color: var(--fg-strong); border-top-color: var(--context); }
+
+/* ── 장면 ── */
+.scene { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
+.scene canvas { display: block; width: 100%; height: 100%; }
+/* 글 열 뒤는 지도를 가린다 (대비). 오른쪽으로 갈수록 지도가 드러난다 */
+.scene::after {
+ content: ""; position: absolute; inset: 0;
+ background: linear-gradient(90deg, var(--bg) 0, var(--bg) calc(var(--pad) + var(--col) - 40px), rgba(22, 23, 28, 0.55) calc(var(--pad) + var(--col) + 80px), rgba(22, 23, 28, 0) 62%);
+}
+.scene-source { position: fixed; z-index: 1; right: var(--pad); bottom: var(--s3); max-width: 30rem; text-align: right; font-size: 12px; line-height: 1.5; color: var(--muted); }
+.scene-source .codicon { font-size: 12px; vertical-align: -1px; margin-right: 4px; }
+
+/* ── 본문 열 ── */
+main { position: relative; z-index: 10; }
+.station { min-height: 100vh; min-height: 100svh; padding: 180px var(--pad) var(--s7); display: flex; flex-direction: column; justify-content: center; }
+.station > .inner { width: var(--col); }
+.hero { padding-top: 120px; }
+.hero .inner { width: min(40rem, 46vw); }
+.hero .lede { max-width: min(31em, calc(var(--col) + 2rem)); }
+
+h1, h2 { color: var(--fg-strong); margin: 0; font-weight: 700; text-wrap: balance; }
+h1 { font-size: clamp(2.3rem, 4.4vw, 3.9rem); line-height: 1.16; letter-spacing: -0.035em; }
+h1 span { display: block; }
+h2 { font-size: clamp(1.7rem, 2.9vw, 2.45rem); line-height: 1.24; letter-spacing: -0.03em; margin-bottom: var(--s4); }
+.lede { font-size: clamp(1.06rem, 1.35vw, 1.2rem); line-height: 1.72; color: var(--fg); margin: var(--s4) 0 0; max-width: 38em; }
+.station p { margin: 0 0 var(--s3); max-width: 36em; }
+.small { font-size: 13.5px; line-height: 1.6; color: var(--muted); }
+
+/* ── 받기 ── */
+.cta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s4); margin-top: var(--s5); }
+.btn {
+ display: inline-flex; align-items: center; gap: 10px;
+ height: 48px; padding: 0 22px; border-radius: var(--radius);
+ background: var(--accent); color: #fff; text-decoration: none; font-weight: 620; font-size: 16px;
+ box-shadow: 0 8px 22px rgba(91, 98, 230, 0.32), 0 1px 2px rgba(0, 0, 0, 0.4);
+ transition: background 0.15s, transform 0.15s var(--ease-out), box-shadow 0.15s;
+}
+.btn:hover { background: var(--accent-hover); color: #fff; transform: translateY(-1px); box-shadow: 0 12px 28px rgba(91, 98, 230, 0.38), 0 1px 2px rgba(0, 0, 0, 0.4); }
+.btn:active { transform: none; }
+.btn .meta { font-weight: 450; font-size: 13px; opacity: 0.85; }
+.links { display: flex; gap: var(--s4); font-size: 15px; }
+.links a { color: var(--fg); display: inline-flex; align-items: center; gap: 6px; }
+.links a:hover { color: var(--fg-strong); }
+.note { margin-top: var(--s4); font-size: 13.5px; color: var(--muted); }
+
+/* ── 앱 부품: 입력창, 파일 행, 승인 카드 ── */
+.panel { margin-top: var(--s5); border-top: 1px solid var(--border); }
+.panel-head { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s2) 0; font-size: 13px; color: var(--muted); border-bottom: 1px solid var(--border); }
+.prompt {
+ margin-top: var(--s5); padding: 14px 16px; border: 1px solid var(--border-strong); border-radius: 8px; background: var(--elevated);
+ color: var(--fg-strong); font-size: 16px; line-height: 1.55;
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.3);
+}
+.prompt .who { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; font-size: 12px; color: var(--muted); }
+.terms { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--s3); padding: 0; list-style: none; }
+.terms li { font-size: 13px; line-height: 24px; padding: 0 9px; border-radius: 12px; border: 1px solid var(--border-strong); color: var(--fg); }
+.terms li.x { border-color: rgba(44, 198, 224, 0.55); color: var(--context); background: var(--context-soft); }
+.terms-legend { display: flex; gap: var(--s4); margin-top: var(--s2); font-size: 12.5px; color: var(--muted); }
+.terms-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 5px; margin-right: 6px; vertical-align: -1px; border: 1px solid var(--border-strong); }
+.terms-legend i.x { border-color: var(--context); background: var(--context-soft); }
+
+.rows { margin: 0; padding: 0; list-style: none; }
+.rows li { display: grid; grid-template-columns: 1fr auto; gap: var(--s3); padding: 9px 0; border-bottom: 1px solid var(--border); font-size: 14.5px; align-items: baseline; }
+.rows .path { color: var(--fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.rows .path b { color: var(--fg-strong); font-weight: 600; }
+.rows .path .dir { color: var(--muted); }
+.rows .val { color: var(--muted); font-size: 13px; }
+.rows li.hit .path b { color: var(--context); }
+.budget { position: relative; height: 4px; margin-top: var(--s3); background: var(--border); border-radius: 2px; overflow: hidden; }
+.budget i { position: absolute; inset: 0 auto 0 0; background: var(--context); border-radius: 2px; }
+.budget-text { margin-top: 8px; font-size: 13px; color: var(--muted); }
+
+/* 측정 원장: 두 값 비교 */
+.ledger { margin-top: var(--s6); }
+.ledger h3 { margin: 0 0 var(--s2); font-size: 14px; font-weight: 600; color: var(--fg-strong); letter-spacing: -0.005em; }
+.ledger table { width: 100%; border-collapse: collapse; font-size: 14px; }
+.ledger th, .ledger td { padding: 9px 0; border-bottom: 1px solid var(--border); text-align: right; font-weight: 400; }
+.ledger th:first-child, .ledger td:first-child { text-align: left; color: var(--fg); padding-right: var(--s3); }
+.ledger thead th { color: var(--muted); font-size: 12.5px; border-bottom-color: var(--border-strong); }
+.ledger td.l { color: var(--fg-strong); font-weight: 650; }
+.ledger .bar { display: inline-block; height: 6px; border-radius: 3px; vertical-align: 1px; margin-right: 8px; background: #4a4f63; }
+.ledger td.l .bar { background: var(--context); }
+.ledger + .small { margin-top: var(--s2); }
+
+.legend { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin: var(--s4) 0 0; padding: 0; list-style: none; font-size: 13.5px; }
+.legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 8px; vertical-align: -1px; }
+.legend .c i { background: var(--context); }
+.legend .r i { border: 1.5px dashed var(--context); }
+.legend .e i { background: var(--accent); }
+.log { margin-top: var(--s4); border: 1px solid var(--border); border-radius: var(--radius); background: rgba(19, 20, 25, 0.9); }
+.log div { display: flex; align-items: center; gap: 10px; padding: 9px 12px; font-size: 13px; }
+.log div + div { border-top: 1px solid var(--border); }
+.log .codicon { font-size: 14px; }
+.log .ok { color: var(--ok); }
+.log .run { color: var(--warning); }
+.log code { color: var(--fg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.log .t { color: var(--muted); margin-left: auto; flex-shrink: 0; }
+
+.approval { margin-top: var(--s5); border: 1px solid rgba(220, 174, 58, 0.45); border-radius: 8px; background: var(--elevated); overflow: hidden; box-shadow: 0 14px 36px rgba(0, 0, 0, 0.38); }
+.approval-head { display: flex; align-items: center; gap: 8px; padding: 10px 12px; font-size: 13px; color: var(--fg-strong); background: rgba(220, 174, 58, 0.08); border-bottom: 1px solid var(--border); }
+.approval-head .codicon { color: var(--warning); }
+.approval-head b { font-weight: 600; flex-shrink: 0; }
+.approval-head code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fg); }
+.approval-head .tag { margin-left: auto; flex-shrink: 0; font-size: 11.5px; color: var(--muted); border: 1px solid var(--border-strong); border-radius: 10px; padding: 0 8px; line-height: 20px; }
+.diff { margin: 0; padding: 8px 0; font-family: var(--code-font); font-size: 12.5px; line-height: 1.7; background: #1b1c22; overflow-x: auto; }
+.diff div { display: grid; grid-template-columns: 3.4em 1.4em 1fr; white-space: pre; padding-right: 12px; }
+.diff .n { color: var(--muted); text-align: right; padding-right: 10px; user-select: none; }
+.diff .s { color: var(--dim); user-select: none; }
+.diff .del { background: var(--del-bg); }
+.diff .del .s { color: var(--error); }
+.diff .add { background: var(--add-bg); }
+.diff .add .s { color: var(--ok); }
+.impact { margin: 10px 12px; padding: 10px 12px; border: 1px solid rgba(242, 101, 106, 0.45); border-radius: var(--radius); background: rgba(19, 20, 25, 0.6); }
+.impact-head { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fg-strong); font-weight: 600; }
+.impact-head .risk { font-size: 11.5px; font-weight: 600; color: var(--error); background: rgba(242, 101, 106, 0.12); border-radius: 10px; padding: 1px 8px; }
+.impact-stats { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; font-size: 13px; color: var(--muted); }
+.impact-stats b { color: var(--fg-strong); font-weight: 650; margin-right: 4px; }
+.impact-stats .sym { color: var(--fg); font-family: var(--code-font); font-size: 12.5px; }
+.impact-stats .warn { color: var(--warning); }
+.actions { display: flex; gap: 8px; padding: 0 12px 12px; }
+.actions span { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: var(--radius-sm); font-size: 13px; }
+.actions .apply { background: var(--accent); color: #fff; }
+.actions .deny { border: 1px solid var(--border-strong); color: var(--fg); }
+.shot { margin: var(--s5) 0 0; }
+.shot img { display: block; width: 100%; height: auto; border-radius: 8px; border: 1px solid var(--border); box-shadow: 0 14px 36px rgba(0, 0, 0, 0.38); }
+.shot figcaption { margin-top: var(--s2); font-size: 13px; color: var(--muted); }
+
+.iso { margin-top: var(--s5); border: 1.5px dashed rgba(124, 131, 255, 0.55); border-radius: 8px; padding: 12px 14px; background: rgba(32, 33, 40, 0.85); }
+.iso-head { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fg-strong); }
+.iso-head code { color: var(--link); }
+.iso-head .tag { margin-left: auto; font-size: 11.5px; color: var(--muted); border: 1px solid var(--border-strong); border-radius: 10px; padding: 0 8px; line-height: 20px; }
+.iso-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 13px; color: var(--muted); }
+.iso-row span.b { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: var(--radius-sm); font-size: 12.5px; }
+.iso-row .b.apply { background: var(--accent); color: #fff; margin-left: auto; }
+.iso-row .b.discard { border: 1px solid var(--border-strong); color: var(--fg); }
+
+.repos { margin-top: var(--s5); border: 1px solid var(--border); border-radius: 8px; background: rgba(32, 33, 40, 0.9); overflow: hidden; }
+.repos-head { display: flex; justify-content: space-between; padding: 8px 12px; font-size: 12px; font-weight: 700; letter-spacing: 0.03em; color: var(--fg); border-bottom: 1px solid var(--border); }
+.repos-head span:last-child { font-weight: 400; color: var(--muted); letter-spacing: 0; }
+.repo { display: flex; align-items: center; gap: 8px; padding: 7px 12px; font-size: 13.5px; }
+.repo .codicon { color: var(--muted); }
+.repo .br { color: var(--muted); font-size: 12.5px; }
+.repo .sy { color: var(--muted); font-size: 12px; }
+.repo .badge { margin-left: auto; font-size: 11px; min-width: 18px; text-align: center; padding: 0 6px; border-radius: 9px; background: #3a3d49; color: #e6e8ee; line-height: 16px; }
+.repo.on { background: rgba(160, 168, 200, 0.12); color: var(--fg-strong); }
+.repo-actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 12px; border-top: 1px solid var(--border); }
+.repo-actions span { font-size: 12px; color: var(--fg); border: 1px solid var(--border-strong); border-radius: 12px; padding: 0 10px; line-height: 22px; }
+
+.defs { margin: var(--s5) 0 0; }
+.defs div { display: grid; grid-template-columns: 9.5em 1fr; gap: var(--s3); padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 15px; }
+.defs div:first-child { border-top: 1px solid var(--border); }
+.defs dt { color: var(--fg-strong); font-weight: 600; }
+.defs dd { margin: 0; color: var(--fg); }
+.plain { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); margin: var(--s4) 0 0; padding: 0; list-style: none; font-size: 14.5px; color: var(--fg-strong); }
+.plain li { display: inline-flex; align-items: center; gap: 8px; }
+.plain .codicon { color: var(--ok); }
+
+/* 못 하는 것: 경고색 대신 글자만. 숨기지 않는다는 뜻이지 겁주려는 것이 아니다 */
+.cannot .defs dt { color: var(--warning); }
+
+/* ── 닫는 절 ── */
+.close { min-height: auto; padding-bottom: var(--s6); }
+.close .inner { width: min(46rem, 100%); }
+.oses { margin: var(--s5) 0 0; padding: 0; list-style: none; border-top: 1px solid var(--border-strong); }
+.oses li { display: grid; grid-template-columns: 12em 1fr auto; gap: var(--s3); align-items: center; padding: 14px 0; border-bottom: 1px solid var(--border); }
+.oses .os { color: var(--fg-strong); font-weight: 600; display: inline-flex; align-items: center; gap: 10px; }
+.oses .d { color: var(--muted); font-size: 14px; }
+.oses .st { font-size: 12px; color: var(--muted); border: 1px solid var(--border-strong); border-radius: 10px; padding: 0 8px; line-height: 20px; margin-left: 8px; }
+.oses .st.ok { color: var(--ok); border-color: rgba(69, 189, 134, 0.45); }
+.oses a.get { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: var(--radius); border: 1px solid var(--border-strong); color: var(--fg-strong); text-decoration: none; font-size: 14px; white-space: nowrap; }
+.oses a.get:hover { border-color: var(--accent); background: rgba(91, 98, 230, 0.12); }
+.oses li.mine a.get { background: var(--accent); border-color: var(--accent); color: #fff; }
+footer { position: relative; z-index: 10; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s4); align-items: center; padding: var(--s5) var(--pad) var(--s6); border-top: 1px solid var(--border); background: var(--bg); font-size: 13.5px; color: var(--muted); }
+footer .brand { font-size: 14px; }
+footer a { color: var(--fg); }
+footer .src { flex-basis: 100%; font-size: 12.5px; }
+
+/* ── 좁은 화면: 지도는 위 띠, 글은 아래 ── */
+@media (max-width: 900px) {
+ :root { --col: 100%; }
+ .top nav .hide-s { display: none; }
+ .task { left: var(--pad); right: var(--pad); width: auto; top: 58px; padding: 8px 12px; }
+ .task .steps { display: none; }
+ .scene { height: 46svh; bottom: auto; }
+ .scene::after { background: linear-gradient(180deg, rgba(22, 23, 28, 0) 60%, var(--bg) 100%); }
+ .scene-source { position: static; text-align: left; margin-top: var(--s4); max-width: none; }
+ .station { min-height: auto; padding: 38svh var(--pad) var(--s6); }
+ .station > .inner, .hero .inner { width: 100%; }
+ .station > .inner { background: var(--bg); box-shadow: 0 -40px 40px var(--bg); }
+ .hero { padding-top: 40svh; }
+ .defs div { grid-template-columns: 1fr; gap: 2px; }
+ .oses li { grid-template-columns: 1fr auto; }
+ .oses .d { grid-column: 1; }
+}
+.scene-source.hide { opacity: 0; }
+.scene-source { transition: opacity 0.4s; }
diff --git a/app/components/CodeMap.vue b/app/components/CodeMap.vue
new file mode 100644
index 0000000..09381c0
--- /dev/null
+++ b/app/components/CodeMap.vue
@@ -0,0 +1,335 @@
+
+
+
+
+
+
+
diff --git a/app/components/HexLogo.vue b/app/components/HexLogo.vue
new file mode 100644
index 0000000..45d0df7
--- /dev/null
+++ b/app/components/HexLogo.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
diff --git a/app/components/LandingPage.vue b/app/components/LandingPage.vue
new file mode 100644
index 0000000..8d6f42d
--- /dev/null
+++ b/app/components/LandingPage.vue
@@ -0,0 +1,297 @@
+
+
+
+ {{ t.nav.skip }}
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ line }}
+
{{ t.hero.lede }}
+
+
{{ t.hero.note }}
+
+
+
+
+
+
+
{{ t.request.title }}
+
{{ t.request.body }}
+
+
{{ t.request.label }}
+ {{ task.question }}
+
+
+
{{ t.request.asked }}{{ t.request.expanded }}
+
+
+
+
+
+
+
{{ t.context.title }}
+
{{ t.context.body }}
+
+
{{ t.context.files(ctxFiles.length) }}
+
+ -
+ {{ splitPath(f.path).dir }}{{ splitPath(f.path).name }}
+ {{ fmt(f.tokens) }}
+
+ - {{ t.context.more(ctxFiles.length - 6) }}{{ fmt(ctxFiles.slice(6).reduce((s, f) => s + f.tokens, 0)) }}
+
+
+
{{ t.context.budget(fmt(task.context.used), fmt(task.context.budget), String(task.context.ms)) }}
+
+
+
{{ t.context.evidenceTitle }}
+
+ | {{ t.context.evidenceTitle }} | {{ t.context.grep }} | {{ t.context.lantern }} |
+
+
+ | {{ r.label }} |
+ {{ r.grep }} |
+ {{ r.lantern }} |
+
+
+
+
+
{{ t.context.condition }}
+
+
+
+
+
+
+
{{ t.read.title }}
+
{{ t.read.body }}
+
+ - {{ t.read.legend.context }}
+ - {{ t.read.legend.read }}
+ - {{ t.read.legend.edited }}
+
+
+
read_file {{ task.read[0] }}{{ t.read.log.read }}
+
edit_file {{ edit.path }}{{ t.read.log.edit }}
+
+
+
+
+
+
+
+
{{ t.impact.title }}
+
{{ t.impact.body }}
+
+
{{ t.impact.card }}{{ edit.path }}{{ t.impact.sample }}
+
+
+ {{ l.n }}-{{ l.code }}
+ {{ l.n }}+{{ edit.after }}
+ {{ l.n }}{{ l.code }}
+
+
+
+
{{ t.impact.head }}{{ t.chips.risk[impact.risk] }}
+
+ {{ impact.touched.join(", ") }}
+ {{ impact.callers }}{{ t.impact.direct }}
+ {{ impact.callers2 }}{{ t.impact.indirect }}
+ {{ impact.files }}{{ t.impact.files }}
+ {{ impact.tests.length ? t.impact.tests(impact.tests.length) : t.impact.noTests }}
+
+
+
{{ t.impact.apply }}{{ t.impact.deny }}
+
+
{{ t.impact.noTestsNote }}
+
+
+ {{ t.impact.shot }}
+
+
+
+
+
+
+
+
{{ t.isolate.title }}
+
{{ t.isolate.body }}
+
+
{{ t.isolate.space }} lantern/tsk-q7m2{{ t.isolate.sample }}
+
{{ t.isolate.changed }} · {{ splitPath(edit.path).name }}{{ t.isolate.apply }}{{ t.isolate.discard }}
+
+
+
+
+
+
+
+
{{ t.commit.title }}
+
{{ t.commit.body }}
+
+
{{ t.lang === "ko" ? "저장소" : "REPOSITORIES" }}{{ t.commit.sample }}
+
+ {{ r.name }} {{ r.branch }}{{ r.sync }}
+ {{ r.changes }}
+
+
{{ a }}
+
+
+
+
+
+
+
+
{{ t.models.title }}
+
{{ t.models.body }}
+
- {{ r.term }}
- {{ r.text }}
+
+
+
+
+
+
+
+
{{ t.cannot.title }}
+
{{ t.cannot.body }}
+
- {{ r.term }}
- {{ r.text }}
+
+
+
+
+
+
+
{{ t.close.title }}
+
{{ t.close.body }}
+
+
+
+
+
+
+ {{ sourceLine }}
+
+
+
diff --git a/app/composables/useRelease.ts b/app/composables/useRelease.ts
new file mode 100644
index 0000000..67d0831
--- /dev/null
+++ b/app/composables/useRelease.ts
@@ -0,0 +1,49 @@
+// 최신 릴리스의 설치 파일. 사이트를 만들 때(nuxt generate) 한 번 읽어 정적 파일에 넣는다.
+// 새 버전을 게시하면 사이트를 다시 빌드한다 (배포 워크플로의 수동 실행 또는 앱 릴리스 뒤 호출).
+// 게시된 릴리스가 없거나 읽지 못하면 릴리스 목록으로 보낸다.
+import type { Os } from "~/content/types";
+
+export const REPO = "Lantern-IDE/lantern";
+export const RELEASES = `https://github.com/${REPO}/releases`;
+
+interface Asset { name: string; size: number; browser_download_url: string }
+interface Release { tag_name: string; html_url: string; assets: Asset[] }
+
+export interface Download { os: Os; url: string; size: string; file: string }
+
+const PICK: Record boolean> = {
+ windows: (a) => a.name.endsWith("-setup.exe"),
+ mac: (a) => a.name.endsWith(".dmg"),
+ linux: (a) => a.name.endsWith(".AppImage"),
+};
+
+const mb = (n: number) => `${(n / 1024 / 1024).toFixed(1)} MB`;
+
+export function useRelease() {
+ return useAsyncData("release", async () => {
+ try {
+ const headers: Record = { Accept: "application/vnd.github+json" };
+ // 빌드(서버)에서만 돈다. CI는 GITHUB_TOKEN으로 호출 한도를 넉넉히 받는다
+ const token = (globalThis as { process?: { env: Record } }).process?.env.GITHUB_TOKEN;
+ if (token) headers.Authorization = `Bearer ${token}`;
+ const r = await $fetch(`https://api.github.com/repos/${REPO}/releases/latest`, { headers });
+ const downloads: Partial> = {};
+ for (const os of Object.keys(PICK) as Os[]) {
+ const a = r.assets.find(PICK[os]);
+ if (a) downloads[os] = { os, url: a.browser_download_url, size: mb(a.size), file: a.name };
+ }
+ return { version: r.tag_name.replace(/^v/, ""), url: r.html_url, downloads };
+ } catch {
+ return { version: "", url: RELEASES, downloads: {} as Partial> };
+ }
+ });
+}
+
+/** 방문자의 운영체제 (알 수 없으면 Windows: 확인된 설치 파일이 Windows뿐이다) */
+export function detectOs(): Os {
+ if (typeof navigator === "undefined") return "windows";
+ const p = ((navigator as Navigator & { userAgentData?: { platform?: string } }).userAgentData?.platform || navigator.userAgent).toLowerCase();
+ if (p.includes("mac")) return "mac";
+ if (p.includes("linux") && !p.includes("android")) return "linux";
+ return "windows";
+}
diff --git a/app/content/en.ts b/app/content/en.ts
new file mode 100644
index 0000000..bb491a1
--- /dev/null
+++ b/app/content/en.ts
@@ -0,0 +1,123 @@
+import type { Copy } from "./types";
+
+const en: Copy = {
+ lang: "en",
+ meta: {
+ title: "Lantern IDE — see how far an edit reaches before the agent makes it",
+ description: "An open-source AI code editor that hands the model only the code a question needs, and shows the callers, tests and risk of every agent edit before you approve it. Bring your own model.",
+ },
+ nav: { github: "GitHub", download: "Download", other: "한국어", otherHref: "/", skip: "Skip to content" },
+ steps: { request: "Request", context: "Context", read: "Read", impact: "Impact", isolate: "Isolate", commit: "Commit" },
+ chips: { context: "context", read: "read", edited: "edited", risk: { low: "risk low", medium: "risk medium", high: "risk high" } },
+ hero: {
+ title: ["Before the agent edits,", "see how far the change reaches."],
+ lede: "Lantern IDE hands the model only the code each question needs, and for every edit the agent proposes it shows who calls that code, which tests cover it, and how risky it is, before you approve. You choose the model.",
+ downloadFor: { windows: "Download for Windows", mac: "Download for macOS", linux: "Download for Linux" },
+ releases: "Get it from Releases",
+ otherOs: "Other platforms",
+ github: "Read the code on GitHub",
+ note: "Open source · Apache-2.0 · No telemetry · Beta",
+ },
+ source: (files, edges, commit) => `The map behind this page is the Lantern repository itself: ${files} files, ${edges} links (commit ${commit}).`,
+ request: {
+ title: "Ask in Korean, and it still finds the English code.",
+ body: "The context engine first turns the question into search terms. A general developer glossary widens 중복 (“duplicate”) into duplicate and dedupe, so code without Korean comments still matches. The request below is the one this page follows.",
+ label: "Task",
+ asked: "Words from the question",
+ expanded: "Added by the glossary",
+ },
+ context: {
+ title: "Only the code it needs, within budget.",
+ body: "It ranks code from the symbol graph, full-text search, files that changed together in git, and project notes, then trims to the token budget you set. The inspector shows every file it sent, and why.",
+ files: (n) => `${n} files picked for this question`,
+ more: (n) => `${n} more`,
+ budget: (used, budget, ms) => `${used} / ${budget} tokens · assembled in ${ms} ms`,
+ evidenceTitle: "How many answer files each approach retrieves at the same budget",
+ evidence: [
+ { label: "Answer files retrieved (mean recall)", grep: "24%", lantern: "67%" },
+ { label: "Questions with at least one answer file", grep: "35%", lantern: "90%" },
+ ],
+ grep: "Keyword search",
+ lantern: "Lantern",
+ condition: "Measured on one private project (1,772 code files, 20 hand-labelled questions, 8,000-token budget). A public benchmark on an open-source codebase is in progress.",
+ },
+ read: {
+ title: "What the agent read stays on the map.",
+ body: "Context sent to the model is teal, files the agent opened itself get a dashed ring, and edited files are indigo. Each task keeps its footprint, so you can come back later and see what it looked at before deciding.",
+ legend: { context: "context sent", read: "read", edited: "edited" },
+ log: { read: "Read the caller first", edit: "Proposing an edit" },
+ },
+ impact: {
+ title: "Before you approve, see how far this one line reaches.",
+ body: "For every proposed edit it finds the functions that change, then counts who calls them, who calls those callers, the tests in range, and files that usually change together. These numbers were computed on the Lantern repository when this page was built.",
+ card: "Edit file",
+ sample: "Sample edit",
+ head: "Impact radius",
+ direct: "direct callers",
+ indirect: "indirect callers",
+ files: "files",
+ noTests: "No tests",
+ tests: (n) => `${n} tests`,
+ apply: "Apply",
+ deny: "Deny",
+ noTestsNote: "“No tests” means there is no separate test file in range. This function is only covered by unit tests inside its own file.",
+ shot: "The real app: approval card with impact radius and Show on map",
+ },
+ isolate: {
+ title: "Isolate a task, and your project stays untouched until you apply.",
+ body: "Each task can get its own git worktree, and the agent edits only there. When it finishes you review the changes and apply them to the project or discard them. Undo asks first if files changed elsewhere in the meantime.",
+ space: "Workspace",
+ sample: "Sample",
+ changed: "1 file changed",
+ apply: "Apply to project",
+ discard: "Discard",
+ },
+ commit: {
+ title: "Many repositories, one view.",
+ body: "It finds every git repository under the folder you open and shows each one’s branch, remote and changes. Fetch, pull, push, commit history and branch switching included. Pull only fast-forwards; if your branch has diverged, it tells you instead of merging.",
+ sample: "Sample workspace",
+ repos: [
+ { name: "api", branch: "main", sync: "↑1", changes: 2 },
+ { name: "web", branch: "feat/search", sync: "", changes: 5 },
+ { name: "infra", branch: "main", sync: "↓3", changes: 0 },
+ { name: "docs", branch: "main", sync: "", changes: 0 },
+ ],
+ actions: ["Fetch", "Pull", "Push", "History", "Branches"],
+ },
+ models: {
+ title: "You pick the model, and you can see everything it was sent.",
+ body: "Lantern doesn’t sell a model. Connect the API key you already use, or a local model on your machine.",
+ rows: [
+ { term: "Anthropic", text: "Claude (API key)" },
+ { term: "OpenAI-compatible", text: "OpenAI, OpenRouter, vLLM, or any OpenAI-style endpoint" },
+ { term: "Local", text: "Ollama, LM Studio. Your code never leaves the machine" },
+ ],
+ plain: ["No hidden system prompt", "No telemetry", "API keys in the OS credential store", "Monthly cost limit"],
+ },
+ cannot: {
+ title: "What it can’t do yet",
+ body: "This is a beta built by one person. Worth knowing before you try it.",
+ rows: [
+ { term: "Code signing", text: "Not yet. On Windows, SmartScreen warns you; choose “More info → Run anyway”." },
+ { term: "macOS · Linux", text: "They build and pass tests, but haven’t been used day to day. macOS isn’t notarized, so you have to allow it the first time." },
+ { term: "Merges · conflicts", text: "No UI. If a pull diverges, choose merge or rebase in the terminal." },
+ { term: "Extensions", text: "VS Code extensions don’t run. It connects language servers (TypeScript, Rust, Python)." },
+ { term: "Public benchmark", text: "Not yet. The recall numbers above come from one private project." },
+ ],
+ },
+ close: {
+ title: "Open a project you know well, and hand it one small change.",
+ body: "Before approving, read the impact radius on the card and press Show on map. Tell us what worked and what got in the way; it shapes the next beta.",
+ os: [
+ { os: "windows", name: "Windows 10 · 11", detail: "x64 installer", status: "Tested", tested: true },
+ { os: "mac", name: "macOS 11+", detail: "Apple Silicon · Intel", status: "Untested", tested: false },
+ { os: "linux", name: "Linux", detail: "AppImage · deb", status: "Untested", tested: false },
+ ],
+ github: "View on GitHub",
+ feedback: "Send beta feedback",
+ untested: "Untested",
+ },
+ footer: { license: "Open source, Apache-2.0", made: "Lantern IDE", lang: "한국어", langHref: "/" },
+};
+
+export default en;
diff --git a/app/content/ko.ts b/app/content/ko.ts
new file mode 100644
index 0000000..64c0b32
--- /dev/null
+++ b/app/content/ko.ts
@@ -0,0 +1,123 @@
+import type { Copy } from "./types";
+
+const ko: Copy = {
+ lang: "ko",
+ meta: {
+ title: "Lantern IDE — 에이전트가 고치기 전에, 어디까지 닿는지",
+ description: "필요한 코드만 골라 AI에 건네고, 에이전트의 수정마다 호출하는 곳·테스트·위험도를 승인 전에 보여주는 오픈소스 AI 코드 편집기. 모델은 직접 고릅니다.",
+ },
+ nav: { github: "GitHub", download: "받기", other: "English", otherHref: "/en/", skip: "본문으로 건너뛰기" },
+ steps: { request: "요청", context: "맥락", read: "읽기", impact: "영향", isolate: "격리", commit: "커밋" },
+ chips: { context: "맥락", read: "읽음", edited: "수정", risk: { low: "위험도 낮음", medium: "위험도 보통", high: "위험도 높음" } },
+ hero: {
+ title: ["에이전트가 고치기 전에,", "어디까지 닿는지 먼저 봅니다."],
+ lede: "Lantern IDE는 질문마다 필요한 코드만 골라 AI에 건네고, 에이전트가 내놓는 수정마다 그 코드를 부르는 곳·테스트·위험도를 승인 전에 보여주는 코드 편집기입니다. 모델은 직접 고릅니다.",
+ downloadFor: { windows: "Windows용 받기", mac: "macOS용 받기", linux: "Linux용 받기" },
+ releases: "릴리스에서 받기",
+ otherOs: "다른 운영체제",
+ github: "GitHub에서 코드 보기",
+ note: "오픈소스 · Apache-2.0 · 사용 통계를 수집하지 않습니다 · 베타",
+ },
+ source: (files, edges, commit) => `뒤의 지도는 Lantern 저장소 자체입니다. 파일 ${files}개, 연결 ${edges}개 (커밋 ${commit})`,
+ request: {
+ title: "한국어로 물어도, 영어 코드를 찾습니다.",
+ body: "요청을 받으면 맥락 엔진이 먼저 질문을 검색어로 바꿉니다. 일반 개발 용어 사전이 ‘중복’을 duplicate, dedupe로 넓혀서, 한국어 주석이 없는 코드도 찾습니다. 아래 요청이 이 페이지가 따라가는 예시 작업입니다.",
+ label: "작업 요청",
+ asked: "질문에 쓴 말",
+ expanded: "사전이 넓힌 말",
+ },
+ context: {
+ title: "필요한 코드만, 예산 안에서.",
+ body: "심볼 그래프, 전문 검색, git에서 함께 바뀌던 파일, 프로젝트 메모를 합쳐 순위를 매기고, 정한 토큰 예산을 넘지 않게 잘라 붙입니다. 무엇을 왜 넣었는지는 인스펙터에서 전부 보입니다.",
+ files: (n) => `이 질문에 고른 파일 ${n}개`,
+ more: (n) => `외 ${n}개`,
+ budget: (used, budget, ms) => `${used} / ${budget} 토큰 · 조립 ${ms}ms`,
+ evidenceTitle: "같은 예산에서 정답 파일을 몇 개 가져오나",
+ evidence: [
+ { label: "정답 파일 적중률 (평균)", grep: "24%", lantern: "67%" },
+ { label: "정답 파일을 하나라도 가져온 질문", grep: "35%", lantern: "90%" },
+ ],
+ grep: "키워드 검색",
+ lantern: "Lantern",
+ condition: "비공개 프로젝트 하나(코드 파일 1,772개, 직접 정한 질문 20개, 예산 8,000토큰)에서 잰 값입니다. 공개 코드베이스로 만든 벤치마크를 준비하고 있습니다.",
+ },
+ read: {
+ title: "에이전트가 무엇을 읽었는지 지도에 남습니다.",
+ body: "보낸 맥락은 청록, 에이전트가 직접 연 파일은 점선 고리, 고친 파일은 남색으로 칠합니다. 작업마다 발자취가 쌓여서, 이 작업이 무엇을 보고 결정했는지 나중에도 다시 볼 수 있습니다.",
+ legend: { context: "AI에 보낸 맥락", read: "읽음", edited: "수정" },
+ log: { read: "호출하는 쪽을 먼저 읽었습니다", edit: "수정을 제안합니다" },
+ },
+ impact: {
+ title: "승인하기 전에, 이 한 줄이 어디까지 닿는지.",
+ body: "수정 제안마다 바뀌는 함수를 찾아서 그것을 부르는 곳, 그 호출자를 부르는 곳, 영향 범위의 테스트, 함께 바뀌던 파일을 셉니다. 아래 수치는 이 페이지를 만들 때 Lantern 저장소에서 실제로 계산했습니다.",
+ card: "파일 수정",
+ sample: "예시 수정",
+ head: "영향 반경",
+ direct: "직접 호출",
+ indirect: "간접 호출",
+ files: "파일에 걸침",
+ noTests: "테스트 없음",
+ tests: (n) => `테스트 ${n}`,
+ apply: "적용",
+ deny: "거절",
+ noTestsNote: "‘테스트 없음’은 영향 범위에 따로 떨어진 테스트 파일이 없다는 뜻입니다. 이 함수는 같은 파일 안의 단위 테스트로만 확인됩니다.",
+ shot: "실제 앱 화면: 승인 카드와 영향 반경, 지도에서 보기",
+ },
+ isolate: {
+ title: "격리해서 맡기면, 적용하기 전까지 프로젝트는 그대로입니다.",
+ body: "작업마다 git worktree를 따로 만들어 에이전트가 거기서만 고칩니다. 끝나면 바뀐 내용을 보고 프로젝트에 적용하거나 버립니다. 되돌리기는 그 사이 다른 곳에서 바뀐 파일이 있으면 먼저 묻습니다.",
+ space: "작업 공간",
+ sample: "예시",
+ changed: "파일 1개 바뀜",
+ apply: "프로젝트에 적용",
+ discard: "버리기",
+ },
+ commit: {
+ title: "저장소가 여럿이어도 한 화면에서.",
+ body: "연 폴더 아래의 git 저장소를 모두 찾아 저장소마다 브랜치·원격·변경을 보여줍니다. 가져오기·풀·푸시, 커밋 이력, 브랜치 전환까지 합니다. 풀은 앞으로 감기만 하고, 갈라졌으면 병합하지 않고 알려 줍니다.",
+ sample: "예시 작업 폴더",
+ repos: [
+ { name: "api", branch: "main", sync: "↑1", changes: 2 },
+ { name: "web", branch: "feat/search", sync: "", changes: 5 },
+ { name: "infra", branch: "main", sync: "↓3", changes: 0 },
+ { name: "docs", branch: "main", sync: "", changes: 0 },
+ ],
+ actions: ["가져오기", "풀", "푸시", "커밋 이력", "브랜치"],
+ },
+ models: {
+ title: "모델은 직접 고르고, 보낸 것은 전부 보입니다.",
+ body: "Lantern은 모델을 팔지 않습니다. 쓰던 API 키나 컴퓨터 안의 로컬 모델을 연결합니다.",
+ rows: [
+ { term: "Anthropic", text: "Claude (API 키)" },
+ { term: "OpenAI 호환", text: "OpenAI, OpenRouter, vLLM 등 OpenAI 형식 주소" },
+ { term: "로컬", text: "Ollama, LM Studio. 코드가 컴퓨터 밖으로 나가지 않습니다" },
+ ],
+ plain: ["숨은 시스템 프롬프트 없음", "사용 통계 수집 없음", "API 키는 운영체제 자격 증명 저장소에", "월 비용 한도"],
+ },
+ cannot: {
+ title: "아직 못 하는 것",
+ body: "혼자 만드는 베타입니다. 쓰기 전에 알아 두면 좋은 것들입니다.",
+ rows: [
+ { term: "코드 서명", text: "아직 없습니다. Windows에서 SmartScreen 경고가 뜨면 ‘추가 정보 → 실행’을 눌러야 합니다." },
+ { term: "macOS · Linux", text: "빌드와 테스트는 통과하지만 실제로 써 보지 않았습니다. 공증 전이라 macOS는 처음 열 때 허용이 필요합니다." },
+ { term: "병합 · 충돌 해결", text: "화면이 없습니다. 풀이 갈라지면 터미널에서 병합이나 리베이스를 고릅니다." },
+ { term: "확장 기능", text: "VS Code 확장은 쓸 수 없습니다. 언어 서버(TypeScript, Rust, Python)만 연결합니다." },
+ { term: "공개 벤치마크", text: "아직 없습니다. 위의 적중률은 비공개 프로젝트 하나로 잰 값입니다." },
+ ],
+ },
+ close: {
+ title: "잘 아는 프로젝트를 열고, 작은 수정 하나를 맡겨 보세요.",
+ body: "승인하기 전에 카드의 영향 반경을 보고, ‘지도에서 보기’를 눌러 보세요. 무엇이 좋았고 무엇이 막혔는지 알려 주시면 다음 베타에 반영합니다.",
+ os: [
+ { os: "windows", name: "Windows 10 · 11", detail: "x64 설치 파일", status: "확인됨", tested: true },
+ { os: "mac", name: "macOS 11 이상", detail: "Apple Silicon · Intel", status: "실사용 확인 전", tested: false },
+ { os: "linux", name: "Linux", detail: "AppImage · deb", status: "실사용 확인 전", tested: false },
+ ],
+ github: "GitHub에서 보기",
+ feedback: "베타 후기 보내기",
+ untested: "실사용 확인 전",
+ },
+ footer: { license: "Apache-2.0 오픈소스", made: "Lantern IDE", lang: "English", langHref: "/en/" },
+};
+
+export default ko;
diff --git a/app/content/types.ts b/app/content/types.ts
new file mode 100644
index 0000000..6e2f05f
--- /dev/null
+++ b/app/content/types.ts
@@ -0,0 +1,70 @@
+// 페이지 문구. 한국어(ko.ts)가 원본이고 영어(en.ts)는 같은 모양을 채운다.
+// 수치(파일 수, 토큰, 호출자 수)는 문구에 적지 않고 지도 데이터(app/data/lantern-map.json)에서 넣는다.
+
+export type Os = "windows" | "mac" | "linux";
+
+export interface Row {
+ term: string;
+ text: string;
+}
+
+export interface Copy {
+ lang: "ko" | "en";
+ meta: { title: string; description: string };
+ nav: { github: string; download: string; other: string; otherHref: string; skip: string };
+ steps: { request: string; context: string; read: string; impact: string; isolate: string; commit: string };
+ chips: { context: string; read: string; edited: string; risk: Record };
+ hero: {
+ title: string[];
+ lede: string;
+ downloadFor: Record;
+ releases: string;
+ otherOs: string;
+ github: string;
+ note: string;
+ };
+ source: (files: number, edges: number, commit: string) => string;
+ request: { title: string; body: string; label: string; asked: string; expanded: string };
+ context: {
+ title: string;
+ body: string;
+ files: (n: number) => string;
+ more: (n: number) => string;
+ budget: (used: string, budget: string, ms: string) => string;
+ evidenceTitle: string;
+ evidence: { label: string; grep: string; lantern: string }[];
+ grep: string;
+ lantern: string;
+ condition: string;
+ };
+ read: { title: string; body: string; legend: { context: string; read: string; edited: string }; log: { read: string; edit: string } };
+ impact: {
+ title: string;
+ body: string;
+ card: string;
+ sample: string;
+ head: string;
+ direct: string;
+ indirect: string;
+ files: string;
+ noTests: string;
+ tests: (n: number) => string;
+ apply: string;
+ deny: string;
+ noTestsNote: string;
+ shot: string;
+ };
+ isolate: { title: string; body: string; space: string; sample: string; changed: string; apply: string; discard: string };
+ commit: { title: string; body: string; sample: string; repos: { name: string; branch: string; sync: string; changes: number }[]; actions: string[] };
+ models: { title: string; body: string; rows: Row[]; plain: string[] };
+ cannot: { title: string; body: string; rows: Row[] };
+ close: {
+ title: string;
+ body: string;
+ os: { os: Os; name: string; detail: string; status: string; tested: boolean }[];
+ github: string;
+ feedback: string;
+ untested: string;
+ };
+ footer: { license: string; made: string; lang: string; langHref: string };
+}
diff --git a/app/data/lantern-map.json b/app/data/lantern-map.json
new file mode 100644
index 0000000..480eb5d
--- /dev/null
+++ b/app/data/lantern-map.json
@@ -0,0 +1 @@
+{"generated":{"commit":"423187f","date":"2026-09-26","repo":"Lantern-IDE/lantern"},"stats":{"files":77,"edges":956,"groups":8},"groups":["app","app/e2e","app/src","app/src-tauri","app/tests","crates/lantern-context","eval","scripts"],"nodes":[{"id":"f:app/e2e/run.mjs","label":"run.mjs","path":"app/e2e/run.mjs","group":1,"weight":24,"x":0.001,"y":-0.295},{"id":"f:app/src-tauri/build.rs","label":"build.rs","path":"app/src-tauri/build.rs","group":3,"weight":1,"x":0.396,"y":0.351},{"id":"f:app/src-tauri/src/agent.rs","label":"agent.rs","path":"app/src-tauri/src/agent.rs","group":3,"weight":16,"x":-0.012,"y":0.229},{"id":"f:app/src-tauri/src/agents.rs","label":"agents.rs","path":"app/src-tauri/src/agents.rs","group":3,"weight":10,"x":-0.057,"y":0.074},{"id":"f:app/src-tauri/src/applog.rs","label":"applog.rs","path":"app/src-tauri/src/applog.rs","group":3,"weight":18,"x":0.175,"y":0.036},{"id":"f:app/src-tauri/src/completion.rs","label":"completion.rs","path":"app/src-tauri/src/completion.rs","group":3,"weight":14,"x":0.212,"y":0.24},{"id":"f:app/src-tauri/src/config.rs","label":"config.rs","path":"app/src-tauri/src/config.rs","group":3,"weight":28,"x":0.165,"y":0.375},{"id":"f:app/src-tauri/src/e2e_tests.rs","label":"e2e_tests.rs","path":"app/src-tauri/src/e2e_tests.rs","group":3,"weight":12,"x":-0.006,"y":0.302},{"id":"f:app/src-tauri/src/fswatch.rs","label":"fswatch.rs","path":"app/src-tauri/src/fswatch.rs","group":3,"weight":6,"x":0.241,"y":0.316},{"id":"f:app/src-tauri/src/gitops.rs","label":"gitops.rs","path":"app/src-tauri/src/gitops.rs","group":3,"weight":55,"x":0.007,"y":0.017},{"id":"f:app/src-tauri/src/hooks.rs","label":"hooks.rs","path":"app/src-tauri/src/hooks.rs","group":3,"weight":2,"x":0.309,"y":0.346},{"id":"f:app/src-tauri/src/llm/anthropic.rs","label":"anthropic.rs","path":"app/src-tauri/src/llm/anthropic.rs","group":3,"weight":11,"x":0.274,"y":0.095},{"id":"f:app/src-tauri/src/llm/mod.rs","label":"mod.rs","path":"app/src-tauri/src/llm/mod.rs","group":3,"weight":19,"x":0.106,"y":0.318},{"id":"f:app/src-tauri/src/llm/openai.rs","label":"openai.rs","path":"app/src-tauri/src/llm/openai.rs","group":3,"weight":6,"x":0.141,"y":0.246},{"id":"f:app/src-tauri/src/llm/sse.rs","label":"sse.rs","path":"app/src-tauri/src/llm/sse.rs","group":3,"weight":7,"x":0.004,"y":0.101},{"id":"f:app/src-tauri/src/lsp.rs","label":"lsp.rs","path":"app/src-tauri/src/lsp.rs","group":3,"weight":12,"x":0.026,"y":0.166},{"id":"f:app/src-tauri/src/lspinstall.rs","label":"lspinstall.rs","path":"app/src-tauri/src/lspinstall.rs","group":3,"weight":14,"x":0.055,"y":0.262},{"id":"f:app/src-tauri/src/main.rs","label":"main.rs","path":"app/src-tauri/src/main.rs","group":3,"weight":101,"x":0.098,"y":0.101},{"id":"f:app/src-tauri/src/settings.rs","label":"settings.rs","path":"app/src-tauri/src/settings.rs","group":3,"weight":14,"x":0.091,"y":0.199},{"id":"f:app/src-tauri/src/state.rs","label":"state.rs","path":"app/src-tauri/src/state.rs","group":3,"weight":31,"x":0.253,"y":0.171},{"id":"f:app/src-tauri/src/tasks.rs","label":"tasks.rs","path":"app/src-tauri/src/tasks.rs","group":3,"weight":32,"x":0.1,"y":-0.005},{"id":"f:app/src-tauri/src/terminal.rs","label":"terminal.rs","path":"app/src-tauri/src/terminal.rs","group":3,"weight":8,"x":0.176,"y":0.3},{"id":"f:app/src-tauri/src/tools.rs","label":"tools.rs","path":"app/src-tauri/src/tools.rs","group":3,"weight":21,"x":-0.048,"y":0.151},{"id":"f:app/src-tauri/src/workspace.rs","label":"workspace.rs","path":"app/src-tauri/src/workspace.rs","group":3,"weight":23,"x":0.166,"y":0.177},{"id":"f:app/src-tauri/src/worktree.rs","label":"worktree.rs","path":"app/src-tauri/src/worktree.rs","group":3,"weight":16,"x":0.202,"y":0.107},{"id":"f:app/src/api.ts","label":"api.ts","path":"app/src/api.ts","group":2,"weight":44,"x":0.465,"y":-0.185},{"id":"f:app/src/chat.ts","label":"chat.ts","path":"app/src/chat.ts","group":2,"weight":72,"x":0.184,"y":-0.058},{"id":"f:app/src/commands.ts","label":"commands.ts","path":"app/src/commands.ts","group":2,"weight":14,"x":0.342,"y":0.003},{"id":"f:app/src/completion.ts","label":"completion.ts","path":"app/src/completion.ts","group":2,"weight":15,"x":0.447,"y":-0.089},{"id":"f:app/src/dialog.ts","label":"dialog.ts","path":"app/src/dialog.ts","group":2,"weight":4,"x":0.547,"y":-0.285},{"id":"f:app/src/dom.ts","label":"dom.ts","path":"app/src/dom.ts","group":2,"weight":9,"x":0.049,"y":-0.078},{"id":"f:app/src/editor.ts","label":"editor.ts","path":"app/src/editor.ts","group":2,"weight":51,"x":0.32,"y":-0.156},{"id":"f:app/src/i18n.ts","label":"i18n.ts","path":"app/src/i18n.ts","group":2,"weight":12,"x":0.162,"y":-0.346},{"id":"f:app/src/icons.ts","label":"icons.ts","path":"app/src/icons.ts","group":2,"weight":5,"x":0.422,"y":-0.251},{"id":"f:app/src/inspector.ts","label":"inspector.ts","path":"app/src/inspector.ts","group":2,"weight":6,"x":0.4,"y":-0.139},{"id":"f:app/src/keybindings.ts","label":"keybindings.ts","path":"app/src/keybindings.ts","group":2,"weight":10,"x":0.142,"y":-0.278},{"id":"f:app/src/lib/context.ts","label":"context.ts","path":"app/src/lib/context.ts","group":2,"weight":3,"x":0.506,"y":-0.12},{"id":"f:app/src/lib/diff.ts","label":"diff.ts","path":"app/src/lib/diff.ts","group":2,"weight":1,"x":0.5,"y":-0.054},{"id":"f:app/src/lib/keys.ts","label":"keys.ts","path":"app/src/lib/keys.ts","group":2,"weight":3,"x":0.399,"y":-0.306},{"id":"f:app/src/lsp.ts","label":"lsp.ts","path":"app/src/lsp.ts","group":2,"weight":25,"x":0.285,"y":-0.071},{"id":"f:app/src/main.ts","label":"main.ts","path":"app/src/main.ts","group":2,"weight":116,"x":0.23,"y":-0.233},{"id":"f:app/src/map.ts","label":"map.ts","path":"app/src/map.ts","group":2,"weight":75,"x":0.046,"y":-0.168},{"id":"f:app/src/memory.ts","label":"memory.ts","path":"app/src/memory.ts","group":2,"weight":11,"x":0.077,"y":-0.302},{"id":"f:app/src/onboarding.ts","label":"onboarding.ts","path":"app/src/onboarding.ts","group":2,"weight":13,"x":0.166,"y":-0.147},{"id":"f:app/src/prefs.ts","label":"prefs.ts","path":"app/src/prefs.ts","group":2,"weight":8,"x":0.11,"y":-0.106},{"id":"f:app/src/quickopen.ts","label":"quickopen.ts","path":"app/src/quickopen.ts","group":2,"weight":13,"x":0.237,"y":-0.133},{"id":"f:app/src/report.ts","label":"report.ts","path":"app/src/report.ts","group":2,"weight":4,"x":0.225,"y":-0.327},{"id":"f:app/src/scm.ts","label":"scm.ts","path":"app/src/scm.ts","group":2,"weight":42,"x":0.258,"y":0.014},{"id":"f:app/src/search.ts","label":"search.ts","path":"app/src/search.ts","group":2,"weight":19,"x":0.333,"y":-0.244},{"id":"f:app/src/settingsPage.ts","label":"settingsPage.ts","path":"app/src/settingsPage.ts","group":2,"weight":26,"x":0.296,"y":-0.317},{"id":"f:app/src/terminal.ts","label":"terminal.ts","path":"app/src/terminal.ts","group":2,"weight":4,"x":0.425,"y":-0.025},{"id":"f:app/src/theme.ts","label":"theme.ts","path":"app/src/theme.ts","group":2,"weight":2,"x":0.619,"y":-0.206},{"id":"f:app/src/toast.ts","label":"toast.ts","path":"app/src/toast.ts","group":2,"weight":13,"x":0.128,"y":-0.209},{"id":"f:app/src/tree.ts","label":"tree.ts","path":"app/src/tree.ts","group":2,"weight":28,"x":0.369,"y":-0.071},{"id":"f:app/src/update.ts","label":"update.ts","path":"app/src/update.ts","group":2,"weight":5,"x":0.388,"y":-0.2},{"id":"f:app/tests/unit/i18n.test.ts","label":"i18n.test.ts","path":"app/tests/unit/i18n.test.ts","group":4,"weight":1,"x":-0.304,"y":0.375},{"id":"f:app/tests/unit/logic.test.ts","label":"logic.test.ts","path":"app/tests/unit/logic.test.ts","group":4,"weight":1,"x":-0.21,"y":0.33},{"id":"f:app/tests/unit/toast.test.ts","label":"toast.test.ts","path":"app/tests/unit/toast.test.ts","group":4,"weight":1,"x":-0.169,"y":0.253},{"id":"f:app/vite.config.ts","label":"vite.config.ts","path":"app/vite.config.ts","group":0,"weight":1,"x":-0.296,"y":-0.62},{"id":"f:app/vitest.config.ts","label":"vitest.config.ts","path":"app/vitest.config.ts","group":0,"weight":1,"x":-0.241,"y":-0.62},{"id":"f:crates/lantern-context/src/assemble.rs","label":"assemble.rs","path":"crates/lantern-context/src/assemble.rs","group":5,"weight":34,"x":-0.305,"y":-0.032},{"id":"f:crates/lantern-context/src/git.rs","label":"git.rs","path":"crates/lantern-context/src/git.rs","group":5,"weight":10,"x":-0.498,"y":0.174},{"id":"f:crates/lantern-context/src/graph.rs","label":"graph.rs","path":"crates/lantern-context/src/graph.rs","group":5,"weight":51,"x":-0.223,"y":0.016},{"id":"f:crates/lantern-context/src/indexer.rs","label":"indexer.rs","path":"crates/lantern-context/src/indexer.rs","group":5,"weight":7,"x":-0.5,"y":0.073},{"id":"f:crates/lantern-context/src/lang.rs","label":"lang.rs","path":"crates/lantern-context/src/lang.rs","group":5,"weight":11,"x":-0.319,"y":0.047},{"id":"f:crates/lantern-context/src/lib.rs","label":"lib.rs","path":"crates/lantern-context/src/lib.rs","group":5,"weight":26,"x":-0.314,"y":0.146},{"id":"f:crates/lantern-context/src/main.rs","label":"main.rs","path":"crates/lantern-context/src/main.rs","group":5,"weight":8,"x":-0.563,"y":0.093},{"id":"f:crates/lantern-context/src/mcp.rs","label":"mcp.rs","path":"crates/lantern-context/src/mcp.rs","group":5,"weight":9,"x":-0.264,"y":0.089},{"id":"f:crates/lantern-context/src/parse.rs","label":"parse.rs","path":"crates/lantern-context/src/parse.rs","group":5,"weight":26,"x":-0.38,"y":0.094},{"id":"f:crates/lantern-context/src/secrets.rs","label":"secrets.rs","path":"crates/lantern-context/src/secrets.rs","group":5,"weight":12,"x":-0.569,"y":0.161},{"id":"f:crates/lantern-context/src/store.rs","label":"store.rs","path":"crates/lantern-context/src/store.rs","group":5,"weight":41,"x":-0.389,"y":0.005},{"id":"f:crates/lantern-context/src/tokenize.rs","label":"tokenize.rs","path":"crates/lantern-context/src/tokenize.rs","group":5,"weight":18,"x":-0.426,"y":0.16},{"id":"f:eval/ab/run.mjs","label":"run.mjs","path":"eval/ab/run.mjs","group":6,"weight":22,"x":-0.324,"y":-0.115},{"id":"f:eval/retrieval.mjs","label":"retrieval.mjs","path":"eval/retrieval.mjs","group":6,"weight":11,"x":-0.495,"y":-0.136},{"id":"f:scripts/gen_notices.py","label":"gen_notices.py","path":"scripts/gen_notices.py","group":7,"weight":8,"x":-0.301,"y":-0.31},{"id":"f:scripts/i18n_check.py","label":"i18n_check.py","path":"scripts/i18n_check.py","group":7,"weight":7,"x":-0.397,"y":-0.318},{"id":"f:scripts/latest_json.mjs","label":"latest_json.mjs","path":"scripts/latest_json.mjs","group":7,"weight":1,"x":-0.475,"y":-0.333}],"edges":[[0,3,0],[0,4,0],[0,9,0],[0,14,0],[0,15,0],[0,20,0],[0,21,0],[0,25,0],[0,30,0],[0,35,0],[0,43,0],[0,44,0],[0,45,0],[0,46,0],[0,52,0],[0,62,0],[0,64,0],[0,65,0],[0,67,0],[0,68,0],[0,70,0],[0,72,0],[2,4,0],[2,5,0],[2,6,0],[2,7,0],[2,9,0],[2,11,0],[2,12,0],[2,13,0],[2,14,0],[2,19,0],[2,20,0],[2,22,0],[2,24,0],[2,30,0],[2,44,0],[2,52,0],[2,53,0],[2,60,0],[2,62,0],[2,64,0],[2,65,0],[2,67,0],[2,70,0],[2,72,0],[3,9,0],[3,14,0],[3,25,0],[3,62,0],[3,65,0],[3,68,0],[3,70,0],[3,72,0],[4,11,0],[4,15,0],[4,19,0],[4,21,0],[4,23,0],[4,24,0],[4,26,0],[4,28,0],[4,52,0],[4,67,0],[4,69,0],[4,72,0],[5,11,0],[5,12,0],[5,13,0],[5,30,0],[5,41,0],[5,44,0],[5,64,0],[5,69,0],[5,72,0],[6,4,0],[6,5,0],[6,11,0],[6,15,0],[6,21,0],[6,65,0],[6,72,0],[7,3,0],[7,4,0],[7,9,0],[7,11,0],[7,12,0],[7,13,0],[7,14,0],[7,15,0],[7,17,0],[7,19,0],[7,21,0],[7,22,0],[7,28,0],[7,62,0],[7,65,0],[7,67,0],[7,68,0],[7,72,0],[8,2,0],[8,9,0],[8,19,0],[8,21,0],[8,70,0],[9,0,0],[9,2,0],[9,3,0],[9,4,0],[9,7,0],[9,14,0],[9,15,0],[9,19,0],[9,20,0],[9,21,0],[9,22,0],[9,27,0],[9,41,0],[9,43,0],[9,46,0],[9,47,0],[9,52,0],[9,61,0],[9,62,0],[9,65,0],[9,68,0],[9,70,0],[9,72,0],[10,2,0],[10,22,0],[11,5,0],[11,6,0],[11,9,0],[11,12,0],[11,13,0],[11,14,0],[11,26,0],[11,43,0],[11,65,0],[11,72,0],[12,9,0],[12,11,0],[12,13,0],[12,43,0],[12,68,0],[12,72,0],[13,6,0],[13,9,0],[13,11,0],[13,12,0],[13,14,0],[13,27,0],[13,30,0],[13,43,0],[13,44,0],[13,64,0],[13,65,0],[13,72,0],[14,9,0],[14,72,0],[15,0,0],[15,2,0],[15,3,0],[15,4,0],[15,9,0],[15,14,0],[15,16,0],[15,21,0],[15,30,0],[15,44,0],[15,61,0],[15,64,0],[15,65,0],[15,68,0],[15,70,0],[15,71,0],[16,2,0],[16,4,0],[16,7,0],[16,15,0],[16,19,0],[16,21,0],[16,22,0],[16,52,0],[16,61,0],[16,62,0],[16,65,0],[16,72,0],[16,74,0],[17,0,0],[17,2,0],[17,4,0],[17,5,0],[17,6,0],[17,7,0],[17,8,0],[17,9,0],[17,11,0],[17,12,0],[17,14,0],[17,15,0],[17,16,0],[17,18,0],[17,19,0],[17,20,0],[17,21,0],[17,23,0],[17,24,0],[17,25,0],[17,26,0],[17,28,0],[17,30,0],[17,32,0],[17,35,0],[17,39,0],[17,41,0],[17,43,0],[17,44,0],[17,46,0],[17,47,0],[17,48,0],[17,50,0],[17,52,0],[17,53,0],[17,54,0],[17,60,0],[17,62,0],[17,64,0],[17,65,0],[17,67,0],[17,70,0],[17,72,0],[18,3,0],[18,4,0],[18,6,0],[18,9,0],[18,14,0],[18,15,0],[18,21,0],[18,24,0],[18,25,0],[18,30,0],[18,43,0],[18,44,0],[18,53,0],[18,64,0],[18,65,0],[18,68,0],[18,70,0],[18,72,0],[19,4,0],[19,9,0],[19,14,0],[19,15,0],[19,20,0],[19,21,0],[19,23,0],[19,24,0],[19,53,0],[19,65,0],[19,72,0],[20,4,0],[20,9,0],[20,14,0],[20,15,0],[20,19,0],[20,21,0],[20,23,0],[20,24,0],[20,27,0],[20,30,0],[20,32,0],[20,44,0],[20,53,0],[20,62,0],[20,64,0],[20,65,0],[20,70,0],[20,72,0],[21,2,0],[21,50,0],[21,65,0],[21,71,0],[22,2,0],[22,4,0],[22,7,0],[22,9,0],[22,12,0],[22,14,0],[22,15,0],[22,17,0],[22,19,0],[22,21,0],[22,23,0],[22,27,0],[22,30,0],[22,32,0],[22,41,0],[22,42,0],[22,44,0],[22,60,0],[22,64,0],[22,65,0],[22,69,0],[22,70,0],[22,72,0],[23,4,0],[23,9,0],[23,14,0],[23,15,0],[23,17,0],[23,19,0],[23,20,0],[23,21,0],[23,25,0],[23,26,0],[23,41,0],[23,48,0],[23,62,0],[23,65,0],[23,70,0],[23,72,0],[24,2,0],[24,4,0],[24,7,0],[24,9,0],[24,15,0],[24,19,0],[24,20,0],[24,21,0],[24,22,0],[24,47,0],[24,53,0],[24,65,0],[24,70,0],[24,72,0],[25,12,0],[25,19,0],[26,2,0],[26,3,0],[26,4,0],[26,6,0],[26,9,0],[26,11,0],[26,14,0],[26,18,0],[26,19,0],[26,20,0],[26,24,0],[26,25,0],[26,30,0],[26,31,0],[26,33,0],[26,34,0],[26,35,0],[26,36,0],[26,37,0],[26,39,0],[26,40,0],[26,41,0],[26,42,0],[26,44,0],[26,47,0],[26,48,0],[26,52,0],[26,53,0],[26,60,0],[26,62,0],[26,64,0],[26,65,0],[26,67,0],[26,68,0],[26,70,0],[26,72,0],[27,11,0],[27,24,0],[27,26,0],[27,30,0],[27,38,0],[27,41,0],[27,42,0],[27,44,0],[27,47,0],[27,53,0],[27,60,0],[27,64,0],[27,70,0],[27,72,0],[28,22,0],[28,30,0],[28,44,0],[28,49,0],[29,32,0],[30,3,0],[30,11,0],[30,26,0],[30,65,0],[30,68,0],[31,4,0],[31,9,0],[31,11,0],[31,14,0],[31,20,0],[31,22,0],[31,24,0],[31,25,0],[31,26,0],[31,28,0],[31,30,0],[31,33,0],[31,39,0],[31,41,0],[31,42,0],[31,44,0],[31,47,0],[31,48,0],[31,51,0],[31,52,0],[31,53,0],[31,60,0],[31,62,0],[31,64,0],[31,67,0],[32,27,0],[32,30,0],[32,44,0],[32,62,0],[32,64,0],[32,72,0],[33,11,0],[33,26,0],[33,30,0],[33,41,0],[33,47,0],[34,2,0],[34,20,0],[34,24,0],[34,25,0],[34,30,0],[34,31,0],[34,44,0],[34,48,0],[34,49,0],[34,53,0],[34,64,0],[34,74,0],[35,0,0],[35,3,0],[35,4,0],[35,11,0],[35,20,0],[35,24,0],[35,25,0],[35,26,0],[35,27,0],[35,30,0],[35,31,0],[35,33,0],[35,38,0],[35,41,0],[35,43,0],[35,44,0],[35,48,0],[35,52,0],[35,62,0],[35,65,0],[35,67,0],[35,68,0],[35,72,0],[36,9,0],[36,14,0],[37,9,0],[37,14,0],[38,72,0],[39,4,0],[39,9,0],[39,14,0],[39,15,0],[39,20,0],[39,25,0],[39,26,0],[39,28,0],[39,30,0],[39,41,0],[39,42,0],[39,44,0],[39,48,0],[39,52,0],[39,60,0],[39,64,0],[39,72,0],[40,0,0],[40,3,0],[40,4,0],[40,11,0],[40,24,0],[40,25,0],[40,26,0],[40,27,0],[40,28,0],[40,29,0],[40,30,0],[40,31,0],[40,33,0],[40,35,0],[40,39,0],[40,41,0],[40,42,0],[40,43,0],[40,44,0],[40,45,0],[40,46,0],[40,47,0],[40,48,0],[40,49,0],[40,50,0],[40,52,0],[40,53,0],[40,54,0],[40,60,0],[40,62,0],[40,64,0],[40,65,0],[40,67,0],[40,68,0],[40,70,0],[40,72,0],[41,0,0],[41,9,0],[41,11,0],[41,14,0],[41,15,0],[41,24,0],[41,25,0],[41,26,0],[41,27,0],[41,30,0],[41,32,0],[41,33,0],[41,39,0],[41,40,0],[41,42,0],[41,44,0],[41,45,0],[41,47,0],[41,48,0],[41,49,0],[41,50,0],[41,53,0],[41,60,0],[41,62,0],[41,64,0],[41,70,0],[41,72,0],[41,73,0],[42,4,0],[42,25,0],[42,30,0],[42,33,0],[42,40,0],[42,41,0],[42,44,0],[42,48,0],[42,52,0],[42,60,0],[42,62,0],[42,64,0],[42,67,0],[42,72,0],[43,3,0],[43,9,0],[43,11,0],[43,24,0],[43,25,0],[43,26,0],[43,30,0],[43,31,0],[43,33,0],[43,40,0],[43,41,0],[43,42,0],[43,44,0],[43,49,0],[43,53,0],[43,60,0],[43,62,0],[43,64,0],[43,65,0],[43,68,0],[43,72,0],[44,9,0],[44,14,0],[44,24,0],[44,30,0],[44,35,0],[44,64,0],[45,9,0],[45,11,0],[45,14,0],[45,24,0],[45,25,0],[45,26,0],[45,27,0],[45,28,0],[45,30,0],[45,33,0],[45,38,0],[45,41,0],[45,42,0],[45,48,0],[45,53,0],[45,60,0],[45,62,0],[45,72,0],[45,73,0],[46,4,0],[46,9,0],[46,11,0],[46,25,0],[46,26,0],[46,30,0],[46,31,0],[46,33,0],[46,52,0],[46,67,0],[47,4,0],[47,9,0],[47,11,0],[47,14,0],[47,20,0],[47,24,0],[47,25,0],[47,26,0],[47,27,0],[47,30,0],[47,31,0],[47,33,0],[47,40,0],[47,41,0],[47,42,0],[47,48,0],[47,52,0],[47,53,0],[47,60,0],[47,62,0],[47,67,0],[47,70,0],[47,72,0],[48,4,0],[48,11,0],[48,25,0],[48,26,0],[48,30,0],[48,31,0],[48,33,0],[48,34,0],[48,41,0],[48,45,0],[48,47,0],[48,52,0],[48,53,0],[48,62,0],[48,67,0],[48,72,0],[49,4,0],[49,9,0],[49,11,0],[49,14,0],[49,24,0],[49,25,0],[49,26,0],[49,30,0],[49,31,0],[49,32,0],[49,33,0],[49,34,0],[49,40,0],[49,41,0],[49,42,0],[49,43,0],[49,44,0],[49,47,0],[49,48,0],[49,52,0],[49,53,0],[49,60,0],[49,64,0],[49,67,0],[49,72,0],[49,74,0],[50,4,0],[50,15,0],[50,21,0],[50,25,0],[50,27,0],[50,30,0],[50,41,0],[50,44,0],[50,48,0],[52,11,0],[52,24,0],[52,26,0],[52,28,0],[52,30,0],[52,33,0],[52,41,0],[52,42,0],[52,47,0],[52,53,0],[52,60,0],[52,70,0],[52,72,0],[53,4,0],[53,11,0],[53,20,0],[53,23,0],[53,24,0],[53,25,0],[53,26,0],[53,27,0],[53,30,0],[53,33,0],[53,41,0],[53,42,0],[53,45,0],[53,47,0],[53,48,0],[53,52,0],[53,60,0],[53,62,0],[53,67,0],[53,72,0],[54,4,0],[54,16,0],[54,25,0],[54,30,0],[54,44,0],[54,45,0],[54,52,0],[54,67,0],[55,32,0],[56,36,0],[56,37,0],[56,38,0],[56,72,0],[57,4,0],[57,11,0],[57,24,0],[57,26,0],[57,52,0],[57,53,0],[57,70,0],[57,72,0],[60,9,0],[60,14,0],[60,30,0],[60,41,0],[60,42,0],[60,44,0],[60,62,0],[60,64,0],[60,65,0],[60,69,0],[60,70,0],[60,71,0],[60,72,0],[61,2,0],[61,7,0],[61,9,0],[61,22,0],[61,47,0],[61,52,0],[61,70,0],[61,72,0],[62,0,0],[62,4,0],[62,7,0],[62,9,0],[62,14,0],[62,15,0],[62,19,0],[62,20,0],[62,21,0],[62,24,0],[62,26,0],[62,30,0],[62,39,0],[62,41,0],[62,44,0],[62,45,0],[62,53,0],[62,61,0],[62,64,0],[62,65,0],[62,69,0],[62,70,0],[62,71,0],[62,72,0],[62,73,0],[63,3,0],[63,9,0],[63,30,0],[63,41,0],[63,44,0],[63,47,0],[63,64,0],[63,65,0],[63,68,0],[63,70,0],[63,72,0],[64,65,0],[65,4,0],[65,9,0],[65,14,0],[65,15,0],[65,21,0],[65,23,0],[65,30,0],[65,39,0],[65,41,0],[65,44,0],[65,60,0],[65,61,0],[65,62,0],[65,63,0],[65,64,0],[65,69,0],[65,70,0],[65,71,0],[65,72,0],[66,3,0],[66,9,0],[66,14,0],[66,30,0],[66,44,0],[66,60,0],[66,62,0],[66,64,0],[66,65,0],[66,67,0],[66,68,0],[66,70,0],[66,71,0],[66,72,0],[67,4,0],[67,26,0],[67,30,0],[67,34,0],[67,44,0],[67,52,0],[67,60,0],[67,64,0],[67,65,0],[67,70,0],[67,71,0],[67,72,0],[68,3,0],[68,9,0],[68,14,0],[68,30,0],[68,32,0],[68,41,0],[68,44,0],[68,62,0],[68,64,0],[68,65,0],[68,71,0],[68,72,0],[69,41,0],[69,70,0],[69,72,0],[70,9,0],[70,14,0],[70,30,0],[70,41,0],[70,44,0],[70,64,0],[70,72,0],[71,9,0],[71,14,0],[71,22,0],[71,30,0],[71,41,0],[71,44,0],[71,48,0],[71,62,0],[71,64,0],[71,70,0],[71,72,0],[72,3,0],[72,4,0],[72,9,0],[72,14,0],[72,24,0],[72,28,0],[72,30,0],[72,41,0],[72,42,0],[72,46,0],[72,52,0],[72,60,0],[72,62,0],[72,65,0],[72,67,0],[72,68,0],[72,73,0],[73,3,0],[73,4,0],[73,9,0],[73,14,0],[73,30,0],[73,41,0],[73,45,0],[73,46,0],[73,52,0],[73,62,0],[73,65,0],[73,67,0],[73,68,0],[73,72,0],[73,75,0],[74,9,0],[74,11,0],[74,16,0],[74,20,0],[74,23,0],[74,26,0],[74,30,0],[74,34,0],[74,42,0],[74,44,0],[74,49,0],[74,60,0],[74,64,0],[75,9,0],[75,11,0],[75,26,0],[75,30,0],[75,32,0],[75,42,0],[75,44,0],[75,47,0],[75,60,0],[75,62,0],[75,65,0],[75,70,0],[75,73,0],[76,3,0],[76,4,0],[76,9,0],[76,30,0],[76,46,0],[76,52,0],[76,65,0],[76,67,0],[76,68,0]],"task":{"question":"한국어 질문을 검색어로 바꾸는 곳에서 중복을 줄여줘","context":{"used":7958,"budget":8000,"ms":6,"terms":["한국어","질문","검색어","바꾸","곳에서","중복","줄여줘","duplicate","dedupe"],"files":[{"path":"crates/lantern-context/src/tokenize.rs","tokens":900,"symbols":["QueryTerm","query_terms","fts_query_is_quoted","builds_query_terms"]},{"path":"app/src-tauri/src/agents.rs","tokens":326,"symbols":["builtin"]},{"path":"app/src-tauri/src/tasks.rs","tokens":550,"symbols":["fingerprint","save_checkpoint","fingerprints_detect_later_changes","write_atomic","checkpoint_path"]},{"path":"crates/lantern-context/src/assemble.rs","tokens":2214,"symbols":["assemble","ranked","search_reason","normalize_path"]},{"path":"eval/ab/run.mjs","tokens":79,"symbols":["map","judge"]},{"path":"crates/lantern-context/src/main.rs","tokens":356,"symbols":["Cmd"]},{"path":"app/src/search.ts","tokens":1017,"symbols":["render","replaceIn","changedHandler"]},{"path":"app/src/main.ts","tokens":1071,"symbols":["onContext","renderContextStatus","openProject"]},{"path":"app/src/chat.ts","tokens":181,"symbols":["revertSafely"]},{"path":"app/src/i18n.ts","tokens":177,"symbols":["fromPattern"]},{"path":"app/src/scm.ts","tokens":130,"symbols":["switchTo"]},{"path":"app/src-tauri/src/tools.rs","tokens":158,"symbols":["ToolCtx"]},{"path":"app/src/onboarding.ts","tokens":642,"symbols":["render"]},{"path":"app/src/keybindings.ts","tokens":157,"symbols":["onKey"]}]},"read":["crates/lantern-context/src/assemble.rs"],"edit":{"path":"crates/lantern-context/src/tokenize.rs","symbol":"query_terms","line":261,"before":" if seen.insert(text.clone()) {","after":" if seen.insert(text.to_lowercase()) {","snippet":[{"n":256,"code":"/// 질문을 검색어 목록으로 바꾼다."},{"n":257,"code":"pub fn query_terms(query: &str) -> Vec {"},{"n":258,"code":" let mut seen = HashSet::new();"},{"n":259,"code":" let mut out = Vec::new();"},{"n":260,"code":" let mut push = |text: String, prefix: bool, expanded: bool, out: &mut Vec| {"},{"n":261,"code":" if seen.insert(text.clone()) {"},{"n":262,"code":" out.push(QueryTerm { text, prefix, expanded });"},{"n":263,"code":" }"},{"n":264,"code":" };"},{"n":265,"code":""}]},"impact":{"touched":["query_terms"],"callers":4,"callers2":24,"files":17,"modules":3,"risk":"high","tests":[],"cochanged":[],"depthByPath":{"crates/lantern-context/src/tokenize.rs":0,"crates/lantern-context/src/assemble.rs":1,"crates/lantern-context/src/graph.rs":1,"crates/lantern-context/src/lib.rs":1,"app/e2e/run.mjs":2,"app/src-tauri/src/agent.rs":2,"app/src-tauri/src/agents.rs":2,"app/src-tauri/src/gitops.rs":2,"app/src-tauri/src/lspinstall.rs":2,"app/src-tauri/src/main.rs":2,"app/src-tauri/src/tasks.rs":2,"app/src-tauri/src/workspace.rs":2,"app/src/chat.ts":2,"app/src/editor.ts":2,"app/src/keybindings.ts":2,"app/src/main.ts":2,"app/src/onboarding.ts":2,"crates/lantern-context/src/main.rs":2}}}}
diff --git a/app/pages/en/index.vue b/app/pages/en/index.vue
new file mode 100644
index 0000000..f4870b6
--- /dev/null
+++ b/app/pages/en/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/app/pages/index.vue b/app/pages/index.vue
new file mode 100644
index 0000000..b3007da
--- /dev/null
+++ b/app/pages/index.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/nuxt.config.ts b/nuxt.config.ts
new file mode 100644
index 0000000..d11e4ce
--- /dev/null
+++ b/nuxt.config.ts
@@ -0,0 +1,28 @@
+// 정적 사이트. 서버가 할 일이 없어 `nuxt generate`로 .output/public 을 만들어 GitHub Pages에 올린다.
+// 저장소 이름이 조직 페이지(lantern-ide.github.io)라 하위 경로(baseURL)가 필요 없다.
+export default defineNuxtConfig({
+ compatibilityDate: "2026-09-01",
+ devtools: { enabled: false },
+ css: [
+ // 앱과 같은 서체·아이콘 (앱: app/src/main.ts)
+ "pretendard/dist/web/variable/pretendardvariable-dynamic-subset.css",
+ "@vscode/codicons/dist/codicon.css",
+ "~/assets/css/main.css",
+ ],
+ // 방향 계약 주석(app.vue)을 빌드 결과에 남긴다
+ vue: { compilerOptions: { comments: true } },
+ app: {
+ head: {
+ htmlAttrs: { lang: "ko" },
+ meta: [
+ { name: "viewport", content: "width=device-width, initial-scale=1" },
+ { name: "theme-color", content: "#16171c" },
+ { name: "color-scheme", content: "dark" },
+ ],
+ link: [{ rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }],
+ },
+ },
+ nitro: { prerender: { routes: ["/", "/en/"], crawlLinks: false } },
+ runtimeConfig: { public: { siteUrl: "https://lantern-ide.github.io" } },
+ typescript: { strict: true },
+});
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..f02ef66
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,9420 @@
+{
+ "name": "lantern-landing",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "lantern-landing",
+ "version": "0.1.0",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@vscode/codicons": "^0.0.46-24",
+ "nuxt": "^4.5.2",
+ "pretendard": "^1.3.9"
+ },
+ "devDependencies": {
+ "d3-force": "^3.0.0",
+ "puppeteer-core": "^25.12.0",
+ "typescript": "^5.9.3",
+ "vue-tsc": "^3.3.11"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz",
+ "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.29.7",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/code-frame/node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz",
+ "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz",
+ "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.7",
+ "@babel/generator": "^7.29.7",
+ "@babel/helper-compilation-targets": "^7.29.7",
+ "@babel/helper-module-transforms": "^7.29.7",
+ "@babel/helpers": "^7.29.7",
+ "@babel/parser": "^7.29.7",
+ "@babel/template": "^7.29.7",
+ "@babel/traverse": "^7.29.7",
+ "@babel/types": "^7.29.7",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz",
+ "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.8",
+ "@babel/types": "^7.29.8",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz",
+ "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz",
+ "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.29.7",
+ "@babel/helper-validator-option": "^7.29.7",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz",
+ "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.29.7",
+ "@babel/helper-member-expression-to-functions": "^7.29.7",
+ "@babel/helper-optimise-call-expression": "^7.29.7",
+ "@babel/helper-replace-supers": "^7.29.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7",
+ "@babel/traverse": "^7.29.7",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz",
+ "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz",
+ "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.29.7",
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz",
+ "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.29.7",
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz",
+ "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.29.7",
+ "@babel/helper-validator-identifier": "^7.29.7",
+ "@babel/traverse": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz",
+ "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz",
+ "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz",
+ "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.29.7",
+ "@babel/helper-optimise-call-expression": "^7.29.7",
+ "@babel/traverse": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz",
+ "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.29.7",
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz",
+ "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz",
+ "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz",
+ "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz",
+ "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.29.7",
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.29.9",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz",
+ "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.29.8"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz",
+ "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz",
+ "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.29.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.9.tgz",
+ "integrity": "sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.29.7",
+ "@babel/helper-create-class-features-plugin": "^7.29.7",
+ "@babel/helper-plugin-utils": "^7.29.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7",
+ "@babel/plugin-syntax-typescript": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.29.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz",
+ "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.7",
+ "@babel/parser": "^7.29.7",
+ "@babel/types": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz",
+ "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.7",
+ "@babel/generator": "^7.29.8",
+ "@babel/helper-globals": "^7.29.7",
+ "@babel/parser": "^7.29.8",
+ "@babel/template": "^7.29.7",
+ "@babel/types": "^7.29.8",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.29.8",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz",
+ "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.29.7",
+ "@babel/helper-validator-identifier": "^7.29.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bomb.sh/tab": {
+ "version": "0.0.19",
+ "resolved": "https://registry.npmjs.org/@bomb.sh/tab/-/tab-0.0.19.tgz",
+ "integrity": "sha512-dTRfo9Q9B+lbLG3JCu8a/AGQSfD2XXcFcnakQzVjSOX+VvR/s9zpsH8TlqV3iHqazniRn1Ypwd1hcRlXcu/4BA==",
+ "license": "MIT",
+ "bin": {
+ "tab": "dist/bin/cli.mjs"
+ },
+ "peerDependencies": {
+ "cac": "^6.7.14",
+ "citty": "^0.1.6 || ^0.2.0",
+ "commander": "^13.1.0 || ^14.0.0 || ^15.0.0"
+ },
+ "peerDependenciesMeta": {
+ "cac": {
+ "optional": true
+ },
+ "citty": {
+ "optional": true
+ },
+ "commander": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@clack/core": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@clack/core/-/core-1.5.1.tgz",
+ "integrity": "sha512-iHTrHA8MtVuLl2TfZySmcKv1qO2PoyC9Z7pfSDozEuV5vtY3/wcOPKJXlqJ5Oq2Cx5DDGQGAMVx6HZfRRoVEbQ==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-wrap-ansi": "^0.2.0",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 20.12.0"
+ }
+ },
+ "node_modules/@clack/prompts": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@clack/prompts/-/prompts-1.8.1.tgz",
+ "integrity": "sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@clack/core": "1.5.1",
+ "fast-string-width": "^3.0.2",
+ "fast-wrap-ansi": "^0.2.0",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 20.12.0"
+ }
+ },
+ "node_modules/@cloudflare/kv-asset-handler": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.2.tgz",
+ "integrity": "sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==",
+ "license": "MIT OR Apache-2.0",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@colordx/core": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.8.0.tgz",
+ "integrity": "sha512-cG0QJAO6VkaRUlIb0zOzX9gfJgs1pjoOL9gZ/PK1kfvBs0GCkADu5oQh6gPxXgQnZ3gV575h+lQRC0NlMDTclA==",
+ "license": "MIT"
+ },
+ "node_modules/@dxup/nuxt": {
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/@dxup/nuxt/-/nuxt-0.5.10.tgz",
+ "integrity": "sha512-54Vehb7LmR7qYpC6KFwjDTSm6CB1CayBu+JXdHrPLrIjjr5xAgb43jvgOU+mnB+tsRh414fSsEy0QjBMKILQ8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@dxup/unimport": "^0.1.2",
+ "@nuxt/kit": "^4.5.2",
+ "@vue/compiler-dom": "^3.5.41",
+ "chokidar": "^5.0.0",
+ "knitwork": "^1.3.0",
+ "magic-string": "^1.2.2",
+ "pathe": "^2.0.3",
+ "tinyglobby": "^0.2.17",
+ "unplugin": "^3.3.0"
+ }
+ },
+ "node_modules/@dxup/unimport": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/@dxup/unimport/-/unimport-0.1.2.tgz",
+ "integrity": "sha512-/B8YJGPzaYq1NbsQmwgP8EZqg40NpTw4ZB3suuI0TplbxKHeK94jeaawLmVhCv+YwUnOpiWEz9U6SeThku/8JQ==",
+ "license": "MIT"
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz",
+ "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz",
+ "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz",
+ "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz",
+ "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz",
+ "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz",
+ "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz",
+ "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz",
+ "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz",
+ "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz",
+ "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz",
+ "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz",
+ "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz",
+ "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz",
+ "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz",
+ "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz",
+ "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz",
+ "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz",
+ "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz",
+ "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz",
+ "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz",
+ "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openharmony-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz",
+ "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz",
+ "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz",
+ "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz",
+ "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz",
+ "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@ioredis/commands": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.10.0.tgz",
+ "integrity": "sha512-UmeW7z4LfctwoQ5wkhVzgq8tXkreED2xZGpX+Bg+zA+WJFZCT6c062AfCK/Dfk81xZnnwdhJCUMkitihRaoC2Q==",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz",
+ "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@kwsites/file-exists": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz",
+ "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1"
+ }
+ },
+ "node_modules/@kwsites/promise-deferred": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz",
+ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==",
+ "license": "MIT"
+ },
+ "node_modules/@mapbox/node-pre-gyp": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-2.0.3.tgz",
+ "integrity": "sha512-uwPAhccfFJlsfCxMYTwOdVfOz3xqyj8xYL3zJj8f0pb30tLohnnFPhLuqp4/qoEz8sNxe4SESZedcBojRefIzg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "consola": "^3.2.3",
+ "detect-libc": "^2.0.0",
+ "https-proxy-agent": "^7.0.5",
+ "node-fetch": "^2.6.7",
+ "nopt": "^8.0.0",
+ "semver": "^7.5.3",
+ "tar": "^7.4.0"
+ },
+ "bin": {
+ "node-pre-gyp": "bin/node-pre-gyp"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@napi-rs/lzma-linux-x64-gnu": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz",
+ "integrity": "sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^22.20 || ^24.12 || >=25"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nuxt/cli": {
+ "version": "3.37.0",
+ "resolved": "https://registry.npmjs.org/@nuxt/cli/-/cli-3.37.0.tgz",
+ "integrity": "sha512-Zj9NwHjEBzVrgezsgMFjpMhNqwNgROk9DzNi/dyfk1mCbXIRigV11br2xOl0Satek30bmv7oZAfMtCnDe6Ip0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@bomb.sh/tab": "^0.0.19",
+ "@clack/prompts": "^1.7.0",
+ "c12": "^3.3.4",
+ "citty": "^0.2.2",
+ "confbox": "^0.2.4",
+ "consola": "^3.4.2",
+ "debug": "^4.4.3",
+ "defu": "^6.1.7",
+ "exsolve": "^1.1.0",
+ "fuse.js": "^7.4.2",
+ "fzf": "^0.5.2",
+ "giget": "^3.3.0",
+ "jiti": "^2.7.0",
+ "listhen": "^1.10.0",
+ "nypm": "^0.6.8",
+ "ofetch": "^1.5.1",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.1.0",
+ "pkg-types": "^2.3.1",
+ "scule": "^1.3.0",
+ "semver": "^7.8.5",
+ "srvx": "^0.11.22",
+ "std-env": "^4.2.0",
+ "tinyclip": "^0.1.15",
+ "tinyexec": "^1.2.4",
+ "ufo": "^1.6.4",
+ "youch": "^4.1.1"
+ },
+ "bin": {
+ "nuxi": "bin/nuxi.mjs",
+ "nuxi-ng": "bin/nuxi.mjs",
+ "nuxt": "bin/nuxi.mjs",
+ "nuxt-cli": "bin/nuxi.mjs"
+ },
+ "engines": {
+ "node": "^16.14.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@nuxt/schema": "^4.4.6"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/schema": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxt/devalue": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/devalue/-/devalue-2.0.2.tgz",
+ "integrity": "sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==",
+ "license": "MIT"
+ },
+ "node_modules/@nuxt/devtools": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/devtools/-/devtools-3.4.2.tgz",
+ "integrity": "sha512-Nidg0/zB710cyK89ltTkv66hMfPlIPlKA+Yb67bIrAkNm5PoTwQ1goHdFWHIAGZ9nTadcVTzATwMwa56nvl/Wg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nuxt/devtools-kit": "3.4.2",
+ "@nuxt/devtools-wizard": "3.4.2",
+ "@nuxt/kit": "^4.5.1",
+ "@vue/devtools-core": "^8.2.1",
+ "@vue/devtools-kit": "^8.2.1",
+ "birpc": "^4.0.0",
+ "consola": "^3.4.2",
+ "destr": "^2.0.5",
+ "error-stack-parser-es": "^2.0.1",
+ "execa": "^8.0.1",
+ "fast-npm-meta": "^2.2.0",
+ "get-port-please": "^3.2.0",
+ "hookable": "^6.1.1",
+ "image-meta": "^0.2.2",
+ "is-installed-globally": "^1.0.0",
+ "launch-editor": "^2.14.1",
+ "local-pkg": "^1.2.1",
+ "magicast": "^0.5.4",
+ "nypm": "^0.6.9",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.1.0",
+ "pkg-types": "^2.3.1",
+ "semver": "^7.8.5",
+ "simple-git": "^3.36.0",
+ "sirv": "^3.0.2",
+ "structured-clone-es": "^2.0.1",
+ "tinyglobby": "^0.2.17",
+ "unstorage": "^1.17.5",
+ "vite-plugin-inspect": "^11.4.1",
+ "vite-plugin-vue-tracer": "^1.4.0",
+ "which": "^6.0.1",
+ "ws": "^8.21.1"
+ },
+ "bin": {
+ "devtools": "cli.mjs"
+ },
+ "peerDependencies": {
+ "@vitejs/devtools": "*",
+ "vite": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vitejs/devtools": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxt/devtools-kit": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/devtools-kit/-/devtools-kit-3.4.2.tgz",
+ "integrity": "sha512-TPPbmH9xrExagYxfCe6JgtbHmgchfgDdA656Yws18rn8I/oCvB+gcw3kTWBBp2sC9ipZPXsgbsW/yZnVnGNBiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@nuxt/kit": "^4.5.1",
+ "execa": "^8.0.1"
+ },
+ "peerDependencies": {
+ "vite": ">=6.0"
+ }
+ },
+ "node_modules/@nuxt/devtools-wizard": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/devtools-wizard/-/devtools-wizard-3.4.2.tgz",
+ "integrity": "sha512-U2G8fw7KW1rdECyJDho5N14z8hSllpTk430KG1QPLjrv5w3pDksZ+YcpITd0u762Vw3gq3Arpg65Bk6U4ua6aQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@clack/prompts": "^1.7.0",
+ "consola": "^3.4.2",
+ "diff": "^8.0.4",
+ "execa": "^8.0.1",
+ "magicast": "^0.5.4",
+ "pathe": "^2.0.3",
+ "pkg-types": "^2.3.1",
+ "semver": "^7.8.5"
+ },
+ "bin": {
+ "devtools-wizard": "cli.mjs"
+ }
+ },
+ "node_modules/@nuxt/kit": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.5.2.tgz",
+ "integrity": "sha512-l66LU9DcJYjmNwqwAj2I5UGRrUbnG2DOKGChnN70zIGtn0eq/z87gi/FRgha6eMb9/FmB1PFHgtx6PWVml1C2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "c12": "^3.3.4",
+ "consola": "^3.4.2",
+ "defu": "^6.1.7",
+ "destr": "^2.0.5",
+ "errx": "^0.1.2",
+ "exsolve": "^1.1.1",
+ "ignore": "^7.0.6",
+ "jiti": "^2.7.0",
+ "klona": "^2.0.6",
+ "mlly": "^1.8.2",
+ "nostics": "^1.2.0",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "pkg-types": "^2.3.1",
+ "rc9": "^3.0.1",
+ "scule": "^1.3.0",
+ "tinyglobby": "^0.2.17",
+ "ufo": "^1.6.4",
+ "unctx": "^3.0.0",
+ "untyped": "^2.0.0",
+ "verkit": "^0.3.1"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ }
+ },
+ "node_modules/@nuxt/nitro-server": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/nitro-server/-/nitro-server-4.5.2.tgz",
+ "integrity": "sha512-sx/vtT8D1WIRUOMuKQz/9z8nZb7jgVWc6HWwlkXKDjYZ84otPFtYCozKqhXWv6xf3JxJvge/RUAOwh9Z7P4nQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@nuxt/devalue": "^2.0.2",
+ "@nuxt/kit": "4.5.2",
+ "@unhead/vue": "^3.3.1",
+ "@vue/shared": "^3.5.40",
+ "consola": "^3.4.2",
+ "defu": "^6.1.7",
+ "destr": "^2.0.5",
+ "devalue": "^5.9.0",
+ "errx": "^0.1.2",
+ "escape-string-regexp": "^5.0.0",
+ "exsolve": "^1.1.1",
+ "h3": "^1.15.11",
+ "impound": "^1.1.6",
+ "klona": "^2.0.6",
+ "mocked-exports": "^0.1.1",
+ "nitropack": "^2.13.4",
+ "nostics": "^1.2.0",
+ "nypm": "^0.6.9",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "rou3": "^0.9.1",
+ "std-env": "^4.2.0",
+ "ufo": "^1.6.4",
+ "unctx": "^3.0.0",
+ "unstorage": "^1.17.5",
+ "vue": "^3.5.40",
+ "vue-bundle-renderer": "^2.3.1",
+ "vue-devtools-stub": "^0.1.0"
+ },
+ "engines": {
+ "node": "^22.19.0 || ^24.11.0 || >=26.0.0"
+ },
+ "peerDependencies": {
+ "@babel/plugin-proposal-decorators": "^7.25.0 || ^8.0.0",
+ "@babel/plugin-syntax-typescript": "^7.25.0 || ^8.0.0",
+ "@rollup/plugin-babel": "^6.0.0 || ^7.0.0",
+ "nuxt": "^4.5.2"
+ },
+ "peerDependenciesMeta": {
+ "@babel/plugin-proposal-decorators": {
+ "optional": true
+ },
+ "@babel/plugin-syntax-typescript": {
+ "optional": true
+ },
+ "@rollup/plugin-babel": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxt/schema": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-4.5.2.tgz",
+ "integrity": "sha512-h9g1kt9O2iU9nX6HDFu9gvwtpn+8oSJX0RSTWRBnEx/Pkz+WlOHtjuS0SbkTAXw5aT1+H1GysWVwNTjJfBY/0w==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/shared": "^3.5.40",
+ "defu": "^6.1.7",
+ "nostics": "^1.2.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^2.3.1",
+ "std-env": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/@nuxt/telemetry": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/@nuxt/telemetry/-/telemetry-2.9.1.tgz",
+ "integrity": "sha512-WYQs6GvebU278YXhbGlLA8pUO3ox+juHAiKCB3SEH0lq2PDRwX465tHRtpVIqsHv+lGK/n99FC7qqyBt9+p3oQ==",
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.2.2",
+ "consola": "^3.4.2",
+ "rc9": "^3.0.1",
+ "std-env": "^4.2.0"
+ },
+ "bin": {
+ "nuxt-telemetry": "bin/nuxt-telemetry.mjs"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "@nuxt/kit": ">=3.0.0"
+ }
+ },
+ "node_modules/@nuxt/vite-builder": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-4.5.2.tgz",
+ "integrity": "sha512-fC8KUs5F1VpSEjTIjmx5pdflciMlp3FDCubx3AXElvRPLtBAPmyB69kmqVFjRnVQ8+vRHNyI7iBHUg9Se8srLA==",
+ "license": "MIT",
+ "dependencies": {
+ "@nuxt/kit": "4.5.2",
+ "@vitejs/plugin-vue": "^6.0.8",
+ "@vitejs/plugin-vue-jsx": "^5.1.6",
+ "autoprefixer": "^10.5.4",
+ "consola": "^3.4.2",
+ "cssnano": "^8.0.2",
+ "defu": "^6.1.7",
+ "escape-string-regexp": "^5.0.0",
+ "exsolve": "^1.1.1",
+ "generic-names": "^4.0.0",
+ "get-port-please": "^3.2.0",
+ "jiti": "^2.7.0",
+ "js-tokens": "^10.0.0",
+ "knitwork": "^1.3.0",
+ "mlly": "^1.8.2",
+ "mocked-exports": "^0.1.1",
+ "nypm": "^0.6.9",
+ "pathe": "^2.0.3",
+ "pkg-types": "^2.3.1",
+ "postcss": "^8.5.25",
+ "rolldown-string": "^0.3.1",
+ "seroval": "^1.6.2",
+ "std-env": "^4.2.0",
+ "ufo": "^1.6.4",
+ "unenv": "^2.0.0-rc.24",
+ "vite": "^8.2.0",
+ "vite-node": "^6.0.0",
+ "vite-plugin-checker": "^0.14.5",
+ "vue-bundle-renderer": "^2.3.1"
+ },
+ "engines": {
+ "node": "^22.18.0 || ^24.11.0 || >=26.0.0"
+ },
+ "peerDependencies": {
+ "@babel/plugin-proposal-decorators": "^7.25.0 || ^8.0.0",
+ "@babel/plugin-syntax-jsx": "^7.25.0 || ^8.0.0",
+ "nuxt": "4.5.2",
+ "rolldown": "^1.0.0",
+ "rollup-plugin-visualizer": "^6.0.0 || ^7.0.1",
+ "vue": "^3.3.4"
+ },
+ "peerDependenciesMeta": {
+ "@babel/plugin-proposal-decorators": {
+ "optional": true
+ },
+ "@babel/plugin-syntax-jsx": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ },
+ "rollup-plugin-visualizer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@oxc-project/types": {
+ "version": "0.151.0",
+ "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.151.0.tgz",
+ "integrity": "sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/oxc-project"
+ }
+ },
+ "node_modules/@parcel/watcher-wasm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.6.0.tgz",
+ "integrity": "sha512-dtjbDxKSDPQ8AmA+pS4OFaHE1FKrjtGpLGBxw85uKFkRorjNbvDM/aFPgqosu40wprbp1xw2ZSxIKqghCUHe2w==",
+ "bundleDependencies": [
+ "napi-wasm"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "is-glob": "^4.0.3",
+ "napi-wasm": "^1.1.0",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.29",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz",
+ "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==",
+ "license": "MIT"
+ },
+ "node_modules/@poppinss/colors": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz",
+ "integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^4.1.5"
+ }
+ },
+ "node_modules/@poppinss/dumper": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.7.0.tgz",
+ "integrity": "sha512-0UTYalzk2t6S4rA2uHOz5bSSW2CHdv4vggJI6Alg90yvl0UgXs6XSXpH96OH+bRkX4J/06djv29pqXJ0lq5Kag==",
+ "license": "MIT",
+ "dependencies": {
+ "@poppinss/colors": "^4.1.5",
+ "@sindresorhus/is": "^7.0.2",
+ "supports-color": "^10.0.0"
+ }
+ },
+ "node_modules/@poppinss/exception": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz",
+ "integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==",
+ "license": "MIT"
+ },
+ "node_modules/@puppeteer/browsers": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-3.2.3.tgz",
+ "integrity": "sha512-2Bt3m6dDAJqmZehn0wiXSYyQmuhyiHHZ7FjvrVaS1W2RoFGV6eCK71UvKYkNJjkwC1Q9nobjhvTMhLQztFVINA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "modern-tar": "^0.8.4",
+ "yargs": "^18.0.0"
+ },
+ "bin": {
+ "browsers": "lib/main-cli.js"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ },
+ "peerDependencies": {
+ "proxy-agent": ">=8.0.1",
+ "yauzl": "^2.10.0 || ^3.4.0"
+ },
+ "peerDependenciesMeta": {
+ "proxy-agent": {
+ "optional": true
+ },
+ "yauzl": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rolldown/binding-android-arm-eabi": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.11.tgz",
+ "integrity": "sha512-A5kXfGKvKWWZE0TtPrfsvT+q4Y5d1QG8gGUzpYjGydM+fARM9MuX90PrXYXe0XbsDVgyxxNzHo6giCj90bsFNw==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-android-arm64": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.11.tgz",
+ "integrity": "sha512-z6cTycz+iJ4PVkuL4HHW4DfTfoeU/2nqYYuSOrTmH7yHK5Y0LCOnA03V4ZNxavyVaU1oOqUgIg2klN/s+USGOA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-arm64": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.11.tgz",
+ "integrity": "sha512-jShvqNtP6vDC6/A5JOAzbVV+DkgHqhl/ScVCJEbt+TUY6QYz7YnXcrg3sLtFBniro0f/Ld50ZwCWA6f7KYD1nQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-darwin-x64": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.11.tgz",
+ "integrity": "sha512-f2i2xiNWq1Z1l2++q2fuhZRdLAT3aqxD6vRNm1RAxpUoBcdqNB3C0s1Bt+K+PbEx2F5F4gQp6hqKkphCY/xF9w==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-freebsd-x64": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.11.tgz",
+ "integrity": "sha512-4Ir5FSOKIAMr4r0kExpt1s3bMgzJU3rA45AYOHtQpls0oNeqcYBKrWMlckrYH4KCfGLfkfn1tN1dmZPMVsdXow==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.11.tgz",
+ "integrity": "sha512-/gnRDM+39BROzAN/k1OZjDPnDMcZxB/0EUxKjONO5yVkNEvlsoMDrxGNKgZi/ttFriS2gwlDNzB65pvNbFOXIQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-gnu": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.11.tgz",
+ "integrity": "sha512-PFaK8HwvAHbaKbBcDNQihjMKYvFnA5hiENx/l5tphTDz1E0WFp32l0A7aq7lyUwGsRw/xSrNIy/gIK4thrSCrw==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-arm64-musl": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.11.tgz",
+ "integrity": "sha512-AskzJUIKRLPxkruR1wLKewGbOw+EYfU/9lOrBFj4AFrEA8hPpKFnODWNu2WLaNs0QNkEb9QIJufmVZZIL/bJlg==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-ppc64-gnu": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.11.tgz",
+ "integrity": "sha512-qlUGAheh2yh8afH7QBgx0PrRHN85hKnNd78x8MeMhXivuevgd8vgf6/CstOzmNKY/lLTHvNTrPy98cLnAugzJw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-s390x-gnu": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.11.tgz",
+ "integrity": "sha512-secpEad+0vCbSfn8upFySkDskv+bGPk3THSDS9Y89yc4rb4kzqHp8Dmyd9BkQW4SnhNXBZCl/6CrO//hZahNJQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-gnu": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.11.tgz",
+ "integrity": "sha512-mOVBT3dPpkWm8XBWPmU4bf+U6dYDLeMo/9ojUmis4N0L5uu10qra5vOyngZ7/PSdoE4G9KvRt4bloRxNjLas7A==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-linux-x64-musl": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.11.tgz",
+ "integrity": "sha512-Is78i9A8Ui4SqcxUwFJ9uMmjDn58IbVTjFWYdQestFEgeuEmHMLGNriXnVJKkwG2YiZjw8cP0zCTyDMdDGtOOg==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-openharmony-arm64": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.11.tgz",
+ "integrity": "sha512-dUCXneZ87INUMyQ0D+C0HrEBNUPNXHaPmU5GTjyKTJEiussw9Kaj5Ln8UztPe4epV/ffvgNBEadksdYhmW6xJA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-win32-arm64-msvc": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.11.tgz",
+ "integrity": "sha512-jByxb6qfd+bH1xUd0qnfFnb17i9sWBPY2tOavJ0l3tdr3OTu+Kvtm8cd/JV5nFt657b1VqGltxg9olOEfofXWw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/binding-win32-x64-msvc": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.11.tgz",
+ "integrity": "sha512-/PzKqzAJ03i19oy2ItPvyvaVjOjBCNnfaJs8yvUdGBKmiESgnrJSQ2awd81QzFbbnAmu7YO9ZnJrDCb9VSJPRA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ }
+ },
+ "node_modules/@rolldown/pluginutils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz",
+ "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==",
+ "license": "MIT"
+ },
+ "node_modules/@rollup/plugin-alias": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-6.0.0.tgz",
+ "integrity": "sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "peerDependencies": {
+ "rollup": ">=4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-commonjs": {
+ "version": "29.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.3.tgz",
+ "integrity": "sha512-ZaOxZceP7SOUW7Lqw5IRVweSQYWaeIPnXIGLiB690EBA3FGJTO40EEr2L5yZplJWsgTCogILRSpcAe7+U0Otdg==",
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "commondir": "^1.0.1",
+ "estree-walker": "^2.0.2",
+ "fdir": "^6.2.0",
+ "is-reference": "1.2.1",
+ "magic-string": "^0.30.3",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=16.0.0 || 14 >= 14.17"
+ },
+ "peerDependencies": {
+ "rollup": "^2.68.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-commonjs/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/@rollup/plugin-inject": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz",
+ "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==",
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-inject/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/@rollup/plugin-json": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
+ "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-node-resolve": {
+ "version": "16.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.3.tgz",
+ "integrity": "sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==",
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "@types/resolve": "1.20.2",
+ "deepmerge": "^4.2.2",
+ "is-module": "^1.0.0",
+ "resolve": "^1.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.78.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-replace": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-6.0.3.tgz",
+ "integrity": "sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==",
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "magic-string": "^0.30.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-replace/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/@rollup/plugin-terser": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-1.0.0.tgz",
+ "integrity": "sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==",
+ "license": "MIT",
+ "dependencies": {
+ "serialize-javascript": "^7.0.3",
+ "smob": "^1.0.0",
+ "terser": "^5.17.4"
+ },
+ "engines": {
+ "node": ">=20.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.4.0.tgz",
+ "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.63.5.tgz",
+ "integrity": "sha512-J25QJU+B78T4FhhBsNpLJyVWOi31mwtpcMwywHmOKH65Q9IWGA81gPj+dnwlhU8wktVriYE+tFAaQgrnJRzAZg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.63.5.tgz",
+ "integrity": "sha512-LDopB3zuZM5Ux9TT2luNEBJW/tYbGU2g1d+VpKk6I+gSKDb+/7sYE6M225gRQt4RbMX6MSwMsVR/phdjVUgRLg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.63.5.tgz",
+ "integrity": "sha512-wlJEERGfeuHeBavCL2qVnNacOK43NDoZM4sjkeRPymd04OAE9T1zBqDJgmZ+CIsPTYKwdzpUC8vmOw84dwY4Tg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.63.5.tgz",
+ "integrity": "sha512-4nJJGg5jbo2wwPP4JP+LfEBA3bvP8rU9CLuhp7jWvq9sxEyhjQFTFdrqi+/dHEin/pd8jpT0vcehIpnZtmEdcQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.63.5.tgz",
+ "integrity": "sha512-DrZbyCDF1hneuO6jRbvZ2D7+PIBM6yIwYnJpg2vIk58T+wuFpiaGZrfUr59lDWw45bg+IrpTGLPiNi/Fk4w3Cg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.63.5.tgz",
+ "integrity": "sha512-gqfUVMJMB3mehqywxp6hTBFfgtMQykZY19+cfiaYP0toIJLb/1DZRJHVkQQGP13W4TAwfZDWeg1qBcheTRioXQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.63.5.tgz",
+ "integrity": "sha512-CFmhpvAwzSaWMlN3VN7UtmoTihlZNzoP0juQib5TQRnYUyDV8dXeWOp29sobWAT6gXl/hQgAClLlEiYozQG3OQ==",
+ "cpu": [
+ "arm"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.63.5.tgz",
+ "integrity": "sha512-Uc9H8eXCOayV6JLTH5bXKMId6qbhNHa818/BgYjm4jrlq3vZquC9cqyvHBw17xy5Mnj5f+I3gFK5JcEf3hSqrw==",
+ "cpu": [
+ "arm"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.63.5.tgz",
+ "integrity": "sha512-VcPr/szv/1BFw112Kt//fxulXt/JPqzzidU84iW68L2DdjnOO8QFUv2zTSYBEPHD6movBD4z+bbr5y60GYM7Jw==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.63.5.tgz",
+ "integrity": "sha512-BnxtJ5/91BrIHYIkGrmjz/lbMhqEHt1dPFqIxIFR+jPn0xVc/oUSCtIT089zfp5ufwGDlYz2UC+Fe1SRBpYFbQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.63.5.tgz",
+ "integrity": "sha512-LrYcHZwF+fAMNKHYTOQ5osWM4AZF7YF6D+XtsjDyEvljtt11twc+zHVXBLNEjxVSUnKYsOhvVz4Z213eW02COQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-musl": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.63.5.tgz",
+ "integrity": "sha512-nj7QKQePAAUpCpJHtg0pR0W/b92A9NO17JS3BAQmHDn/yhmkir2p8llrKY9TOhleKIaSzy1JhxS3T9FVld6coA==",
+ "cpu": [
+ "loong64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.63.5.tgz",
+ "integrity": "sha512-5ylkX6dWMeBKge9nTU+Rxfb+ZfaCIJ9lRqIFaK0eAMcWp7OJbYnLveLgXmm0VrvuLKb8qIK+mHyH0qu88RM+iA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-musl": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.63.5.tgz",
+ "integrity": "sha512-oHK4ZHYFDKjZviK34I+NwgfbGxgI7ztrNxj2hPTSSNFgeq1a/lEd7dHV2fdGAuTH4Iym3RHJg+vAbWaWG4B7Zg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.63.5.tgz",
+ "integrity": "sha512-UcetmHZ6XOXuUByiKZyQmb55ZPr0LABr3Ec/HB9wKZn6CEAFWZkE+hsJErJ9hbPBC7nI0dKuELx7CoV6IM7TMg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.63.5.tgz",
+ "integrity": "sha512-C5CmDPQBtvjVo8cgQsBs+w6WB0JLkiixhgi6hVLV11hERWdn/p0XcPU2OUcZzac9BPOFq7SbaHFa8r3SWEysCQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.63.5.tgz",
+ "integrity": "sha512-lHVQHJFKsuuxLMi3MQO9XVL8Tje3JR82CzB+QDKC5NWBcsIWuwsn9uIM5e3lBhI+fF1/s63qnyYqsg65+8rV/w==",
+ "cpu": [
+ "s390x"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.63.5.tgz",
+ "integrity": "sha512-3W9bTFcQNJn71cSJVM9RKIiZOy8DO/XLDii8Uv/Pm6WKqDRj7JV3ZfuXIEfyuy5LXpIzAbB/1M4Ukp9GKNa7nA==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.63.5.tgz",
+ "integrity": "sha512-VDC7rRJlee/scpki96GZ27Omf6yU87s1YXwVTpjE5841faVlDYYT565rgfmoR1U0sqL7z5ivQSDjcsF6VRXyBA==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openbsd-x64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.63.5.tgz",
+ "integrity": "sha512-z86Ok2p4pTdv5xqCKZsTooO7yBEiaJR/HzU3Wx8RmWsPoLppnMKROhJusQob8B3IE1ghC343kUW9rC2r+Wf3ig==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.63.5.tgz",
+ "integrity": "sha512-IzQmj+xXwQFGhMAMKMQVXkMwMZN3TqkJgAE0nSsqvVwWWciP4AIPMmWRqOQ2GfX7TUDZr+xqGFcBS36CRPGw0g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.63.5.tgz",
+ "integrity": "sha512-F6qpTaPc9bwBH85kjy0/BLmLSW1uv7AoOXCoRIkg2arlgCYlWYcAbiMkvZuAcaWk9TpCRG//okznLAqLGshkMw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.63.5.tgz",
+ "integrity": "sha512-igoDsTFhhwECBeGbUuLeIk7t8Y1apa+cs6mDWpx2EZ0ch7oEQgzHbFUXN9euoHekCAQzXdXApAGkV6jznS7tWw==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.63.5.tgz",
+ "integrity": "sha512-U3teMeMbXFmaM5D+OTJpsOXd+wV/qftIeYF9kBKL4v73641qyJmoXFtA28DQLsnmlyayEsTe72xpLHrArq6vHw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.63.5.tgz",
+ "integrity": "sha512-ypfC34F3RKXvCXBglGqGMsUSMKlgwd1HX9AOAlx9RoZZ6GaI42YHVeKpzg3JG+wpBUJYTG+NNZhqbDWL8tBZkw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@simple-git/args-pathspec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@simple-git/args-pathspec/-/args-pathspec-1.0.4.tgz",
+ "integrity": "sha512-EtMX6XjRWSastG2SdkmSQByPtJ9dx/NIjnHbpQPCYt62j4RmSx5rgLTGpw0YCjF5h191gZOmBfheOT23cRSFdw==",
+ "license": "MIT"
+ },
+ "node_modules/@simple-git/argv-parser": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@simple-git/argv-parser/-/argv-parser-1.1.1.tgz",
+ "integrity": "sha512-Q9lBcfQ+VQCpQqGJFHe5yooOS5hGdLFFbJ5R+R5aDsnkPCahtn1hSkMcORX65J2Z5lxSkD0lQorMsncuBQxYUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@simple-git/args-pathspec": "^1.0.3"
+ }
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
+ "integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@sindresorhus/merge-streams": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz",
+ "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@speed-highlight/core": {
+ "version": "1.2.24",
+ "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.24.tgz",
+ "integrity": "sha512-qeW2e1l78afw8VhRPfPQ1Gjj+KU5XFQ/OFV5ti6eTa9bruO7mJyZtA4vw0ofqmA3tKCkROE9xLk3VZoeRc98nw==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz",
+ "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/resolve": {
+ "version": "1.20.2",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
+ "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
+ "license": "MIT"
+ },
+ "node_modules/@unhead/bundler": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@unhead/bundler/-/bundler-3.4.1.tgz",
+ "integrity": "sha512-1RLNvuZYCt6K+oIK7v0mKlbmFbTuNZRgAMrf+GdmiO5xfml2pl/ViZmBrCOxoBtLxCboDZ70hs+F9+z2YWHLuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "magic-string": "^1.3.1",
+ "oxc-walker": "^1.1.1",
+ "unplugin": "^3.3.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ },
+ "peerDependencies": {
+ "@unhead/cli": "^3.4.1",
+ "@vitejs/devtools-kit": "^0.4.1",
+ "esbuild": ">=0.17.0",
+ "lightningcss": ">=1.20.0",
+ "oxc-parser": ">=0.98.0",
+ "rolldown": ">=1.0.0",
+ "unhead": "^3.4.1",
+ "vite": ">=6.4.2",
+ "webpack": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@unhead/cli": {
+ "optional": true
+ },
+ "@vitejs/devtools-kit": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "oxc-parser": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@unhead/vue": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-3.4.1.tgz",
+ "integrity": "sha512-FQLTdsX1+m+a7Z5SzkQde8TR/4QK6p0+NQ6BuO9zbtc5xps2fRy7W+wQ90qn177C2X88aZAPzw29mg6T4VFSdA==",
+ "license": "MIT",
+ "dependencies": {
+ "@unhead/bundler": "3.4.1",
+ "hookable": "^6.1.1",
+ "unhead": "3.4.1",
+ "unplugin": "^3.3.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ },
+ "peerDependencies": {
+ "vite": ">=6.4.2",
+ "vue": ">=3.5.18",
+ "webpack": ">=5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vercel/nft": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-1.11.0.tgz",
+ "integrity": "sha512-m1QFg+U+3yPOnP1xSYJ73UIRxLOXdts1JOhiOiyPYqEsALgrXFFINvgUaD6R6iNvaBFAjHllBCbkfx4FuOdpaA==",
+ "license": "MIT",
+ "dependencies": {
+ "@mapbox/node-pre-gyp": "^2.0.0",
+ "@rollup/pluginutils": "^5.1.3",
+ "acorn": "^8.6.0",
+ "acorn-import-attributes": "^1.9.5",
+ "async-sema": "^3.1.1",
+ "bindings": "^1.4.0",
+ "estree-walker": "2.0.2",
+ "glob": "^13.0.0",
+ "graceful-fs": "^4.2.9",
+ "node-gyp-build": "^4.2.2",
+ "picomatch": "^4.0.4",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "nft": "out/cli.js"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "6.0.9",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.9.tgz",
+ "integrity": "sha512-rD/MORlhaZMlXWW0rEn4FB4wMinWC0z/D7Ye160S5+Rs1mC8ZDAdcDp4SjKfUhG5t8q1ktcPVw4xuTkPRlzrSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@rolldown/pluginutils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue-jsx": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-5.1.6.tgz",
+ "integrity": "sha512-YXvi4as2clxt6DFw5+a0tTA97ntiQXm/raR8ofNj3aNwwdlVGTiG2gp7EvfZW17P50acL/9bP0ccF4XnqNmlgA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.29.0",
+ "@babel/plugin-syntax-typescript": "^7.29.7",
+ "@babel/plugin-transform-typescript": "^7.29.7",
+ "@rolldown/pluginutils": "^1.0.1",
+ "@vue/babel-plugin-jsx": "^2.0.1"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0",
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@volar/language-core": {
+ "version": "2.4.28",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz",
+ "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/source-map": "2.4.28"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "2.4.28",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz",
+ "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/@volar/typescript": {
+ "version": "2.4.28",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz",
+ "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "2.4.28",
+ "path-browserify": "^1.0.1",
+ "vscode-uri": "^3.0.8"
+ }
+ },
+ "node_modules/@vscode/codicons": {
+ "version": "0.0.46-24",
+ "resolved": "https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.46-24.tgz",
+ "integrity": "sha512-KIDWUYxG6eh+DHRg+3G4bS487T+g1ZkLfB4HylOBbCcHsvLdfLMRM/m92DS1Ljhi8nglLr9ucwwWhHTEAC+DpA==",
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/@vue-macros/common": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.1.4.tgz",
+ "integrity": "sha512-/5Fv+6DgIcM9ajY05ZmKBv+LMX1M9A0X+IUwDRVdt67ciw8OV9bvG2r34p3RiEadlsQybjhKPRKNXDC8Bp23cw==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-sfc": "^3.5.22",
+ "ast-kit": "^2.1.2",
+ "local-pkg": "^1.1.2",
+ "magic-string-ast": "^1.0.2",
+ "unplugin-utils": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/vue-macros"
+ },
+ "peerDependencies": {
+ "vue": "^2.7.0 || ^3.2.25"
+ },
+ "peerDependenciesMeta": {
+ "vue": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-helper-vue-transform-on": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-2.0.1.tgz",
+ "integrity": "sha512-uZ66EaFbnnZSYqYEyplWvn46GhZ1KuYSThdT68p+am7MgBNbQ3hphTL9L+xSIsWkdktwhPYLwPgVWqo96jDdRA==",
+ "license": "MIT"
+ },
+ "node_modules/@vue/babel-plugin-jsx": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-2.0.1.tgz",
+ "integrity": "sha512-a8CaLQjD/s4PVdhrLD/zT574ZNPnZBOY+IhdtKWRB4HRZ0I2tXBi5ne7d9eCfaYwp5gU5+4KIyFTV1W1YL9xZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/plugin-syntax-jsx": "^7.27.1",
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.4",
+ "@babel/types": "^7.28.4",
+ "@vue/babel-helper-vue-transform-on": "2.0.1",
+ "@vue/babel-plugin-resolve-type": "2.0.1",
+ "@vue/shared": "^3.5.22"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-plugin-resolve-type": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-2.0.1.tgz",
+ "integrity": "sha512-ybwgIuRGRRBhOU37GImDoWQoz+TlSqap65qVI6iwg/J7FfLTLmMf97TS7xQH9I7Qtr/gp161kYVdhr1ZMraSYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-plugin-utils": "^7.27.1",
+ "@babel/parser": "^7.28.4",
+ "@vue/compiler-sfc": "^3.5.22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.43.tgz",
+ "integrity": "sha512-zdiLhnbe1QQqgDT8xZMpNmyqZ3qlI+/Q/FHQco57Kwl/b05HhCzN6eVGN9QU9rbga4CrS0H5SYY8VGHZCt/1Hg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.8",
+ "@vue/shared": "3.5.43",
+ "entities": "^7.0.1",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.1"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.43.tgz",
+ "integrity": "sha512-PEZoAk3NQmsn/ejMzSOCyTYqwGqczrWm70PuhBKjjv1+TCoQAaO/zOqNwjV+honlNstT5ILxtc+8r8UUfj+iEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-core": "3.5.43",
+ "@vue/shared": "3.5.43"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.43.tgz",
+ "integrity": "sha512-FCbrG3XNCRl+js3huuKx4IVHBLTvMkJhVepjbxSPu1gn4yWLaYtGNQdjJGZaMytXB6qb76qQDDmDSLy/vkmleQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.8",
+ "@vue/compiler-core": "3.5.43",
+ "@vue/compiler-dom": "3.5.43",
+ "@vue/compiler-ssr": "3.5.43",
+ "@vue/shared": "3.5.43",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.21",
+ "postcss": "^8.5.28",
+ "source-map-js": "^1.2.1"
+ }
+ },
+ "node_modules/@vue/compiler-sfc/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.43.tgz",
+ "integrity": "sha512-GF62orf7KiJX9RqrHNGrYBudsQGD0OhJ5nDs90O8UiDuS40+YMYomiXu6w6EuvtXuRDc3MSNis3EaaSKAVSWpg==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.43",
+ "@vue/shared": "3.5.43"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-8.2.1.tgz",
+ "integrity": "sha512-6u4vXBlIBAC1wMplIZgpyPn7uh/s4Bf6F5bMzvLv+EdJ0aHs/+4B7Ygv864EStQSjRbsRzTko/kUG1A1IejQ3A==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-kit": "^8.2.1"
+ }
+ },
+ "node_modules/@vue/devtools-core": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.2.1.tgz",
+ "integrity": "sha512-s/VfAY9oDTb/kFEWmy461jaFde2MIV1RO/gi1vwM+PAZBZ/Pc2Ndu3BNBdZUze8QDUuyYvElbEEGA83syjJfzA==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-kit": "^8.2.1",
+ "@vue/devtools-shared": "^8.2.1"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vue/devtools-kit": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.2.1.tgz",
+ "integrity": "sha512-FIGIuq3AWReEpbAHY/cRGeHDfI0qOb8OCQ3YjbEAX04uaxIDbGc9rhkbVcG7rnfHPXE3RsU5KrWOu9V/okd8AQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/devtools-shared": "^8.2.1",
+ "birpc": "^2.6.1",
+ "hookable": "^5.5.3",
+ "perfect-debounce": "^2.0.0"
+ }
+ },
+ "node_modules/@vue/devtools-kit/node_modules/birpc": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.9.0.tgz",
+ "integrity": "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vue/devtools-kit/node_modules/hookable": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
+ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
+ "license": "MIT"
+ },
+ "node_modules/@vue/devtools-shared": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.2.1.tgz",
+ "integrity": "sha512-Fkac7lUdGReh6pVOi3AYPRGe82LQqRmAfThW7RRligOAP0ZA/Z1z9XLHDM9dv34pV2HRc79DK8uKPeG2fLnA/g==",
+ "license": "MIT"
+ },
+ "node_modules/@vue/language-core": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.3.11.tgz",
+ "integrity": "sha512-QJmpliwAVpC/OxubIByPAhNzsQPRc8/gxlN2qnVzVfIMjMDz/9RnXRFoetjz5yEgXVXyp4LqhXq3V53PjmNzFw==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/language-core": "2.4.28",
+ "@vue/compiler-dom": "^3.5.0",
+ "@vue/shared": "^3.5.0",
+ "alien-signals": "^3.2.1",
+ "muggle-string": "^0.4.1",
+ "path-browserify": "^1.0.1",
+ "picomatch": "^4.0.4"
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.43.tgz",
+ "integrity": "sha512-G/c9GyOZNI2jVaaS6OX1EF1SSFSv7H0ERqNTl4+DTFMlZmB5eVAB53aLQNam/7NL2NPtaDD7RdVrzf8uJzMuOA==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/shared": "3.5.43"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.43.tgz",
+ "integrity": "sha512-hU6U6VnVhBGQDpvlnnDlIB8ZGJBiOcgk2lh/0InltHiz3D8oSkluvuvY+do1G2H3+udeKFsmaBlgVYP7gXQzEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/reactivity": "3.5.43",
+ "@vue/shared": "3.5.43"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.43.tgz",
+ "integrity": "sha512-Bb2Jc0YjjJdMt1SJmb9b2L/IWd3I8lIT9x9eS/xvvP9CiVgna0ffua74xKRmt4/uSJ+0r4iN8ex1jrqkhQGWQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/reactivity": "3.5.43",
+ "@vue/runtime-core": "3.5.43",
+ "@vue/shared": "3.5.43",
+ "csstype": "^3.2.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.43.tgz",
+ "integrity": "sha512-l2Ygjv9NehV94PSBxNWsAHC0j/eIIKbn92mBuWXAPGLnn6HfJ6MH5ubsd+Nk0YoZ5FRuxWI1P2VSoh+dbPQhCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.5.43",
+ "@vue/runtime-dom": "3.5.43",
+ "@vue/shared": "3.5.43"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.43.tgz",
+ "integrity": "sha512-uksS7YGMR5NZyr4JNq0Rp+QyLns0ueaz20KwzIPW9R0LH1Vnt4E+XUM29PNseEbf1www2gOuhuDi5AKOIXag9Q==",
+ "license": "MIT"
+ },
+ "node_modules/abbrev": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz",
+ "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==",
+ "license": "ISC",
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "license": "MIT",
+ "dependencies": {
+ "event-target-shim": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6.5"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz",
+ "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-attributes": {
+ "version": "1.9.5",
+ "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
+ "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.4",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/alien-signals": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.2.1.tgz",
+ "integrity": "sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz",
+ "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/ansis": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.4.0.tgz",
+ "integrity": "sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/archiver": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz",
+ "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "archiver-utils": "^5.0.2",
+ "async": "^3.2.4",
+ "buffer-crc32": "^1.0.0",
+ "readable-stream": "^4.0.0",
+ "readdir-glob": "^1.1.2",
+ "tar-stream": "^3.0.0",
+ "zip-stream": "^6.0.1"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/archiver-utils": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz",
+ "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==",
+ "license": "MIT",
+ "dependencies": {
+ "glob": "^10.0.0",
+ "graceful-fs": "^4.2.0",
+ "is-stream": "^2.0.1",
+ "lazystream": "^1.0.0",
+ "lodash": "^4.17.15",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/archiver-utils/node_modules/brace-expansion": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz",
+ "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/glob": {
+ "version": "10.5.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz",
+ "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/archiver-utils/node_modules/minimatch": {
+ "version": "9.0.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz",
+ "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/archiver-utils/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/ast-kit": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-2.2.0.tgz",
+ "integrity": "sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.28.5",
+ "pathe": "^2.0.3"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ },
+ "node_modules/ast-walker-scope": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/ast-walker-scope/-/ast-walker-scope-0.9.0.tgz",
+ "integrity": "sha512-IJdzo2vLiElBxKzwS36VsCue/62d6IdWjnPB2v3nuPKeWGynp6FF/CYoLa5i/3jXH/z97ZDdsXz6abpgM6w07A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.2",
+ "@babel/types": "^7.29.0",
+ "ast-kit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "license": "MIT"
+ },
+ "node_modules/async-sema": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/async-sema/-/async-sema-3.1.1.tgz",
+ "integrity": "sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==",
+ "license": "MIT"
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.6.1",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.6.1.tgz",
+ "integrity": "sha512-cL1Qz6ADZhcEbny/8HPfe99J6HhNoYtpX2LFLIbhgGE7Q1hlQVkYFdetDN7Id3KiQxhDrHwzlHr/YQCnZ8+xSA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.9",
+ "caniuse-lite": "^1.0.30001810",
+ "fraction.js": "^5.3.4",
+ "picocolors": "^1.1.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/b4a": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.9.0.tgz",
+ "integrity": "sha512-dpfcF9fDNR6++cthXR67iyhgqWy9CBouAvIWhIntzBG6cvK/cnIPiZQjBwi/ZqjjBEDGfoNDtmB0kTjroOJ3pQ==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react-native-b4a": "*"
+ },
+ "peerDependenciesMeta": {
+ "react-native-b4a": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+ "license": "MIT",
+ "engines": {
+ "node": "18 || 20 || >=22"
+ }
+ },
+ "node_modules/bare-events": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.9.2.tgz",
+ "integrity": "sha512-AIPKioV7/Y/8KfZ3AAhjPJxLLbY49S64Ym5DakZlUg75qQiTgUq9hEJoEwa4eUezPUlXRy/i5NpsKvo9jgKmoA==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "bare-abort-controller": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-fs": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.8.1.tgz",
+ "integrity": "sha512-N1nnXdHZAOSstz0XiHikGS4HGMH4CnSwhqWdGQQMqqdvp4Jybm9sE3R1WVnpWVd4SFkc8ryPDBLViNLwiEqECg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.5.4",
+ "bare-path": "^3.0.0",
+ "bare-stream": "^2.6.4",
+ "bare-url": "^2.2.2",
+ "fast-fifo": "^1.3.2"
+ },
+ "engines": {
+ "bare": ">=1.28.0"
+ },
+ "peerDependencies": {
+ "bare-buffer": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-buffer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-path": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.1.2.tgz",
+ "integrity": "sha512-ZyKbsuuqK6Ag0K8pX6V5Txq6XeJRvY+wXucnFGRjiyVYP9YWDpIQugk/b+enRYrEYBJaqLzghRQpXPMR7341Nw==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/bare-stream": {
+ "version": "2.13.4",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.13.4.tgz",
+ "integrity": "sha512-PcrQ8lVLbiJscNm1Kez+Yp4Gy4AHGcN1lzwjvf5NybWen7VvEgUfyfnXYJ2zNqWnzOfCb1Abq6lH8ti0syQszA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "b4a": "^1.8.1",
+ "streamx": "^2.25.0",
+ "teex": "^1.0.1"
+ },
+ "peerDependencies": {
+ "bare-abort-controller": "*",
+ "bare-buffer": "*",
+ "bare-events": "*"
+ },
+ "peerDependenciesMeta": {
+ "bare-abort-controller": {
+ "optional": true
+ },
+ "bare-buffer": {
+ "optional": true
+ },
+ "bare-events": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/bare-url": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.5.4.tgz",
+ "integrity": "sha512-Gxa7UVWBr0/edU1b+TJhn/AZvMQUj9OGspvYsaTYQrAbZA4BOTZGL3LiZxvD+CeMlDH4juwD84+eTAp/bLYW5g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-path": "^3.0.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.11.26",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.26.tgz",
+ "integrity": "sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/birpc": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/birpc/-/birpc-4.2.0.tgz",
+ "integrity": "sha512-KxgKcZPfrtzJDDALHPguGpGJUrzdgpymyiQQgzFjWreHMOpWrnFNVREr5J48x2DBh8ZVioscrV1SBkDipGiX+Q==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "license": "ISC"
+ },
+ "node_modules/brace-expansion": {
+ "version": "5.0.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz",
+ "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.29.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.1.tgz",
+ "integrity": "sha512-AUdjuRyCNGUYtqpqfTmWyM4fXay8yIQhmLnvYe/THMGfT9B/34X7xQd3ifKxwyNPPpowVBjLb+64BN9Rn1mizw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.11.25",
+ "caniuse-lite": "^1.0.30001810",
+ "electron-to-chromium": "^1.5.438",
+ "node-releases": "^2.0.57",
+ "update-browserslist-db": "^1.3.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz",
+ "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/bundle-name": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.1.tgz",
+ "integrity": "sha512-DdH81/zPLVS11EUgWq3tEu/xn+EzljlMYooDNdzWEnFha3R3NBMpMV1UqYIpjYHV/SgpFKMIX1Oh7o06SjM/oA==",
+ "license": "MIT",
+ "dependencies": {
+ "run-applescript": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/c12": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/c12/-/c12-3.3.4.tgz",
+ "integrity": "sha512-cM0ApFQSBXuourJejzwv/AuPRvAxordTyParRVcHjjtXirtkzM0uK2L9TTn9s0cXZbG7E55jCivRQzoxYmRAlA==",
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^5.0.0",
+ "confbox": "^0.2.4",
+ "defu": "^6.1.6",
+ "dotenv": "^17.3.1",
+ "exsolve": "^1.0.8",
+ "giget": "^3.2.0",
+ "jiti": "^2.6.1",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.1.0",
+ "pkg-types": "^2.3.0",
+ "rc9": "^3.0.1"
+ },
+ "peerDependencies": {
+ "magicast": "*"
+ },
+ "peerDependenciesMeta": {
+ "magicast": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/caniuse-api": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-4.0.0.tgz",
+ "integrity": "sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001812",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001812.tgz",
+ "integrity": "sha512-qN+QNNBr93TCmFrmte0bBCjSDMuRvt78VlHT99qIGPszm4QsqCX8lnyWUFkHi8B7ZBAPq8SH+UqyXNy/odMdng==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chokidar": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz",
+ "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==",
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/chromium-bidi": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-17.0.2.tgz",
+ "integrity": "sha512-5v9GQFhTktFvotn/OFNJBmKLKRAb6n9r0bVCwf7sHgWc3/JryK0bj1nn93L3pHFrfgcsu6Be6EWsDi+1XHTGDg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "mitt": "^3.0.1",
+ "zod": "^3.24.1"
+ },
+ "engines": {
+ "node": ">=20.19.0 <22.0.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "devtools-protocol": "*"
+ }
+ },
+ "node_modules/citty": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/citty/-/citty-0.2.2.tgz",
+ "integrity": "sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==",
+ "license": "MIT"
+ },
+ "node_modules/cliui": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz",
+ "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^7.2.0",
+ "strip-ansi": "^7.1.0",
+ "wrap-ansi": "^9.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cluster-key-slot": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz",
+ "integrity": "sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "license": "MIT"
+ },
+ "node_modules/compatx": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/compatx/-/compatx-0.2.0.tgz",
+ "integrity": "sha512-6gLRNt4ygsi5NyMVhceOCFv14CIdDFN7fQjX1U4+47qVE/+kjPoXMK65KWK+dWxmFzMTuKazoQ9sch6pM0p5oA==",
+ "license": "MIT"
+ },
+ "node_modules/compress-commons": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
+ "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==",
+ "license": "MIT",
+ "dependencies": {
+ "crc-32": "^1.2.0",
+ "crc32-stream": "^6.0.0",
+ "is-stream": "^2.0.1",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/compress-commons/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/confbox": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz",
+ "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==",
+ "license": "MIT"
+ },
+ "node_modules/consola": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz",
+ "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "license": "MIT"
+ },
+ "node_modules/cookie-es": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz",
+ "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==",
+ "license": "MIT"
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "license": "MIT"
+ },
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/crc32-stream": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz",
+ "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==",
+ "license": "MIT",
+ "dependencies": {
+ "crc-32": "^1.2.0",
+ "readable-stream": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/croner": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/croner/-/croner-10.0.1.tgz",
+ "integrity": "sha512-ixNtAJndqh173VQ4KodSdJEI6nuioBWI0V1ITNKhZZsO0pEMoDxz539T4FTTbSZ/xIOSuDnzxLVRqBVSvPNE2g==",
+ "funding": [
+ {
+ "type": "other",
+ "url": "https://paypal.me/hexagonpp"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/hexagon"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crossws": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz",
+ "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==",
+ "license": "MIT",
+ "dependencies": {
+ "uncrypto": "^0.1.3"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-6.0.0.tgz",
+ "integrity": "sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^7.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.2.2",
+ "nth-check": "^2.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz",
+ "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.27.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-7.0.0.tgz",
+ "integrity": "sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "8.0.10",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-8.0.10.tgz",
+ "integrity": "sha512-aMlBsvQW5g1b8vfPnkuy5Bk7g/jyRsf5eMpbhe4nKnePx+n2IrC0L6dFqnd3r4/OGNIYGEHfAt09oywi84fWKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-preset-default": "^8.0.10",
+ "lilconfig": "^3.1.3"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/cssnano"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "8.0.10",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-8.0.10.tgz",
+ "integrity": "sha512-34uq3q7OXgmfxXn+MHTgIqysCLH7zRZZUMAwrBiO09F5/KLVD33iDFNRRUNYStKdj0SaAIUVr6Akao2Fpp0aVA==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "cssnano-utils": "^6.0.4",
+ "postcss-calc": "^10.1.1",
+ "postcss-colormin": "^8.0.5",
+ "postcss-convert-values": "^8.0.4",
+ "postcss-discard-comments": "^8.0.4",
+ "postcss-discard-duplicates": "^8.0.4",
+ "postcss-discard-empty": "^8.0.5",
+ "postcss-discard-overridden": "^8.0.4",
+ "postcss-merge-longhand": "^8.0.4",
+ "postcss-merge-rules": "^8.0.5",
+ "postcss-minify-font-values": "^8.0.4",
+ "postcss-minify-gradients": "^8.0.6",
+ "postcss-minify-params": "^8.0.4",
+ "postcss-minify-selectors": "^8.0.5",
+ "postcss-normalize-charset": "^8.0.5",
+ "postcss-normalize-display-values": "^8.0.4",
+ "postcss-normalize-positions": "^8.0.4",
+ "postcss-normalize-repeat-style": "^8.0.4",
+ "postcss-normalize-string": "^8.0.4",
+ "postcss-normalize-timing-functions": "^8.0.4",
+ "postcss-normalize-unicode": "^8.0.4",
+ "postcss-normalize-url": "^8.0.4",
+ "postcss-normalize-whitespace": "^8.0.5",
+ "postcss-ordered-values": "^8.0.5",
+ "postcss-reduce-initial": "^8.0.5",
+ "postcss-reduce-transforms": "^8.0.4",
+ "postcss-svgo": "^8.0.6",
+ "postcss-unique-selectors": "^8.0.4"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/cssnano-utils": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-6.0.4.tgz",
+ "integrity": "sha512-j1z2mW4MqtcGM4I8TxXAdOXUifp1DZ5/bZnyYnCpHlzQ/ilCj2voLxE0aqEKnBDA5hF6HahSY13JU8kyZ1s8Mg==",
+ "license": "MIT",
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/csstype": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
+ "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
+ "license": "MIT"
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-quadtree": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/db0": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.4.tgz",
+ "integrity": "sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@electric-sql/pglite": "*",
+ "@libsql/client": "*",
+ "better-sqlite3": "*",
+ "drizzle-orm": "*",
+ "mysql2": "*",
+ "sqlite3": "*"
+ },
+ "peerDependenciesMeta": {
+ "@electric-sql/pglite": {
+ "optional": true
+ },
+ "@libsql/client": {
+ "optional": true
+ },
+ "better-sqlite3": {
+ "optional": true
+ },
+ "drizzle-orm": {
+ "optional": true
+ },
+ "mysql2": {
+ "optional": true
+ },
+ "sqlite3": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-browser": {
+ "version": "5.5.1",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz",
+ "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==",
+ "license": "MIT",
+ "dependencies": {
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz",
+ "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defu": {
+ "version": "6.1.7",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz",
+ "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==",
+ "license": "MIT"
+ },
+ "node_modules/denque": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
+ "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destr": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz",
+ "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==",
+ "license": "MIT"
+ },
+ "node_modules/detect-libc": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+ "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devalue": {
+ "version": "5.9.4",
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.4.tgz",
+ "integrity": "sha512-sPAT4pztbu6586/hrhOnMKS17IJrvg12mXiSPSS3W5qDeN2RGgvZ0diZCm31dBbnevfVmujNO3IM2wrS4Y2Rhg==",
+ "license": "MIT"
+ },
+ "node_modules/devtools-protocol": {
+ "version": "0.0.1687809",
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1687809.tgz",
+ "integrity": "sha512-t7kSb+UKYdyxcmqy98U2P86ne6rCve3DIJ4+lp54i/hhClgFuG35JrLj23rO14Jw3sWDsp7i+22QhNU0+/qk8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/diff": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz",
+ "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz",
+ "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-10.2.0.tgz",
+ "integrity": "sha512-BTJ9aZYL3vCfZlZOBLy9v8TUqWGQ0pzFnygKwFZt5udj6viBoFIBviKPUoZLDCPn1FoXffv6McQFDenrm5Krfw==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "17.4.2",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz",
+ "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "license": "MIT"
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "license": "MIT"
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.439",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.439.tgz",
+ "integrity": "sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q==",
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/entities": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz",
+ "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-stack-parser-es": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-2.0.1.tgz",
+ "integrity": "sha512-J36ntO+rMQVRuR/umlmxmfLi4TpWwtmTnHoJoXTiC2xDNazs0VDPKcX6pbhZMDd2HFtH9isMBJXMdbki+A++Pg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/errx": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/errx/-/errx-0.1.2.tgz",
+ "integrity": "sha512-chfpPHmCerdo/rXr/nNvPZRkV4WwDRwzwnsJ0Uzz3tVi8Z41tDctRjduYy1138ii77AFlts1qvWtX3g/Acg91Q==",
+ "license": "MIT"
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz",
+ "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==",
+ "license": "MIT"
+ },
+ "node_modules/esbuild": {
+ "version": "0.28.2",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz",
+ "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.28.2",
+ "@esbuild/android-arm": "0.28.2",
+ "@esbuild/android-arm64": "0.28.2",
+ "@esbuild/android-x64": "0.28.2",
+ "@esbuild/darwin-arm64": "0.28.2",
+ "@esbuild/darwin-x64": "0.28.2",
+ "@esbuild/freebsd-arm64": "0.28.2",
+ "@esbuild/freebsd-x64": "0.28.2",
+ "@esbuild/linux-arm": "0.28.2",
+ "@esbuild/linux-arm64": "0.28.2",
+ "@esbuild/linux-ia32": "0.28.2",
+ "@esbuild/linux-loong64": "0.28.2",
+ "@esbuild/linux-mips64el": "0.28.2",
+ "@esbuild/linux-ppc64": "0.28.2",
+ "@esbuild/linux-riscv64": "0.28.2",
+ "@esbuild/linux-s390x": "0.28.2",
+ "@esbuild/linux-x64": "0.28.2",
+ "@esbuild/netbsd-arm64": "0.28.2",
+ "@esbuild/netbsd-x64": "0.28.2",
+ "@esbuild/openbsd-arm64": "0.28.2",
+ "@esbuild/openbsd-x64": "0.28.2",
+ "@esbuild/openharmony-arm64": "0.28.2",
+ "@esbuild/sunos-x64": "0.28.2",
+ "@esbuild/win32-arm64": "0.28.2",
+ "@esbuild/win32-ia32": "0.28.2",
+ "@esbuild/win32-x64": "0.28.2"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "license": "MIT"
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/events-universal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz",
+ "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bare-events": "^2.7.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/exsolve": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.1.1.tgz",
+ "integrity": "sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-npm-meta": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/fast-npm-meta/-/fast-npm-meta-2.2.0.tgz",
+ "integrity": "sha512-99jPl8JkCSCa4VlboNU1XuL98ijm74Pm9CGo6H4BoMVoVh1uhguQcvwLgXDT8Vkl2qj/UEQ0J9gD8beHjTFk1w==",
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^7.0.0"
+ },
+ "bin": {
+ "fast-npm-meta": "dist/cli.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/fast-npm-meta/node_modules/cac": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz",
+ "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.19.0"
+ }
+ },
+ "node_modules/fast-string-truncated-width": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz",
+ "integrity": "sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==",
+ "license": "MIT"
+ },
+ "node_modules/fast-string-width": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/fast-string-width/-/fast-string-width-3.0.2.tgz",
+ "integrity": "sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-string-truncated-width": "^3.0.2"
+ }
+ },
+ "node_modules/fast-wrap-ansi": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz",
+ "integrity": "sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-string-width": "^3.0.2"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz",
+ "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==",
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fdir": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "picomatch": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "picomatch": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "license": "MIT"
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fnv1a-64": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/fnv1a-64/-/fnv1a-64-0.1.2.tgz",
+ "integrity": "sha512-mJbcILTPybAR1jdOwt/lVv8N2cffeJFFP+gVbSAwLEx1ujXH27RpPd8Rokec/KX9c76UYIB6Co+H4lQzxPnJfA==",
+ "license": "MIT"
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz",
+ "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/fuse.js": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.5.0.tgz",
+ "integrity": "sha512-sQtrEfA+ez/3G0cCZecF70oqpCRttCexYUG4mUrtWL49ULUzUyxokt5kyqwtKzj1270RaKih+hcP3qLcumccow==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/krisk"
+ }
+ },
+ "node_modules/fzf": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fzf/-/fzf-0.5.2.tgz",
+ "integrity": "sha512-Tt4kuxLXFKHy8KT40zwsUPUkg1CrsgY25FxA2U/j/0WgEDCk3ddc/zLTCCcbSHX9FcKtLuVaDGtGE/STWC+j3Q==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/generic-names": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-4.0.0.tgz",
+ "integrity": "sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^3.2.0"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-east-asian-width": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz",
+ "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-port-please": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.2.0.tgz",
+ "integrity": "sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==",
+ "license": "MIT"
+ },
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/giget": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/giget/-/giget-3.3.1.tgz",
+ "integrity": "sha512-r+mvuDjrjMpsdw46Kmeydb8bdHm7wOKw8wNBtTndkjbPjgAp5oUJUxRE76wZFknxIPokfWvep2qSXK37aXE6zg==",
+ "license": "MIT",
+ "bin": {
+ "giget": "dist/cli.mjs"
+ }
+ },
+ "node_modules/glob": {
+ "version": "13.0.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "minimatch": "^10.2.2",
+ "minipass": "^7.1.3",
+ "path-scurry": "^2.0.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/global-directory": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz",
+ "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ini": "4.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globby": {
+ "version": "16.2.4",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-16.2.4.tgz",
+ "integrity": "sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==",
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/merge-streams": "^4.0.0",
+ "fast-glob": "^3.3.3",
+ "ignore": "^7.0.5",
+ "is-path-inside": "^4.0.0",
+ "micromatch": "^4.0.8",
+ "slash": "^5.1.0",
+ "unicorn-magic": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/gzip-size": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-7.0.0.tgz",
+ "integrity": "sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==",
+ "license": "MIT",
+ "dependencies": {
+ "duplexer": "^0.1.2"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/h3": {
+ "version": "1.15.11",
+ "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz",
+ "integrity": "sha512-L3THSe2MPeBwgIZVSH5zLdBBU90TOxarvhK9d04IDY2AmVS8j2Jz2LIWtwsGOU3lu2I5jCN7FNvVfY2+XyF+mg==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie-es": "^1.2.3",
+ "crossws": "^0.3.5",
+ "defu": "^6.1.6",
+ "destr": "^2.0.5",
+ "iron-webcrypto": "^1.2.1",
+ "node-mock-http": "^1.0.4",
+ "radix3": "^1.1.2",
+ "ufo": "^1.6.3",
+ "uncrypto": "^0.1.3"
+ }
+ },
+ "node_modules/h3/node_modules/cookie-es": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.3.tgz",
+ "integrity": "sha512-lXVyvUvrNXblMqzIRrxHb57UUVmqsSWlxqt3XIjCkUP0wDAf6uicO6KMbEgYrMNtEvWgWHwe42CKxPu9MYAnWw==",
+ "license": "MIT"
+ },
+ "node_modules/hasown": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz",
+ "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hookable": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.2.tgz",
+ "integrity": "sha512-+abwxtiEA52GCVIsQqut3S/uKTbUwYIp4Pe/vv+6py5XiXBCqMZHg6pA6Y5qhgLSEys0/cYuPbO0z1QFj5ZCmg==",
+ "license": "MIT"
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~2.0.0",
+ "inherits": "~2.0.4",
+ "setprototypeof": "~1.2.0",
+ "statuses": "~2.0.2",
+ "toidentifier": "~1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/http-shutdown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz",
+ "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "^7.1.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/httpxy": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/httpxy/-/httpxy-0.5.5.tgz",
+ "integrity": "sha512-uDjmnPyp1q4Sgzf3w+J/Fc6UqcCEj0x4Wjp7OqK5dGhNeDgpyrAmnS6ey8QWrX3SWDon2DMKf9sBa5X9+CVyMA==",
+ "license": "MIT"
+ },
+ "node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "7.0.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.10.tgz",
+ "integrity": "sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-meta": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/image-meta/-/image-meta-0.2.2.tgz",
+ "integrity": "sha512-3MOLanc3sb3LNGWQl1RlQlNWURE5g32aUphrDyFeCsxBTk08iE3VNe4CwsUZ0Qs1X+EfX0+r29Sxdpza4B+yRA==",
+ "license": "MIT"
+ },
+ "node_modules/impound": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/impound/-/impound-1.2.0.tgz",
+ "integrity": "sha512-hbFh2WURN+XQ364SbblzubhEEj/B3qZCe80l/EHXPWM6/kZP2mvOllxwRBBWNxe4gLbqXZL0fxOZwoDCSlJZQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.31",
+ "es-module-lexer": "^2.0.0",
+ "pathe": "^2.0.3",
+ "unplugin": "^3.0.0",
+ "unplugin-utils": "^0.3.1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/ini": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz",
+ "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==",
+ "license": "ISC",
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/ioredis": {
+ "version": "5.11.1",
+ "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.11.1.tgz",
+ "integrity": "sha512-ehuGcf94bQXhfagULNXrJdfnWO38v070jxSx/qE87Kjzmu2fU7ro5EFAb+OPituLqgfyuQaym5DlrNydW2sJ9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@ioredis/commands": "1.10.0",
+ "cluster-key-slot": "1.1.1",
+ "debug": "4.4.3",
+ "denque": "2.1.0",
+ "redis-errors": "1.2.0",
+ "redis-parser": "3.0.0",
+ "standard-as-callback": "2.1.0"
+ },
+ "engines": {
+ "node": ">=12.22.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ioredis"
+ }
+ },
+ "node_modules/iron-webcrypto": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
+ "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/brc-dd"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.17.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.17.0.tgz",
+ "integrity": "sha512-J/vG0zBCbIKOQFfufSwyXdMrsohyJIUNkrnmo6WZGzoM7tr/lsbfW5b2BvisL6zsyMzK9UxV9L6c7AoFbyXHOA==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-in-ssh": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz",
+ "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-1.0.1.tgz",
+ "integrity": "sha512-li88H4QGRoNMX27jEmY8nR515oJVspAgC/WFMlhHfFV8RJ4QyGpHhXnwAe9gH5RIgKmdYRUmrOhQobcgEjIdSw==",
+ "license": "MIT",
+ "dependencies": {
+ "global-directory": "^4.0.1",
+ "is-path-inside": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+ "license": "MIT"
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-4.0.0.tgz",
+ "integrity": "sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-reference": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
+ "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz",
+ "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
+ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz",
+ "integrity": "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz",
+ "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==",
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/klona": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/knitwork": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/knitwork/-/knitwork-1.3.0.tgz",
+ "integrity": "sha512-4LqMNoONzR43B1W0ek0fhXMsDNW/zxa1NdFAVMY+k28pgZLovR4G3PB5MrpTxCy1QaZCqNoiaKPr5w5qZHfSNw==",
+ "license": "MIT"
+ },
+ "node_modules/launch-editor": {
+ "version": "2.14.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.14.1.tgz",
+ "integrity": "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==",
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.1.1",
+ "shell-quote": "^1.8.4"
+ }
+ },
+ "node_modules/lazystream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz",
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.6.3"
+ }
+ },
+ "node_modules/lazystream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/lazystream/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/lazystream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/lightningcss": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz",
+ "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==",
+ "license": "MPL-2.0",
+ "dependencies": {
+ "detect-libc": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "lightningcss-android-arm64": "1.33.0",
+ "lightningcss-darwin-arm64": "1.33.0",
+ "lightningcss-darwin-x64": "1.33.0",
+ "lightningcss-freebsd-x64": "1.33.0",
+ "lightningcss-linux-arm-gnueabihf": "1.33.0",
+ "lightningcss-linux-arm64-gnu": "1.33.0",
+ "lightningcss-linux-arm64-musl": "1.33.0",
+ "lightningcss-linux-x64-gnu": "1.33.0",
+ "lightningcss-linux-x64-musl": "1.33.0",
+ "lightningcss-win32-arm64-msvc": "1.33.0",
+ "lightningcss-win32-x64-msvc": "1.33.0"
+ }
+ },
+ "node_modules/lightningcss-android-arm64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz",
+ "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-arm64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz",
+ "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-darwin-x64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz",
+ "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-freebsd-x64": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz",
+ "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm-gnueabihf": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz",
+ "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-gnu": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz",
+ "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-arm64-musl": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz",
+ "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-gnu": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz",
+ "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "glibc"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-linux-x64-musl": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz",
+ "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==",
+ "cpu": [
+ "x64"
+ ],
+ "libc": [
+ "musl"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-arm64-msvc": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz",
+ "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lightningcss-win32-x64-msvc": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz",
+ "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MPL-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/listhen": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.10.1.tgz",
+ "integrity": "sha512-6nt/86SkqUQSLW1ofz8MxC6RhRMqOl3ONISe6qqvJ3xj09aJWQx6DhgSZpugs3PX4PXdOas/WD6A9jx6J2N19A==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/watcher-wasm": "^2.5.6",
+ "citty": "^0.2.2",
+ "consola": "^3.4.2",
+ "crossws": "^0.4.10",
+ "defu": "^6.1.7",
+ "get-port-please": "^3.2.0",
+ "h3": "^1.15.11",
+ "http-shutdown": "^1.2.2",
+ "jiti": "^2.7.0",
+ "node-forge": "^1.4.0",
+ "pathe": "^2.0.3",
+ "std-env": "^4.2.0",
+ "tinyclip": "^0.1.15",
+ "ufo": "^1.6.4",
+ "untun": "^0.2.2",
+ "uqr": "^0.1.3"
+ },
+ "bin": {
+ "listen": "bin/listhen.mjs",
+ "listhen": "bin/listhen.mjs"
+ },
+ "peerDependencies": {
+ "@parcel/watcher": "^2.5.6"
+ },
+ "peerDependenciesMeta": {
+ "@parcel/watcher": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/listhen/node_modules/crossws": {
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.4.12.tgz",
+ "integrity": "sha512-aypfsr6t0uNvkqaZc6zvBfXzC6pLI0/sIulpkV6RwCVtZqG5ebBzv4weImKK0VNCj91Wl9F5j7p5WU4MNrybng==",
+ "license": "MIT",
+ "peerDependencies": {
+ "srvx": ">=0.11.5"
+ },
+ "peerDependenciesMeta": {
+ "srvx": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
+ "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/local-pkg": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.2.1.tgz",
+ "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "mlly": "^1.7.4",
+ "pkg-types": "^2.3.0",
+ "quansync": "^0.2.11"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
+ "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.2.tgz",
+ "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.6.0"
+ }
+ },
+ "node_modules/magic-string-ast": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-1.0.3.tgz",
+ "integrity": "sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==",
+ "license": "MIT",
+ "dependencies": {
+ "magic-string": "^0.30.19"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ },
+ "node_modules/magic-string-ast/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/magicast": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.5.tgz",
+ "integrity": "sha512-UicdXN8zQ3JHlxVq+28afMXPr1z7WNY6+7EJnzTdQWkTAlMLF5fNCCKxJHBQwGaNGR11581EiQmQzx73+MvszA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.29.7",
+ "@babel/types": "^7.29.7",
+ "source-map-js": "^1.2.1"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.27.1",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz",
+ "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
+ "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/mime": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-4.1.0.tgz",
+ "integrity": "sha512-X5ju04+cAzsojXKes0B/S4tcYtFAJ6tTMuSPBEn9CPGlrWr8Fiw7qYeLT0XyH80HSoAoqWCaz+MWKh22P7G1cw==",
+ "funding": [
+ "https://github.com/sponsors/broofa"
+ ],
+ "license": "MIT",
+ "bin": {
+ "mime": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.54.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "^1.54.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "10.2.6",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz",
+ "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.8"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mlly": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz",
+ "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.16.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^1.3.1",
+ "ufo": "^1.6.3"
+ }
+ },
+ "node_modules/mlly/node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "license": "MIT"
+ },
+ "node_modules/mlly/node_modules/pkg-types": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz",
+ "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.4",
+ "pathe": "^2.0.1"
+ }
+ },
+ "node_modules/mocked-exports": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/mocked-exports/-/mocked-exports-0.1.1.tgz",
+ "integrity": "sha512-aF7yRQr/Q0O2/4pIXm6PZ5G+jAd7QS4Yu8m+WEeEHGnbo+7mE36CbLSDQiXYV8bVL3NfmdeqPJct0tUlnjVSnA==",
+ "license": "MIT"
+ },
+ "node_modules/modern-tar": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.8.5.tgz",
+ "integrity": "sha512-snEhs+6G5Tjd4I7tLCDOaoln2RgE0bD19RzEKgvgK2hZ5VKy3MpLhLTZ2fWpXSTg4K2cyPwp+VHATFJhxfnOeA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz",
+ "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/muggle-string": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
+ "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.19",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz",
+ "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nanotar": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/nanotar/-/nanotar-0.3.0.tgz",
+ "integrity": "sha512-Kv2JYYiCzt16Kt5QwAc9BFG89xfPNBx+oQL4GQXD9nLqPkZBiNaqaCWtwnbk/q7UVsTYevvM1b0UF8zmEI4pCg==",
+ "license": "MIT"
+ },
+ "node_modules/nitropack": {
+ "version": "2.13.4",
+ "resolved": "https://registry.npmjs.org/nitropack/-/nitropack-2.13.4.tgz",
+ "integrity": "sha512-tX7bT6zxNeMwkc6hxHiZeUoTOjVrcjoh1Z3cmxOlodIqjl4HISgqfGOmkWSayky3Nv9Z5+KQH52F8nmXJY5AAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@cloudflare/kv-asset-handler": "^0.4.2",
+ "@rollup/plugin-alias": "^6.0.0",
+ "@rollup/plugin-commonjs": "^29.0.2",
+ "@rollup/plugin-inject": "^5.0.5",
+ "@rollup/plugin-json": "^6.1.0",
+ "@rollup/plugin-node-resolve": "^16.0.3",
+ "@rollup/plugin-replace": "^6.0.3",
+ "@rollup/plugin-terser": "^1.0.0",
+ "@vercel/nft": "^1.5.0",
+ "archiver": "^7.0.1",
+ "c12": "^3.3.4",
+ "chokidar": "^5.0.0",
+ "citty": "^0.2.2",
+ "compatx": "^0.2.0",
+ "confbox": "^0.2.4",
+ "consola": "^3.4.2",
+ "cookie-es": "^2.0.1",
+ "croner": "^10.0.1",
+ "crossws": "^0.3.5",
+ "db0": "^0.3.4",
+ "defu": "^6.1.7",
+ "destr": "^2.0.5",
+ "dot-prop": "^10.1.0",
+ "esbuild": "^0.28.0",
+ "escape-string-regexp": "^5.0.0",
+ "etag": "^1.8.1",
+ "exsolve": "^1.0.8",
+ "globby": "^16.2.0",
+ "gzip-size": "^7.0.0",
+ "h3": "^1.15.11",
+ "hookable": "^5.5.3",
+ "httpxy": "^0.5.1",
+ "ioredis": "^5.10.1",
+ "jiti": "^2.6.1",
+ "klona": "^2.0.6",
+ "knitwork": "^1.3.0",
+ "listhen": "^1.9.1",
+ "magic-string": "^0.30.21",
+ "magicast": "^0.5.2",
+ "mime": "^4.1.0",
+ "mlly": "^1.8.2",
+ "node-fetch-native": "^1.6.7",
+ "node-mock-http": "^1.0.4",
+ "ofetch": "^1.5.1",
+ "ohash": "^2.0.11",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.1.0",
+ "pkg-types": "^2.3.1",
+ "pretty-bytes": "^7.1.0",
+ "radix3": "^1.1.2",
+ "rollup": "^4.60.2",
+ "rollup-plugin-visualizer": "^7.0.1",
+ "scule": "^1.3.0",
+ "semver": "^7.7.4",
+ "serve-placeholder": "^2.0.2",
+ "serve-static": "^2.2.1",
+ "source-map": "^0.7.6",
+ "std-env": "^4.1.0",
+ "ufo": "^1.6.4",
+ "ultrahtml": "^1.6.0",
+ "uncrypto": "^0.1.3",
+ "unctx": "^2.5.0",
+ "unenv": "2.0.0-rc.24",
+ "unimport": "^6.2.0",
+ "unplugin-utils": "^0.3.1",
+ "unstorage": "^1.17.5",
+ "untyped": "^2.0.0",
+ "unwasm": "^0.5.3",
+ "youch": "^4.1.1",
+ "youch-core": "^0.3.3"
+ },
+ "bin": {
+ "nitro": "dist/cli/index.mjs",
+ "nitropack": "dist/cli/index.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "xml2js": "^0.6.2"
+ },
+ "peerDependenciesMeta": {
+ "xml2js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nitropack/node_modules/cookie-es": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.1.tgz",
+ "integrity": "sha512-aVf4A4hI2w70LnF7GG+7xDQUkliwiXWXFvTjkip4+b64ygDQ2sJPRSKFDHbxn8o0xu9QzPkMuuiWIXyFSE2slA==",
+ "license": "MIT"
+ },
+ "node_modules/nitropack/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/nitropack/node_modules/hookable": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
+ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
+ "license": "MIT"
+ },
+ "node_modules/nitropack/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/nitropack/node_modules/unctx": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/unctx/-/unctx-2.5.0.tgz",
+ "integrity": "sha512-p+Rz9x0R7X+CYDkT+Xg8/GhpcShTlU8n+cf9OtOEf7zEQsNcCZO1dPKNRDqvUTaq+P32PMMkxWHwfrxkqfqAYg==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.21",
+ "unplugin": "^2.3.11"
+ }
+ },
+ "node_modules/nitropack/node_modules/unplugin": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz",
+ "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "acorn": "^8.15.0",
+ "picomatch": "^4.0.3",
+ "webpack-virtual-modules": "^0.6.2"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch-native": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz",
+ "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==",
+ "license": "MIT"
+ },
+ "node_modules/node-forge": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
+ "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==",
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.8.4",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
+ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
+ "license": "MIT",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/node-mock-http": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.5.tgz",
+ "integrity": "sha512-KQyt/wLjG3TAc7DOUhpqWzgd4ERxR80JOlTK5VE5R1S12IaPVN5qkj4klBce9HPG1Njuup4Sb5bljaT34lIyjw==",
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.57",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz",
+ "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/nopt": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz",
+ "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==",
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "^3.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/nostics": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/nostics/-/nostics-1.3.0.tgz",
+ "integrity": "sha512-wzRsrJwNlFbqIRQt8aCeL2WE8USip/uuvGSOZV1D02CxX8ABTMbw8IywKjH7yWHETMXbWJI4OBpihg9rmz2Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nuxt": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/nuxt/-/nuxt-4.5.2.tgz",
+ "integrity": "sha512-tR3fcqeHlHmmkLMpIg3V7Y+1ltr302lW8djMw/iy+myfo7QSSz+BVJDuQhg5j73b9oteSyBfOKTDYTgvMtj6TA==",
+ "license": "MIT",
+ "dependencies": {
+ "@dxup/nuxt": "^0.5.6",
+ "@nuxt/cli": "^3.37.0",
+ "@nuxt/devtools": "^3.4.1",
+ "@nuxt/kit": "4.5.2",
+ "@nuxt/nitro-server": "4.5.2",
+ "@nuxt/schema": "4.5.2",
+ "@nuxt/telemetry": "^2.8.0",
+ "@nuxt/vite-builder": "4.5.2",
+ "@unhead/vue": "^3.3.1",
+ "@vue/shared": "^3.5.40",
+ "chokidar": "^5.0.0",
+ "compatx": "^0.2.0",
+ "consola": "^3.4.2",
+ "cookie-es": "^3.1.1",
+ "defu": "^6.1.7",
+ "devalue": "^5.9.0",
+ "errx": "^0.1.2",
+ "escape-string-regexp": "^5.0.0",
+ "exsolve": "^1.1.1",
+ "fnv1a-64": "^0.1.2",
+ "hookable": "^6.1.1",
+ "ignore": "^7.0.6",
+ "impound": "^1.1.6",
+ "jiti": "^2.7.0",
+ "klona": "^2.0.6",
+ "knitwork": "^1.3.0",
+ "magic-string": "^1.1.0",
+ "mlly": "^1.8.2",
+ "nanotar": "^0.3.0",
+ "nostics": "^1.2.0",
+ "nypm": "^0.6.9",
+ "object-identity": "^0.2.3",
+ "ofetch": "^1.5.1",
+ "ohash": "^2.0.11",
+ "on-change": "^6.0.2",
+ "oxc-walker": "^1.1.1",
+ "pathe": "^2.0.3",
+ "perfect-debounce": "^2.1.0",
+ "picomatch": "^4.0.5",
+ "pkg-types": "^2.3.1",
+ "rolldown-string": "^0.3.1",
+ "rou3": "^0.9.1",
+ "scule": "^1.3.0",
+ "std-env": "^4.2.0",
+ "tinyglobby": "^0.2.17",
+ "ufo": "^1.6.4",
+ "ultrahtml": "^1.7.0",
+ "uncrypto": "^0.1.3",
+ "unctx": "^3.0.0",
+ "undici": "^8.10.0",
+ "unhead": "^3.3.1",
+ "unimport": "^6.4.0",
+ "unplugin": "^3.3.0",
+ "unrouting": "^0.2.2",
+ "untyped": "^2.0.0",
+ "verkit": "^0.3.1",
+ "vue": "^3.5.40",
+ "vue-component-type-helpers": "^3.3.9",
+ "vue-router": "^5.2.0"
+ },
+ "bin": {
+ "nuxi": "bin/nuxt.mjs",
+ "nuxt": "bin/nuxt.mjs"
+ },
+ "engines": {
+ "node": "^22.19.0 || ^24.11.0 || >=26.0.0"
+ },
+ "peerDependencies": {
+ "@parcel/watcher": "^2.1.0",
+ "@types/node": ">=18.12.0",
+ "rolldown": "~1.2.1"
+ },
+ "peerDependenciesMeta": {
+ "@parcel/watcher": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/nypm": {
+ "version": "0.6.10",
+ "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.6.10.tgz",
+ "integrity": "sha512-W72Hrj1petq+b3Hk2aAC+9zswetlIFTnDW4s5djseZh2nYqBbyQLOtj472HwcbcWykPBUW1WpWpjOd4nK6gMRw==",
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.2.2",
+ "pathe": "^2.0.3",
+ "tinyexec": "^1.3.1"
+ },
+ "bin": {
+ "nypm": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/object-identity": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/object-identity/-/object-identity-0.2.3.tgz",
+ "integrity": "sha512-2J8Joz2Tf7aaylhqFvIUJHNgpuGR38Hh75Voq9GzTbStBxJUaOtN0K1aOd3cV5qp+ij1pMqRbPrGCGMOyX303w==",
+ "license": "MIT"
+ },
+ "node_modules/obug": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz",
+ "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==",
+ "funding": [
+ "https://github.com/sponsors/sxzz",
+ "https://opencollective.com/debug"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/ofetch": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz",
+ "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==",
+ "license": "MIT",
+ "dependencies": {
+ "destr": "^2.0.5",
+ "node-fetch-native": "^1.6.7",
+ "ufo": "^1.6.1"
+ }
+ },
+ "node_modules/ohash": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.12.tgz",
+ "integrity": "sha512-65S/5gk9YSsaRjcyf7Nfa6h/d3E8/1gslpXfI4W7Dxn/oap8IKRuNT5VXkLQ1YFKIEg4apRY4Pj6aiwFzrDdmw==",
+ "license": "MIT"
+ },
+ "node_modules/on-change": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/on-change/-/on-change-6.0.2.tgz",
+ "integrity": "sha512-08+12qcOVEA0fS9g/VxKS27HaT94nRutUT77J2dr8zv/unzXopvhBuF8tNLWsoLQ5IgrQ6eptGeGqUYat82U1w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/on-change?sponsor=1"
+ }
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/open/-/open-11.0.4.tgz",
+ "integrity": "sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg==",
+ "license": "MIT",
+ "dependencies": {
+ "default-browser": "^5.5.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-in-ssh": "^1.0.0",
+ "is-inside-container": "^1.0.0",
+ "powershell-utils": "^0.2.1",
+ "wsl-utils": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/oxc-walker": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/oxc-walker/-/oxc-walker-1.1.1.tgz",
+ "integrity": "sha512-Hwd7dq28zu/Er99+bpWp16CGwFrhyalJh0W3JOB7XpPvgWo3MqMi2ksWGKuzzA9zt50mJ2pIUwR5lpAdZ9ACNQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@oxc-project/types": ">=0.98.0",
+ "oxc-parser": ">=0.98.0",
+ "rolldown": ">=1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@oxc-project/types": {
+ "optional": true
+ },
+ "oxc-parser": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "18 || 20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "license": "MIT"
+ },
+ "node_modules/perfect-debounce": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.1.0.tgz",
+ "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz",
+ "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.3.tgz",
+ "integrity": "sha512-j/lCFdcppV0JxWpCEITdbDltBxPP6cHT+yNJ6Go2OgoSA9518X847X9z0p6LtA4Nc16+eQzCZjRrWanTGvHJ5w==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.3.1",
+ "exsolve": "^1.1.1",
+ "pathe": "^2.0.3"
+ }
+ },
+ "node_modules/pkg-types/node_modules/confbox": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.3.1.tgz",
+ "integrity": "sha512-cKUSoKa8YxFZZSmraVi7onONx3amu77ngK3kGpsYHDH7drPwCRkQE1RYMPlLRrMtnciRj274XNRxcHxnKmDSnA==",
+ "license": "MIT"
+ },
+ "node_modules/postcss": {
+ "version": "8.5.28",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz",
+ "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.18",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-10.1.1.tgz",
+ "integrity": "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.12 || ^20.9 || >=22.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.38"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-8.0.5.tgz",
+ "integrity": "sha512-U/N+7tkHgHoD24NB6q9k9uFcRfVJRdzVSit0fM0T2L6fvnpUoTIAYgzkyjD56LHEoCoPNfkMcfTB47SW/lNegQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@colordx/core": "^5.6.0",
+ "browserslist": "^4.28.8",
+ "caniuse-api": "^4.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-8.0.4.tgz",
+ "integrity": "sha512-ifBmAJBfpDymi7r/CqxYRJWlG+BLdVmusUC/kFPOqH/+TitdBeHA68CYqY79wXL+iQnqg6e4LGHA2Mte14X6Ig==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-8.0.4.tgz",
+ "integrity": "sha512-SU1uLYRQPKLJJmqEmqzu+Ze+9xDurBm7m/LOzXG/ANBAfAGLjbQF+oIyZnf3jV3F155q5rRMYXsoTNEJsPyHng==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^7.1.5"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-8.0.4.tgz",
+ "integrity": "sha512-/ugMYYTE+IpHpTmwz6/S8w+blCz9pZNroUgadTdlbPnHoLLWis9QvwmoyWui2mOgFzuRM6Me7AnoGU3i0Ua2ng==",
+ "license": "MIT",
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-8.0.5.tgz",
+ "integrity": "sha512-im0QtfNFa6V3SGPrfqzrWYuhzSz1ztWORKsuhZHQbWdKMh0DiNj3pmqBnABbhdKjyeW6nZ1oZYGh4dMc3biyaw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-8.0.4.tgz",
+ "integrity": "sha512-NqupxmnSSfWPJJDYbQk1qXWRwr+lw4Kyp/LSOjqwTpy/vSwo34EVXYKywgemSWpgh39P7Cs/G+tqynbRlXoJhw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-8.0.4.tgz",
+ "integrity": "sha512-ammolHhMvuTz/L9YN/ge1SWbUDcD3Y9o2gXlo3S6H4MCJHheyVPwcI/LAnSuNT4gcUmSF9pNTXo7+3M/2MFPAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^8.0.4"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-8.0.5.tgz",
+ "integrity": "sha512-jz+QaKz4VhjsqTVsJMRuH+EvrX1F9l6kYFuF8g6geVxFoYnPEZN4G+zqCb6zhxOIcc2aeAo38XEl2pOIZi2gBw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "caniuse-api": "^4.0.0",
+ "cssnano-utils": "^6.0.4",
+ "postcss-selector-parser": "^7.1.5"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-8.0.4.tgz",
+ "integrity": "sha512-wZZgJ87U5WbQCEM0EOY/oM7M1a+sqW6vrOClGC9lNbsY0HYmbMFvFuukBn8PzF+ikKmaT0QB+uSAHTRLzMkD+A==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-8.0.6.tgz",
+ "integrity": "sha512-NsqlG34WSO44NOHVT6m6ZWpN80fK2l5Zt73PMDXBJKT6fO6GPnI0NBi6xIVFr/naej3ukVUlIFQGxb7JGaa9Zg==",
+ "license": "MIT",
+ "dependencies": {
+ "@colordx/core": "^5.6.0",
+ "cssnano-utils": "^6.0.4",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-8.0.4.tgz",
+ "integrity": "sha512-TDx9O/ni7KazRK32pVvoo3MjExyVxWE0949vB2XZ0oHnxdAtQFHa9oG21wWkvsOL3osjiOVejwDLe6a0d0EuSw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "cssnano-utils": "^6.0.4",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-8.0.5.tgz",
+ "integrity": "sha512-i+PlhVCaPa7xevjhpActH2PrP27kDNSuuFf/ZGk8YrIcd1pd3Mfcfiv8H7dbY1/vz7U+QparioAtJaFV+IEwQg==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "caniuse-api": "^4.0.0",
+ "cssesc": "^3.0.0",
+ "postcss-selector-parser": "^7.1.5"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-8.0.5.tgz",
+ "integrity": "sha512-l0L1rIe9YHbLaf4xfL2pkkQV3gq/QIy8D0bjsaHYdGVgR+eQk7IBp3dUdIKe6XuG7DzFiCwJn248nvAFAi5CjA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-8.0.4.tgz",
+ "integrity": "sha512-F8DGtzelJDV6S5mhcugc+EJ8sXI+kFv2PBedkfMWqd8mvTE4qyy3kva6AQwjy2+L2lZ9TGTkSumdq+n3EhGeAw==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-8.0.4.tgz",
+ "integrity": "sha512-anOMhqe6Z0OP4jvchK1v1hIG08kO7rsp8uHrxT2+XaKp8wbvVcUO3QHUzRmQDazWUPtRzy1h2UlixyJenF42sg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-8.0.4.tgz",
+ "integrity": "sha512-vY8+k+/bFT7B8gzlHVye8FxBTMEpUAQxAgb4UYFAGGsKmXfwEvc7VPs+kpFNrTeqVKAvVh8+VVhZ+f3S4TWJPg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-8.0.4.tgz",
+ "integrity": "sha512-dWnV1frIV1XUlSYzJudceAbQ7PGyho9EgVHQXMcAoog6Nwnet3G9rz8IXcCb0EF2eefmpYG9hDT9+yWJOxc5zw==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-8.0.4.tgz",
+ "integrity": "sha512-VANJsokAWdQ03ZJwmcdEKXJjVHRtMgalB/BgbCgN3CRTdbwB5TXlSDRmdShSCxpnZs8WLAm0mPa//p5o5D/ZTg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-8.0.4.tgz",
+ "integrity": "sha512-SxVEoFdYed0bxxwZwAXnaAZ2lzNb5jtiQvYWyMIEqnGOzCuztWpVO8LvsqpOfUIacOb6oYaWi7WOAZR36OhYqw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-8.0.4.tgz",
+ "integrity": "sha512-JKZW8KRHkLEYkUb/55n3knDUMZeyvxlTv7ZA82bcHiCjL81b0Yyf9fIUBAYKZ6ucDgKfCDM78xhXuteVlk/o9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-8.0.5.tgz",
+ "integrity": "sha512-xuFovful3vVIA9fWWmAL2pG1Qr95Udj2MrLgjU50C6r+Xnh3s6t2BN1xXQ8lnCOCAtzMvMpPWYlnAh4nSv5VEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-8.0.5.tgz",
+ "integrity": "sha512-aDL7nPR7w1foUqo4rN6QY1Kr45+SYELnmUg5taZehh7FfFdxQmUjbuOOBuffIXjiHV45zqgFHCb4azsWW19jyw==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-utils": "^6.0.4",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-8.0.5.tgz",
+ "integrity": "sha512-Bh5d7zjH1Ai9LzJ1qULUZIaC18cniD+wA6gFlOPglMxJRC7meXbuPvpJ/zHQGg5QKwQgit++XQhDTiEIhCk8Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "caniuse-api": "^4.0.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-8.0.4.tgz",
+ "integrity": "sha512-ZGU7/R0GmjE3x2mOGB0g9Ohx74X+JjYX62RB5IBYLOe6R0fuHGZ76HtTY2CdM5NE8Yey/ew5clEf8iZQnjDjWA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz",
+ "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "8.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-8.0.6.tgz",
+ "integrity": "sha512-auQHNmduFFHzz1sWYM3sroW7IDMzxshlLjnwAALfkrAgPegHFats+jMK6BRCcdIulxPmqXFSQvgoAX4vw8I59g==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^4.1.0"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-8.0.4.tgz",
+ "integrity": "sha512-Sby0EtmD1mlvcZSWP5eXjxhxVgvXE5QVRzd+8NH0IbF+lYQIM57ybwAvJYYtI/fexMgCWcRnDETovjKOcLJb8w==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^7.1.5"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "license": "MIT"
+ },
+ "node_modules/powershell-utils": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz",
+ "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretendard": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/pretendard/-/pretendard-1.3.9.tgz",
+ "integrity": "sha512-PaQAADyLY5v4kYFwkpSJHbSSYIkiriY/1xXw75TKoZ9UQQqeU+tvP05yTdZAWibiIYoo8ZKtRv8PM7w0IaywSw==",
+ "license": "OFL-1.1"
+ },
+ "node_modules/pretty-bytes": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-7.1.3.tgz",
+ "integrity": "sha512-U2KZ675nqba6XSBppSjU2pRgc9Ffx9+uUtd/RTWYmOawVkZuUbBYuwdtFZQmLv+yMgQ2TQxWWuOpyNje67J9tg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "license": "MIT"
+ },
+ "node_modules/proper-lockfile": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
+ "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "retry": "^0.12.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/proper-lockfile/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/puppeteer-core": {
+ "version": "25.12.0",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-25.12.0.tgz",
+ "integrity": "sha512-z6LQUt5SH7jwGtGA+nMtJuEjZIsqPiwQ+EFHCYuVDQrJpvifNmmGuyDvTzAKPyFzihxgHc5f3aMzu2kn8Ps37A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@puppeteer/browsers": "3.2.3",
+ "chromium-bidi": "17.0.2",
+ "devtools-protocol": "0.0.1687809",
+ "typed-query-selector": "^2.12.2",
+ "webdriver-bidi-protocol": "0.4.3",
+ "ws": "^8.21.3"
+ },
+ "engines": {
+ "node": ">=22.12.0"
+ }
+ },
+ "node_modules/quansync": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz",
+ "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/antfu"
+ },
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/radix3": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz",
+ "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==",
+ "license": "MIT"
+ },
+ "node_modules/range-parser": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz",
+ "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/rc9": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/rc9/-/rc9-3.1.0.tgz",
+ "integrity": "sha512-ufjkNVzbRHKcCOmTahZkmVsyc3W+MSk3jY03m+a7tGHkIsdVMG9l10/3HvFbWkkKzY5VFp3pkRsIo/UYgmFL7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "defu": "^6.1.7",
+ "destr": "^2.0.5"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz",
+ "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==",
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/readdir-glob": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz",
+ "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "minimatch": "^5.1.0"
+ }
+ },
+ "node_modules/readdir-glob/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/readdir-glob/node_modules/brace-expansion": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.7.tgz",
+ "integrity": "sha512-uZbew1NqdmPDTMJ8ah1y+b+9QEJrfkXFk3RcTQw3X0jW/xRUvFKsg1CfQdSYGdTbXZWExtU3J3ccxtnfw1Fi0g==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/readdir-glob/node_modules/minimatch": {
+ "version": "5.1.9",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz",
+ "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.1.1.tgz",
+ "integrity": "sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 20.19.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/redis-errors": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
+ "integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/redis-parser": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
+ "integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
+ "license": "MIT",
+ "dependencies": {
+ "redis-errors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.12",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
+ "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rolldown": {
+ "version": "1.2.11",
+ "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.11.tgz",
+ "integrity": "sha512-qpSwIyz0jHQq5qXBTNxFmE6664rJ7O+4TvPFOiOaBSrz8IOHc1koKKSqTM2H6u1UG1+TveuC6vaDHKXFOvb1Kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@oxc-project/types": "=0.151.0",
+ "@rolldown/pluginutils": "^1.0.0"
+ },
+ "bin": {
+ "rolldown": "bin/cli.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "optionalDependencies": {
+ "@rolldown/binding-android-arm-eabi": "1.2.11",
+ "@rolldown/binding-android-arm64": "1.2.11",
+ "@rolldown/binding-darwin-arm64": "1.2.11",
+ "@rolldown/binding-darwin-x64": "1.2.11",
+ "@rolldown/binding-freebsd-x64": "1.2.11",
+ "@rolldown/binding-linux-arm-gnueabihf": "1.2.11",
+ "@rolldown/binding-linux-arm64-gnu": "1.2.11",
+ "@rolldown/binding-linux-arm64-musl": "1.2.11",
+ "@rolldown/binding-linux-ppc64-gnu": "1.2.11",
+ "@rolldown/binding-linux-s390x-gnu": "1.2.11",
+ "@rolldown/binding-linux-x64-gnu": "1.2.11",
+ "@rolldown/binding-linux-x64-musl": "1.2.11",
+ "@rolldown/binding-openharmony-arm64": "1.2.11",
+ "@rolldown/binding-win32-arm64-msvc": "1.2.11",
+ "@rolldown/binding-win32-x64-msvc": "1.2.11"
+ }
+ },
+ "node_modules/rolldown-string": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/rolldown-string/-/rolldown-string-0.3.1.tgz",
+ "integrity": "sha512-dv8GOXkYqUQdI0rsXB8hmzO95pKWSuX2eg5/JSJa9czfEVIFuKNR7ZJDfat8LlmD35RAhWY+evS7/wXXqFDfSg==",
+ "license": "MIT",
+ "dependencies": {
+ "magic-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ },
+ "peerDependencies": {
+ "rolldown": "*"
+ },
+ "peerDependenciesMeta": {
+ "rolldown": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.63.5",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.63.5.tgz",
+ "integrity": "sha512-KRWwmNLlPw5M7HcdYfm15oBv9n9LPtjzpzCIxS/phwqvPyxHSoKX6Y2YU3pxSPfy0CLquVgsx/j/hBi6OvH1Nw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.9"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@napi-rs/lzma-linux-x64-gnu": "1.5.1",
+ "@rollup/rollup-android-arm-eabi": "4.63.5",
+ "@rollup/rollup-android-arm64": "4.63.5",
+ "@rollup/rollup-darwin-arm64": "4.63.5",
+ "@rollup/rollup-darwin-x64": "4.63.5",
+ "@rollup/rollup-freebsd-arm64": "4.63.5",
+ "@rollup/rollup-freebsd-x64": "4.63.5",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.63.5",
+ "@rollup/rollup-linux-arm-musleabihf": "4.63.5",
+ "@rollup/rollup-linux-arm64-gnu": "4.63.5",
+ "@rollup/rollup-linux-arm64-musl": "4.63.5",
+ "@rollup/rollup-linux-loong64-gnu": "4.63.5",
+ "@rollup/rollup-linux-loong64-musl": "4.63.5",
+ "@rollup/rollup-linux-ppc64-gnu": "4.63.5",
+ "@rollup/rollup-linux-ppc64-musl": "4.63.5",
+ "@rollup/rollup-linux-riscv64-gnu": "4.63.5",
+ "@rollup/rollup-linux-riscv64-musl": "4.63.5",
+ "@rollup/rollup-linux-s390x-gnu": "4.63.5",
+ "@rollup/rollup-linux-x64-gnu": "4.63.5",
+ "@rollup/rollup-linux-x64-musl": "4.63.5",
+ "@rollup/rollup-openbsd-x64": "4.63.5",
+ "@rollup/rollup-openharmony-arm64": "4.63.5",
+ "@rollup/rollup-win32-arm64-msvc": "4.63.5",
+ "@rollup/rollup-win32-ia32-msvc": "4.63.5",
+ "@rollup/rollup-win32-x64-gnu": "4.63.5",
+ "@rollup/rollup-win32-x64-msvc": "4.63.5",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rollup-plugin-visualizer": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-7.1.1.tgz",
+ "integrity": "sha512-ThaGiHTU8XW02OkK80TrTHATraJmM9OAduU4otal+7gyXLpYEtmGBLfx5kW+EHvvLwn03YGW2NnwKUIqsYlJAA==",
+ "license": "MIT",
+ "dependencies": {
+ "open": "^11.0.0",
+ "picomatch": "^4.0.5",
+ "source-map": "^0.8.0",
+ "yargs": "^18.1.0"
+ },
+ "bin": {
+ "rollup-plugin-visualizer": "dist/bin/cli.js"
+ },
+ "engines": {
+ "node": ">=22"
+ },
+ "peerDependencies": {
+ "rolldown": "1.x || ^1.0.0-beta || ^1.0.0-rc",
+ "rollup": "2.x || 3.x || 4.x"
+ },
+ "peerDependenciesMeta": {
+ "rolldown": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/rollup-plugin-visualizer/node_modules/source-map": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0.tgz",
+ "integrity": "sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/rou3": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/rou3/-/rou3-0.9.2.tgz",
+ "integrity": "sha512-3SOzvaAg8rkHrXtRjpCvCvbyO5to9oOO27Z/XqHEYXfMRVSw/qMIVdmaOk9W2lcRLtR6dlqTjo9hDeJk70QBYQ==",
+ "license": "MIT"
+ },
+ "node_modules/run-applescript": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz",
+ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.1.tgz",
+ "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=11.0.0"
+ }
+ },
+ "node_modules/scule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/scule/-/scule-1.3.0.tgz",
+ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.8.5",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/send": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.4.3",
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "etag": "^1.8.1",
+ "fresh": "^2.0.0",
+ "http-errors": "^2.0.1",
+ "mime-types": "^3.0.2",
+ "ms": "^2.1.3",
+ "on-finished": "^2.4.1",
+ "range-parser": "^1.2.1",
+ "statuses": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.1.2.tgz",
+ "integrity": "sha512-GL2BWwVa6JydKO6l/ljVgjAZF4QJ3S7dWDWi53s5GZT8PJzD2fNxi67HANQGKAqPrwEpL5ba7gUBGi0Ls/sEoQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/seroval": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.7.tgz",
+ "integrity": "sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/serve-placeholder": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/serve-placeholder/-/serve-placeholder-2.0.2.tgz",
+ "integrity": "sha512-/TMG8SboeiQbZJWRlfTCqMs2DD3SZgWp0kDQePz9yUuCnDfDh/92gf7/PxGhzXTKBIPASIHxFcZndoNbp6QOLQ==",
+ "license": "MIT",
+ "dependencies": {
+ "defu": "^6.1.4"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
+ "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "^2.0.0",
+ "escape-html": "^1.0.3",
+ "parseurl": "^1.3.3",
+ "send": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.10.0.tgz",
+ "integrity": "sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-git": {
+ "version": "3.36.0",
+ "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.36.0.tgz",
+ "integrity": "sha512-cGQjLjK8bxJw4QuYT7gxHw3/IouVESbhahSsHrX97MzCL1gu2u7oy38W6L2ZIGECEfIBG4BabsWDPjBxJENv9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@kwsites/file-exists": "^1.1.1",
+ "@kwsites/promise-deferred": "^1.1.1",
+ "@simple-git/args-pathspec": "^1.0.3",
+ "@simple-git/argv-parser": "^1.1.0",
+ "debug": "^4.4.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/steveukx/git-js?sponsor=1"
+ }
+ },
+ "node_modules/sirv": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz",
+ "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==",
+ "license": "MIT",
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/slash": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
+ "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/smob": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/smob/-/smob-1.6.2.tgz",
+ "integrity": "sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.6",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz",
+ "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/srvx": {
+ "version": "0.11.22",
+ "resolved": "https://registry.npmjs.org/srvx/-/srvx-0.11.22.tgz",
+ "integrity": "sha512-LqZxxBDMKuMAZzFzJnDCkFOrs9MZQZr0LvHiO/SuSZVdQaXD7xQ5UWTUxheJrQPve1qk9MG2B/yttUvJxw8egQ==",
+ "license": "MIT",
+ "bin": {
+ "srvx": "bin/srvx.mjs"
+ },
+ "engines": {
+ "node": ">=20.16.0"
+ }
+ },
+ "node_modules/standard-as-callback": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz",
+ "integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
+ "license": "MIT"
+ },
+ "node_modules/statuses": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/std-env": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz",
+ "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==",
+ "license": "MIT"
+ },
+ "node_modules/streamx": {
+ "version": "2.28.1",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.28.1.tgz",
+ "integrity": "sha512-zEzXb0s5Cds7tqMH6rhZ05lcJydCWiQPEwiNngVqzsxCc962vLY4Uw+mW7od8kDH258k2Uz/JrOkdIAAhSh9VA==",
+ "license": "MIT",
+ "dependencies": {
+ "events-universal": "^1.0.0",
+ "fast-fifo": "^1.3.2",
+ "text-decoder": "^1.1.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.3.0.tgz",
+ "integrity": "sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==",
+ "license": "MIT",
+ "dependencies": {
+ "get-east-asian-width": "^1.5.0",
+ "strip-ansi": "^7.1.2"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz",
+ "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.2.2"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-4.0.0.tgz",
+ "integrity": "sha512-PaqAvfUZKBwc/SLmNZtHmzK+v19Z4O4eS3cKPeGvbIv/U3pnyEq4Tuw3/4v/FwfM8VQaEawsyCcOQ0P+kpwWWw==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^10.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/structured-clone-es": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/structured-clone-es/-/structured-clone-es-2.0.1.tgz",
+ "integrity": "sha512-10ZL5r77LhknxlP1FBiCW+VdnuWOEFLdSS2SKtjyEV+L4qP1hUEIMIZW94LC3jKxRmT/Dj7KkD1mqh/IY6lhKQ==",
+ "license": "ISC"
+ },
+ "node_modules/stylehacks": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-8.0.4.tgz",
+ "integrity": "sha512-irgZeyYBFVkb8k7yTRQ9No/bTniTGqzptGVMG1/Mj3N2YnI8nIozzY1pcok4i01NfrCSqvc0PdQB6O6kr6dJHw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.28.8",
+ "postcss-selector-parser": "^7.1.5"
+ },
+ "engines": {
+ "node": "^22.11.0 || ^24.11.0 || >=26.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.5.26"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
+ "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svgo": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.1.0.tgz",
+ "integrity": "sha512-bkxnTg1kSU0guhIBmibA6UUhrQmPVA1XsQLN+ylCd+UWzbnLkySOcXpyk1mrl05f+pcaCx2eHb+sp6BgMZWX+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^11.1.0",
+ "css-select": "^6.0.0",
+ "css-tree": "^3.0.1",
+ "css-what": "^7.0.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.1.1",
+ "sax": "1.6.1"
+ },
+ "bin": {
+ "svgo": "bin/svgo.js"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/svgo/node_modules/commander": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+ "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/tagged-tag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/tagged-tag/-/tagged-tag-1.0.0.tgz",
+ "integrity": "sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tar": {
+ "version": "7.5.22",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz",
+ "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==",
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.2.1.tgz",
+ "integrity": "sha512-nqsEO8zLZJvrOMdEwkA0QdCLFbetHMn95Zqu4fKwX+hkaTWJPZZOrxx/PwtxoK0MMGQmBQNRW3CPs8IFYQz4cQ==",
+ "license": "MIT",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "bare-fs": "^4.5.5",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "node_modules/tar/node_modules/yallist": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/teex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz",
+ "integrity": "sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==",
+ "license": "MIT",
+ "dependencies": {
+ "streamx": "^2.12.5"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.51.2",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.51.2.tgz",
+ "integrity": "sha512-bWnjSNscmuI+GJze6ZupnHP8G/cTcsJF+bXCeQknk2SHQsgbNJnLrqiH9jZ2W4STPVXH2mDKKRX3iwPhc9Cn/Q==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.15.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT"
+ },
+ "node_modules/text-decoder": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz",
+ "integrity": "sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "b4a": "^1.6.4"
+ }
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
+ "node_modules/tinyclip": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/tinyclip/-/tinyclip-0.1.15.tgz",
+ "integrity": "sha512-uo33abH+Ays0xYaDysoBt494Hb3hsEczMpcC0MwFl773pazORx4fmvKhclhR1wonUbB6vvpRsvVMwnhfqeMc+A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^16.14.0 || >= 17.3.0"
+ }
+ },
+ "node_modules/tinyexec": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.1.tgz",
+ "integrity": "sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tinyglobby": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
+ "license": "MIT",
+ "dependencies": {
+ "fdir": "^6.5.0",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/SuperchupuDev"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/type-fest": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-5.10.0.tgz",
+ "integrity": "sha512-NoSdpq/WEiAg5sjmBkmV/hfxv6HJH4NqPNrqjtSO5CwRmpsDfaf4begxW34KdJykH/l1yHtwBWQkCRdoXO8mPA==",
+ "license": "(MIT OR CC0-1.0)",
+ "dependencies": {
+ "tagged-tag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-query-selector": {
+ "version": "2.12.2",
+ "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.2.tgz",
+ "integrity": "sha512-EOPFbyIub4ngnEdqi2yOcNeDLaX/0jcE1JoAXQDDMIthap7FoN795lc/SHfIq2d416VufXpM8z/lD+WRm2gfOQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "devOptional": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz",
+ "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==",
+ "license": "MIT"
+ },
+ "node_modules/ultrahtml": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.7.0.tgz",
+ "integrity": "sha512-2xRd0VHoAQE4M+vF/DvFFB7pUV0ZxTW1TLi7lHQWnF/Sb5TPeEUV/l+hxcNnGO00ZXGnR0voCMmYRKQf+rvJ2g==",
+ "license": "MIT"
+ },
+ "node_modules/uncrypto": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
+ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==",
+ "license": "MIT"
+ },
+ "node_modules/unctx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/unctx/-/unctx-3.0.1.tgz",
+ "integrity": "sha512-5RAt2etv7g362RXyd33R82gm9u/kbtQlpoaOs9Bgm4E32GRMJ0xjbZyvdxUTmiuHk3V1IQb1aUNrp5IWY+JaWw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "magic-string": ">=0.30.21",
+ "oxc-parser": ">=0.140.0",
+ "rolldown": "^1.1.5",
+ "unplugin": "^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "magic-string": {
+ "optional": true
+ },
+ "oxc-parser": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ },
+ "unplugin": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/undici": {
+ "version": "8.11.2",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.2.tgz",
+ "integrity": "sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=22.19.0"
+ }
+ },
+ "node_modules/unenv": {
+ "version": "2.0.0-rc.24",
+ "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz",
+ "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==",
+ "license": "MIT",
+ "dependencies": {
+ "pathe": "^2.0.3"
+ }
+ },
+ "node_modules/unhead": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/unhead/-/unhead-3.4.1.tgz",
+ "integrity": "sha512-P1lDTwwMMICFQ84BXA1ac5CF/DPRCcrARQOGwblQFpHOekbBWq/724BV42C8ptH39NvyrUQLOwyt6qSd76GKPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hookable": "^6.1.1",
+ "unplugin": "^3.3.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/harlan-zw"
+ },
+ "peerDependencies": {
+ "vite": ">=6.4.2"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unicorn-magic": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.4.1.tgz",
+ "integrity": "sha512-lzlXPoVB0Uy/FvTaUgX39RbixYiSKoc3JSoSf01+0c2B6FR3qdYIPN7Qjo/AV7n6sqLCk0509cT3LRj1oSZ1+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unimport": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/unimport/-/unimport-6.5.0.tgz",
+ "integrity": "sha512-t0KLJLRbebz3f7NrQe+vy2ObeugVeM1XqI2oeYnauddmHSglYj3U6bxOJ65IbXmOFkcAGFJK2OyGH7aqHPM6Ug==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.18.0",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "local-pkg": "^1.2.1",
+ "magic-string": "^1.2.3",
+ "mlly": "^1.8.2",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.7",
+ "pkg-types": "^2.3.3",
+ "scule": "^1.3.0",
+ "strip-literal": "^4.0.0",
+ "tinyglobby": "^0.2.17",
+ "unplugin": "^3.3.0",
+ "unplugin-utils": "^0.3.2"
+ },
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "peerDependencies": {
+ "oxc-parser": "*",
+ "rolldown": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "oxc-parser": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unimport/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-3.4.0.tgz",
+ "integrity": "sha512-9skdIFlCsPdFV7wUfZxNsFInlW+7nJmGu2gkTu0OUhF56aXGsHab9x52/QhdJ4lC7ZDPWTxbiC4ANqVlsuaW3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/remapping": "^2.3.5",
+ "picomatch": "^4.0.7",
+ "webpack-virtual-modules": "^0.6.2"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "peerDependencies": {
+ "@farmfe/core": "*",
+ "@rsbuild/core": "*",
+ "@rspack/core": "*",
+ "bun-types-no-globals": "*",
+ "esbuild": "*",
+ "rolldown": "*",
+ "rollup": "*",
+ "unloader": "*",
+ "vite": "*",
+ "webpack": "*"
+ },
+ "peerDependenciesMeta": {
+ "@farmfe/core": {
+ "optional": true
+ },
+ "@rsbuild/core": {
+ "optional": true
+ },
+ "@rspack/core": {
+ "optional": true
+ },
+ "bun-types-no-globals": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "rolldown": {
+ "optional": true
+ },
+ "rollup": {
+ "optional": true
+ },
+ "unloader": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unplugin-utils": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.2.tgz",
+ "integrity": "sha512-xVToRh2CTmLk2HnEG7ac4rl1MJTT3RFkpS8B++/SnB0kXvuaavD+n3m/vrzyWQOdJNSZQACnbz01pnppbwV5BA==",
+ "license": "MIT",
+ "dependencies": {
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ },
+ "node_modules/unrouting": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/unrouting/-/unrouting-0.2.3.tgz",
+ "integrity": "sha512-8wOFT/fBh8YeeDr1aVmkXCqYVTMbQ6vzfNzwzybKmSfXdRhGCq1Y2B1e9YeB0JEf85gbvSwJHAMu3D2IEcLGKA==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^5.0.0",
+ "ufo": "^1.6.3"
+ }
+ },
+ "node_modules/unstorage": {
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.5.tgz",
+ "integrity": "sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^3.1.3",
+ "chokidar": "^5.0.0",
+ "destr": "^2.0.5",
+ "h3": "^1.15.10",
+ "lru-cache": "^11.2.7",
+ "node-fetch-native": "^1.6.7",
+ "ofetch": "^1.5.1",
+ "ufo": "^1.6.3"
+ },
+ "peerDependencies": {
+ "@azure/app-configuration": "^1.8.0",
+ "@azure/cosmos": "^4.2.0",
+ "@azure/data-tables": "^13.3.0",
+ "@azure/identity": "^4.6.0",
+ "@azure/keyvault-secrets": "^4.9.0",
+ "@azure/storage-blob": "^12.26.0",
+ "@capacitor/preferences": "^6 || ^7 || ^8",
+ "@deno/kv": ">=0.9.0",
+ "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0",
+ "@planetscale/database": "^1.19.0",
+ "@upstash/redis": "^1.34.3",
+ "@vercel/blob": ">=0.27.1",
+ "@vercel/functions": "^2.2.12 || ^3.0.0",
+ "@vercel/kv": "^1 || ^2 || ^3",
+ "aws4fetch": "^1.0.20",
+ "db0": ">=0.2.1",
+ "idb-keyval": "^6.2.1",
+ "ioredis": "^5.4.2",
+ "uploadthing": "^7.4.4"
+ },
+ "peerDependenciesMeta": {
+ "@azure/app-configuration": {
+ "optional": true
+ },
+ "@azure/cosmos": {
+ "optional": true
+ },
+ "@azure/data-tables": {
+ "optional": true
+ },
+ "@azure/identity": {
+ "optional": true
+ },
+ "@azure/keyvault-secrets": {
+ "optional": true
+ },
+ "@azure/storage-blob": {
+ "optional": true
+ },
+ "@capacitor/preferences": {
+ "optional": true
+ },
+ "@deno/kv": {
+ "optional": true
+ },
+ "@netlify/blobs": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@vercel/blob": {
+ "optional": true
+ },
+ "@vercel/functions": {
+ "optional": true
+ },
+ "@vercel/kv": {
+ "optional": true
+ },
+ "aws4fetch": {
+ "optional": true
+ },
+ "db0": {
+ "optional": true
+ },
+ "idb-keyval": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ },
+ "uploadthing": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unstorage/node_modules/lru-cache": {
+ "version": "11.5.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz",
+ "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==",
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/untun": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/untun/-/untun-0.2.2.tgz",
+ "integrity": "sha512-+NnOJcSiEtYsVgJmXUzQbJeRAFXJC4yPJYuh6kF9B0Rm6zunXcs/3GZOTllyocSbUDIxD6Bj7e/4ATw7sph1Sw==",
+ "license": "MIT",
+ "bin": {
+ "untun": "dist/cli.mjs"
+ }
+ },
+ "node_modules/untyped": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/untyped/-/untyped-2.0.0.tgz",
+ "integrity": "sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==",
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.1.6",
+ "defu": "^6.1.4",
+ "jiti": "^2.4.2",
+ "knitwork": "^1.2.0",
+ "scule": "^1.3.0"
+ },
+ "bin": {
+ "untyped": "dist/cli.mjs"
+ }
+ },
+ "node_modules/untyped/node_modules/citty": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
+ "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.2.3"
+ }
+ },
+ "node_modules/unwasm": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/unwasm/-/unwasm-0.5.3.tgz",
+ "integrity": "sha512-keBgTSfp3r6+s9ZcSma+0chwxQdmLbB5+dAD9vjtB21UTMYuKAxHXCU1K2CbCtnP09EaWeRvACnXk0EJtUx+hw==",
+ "license": "MIT",
+ "dependencies": {
+ "exsolve": "^1.0.8",
+ "knitwork": "^1.3.0",
+ "magic-string": "^0.30.21",
+ "mlly": "^1.8.0",
+ "pathe": "^2.0.3",
+ "pkg-types": "^2.3.0"
+ }
+ },
+ "node_modules/unwasm/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz",
+ "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uqr": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.3.tgz",
+ "integrity": "sha512-0rjE8iEJe4YmT9TOhwsZtqCMRLc5DXZUI2UEYUUg63ikBkqqE5EYWaI0etFe/5KUcmcYwLih2RND1kq+hrUJXA==",
+ "license": "MIT"
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/verkit": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/verkit/-/verkit-0.3.2.tgz",
+ "integrity": "sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ }
+ },
+ "node_modules/vite": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.1.tgz",
+ "integrity": "sha512-/bvH9E9tmCXRGp2uXY3WbOldqpTwFkbha/8ANaEQ6VkxhH60KyqLwgZq6lG2y+4uT55x9+9eUHMpQ7uGnOCKjA==",
+ "license": "MIT",
+ "dependencies": {
+ "lightningcss": "^1.33.0",
+ "picomatch": "^4.0.7",
+ "postcss": "^8.5.28",
+ "rolldown": "~1.2.9",
+ "tinyglobby": "^0.2.17"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^20.19.0 || >=22.12.0",
+ "@vitejs/devtools": "^0.7.1",
+ "esbuild": "^0.27.0 || ^0.28.0",
+ "jiti": ">=1.21.0",
+ "less": "^4.0.0",
+ "sass": "^1.70.0",
+ "sass-embedded": "^1.70.0",
+ "stylus": ">=0.54.8",
+ "sugarss": "^5.0.0",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "@vitejs/devtools": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-dev-rpc": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-2.0.0.tgz",
+ "integrity": "sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA==",
+ "license": "MIT",
+ "dependencies": {
+ "birpc": "^4.0.0",
+ "vite-hot-client": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0 || ^8.0.0"
+ }
+ },
+ "node_modules/vite-hot-client": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.2.0.tgz",
+ "integrity": "sha512-76Zs9zrHbH7M7wqeyooGQKdX+yg0pQ0xuQ1PbFp4z5a0Lzn2e5IPFoCswnmqZ4GiwqB4Jo3WcDAMO9jARTJl8w==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 || ^8.0.0"
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-6.0.0.tgz",
+ "integrity": "sha512-oj4PVrT+pDh6GYf5wfUXkcZyekYS8kKPfLPXVl8qe324Ec6l4K2DUKNadRbZ3LQl0qGcDz+PyOo7ZAh00Y+JjQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^7.0.0",
+ "es-module-lexer": "^2.0.0",
+ "obug": "^2.1.1",
+ "pathe": "^2.0.3",
+ "vite": "^8.0.0"
+ },
+ "bin": {
+ "vite-node": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": "^20.19.0 || >=22.12.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/antfu"
+ }
+ },
+ "node_modules/vite-node/node_modules/cac": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz",
+ "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20.19.0"
+ }
+ },
+ "node_modules/vite-plugin-checker": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.14.5.tgz",
+ "integrity": "sha512-c9lQ92eisUO+F7Fd93aelojmiOS+NQpPgQ1XR2LTQHox1/laZf4yAoQj+L3RA9Vgh10e2nFd9b8r2LLyYZsbpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.29.0",
+ "chokidar": "^5.0.0",
+ "npm-run-path": "^6.0.0",
+ "picocolors": "^1.1.1",
+ "picomatch": "^4.0.4",
+ "proper-lockfile": "^4.1.2",
+ "tiny-invariant": "^1.3.3"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "peerDependencies": {
+ "@biomejs/biome": ">=2.4.12",
+ "eslint": ">=9.39.4",
+ "meow": "^13.2.0 || ^14.0.0",
+ "optionator": "^0.9.4",
+ "oxlint": ">=1",
+ "stylelint": ">=16.26.1",
+ "typescript": "*",
+ "vite": ">=5.4.21",
+ "vue-tsc": "~2.2.10 || ^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@biomejs/biome": {
+ "optional": true
+ },
+ "eslint": {
+ "optional": true
+ },
+ "meow": {
+ "optional": true
+ },
+ "optionator": {
+ "optional": true
+ },
+ "oxlint": {
+ "optional": true
+ },
+ "stylelint": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ },
+ "vue-tsc": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/npm-run-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz",
+ "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0",
+ "unicorn-magic": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-checker/node_modules/unicorn-magic": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz",
+ "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-inspect": {
+ "version": "11.4.1",
+ "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.4.1.tgz",
+ "integrity": "sha512-ShOFe2PURXGvRS5OrgmOLZOCwDTD7dEBVt0tMpFPKb9AsvqXKCRGM8QgKrUbRbJYFXScHvDPpGRd28rYidC0tA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansis": "^4.3.0",
+ "error-stack-parser-es": "^1.0.5",
+ "obug": "^2.1.1",
+ "ohash": "^2.0.11",
+ "open": "^11.0.0",
+ "perfect-debounce": "^2.1.0",
+ "sirv": "^3.0.2",
+ "unplugin-utils": "^0.3.1",
+ "vite-dev-rpc": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^6.0.0 || ^7.0.0-0 || ^8.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/kit": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-inspect/node_modules/error-stack-parser-es": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
+ "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/vite-plugin-vue-tracer": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-vue-tracer/-/vite-plugin-vue-tracer-1.5.0.tgz",
+ "integrity": "sha512-G2aQ676fLBPnYhRi5lsARoL4hbtc/sx6fVzO7p44AB+1xQXo2UuiRgv7K26UdijrNzmuQprmJ121n3rdjBk1CA==",
+ "license": "MIT",
+ "dependencies": {
+ "estree-walker": "^3.0.3",
+ "exsolve": "^1.1.1",
+ "magic-string": "^1.1.0",
+ "pathe": "^2.0.3",
+ "source-map-js": "^1.2.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^6.0.0 || ^7.0.0 || ^8.0.0-0",
+ "vue": "^3.5.0"
+ }
+ },
+ "node_modules/vite-plugin-vue-tracer/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz",
+ "integrity": "sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/vue": {
+ "version": "3.5.43",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.43.tgz",
+ "integrity": "sha512-o5qZoksdnjIKvW1srZ3ab7pcDNYAerBjRe54D0LBLfRdCYFrSgBHVXokMas35czQc0//lmx4/tuY4ZNQ+Rf2Ng==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.43",
+ "@vue/compiler-sfc": "3.5.43",
+ "@vue/runtime-dom": "3.5.43",
+ "@vue/server-renderer": "3.5.43",
+ "@vue/shared": "3.5.43"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-bundle-renderer": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/vue-bundle-renderer/-/vue-bundle-renderer-2.4.0.tgz",
+ "integrity": "sha512-IxHopQZgzTGBiuGERrQrAS7Lr3dCv+qxvgirEgCUFGAD4gYNfiaGYzC1DDojeZmJAmehp9gG8+17PGuVP6Ab2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ufo": "^1.6.4"
+ }
+ },
+ "node_modules/vue-component-type-helpers": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-3.3.11.tgz",
+ "integrity": "sha512-LwcxzeliO9fkQcpJG0PoX8X5kmAhKmH9wkpDLxNabwzkQ9Zeib2YVHwFV4pcWmMLfXVfjr/dSV+DaJ3cIPgSNA==",
+ "license": "MIT"
+ },
+ "node_modules/vue-devtools-stub": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/vue-devtools-stub/-/vue-devtools-stub-0.1.0.tgz",
+ "integrity": "sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==",
+ "license": "MIT"
+ },
+ "node_modules/vue-router": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-5.3.1.tgz",
+ "integrity": "sha512-GDBZzgmILxA/kFnkFbJjQZdZ2QQbngnIMMuoUcjhZIfH1RGMaPjPwX5ASnV38qamuA9uhO0RDjSBHTDNG2uXyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vue-macros/common": "^3.1.3",
+ "@vue/devtools-api": "^8.1.5",
+ "ast-walker-scope": "^0.9.0",
+ "chokidar": "^5.0.0",
+ "confbox": "^0.2.4",
+ "local-pkg": "^1.2.1",
+ "magic-string": "^0.30.21",
+ "mlly": "^1.8.2",
+ "muggle-string": "^0.4.1",
+ "nostics": "^1.1.4",
+ "pathe": "^2.0.3",
+ "picomatch": "^4.0.5",
+ "scule": "^1.3.0",
+ "tinyglobby": "^0.2.17",
+ "unplugin": "^3.3.0",
+ "unplugin-utils": "^0.3.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@pinia/colada": ">=0.21.2",
+ "@vue/compiler-sfc": "^3.5.34 || ^4.0.0",
+ "pinia": "^3.0.4 || ^4.0.2",
+ "vite": "^7.3.0 || ^8.0.0",
+ "vue": "^3.5.34 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@pinia/colada": {
+ "optional": true
+ },
+ "@vue/compiler-sfc": {
+ "optional": true
+ },
+ "pinia": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-router/node_modules/magic-string": {
+ "version": "0.30.21",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
+ "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/vue-tsc": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.3.11.tgz",
+ "integrity": "sha512-gOb0B9rtU2+f1dszwPqSH5kAieIF9ReeLhD3kSRNHv5WZZUQz/JdVXW0RTdqhNTMlQkqKzrTTviqKr/4FYZraQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@volar/typescript": "2.4.28",
+ "@vue/language-core": "3.3.11"
+ },
+ "bin": {
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.0"
+ }
+ },
+ "node_modules/webdriver-bidi-protocol": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.4.3.tgz",
+ "integrity": "sha512-uuN0goWfxP22B7J/uAgBpOYNPttC+XVseYE+rSY5+rQ+YBeVz/VORw8WbmLVcqW78zNg5A4qnjNXYUWR3il2ig==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/webpack-virtual-modules": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==",
+ "license": "MIT"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
+ "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^4.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^20.17.0 || >=22.9.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "9.0.2",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz",
+ "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "string-width": "^7.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz",
+ "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz",
+ "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^10.3.0",
+ "get-east-asian-width": "^1.0.0",
+ "strip-ansi": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ws": {
+ "version": "8.21.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.3.tgz",
+ "integrity": "sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/wsl-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz",
+ "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^3.1.0",
+ "powershell-utils": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wsl-utils/node_modules/powershell-utils": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz",
+ "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz",
+ "integrity": "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^9.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "string-width": "^8.2.1",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^22.0.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=23"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "22.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz",
+ "integrity": "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==",
+ "license": "ISC",
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=23"
+ }
+ },
+ "node_modules/youch": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.1.tgz",
+ "integrity": "sha512-mxW3qiSnl+GRxXsaUMzv2Mbada1Y8CDltET9UxejDQe6DBYlSekghl5U5K0ReAikcHDi0G1vKZEmmo/NWAGKLA==",
+ "license": "MIT",
+ "dependencies": {
+ "@poppinss/colors": "^4.1.6",
+ "@poppinss/dumper": "^0.7.0",
+ "@speed-highlight/core": "^1.2.14",
+ "cookie-es": "^3.0.1",
+ "youch-core": "^0.3.3"
+ }
+ },
+ "node_modules/youch-core": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz",
+ "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==",
+ "license": "MIT",
+ "dependencies": {
+ "@poppinss/exception": "^1.2.2",
+ "error-stack-parser-es": "^1.0.5"
+ }
+ },
+ "node_modules/youch-core/node_modules/error-stack-parser-es": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
+ "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/zip-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz",
+ "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==",
+ "license": "MIT",
+ "dependencies": {
+ "archiver-utils": "^5.0.0",
+ "compress-commons": "^6.0.2",
+ "readable-stream": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/zod": {
+ "version": "3.25.76",
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/colinhacks"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..8c8ae71
--- /dev/null
+++ b/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "lantern-landing",
+ "version": "0.1.0",
+ "private": true,
+ "description": "Lantern IDE 소개 사이트",
+ "license": "Apache-2.0",
+ "type": "module",
+ "scripts": {
+ "dev": "nuxt dev",
+ "build": "nuxt generate",
+ "preview": "npx --yes serve .output/public -l 3120",
+ "typecheck": "nuxt typecheck",
+ "postinstall": "nuxt prepare",
+ "export-map": "node scripts/export-map.mjs",
+ "verify": "node scripts/verify.mjs"
+ },
+ "dependencies": {
+ "@vscode/codicons": "^0.0.46-24",
+ "nuxt": "^4.5.2",
+ "pretendard": "^1.3.9"
+ },
+ "devDependencies": {
+ "d3-force": "^3.0.0",
+ "puppeteer-core": "^25.12.0",
+ "typescript": "^5.9.3",
+ "vue-tsc": "^3.3.11"
+ }
+}
diff --git a/public/favicon.svg b/public/favicon.svg
new file mode 100644
index 0000000..0e44d3b
--- /dev/null
+++ b/public/favicon.svg
@@ -0,0 +1 @@
+
diff --git a/public/shots/impact-en.png b/public/shots/impact-en.png
new file mode 100644
index 0000000..255b831
Binary files /dev/null and b/public/shots/impact-en.png differ
diff --git a/public/shots/impact-ko.png b/public/shots/impact-ko.png
new file mode 100644
index 0000000..8137c6f
Binary files /dev/null and b/public/shots/impact-ko.png differ
diff --git a/scripts/export-map.mjs b/scripts/export-map.mjs
new file mode 100644
index 0000000..91eac85
--- /dev/null
+++ b/scripts/export-map.mjs
@@ -0,0 +1,126 @@
+// 소개 사이트의 코드 지도 데이터를 만든다: Lantern 저장소 자체를 lantern CLI로 읽어 app/data/lantern-map.json에 쓴다.
+// 사이트의 장면은 전부 이 파일에서 온다. 지도, 맥락으로 고른 파일, 영향 반경 수치는 실제로 계산한 값이다.
+//
+// 사용: node scripts/export-map.mjs --repo ../Khala [--bin ] [--ref origin/main]
+// 작업 폴더의 로컬 변경(추적하지 않는 파일 등)이 섞이지 않게, 지정한 커밋을 임시 worktree로 꺼내서 읽는다.
+
+import { execFileSync } from "node:child_process";
+import fs from "node:fs";
+import os from "node:os";
+import path from "node:path";
+import { fileURLToPath } from "node:url";
+import { forceSimulation, forceLink, forceManyBody, forceCenter, forceCollide, forceX, forceY } from "d3-force";
+
+const HERE = path.dirname(fileURLToPath(import.meta.url));
+const argv = process.argv.slice(2);
+const opt = (name, fallback) => {
+ const i = argv.indexOf(`--${name}`);
+ return i >= 0 && argv[i + 1] ? argv[i + 1] : fallback;
+};
+const REPO = path.resolve(opt("repo", path.join(HERE, "..", "..", "Khala")));
+const REF = opt("ref", "origin/main");
+const BIN = path.resolve(opt("bin", path.join(REPO, "target", "release", process.platform === "win32" ? "lantern.exe" : "lantern")));
+const OUT = path.join(HERE, "..", "app", "data", "lantern-map.json");
+
+/** 장면의 작업: 한국어로 물었는데 영어 코드(query_terms)를 찾아야 하는 요청 */
+const TASK = {
+ question: "한국어 질문을 검색어로 바꾸는 곳에서 중복을 줄여줘",
+ editFile: "crates/lantern-context/src/tokenize.rs",
+ editSymbol: "query_terms",
+ // 에이전트가 수정 전에 호출하는 쪽을 읽는다
+ read: ["crates/lantern-context/src/assemble.rs"],
+ // 예시 수정: 대소문자만 다른 검색어를 한 번만 넣는다 (사이트에는 '예시 수정'으로 표시)
+ find: "if seen.insert(text.clone())",
+ replace: "if seen.insert(text.to_lowercase())",
+};
+
+if (!fs.existsSync(BIN)) {
+ console.error(`lantern CLI가 없습니다: ${BIN}\n앱 저장소에서 cargo build --release -p lantern-context`);
+ process.exit(2);
+}
+
+const git = (...a) => execFileSync("git", ["-C", REPO, ...a], { encoding: "utf8" }).trim();
+const tmp = fs.mkdtempSync(path.join(os.tmpdir(), "lantern-map-"));
+const src = path.join(tmp, "src");
+const index = path.join(tmp, "index");
+const commit = git("rev-parse", REF);
+git("worktree", "add", "--detach", "-q", src, commit);
+
+try {
+ const lantern = (...a) => execFileSync(BIN, ["-C", src, ...a], { encoding: "utf8", env: { ...process.env, LANTERN_INDEX_DIR: index }, maxBuffer: 64 * 1024 * 1024 });
+
+ // 1. 전체 구조 (파일 단위)
+ const overview = JSON.parse(lantern("graph", "overview", "--max-nodes", "400"));
+
+ // 2. 맥락 조립: 질문 하나에 엔진이 고른 코드
+ const ctx = JSON.parse(lantern("context", TASK.question, "--json"));
+ const byFile = new Map();
+ for (const it of ctx.items) {
+ const f = byFile.get(it.path) ?? { path: it.path, tokens: 0, symbols: [] };
+ f.tokens += it.tokens;
+ if (it.name && !f.symbols.includes(it.name)) f.symbols.push(it.name);
+ byFile.set(it.path, f);
+ }
+
+ // 3. 영향 반경: query_terms 안의 그 한 줄을 고칠 때
+ const text = fs.readFileSync(path.join(src, TASK.editFile), "utf8").split(/\r?\n/);
+ const fnAt = text.findIndex((l) => l.includes(`fn ${TASK.editSymbol}(`)) + 1;
+ const at = text.findIndex((l, i) => i >= fnAt && l.includes(TASK.find)) + 1;
+ if (fnAt <= 0 || at <= 0) throw new Error(`${TASK.editFile}에서 ${TASK.editSymbol} / ${TASK.find}을(를) 찾지 못했습니다`);
+ const impact = JSON.parse(lantern("graph", "impact", TASK.editFile, "--lines", String(at)));
+ // 승인 카드에 싣는 실제 코드 (함수 설명부터 몇 줄)
+ const snippet = text.slice(fnAt - 2, fnAt + 8).map((code, i) => ({ n: fnAt - 1 + i, code }));
+ const depthByPath = {};
+ for (const n of impact.graph.nodes) {
+ if (n.path && n.depth !== undefined) depthByPath[n.path] = Math.min(depthByPath[n.path] ?? 9, n.depth);
+ }
+
+ // 4. 배치: 빌드할 때 한 번 계산해 두고, 방문자 브라우저에서는 물리 계산을 돌리지 않는다.
+ // d3-force의 초기 배치는 난수를 쓰지 않아 같은 입력이면 같은 그림이 나온다.
+ const nodes = overview.nodes.map((n) => ({ id: n.id, label: n.label, path: n.path ?? "", group: n.group, weight: n.weight }));
+ const ids = new Set(nodes.map((n) => n.id));
+ const links = overview.edges.filter((e) => ids.has(e.source) && ids.has(e.target)).map((e) => ({ source: e.source, target: e.target, kind: e.kind, weight: e.weight }));
+ const groups = [...new Set(nodes.map((n) => n.group))].sort();
+ // 모듈마다 자리를 정해 두고 끌어당겨, 같은 모듈이 한 덩어리로 보이게 한다 (모듈 이름을 붙일 수 있게)
+ const anchor = new Map(groups.map((g, i) => [g, { x: Math.cos((i / groups.length) * Math.PI * 2 - Math.PI / 2) * 300, y: Math.sin((i / groups.length) * Math.PI * 2 - Math.PI / 2) * 210 }]));
+ const sim = forceSimulation(nodes)
+ .force("link", forceLink(links).id((d) => d.id).distance((l) => (l.kind === "cochange" ? 90 : 60)).strength((l) => (l.kind === "cochange" ? 0.01 : 0.05)))
+ .force("charge", forceManyBody().strength(-90).distanceMax(260))
+ .force("collide", forceCollide().radius((d) => 9 + Math.sqrt(d.weight) * 1.6))
+ .force("x", forceX((d) => anchor.get(d.group).x).strength(0.3))
+ .force("y", forceY((d) => anchor.get(d.group).y).strength(0.3))
+ .force("center", forceCenter(0, 0))
+ .stop();
+ for (let i = 0; i < 800; i++) sim.tick();
+ // 크기는 본체(가운데 94%) 기준으로 맞춘다. 연결이 적어 멀리 떨어진 몇 개가 전체를 작게 만들지 않게
+ const q = (vs, p) => [...vs].sort((a, b) => a - b)[Math.floor((vs.length - 1) * p)];
+ const xs = nodes.map((n) => n.x), ys = nodes.map((n) => n.y);
+ const [minX, maxX, minY, maxY] = [q(xs, 0.03), q(xs, 0.97), q(ys, 0.03), q(ys, 0.97)];
+ const span = Math.max(maxX - minX, maxY - minY);
+ const round = (v) => Math.round(v * 1000) / 1000;
+
+ const data = {
+ generated: { commit: commit.slice(0, 7), date: git("show", "-s", "--format=%cs", commit), repo: "Lantern-IDE/lantern" },
+ stats: { files: nodes.length, edges: links.length, groups: groups.length },
+ groups,
+ // 본체는 -0.5..0.5 안에 들고, 멀리 떨어진 것은 0.62에서 자른다
+ nodes: nodes.map((n) => {
+ const clamp = (v) => Math.max(-0.62, Math.min(0.62, v));
+ return { id: n.id, label: n.label, path: n.path, group: groups.indexOf(n.group), weight: round(n.weight), x: round(clamp((n.x - (minX + maxX) / 2) / span)), y: round(clamp((n.y - (minY + maxY) / 2) / span)) };
+ }),
+ edges: links.map((l) => [nodes.indexOf(l.source), nodes.indexOf(l.target), l.kind === "cochange" ? 1 : 0]),
+ task: {
+ question: TASK.question,
+ context: { used: ctx.used_tokens, budget: ctx.budget_tokens, ms: Math.round(ctx.elapsed_ms * 10) / 10, terms: ctx.query_terms, files: [...byFile.values()] },
+ read: TASK.read,
+ edit: { path: TASK.editFile, symbol: TASK.editSymbol, line: at, before: text[at - 1], after: text[at - 1].replace(TASK.find, TASK.replace), snippet },
+ impact: { touched: impact.touched, callers: impact.callers, callers2: impact.callers2, files: impact.files, modules: impact.modules, risk: impact.risk, tests: impact.tests, cochanged: impact.cochanged, depthByPath },
+ },
+ };
+ fs.mkdirSync(path.dirname(OUT), { recursive: true });
+ fs.writeFileSync(OUT, JSON.stringify(data) + "\n");
+ console.log(`${path.relative(process.cwd(), OUT)}: 파일 ${data.stats.files}개, 연결 ${data.stats.edges}개, 맥락 파일 ${byFile.size}개 (${ctx.used_tokens}/${ctx.budget_tokens} 토큰), 영향: 직접 ${impact.callers} · 간접 ${impact.callers2} · 파일 ${impact.files} · ${impact.risk} · 커밋 ${data.generated.commit}`);
+} finally {
+ git("worktree", "remove", "--force", src);
+ fs.rmSync(tmp, { recursive: true, force: true });
+}
diff --git a/scripts/verify.mjs b/scripts/verify.mjs
new file mode 100644
index 0000000..bb07983
--- /dev/null
+++ b/scripts/verify.mjs
@@ -0,0 +1,120 @@
+// 화면 검증: 만든 사이트(.output/public)를 띄워 데스크톱·모바일에서 절마다 화면을 찍고,
+// 글자 대비(본문 4.5:1, 큰 글자 3:1)를 렌더된 색으로 잰다. 눈으로 판정하지 않는다.
+// 사용: npm run build && npm run verify [-- --lang en] [-- --out <폴더>]
+// 브라우저는 설치된 Chrome/Edge를 쓴다 (puppeteer-core). CHROME_PATH로 바꿀 수 있다.
+import http from "node:http";
+import fs from "node:fs";
+import path from "node:path";
+import { fileURLToPath } from "node:url";
+import puppeteer from "puppeteer-core";
+
+const ROOT = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
+const argv = process.argv.slice(2);
+const opt = (n, d) => (argv.includes(`--${n}`) ? argv[argv.indexOf(`--${n}`) + 1] : d);
+const LANG = opt("lang", "ko");
+const OUT = path.resolve(opt("out", path.join(ROOT, ".impeccable", "review")));
+const PORT = 3120 + Math.floor(Math.random() * 50);
+const CANDIDATES = [
+ process.env.CHROME_PATH,
+ "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe",
+ "C:/Program Files/Google/Chrome/Application/chrome.exe",
+ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
+ "/usr/bin/google-chrome",
+ "/usr/bin/chromium",
+].filter(Boolean);
+const BROWSER = CANDIDATES.find((p) => fs.existsSync(p));
+if (!BROWSER) throw new Error("Chrome이나 Edge를 찾지 못했습니다. CHROME_PATH를 지정하세요");
+
+// 만든 파일을 그대로 내주는 작은 서버 (GitHub Pages처럼 폴더면 index.html)
+const PUBLIC = path.join(ROOT, ".output", "public");
+const TYPES = { ".html": "text/html; charset=utf-8", ".js": "text/javascript", ".css": "text/css", ".json": "application/json", ".svg": "image/svg+xml", ".png": "image/png", ".woff2": "font/woff2", ".ttf": "font/ttf" };
+const server = http.createServer((req, res) => {
+ let p = path.join(PUBLIC, decodeURIComponent(new URL(req.url, "http://x").pathname));
+ if (fs.existsSync(p) && fs.statSync(p).isDirectory()) p = path.join(p, "index.html");
+ if (!p.startsWith(PUBLIC) || !fs.existsSync(p)) {
+ res.writeHead(404);
+ return res.end();
+ }
+ res.writeHead(200, { "content-type": TYPES[path.extname(p)] ?? "application/octet-stream" });
+ fs.createReadStream(p).pipe(res);
+});
+await new Promise((r) => server.listen(PORT, "127.0.0.1", r));
+const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
+
+const VIEWPORTS = [
+ { name: "desktop", width: 1440, height: 900, mobile: false },
+ { name: "mobile", width: 390, height: 844, mobile: true },
+];
+
+fs.mkdirSync(OUT, { recursive: true });
+const browser = await puppeteer.launch({ executablePath: BROWSER, headless: true, args: ["--hide-scrollbars"] });
+const report = [];
+try {
+ for (const vp of VIEWPORTS) {
+ const page = await browser.newPage();
+ await page.setViewport({ width: vp.width, height: vp.height, deviceScaleFactor: 1, isMobile: vp.mobile, hasTouch: vp.mobile });
+ const errors = [];
+ page.on("pageerror", (e) => errors.push(e.message));
+ page.on("console", (m) => m.type() === "error" && errors.push(m.text()));
+ await page.goto(`http://127.0.0.1:${PORT}${LANG === "ko" ? "/" : "/en/"}`, { waitUntil: "networkidle0" });
+ await page.evaluate(() => document.fonts.ready);
+ const stages = await page.$$eval("[data-stage]", (els) => els.map((e) => Number(e.dataset.stage)));
+ for (const s of stages) {
+ await page.evaluate((s) => {
+ const el = document.querySelector(`[data-stage="${s}"]`);
+ const r = el.getBoundingClientRect();
+ // 절의 가운데가 화면 가운데에 오게 (장면 단계가 그 절로 바뀐다)
+ window.scrollTo({ top: window.scrollY + r.top + Math.min(r.height, window.innerHeight * 1.2) / 2 - window.innerHeight / 2, behavior: "instant" });
+ }, s);
+ await sleep(1600); // 장면 전환이 끝날 때까지
+ const file = path.join(OUT, `${vp.name}-${LANG}-${s}.png`);
+ await page.screenshot({ path: file });
+ }
+ // 글자 대비: 보이는 글자마다 글자색과 그 뒤의 실제 배경(겹친 불투명 배경까지)을 비교
+ const low = await page.evaluate(() => {
+ const parse = (c) => (c.match(/[\d.]+/g) || []).map(Number);
+ const lum = ([r, g, b]) => {
+ const f = (v) => ((v /= 255) <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);
+ return 0.2126 * f(r) + 0.7152 * f(g) + 0.0722 * f(b);
+ };
+ const blend = (top, bottom) => {
+ const a = top[3] ?? 1;
+ return [0, 1, 2].map((i) => top[i] * a + bottom[i] * (1 - a));
+ };
+ const bgOf = (el) => {
+ const layers = [];
+ for (let e = el; e; e = e.parentElement) {
+ const c = parse(getComputedStyle(e).backgroundColor);
+ if (c.length >= 3 && (c[3] ?? 1) > 0) layers.push(c);
+ if ((c[3] ?? 1) >= 1 && c.length >= 3) break;
+ }
+ let out = [22, 23, 28];
+ for (let i = layers.length - 1; i >= 0; i--) out = blend(layers[i], out);
+ return out;
+ };
+ const out = [];
+ const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
+ for (let n = walker.nextNode(); n; n = walker.nextNode()) {
+ const el = n.parentElement;
+ if (!n.data.trim() || !el || !el.offsetParent || el.closest("[aria-hidden=true]")) continue;
+ const cs = getComputedStyle(el);
+ if (cs.visibility === "hidden" || Number(cs.opacity) === 0) continue;
+ const fg = blend(parse(cs.color), bgOf(el));
+ const L1 = lum(fg), L2 = lum(bgOf(el));
+ const ratio = (Math.max(L1, L2) + 0.05) / (Math.min(L1, L2) + 0.05);
+ const size = parseFloat(cs.fontSize);
+ const large = size >= 24 || (size >= 18.66 && Number(cs.fontWeight) >= 700);
+ if (ratio < (large ? 3 : 4.5)) out.push(`${ratio.toFixed(2)} ${size}px "${n.data.trim().slice(0, 40)}"`);
+ }
+ return [...new Set(out)];
+ });
+ const overflow = await page.evaluate(() => document.documentElement.scrollWidth - window.innerWidth);
+ report.push({ viewport: vp.name, stages: stages.length, errors, lowContrast: low, horizontalOverflow: overflow });
+ await page.close();
+ }
+} finally {
+ await browser.close();
+ server.close();
+}
+console.log(JSON.stringify(report, null, 2));
+console.log(`화면: ${OUT}`);
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..cae87c0
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "files": [],
+ "references": [
+ { "path": "./.nuxt/tsconfig.app.json" },
+ { "path": "./.nuxt/tsconfig.server.json" },
+ { "path": "./.nuxt/tsconfig.shared.json" },
+ { "path": "./.nuxt/tsconfig.node.json" }
+ ]
+}