Spaces:
Sleeping
Sleeping
Commit ·
72372f3
1
Parent(s): d1a0ab0
Updated
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- Dockerfile +20 -4
- README.md +0 -11
- {frontend/src/assets → assets}/logo.png +0 -0
- chat_service.py +0 -70
- Internet-banking-manual-updated-may-15-2020.pdf → data/Internet-banking-manual-updated-may-15-2020.pdf +0 -0
- Product-manual.pdf → data/Product-manual.pdf +0 -0
- UBA-Service-Charges.pdf → data/UBA-Service-Charges.pdf +0 -0
- docker-compose.yml +6 -22
- frontend/.gitignore +0 -24
- frontend/Dockerfile +0 -28
- frontend/README.md +0 -16
- frontend/eslint.config.js +0 -29
- frontend/index.html +0 -13
- frontend/nginx.conf +0 -19
- frontend/package-lock.json +0 -0
- frontend/package.json +0 -28
- frontend/public/vite.svg +0 -1
- frontend/src/App.css +0 -42
- frontend/src/App.jsx +87 -70
- frontend/src/assets/react.svg +0 -1
- frontend/src/index.css +188 -80
- frontend/src/main.jsx +7 -7
- frontend/vite.config.js +14 -2
- llm.py +51 -0
- logo.png +0 -0
- main.py +65 -18
- memory.py +34 -0
- node_modules/.package-lock.json +1246 -0
- node_modules/@types/debug/LICENSE +21 -0
- node_modules/@types/debug/README.md +69 -0
- node_modules/@types/debug/index.d.ts +50 -0
- node_modules/@types/debug/package.json +57 -0
- node_modules/@types/estree-jsx/LICENSE +21 -0
- node_modules/@types/estree-jsx/README.md +15 -0
- node_modules/@types/estree-jsx/index.d.ts +114 -0
- node_modules/@types/estree-jsx/package.json +27 -0
- node_modules/@types/estree/LICENSE +21 -0
- node_modules/@types/estree/README.md +15 -0
- node_modules/@types/estree/flow.d.ts +167 -0
- node_modules/@types/estree/index.d.ts +694 -0
- node_modules/@types/estree/package.json +27 -0
- node_modules/@types/hast/LICENSE +21 -0
- node_modules/@types/hast/README.md +15 -0
- node_modules/@types/hast/index.d.ts +282 -0
- node_modules/@types/hast/package.json +42 -0
- node_modules/@types/mdast/LICENSE +21 -0
- node_modules/@types/mdast/README.md +15 -0
- node_modules/@types/mdast/index.d.ts +1123 -0
- node_modules/@types/mdast/package.json +47 -0
- node_modules/@types/ms/LICENSE +21 -0
Dockerfile
CHANGED
|
@@ -1,11 +1,27 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
|
|
|
|
|
|
| 3 |
WORKDIR /app
|
| 4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
COPY requirements.txt .
|
| 6 |
-
RUN pip install --no-cache-dir
|
| 7 |
-
pip install --no-cache-dir -r requirements.txt
|
| 8 |
|
| 9 |
COPY . .
|
|
|
|
|
|
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "
|
|
|
|
| 1 |
+
# Build Frontend
|
| 2 |
+
FROM node:20-slim AS frontend-build
|
| 3 |
+
WORKDIR /app/frontend
|
| 4 |
+
COPY frontend/package*.json ./
|
| 5 |
+
RUN npm install
|
| 6 |
+
COPY frontend/ ./
|
| 7 |
+
RUN npm run build
|
| 8 |
|
| 9 |
+
# Run Backend
|
| 10 |
+
FROM python:3.10-slim
|
| 11 |
WORKDIR /app
|
| 12 |
|
| 13 |
+
# Install system dependencies for sentence-transformers/chromadb
|
| 14 |
+
RUN apt-get update && apt-get install -y \
|
| 15 |
+
build-essential \
|
| 16 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 17 |
+
|
| 18 |
COPY requirements.txt .
|
| 19 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
| 20 |
|
| 21 |
COPY . .
|
| 22 |
+
# Copy built frontend from stage 1
|
| 23 |
+
COPY --from=frontend-build /app/frontend/dist /app/frontend/dist
|
| 24 |
+
|
| 25 |
+
EXPOSE 7860
|
| 26 |
|
| 27 |
+
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]
|
README.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
| 1 |
-
---
|
| 2 |
-
title: UBA AI Support
|
| 3 |
-
emoji: 🏆
|
| 4 |
-
colorFrom: green
|
| 5 |
-
colorTo: blue
|
| 6 |
-
sdk: docker
|
| 7 |
-
pinned: false
|
| 8 |
-
license: apache-2.0
|
| 9 |
-
---
|
| 10 |
-
|
| 11 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{frontend/src/assets → assets}/logo.png
RENAMED
|
File without changes
|
chat_service.py
DELETED
|
@@ -1,70 +0,0 @@
|
|
| 1 |
-
from fastapi import APIRouter, Depends, HTTPException, Body
|
| 2 |
-
from fastapi.responses import StreamingResponse
|
| 3 |
-
from pydantic import BaseModel
|
| 4 |
-
import os
|
| 5 |
-
import json
|
| 6 |
-
import asyncio
|
| 7 |
-
from typing import Dict, List
|
| 8 |
-
import uuid
|
| 9 |
-
import logging
|
| 10 |
-
|
| 11 |
-
router = APIRouter()
|
| 12 |
-
|
| 13 |
-
# In-memory session storage
|
| 14 |
-
sessions: Dict[str, List[Dict]] = {}
|
| 15 |
-
|
| 16 |
-
# Mock XAI Client if key not present
|
| 17 |
-
XAI_API_KEY = os.getenv("XAI_API_KEY")
|
| 18 |
-
|
| 19 |
-
class ChatRequest(BaseModel):
|
| 20 |
-
session_id: str
|
| 21 |
-
message: str
|
| 22 |
-
|
| 23 |
-
def get_session_history(session_id: str):
|
| 24 |
-
if session_id not in sessions:
|
| 25 |
-
sessions[session_id] = [
|
| 26 |
-
{"role": "system", "content": "You are UBA AI Support, a professional customer service agent for UBA Bank. You are helpful, calm, and professional. Never say you are an AI."}
|
| 27 |
-
]
|
| 28 |
-
return sessions[session_id]
|
| 29 |
-
|
| 30 |
-
async def mock_xai_stream(messages):
|
| 31 |
-
"""Mock streaming response generator"""
|
| 32 |
-
response = "Thank you for contacting UBA Support. I can help you with transfers, loans, and account services. How may I assist you today?"
|
| 33 |
-
for word in response.split():
|
| 34 |
-
yield f"data: {json.dumps({'content': word + ' '})}\n\n"
|
| 35 |
-
await asyncio.sleep(0.1)
|
| 36 |
-
yield "data: [DONE]\n\n"
|
| 37 |
-
|
| 38 |
-
async def real_xai_stream(messages):
|
| 39 |
-
"""Real XAI streaming response generator (Placeholder)"""
|
| 40 |
-
# TODO: Implement actual XAI client call
|
| 41 |
-
# This is a placeholder to show where the real logic goes
|
| 42 |
-
yield f"data: {json.dumps({'content': 'I am connecting to XAI... (Feature coming soon)'})}\n\n"
|
| 43 |
-
yield "data: [DONE]\n\n"
|
| 44 |
-
|
| 45 |
-
@router.post("/chat")
|
| 46 |
-
async def chat_endpoint(request: ChatRequest):
|
| 47 |
-
history = get_session_history(request.session_id)
|
| 48 |
-
history.append({"role": "user", "content": request.message})
|
| 49 |
-
|
| 50 |
-
# RAG Retrieval
|
| 51 |
-
from rag_service import rag_service
|
| 52 |
-
context = rag_service.retrieve(request.message)
|
| 53 |
-
if context:
|
| 54 |
-
system_update = f"Relevant Context from UBA Database:\n{context}\n\nUse this context to answer the user if relevant."
|
| 55 |
-
# Append context as specialized system message or user context
|
| 56 |
-
history.append({"role": "system", "content": system_update})
|
| 57 |
-
|
| 58 |
-
async def event_generator():
|
| 59 |
-
stream_func = real_xai_stream if XAI_API_KEY else mock_xai_stream
|
| 60 |
-
full_response = ""
|
| 61 |
-
async for chunk in stream_func(history):
|
| 62 |
-
if "content" in chunk:
|
| 63 |
-
# Extract content locally to save to history (simplified)
|
| 64 |
-
pass
|
| 65 |
-
yield chunk
|
| 66 |
-
|
| 67 |
-
# Save assistant response to history (simplified)
|
| 68 |
-
# history.append({"role": "assistant", "content": full_response})
|
| 69 |
-
|
| 70 |
-
return StreamingResponse(event_generator(), media_type="text/event-stream")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Internet-banking-manual-updated-may-15-2020.pdf → data/Internet-banking-manual-updated-may-15-2020.pdf
RENAMED
|
File without changes
|
Product-manual.pdf → data/Product-manual.pdf
RENAMED
|
File without changes
|
UBA-Service-Charges.pdf → data/UBA-Service-Charges.pdf
RENAMED
|
File without changes
|
docker-compose.yml
CHANGED
|
@@ -1,26 +1,10 @@
|
|
| 1 |
services:
|
| 2 |
-
|
| 3 |
build: .
|
| 4 |
ports:
|
| 5 |
-
- "
|
|
|
|
|
|
|
| 6 |
volumes:
|
| 7 |
-
- .:/app
|
| 8 |
-
|
| 9 |
-
- XAI_API_KEY=\${XAI_API_KEY}
|
| 10 |
-
networks:
|
| 11 |
-
- uba_network
|
| 12 |
-
|
| 13 |
-
frontend:
|
| 14 |
-
build:
|
| 15 |
-
context: ./frontend
|
| 16 |
-
dockerfile: Dockerfile
|
| 17 |
-
ports:
|
| 18 |
-
- "3000:80"
|
| 19 |
-
depends_on:
|
| 20 |
-
- backend
|
| 21 |
-
networks:
|
| 22 |
-
- uba_network
|
| 23 |
-
|
| 24 |
-
networks:
|
| 25 |
-
uba_network:
|
| 26 |
-
driver: bridge
|
|
|
|
| 1 |
services:
|
| 2 |
+
uba-ai-support:
|
| 3 |
build: .
|
| 4 |
ports:
|
| 5 |
+
- "7860:7860"
|
| 6 |
+
env_file:
|
| 7 |
+
- .env
|
| 8 |
volumes:
|
| 9 |
+
- ./chroma_db:/app/chroma_db
|
| 10 |
+
restart: always
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/.gitignore
DELETED
|
@@ -1,24 +0,0 @@
|
|
| 1 |
-
# Logs
|
| 2 |
-
logs
|
| 3 |
-
*.log
|
| 4 |
-
npm-debug.log*
|
| 5 |
-
yarn-debug.log*
|
| 6 |
-
yarn-error.log*
|
| 7 |
-
pnpm-debug.log*
|
| 8 |
-
lerna-debug.log*
|
| 9 |
-
|
| 10 |
-
node_modules
|
| 11 |
-
dist
|
| 12 |
-
dist-ssr
|
| 13 |
-
*.local
|
| 14 |
-
|
| 15 |
-
# Editor directories and files
|
| 16 |
-
.vscode/*
|
| 17 |
-
!.vscode/extensions.json
|
| 18 |
-
.idea
|
| 19 |
-
.DS_Store
|
| 20 |
-
*.suo
|
| 21 |
-
*.ntvs*
|
| 22 |
-
*.njsproj
|
| 23 |
-
*.sln
|
| 24 |
-
*.sw?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/Dockerfile
DELETED
|
@@ -1,28 +0,0 @@
|
|
| 1 |
-
FROM node:18-alpine AS builder
|
| 2 |
-
|
| 3 |
-
WORKDIR /app
|
| 4 |
-
|
| 5 |
-
# Copy package files
|
| 6 |
-
COPY package*.json ./
|
| 7 |
-
|
| 8 |
-
# Install dependencies
|
| 9 |
-
RUN npm ci
|
| 10 |
-
|
| 11 |
-
# Copy source files
|
| 12 |
-
COPY . .
|
| 13 |
-
|
| 14 |
-
# Build the app
|
| 15 |
-
RUN npm run build
|
| 16 |
-
|
| 17 |
-
# Production stage
|
| 18 |
-
FROM nginx:alpine
|
| 19 |
-
|
| 20 |
-
# Copy built files to nginx
|
| 21 |
-
COPY --from=builder /app/dist /usr/share/nginx/html
|
| 22 |
-
|
| 23 |
-
# Copy nginx configuration
|
| 24 |
-
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
| 25 |
-
|
| 26 |
-
EXPOSE 80
|
| 27 |
-
|
| 28 |
-
CMD ["nginx", "-g", "daemon off;"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/README.md
DELETED
|
@@ -1,16 +0,0 @@
|
|
| 1 |
-
# React + Vite
|
| 2 |
-
|
| 3 |
-
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
| 4 |
-
|
| 5 |
-
Currently, two official plugins are available:
|
| 6 |
-
|
| 7 |
-
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
|
| 8 |
-
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
| 9 |
-
|
| 10 |
-
## React Compiler
|
| 11 |
-
|
| 12 |
-
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
| 13 |
-
|
| 14 |
-
## Expanding the ESLint configuration
|
| 15 |
-
|
| 16 |
-
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) for information on how to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/eslint.config.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
| 1 |
-
import js from '@eslint/js'
|
| 2 |
-
import globals from 'globals'
|
| 3 |
-
import reactHooks from 'eslint-plugin-react-hooks'
|
| 4 |
-
import reactRefresh from 'eslint-plugin-react-refresh'
|
| 5 |
-
import { defineConfig, globalIgnores } from 'eslint/config'
|
| 6 |
-
|
| 7 |
-
export default defineConfig([
|
| 8 |
-
globalIgnores(['dist']),
|
| 9 |
-
{
|
| 10 |
-
files: ['**/*.{js,jsx}'],
|
| 11 |
-
extends: [
|
| 12 |
-
js.configs.recommended,
|
| 13 |
-
reactHooks.configs.flat.recommended,
|
| 14 |
-
reactRefresh.configs.vite,
|
| 15 |
-
],
|
| 16 |
-
languageOptions: {
|
| 17 |
-
ecmaVersion: 2020,
|
| 18 |
-
globals: globals.browser,
|
| 19 |
-
parserOptions: {
|
| 20 |
-
ecmaVersion: 'latest',
|
| 21 |
-
ecmaFeatures: { jsx: true },
|
| 22 |
-
sourceType: 'module',
|
| 23 |
-
},
|
| 24 |
-
},
|
| 25 |
-
rules: {
|
| 26 |
-
'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
|
| 27 |
-
},
|
| 28 |
-
},
|
| 29 |
-
])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/index.html
DELETED
|
@@ -1,13 +0,0 @@
|
|
| 1 |
-
<!doctype html>
|
| 2 |
-
<html lang="en">
|
| 3 |
-
<head>
|
| 4 |
-
<meta charset="UTF-8" />
|
| 5 |
-
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
| 6 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
| 7 |
-
<title>frontend</title>
|
| 8 |
-
</head>
|
| 9 |
-
<body>
|
| 10 |
-
<div id="root"></div>
|
| 11 |
-
<script type="module" src="/src/main.jsx"></script>
|
| 12 |
-
</body>
|
| 13 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/nginx.conf
DELETED
|
@@ -1,19 +0,0 @@
|
|
| 1 |
-
server {
|
| 2 |
-
listen 80;
|
| 3 |
-
server_name localhost;
|
| 4 |
-
root /usr/share/nginx/html;
|
| 5 |
-
index index.html;
|
| 6 |
-
|
| 7 |
-
location / {
|
| 8 |
-
try_files $uri $uri/ /index.html;
|
| 9 |
-
}
|
| 10 |
-
|
| 11 |
-
location /api {
|
| 12 |
-
proxy_pass http://backend:8000;
|
| 13 |
-
proxy_http_version 1.1;
|
| 14 |
-
proxy_set_header Upgrade $http_upgrade;
|
| 15 |
-
proxy_set_header Connection 'upgrade';
|
| 16 |
-
proxy_set_header Host $host;
|
| 17 |
-
proxy_cache_bypass $http_upgrade;
|
| 18 |
-
}
|
| 19 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/package-lock.json
DELETED
|
The diff for this file is too large to render.
See raw diff
|
|
|
frontend/package.json
DELETED
|
@@ -1,28 +0,0 @@
|
|
| 1 |
-
{
|
| 2 |
-
"name": "frontend",
|
| 3 |
-
"private": true,
|
| 4 |
-
"version": "0.0.0",
|
| 5 |
-
"type": "module",
|
| 6 |
-
"scripts": {
|
| 7 |
-
"dev": "vite",
|
| 8 |
-
"build": "vite build",
|
| 9 |
-
"lint": "eslint .",
|
| 10 |
-
"preview": "vite preview"
|
| 11 |
-
},
|
| 12 |
-
"dependencies": {
|
| 13 |
-
"react": "^19.2.0",
|
| 14 |
-
"react-dom": "^19.2.0",
|
| 15 |
-
"uuid": "^13.0.0"
|
| 16 |
-
},
|
| 17 |
-
"devDependencies": {
|
| 18 |
-
"@eslint/js": "^9.39.1",
|
| 19 |
-
"@types/react": "^19.2.5",
|
| 20 |
-
"@types/react-dom": "^19.2.3",
|
| 21 |
-
"@vitejs/plugin-react": "^5.1.1",
|
| 22 |
-
"eslint": "^9.39.1",
|
| 23 |
-
"eslint-plugin-react-hooks": "^7.0.1",
|
| 24 |
-
"eslint-plugin-react-refresh": "^0.4.24",
|
| 25 |
-
"globals": "^16.5.0",
|
| 26 |
-
"vite": "^7.2.4"
|
| 27 |
-
}
|
| 28 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/public/vite.svg
DELETED
frontend/src/App.css
DELETED
|
@@ -1,42 +0,0 @@
|
|
| 1 |
-
#root {
|
| 2 |
-
max-width: 1280px;
|
| 3 |
-
margin: 0 auto;
|
| 4 |
-
padding: 2rem;
|
| 5 |
-
text-align: center;
|
| 6 |
-
}
|
| 7 |
-
|
| 8 |
-
.logo {
|
| 9 |
-
height: 6em;
|
| 10 |
-
padding: 1.5em;
|
| 11 |
-
will-change: filter;
|
| 12 |
-
transition: filter 300ms;
|
| 13 |
-
}
|
| 14 |
-
.logo:hover {
|
| 15 |
-
filter: drop-shadow(0 0 2em #646cffaa);
|
| 16 |
-
}
|
| 17 |
-
.logo.react:hover {
|
| 18 |
-
filter: drop-shadow(0 0 2em #61dafbaa);
|
| 19 |
-
}
|
| 20 |
-
|
| 21 |
-
@keyframes logo-spin {
|
| 22 |
-
from {
|
| 23 |
-
transform: rotate(0deg);
|
| 24 |
-
}
|
| 25 |
-
to {
|
| 26 |
-
transform: rotate(360deg);
|
| 27 |
-
}
|
| 28 |
-
}
|
| 29 |
-
|
| 30 |
-
@media (prefers-reduced-motion: no-preference) {
|
| 31 |
-
a:nth-of-type(2) .logo {
|
| 32 |
-
animation: logo-spin infinite 20s linear;
|
| 33 |
-
}
|
| 34 |
-
}
|
| 35 |
-
|
| 36 |
-
.card {
|
| 37 |
-
padding: 2em;
|
| 38 |
-
}
|
| 39 |
-
|
| 40 |
-
.read-the-docs {
|
| 41 |
-
color: #888;
|
| 42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
frontend/src/App.jsx
CHANGED
|
@@ -1,60 +1,53 @@
|
|
| 1 |
-
import { useState,
|
| 2 |
-
import
|
| 3 |
-
import {
|
| 4 |
|
| 5 |
-
|
| 6 |
const [messages, setMessages] = useState([
|
| 7 |
{
|
| 8 |
role: 'assistant',
|
| 9 |
-
content:
|
|
|
|
| 10 |
}
|
| 11 |
]);
|
| 12 |
const [input, setInput] = useState('');
|
| 13 |
const [isLoading, setIsLoading] = useState(false);
|
| 14 |
-
const
|
| 15 |
-
const
|
| 16 |
|
| 17 |
useEffect(() => {
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });
|
| 23 |
-
};
|
| 24 |
-
|
| 25 |
-
useEffect(() => {
|
| 26 |
-
scrollToBottom();
|
| 27 |
-
}, [messages]);
|
| 28 |
|
| 29 |
const handleSubmit = async (e) => {
|
| 30 |
e.preventDefault();
|
| 31 |
if (!input.trim() || isLoading) return;
|
| 32 |
|
| 33 |
-
const userMessage = input.
|
|
|
|
| 34 |
setInput('');
|
| 35 |
-
setMessages(prev => [...prev, { role: 'user', content: userMessage }]);
|
| 36 |
setIsLoading(true);
|
| 37 |
|
| 38 |
try {
|
| 39 |
-
const response = await fetch('
|
| 40 |
method: 'POST',
|
| 41 |
-
headers: {
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
message: userMessage
|
| 47 |
-
}),
|
| 48 |
});
|
| 49 |
|
| 50 |
-
if (!response.ok) throw new Error('
|
| 51 |
|
| 52 |
const reader = response.body.getReader();
|
| 53 |
const decoder = new TextDecoder();
|
| 54 |
-
let
|
|
|
|
| 55 |
|
| 56 |
-
|
| 57 |
-
setMessages(prev => [...prev, { role: 'assistant', content: '' }]);
|
| 58 |
|
| 59 |
while (true) {
|
| 60 |
const { done, value } = await reader.read();
|
|
@@ -65,70 +58,94 @@ function App() {
|
|
| 65 |
|
| 66 |
for (const line of lines) {
|
| 67 |
if (line.startsWith('data: ')) {
|
| 68 |
-
const
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
try {
|
| 72 |
-
const
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
}
|
| 81 |
} catch (e) {
|
| 82 |
-
console.error('Error parsing
|
| 83 |
}
|
| 84 |
}
|
| 85 |
}
|
| 86 |
}
|
| 87 |
} catch (error) {
|
| 88 |
-
console.error('
|
| 89 |
-
setMessages(prev => [...prev, {
|
| 90 |
-
|
|
|
|
|
|
|
|
|
|
| 91 |
setIsLoading(false);
|
| 92 |
}
|
| 93 |
};
|
| 94 |
|
| 95 |
return (
|
| 96 |
<div className="app-container">
|
| 97 |
-
<header
|
| 98 |
-
<
|
| 99 |
-
|
|
|
|
|
|
|
| 100 |
</header>
|
| 101 |
|
| 102 |
-
<
|
| 103 |
-
|
| 104 |
-
{
|
| 105 |
-
<div
|
| 106 |
-
{msg.
|
| 107 |
-
<p key={i} style={{ margin: line.trim() === '' ? '10px 0' : '5px 0' }}>
|
| 108 |
-
{line}
|
| 109 |
-
</p>
|
| 110 |
-
))}
|
| 111 |
</div>
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 117 |
<input
|
| 118 |
type="text"
|
| 119 |
-
className="chat-input"
|
| 120 |
value={input}
|
| 121 |
onChange={(e) => setInput(e.target.value)}
|
| 122 |
-
placeholder="
|
| 123 |
disabled={isLoading}
|
| 124 |
/>
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
</
|
| 128 |
-
</
|
| 129 |
-
</
|
| 130 |
</div>
|
| 131 |
);
|
| 132 |
-
}
|
| 133 |
|
| 134 |
export default App;
|
|
|
|
| 1 |
+
import React, { useState, useEffect, useRef } from 'react';
|
| 2 |
+
import ReactMarkdown from 'react-markdown';
|
| 3 |
+
import { Send, User, Bot, Loader2 } from 'lucide-react';
|
| 4 |
|
| 5 |
+
const App = () => {
|
| 6 |
const [messages, setMessages] = useState([
|
| 7 |
{
|
| 8 |
role: 'assistant',
|
| 9 |
+
content: "Hello! I am UBA AI Support. How can I assist you with your banking needs today?",
|
| 10 |
+
id: 'welcome'
|
| 11 |
}
|
| 12 |
]);
|
| 13 |
const [input, setInput] = useState('');
|
| 14 |
const [isLoading, setIsLoading] = useState(false);
|
| 15 |
+
const [sessionId, setSessionId] = useState(localStorage.getItem('uba_session_id') || null);
|
| 16 |
+
const scrollRef = useRef(null);
|
| 17 |
|
| 18 |
useEffect(() => {
|
| 19 |
+
if (scrollRef.current) {
|
| 20 |
+
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
| 21 |
+
}
|
| 22 |
+
}, [messages, isLoading]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
const handleSubmit = async (e) => {
|
| 25 |
e.preventDefault();
|
| 26 |
if (!input.trim() || isLoading) return;
|
| 27 |
|
| 28 |
+
const userMessage = { role: 'user', content: input, id: Date.now() };
|
| 29 |
+
setMessages(prev => [...prev, userMessage]);
|
| 30 |
setInput('');
|
|
|
|
| 31 |
setIsLoading(true);
|
| 32 |
|
| 33 |
try {
|
| 34 |
+
const response = await fetch('/chat', {
|
| 35 |
method: 'POST',
|
| 36 |
+
headers: { 'Content-Type': 'application/json' },
|
| 37 |
+
body: json.stringify({
|
| 38 |
+
message: input,
|
| 39 |
+
session_id: sessionId
|
| 40 |
+
})
|
|
|
|
|
|
|
| 41 |
});
|
| 42 |
|
| 43 |
+
if (!response.ok) throw new Error('Failed to connect to server');
|
| 44 |
|
| 45 |
const reader = response.body.getReader();
|
| 46 |
const decoder = new TextDecoder();
|
| 47 |
+
let assistantMsgId = Date.now() + 1;
|
| 48 |
+
let assistantContent = '';
|
| 49 |
|
| 50 |
+
setMessages(prev => [...prev, { role: 'assistant', content: '', id: assistantMsgId }]);
|
|
|
|
| 51 |
|
| 52 |
while (true) {
|
| 53 |
const { done, value } = await reader.read();
|
|
|
|
| 58 |
|
| 59 |
for (const line of lines) {
|
| 60 |
if (line.startsWith('data: ')) {
|
| 61 |
+
const dataStr = line.replace('data: ', '').trim();
|
| 62 |
+
|
| 63 |
+
if (dataStr === '[DONE]') {
|
| 64 |
+
setIsLoading(false);
|
| 65 |
+
continue;
|
| 66 |
+
}
|
| 67 |
|
| 68 |
try {
|
| 69 |
+
const data = JSON.parse(dataStr);
|
| 70 |
+
|
| 71 |
+
if (data.session_id && !sessionId) {
|
| 72 |
+
setSessionId(data.session_id);
|
| 73 |
+
localStorage.setItem('uba_session_id', data.session_id);
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
if (data.content) {
|
| 77 |
+
assistantContent += data.content;
|
| 78 |
+
setMessages(prev => prev.map(msg =>
|
| 79 |
+
msg.id === assistantMsgId ? { ...msg, content: assistantContent } : msg
|
| 80 |
+
));
|
| 81 |
}
|
| 82 |
} catch (e) {
|
| 83 |
+
console.error('Error parsing SSE data', e);
|
| 84 |
}
|
| 85 |
}
|
| 86 |
}
|
| 87 |
}
|
| 88 |
} catch (error) {
|
| 89 |
+
console.error('Chat error:', error);
|
| 90 |
+
setMessages(prev => [...prev, {
|
| 91 |
+
role: 'assistant',
|
| 92 |
+
content: "I'm sorry, I'm experiencing some technical difficulties. Please try again later.",
|
| 93 |
+
id: Date.now() + 2
|
| 94 |
+
}]);
|
| 95 |
setIsLoading(false);
|
| 96 |
}
|
| 97 |
};
|
| 98 |
|
| 99 |
return (
|
| 100 |
<div className="app-container">
|
| 101 |
+
<header>
|
| 102 |
+
<div className="header-logo">
|
| 103 |
+
<img src="/assets/logo.png" alt="UBA Logo" />
|
| 104 |
+
<span className="header-title">UBA AI Support</span>
|
| 105 |
+
</div>
|
| 106 |
</header>
|
| 107 |
|
| 108 |
+
<div className="chat-window" ref={scrollRef}>
|
| 109 |
+
{messages.map((msg) => (
|
| 110 |
+
<div key={msg.id} className={`message ${msg.role}`}>
|
| 111 |
+
<div className="message-sender">
|
| 112 |
+
{msg.role === 'user' ? 'You' : 'UBA Support'}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 113 |
</div>
|
| 114 |
+
<div className="message-bubble">
|
| 115 |
+
<div className="message-content">
|
| 116 |
+
<ReactMarkdown>{msg.content}</ReactMarkdown>
|
| 117 |
+
</div>
|
| 118 |
+
</div>
|
| 119 |
+
</div>
|
| 120 |
+
))}
|
| 121 |
+
{isLoading && (
|
| 122 |
+
<div className="message assistant">
|
| 123 |
+
<div className="message-sender">UBA Support</div>
|
| 124 |
+
<div className="typing-indicator">
|
| 125 |
+
<div className="dot"></div>
|
| 126 |
+
<div className="dot"></div>
|
| 127 |
+
<div className="dot"></div>
|
| 128 |
+
</div>
|
| 129 |
+
</div>
|
| 130 |
+
)}
|
| 131 |
+
</div>
|
| 132 |
+
|
| 133 |
+
<form className="input-area" onSubmit={handleSubmit}>
|
| 134 |
+
<div className="input-container">
|
| 135 |
<input
|
| 136 |
type="text"
|
|
|
|
| 137 |
value={input}
|
| 138 |
onChange={(e) => setInput(e.target.value)}
|
| 139 |
+
placeholder="Ask about UBA services, accounts, or support..."
|
| 140 |
disabled={isLoading}
|
| 141 |
/>
|
| 142 |
+
</div>
|
| 143 |
+
<button type="submit" className="send-btn" disabled={isLoading || !input.trim()}>
|
| 144 |
+
{isLoading ? <Loader2 className="animate-spin" /> : <Send size={20} />}
|
| 145 |
+
</button>
|
| 146 |
+
</form>
|
| 147 |
</div>
|
| 148 |
);
|
| 149 |
+
};
|
| 150 |
|
| 151 |
export default App;
|
frontend/src/assets/react.svg
DELETED
frontend/src/index.css
CHANGED
|
@@ -1,142 +1,250 @@
|
|
|
|
|
|
|
|
| 1 |
:root {
|
| 2 |
-
--
|
| 3 |
-
--
|
| 4 |
-
--
|
| 5 |
-
--
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
}
|
| 7 |
|
| 8 |
-
|
|
|
|
| 9 |
margin: 0;
|
| 10 |
-
|
| 11 |
-
-webkit-font-smoothing: antialiased;
|
| 12 |
-
-moz-osx-font-smoothing: grayscale;
|
| 13 |
-
background-color: var(--uba-gray);
|
| 14 |
-
color: var(--text-dark);
|
| 15 |
}
|
| 16 |
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
color: var(--
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
display: flex;
|
| 22 |
align-items: center;
|
| 23 |
-
|
| 24 |
position: sticky;
|
| 25 |
top: 0;
|
| 26 |
-
z-index:
|
| 27 |
}
|
| 28 |
|
| 29 |
-
.
|
| 30 |
height: 40px;
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
border-radius: 4px;
|
| 35 |
}
|
| 36 |
|
| 37 |
-
.
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
overflow: hidden;
|
| 47 |
}
|
| 48 |
|
| 49 |
-
.
|
| 50 |
flex: 1;
|
| 51 |
-
padding: 1.5rem;
|
| 52 |
overflow-y: auto;
|
|
|
|
| 53 |
display: flex;
|
| 54 |
flex-direction: column;
|
| 55 |
-
gap:
|
| 56 |
-
background
|
| 57 |
}
|
| 58 |
|
| 59 |
-
.message
|
|
|
|
|
|
|
| 60 |
max-width: 80%;
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
border-radius: 12px;
|
| 63 |
-
line-height: 1.
|
|
|
|
| 64 |
position: relative;
|
| 65 |
-
word-wrap: break-word;
|
| 66 |
}
|
| 67 |
|
| 68 |
-
.message-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
color: var(--text-dark);
|
| 72 |
-
border: 1px solid #e0e0e0;
|
| 73 |
border-bottom-right-radius: 2px;
|
| 74 |
}
|
| 75 |
|
| 76 |
-
.message-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
border: 1px solid #ffe0e0;
|
| 81 |
border-bottom-left-radius: 2px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
}
|
| 83 |
|
| 84 |
.input-area {
|
| 85 |
-
padding:
|
| 86 |
-
background
|
| 87 |
-
border-top: 1px solid
|
| 88 |
display: flex;
|
| 89 |
-
gap:
|
| 90 |
}
|
| 91 |
|
| 92 |
-
.
|
| 93 |
flex: 1;
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
font-size: 1rem;
|
| 98 |
outline: none;
|
| 99 |
-
transition: border-color 0.2s;
|
|
|
|
| 100 |
}
|
| 101 |
|
| 102 |
-
|
| 103 |
-
border-color: var(--
|
|
|
|
| 104 |
}
|
| 105 |
|
| 106 |
-
.send-
|
| 107 |
-
background-color: var(--
|
| 108 |
-
color:
|
| 109 |
border: none;
|
| 110 |
-
width:
|
| 111 |
-
height:
|
| 112 |
border-radius: 50%;
|
| 113 |
-
cursor: pointer;
|
| 114 |
display: flex;
|
| 115 |
align-items: center;
|
| 116 |
justify-content: center;
|
| 117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
}
|
| 119 |
|
| 120 |
-
.send-
|
| 121 |
-
|
| 122 |
}
|
| 123 |
|
| 124 |
-
.send-
|
| 125 |
-
background-color:
|
| 126 |
cursor: not-allowed;
|
| 127 |
}
|
| 128 |
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
}
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
}
|
| 136 |
-
|
| 137 |
-
|
|
|
|
|
|
|
| 138 |
border-radius: 4px;
|
|
|
|
| 139 |
}
|
| 140 |
-
|
| 141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 142 |
}
|
|
|
|
| 1 |
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
|
| 2 |
+
|
| 3 |
:root {
|
| 4 |
+
--primary: #B81104; /* Milano Red */
|
| 5 |
+
--primary-hover: #9a0e03;
|
| 6 |
+
--secondary: #FFFFFF;
|
| 7 |
+
--bg-color: #f8f9fa;
|
| 8 |
+
--text-main: #212529;
|
| 9 |
+
--text-muted: #6c757d;
|
| 10 |
+
--border-color: #dee2e6;
|
| 11 |
+
--bubble-user: #B81104;
|
| 12 |
+
--bubble-bot: #FFFFFF;
|
| 13 |
+
--shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
| 14 |
}
|
| 15 |
|
| 16 |
+
* {
|
| 17 |
+
box-sizing: border-box;
|
| 18 |
margin: 0;
|
| 19 |
+
padding: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
}
|
| 21 |
|
| 22 |
+
body {
|
| 23 |
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
| 24 |
+
background-color: var(--bg-color);
|
| 25 |
+
color: var(--text-main);
|
| 26 |
+
height: 100vh;
|
| 27 |
+
display: flex;
|
| 28 |
+
flex-direction: column;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
#root {
|
| 32 |
+
height: 100%;
|
| 33 |
+
display: flex;
|
| 34 |
+
flex-direction: column;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.app-container {
|
| 38 |
+
max-width: 900px;
|
| 39 |
+
margin: 0 auto;
|
| 40 |
+
width: 100%;
|
| 41 |
+
height: 100%;
|
| 42 |
+
display: flex;
|
| 43 |
+
flex-direction: column;
|
| 44 |
+
background: white;
|
| 45 |
+
box-shadow: var(--shadow);
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
header {
|
| 49 |
+
padding: 1rem 2rem;
|
| 50 |
+
background-color: var(--secondary);
|
| 51 |
+
border-bottom: 2px solid var(--primary);
|
| 52 |
display: flex;
|
| 53 |
align-items: center;
|
| 54 |
+
justify-content: space-between;
|
| 55 |
position: sticky;
|
| 56 |
top: 0;
|
| 57 |
+
z-index: 10;
|
| 58 |
}
|
| 59 |
|
| 60 |
+
.header-logo {
|
| 61 |
height: 40px;
|
| 62 |
+
display: flex;
|
| 63 |
+
align-items: center;
|
| 64 |
+
gap: 12px;
|
|
|
|
| 65 |
}
|
| 66 |
|
| 67 |
+
.header-logo img {
|
| 68 |
+
height: 100%;
|
| 69 |
+
object-fit: contain;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
.header-title {
|
| 73 |
+
font-weight: 700;
|
| 74 |
+
color: var(--primary);
|
| 75 |
+
font-size: 1.25rem;
|
|
|
|
| 76 |
}
|
| 77 |
|
| 78 |
+
.chat-window {
|
| 79 |
flex: 1;
|
|
|
|
| 80 |
overflow-y: auto;
|
| 81 |
+
padding: 2rem;
|
| 82 |
display: flex;
|
| 83 |
flex-direction: column;
|
| 84 |
+
gap: 1.5rem;
|
| 85 |
+
background: #fdfdfd;
|
| 86 |
}
|
| 87 |
|
| 88 |
+
.message {
|
| 89 |
+
display: flex;
|
| 90 |
+
flex-direction: column;
|
| 91 |
max-width: 80%;
|
| 92 |
+
animation: fadeIn 0.3s ease;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
@keyframes fadeIn {
|
| 96 |
+
from { opacity: 0; transform: translateY(10px); }
|
| 97 |
+
to { opacity: 1; transform: translateY(0); }
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
.message.user {
|
| 101 |
+
align-self: flex-end;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
.message.assistant {
|
| 105 |
+
align-self: flex-start;
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
.message-bubble {
|
| 109 |
+
padding: 1rem 1.25rem;
|
| 110 |
border-radius: 12px;
|
| 111 |
+
line-height: 1.6;
|
| 112 |
+
font-size: 1rem;
|
| 113 |
position: relative;
|
|
|
|
| 114 |
}
|
| 115 |
|
| 116 |
+
.user .message-bubble {
|
| 117 |
+
background-color: var(--bubble-user);
|
| 118 |
+
color: white;
|
|
|
|
|
|
|
| 119 |
border-bottom-right-radius: 2px;
|
| 120 |
}
|
| 121 |
|
| 122 |
+
.assistant .message-bubble {
|
| 123 |
+
background-color: var(--bubble-bot);
|
| 124 |
+
color: var(--text-main);
|
| 125 |
+
border: 1px solid var(--border-color);
|
|
|
|
| 126 |
border-bottom-left-radius: 2px;
|
| 127 |
+
box-shadow: 0 2px 5px rgba(0,0,0,0.05);
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
.message-sender {
|
| 131 |
+
font-size: 0.75rem;
|
| 132 |
+
font-weight: 600;
|
| 133 |
+
margin-bottom: 4px;
|
| 134 |
+
color: var(--text-muted);
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
.message-content p {
|
| 138 |
+
margin-bottom: 0.75rem;
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
.message-content p:last-child {
|
| 142 |
+
margin-bottom: 0;
|
| 143 |
}
|
| 144 |
|
| 145 |
.input-area {
|
| 146 |
+
padding: 1.5rem 2rem;
|
| 147 |
+
background: white;
|
| 148 |
+
border-top: 1px solid var(--border-color);
|
| 149 |
display: flex;
|
| 150 |
+
gap: 1rem;
|
| 151 |
}
|
| 152 |
|
| 153 |
+
.input-container {
|
| 154 |
flex: 1;
|
| 155 |
+
position: relative;
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
input {
|
| 159 |
+
width: 100%;
|
| 160 |
+
padding: 1rem 1.25rem;
|
| 161 |
+
border: 1px solid var(--border-color);
|
| 162 |
+
border-radius: 30px;
|
| 163 |
font-size: 1rem;
|
| 164 |
outline: none;
|
| 165 |
+
transition: border-color 0.2s, box-shadow 0.2s;
|
| 166 |
+
font-family: inherit;
|
| 167 |
}
|
| 168 |
|
| 169 |
+
input:focus {
|
| 170 |
+
border-color: var(--primary);
|
| 171 |
+
box-shadow: 0 0 0 3px rgba(184, 17, 4, 0.1);
|
| 172 |
}
|
| 173 |
|
| 174 |
+
button.send-btn {
|
| 175 |
+
background-color: var(--primary);
|
| 176 |
+
color: white;
|
| 177 |
border: none;
|
| 178 |
+
width: 50px;
|
| 179 |
+
height: 50px;
|
| 180 |
border-radius: 50%;
|
|
|
|
| 181 |
display: flex;
|
| 182 |
align-items: center;
|
| 183 |
justify-content: center;
|
| 184 |
+
cursor: pointer;
|
| 185 |
+
transition: background-color 0.2s, transform 0.1s;
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
button.send-btn:hover {
|
| 189 |
+
background-color: var(--primary-hover);
|
| 190 |
}
|
| 191 |
|
| 192 |
+
button.send-btn:active {
|
| 193 |
+
transform: scale(0.95);
|
| 194 |
}
|
| 195 |
|
| 196 |
+
button.send-btn:disabled {
|
| 197 |
+
background-color: var(--border-color);
|
| 198 |
cursor: not-allowed;
|
| 199 |
}
|
| 200 |
|
| 201 |
+
.typing-indicator {
|
| 202 |
+
display: flex;
|
| 203 |
+
gap: 4px;
|
| 204 |
+
padding: 8px 12px;
|
| 205 |
+
background: #f0f0f0;
|
| 206 |
+
border-radius: 12px;
|
| 207 |
+
width: fit-content;
|
| 208 |
+
margin-bottom: 1rem;
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
.dot {
|
| 212 |
+
width: 6px;
|
| 213 |
+
height: 6px;
|
| 214 |
+
background: var(--text-muted);
|
| 215 |
+
border-radius: 50%;
|
| 216 |
+
animation: bounce 1.4s infinite ease-in-out both;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
.dot:nth-child(1) { animation-delay: -0.32s; }
|
| 220 |
+
.dot:nth-child(2) { animation-delay: -0.16s; }
|
| 221 |
+
|
| 222 |
+
@keyframes bounce {
|
| 223 |
+
0%, 80%, 100% { transform: scale(0); }
|
| 224 |
+
40% { transform: scale(1.0); }
|
| 225 |
}
|
| 226 |
+
|
| 227 |
+
/* Markdown styling */
|
| 228 |
+
.assistant .message-bubble ul, .assistant .message-bubble ol {
|
| 229 |
+
margin-left: 1.5rem;
|
| 230 |
+
margin-bottom: 0.75rem;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
.assistant .message-bubble li {
|
| 234 |
+
margin-bottom: 0.25rem;
|
| 235 |
}
|
| 236 |
+
|
| 237 |
+
code {
|
| 238 |
+
background: #f1f3f5;
|
| 239 |
+
padding: 0.2rem 0.4rem;
|
| 240 |
border-radius: 4px;
|
| 241 |
+
font-family: monospace;
|
| 242 |
}
|
| 243 |
+
|
| 244 |
+
pre {
|
| 245 |
+
background: #f1f3f5;
|
| 246 |
+
padding: 1rem;
|
| 247 |
+
border-radius: 8px;
|
| 248 |
+
overflow-x: auto;
|
| 249 |
+
margin: 1rem 0;
|
| 250 |
}
|
frontend/src/main.jsx
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
-
import
|
| 2 |
-
import
|
| 3 |
-
import './index.css'
|
| 4 |
import App from './App.jsx'
|
|
|
|
| 5 |
|
| 6 |
-
createRoot(document.getElementById('root')).render(
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
)
|
|
|
|
| 1 |
+
import React from 'react'
|
| 2 |
+
import ReactDOM from 'react-dom/client'
|
|
|
|
| 3 |
import App from './App.jsx'
|
| 4 |
+
import './index.css'
|
| 5 |
|
| 6 |
+
ReactDOM.createRoot(document.getElementById('root')).render(
|
| 7 |
+
<React.StrictMode>
|
| 8 |
+
<App />
|
| 9 |
+
</React.StrictMode>,
|
| 10 |
)
|
frontend/vite.config.js
CHANGED
|
@@ -1,7 +1,19 @@
|
|
| 1 |
import { defineConfig } from 'vite'
|
| 2 |
import react from '@vitejs/plugin-react'
|
| 3 |
|
| 4 |
-
// https://
|
| 5 |
export default defineConfig({
|
| 6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
})
|
|
|
|
| 1 |
import { defineConfig } from 'vite'
|
| 2 |
import react from '@vitejs/plugin-react'
|
| 3 |
|
| 4 |
+
// https://vitejs.dev/config/
|
| 5 |
export default defineConfig({
|
| 6 |
+
plugins: [react()],
|
| 7 |
+
server: {
|
| 8 |
+
proxy: {
|
| 9 |
+
'/chat': {
|
| 10 |
+
target: 'http://localhost:7860',
|
| 11 |
+
changeOrigin: true,
|
| 12 |
+
},
|
| 13 |
+
'/assets': {
|
| 14 |
+
target: 'http://localhost:7860',
|
| 15 |
+
changeOrigin: true,
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
})
|
llm.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import json
|
| 3 |
+
from typing import AsyncGenerator, List, Dict
|
| 4 |
+
from openai import AsyncOpenAI
|
| 5 |
+
from dotenv import load_dotenv
|
| 6 |
+
|
| 7 |
+
load_dotenv()
|
| 8 |
+
|
| 9 |
+
XAI_API_KEY = os.getenv("XAI_API_KEY")
|
| 10 |
+
MODEL_NAME = "grok-4-1-fast-reasoning"
|
| 11 |
+
|
| 12 |
+
client = AsyncOpenAI(
|
| 13 |
+
api_key=XAI_API_KEY,
|
| 14 |
+
base_url="https://api.x.ai/v1",
|
| 15 |
+
)
|
| 16 |
+
|
| 17 |
+
SYSTEM_PROMPT = """You are UBA AI Support, a professional, calm, and reassuring customer support agent for UBA Bank.
|
| 18 |
+
You adhere to Nigerian banking standards.
|
| 19 |
+
Rules:
|
| 20 |
+
- Never say "as an AI".
|
| 21 |
+
- Never expose internal system details.
|
| 22 |
+
- Reason logically.
|
| 23 |
+
- Sound like a real UBA support staff.
|
| 24 |
+
- Use the provided context (RAG) to answer questions.
|
| 25 |
+
- If information is missing from the context, use web search results if provided.
|
| 26 |
+
- If you still don't know, suggest visiting a UBA branch or calling the official help line.
|
| 27 |
+
- Use proper formatting (paragraphs, bullet points) for readability.
|
| 28 |
+
- Maintain a helpful and polite tone.
|
| 29 |
+
"""
|
| 30 |
+
|
| 31 |
+
async def get_streaming_response(messages: List[Dict[str, str]]) -> AsyncGenerator[str, None]:
|
| 32 |
+
"""
|
| 33 |
+
Streams responses from Grok with the UBA persona.
|
| 34 |
+
"""
|
| 35 |
+
# Prepend system prompt if not present
|
| 36 |
+
if not any(m.get("role") == "system" for m in messages):
|
| 37 |
+
messages = [{"role": "system", "content": SYSTEM_PROMPT}] + messages
|
| 38 |
+
|
| 39 |
+
try:
|
| 40 |
+
response = await client.chat.completions.create(
|
| 41 |
+
model=MODEL_NAME,
|
| 42 |
+
messages=messages,
|
| 43 |
+
stream=True,
|
| 44 |
+
)
|
| 45 |
+
|
| 46 |
+
async for chunk in response:
|
| 47 |
+
content = chunk.choices[0].delta.content or ""
|
| 48 |
+
if content:
|
| 49 |
+
yield content
|
| 50 |
+
except Exception as e:
|
| 51 |
+
yield f"I apologize, but I'm having trouble connecting to my systems right now. Please try again in a moment. (Error: {str(e)})"
|
logo.png
DELETED
|
Binary file (3.95 kB)
|
|
|
main.py
CHANGED
|
@@ -1,36 +1,83 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
| 3 |
from pydantic import BaseModel
|
| 4 |
-
from typing import
|
| 5 |
-
import os
|
| 6 |
-
from dotenv import load_dotenv
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
|
|
|
|
|
|
| 10 |
|
| 11 |
-
app = FastAPI(title="UBA AI Support"
|
| 12 |
|
| 13 |
-
# CORS
|
| 14 |
app.add_middleware(
|
| 15 |
CORSMiddleware,
|
| 16 |
-
allow_origins=["*"],
|
| 17 |
-
allow_credentials=True,
|
| 18 |
allow_methods=["*"],
|
| 19 |
allow_headers=["*"],
|
| 20 |
)
|
| 21 |
|
| 22 |
class ChatRequest(BaseModel):
|
| 23 |
-
session_id: str
|
| 24 |
message: str
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
|
| 30 |
-
#
|
| 31 |
-
|
| 32 |
-
app.
|
| 33 |
|
| 34 |
if __name__ == "__main__":
|
| 35 |
import uvicorn
|
| 36 |
-
uvicorn.run(app, host="0.0.0.0", port=
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import json
|
| 3 |
+
import uuid
|
| 4 |
+
from fastapi import FastAPI, Request, HTTPException
|
| 5 |
+
from fastapi.responses import StreamingResponse
|
| 6 |
from fastapi.middleware.cors import CORSMiddleware
|
| 7 |
+
from fastapi.staticfiles import StaticFiles
|
| 8 |
from pydantic import BaseModel
|
| 9 |
+
from typing import Optional
|
|
|
|
|
|
|
| 10 |
|
| 11 |
+
from llm import get_streaming_response
|
| 12 |
+
from rag import rag_system
|
| 13 |
+
from web_search import perform_web_search
|
| 14 |
+
from memory import memory_system
|
| 15 |
|
| 16 |
+
app = FastAPI(title="UBA AI Support")
|
| 17 |
|
| 18 |
+
# CORS
|
| 19 |
app.add_middleware(
|
| 20 |
CORSMiddleware,
|
| 21 |
+
allow_origins=["*"],
|
|
|
|
| 22 |
allow_methods=["*"],
|
| 23 |
allow_headers=["*"],
|
| 24 |
)
|
| 25 |
|
| 26 |
class ChatRequest(BaseModel):
|
|
|
|
| 27 |
message: str
|
| 28 |
+
session_id: Optional[str] = None
|
| 29 |
+
|
| 30 |
+
@app.post("/chat")
|
| 31 |
+
async def chat_endpoint(request: ChatRequest):
|
| 32 |
+
session_id = request.session_id or str(uuid.uuid4())
|
| 33 |
+
user_query = request.message
|
| 34 |
+
|
| 35 |
+
# 1. Get history
|
| 36 |
+
history = memory_system.get_history(session_id)
|
| 37 |
+
|
| 38 |
+
# 2. Query RAG
|
| 39 |
+
context = rag_system.query(user_query)
|
| 40 |
+
|
| 41 |
+
# 3. If RAG context is weak, try web search (simplified logic for now)
|
| 42 |
+
web_context = ""
|
| 43 |
+
if len(context) < 100:
|
| 44 |
+
web_context = await perform_web_search(user_query)
|
| 45 |
+
|
| 46 |
+
# 4. Prepare prompt
|
| 47 |
+
augmented_query = user_query
|
| 48 |
+
if context or web_context:
|
| 49 |
+
augmented_query = f"Context from UBA Documentation:\n{context}\n\nWeb Search Info:\n{web_context}\n\nUser Question: {user_query}"
|
| 50 |
+
|
| 51 |
+
# 5. Add to memory
|
| 52 |
+
memory_system.add_message(session_id, "user", user_query)
|
| 53 |
+
|
| 54 |
+
# 6. Stream response
|
| 55 |
+
async def event_generator():
|
| 56 |
+
# First send the session_id
|
| 57 |
+
yield f"data: {json.dumps({'session_id': session_id})}\n\n"
|
| 58 |
+
|
| 59 |
+
full_response = ""
|
| 60 |
+
# We pass history[:-1] + [augmented_query] to present the augmented query as the last message
|
| 61 |
+
messages_for_llm = history[:-1] + [{"role": "user", "content": augmented_query}]
|
| 62 |
+
|
| 63 |
+
async for chunk in get_streaming_response(messages_for_llm):
|
| 64 |
+
full_response += chunk
|
| 65 |
+
yield f"data: {json.dumps({'content': chunk})}\n\n"
|
| 66 |
+
|
| 67 |
+
# Save assistant response to memory
|
| 68 |
+
memory_system.add_message(session_id, "assistant", full_response)
|
| 69 |
+
yield "data: [DONE]\n\n"
|
| 70 |
+
|
| 71 |
+
return StreamingResponse(event_generator(), media_type="text/event-stream")
|
| 72 |
|
| 73 |
+
# Mount assets and frontend
|
| 74 |
+
if os.path.exists("./assets"):
|
| 75 |
+
app.mount("/assets", StaticFiles(directory="assets"), name="assets")
|
| 76 |
|
| 77 |
+
# The frontend should be built and placed in a 'dist' folder or served directly if in dev
|
| 78 |
+
if os.path.exists("./frontend/dist"):
|
| 79 |
+
app.mount("/", StaticFiles(directory="./frontend/dist", html=True), name="frontend")
|
| 80 |
|
| 81 |
if __name__ == "__main__":
|
| 82 |
import uvicorn
|
| 83 |
+
uvicorn.run(app, host="0.0.0.0", port=7860)
|
memory.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from typing import List, Dict
|
| 2 |
+
import time
|
| 3 |
+
|
| 4 |
+
class SessionMemory:
|
| 5 |
+
def __init__(self):
|
| 6 |
+
# session_id -> list of messages
|
| 7 |
+
self.sessions: Dict[str, List[Dict[str, str]]] = {}
|
| 8 |
+
# session_id -> last update timestamp
|
| 9 |
+
self.last_update: Dict[str, float] = {}
|
| 10 |
+
|
| 11 |
+
def get_history(self, session_id: str) -> List[Dict[str, str]]:
|
| 12 |
+
if session_id not in self.sessions:
|
| 13 |
+
self.sessions[session_id] = []
|
| 14 |
+
return self.sessions[session_id]
|
| 15 |
+
|
| 16 |
+
def add_message(self, session_id: str, role: str, content: str):
|
| 17 |
+
if session_id not in self.sessions:
|
| 18 |
+
self.sessions[session_id] = []
|
| 19 |
+
|
| 20 |
+
self.sessions[session_id].append({"role": role, "content": content})
|
| 21 |
+
self.last_update[session_id] = time.time()
|
| 22 |
+
|
| 23 |
+
# Limit history to last 10 messages to keep context size manageable
|
| 24 |
+
if len(self.sessions[session_id]) > 10:
|
| 25 |
+
self.sessions[session_id] = self.sessions[session_id][-10:]
|
| 26 |
+
|
| 27 |
+
def clear_session(self, session_id: str):
|
| 28 |
+
if session_id in self.sessions:
|
| 29 |
+
del self.sessions[session_id]
|
| 30 |
+
if session_id in self.last_update:
|
| 31 |
+
del self.last_update[session_id]
|
| 32 |
+
|
| 33 |
+
# Singleton instance
|
| 34 |
+
memory_system = SessionMemory()
|
node_modules/.package-lock.json
ADDED
|
@@ -0,0 +1,1246 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "UBA_AI_Support",
|
| 3 |
+
"lockfileVersion": 3,
|
| 4 |
+
"requires": true,
|
| 5 |
+
"packages": {
|
| 6 |
+
"node_modules/@types/debug": {
|
| 7 |
+
"version": "4.1.12",
|
| 8 |
+
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
|
| 9 |
+
"integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
|
| 10 |
+
"license": "MIT",
|
| 11 |
+
"dependencies": {
|
| 12 |
+
"@types/ms": "*"
|
| 13 |
+
}
|
| 14 |
+
},
|
| 15 |
+
"node_modules/@types/estree": {
|
| 16 |
+
"version": "1.0.8",
|
| 17 |
+
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
|
| 18 |
+
"integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
|
| 19 |
+
"license": "MIT"
|
| 20 |
+
},
|
| 21 |
+
"node_modules/@types/estree-jsx": {
|
| 22 |
+
"version": "1.0.5",
|
| 23 |
+
"resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
|
| 24 |
+
"integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
|
| 25 |
+
"license": "MIT",
|
| 26 |
+
"dependencies": {
|
| 27 |
+
"@types/estree": "*"
|
| 28 |
+
}
|
| 29 |
+
},
|
| 30 |
+
"node_modules/@types/hast": {
|
| 31 |
+
"version": "3.0.4",
|
| 32 |
+
"resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
|
| 33 |
+
"integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
|
| 34 |
+
"license": "MIT",
|
| 35 |
+
"dependencies": {
|
| 36 |
+
"@types/unist": "*"
|
| 37 |
+
}
|
| 38 |
+
},
|
| 39 |
+
"node_modules/@types/mdast": {
|
| 40 |
+
"version": "4.0.4",
|
| 41 |
+
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
|
| 42 |
+
"integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
|
| 43 |
+
"license": "MIT",
|
| 44 |
+
"dependencies": {
|
| 45 |
+
"@types/unist": "*"
|
| 46 |
+
}
|
| 47 |
+
},
|
| 48 |
+
"node_modules/@types/ms": {
|
| 49 |
+
"version": "2.1.0",
|
| 50 |
+
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz",
|
| 51 |
+
"integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
|
| 52 |
+
"license": "MIT"
|
| 53 |
+
},
|
| 54 |
+
"node_modules/@types/react": {
|
| 55 |
+
"version": "19.2.8",
|
| 56 |
+
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.8.tgz",
|
| 57 |
+
"integrity": "sha512-3MbSL37jEchWZz2p2mjntRZtPt837ij10ApxKfgmXCTuHWagYg7iA5bqPw6C8BMPfwidlvfPI/fxOc42HLhcyg==",
|
| 58 |
+
"license": "MIT",
|
| 59 |
+
"peer": true,
|
| 60 |
+
"dependencies": {
|
| 61 |
+
"csstype": "^3.2.2"
|
| 62 |
+
}
|
| 63 |
+
},
|
| 64 |
+
"node_modules/@types/unist": {
|
| 65 |
+
"version": "3.0.3",
|
| 66 |
+
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
|
| 67 |
+
"integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
|
| 68 |
+
"license": "MIT"
|
| 69 |
+
},
|
| 70 |
+
"node_modules/@ungap/structured-clone": {
|
| 71 |
+
"version": "1.3.0",
|
| 72 |
+
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz",
|
| 73 |
+
"integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==",
|
| 74 |
+
"license": "ISC"
|
| 75 |
+
},
|
| 76 |
+
"node_modules/bail": {
|
| 77 |
+
"version": "2.0.2",
|
| 78 |
+
"resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
|
| 79 |
+
"integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
|
| 80 |
+
"license": "MIT",
|
| 81 |
+
"funding": {
|
| 82 |
+
"type": "github",
|
| 83 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 84 |
+
}
|
| 85 |
+
},
|
| 86 |
+
"node_modules/ccount": {
|
| 87 |
+
"version": "2.0.1",
|
| 88 |
+
"resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
|
| 89 |
+
"integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
|
| 90 |
+
"license": "MIT",
|
| 91 |
+
"funding": {
|
| 92 |
+
"type": "github",
|
| 93 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 94 |
+
}
|
| 95 |
+
},
|
| 96 |
+
"node_modules/character-entities": {
|
| 97 |
+
"version": "2.0.2",
|
| 98 |
+
"resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
|
| 99 |
+
"integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
|
| 100 |
+
"license": "MIT",
|
| 101 |
+
"funding": {
|
| 102 |
+
"type": "github",
|
| 103 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
"node_modules/character-entities-html4": {
|
| 107 |
+
"version": "2.1.0",
|
| 108 |
+
"resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
|
| 109 |
+
"integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
|
| 110 |
+
"license": "MIT",
|
| 111 |
+
"funding": {
|
| 112 |
+
"type": "github",
|
| 113 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 114 |
+
}
|
| 115 |
+
},
|
| 116 |
+
"node_modules/character-entities-legacy": {
|
| 117 |
+
"version": "3.0.0",
|
| 118 |
+
"resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
|
| 119 |
+
"integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
|
| 120 |
+
"license": "MIT",
|
| 121 |
+
"funding": {
|
| 122 |
+
"type": "github",
|
| 123 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 124 |
+
}
|
| 125 |
+
},
|
| 126 |
+
"node_modules/character-reference-invalid": {
|
| 127 |
+
"version": "2.0.1",
|
| 128 |
+
"resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
|
| 129 |
+
"integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
|
| 130 |
+
"license": "MIT",
|
| 131 |
+
"funding": {
|
| 132 |
+
"type": "github",
|
| 133 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 134 |
+
}
|
| 135 |
+
},
|
| 136 |
+
"node_modules/comma-separated-tokens": {
|
| 137 |
+
"version": "2.0.3",
|
| 138 |
+
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
|
| 139 |
+
"integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
|
| 140 |
+
"license": "MIT",
|
| 141 |
+
"funding": {
|
| 142 |
+
"type": "github",
|
| 143 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 144 |
+
}
|
| 145 |
+
},
|
| 146 |
+
"node_modules/csstype": {
|
| 147 |
+
"version": "3.2.3",
|
| 148 |
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
|
| 149 |
+
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
|
| 150 |
+
"license": "MIT",
|
| 151 |
+
"peer": true
|
| 152 |
+
},
|
| 153 |
+
"node_modules/debug": {
|
| 154 |
+
"version": "4.4.3",
|
| 155 |
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
|
| 156 |
+
"integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
|
| 157 |
+
"license": "MIT",
|
| 158 |
+
"dependencies": {
|
| 159 |
+
"ms": "^2.1.3"
|
| 160 |
+
},
|
| 161 |
+
"engines": {
|
| 162 |
+
"node": ">=6.0"
|
| 163 |
+
},
|
| 164 |
+
"peerDependenciesMeta": {
|
| 165 |
+
"supports-color": {
|
| 166 |
+
"optional": true
|
| 167 |
+
}
|
| 168 |
+
}
|
| 169 |
+
},
|
| 170 |
+
"node_modules/decode-named-character-reference": {
|
| 171 |
+
"version": "1.2.0",
|
| 172 |
+
"resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.2.0.tgz",
|
| 173 |
+
"integrity": "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==",
|
| 174 |
+
"license": "MIT",
|
| 175 |
+
"dependencies": {
|
| 176 |
+
"character-entities": "^2.0.0"
|
| 177 |
+
},
|
| 178 |
+
"funding": {
|
| 179 |
+
"type": "github",
|
| 180 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 181 |
+
}
|
| 182 |
+
},
|
| 183 |
+
"node_modules/dequal": {
|
| 184 |
+
"version": "2.0.3",
|
| 185 |
+
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
| 186 |
+
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
|
| 187 |
+
"license": "MIT",
|
| 188 |
+
"engines": {
|
| 189 |
+
"node": ">=6"
|
| 190 |
+
}
|
| 191 |
+
},
|
| 192 |
+
"node_modules/devlop": {
|
| 193 |
+
"version": "1.1.0",
|
| 194 |
+
"resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
|
| 195 |
+
"integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
|
| 196 |
+
"license": "MIT",
|
| 197 |
+
"dependencies": {
|
| 198 |
+
"dequal": "^2.0.0"
|
| 199 |
+
},
|
| 200 |
+
"funding": {
|
| 201 |
+
"type": "github",
|
| 202 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 203 |
+
}
|
| 204 |
+
},
|
| 205 |
+
"node_modules/estree-util-is-identifier-name": {
|
| 206 |
+
"version": "3.0.0",
|
| 207 |
+
"resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
|
| 208 |
+
"integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
|
| 209 |
+
"license": "MIT",
|
| 210 |
+
"funding": {
|
| 211 |
+
"type": "opencollective",
|
| 212 |
+
"url": "https://opencollective.com/unified"
|
| 213 |
+
}
|
| 214 |
+
},
|
| 215 |
+
"node_modules/extend": {
|
| 216 |
+
"version": "3.0.2",
|
| 217 |
+
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
| 218 |
+
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
| 219 |
+
"license": "MIT"
|
| 220 |
+
},
|
| 221 |
+
"node_modules/hast-util-to-jsx-runtime": {
|
| 222 |
+
"version": "2.3.6",
|
| 223 |
+
"resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz",
|
| 224 |
+
"integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==",
|
| 225 |
+
"license": "MIT",
|
| 226 |
+
"dependencies": {
|
| 227 |
+
"@types/estree": "^1.0.0",
|
| 228 |
+
"@types/hast": "^3.0.0",
|
| 229 |
+
"@types/unist": "^3.0.0",
|
| 230 |
+
"comma-separated-tokens": "^2.0.0",
|
| 231 |
+
"devlop": "^1.0.0",
|
| 232 |
+
"estree-util-is-identifier-name": "^3.0.0",
|
| 233 |
+
"hast-util-whitespace": "^3.0.0",
|
| 234 |
+
"mdast-util-mdx-expression": "^2.0.0",
|
| 235 |
+
"mdast-util-mdx-jsx": "^3.0.0",
|
| 236 |
+
"mdast-util-mdxjs-esm": "^2.0.0",
|
| 237 |
+
"property-information": "^7.0.0",
|
| 238 |
+
"space-separated-tokens": "^2.0.0",
|
| 239 |
+
"style-to-js": "^1.0.0",
|
| 240 |
+
"unist-util-position": "^5.0.0",
|
| 241 |
+
"vfile-message": "^4.0.0"
|
| 242 |
+
},
|
| 243 |
+
"funding": {
|
| 244 |
+
"type": "opencollective",
|
| 245 |
+
"url": "https://opencollective.com/unified"
|
| 246 |
+
}
|
| 247 |
+
},
|
| 248 |
+
"node_modules/hast-util-whitespace": {
|
| 249 |
+
"version": "3.0.0",
|
| 250 |
+
"resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
|
| 251 |
+
"integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
|
| 252 |
+
"license": "MIT",
|
| 253 |
+
"dependencies": {
|
| 254 |
+
"@types/hast": "^3.0.0"
|
| 255 |
+
},
|
| 256 |
+
"funding": {
|
| 257 |
+
"type": "opencollective",
|
| 258 |
+
"url": "https://opencollective.com/unified"
|
| 259 |
+
}
|
| 260 |
+
},
|
| 261 |
+
"node_modules/html-url-attributes": {
|
| 262 |
+
"version": "3.0.1",
|
| 263 |
+
"resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
|
| 264 |
+
"integrity": "sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==",
|
| 265 |
+
"license": "MIT",
|
| 266 |
+
"funding": {
|
| 267 |
+
"type": "opencollective",
|
| 268 |
+
"url": "https://opencollective.com/unified"
|
| 269 |
+
}
|
| 270 |
+
},
|
| 271 |
+
"node_modules/inline-style-parser": {
|
| 272 |
+
"version": "0.2.7",
|
| 273 |
+
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz",
|
| 274 |
+
"integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==",
|
| 275 |
+
"license": "MIT"
|
| 276 |
+
},
|
| 277 |
+
"node_modules/is-alphabetical": {
|
| 278 |
+
"version": "2.0.1",
|
| 279 |
+
"resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
|
| 280 |
+
"integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
|
| 281 |
+
"license": "MIT",
|
| 282 |
+
"funding": {
|
| 283 |
+
"type": "github",
|
| 284 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 285 |
+
}
|
| 286 |
+
},
|
| 287 |
+
"node_modules/is-alphanumerical": {
|
| 288 |
+
"version": "2.0.1",
|
| 289 |
+
"resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
|
| 290 |
+
"integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
|
| 291 |
+
"license": "MIT",
|
| 292 |
+
"dependencies": {
|
| 293 |
+
"is-alphabetical": "^2.0.0",
|
| 294 |
+
"is-decimal": "^2.0.0"
|
| 295 |
+
},
|
| 296 |
+
"funding": {
|
| 297 |
+
"type": "github",
|
| 298 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 299 |
+
}
|
| 300 |
+
},
|
| 301 |
+
"node_modules/is-decimal": {
|
| 302 |
+
"version": "2.0.1",
|
| 303 |
+
"resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
|
| 304 |
+
"integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
|
| 305 |
+
"license": "MIT",
|
| 306 |
+
"funding": {
|
| 307 |
+
"type": "github",
|
| 308 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 309 |
+
}
|
| 310 |
+
},
|
| 311 |
+
"node_modules/is-hexadecimal": {
|
| 312 |
+
"version": "2.0.1",
|
| 313 |
+
"resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
|
| 314 |
+
"integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
|
| 315 |
+
"license": "MIT",
|
| 316 |
+
"funding": {
|
| 317 |
+
"type": "github",
|
| 318 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 319 |
+
}
|
| 320 |
+
},
|
| 321 |
+
"node_modules/is-plain-obj": {
|
| 322 |
+
"version": "4.1.0",
|
| 323 |
+
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
|
| 324 |
+
"integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
|
| 325 |
+
"license": "MIT",
|
| 326 |
+
"engines": {
|
| 327 |
+
"node": ">=12"
|
| 328 |
+
},
|
| 329 |
+
"funding": {
|
| 330 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
| 331 |
+
}
|
| 332 |
+
},
|
| 333 |
+
"node_modules/longest-streak": {
|
| 334 |
+
"version": "3.1.0",
|
| 335 |
+
"resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
|
| 336 |
+
"integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
|
| 337 |
+
"license": "MIT",
|
| 338 |
+
"funding": {
|
| 339 |
+
"type": "github",
|
| 340 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 341 |
+
}
|
| 342 |
+
},
|
| 343 |
+
"node_modules/lucide-react": {
|
| 344 |
+
"version": "0.562.0",
|
| 345 |
+
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz",
|
| 346 |
+
"integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==",
|
| 347 |
+
"license": "ISC",
|
| 348 |
+
"peerDependencies": {
|
| 349 |
+
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 350 |
+
}
|
| 351 |
+
},
|
| 352 |
+
"node_modules/mdast-util-from-markdown": {
|
| 353 |
+
"version": "2.0.2",
|
| 354 |
+
"resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
|
| 355 |
+
"integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
|
| 356 |
+
"license": "MIT",
|
| 357 |
+
"dependencies": {
|
| 358 |
+
"@types/mdast": "^4.0.0",
|
| 359 |
+
"@types/unist": "^3.0.0",
|
| 360 |
+
"decode-named-character-reference": "^1.0.0",
|
| 361 |
+
"devlop": "^1.0.0",
|
| 362 |
+
"mdast-util-to-string": "^4.0.0",
|
| 363 |
+
"micromark": "^4.0.0",
|
| 364 |
+
"micromark-util-decode-numeric-character-reference": "^2.0.0",
|
| 365 |
+
"micromark-util-decode-string": "^2.0.0",
|
| 366 |
+
"micromark-util-normalize-identifier": "^2.0.0",
|
| 367 |
+
"micromark-util-symbol": "^2.0.0",
|
| 368 |
+
"micromark-util-types": "^2.0.0",
|
| 369 |
+
"unist-util-stringify-position": "^4.0.0"
|
| 370 |
+
},
|
| 371 |
+
"funding": {
|
| 372 |
+
"type": "opencollective",
|
| 373 |
+
"url": "https://opencollective.com/unified"
|
| 374 |
+
}
|
| 375 |
+
},
|
| 376 |
+
"node_modules/mdast-util-mdx-expression": {
|
| 377 |
+
"version": "2.0.1",
|
| 378 |
+
"resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
|
| 379 |
+
"integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
|
| 380 |
+
"license": "MIT",
|
| 381 |
+
"dependencies": {
|
| 382 |
+
"@types/estree-jsx": "^1.0.0",
|
| 383 |
+
"@types/hast": "^3.0.0",
|
| 384 |
+
"@types/mdast": "^4.0.0",
|
| 385 |
+
"devlop": "^1.0.0",
|
| 386 |
+
"mdast-util-from-markdown": "^2.0.0",
|
| 387 |
+
"mdast-util-to-markdown": "^2.0.0"
|
| 388 |
+
},
|
| 389 |
+
"funding": {
|
| 390 |
+
"type": "opencollective",
|
| 391 |
+
"url": "https://opencollective.com/unified"
|
| 392 |
+
}
|
| 393 |
+
},
|
| 394 |
+
"node_modules/mdast-util-mdx-jsx": {
|
| 395 |
+
"version": "3.2.0",
|
| 396 |
+
"resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz",
|
| 397 |
+
"integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==",
|
| 398 |
+
"license": "MIT",
|
| 399 |
+
"dependencies": {
|
| 400 |
+
"@types/estree-jsx": "^1.0.0",
|
| 401 |
+
"@types/hast": "^3.0.0",
|
| 402 |
+
"@types/mdast": "^4.0.0",
|
| 403 |
+
"@types/unist": "^3.0.0",
|
| 404 |
+
"ccount": "^2.0.0",
|
| 405 |
+
"devlop": "^1.1.0",
|
| 406 |
+
"mdast-util-from-markdown": "^2.0.0",
|
| 407 |
+
"mdast-util-to-markdown": "^2.0.0",
|
| 408 |
+
"parse-entities": "^4.0.0",
|
| 409 |
+
"stringify-entities": "^4.0.0",
|
| 410 |
+
"unist-util-stringify-position": "^4.0.0",
|
| 411 |
+
"vfile-message": "^4.0.0"
|
| 412 |
+
},
|
| 413 |
+
"funding": {
|
| 414 |
+
"type": "opencollective",
|
| 415 |
+
"url": "https://opencollective.com/unified"
|
| 416 |
+
}
|
| 417 |
+
},
|
| 418 |
+
"node_modules/mdast-util-mdxjs-esm": {
|
| 419 |
+
"version": "2.0.1",
|
| 420 |
+
"resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
|
| 421 |
+
"integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
|
| 422 |
+
"license": "MIT",
|
| 423 |
+
"dependencies": {
|
| 424 |
+
"@types/estree-jsx": "^1.0.0",
|
| 425 |
+
"@types/hast": "^3.0.0",
|
| 426 |
+
"@types/mdast": "^4.0.0",
|
| 427 |
+
"devlop": "^1.0.0",
|
| 428 |
+
"mdast-util-from-markdown": "^2.0.0",
|
| 429 |
+
"mdast-util-to-markdown": "^2.0.0"
|
| 430 |
+
},
|
| 431 |
+
"funding": {
|
| 432 |
+
"type": "opencollective",
|
| 433 |
+
"url": "https://opencollective.com/unified"
|
| 434 |
+
}
|
| 435 |
+
},
|
| 436 |
+
"node_modules/mdast-util-phrasing": {
|
| 437 |
+
"version": "4.1.0",
|
| 438 |
+
"resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
|
| 439 |
+
"integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
|
| 440 |
+
"license": "MIT",
|
| 441 |
+
"dependencies": {
|
| 442 |
+
"@types/mdast": "^4.0.0",
|
| 443 |
+
"unist-util-is": "^6.0.0"
|
| 444 |
+
},
|
| 445 |
+
"funding": {
|
| 446 |
+
"type": "opencollective",
|
| 447 |
+
"url": "https://opencollective.com/unified"
|
| 448 |
+
}
|
| 449 |
+
},
|
| 450 |
+
"node_modules/mdast-util-to-hast": {
|
| 451 |
+
"version": "13.2.1",
|
| 452 |
+
"resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz",
|
| 453 |
+
"integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==",
|
| 454 |
+
"license": "MIT",
|
| 455 |
+
"dependencies": {
|
| 456 |
+
"@types/hast": "^3.0.0",
|
| 457 |
+
"@types/mdast": "^4.0.0",
|
| 458 |
+
"@ungap/structured-clone": "^1.0.0",
|
| 459 |
+
"devlop": "^1.0.0",
|
| 460 |
+
"micromark-util-sanitize-uri": "^2.0.0",
|
| 461 |
+
"trim-lines": "^3.0.0",
|
| 462 |
+
"unist-util-position": "^5.0.0",
|
| 463 |
+
"unist-util-visit": "^5.0.0",
|
| 464 |
+
"vfile": "^6.0.0"
|
| 465 |
+
},
|
| 466 |
+
"funding": {
|
| 467 |
+
"type": "opencollective",
|
| 468 |
+
"url": "https://opencollective.com/unified"
|
| 469 |
+
}
|
| 470 |
+
},
|
| 471 |
+
"node_modules/mdast-util-to-markdown": {
|
| 472 |
+
"version": "2.1.2",
|
| 473 |
+
"resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
|
| 474 |
+
"integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
|
| 475 |
+
"license": "MIT",
|
| 476 |
+
"dependencies": {
|
| 477 |
+
"@types/mdast": "^4.0.0",
|
| 478 |
+
"@types/unist": "^3.0.0",
|
| 479 |
+
"longest-streak": "^3.0.0",
|
| 480 |
+
"mdast-util-phrasing": "^4.0.0",
|
| 481 |
+
"mdast-util-to-string": "^4.0.0",
|
| 482 |
+
"micromark-util-classify-character": "^2.0.0",
|
| 483 |
+
"micromark-util-decode-string": "^2.0.0",
|
| 484 |
+
"unist-util-visit": "^5.0.0",
|
| 485 |
+
"zwitch": "^2.0.0"
|
| 486 |
+
},
|
| 487 |
+
"funding": {
|
| 488 |
+
"type": "opencollective",
|
| 489 |
+
"url": "https://opencollective.com/unified"
|
| 490 |
+
}
|
| 491 |
+
},
|
| 492 |
+
"node_modules/mdast-util-to-string": {
|
| 493 |
+
"version": "4.0.0",
|
| 494 |
+
"resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
|
| 495 |
+
"integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
|
| 496 |
+
"license": "MIT",
|
| 497 |
+
"dependencies": {
|
| 498 |
+
"@types/mdast": "^4.0.0"
|
| 499 |
+
},
|
| 500 |
+
"funding": {
|
| 501 |
+
"type": "opencollective",
|
| 502 |
+
"url": "https://opencollective.com/unified"
|
| 503 |
+
}
|
| 504 |
+
},
|
| 505 |
+
"node_modules/micromark": {
|
| 506 |
+
"version": "4.0.2",
|
| 507 |
+
"resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz",
|
| 508 |
+
"integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==",
|
| 509 |
+
"funding": [
|
| 510 |
+
{
|
| 511 |
+
"type": "GitHub Sponsors",
|
| 512 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 513 |
+
},
|
| 514 |
+
{
|
| 515 |
+
"type": "OpenCollective",
|
| 516 |
+
"url": "https://opencollective.com/unified"
|
| 517 |
+
}
|
| 518 |
+
],
|
| 519 |
+
"license": "MIT",
|
| 520 |
+
"dependencies": {
|
| 521 |
+
"@types/debug": "^4.0.0",
|
| 522 |
+
"debug": "^4.0.0",
|
| 523 |
+
"decode-named-character-reference": "^1.0.0",
|
| 524 |
+
"devlop": "^1.0.0",
|
| 525 |
+
"micromark-core-commonmark": "^2.0.0",
|
| 526 |
+
"micromark-factory-space": "^2.0.0",
|
| 527 |
+
"micromark-util-character": "^2.0.0",
|
| 528 |
+
"micromark-util-chunked": "^2.0.0",
|
| 529 |
+
"micromark-util-combine-extensions": "^2.0.0",
|
| 530 |
+
"micromark-util-decode-numeric-character-reference": "^2.0.0",
|
| 531 |
+
"micromark-util-encode": "^2.0.0",
|
| 532 |
+
"micromark-util-normalize-identifier": "^2.0.0",
|
| 533 |
+
"micromark-util-resolve-all": "^2.0.0",
|
| 534 |
+
"micromark-util-sanitize-uri": "^2.0.0",
|
| 535 |
+
"micromark-util-subtokenize": "^2.0.0",
|
| 536 |
+
"micromark-util-symbol": "^2.0.0",
|
| 537 |
+
"micromark-util-types": "^2.0.0"
|
| 538 |
+
}
|
| 539 |
+
},
|
| 540 |
+
"node_modules/micromark-core-commonmark": {
|
| 541 |
+
"version": "2.0.3",
|
| 542 |
+
"resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz",
|
| 543 |
+
"integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==",
|
| 544 |
+
"funding": [
|
| 545 |
+
{
|
| 546 |
+
"type": "GitHub Sponsors",
|
| 547 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 548 |
+
},
|
| 549 |
+
{
|
| 550 |
+
"type": "OpenCollective",
|
| 551 |
+
"url": "https://opencollective.com/unified"
|
| 552 |
+
}
|
| 553 |
+
],
|
| 554 |
+
"license": "MIT",
|
| 555 |
+
"dependencies": {
|
| 556 |
+
"decode-named-character-reference": "^1.0.0",
|
| 557 |
+
"devlop": "^1.0.0",
|
| 558 |
+
"micromark-factory-destination": "^2.0.0",
|
| 559 |
+
"micromark-factory-label": "^2.0.0",
|
| 560 |
+
"micromark-factory-space": "^2.0.0",
|
| 561 |
+
"micromark-factory-title": "^2.0.0",
|
| 562 |
+
"micromark-factory-whitespace": "^2.0.0",
|
| 563 |
+
"micromark-util-character": "^2.0.0",
|
| 564 |
+
"micromark-util-chunked": "^2.0.0",
|
| 565 |
+
"micromark-util-classify-character": "^2.0.0",
|
| 566 |
+
"micromark-util-html-tag-name": "^2.0.0",
|
| 567 |
+
"micromark-util-normalize-identifier": "^2.0.0",
|
| 568 |
+
"micromark-util-resolve-all": "^2.0.0",
|
| 569 |
+
"micromark-util-subtokenize": "^2.0.0",
|
| 570 |
+
"micromark-util-symbol": "^2.0.0",
|
| 571 |
+
"micromark-util-types": "^2.0.0"
|
| 572 |
+
}
|
| 573 |
+
},
|
| 574 |
+
"node_modules/micromark-factory-destination": {
|
| 575 |
+
"version": "2.0.1",
|
| 576 |
+
"resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
|
| 577 |
+
"integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
|
| 578 |
+
"funding": [
|
| 579 |
+
{
|
| 580 |
+
"type": "GitHub Sponsors",
|
| 581 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 582 |
+
},
|
| 583 |
+
{
|
| 584 |
+
"type": "OpenCollective",
|
| 585 |
+
"url": "https://opencollective.com/unified"
|
| 586 |
+
}
|
| 587 |
+
],
|
| 588 |
+
"license": "MIT",
|
| 589 |
+
"dependencies": {
|
| 590 |
+
"micromark-util-character": "^2.0.0",
|
| 591 |
+
"micromark-util-symbol": "^2.0.0",
|
| 592 |
+
"micromark-util-types": "^2.0.0"
|
| 593 |
+
}
|
| 594 |
+
},
|
| 595 |
+
"node_modules/micromark-factory-label": {
|
| 596 |
+
"version": "2.0.1",
|
| 597 |
+
"resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
|
| 598 |
+
"integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
|
| 599 |
+
"funding": [
|
| 600 |
+
{
|
| 601 |
+
"type": "GitHub Sponsors",
|
| 602 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 603 |
+
},
|
| 604 |
+
{
|
| 605 |
+
"type": "OpenCollective",
|
| 606 |
+
"url": "https://opencollective.com/unified"
|
| 607 |
+
}
|
| 608 |
+
],
|
| 609 |
+
"license": "MIT",
|
| 610 |
+
"dependencies": {
|
| 611 |
+
"devlop": "^1.0.0",
|
| 612 |
+
"micromark-util-character": "^2.0.0",
|
| 613 |
+
"micromark-util-symbol": "^2.0.0",
|
| 614 |
+
"micromark-util-types": "^2.0.0"
|
| 615 |
+
}
|
| 616 |
+
},
|
| 617 |
+
"node_modules/micromark-factory-space": {
|
| 618 |
+
"version": "2.0.1",
|
| 619 |
+
"resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
|
| 620 |
+
"integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
|
| 621 |
+
"funding": [
|
| 622 |
+
{
|
| 623 |
+
"type": "GitHub Sponsors",
|
| 624 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 625 |
+
},
|
| 626 |
+
{
|
| 627 |
+
"type": "OpenCollective",
|
| 628 |
+
"url": "https://opencollective.com/unified"
|
| 629 |
+
}
|
| 630 |
+
],
|
| 631 |
+
"license": "MIT",
|
| 632 |
+
"dependencies": {
|
| 633 |
+
"micromark-util-character": "^2.0.0",
|
| 634 |
+
"micromark-util-types": "^2.0.0"
|
| 635 |
+
}
|
| 636 |
+
},
|
| 637 |
+
"node_modules/micromark-factory-title": {
|
| 638 |
+
"version": "2.0.1",
|
| 639 |
+
"resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
|
| 640 |
+
"integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
|
| 641 |
+
"funding": [
|
| 642 |
+
{
|
| 643 |
+
"type": "GitHub Sponsors",
|
| 644 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 645 |
+
},
|
| 646 |
+
{
|
| 647 |
+
"type": "OpenCollective",
|
| 648 |
+
"url": "https://opencollective.com/unified"
|
| 649 |
+
}
|
| 650 |
+
],
|
| 651 |
+
"license": "MIT",
|
| 652 |
+
"dependencies": {
|
| 653 |
+
"micromark-factory-space": "^2.0.0",
|
| 654 |
+
"micromark-util-character": "^2.0.0",
|
| 655 |
+
"micromark-util-symbol": "^2.0.0",
|
| 656 |
+
"micromark-util-types": "^2.0.0"
|
| 657 |
+
}
|
| 658 |
+
},
|
| 659 |
+
"node_modules/micromark-factory-whitespace": {
|
| 660 |
+
"version": "2.0.1",
|
| 661 |
+
"resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
|
| 662 |
+
"integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
|
| 663 |
+
"funding": [
|
| 664 |
+
{
|
| 665 |
+
"type": "GitHub Sponsors",
|
| 666 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 667 |
+
},
|
| 668 |
+
{
|
| 669 |
+
"type": "OpenCollective",
|
| 670 |
+
"url": "https://opencollective.com/unified"
|
| 671 |
+
}
|
| 672 |
+
],
|
| 673 |
+
"license": "MIT",
|
| 674 |
+
"dependencies": {
|
| 675 |
+
"micromark-factory-space": "^2.0.0",
|
| 676 |
+
"micromark-util-character": "^2.0.0",
|
| 677 |
+
"micromark-util-symbol": "^2.0.0",
|
| 678 |
+
"micromark-util-types": "^2.0.0"
|
| 679 |
+
}
|
| 680 |
+
},
|
| 681 |
+
"node_modules/micromark-util-character": {
|
| 682 |
+
"version": "2.1.1",
|
| 683 |
+
"resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
|
| 684 |
+
"integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
|
| 685 |
+
"funding": [
|
| 686 |
+
{
|
| 687 |
+
"type": "GitHub Sponsors",
|
| 688 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 689 |
+
},
|
| 690 |
+
{
|
| 691 |
+
"type": "OpenCollective",
|
| 692 |
+
"url": "https://opencollective.com/unified"
|
| 693 |
+
}
|
| 694 |
+
],
|
| 695 |
+
"license": "MIT",
|
| 696 |
+
"dependencies": {
|
| 697 |
+
"micromark-util-symbol": "^2.0.0",
|
| 698 |
+
"micromark-util-types": "^2.0.0"
|
| 699 |
+
}
|
| 700 |
+
},
|
| 701 |
+
"node_modules/micromark-util-chunked": {
|
| 702 |
+
"version": "2.0.1",
|
| 703 |
+
"resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
|
| 704 |
+
"integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
|
| 705 |
+
"funding": [
|
| 706 |
+
{
|
| 707 |
+
"type": "GitHub Sponsors",
|
| 708 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 709 |
+
},
|
| 710 |
+
{
|
| 711 |
+
"type": "OpenCollective",
|
| 712 |
+
"url": "https://opencollective.com/unified"
|
| 713 |
+
}
|
| 714 |
+
],
|
| 715 |
+
"license": "MIT",
|
| 716 |
+
"dependencies": {
|
| 717 |
+
"micromark-util-symbol": "^2.0.0"
|
| 718 |
+
}
|
| 719 |
+
},
|
| 720 |
+
"node_modules/micromark-util-classify-character": {
|
| 721 |
+
"version": "2.0.1",
|
| 722 |
+
"resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
|
| 723 |
+
"integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
|
| 724 |
+
"funding": [
|
| 725 |
+
{
|
| 726 |
+
"type": "GitHub Sponsors",
|
| 727 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 728 |
+
},
|
| 729 |
+
{
|
| 730 |
+
"type": "OpenCollective",
|
| 731 |
+
"url": "https://opencollective.com/unified"
|
| 732 |
+
}
|
| 733 |
+
],
|
| 734 |
+
"license": "MIT",
|
| 735 |
+
"dependencies": {
|
| 736 |
+
"micromark-util-character": "^2.0.0",
|
| 737 |
+
"micromark-util-symbol": "^2.0.0",
|
| 738 |
+
"micromark-util-types": "^2.0.0"
|
| 739 |
+
}
|
| 740 |
+
},
|
| 741 |
+
"node_modules/micromark-util-combine-extensions": {
|
| 742 |
+
"version": "2.0.1",
|
| 743 |
+
"resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
|
| 744 |
+
"integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
|
| 745 |
+
"funding": [
|
| 746 |
+
{
|
| 747 |
+
"type": "GitHub Sponsors",
|
| 748 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 749 |
+
},
|
| 750 |
+
{
|
| 751 |
+
"type": "OpenCollective",
|
| 752 |
+
"url": "https://opencollective.com/unified"
|
| 753 |
+
}
|
| 754 |
+
],
|
| 755 |
+
"license": "MIT",
|
| 756 |
+
"dependencies": {
|
| 757 |
+
"micromark-util-chunked": "^2.0.0",
|
| 758 |
+
"micromark-util-types": "^2.0.0"
|
| 759 |
+
}
|
| 760 |
+
},
|
| 761 |
+
"node_modules/micromark-util-decode-numeric-character-reference": {
|
| 762 |
+
"version": "2.0.2",
|
| 763 |
+
"resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
|
| 764 |
+
"integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
|
| 765 |
+
"funding": [
|
| 766 |
+
{
|
| 767 |
+
"type": "GitHub Sponsors",
|
| 768 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 769 |
+
},
|
| 770 |
+
{
|
| 771 |
+
"type": "OpenCollective",
|
| 772 |
+
"url": "https://opencollective.com/unified"
|
| 773 |
+
}
|
| 774 |
+
],
|
| 775 |
+
"license": "MIT",
|
| 776 |
+
"dependencies": {
|
| 777 |
+
"micromark-util-symbol": "^2.0.0"
|
| 778 |
+
}
|
| 779 |
+
},
|
| 780 |
+
"node_modules/micromark-util-decode-string": {
|
| 781 |
+
"version": "2.0.1",
|
| 782 |
+
"resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
|
| 783 |
+
"integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
|
| 784 |
+
"funding": [
|
| 785 |
+
{
|
| 786 |
+
"type": "GitHub Sponsors",
|
| 787 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 788 |
+
},
|
| 789 |
+
{
|
| 790 |
+
"type": "OpenCollective",
|
| 791 |
+
"url": "https://opencollective.com/unified"
|
| 792 |
+
}
|
| 793 |
+
],
|
| 794 |
+
"license": "MIT",
|
| 795 |
+
"dependencies": {
|
| 796 |
+
"decode-named-character-reference": "^1.0.0",
|
| 797 |
+
"micromark-util-character": "^2.0.0",
|
| 798 |
+
"micromark-util-decode-numeric-character-reference": "^2.0.0",
|
| 799 |
+
"micromark-util-symbol": "^2.0.0"
|
| 800 |
+
}
|
| 801 |
+
},
|
| 802 |
+
"node_modules/micromark-util-encode": {
|
| 803 |
+
"version": "2.0.1",
|
| 804 |
+
"resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
|
| 805 |
+
"integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
|
| 806 |
+
"funding": [
|
| 807 |
+
{
|
| 808 |
+
"type": "GitHub Sponsors",
|
| 809 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 810 |
+
},
|
| 811 |
+
{
|
| 812 |
+
"type": "OpenCollective",
|
| 813 |
+
"url": "https://opencollective.com/unified"
|
| 814 |
+
}
|
| 815 |
+
],
|
| 816 |
+
"license": "MIT"
|
| 817 |
+
},
|
| 818 |
+
"node_modules/micromark-util-html-tag-name": {
|
| 819 |
+
"version": "2.0.1",
|
| 820 |
+
"resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
|
| 821 |
+
"integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
|
| 822 |
+
"funding": [
|
| 823 |
+
{
|
| 824 |
+
"type": "GitHub Sponsors",
|
| 825 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 826 |
+
},
|
| 827 |
+
{
|
| 828 |
+
"type": "OpenCollective",
|
| 829 |
+
"url": "https://opencollective.com/unified"
|
| 830 |
+
}
|
| 831 |
+
],
|
| 832 |
+
"license": "MIT"
|
| 833 |
+
},
|
| 834 |
+
"node_modules/micromark-util-normalize-identifier": {
|
| 835 |
+
"version": "2.0.1",
|
| 836 |
+
"resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
|
| 837 |
+
"integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
|
| 838 |
+
"funding": [
|
| 839 |
+
{
|
| 840 |
+
"type": "GitHub Sponsors",
|
| 841 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 842 |
+
},
|
| 843 |
+
{
|
| 844 |
+
"type": "OpenCollective",
|
| 845 |
+
"url": "https://opencollective.com/unified"
|
| 846 |
+
}
|
| 847 |
+
],
|
| 848 |
+
"license": "MIT",
|
| 849 |
+
"dependencies": {
|
| 850 |
+
"micromark-util-symbol": "^2.0.0"
|
| 851 |
+
}
|
| 852 |
+
},
|
| 853 |
+
"node_modules/micromark-util-resolve-all": {
|
| 854 |
+
"version": "2.0.1",
|
| 855 |
+
"resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
|
| 856 |
+
"integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
|
| 857 |
+
"funding": [
|
| 858 |
+
{
|
| 859 |
+
"type": "GitHub Sponsors",
|
| 860 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 861 |
+
},
|
| 862 |
+
{
|
| 863 |
+
"type": "OpenCollective",
|
| 864 |
+
"url": "https://opencollective.com/unified"
|
| 865 |
+
}
|
| 866 |
+
],
|
| 867 |
+
"license": "MIT",
|
| 868 |
+
"dependencies": {
|
| 869 |
+
"micromark-util-types": "^2.0.0"
|
| 870 |
+
}
|
| 871 |
+
},
|
| 872 |
+
"node_modules/micromark-util-sanitize-uri": {
|
| 873 |
+
"version": "2.0.1",
|
| 874 |
+
"resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
|
| 875 |
+
"integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
|
| 876 |
+
"funding": [
|
| 877 |
+
{
|
| 878 |
+
"type": "GitHub Sponsors",
|
| 879 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 880 |
+
},
|
| 881 |
+
{
|
| 882 |
+
"type": "OpenCollective",
|
| 883 |
+
"url": "https://opencollective.com/unified"
|
| 884 |
+
}
|
| 885 |
+
],
|
| 886 |
+
"license": "MIT",
|
| 887 |
+
"dependencies": {
|
| 888 |
+
"micromark-util-character": "^2.0.0",
|
| 889 |
+
"micromark-util-encode": "^2.0.0",
|
| 890 |
+
"micromark-util-symbol": "^2.0.0"
|
| 891 |
+
}
|
| 892 |
+
},
|
| 893 |
+
"node_modules/micromark-util-subtokenize": {
|
| 894 |
+
"version": "2.1.0",
|
| 895 |
+
"resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz",
|
| 896 |
+
"integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==",
|
| 897 |
+
"funding": [
|
| 898 |
+
{
|
| 899 |
+
"type": "GitHub Sponsors",
|
| 900 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 901 |
+
},
|
| 902 |
+
{
|
| 903 |
+
"type": "OpenCollective",
|
| 904 |
+
"url": "https://opencollective.com/unified"
|
| 905 |
+
}
|
| 906 |
+
],
|
| 907 |
+
"license": "MIT",
|
| 908 |
+
"dependencies": {
|
| 909 |
+
"devlop": "^1.0.0",
|
| 910 |
+
"micromark-util-chunked": "^2.0.0",
|
| 911 |
+
"micromark-util-symbol": "^2.0.0",
|
| 912 |
+
"micromark-util-types": "^2.0.0"
|
| 913 |
+
}
|
| 914 |
+
},
|
| 915 |
+
"node_modules/micromark-util-symbol": {
|
| 916 |
+
"version": "2.0.1",
|
| 917 |
+
"resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
|
| 918 |
+
"integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
|
| 919 |
+
"funding": [
|
| 920 |
+
{
|
| 921 |
+
"type": "GitHub Sponsors",
|
| 922 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 923 |
+
},
|
| 924 |
+
{
|
| 925 |
+
"type": "OpenCollective",
|
| 926 |
+
"url": "https://opencollective.com/unified"
|
| 927 |
+
}
|
| 928 |
+
],
|
| 929 |
+
"license": "MIT"
|
| 930 |
+
},
|
| 931 |
+
"node_modules/micromark-util-types": {
|
| 932 |
+
"version": "2.0.2",
|
| 933 |
+
"resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz",
|
| 934 |
+
"integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==",
|
| 935 |
+
"funding": [
|
| 936 |
+
{
|
| 937 |
+
"type": "GitHub Sponsors",
|
| 938 |
+
"url": "https://github.com/sponsors/unifiedjs"
|
| 939 |
+
},
|
| 940 |
+
{
|
| 941 |
+
"type": "OpenCollective",
|
| 942 |
+
"url": "https://opencollective.com/unified"
|
| 943 |
+
}
|
| 944 |
+
],
|
| 945 |
+
"license": "MIT"
|
| 946 |
+
},
|
| 947 |
+
"node_modules/ms": {
|
| 948 |
+
"version": "2.1.3",
|
| 949 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
| 950 |
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
| 951 |
+
"license": "MIT"
|
| 952 |
+
},
|
| 953 |
+
"node_modules/parse-entities": {
|
| 954 |
+
"version": "4.0.2",
|
| 955 |
+
"resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz",
|
| 956 |
+
"integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==",
|
| 957 |
+
"license": "MIT",
|
| 958 |
+
"dependencies": {
|
| 959 |
+
"@types/unist": "^2.0.0",
|
| 960 |
+
"character-entities-legacy": "^3.0.0",
|
| 961 |
+
"character-reference-invalid": "^2.0.0",
|
| 962 |
+
"decode-named-character-reference": "^1.0.0",
|
| 963 |
+
"is-alphanumerical": "^2.0.0",
|
| 964 |
+
"is-decimal": "^2.0.0",
|
| 965 |
+
"is-hexadecimal": "^2.0.0"
|
| 966 |
+
},
|
| 967 |
+
"funding": {
|
| 968 |
+
"type": "github",
|
| 969 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 970 |
+
}
|
| 971 |
+
},
|
| 972 |
+
"node_modules/parse-entities/node_modules/@types/unist": {
|
| 973 |
+
"version": "2.0.11",
|
| 974 |
+
"resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
|
| 975 |
+
"integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
|
| 976 |
+
"license": "MIT"
|
| 977 |
+
},
|
| 978 |
+
"node_modules/property-information": {
|
| 979 |
+
"version": "7.1.0",
|
| 980 |
+
"resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz",
|
| 981 |
+
"integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==",
|
| 982 |
+
"license": "MIT",
|
| 983 |
+
"funding": {
|
| 984 |
+
"type": "github",
|
| 985 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 986 |
+
}
|
| 987 |
+
},
|
| 988 |
+
"node_modules/react": {
|
| 989 |
+
"version": "19.2.3",
|
| 990 |
+
"resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz",
|
| 991 |
+
"integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==",
|
| 992 |
+
"license": "MIT",
|
| 993 |
+
"peer": true,
|
| 994 |
+
"engines": {
|
| 995 |
+
"node": ">=0.10.0"
|
| 996 |
+
}
|
| 997 |
+
},
|
| 998 |
+
"node_modules/react-markdown": {
|
| 999 |
+
"version": "10.1.0",
|
| 1000 |
+
"resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz",
|
| 1001 |
+
"integrity": "sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==",
|
| 1002 |
+
"license": "MIT",
|
| 1003 |
+
"dependencies": {
|
| 1004 |
+
"@types/hast": "^3.0.0",
|
| 1005 |
+
"@types/mdast": "^4.0.0",
|
| 1006 |
+
"devlop": "^1.0.0",
|
| 1007 |
+
"hast-util-to-jsx-runtime": "^2.0.0",
|
| 1008 |
+
"html-url-attributes": "^3.0.0",
|
| 1009 |
+
"mdast-util-to-hast": "^13.0.0",
|
| 1010 |
+
"remark-parse": "^11.0.0",
|
| 1011 |
+
"remark-rehype": "^11.0.0",
|
| 1012 |
+
"unified": "^11.0.0",
|
| 1013 |
+
"unist-util-visit": "^5.0.0",
|
| 1014 |
+
"vfile": "^6.0.0"
|
| 1015 |
+
},
|
| 1016 |
+
"funding": {
|
| 1017 |
+
"type": "opencollective",
|
| 1018 |
+
"url": "https://opencollective.com/unified"
|
| 1019 |
+
},
|
| 1020 |
+
"peerDependencies": {
|
| 1021 |
+
"@types/react": ">=18",
|
| 1022 |
+
"react": ">=18"
|
| 1023 |
+
}
|
| 1024 |
+
},
|
| 1025 |
+
"node_modules/remark-parse": {
|
| 1026 |
+
"version": "11.0.0",
|
| 1027 |
+
"resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
|
| 1028 |
+
"integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
|
| 1029 |
+
"license": "MIT",
|
| 1030 |
+
"dependencies": {
|
| 1031 |
+
"@types/mdast": "^4.0.0",
|
| 1032 |
+
"mdast-util-from-markdown": "^2.0.0",
|
| 1033 |
+
"micromark-util-types": "^2.0.0",
|
| 1034 |
+
"unified": "^11.0.0"
|
| 1035 |
+
},
|
| 1036 |
+
"funding": {
|
| 1037 |
+
"type": "opencollective",
|
| 1038 |
+
"url": "https://opencollective.com/unified"
|
| 1039 |
+
}
|
| 1040 |
+
},
|
| 1041 |
+
"node_modules/remark-rehype": {
|
| 1042 |
+
"version": "11.1.2",
|
| 1043 |
+
"resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz",
|
| 1044 |
+
"integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==",
|
| 1045 |
+
"license": "MIT",
|
| 1046 |
+
"dependencies": {
|
| 1047 |
+
"@types/hast": "^3.0.0",
|
| 1048 |
+
"@types/mdast": "^4.0.0",
|
| 1049 |
+
"mdast-util-to-hast": "^13.0.0",
|
| 1050 |
+
"unified": "^11.0.0",
|
| 1051 |
+
"vfile": "^6.0.0"
|
| 1052 |
+
},
|
| 1053 |
+
"funding": {
|
| 1054 |
+
"type": "opencollective",
|
| 1055 |
+
"url": "https://opencollective.com/unified"
|
| 1056 |
+
}
|
| 1057 |
+
},
|
| 1058 |
+
"node_modules/space-separated-tokens": {
|
| 1059 |
+
"version": "2.0.2",
|
| 1060 |
+
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
|
| 1061 |
+
"integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
|
| 1062 |
+
"license": "MIT",
|
| 1063 |
+
"funding": {
|
| 1064 |
+
"type": "github",
|
| 1065 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 1066 |
+
}
|
| 1067 |
+
},
|
| 1068 |
+
"node_modules/stringify-entities": {
|
| 1069 |
+
"version": "4.0.4",
|
| 1070 |
+
"resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
|
| 1071 |
+
"integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
|
| 1072 |
+
"license": "MIT",
|
| 1073 |
+
"dependencies": {
|
| 1074 |
+
"character-entities-html4": "^2.0.0",
|
| 1075 |
+
"character-entities-legacy": "^3.0.0"
|
| 1076 |
+
},
|
| 1077 |
+
"funding": {
|
| 1078 |
+
"type": "github",
|
| 1079 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 1080 |
+
}
|
| 1081 |
+
},
|
| 1082 |
+
"node_modules/style-to-js": {
|
| 1083 |
+
"version": "1.1.21",
|
| 1084 |
+
"resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz",
|
| 1085 |
+
"integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==",
|
| 1086 |
+
"license": "MIT",
|
| 1087 |
+
"dependencies": {
|
| 1088 |
+
"style-to-object": "1.0.14"
|
| 1089 |
+
}
|
| 1090 |
+
},
|
| 1091 |
+
"node_modules/style-to-object": {
|
| 1092 |
+
"version": "1.0.14",
|
| 1093 |
+
"resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz",
|
| 1094 |
+
"integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==",
|
| 1095 |
+
"license": "MIT",
|
| 1096 |
+
"dependencies": {
|
| 1097 |
+
"inline-style-parser": "0.2.7"
|
| 1098 |
+
}
|
| 1099 |
+
},
|
| 1100 |
+
"node_modules/trim-lines": {
|
| 1101 |
+
"version": "3.0.1",
|
| 1102 |
+
"resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
|
| 1103 |
+
"integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
|
| 1104 |
+
"license": "MIT",
|
| 1105 |
+
"funding": {
|
| 1106 |
+
"type": "github",
|
| 1107 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 1108 |
+
}
|
| 1109 |
+
},
|
| 1110 |
+
"node_modules/trough": {
|
| 1111 |
+
"version": "2.2.0",
|
| 1112 |
+
"resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
|
| 1113 |
+
"integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
|
| 1114 |
+
"license": "MIT",
|
| 1115 |
+
"funding": {
|
| 1116 |
+
"type": "github",
|
| 1117 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 1118 |
+
}
|
| 1119 |
+
},
|
| 1120 |
+
"node_modules/unified": {
|
| 1121 |
+
"version": "11.0.5",
|
| 1122 |
+
"resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
|
| 1123 |
+
"integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
|
| 1124 |
+
"license": "MIT",
|
| 1125 |
+
"dependencies": {
|
| 1126 |
+
"@types/unist": "^3.0.0",
|
| 1127 |
+
"bail": "^2.0.0",
|
| 1128 |
+
"devlop": "^1.0.0",
|
| 1129 |
+
"extend": "^3.0.0",
|
| 1130 |
+
"is-plain-obj": "^4.0.0",
|
| 1131 |
+
"trough": "^2.0.0",
|
| 1132 |
+
"vfile": "^6.0.0"
|
| 1133 |
+
},
|
| 1134 |
+
"funding": {
|
| 1135 |
+
"type": "opencollective",
|
| 1136 |
+
"url": "https://opencollective.com/unified"
|
| 1137 |
+
}
|
| 1138 |
+
},
|
| 1139 |
+
"node_modules/unist-util-is": {
|
| 1140 |
+
"version": "6.0.1",
|
| 1141 |
+
"resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz",
|
| 1142 |
+
"integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==",
|
| 1143 |
+
"license": "MIT",
|
| 1144 |
+
"dependencies": {
|
| 1145 |
+
"@types/unist": "^3.0.0"
|
| 1146 |
+
},
|
| 1147 |
+
"funding": {
|
| 1148 |
+
"type": "opencollective",
|
| 1149 |
+
"url": "https://opencollective.com/unified"
|
| 1150 |
+
}
|
| 1151 |
+
},
|
| 1152 |
+
"node_modules/unist-util-position": {
|
| 1153 |
+
"version": "5.0.0",
|
| 1154 |
+
"resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
|
| 1155 |
+
"integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
|
| 1156 |
+
"license": "MIT",
|
| 1157 |
+
"dependencies": {
|
| 1158 |
+
"@types/unist": "^3.0.0"
|
| 1159 |
+
},
|
| 1160 |
+
"funding": {
|
| 1161 |
+
"type": "opencollective",
|
| 1162 |
+
"url": "https://opencollective.com/unified"
|
| 1163 |
+
}
|
| 1164 |
+
},
|
| 1165 |
+
"node_modules/unist-util-stringify-position": {
|
| 1166 |
+
"version": "4.0.0",
|
| 1167 |
+
"resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
|
| 1168 |
+
"integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
|
| 1169 |
+
"license": "MIT",
|
| 1170 |
+
"dependencies": {
|
| 1171 |
+
"@types/unist": "^3.0.0"
|
| 1172 |
+
},
|
| 1173 |
+
"funding": {
|
| 1174 |
+
"type": "opencollective",
|
| 1175 |
+
"url": "https://opencollective.com/unified"
|
| 1176 |
+
}
|
| 1177 |
+
},
|
| 1178 |
+
"node_modules/unist-util-visit": {
|
| 1179 |
+
"version": "5.0.0",
|
| 1180 |
+
"resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
|
| 1181 |
+
"integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
|
| 1182 |
+
"license": "MIT",
|
| 1183 |
+
"dependencies": {
|
| 1184 |
+
"@types/unist": "^3.0.0",
|
| 1185 |
+
"unist-util-is": "^6.0.0",
|
| 1186 |
+
"unist-util-visit-parents": "^6.0.0"
|
| 1187 |
+
},
|
| 1188 |
+
"funding": {
|
| 1189 |
+
"type": "opencollective",
|
| 1190 |
+
"url": "https://opencollective.com/unified"
|
| 1191 |
+
}
|
| 1192 |
+
},
|
| 1193 |
+
"node_modules/unist-util-visit-parents": {
|
| 1194 |
+
"version": "6.0.2",
|
| 1195 |
+
"resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz",
|
| 1196 |
+
"integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==",
|
| 1197 |
+
"license": "MIT",
|
| 1198 |
+
"dependencies": {
|
| 1199 |
+
"@types/unist": "^3.0.0",
|
| 1200 |
+
"unist-util-is": "^6.0.0"
|
| 1201 |
+
},
|
| 1202 |
+
"funding": {
|
| 1203 |
+
"type": "opencollective",
|
| 1204 |
+
"url": "https://opencollective.com/unified"
|
| 1205 |
+
}
|
| 1206 |
+
},
|
| 1207 |
+
"node_modules/vfile": {
|
| 1208 |
+
"version": "6.0.3",
|
| 1209 |
+
"resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
|
| 1210 |
+
"integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
|
| 1211 |
+
"license": "MIT",
|
| 1212 |
+
"dependencies": {
|
| 1213 |
+
"@types/unist": "^3.0.0",
|
| 1214 |
+
"vfile-message": "^4.0.0"
|
| 1215 |
+
},
|
| 1216 |
+
"funding": {
|
| 1217 |
+
"type": "opencollective",
|
| 1218 |
+
"url": "https://opencollective.com/unified"
|
| 1219 |
+
}
|
| 1220 |
+
},
|
| 1221 |
+
"node_modules/vfile-message": {
|
| 1222 |
+
"version": "4.0.3",
|
| 1223 |
+
"resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz",
|
| 1224 |
+
"integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==",
|
| 1225 |
+
"license": "MIT",
|
| 1226 |
+
"dependencies": {
|
| 1227 |
+
"@types/unist": "^3.0.0",
|
| 1228 |
+
"unist-util-stringify-position": "^4.0.0"
|
| 1229 |
+
},
|
| 1230 |
+
"funding": {
|
| 1231 |
+
"type": "opencollective",
|
| 1232 |
+
"url": "https://opencollective.com/unified"
|
| 1233 |
+
}
|
| 1234 |
+
},
|
| 1235 |
+
"node_modules/zwitch": {
|
| 1236 |
+
"version": "2.0.4",
|
| 1237 |
+
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
|
| 1238 |
+
"integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
|
| 1239 |
+
"license": "MIT",
|
| 1240 |
+
"funding": {
|
| 1241 |
+
"type": "github",
|
| 1242 |
+
"url": "https://github.com/sponsors/wooorm"
|
| 1243 |
+
}
|
| 1244 |
+
}
|
| 1245 |
+
}
|
| 1246 |
+
}
|
node_modules/@types/debug/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|
node_modules/@types/debug/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Installation
|
| 2 |
+
> `npm install --save @types/debug`
|
| 3 |
+
|
| 4 |
+
# Summary
|
| 5 |
+
This package contains type definitions for debug (https://github.com/debug-js/debug).
|
| 6 |
+
|
| 7 |
+
# Details
|
| 8 |
+
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug.
|
| 9 |
+
## [index.d.ts](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug/index.d.ts)
|
| 10 |
+
````ts
|
| 11 |
+
declare var debug: debug.Debug & { debug: debug.Debug; default: debug.Debug };
|
| 12 |
+
|
| 13 |
+
export = debug;
|
| 14 |
+
export as namespace debug;
|
| 15 |
+
|
| 16 |
+
declare namespace debug {
|
| 17 |
+
interface Debug {
|
| 18 |
+
(namespace: string): Debugger;
|
| 19 |
+
coerce: (val: any) => any;
|
| 20 |
+
disable: () => string;
|
| 21 |
+
enable: (namespaces: string) => void;
|
| 22 |
+
enabled: (namespaces: string) => boolean;
|
| 23 |
+
formatArgs: (this: Debugger, args: any[]) => void;
|
| 24 |
+
log: (...args: any[]) => any;
|
| 25 |
+
selectColor: (namespace: string) => string | number;
|
| 26 |
+
humanize: typeof import("ms");
|
| 27 |
+
|
| 28 |
+
names: RegExp[];
|
| 29 |
+
skips: RegExp[];
|
| 30 |
+
|
| 31 |
+
formatters: Formatters;
|
| 32 |
+
|
| 33 |
+
inspectOpts?: {
|
| 34 |
+
hideDate?: boolean | number | null;
|
| 35 |
+
colors?: boolean | number | null;
|
| 36 |
+
depth?: boolean | number | null;
|
| 37 |
+
showHidden?: boolean | number | null;
|
| 38 |
+
};
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
type IDebug = Debug;
|
| 42 |
+
|
| 43 |
+
interface Formatters {
|
| 44 |
+
[formatter: string]: (v: any) => string;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
type IDebugger = Debugger;
|
| 48 |
+
|
| 49 |
+
interface Debugger {
|
| 50 |
+
(formatter: any, ...args: any[]): void;
|
| 51 |
+
|
| 52 |
+
color: string;
|
| 53 |
+
diff: number;
|
| 54 |
+
enabled: boolean;
|
| 55 |
+
log: (...args: any[]) => any;
|
| 56 |
+
namespace: string;
|
| 57 |
+
destroy: () => boolean;
|
| 58 |
+
extend: (namespace: string, delimiter?: string) => Debugger;
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
````
|
| 63 |
+
|
| 64 |
+
### Additional Details
|
| 65 |
+
* Last updated: Thu, 09 Nov 2023 03:06:57 GMT
|
| 66 |
+
* Dependencies: [@types/ms](https://npmjs.com/package/@types/ms)
|
| 67 |
+
|
| 68 |
+
# Credits
|
| 69 |
+
These definitions were written by [Seon-Wook Park](https://github.com/swook), [Gal Talmor](https://github.com/galtalmor), [John McLaughlin](https://github.com/zamb3zi), [Brasten Sager](https://github.com/brasten), [Nicolas Penin](https://github.com/npenin), [Kristian Brünn](https://github.com/kristianmitk), and [Caleb Gregory](https://github.com/calebgregory).
|
node_modules/@types/debug/index.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
declare var debug: debug.Debug & { debug: debug.Debug; default: debug.Debug };
|
| 2 |
+
|
| 3 |
+
export = debug;
|
| 4 |
+
export as namespace debug;
|
| 5 |
+
|
| 6 |
+
declare namespace debug {
|
| 7 |
+
interface Debug {
|
| 8 |
+
(namespace: string): Debugger;
|
| 9 |
+
coerce: (val: any) => any;
|
| 10 |
+
disable: () => string;
|
| 11 |
+
enable: (namespaces: string) => void;
|
| 12 |
+
enabled: (namespaces: string) => boolean;
|
| 13 |
+
formatArgs: (this: Debugger, args: any[]) => void;
|
| 14 |
+
log: (...args: any[]) => any;
|
| 15 |
+
selectColor: (namespace: string) => string | number;
|
| 16 |
+
humanize: typeof import("ms");
|
| 17 |
+
|
| 18 |
+
names: RegExp[];
|
| 19 |
+
skips: RegExp[];
|
| 20 |
+
|
| 21 |
+
formatters: Formatters;
|
| 22 |
+
|
| 23 |
+
inspectOpts?: {
|
| 24 |
+
hideDate?: boolean | number | null;
|
| 25 |
+
colors?: boolean | number | null;
|
| 26 |
+
depth?: boolean | number | null;
|
| 27 |
+
showHidden?: boolean | number | null;
|
| 28 |
+
};
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
type IDebug = Debug;
|
| 32 |
+
|
| 33 |
+
interface Formatters {
|
| 34 |
+
[formatter: string]: (v: any) => string;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
type IDebugger = Debugger;
|
| 38 |
+
|
| 39 |
+
interface Debugger {
|
| 40 |
+
(formatter: any, ...args: any[]): void;
|
| 41 |
+
|
| 42 |
+
color: string;
|
| 43 |
+
diff: number;
|
| 44 |
+
enabled: boolean;
|
| 45 |
+
log: (...args: any[]) => any;
|
| 46 |
+
namespace: string;
|
| 47 |
+
destroy: () => boolean;
|
| 48 |
+
extend: (namespace: string, delimiter?: string) => Debugger;
|
| 49 |
+
}
|
| 50 |
+
}
|
node_modules/@types/debug/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "@types/debug",
|
| 3 |
+
"version": "4.1.12",
|
| 4 |
+
"description": "TypeScript definitions for debug",
|
| 5 |
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/debug",
|
| 6 |
+
"license": "MIT",
|
| 7 |
+
"contributors": [
|
| 8 |
+
{
|
| 9 |
+
"name": "Seon-Wook Park",
|
| 10 |
+
"githubUsername": "swook",
|
| 11 |
+
"url": "https://github.com/swook"
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"name": "Gal Talmor",
|
| 15 |
+
"githubUsername": "galtalmor",
|
| 16 |
+
"url": "https://github.com/galtalmor"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "John McLaughlin",
|
| 20 |
+
"githubUsername": "zamb3zi",
|
| 21 |
+
"url": "https://github.com/zamb3zi"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"name": "Brasten Sager",
|
| 25 |
+
"githubUsername": "brasten",
|
| 26 |
+
"url": "https://github.com/brasten"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"name": "Nicolas Penin",
|
| 30 |
+
"githubUsername": "npenin",
|
| 31 |
+
"url": "https://github.com/npenin"
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
"name": "Kristian Brünn",
|
| 35 |
+
"githubUsername": "kristianmitk",
|
| 36 |
+
"url": "https://github.com/kristianmitk"
|
| 37 |
+
},
|
| 38 |
+
{
|
| 39 |
+
"name": "Caleb Gregory",
|
| 40 |
+
"githubUsername": "calebgregory",
|
| 41 |
+
"url": "https://github.com/calebgregory"
|
| 42 |
+
}
|
| 43 |
+
],
|
| 44 |
+
"main": "",
|
| 45 |
+
"types": "index.d.ts",
|
| 46 |
+
"repository": {
|
| 47 |
+
"type": "git",
|
| 48 |
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
| 49 |
+
"directory": "types/debug"
|
| 50 |
+
},
|
| 51 |
+
"scripts": {},
|
| 52 |
+
"dependencies": {
|
| 53 |
+
"@types/ms": "*"
|
| 54 |
+
},
|
| 55 |
+
"typesPublisherContentHash": "1053110a8e5e302f35fb57f45389304fa5a4f53bb8982b76b8065bcfd7083731",
|
| 56 |
+
"typeScriptVersion": "4.5"
|
| 57 |
+
}
|
node_modules/@types/estree-jsx/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|
node_modules/@types/estree-jsx/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Installation
|
| 2 |
+
> `npm install --save @types/estree-jsx`
|
| 3 |
+
|
| 4 |
+
# Summary
|
| 5 |
+
This package contains type definitions for estree-jsx (https://github.com/facebook/jsx).
|
| 6 |
+
|
| 7 |
+
# Details
|
| 8 |
+
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree-jsx.
|
| 9 |
+
|
| 10 |
+
### Additional Details
|
| 11 |
+
* Last updated: Fri, 23 Feb 2024 02:11:41 GMT
|
| 12 |
+
* Dependencies: [@types/estree](https://npmjs.com/package/@types/estree)
|
| 13 |
+
|
| 14 |
+
# Credits
|
| 15 |
+
These definitions were written by [Tony Ross](https://github.com/antross).
|
node_modules/@types/estree-jsx/index.d.ts
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Based on https://github.com/facebook/jsx/blob/master/AST.md.
|
| 2 |
+
// Extends existing types for ESTree AST from `@types/estree`.
|
| 3 |
+
|
| 4 |
+
import { BaseExpression, BaseNode, Expression, Literal } from "estree";
|
| 5 |
+
|
| 6 |
+
export * from "estree";
|
| 7 |
+
|
| 8 |
+
declare module "estree" {
|
| 9 |
+
interface ExpressionMap {
|
| 10 |
+
JSXElement: JSXElement;
|
| 11 |
+
JSXFragment: JSXFragment;
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
interface NodeMap {
|
| 15 |
+
JSXIdentifier: JSXIdentifier;
|
| 16 |
+
JSXNamespacedName: JSXNamespacedName;
|
| 17 |
+
JSXMemberExpression: JSXMemberExpression;
|
| 18 |
+
JSXEmptyExpression: JSXEmptyExpression;
|
| 19 |
+
JSXExpressionContainer: JSXExpressionContainer;
|
| 20 |
+
JSXSpreadAttribute: JSXSpreadAttribute;
|
| 21 |
+
JSXAttribute: JSXAttribute;
|
| 22 |
+
JSXOpeningElement: JSXOpeningElement;
|
| 23 |
+
JSXOpeningFragment: JSXOpeningFragment;
|
| 24 |
+
JSXClosingElement: JSXClosingElement;
|
| 25 |
+
JSXClosingFragment: JSXClosingFragment;
|
| 26 |
+
JSXElement: JSXElement;
|
| 27 |
+
JSXFragment: JSXFragment;
|
| 28 |
+
JSXText: JSXText;
|
| 29 |
+
}
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
export interface JSXIdentifier extends BaseNode {
|
| 33 |
+
type: "JSXIdentifier";
|
| 34 |
+
name: string;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
export interface JSXMemberExpression extends BaseExpression {
|
| 38 |
+
type: "JSXMemberExpression";
|
| 39 |
+
object: JSXMemberExpression | JSXIdentifier;
|
| 40 |
+
property: JSXIdentifier;
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
export interface JSXNamespacedName extends BaseExpression {
|
| 44 |
+
type: "JSXNamespacedName";
|
| 45 |
+
namespace: JSXIdentifier;
|
| 46 |
+
name: JSXIdentifier;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
export interface JSXEmptyExpression extends BaseNode {
|
| 50 |
+
type: "JSXEmptyExpression";
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
export interface JSXExpressionContainer extends BaseNode {
|
| 54 |
+
type: "JSXExpressionContainer";
|
| 55 |
+
expression: Expression | JSXEmptyExpression;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
export interface JSXSpreadChild extends BaseNode {
|
| 59 |
+
type: "JSXSpreadChild";
|
| 60 |
+
expression: Expression;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
interface JSXBoundaryElement extends BaseNode {
|
| 64 |
+
name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
export interface JSXOpeningElement extends JSXBoundaryElement {
|
| 68 |
+
type: "JSXOpeningElement";
|
| 69 |
+
attributes: Array<JSXAttribute | JSXSpreadAttribute>;
|
| 70 |
+
selfClosing: boolean;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
export interface JSXClosingElement extends JSXBoundaryElement {
|
| 74 |
+
type: "JSXClosingElement";
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
export interface JSXAttribute extends BaseNode {
|
| 78 |
+
type: "JSXAttribute";
|
| 79 |
+
name: JSXIdentifier | JSXNamespacedName;
|
| 80 |
+
value: Literal | JSXExpressionContainer | JSXElement | JSXFragment | null;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
export interface JSXSpreadAttribute extends BaseNode {
|
| 84 |
+
type: "JSXSpreadAttribute";
|
| 85 |
+
argument: Expression;
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
export interface JSXText extends BaseNode {
|
| 89 |
+
type: "JSXText";
|
| 90 |
+
value: string;
|
| 91 |
+
raw: string;
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
export interface JSXElement extends BaseExpression {
|
| 95 |
+
type: "JSXElement";
|
| 96 |
+
openingElement: JSXOpeningElement;
|
| 97 |
+
children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
|
| 98 |
+
closingElement: JSXClosingElement | null;
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
export interface JSXFragment extends BaseExpression {
|
| 102 |
+
type: "JSXFragment";
|
| 103 |
+
openingFragment: JSXOpeningFragment;
|
| 104 |
+
children: Array<JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment>;
|
| 105 |
+
closingFragment: JSXClosingFragment;
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
export interface JSXOpeningFragment extends BaseNode {
|
| 109 |
+
type: "JSXOpeningFragment";
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
export interface JSXClosingFragment extends BaseNode {
|
| 113 |
+
type: "JSXClosingFragment";
|
| 114 |
+
}
|
node_modules/@types/estree-jsx/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "@types/estree-jsx",
|
| 3 |
+
"version": "1.0.5",
|
| 4 |
+
"description": "TypeScript definitions for estree-jsx",
|
| 5 |
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree-jsx",
|
| 6 |
+
"license": "MIT",
|
| 7 |
+
"contributors": [
|
| 8 |
+
{
|
| 9 |
+
"name": "Tony Ross",
|
| 10 |
+
"githubUsername": "antross",
|
| 11 |
+
"url": "https://github.com/antross"
|
| 12 |
+
}
|
| 13 |
+
],
|
| 14 |
+
"main": "",
|
| 15 |
+
"types": "index.d.ts",
|
| 16 |
+
"repository": {
|
| 17 |
+
"type": "git",
|
| 18 |
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
| 19 |
+
"directory": "types/estree-jsx"
|
| 20 |
+
},
|
| 21 |
+
"scripts": {},
|
| 22 |
+
"dependencies": {
|
| 23 |
+
"@types/estree": "*"
|
| 24 |
+
},
|
| 25 |
+
"typesPublisherContentHash": "42fda803cc34f935c5a60a45e66b78e18fac56ef350d2d47c00759e16d4fef7f",
|
| 26 |
+
"typeScriptVersion": "4.6"
|
| 27 |
+
}
|
node_modules/@types/estree/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|
node_modules/@types/estree/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Installation
|
| 2 |
+
> `npm install --save @types/estree`
|
| 3 |
+
|
| 4 |
+
# Summary
|
| 5 |
+
This package contains type definitions for estree (https://github.com/estree/estree).
|
| 6 |
+
|
| 7 |
+
# Details
|
| 8 |
+
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree.
|
| 9 |
+
|
| 10 |
+
### Additional Details
|
| 11 |
+
* Last updated: Fri, 06 Jun 2025 00:04:33 GMT
|
| 12 |
+
* Dependencies: none
|
| 13 |
+
|
| 14 |
+
# Credits
|
| 15 |
+
These definitions were written by [RReverser](https://github.com/RReverser).
|
node_modules/@types/estree/flow.d.ts
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
declare namespace ESTree {
|
| 2 |
+
interface FlowTypeAnnotation extends Node {}
|
| 3 |
+
|
| 4 |
+
interface FlowBaseTypeAnnotation extends FlowTypeAnnotation {}
|
| 5 |
+
|
| 6 |
+
interface FlowLiteralTypeAnnotation extends FlowTypeAnnotation, Literal {}
|
| 7 |
+
|
| 8 |
+
interface FlowDeclaration extends Declaration {}
|
| 9 |
+
|
| 10 |
+
interface AnyTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 11 |
+
|
| 12 |
+
interface ArrayTypeAnnotation extends FlowTypeAnnotation {
|
| 13 |
+
elementType: FlowTypeAnnotation;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
interface BooleanLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
| 17 |
+
|
| 18 |
+
interface BooleanTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 19 |
+
|
| 20 |
+
interface ClassImplements extends Node {
|
| 21 |
+
id: Identifier;
|
| 22 |
+
typeParameters?: TypeParameterInstantiation | null;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
interface ClassProperty {
|
| 26 |
+
key: Expression;
|
| 27 |
+
value?: Expression | null;
|
| 28 |
+
typeAnnotation?: TypeAnnotation | null;
|
| 29 |
+
computed: boolean;
|
| 30 |
+
static: boolean;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
interface DeclareClass extends FlowDeclaration {
|
| 34 |
+
id: Identifier;
|
| 35 |
+
typeParameters?: TypeParameterDeclaration | null;
|
| 36 |
+
body: ObjectTypeAnnotation;
|
| 37 |
+
extends: InterfaceExtends[];
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
interface DeclareFunction extends FlowDeclaration {
|
| 41 |
+
id: Identifier;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
interface DeclareModule extends FlowDeclaration {
|
| 45 |
+
id: Literal | Identifier;
|
| 46 |
+
body: BlockStatement;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
interface DeclareVariable extends FlowDeclaration {
|
| 50 |
+
id: Identifier;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
interface FunctionTypeAnnotation extends FlowTypeAnnotation {
|
| 54 |
+
params: FunctionTypeParam[];
|
| 55 |
+
returnType: FlowTypeAnnotation;
|
| 56 |
+
rest?: FunctionTypeParam | null;
|
| 57 |
+
typeParameters?: TypeParameterDeclaration | null;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
interface FunctionTypeParam {
|
| 61 |
+
name: Identifier;
|
| 62 |
+
typeAnnotation: FlowTypeAnnotation;
|
| 63 |
+
optional: boolean;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
interface GenericTypeAnnotation extends FlowTypeAnnotation {
|
| 67 |
+
id: Identifier | QualifiedTypeIdentifier;
|
| 68 |
+
typeParameters?: TypeParameterInstantiation | null;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
interface InterfaceExtends extends Node {
|
| 72 |
+
id: Identifier | QualifiedTypeIdentifier;
|
| 73 |
+
typeParameters?: TypeParameterInstantiation | null;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
interface InterfaceDeclaration extends FlowDeclaration {
|
| 77 |
+
id: Identifier;
|
| 78 |
+
typeParameters?: TypeParameterDeclaration | null;
|
| 79 |
+
extends: InterfaceExtends[];
|
| 80 |
+
body: ObjectTypeAnnotation;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
interface IntersectionTypeAnnotation extends FlowTypeAnnotation {
|
| 84 |
+
types: FlowTypeAnnotation[];
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
interface MixedTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 88 |
+
|
| 89 |
+
interface NullableTypeAnnotation extends FlowTypeAnnotation {
|
| 90 |
+
typeAnnotation: TypeAnnotation;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
interface NumberLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
| 94 |
+
|
| 95 |
+
interface NumberTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 96 |
+
|
| 97 |
+
interface StringLiteralTypeAnnotation extends FlowLiteralTypeAnnotation {}
|
| 98 |
+
|
| 99 |
+
interface StringTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 100 |
+
|
| 101 |
+
interface TupleTypeAnnotation extends FlowTypeAnnotation {
|
| 102 |
+
types: FlowTypeAnnotation[];
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
interface TypeofTypeAnnotation extends FlowTypeAnnotation {
|
| 106 |
+
argument: FlowTypeAnnotation;
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
interface TypeAlias extends FlowDeclaration {
|
| 110 |
+
id: Identifier;
|
| 111 |
+
typeParameters?: TypeParameterDeclaration | null;
|
| 112 |
+
right: FlowTypeAnnotation;
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
interface TypeAnnotation extends Node {
|
| 116 |
+
typeAnnotation: FlowTypeAnnotation;
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
interface TypeCastExpression extends Expression {
|
| 120 |
+
expression: Expression;
|
| 121 |
+
typeAnnotation: TypeAnnotation;
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
interface TypeParameterDeclaration extends Node {
|
| 125 |
+
params: Identifier[];
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
interface TypeParameterInstantiation extends Node {
|
| 129 |
+
params: FlowTypeAnnotation[];
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
interface ObjectTypeAnnotation extends FlowTypeAnnotation {
|
| 133 |
+
properties: ObjectTypeProperty[];
|
| 134 |
+
indexers: ObjectTypeIndexer[];
|
| 135 |
+
callProperties: ObjectTypeCallProperty[];
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
interface ObjectTypeCallProperty extends Node {
|
| 139 |
+
value: FunctionTypeAnnotation;
|
| 140 |
+
static: boolean;
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
interface ObjectTypeIndexer extends Node {
|
| 144 |
+
id: Identifier;
|
| 145 |
+
key: FlowTypeAnnotation;
|
| 146 |
+
value: FlowTypeAnnotation;
|
| 147 |
+
static: boolean;
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
interface ObjectTypeProperty extends Node {
|
| 151 |
+
key: Expression;
|
| 152 |
+
value: FlowTypeAnnotation;
|
| 153 |
+
optional: boolean;
|
| 154 |
+
static: boolean;
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
interface QualifiedTypeIdentifier extends Node {
|
| 158 |
+
qualification: Identifier | QualifiedTypeIdentifier;
|
| 159 |
+
id: Identifier;
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
interface UnionTypeAnnotation extends FlowTypeAnnotation {
|
| 163 |
+
types: FlowTypeAnnotation[];
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
interface VoidTypeAnnotation extends FlowBaseTypeAnnotation {}
|
| 167 |
+
}
|
node_modules/@types/estree/index.d.ts
ADDED
|
@@ -0,0 +1,694 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// This definition file follows a somewhat unusual format. ESTree allows
|
| 2 |
+
// runtime type checks based on the `type` parameter. In order to explain this
|
| 3 |
+
// to typescript we want to use discriminated union types:
|
| 4 |
+
// https://github.com/Microsoft/TypeScript/pull/9163
|
| 5 |
+
//
|
| 6 |
+
// For ESTree this is a bit tricky because the high level interfaces like
|
| 7 |
+
// Node or Function are pulling double duty. We want to pass common fields down
|
| 8 |
+
// to the interfaces that extend them (like Identifier or
|
| 9 |
+
// ArrowFunctionExpression), but you can't extend a type union or enforce
|
| 10 |
+
// common fields on them. So we've split the high level interfaces into two
|
| 11 |
+
// types, a base type which passes down inherited fields, and a type union of
|
| 12 |
+
// all types which extend the base type. Only the type union is exported, and
|
| 13 |
+
// the union is how other types refer to the collection of inheriting types.
|
| 14 |
+
//
|
| 15 |
+
// This makes the definitions file here somewhat more difficult to maintain,
|
| 16 |
+
// but it has the notable advantage of making ESTree much easier to use as
|
| 17 |
+
// an end user.
|
| 18 |
+
|
| 19 |
+
export interface BaseNodeWithoutComments {
|
| 20 |
+
// Every leaf interface that extends BaseNode must specify a type property.
|
| 21 |
+
// The type property should be a string literal. For example, Identifier
|
| 22 |
+
// has: `type: "Identifier"`
|
| 23 |
+
type: string;
|
| 24 |
+
loc?: SourceLocation | null | undefined;
|
| 25 |
+
range?: [number, number] | undefined;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
export interface BaseNode extends BaseNodeWithoutComments {
|
| 29 |
+
leadingComments?: Comment[] | undefined;
|
| 30 |
+
trailingComments?: Comment[] | undefined;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
export interface NodeMap {
|
| 34 |
+
AssignmentProperty: AssignmentProperty;
|
| 35 |
+
CatchClause: CatchClause;
|
| 36 |
+
Class: Class;
|
| 37 |
+
ClassBody: ClassBody;
|
| 38 |
+
Expression: Expression;
|
| 39 |
+
Function: Function;
|
| 40 |
+
Identifier: Identifier;
|
| 41 |
+
Literal: Literal;
|
| 42 |
+
MethodDefinition: MethodDefinition;
|
| 43 |
+
ModuleDeclaration: ModuleDeclaration;
|
| 44 |
+
ModuleSpecifier: ModuleSpecifier;
|
| 45 |
+
Pattern: Pattern;
|
| 46 |
+
PrivateIdentifier: PrivateIdentifier;
|
| 47 |
+
Program: Program;
|
| 48 |
+
Property: Property;
|
| 49 |
+
PropertyDefinition: PropertyDefinition;
|
| 50 |
+
SpreadElement: SpreadElement;
|
| 51 |
+
Statement: Statement;
|
| 52 |
+
Super: Super;
|
| 53 |
+
SwitchCase: SwitchCase;
|
| 54 |
+
TemplateElement: TemplateElement;
|
| 55 |
+
VariableDeclarator: VariableDeclarator;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
export type Node = NodeMap[keyof NodeMap];
|
| 59 |
+
|
| 60 |
+
export interface Comment extends BaseNodeWithoutComments {
|
| 61 |
+
type: "Line" | "Block";
|
| 62 |
+
value: string;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
export interface SourceLocation {
|
| 66 |
+
source?: string | null | undefined;
|
| 67 |
+
start: Position;
|
| 68 |
+
end: Position;
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
export interface Position {
|
| 72 |
+
/** >= 1 */
|
| 73 |
+
line: number;
|
| 74 |
+
/** >= 0 */
|
| 75 |
+
column: number;
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
export interface Program extends BaseNode {
|
| 79 |
+
type: "Program";
|
| 80 |
+
sourceType: "script" | "module";
|
| 81 |
+
body: Array<Directive | Statement | ModuleDeclaration>;
|
| 82 |
+
comments?: Comment[] | undefined;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
export interface Directive extends BaseNode {
|
| 86 |
+
type: "ExpressionStatement";
|
| 87 |
+
expression: Literal;
|
| 88 |
+
directive: string;
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
export interface BaseFunction extends BaseNode {
|
| 92 |
+
params: Pattern[];
|
| 93 |
+
generator?: boolean | undefined;
|
| 94 |
+
async?: boolean | undefined;
|
| 95 |
+
// The body is either BlockStatement or Expression because arrow functions
|
| 96 |
+
// can have a body that's either. FunctionDeclarations and
|
| 97 |
+
// FunctionExpressions have only BlockStatement bodies.
|
| 98 |
+
body: BlockStatement | Expression;
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
export type Function = FunctionDeclaration | FunctionExpression | ArrowFunctionExpression;
|
| 102 |
+
|
| 103 |
+
export type Statement =
|
| 104 |
+
| ExpressionStatement
|
| 105 |
+
| BlockStatement
|
| 106 |
+
| StaticBlock
|
| 107 |
+
| EmptyStatement
|
| 108 |
+
| DebuggerStatement
|
| 109 |
+
| WithStatement
|
| 110 |
+
| ReturnStatement
|
| 111 |
+
| LabeledStatement
|
| 112 |
+
| BreakStatement
|
| 113 |
+
| ContinueStatement
|
| 114 |
+
| IfStatement
|
| 115 |
+
| SwitchStatement
|
| 116 |
+
| ThrowStatement
|
| 117 |
+
| TryStatement
|
| 118 |
+
| WhileStatement
|
| 119 |
+
| DoWhileStatement
|
| 120 |
+
| ForStatement
|
| 121 |
+
| ForInStatement
|
| 122 |
+
| ForOfStatement
|
| 123 |
+
| Declaration;
|
| 124 |
+
|
| 125 |
+
export interface BaseStatement extends BaseNode {}
|
| 126 |
+
|
| 127 |
+
export interface EmptyStatement extends BaseStatement {
|
| 128 |
+
type: "EmptyStatement";
|
| 129 |
+
}
|
| 130 |
+
|
| 131 |
+
export interface BlockStatement extends BaseStatement {
|
| 132 |
+
type: "BlockStatement";
|
| 133 |
+
body: Statement[];
|
| 134 |
+
innerComments?: Comment[] | undefined;
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
export interface StaticBlock extends Omit<BlockStatement, "type"> {
|
| 138 |
+
type: "StaticBlock";
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
export interface ExpressionStatement extends BaseStatement {
|
| 142 |
+
type: "ExpressionStatement";
|
| 143 |
+
expression: Expression;
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
export interface IfStatement extends BaseStatement {
|
| 147 |
+
type: "IfStatement";
|
| 148 |
+
test: Expression;
|
| 149 |
+
consequent: Statement;
|
| 150 |
+
alternate?: Statement | null | undefined;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
export interface LabeledStatement extends BaseStatement {
|
| 154 |
+
type: "LabeledStatement";
|
| 155 |
+
label: Identifier;
|
| 156 |
+
body: Statement;
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
export interface BreakStatement extends BaseStatement {
|
| 160 |
+
type: "BreakStatement";
|
| 161 |
+
label?: Identifier | null | undefined;
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
export interface ContinueStatement extends BaseStatement {
|
| 165 |
+
type: "ContinueStatement";
|
| 166 |
+
label?: Identifier | null | undefined;
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
export interface WithStatement extends BaseStatement {
|
| 170 |
+
type: "WithStatement";
|
| 171 |
+
object: Expression;
|
| 172 |
+
body: Statement;
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
export interface SwitchStatement extends BaseStatement {
|
| 176 |
+
type: "SwitchStatement";
|
| 177 |
+
discriminant: Expression;
|
| 178 |
+
cases: SwitchCase[];
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
export interface ReturnStatement extends BaseStatement {
|
| 182 |
+
type: "ReturnStatement";
|
| 183 |
+
argument?: Expression | null | undefined;
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
export interface ThrowStatement extends BaseStatement {
|
| 187 |
+
type: "ThrowStatement";
|
| 188 |
+
argument: Expression;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
export interface TryStatement extends BaseStatement {
|
| 192 |
+
type: "TryStatement";
|
| 193 |
+
block: BlockStatement;
|
| 194 |
+
handler?: CatchClause | null | undefined;
|
| 195 |
+
finalizer?: BlockStatement | null | undefined;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
export interface WhileStatement extends BaseStatement {
|
| 199 |
+
type: "WhileStatement";
|
| 200 |
+
test: Expression;
|
| 201 |
+
body: Statement;
|
| 202 |
+
}
|
| 203 |
+
|
| 204 |
+
export interface DoWhileStatement extends BaseStatement {
|
| 205 |
+
type: "DoWhileStatement";
|
| 206 |
+
body: Statement;
|
| 207 |
+
test: Expression;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
export interface ForStatement extends BaseStatement {
|
| 211 |
+
type: "ForStatement";
|
| 212 |
+
init?: VariableDeclaration | Expression | null | undefined;
|
| 213 |
+
test?: Expression | null | undefined;
|
| 214 |
+
update?: Expression | null | undefined;
|
| 215 |
+
body: Statement;
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
export interface BaseForXStatement extends BaseStatement {
|
| 219 |
+
left: VariableDeclaration | Pattern;
|
| 220 |
+
right: Expression;
|
| 221 |
+
body: Statement;
|
| 222 |
+
}
|
| 223 |
+
|
| 224 |
+
export interface ForInStatement extends BaseForXStatement {
|
| 225 |
+
type: "ForInStatement";
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
export interface DebuggerStatement extends BaseStatement {
|
| 229 |
+
type: "DebuggerStatement";
|
| 230 |
+
}
|
| 231 |
+
|
| 232 |
+
export type Declaration = FunctionDeclaration | VariableDeclaration | ClassDeclaration;
|
| 233 |
+
|
| 234 |
+
export interface BaseDeclaration extends BaseStatement {}
|
| 235 |
+
|
| 236 |
+
export interface MaybeNamedFunctionDeclaration extends BaseFunction, BaseDeclaration {
|
| 237 |
+
type: "FunctionDeclaration";
|
| 238 |
+
/** It is null when a function declaration is a part of the `export default function` statement */
|
| 239 |
+
id: Identifier | null;
|
| 240 |
+
body: BlockStatement;
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
export interface FunctionDeclaration extends MaybeNamedFunctionDeclaration {
|
| 244 |
+
id: Identifier;
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
export interface VariableDeclaration extends BaseDeclaration {
|
| 248 |
+
type: "VariableDeclaration";
|
| 249 |
+
declarations: VariableDeclarator[];
|
| 250 |
+
kind: "var" | "let" | "const" | "using" | "await using";
|
| 251 |
+
}
|
| 252 |
+
|
| 253 |
+
export interface VariableDeclarator extends BaseNode {
|
| 254 |
+
type: "VariableDeclarator";
|
| 255 |
+
id: Pattern;
|
| 256 |
+
init?: Expression | null | undefined;
|
| 257 |
+
}
|
| 258 |
+
|
| 259 |
+
export interface ExpressionMap {
|
| 260 |
+
ArrayExpression: ArrayExpression;
|
| 261 |
+
ArrowFunctionExpression: ArrowFunctionExpression;
|
| 262 |
+
AssignmentExpression: AssignmentExpression;
|
| 263 |
+
AwaitExpression: AwaitExpression;
|
| 264 |
+
BinaryExpression: BinaryExpression;
|
| 265 |
+
CallExpression: CallExpression;
|
| 266 |
+
ChainExpression: ChainExpression;
|
| 267 |
+
ClassExpression: ClassExpression;
|
| 268 |
+
ConditionalExpression: ConditionalExpression;
|
| 269 |
+
FunctionExpression: FunctionExpression;
|
| 270 |
+
Identifier: Identifier;
|
| 271 |
+
ImportExpression: ImportExpression;
|
| 272 |
+
Literal: Literal;
|
| 273 |
+
LogicalExpression: LogicalExpression;
|
| 274 |
+
MemberExpression: MemberExpression;
|
| 275 |
+
MetaProperty: MetaProperty;
|
| 276 |
+
NewExpression: NewExpression;
|
| 277 |
+
ObjectExpression: ObjectExpression;
|
| 278 |
+
SequenceExpression: SequenceExpression;
|
| 279 |
+
TaggedTemplateExpression: TaggedTemplateExpression;
|
| 280 |
+
TemplateLiteral: TemplateLiteral;
|
| 281 |
+
ThisExpression: ThisExpression;
|
| 282 |
+
UnaryExpression: UnaryExpression;
|
| 283 |
+
UpdateExpression: UpdateExpression;
|
| 284 |
+
YieldExpression: YieldExpression;
|
| 285 |
+
}
|
| 286 |
+
|
| 287 |
+
export type Expression = ExpressionMap[keyof ExpressionMap];
|
| 288 |
+
|
| 289 |
+
export interface BaseExpression extends BaseNode {}
|
| 290 |
+
|
| 291 |
+
export type ChainElement = SimpleCallExpression | MemberExpression;
|
| 292 |
+
|
| 293 |
+
export interface ChainExpression extends BaseExpression {
|
| 294 |
+
type: "ChainExpression";
|
| 295 |
+
expression: ChainElement;
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
export interface ThisExpression extends BaseExpression {
|
| 299 |
+
type: "ThisExpression";
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
export interface ArrayExpression extends BaseExpression {
|
| 303 |
+
type: "ArrayExpression";
|
| 304 |
+
elements: Array<Expression | SpreadElement | null>;
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
+
export interface ObjectExpression extends BaseExpression {
|
| 308 |
+
type: "ObjectExpression";
|
| 309 |
+
properties: Array<Property | SpreadElement>;
|
| 310 |
+
}
|
| 311 |
+
|
| 312 |
+
export interface PrivateIdentifier extends BaseNode {
|
| 313 |
+
type: "PrivateIdentifier";
|
| 314 |
+
name: string;
|
| 315 |
+
}
|
| 316 |
+
|
| 317 |
+
export interface Property extends BaseNode {
|
| 318 |
+
type: "Property";
|
| 319 |
+
key: Expression | PrivateIdentifier;
|
| 320 |
+
value: Expression | Pattern; // Could be an AssignmentProperty
|
| 321 |
+
kind: "init" | "get" | "set";
|
| 322 |
+
method: boolean;
|
| 323 |
+
shorthand: boolean;
|
| 324 |
+
computed: boolean;
|
| 325 |
+
}
|
| 326 |
+
|
| 327 |
+
export interface PropertyDefinition extends BaseNode {
|
| 328 |
+
type: "PropertyDefinition";
|
| 329 |
+
key: Expression | PrivateIdentifier;
|
| 330 |
+
value?: Expression | null | undefined;
|
| 331 |
+
computed: boolean;
|
| 332 |
+
static: boolean;
|
| 333 |
+
}
|
| 334 |
+
|
| 335 |
+
export interface FunctionExpression extends BaseFunction, BaseExpression {
|
| 336 |
+
id?: Identifier | null | undefined;
|
| 337 |
+
type: "FunctionExpression";
|
| 338 |
+
body: BlockStatement;
|
| 339 |
+
}
|
| 340 |
+
|
| 341 |
+
export interface SequenceExpression extends BaseExpression {
|
| 342 |
+
type: "SequenceExpression";
|
| 343 |
+
expressions: Expression[];
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
+
export interface UnaryExpression extends BaseExpression {
|
| 347 |
+
type: "UnaryExpression";
|
| 348 |
+
operator: UnaryOperator;
|
| 349 |
+
prefix: true;
|
| 350 |
+
argument: Expression;
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
export interface BinaryExpression extends BaseExpression {
|
| 354 |
+
type: "BinaryExpression";
|
| 355 |
+
operator: BinaryOperator;
|
| 356 |
+
left: Expression | PrivateIdentifier;
|
| 357 |
+
right: Expression;
|
| 358 |
+
}
|
| 359 |
+
|
| 360 |
+
export interface AssignmentExpression extends BaseExpression {
|
| 361 |
+
type: "AssignmentExpression";
|
| 362 |
+
operator: AssignmentOperator;
|
| 363 |
+
left: Pattern | MemberExpression;
|
| 364 |
+
right: Expression;
|
| 365 |
+
}
|
| 366 |
+
|
| 367 |
+
export interface UpdateExpression extends BaseExpression {
|
| 368 |
+
type: "UpdateExpression";
|
| 369 |
+
operator: UpdateOperator;
|
| 370 |
+
argument: Expression;
|
| 371 |
+
prefix: boolean;
|
| 372 |
+
}
|
| 373 |
+
|
| 374 |
+
export interface LogicalExpression extends BaseExpression {
|
| 375 |
+
type: "LogicalExpression";
|
| 376 |
+
operator: LogicalOperator;
|
| 377 |
+
left: Expression;
|
| 378 |
+
right: Expression;
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
export interface ConditionalExpression extends BaseExpression {
|
| 382 |
+
type: "ConditionalExpression";
|
| 383 |
+
test: Expression;
|
| 384 |
+
alternate: Expression;
|
| 385 |
+
consequent: Expression;
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
export interface BaseCallExpression extends BaseExpression {
|
| 389 |
+
callee: Expression | Super;
|
| 390 |
+
arguments: Array<Expression | SpreadElement>;
|
| 391 |
+
}
|
| 392 |
+
export type CallExpression = SimpleCallExpression | NewExpression;
|
| 393 |
+
|
| 394 |
+
export interface SimpleCallExpression extends BaseCallExpression {
|
| 395 |
+
type: "CallExpression";
|
| 396 |
+
optional: boolean;
|
| 397 |
+
}
|
| 398 |
+
|
| 399 |
+
export interface NewExpression extends BaseCallExpression {
|
| 400 |
+
type: "NewExpression";
|
| 401 |
+
}
|
| 402 |
+
|
| 403 |
+
export interface MemberExpression extends BaseExpression, BasePattern {
|
| 404 |
+
type: "MemberExpression";
|
| 405 |
+
object: Expression | Super;
|
| 406 |
+
property: Expression | PrivateIdentifier;
|
| 407 |
+
computed: boolean;
|
| 408 |
+
optional: boolean;
|
| 409 |
+
}
|
| 410 |
+
|
| 411 |
+
export type Pattern = Identifier | ObjectPattern | ArrayPattern | RestElement | AssignmentPattern | MemberExpression;
|
| 412 |
+
|
| 413 |
+
export interface BasePattern extends BaseNode {}
|
| 414 |
+
|
| 415 |
+
export interface SwitchCase extends BaseNode {
|
| 416 |
+
type: "SwitchCase";
|
| 417 |
+
test?: Expression | null | undefined;
|
| 418 |
+
consequent: Statement[];
|
| 419 |
+
}
|
| 420 |
+
|
| 421 |
+
export interface CatchClause extends BaseNode {
|
| 422 |
+
type: "CatchClause";
|
| 423 |
+
param: Pattern | null;
|
| 424 |
+
body: BlockStatement;
|
| 425 |
+
}
|
| 426 |
+
|
| 427 |
+
export interface Identifier extends BaseNode, BaseExpression, BasePattern {
|
| 428 |
+
type: "Identifier";
|
| 429 |
+
name: string;
|
| 430 |
+
}
|
| 431 |
+
|
| 432 |
+
export type Literal = SimpleLiteral | RegExpLiteral | BigIntLiteral;
|
| 433 |
+
|
| 434 |
+
export interface SimpleLiteral extends BaseNode, BaseExpression {
|
| 435 |
+
type: "Literal";
|
| 436 |
+
value: string | boolean | number | null;
|
| 437 |
+
raw?: string | undefined;
|
| 438 |
+
}
|
| 439 |
+
|
| 440 |
+
export interface RegExpLiteral extends BaseNode, BaseExpression {
|
| 441 |
+
type: "Literal";
|
| 442 |
+
value?: RegExp | null | undefined;
|
| 443 |
+
regex: {
|
| 444 |
+
pattern: string;
|
| 445 |
+
flags: string;
|
| 446 |
+
};
|
| 447 |
+
raw?: string | undefined;
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
+
export interface BigIntLiteral extends BaseNode, BaseExpression {
|
| 451 |
+
type: "Literal";
|
| 452 |
+
value?: bigint | null | undefined;
|
| 453 |
+
bigint: string;
|
| 454 |
+
raw?: string | undefined;
|
| 455 |
+
}
|
| 456 |
+
|
| 457 |
+
export type UnaryOperator = "-" | "+" | "!" | "~" | "typeof" | "void" | "delete";
|
| 458 |
+
|
| 459 |
+
export type BinaryOperator =
|
| 460 |
+
| "=="
|
| 461 |
+
| "!="
|
| 462 |
+
| "==="
|
| 463 |
+
| "!=="
|
| 464 |
+
| "<"
|
| 465 |
+
| "<="
|
| 466 |
+
| ">"
|
| 467 |
+
| ">="
|
| 468 |
+
| "<<"
|
| 469 |
+
| ">>"
|
| 470 |
+
| ">>>"
|
| 471 |
+
| "+"
|
| 472 |
+
| "-"
|
| 473 |
+
| "*"
|
| 474 |
+
| "/"
|
| 475 |
+
| "%"
|
| 476 |
+
| "**"
|
| 477 |
+
| "|"
|
| 478 |
+
| "^"
|
| 479 |
+
| "&"
|
| 480 |
+
| "in"
|
| 481 |
+
| "instanceof";
|
| 482 |
+
|
| 483 |
+
export type LogicalOperator = "||" | "&&" | "??";
|
| 484 |
+
|
| 485 |
+
export type AssignmentOperator =
|
| 486 |
+
| "="
|
| 487 |
+
| "+="
|
| 488 |
+
| "-="
|
| 489 |
+
| "*="
|
| 490 |
+
| "/="
|
| 491 |
+
| "%="
|
| 492 |
+
| "**="
|
| 493 |
+
| "<<="
|
| 494 |
+
| ">>="
|
| 495 |
+
| ">>>="
|
| 496 |
+
| "|="
|
| 497 |
+
| "^="
|
| 498 |
+
| "&="
|
| 499 |
+
| "||="
|
| 500 |
+
| "&&="
|
| 501 |
+
| "??=";
|
| 502 |
+
|
| 503 |
+
export type UpdateOperator = "++" | "--";
|
| 504 |
+
|
| 505 |
+
export interface ForOfStatement extends BaseForXStatement {
|
| 506 |
+
type: "ForOfStatement";
|
| 507 |
+
await: boolean;
|
| 508 |
+
}
|
| 509 |
+
|
| 510 |
+
export interface Super extends BaseNode {
|
| 511 |
+
type: "Super";
|
| 512 |
+
}
|
| 513 |
+
|
| 514 |
+
export interface SpreadElement extends BaseNode {
|
| 515 |
+
type: "SpreadElement";
|
| 516 |
+
argument: Expression;
|
| 517 |
+
}
|
| 518 |
+
|
| 519 |
+
export interface ArrowFunctionExpression extends BaseExpression, BaseFunction {
|
| 520 |
+
type: "ArrowFunctionExpression";
|
| 521 |
+
expression: boolean;
|
| 522 |
+
body: BlockStatement | Expression;
|
| 523 |
+
}
|
| 524 |
+
|
| 525 |
+
export interface YieldExpression extends BaseExpression {
|
| 526 |
+
type: "YieldExpression";
|
| 527 |
+
argument?: Expression | null | undefined;
|
| 528 |
+
delegate: boolean;
|
| 529 |
+
}
|
| 530 |
+
|
| 531 |
+
export interface TemplateLiteral extends BaseExpression {
|
| 532 |
+
type: "TemplateLiteral";
|
| 533 |
+
quasis: TemplateElement[];
|
| 534 |
+
expressions: Expression[];
|
| 535 |
+
}
|
| 536 |
+
|
| 537 |
+
export interface TaggedTemplateExpression extends BaseExpression {
|
| 538 |
+
type: "TaggedTemplateExpression";
|
| 539 |
+
tag: Expression;
|
| 540 |
+
quasi: TemplateLiteral;
|
| 541 |
+
}
|
| 542 |
+
|
| 543 |
+
export interface TemplateElement extends BaseNode {
|
| 544 |
+
type: "TemplateElement";
|
| 545 |
+
tail: boolean;
|
| 546 |
+
value: {
|
| 547 |
+
/** It is null when the template literal is tagged and the text has an invalid escape (e.g. - tag`\unicode and \u{55}`) */
|
| 548 |
+
cooked?: string | null | undefined;
|
| 549 |
+
raw: string;
|
| 550 |
+
};
|
| 551 |
+
}
|
| 552 |
+
|
| 553 |
+
export interface AssignmentProperty extends Property {
|
| 554 |
+
value: Pattern;
|
| 555 |
+
kind: "init";
|
| 556 |
+
method: boolean; // false
|
| 557 |
+
}
|
| 558 |
+
|
| 559 |
+
export interface ObjectPattern extends BasePattern {
|
| 560 |
+
type: "ObjectPattern";
|
| 561 |
+
properties: Array<AssignmentProperty | RestElement>;
|
| 562 |
+
}
|
| 563 |
+
|
| 564 |
+
export interface ArrayPattern extends BasePattern {
|
| 565 |
+
type: "ArrayPattern";
|
| 566 |
+
elements: Array<Pattern | null>;
|
| 567 |
+
}
|
| 568 |
+
|
| 569 |
+
export interface RestElement extends BasePattern {
|
| 570 |
+
type: "RestElement";
|
| 571 |
+
argument: Pattern;
|
| 572 |
+
}
|
| 573 |
+
|
| 574 |
+
export interface AssignmentPattern extends BasePattern {
|
| 575 |
+
type: "AssignmentPattern";
|
| 576 |
+
left: Pattern;
|
| 577 |
+
right: Expression;
|
| 578 |
+
}
|
| 579 |
+
|
| 580 |
+
export type Class = ClassDeclaration | ClassExpression;
|
| 581 |
+
export interface BaseClass extends BaseNode {
|
| 582 |
+
superClass?: Expression | null | undefined;
|
| 583 |
+
body: ClassBody;
|
| 584 |
+
}
|
| 585 |
+
|
| 586 |
+
export interface ClassBody extends BaseNode {
|
| 587 |
+
type: "ClassBody";
|
| 588 |
+
body: Array<MethodDefinition | PropertyDefinition | StaticBlock>;
|
| 589 |
+
}
|
| 590 |
+
|
| 591 |
+
export interface MethodDefinition extends BaseNode {
|
| 592 |
+
type: "MethodDefinition";
|
| 593 |
+
key: Expression | PrivateIdentifier;
|
| 594 |
+
value: FunctionExpression;
|
| 595 |
+
kind: "constructor" | "method" | "get" | "set";
|
| 596 |
+
computed: boolean;
|
| 597 |
+
static: boolean;
|
| 598 |
+
}
|
| 599 |
+
|
| 600 |
+
export interface MaybeNamedClassDeclaration extends BaseClass, BaseDeclaration {
|
| 601 |
+
type: "ClassDeclaration";
|
| 602 |
+
/** It is null when a class declaration is a part of the `export default class` statement */
|
| 603 |
+
id: Identifier | null;
|
| 604 |
+
}
|
| 605 |
+
|
| 606 |
+
export interface ClassDeclaration extends MaybeNamedClassDeclaration {
|
| 607 |
+
id: Identifier;
|
| 608 |
+
}
|
| 609 |
+
|
| 610 |
+
export interface ClassExpression extends BaseClass, BaseExpression {
|
| 611 |
+
type: "ClassExpression";
|
| 612 |
+
id?: Identifier | null | undefined;
|
| 613 |
+
}
|
| 614 |
+
|
| 615 |
+
export interface MetaProperty extends BaseExpression {
|
| 616 |
+
type: "MetaProperty";
|
| 617 |
+
meta: Identifier;
|
| 618 |
+
property: Identifier;
|
| 619 |
+
}
|
| 620 |
+
|
| 621 |
+
export type ModuleDeclaration =
|
| 622 |
+
| ImportDeclaration
|
| 623 |
+
| ExportNamedDeclaration
|
| 624 |
+
| ExportDefaultDeclaration
|
| 625 |
+
| ExportAllDeclaration;
|
| 626 |
+
export interface BaseModuleDeclaration extends BaseNode {}
|
| 627 |
+
|
| 628 |
+
export type ModuleSpecifier = ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier | ExportSpecifier;
|
| 629 |
+
export interface BaseModuleSpecifier extends BaseNode {
|
| 630 |
+
local: Identifier;
|
| 631 |
+
}
|
| 632 |
+
|
| 633 |
+
export interface ImportDeclaration extends BaseModuleDeclaration {
|
| 634 |
+
type: "ImportDeclaration";
|
| 635 |
+
specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>;
|
| 636 |
+
attributes: ImportAttribute[];
|
| 637 |
+
source: Literal;
|
| 638 |
+
}
|
| 639 |
+
|
| 640 |
+
export interface ImportSpecifier extends BaseModuleSpecifier {
|
| 641 |
+
type: "ImportSpecifier";
|
| 642 |
+
imported: Identifier | Literal;
|
| 643 |
+
}
|
| 644 |
+
|
| 645 |
+
export interface ImportAttribute extends BaseNode {
|
| 646 |
+
type: "ImportAttribute";
|
| 647 |
+
key: Identifier | Literal;
|
| 648 |
+
value: Literal;
|
| 649 |
+
}
|
| 650 |
+
|
| 651 |
+
export interface ImportExpression extends BaseExpression {
|
| 652 |
+
type: "ImportExpression";
|
| 653 |
+
source: Expression;
|
| 654 |
+
options?: Expression | null | undefined;
|
| 655 |
+
}
|
| 656 |
+
|
| 657 |
+
export interface ImportDefaultSpecifier extends BaseModuleSpecifier {
|
| 658 |
+
type: "ImportDefaultSpecifier";
|
| 659 |
+
}
|
| 660 |
+
|
| 661 |
+
export interface ImportNamespaceSpecifier extends BaseModuleSpecifier {
|
| 662 |
+
type: "ImportNamespaceSpecifier";
|
| 663 |
+
}
|
| 664 |
+
|
| 665 |
+
export interface ExportNamedDeclaration extends BaseModuleDeclaration {
|
| 666 |
+
type: "ExportNamedDeclaration";
|
| 667 |
+
declaration?: Declaration | null | undefined;
|
| 668 |
+
specifiers: ExportSpecifier[];
|
| 669 |
+
attributes: ImportAttribute[];
|
| 670 |
+
source?: Literal | null | undefined;
|
| 671 |
+
}
|
| 672 |
+
|
| 673 |
+
export interface ExportSpecifier extends Omit<BaseModuleSpecifier, "local"> {
|
| 674 |
+
type: "ExportSpecifier";
|
| 675 |
+
local: Identifier | Literal;
|
| 676 |
+
exported: Identifier | Literal;
|
| 677 |
+
}
|
| 678 |
+
|
| 679 |
+
export interface ExportDefaultDeclaration extends BaseModuleDeclaration {
|
| 680 |
+
type: "ExportDefaultDeclaration";
|
| 681 |
+
declaration: MaybeNamedFunctionDeclaration | MaybeNamedClassDeclaration | Expression;
|
| 682 |
+
}
|
| 683 |
+
|
| 684 |
+
export interface ExportAllDeclaration extends BaseModuleDeclaration {
|
| 685 |
+
type: "ExportAllDeclaration";
|
| 686 |
+
exported: Identifier | Literal | null;
|
| 687 |
+
attributes: ImportAttribute[];
|
| 688 |
+
source: Literal;
|
| 689 |
+
}
|
| 690 |
+
|
| 691 |
+
export interface AwaitExpression extends BaseExpression {
|
| 692 |
+
type: "AwaitExpression";
|
| 693 |
+
argument: Expression;
|
| 694 |
+
}
|
node_modules/@types/estree/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "@types/estree",
|
| 3 |
+
"version": "1.0.8",
|
| 4 |
+
"description": "TypeScript definitions for estree",
|
| 5 |
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/estree",
|
| 6 |
+
"license": "MIT",
|
| 7 |
+
"contributors": [
|
| 8 |
+
{
|
| 9 |
+
"name": "RReverser",
|
| 10 |
+
"githubUsername": "RReverser",
|
| 11 |
+
"url": "https://github.com/RReverser"
|
| 12 |
+
}
|
| 13 |
+
],
|
| 14 |
+
"main": "",
|
| 15 |
+
"types": "index.d.ts",
|
| 16 |
+
"repository": {
|
| 17 |
+
"type": "git",
|
| 18 |
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
| 19 |
+
"directory": "types/estree"
|
| 20 |
+
},
|
| 21 |
+
"scripts": {},
|
| 22 |
+
"dependencies": {},
|
| 23 |
+
"peerDependencies": {},
|
| 24 |
+
"typesPublisherContentHash": "7a167b6e4a4d9f6e9a2cb9fd3fc45c885f89cbdeb44b3e5961bb057a45c082fd",
|
| 25 |
+
"typeScriptVersion": "5.1",
|
| 26 |
+
"nonNpm": true
|
| 27 |
+
}
|
node_modules/@types/hast/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|
node_modules/@types/hast/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Installation
|
| 2 |
+
> `npm install --save @types/hast`
|
| 3 |
+
|
| 4 |
+
# Summary
|
| 5 |
+
This package contains type definitions for hast (https://github.com/syntax-tree/hast).
|
| 6 |
+
|
| 7 |
+
# Details
|
| 8 |
+
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hast.
|
| 9 |
+
|
| 10 |
+
### Additional Details
|
| 11 |
+
* Last updated: Tue, 30 Jan 2024 21:35:45 GMT
|
| 12 |
+
* Dependencies: [@types/unist](https://npmjs.com/package/@types/unist)
|
| 13 |
+
|
| 14 |
+
# Credits
|
| 15 |
+
These definitions were written by [lukeggchapman](https://github.com/lukeggchapman), [Junyoung Choi](https://github.com/rokt33r), [Christian Murphy](https://github.com/ChristianMurphy), and [Remco Haszing](https://github.com/remcohaszing).
|
node_modules/@types/hast/index.d.ts
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type { Data as UnistData, Literal as UnistLiteral, Node as UnistNode, Parent as UnistParent } from "unist";
|
| 2 |
+
|
| 3 |
+
// ## Interfaces
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Info associated with hast nodes by the ecosystem.
|
| 7 |
+
*
|
| 8 |
+
* This space is guaranteed to never be specified by unist or hast.
|
| 9 |
+
* But you can use it in utilities and plugins to store data.
|
| 10 |
+
*
|
| 11 |
+
* This type can be augmented to register custom data.
|
| 12 |
+
* For example:
|
| 13 |
+
*
|
| 14 |
+
* ```ts
|
| 15 |
+
* declare module 'hast' {
|
| 16 |
+
* interface Data {
|
| 17 |
+
* // `someNode.data.myId` is typed as `number | undefined`
|
| 18 |
+
* myId?: number | undefined
|
| 19 |
+
* }
|
| 20 |
+
* }
|
| 21 |
+
* ```
|
| 22 |
+
*/
|
| 23 |
+
export interface Data extends UnistData {}
|
| 24 |
+
|
| 25 |
+
/**
|
| 26 |
+
* Info associated with an element.
|
| 27 |
+
*/
|
| 28 |
+
export interface Properties {
|
| 29 |
+
[PropertyName: string]: boolean | number | string | null | undefined | Array<string | number>;
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
// ## Content maps
|
| 33 |
+
|
| 34 |
+
/**
|
| 35 |
+
* Union of registered hast nodes that can occur in {@link Element}.
|
| 36 |
+
*
|
| 37 |
+
* To register mote custom hast nodes, add them to {@link ElementContentMap}.
|
| 38 |
+
* They will be automatically added here.
|
| 39 |
+
*/
|
| 40 |
+
export type ElementContent = ElementContentMap[keyof ElementContentMap];
|
| 41 |
+
|
| 42 |
+
/**
|
| 43 |
+
* Registry of all hast nodes that can occur as children of {@link Element}.
|
| 44 |
+
*
|
| 45 |
+
* For a union of all {@link Element} children, see {@link ElementContent}.
|
| 46 |
+
*/
|
| 47 |
+
export interface ElementContentMap {
|
| 48 |
+
comment: Comment;
|
| 49 |
+
element: Element;
|
| 50 |
+
text: Text;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
/**
|
| 54 |
+
* Union of registered hast nodes that can occur in {@link Root}.
|
| 55 |
+
*
|
| 56 |
+
* To register custom hast nodes, add them to {@link RootContentMap}.
|
| 57 |
+
* They will be automatically added here.
|
| 58 |
+
*/
|
| 59 |
+
export type RootContent = RootContentMap[keyof RootContentMap];
|
| 60 |
+
|
| 61 |
+
/**
|
| 62 |
+
* Registry of all hast nodes that can occur as children of {@link Root}.
|
| 63 |
+
*
|
| 64 |
+
* > 👉 **Note**: {@link Root} does not need to be an entire document.
|
| 65 |
+
* > it can also be a fragment.
|
| 66 |
+
*
|
| 67 |
+
* For a union of all {@link Root} children, see {@link RootContent}.
|
| 68 |
+
*/
|
| 69 |
+
export interface RootContentMap {
|
| 70 |
+
comment: Comment;
|
| 71 |
+
doctype: Doctype;
|
| 72 |
+
element: Element;
|
| 73 |
+
text: Text;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
// ### Special content types
|
| 77 |
+
|
| 78 |
+
/**
|
| 79 |
+
* Union of registered hast nodes that can occur in {@link Root}.
|
| 80 |
+
*
|
| 81 |
+
* @deprecated Use {@link RootContent} instead.
|
| 82 |
+
*/
|
| 83 |
+
export type Content = RootContent;
|
| 84 |
+
|
| 85 |
+
/**
|
| 86 |
+
* Union of registered hast literals.
|
| 87 |
+
*
|
| 88 |
+
* To register custom hast nodes, add them to {@link RootContentMap} and other
|
| 89 |
+
* places where relevant.
|
| 90 |
+
* They will be automatically added here.
|
| 91 |
+
*/
|
| 92 |
+
export type Literals = Extract<Nodes, UnistLiteral>;
|
| 93 |
+
|
| 94 |
+
/**
|
| 95 |
+
* Union of registered hast nodes.
|
| 96 |
+
*
|
| 97 |
+
* To register custom hast nodes, add them to {@link RootContentMap} and other
|
| 98 |
+
* places where relevant.
|
| 99 |
+
* They will be automatically added here.
|
| 100 |
+
*/
|
| 101 |
+
export type Nodes = Root | RootContent;
|
| 102 |
+
|
| 103 |
+
/**
|
| 104 |
+
* Union of registered hast parents.
|
| 105 |
+
*
|
| 106 |
+
* To register custom hast nodes, add them to {@link RootContentMap} and other
|
| 107 |
+
* places where relevant.
|
| 108 |
+
* They will be automatically added here.
|
| 109 |
+
*/
|
| 110 |
+
export type Parents = Extract<Nodes, UnistParent>;
|
| 111 |
+
|
| 112 |
+
// ## Abstract nodes
|
| 113 |
+
|
| 114 |
+
/**
|
| 115 |
+
* Abstract hast node.
|
| 116 |
+
*
|
| 117 |
+
* This interface is supposed to be extended.
|
| 118 |
+
* If you can use {@link Literal} or {@link Parent}, you should.
|
| 119 |
+
* But for example in HTML, a `Doctype` is neither literal nor parent, but
|
| 120 |
+
* still a node.
|
| 121 |
+
*
|
| 122 |
+
* To register custom hast nodes, add them to {@link RootContentMap} and other
|
| 123 |
+
* places where relevant (such as {@link ElementContentMap}).
|
| 124 |
+
*
|
| 125 |
+
* For a union of all registered hast nodes, see {@link Nodes}.
|
| 126 |
+
*/
|
| 127 |
+
export interface Node extends UnistNode {
|
| 128 |
+
/**
|
| 129 |
+
* Info from the ecosystem.
|
| 130 |
+
*/
|
| 131 |
+
data?: Data | undefined;
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Abstract hast node that contains the smallest possible value.
|
| 136 |
+
*
|
| 137 |
+
* This interface is supposed to be extended if you make custom hast nodes.
|
| 138 |
+
*
|
| 139 |
+
* For a union of all registered hast literals, see {@link Literals}.
|
| 140 |
+
*/
|
| 141 |
+
export interface Literal extends Node {
|
| 142 |
+
/**
|
| 143 |
+
* Plain-text value.
|
| 144 |
+
*/
|
| 145 |
+
value: string;
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
/**
|
| 149 |
+
* Abstract hast node that contains other hast nodes (*children*).
|
| 150 |
+
*
|
| 151 |
+
* This interface is supposed to be extended if you make custom hast nodes.
|
| 152 |
+
*
|
| 153 |
+
* For a union of all registered hast parents, see {@link Parents}.
|
| 154 |
+
*/
|
| 155 |
+
export interface Parent extends Node {
|
| 156 |
+
/**
|
| 157 |
+
* List of children.
|
| 158 |
+
*/
|
| 159 |
+
children: RootContent[];
|
| 160 |
+
}
|
| 161 |
+
|
| 162 |
+
// ## Concrete nodes
|
| 163 |
+
|
| 164 |
+
/**
|
| 165 |
+
* HTML comment.
|
| 166 |
+
*/
|
| 167 |
+
export interface Comment extends Literal {
|
| 168 |
+
/**
|
| 169 |
+
* Node type of HTML comments in hast.
|
| 170 |
+
*/
|
| 171 |
+
type: "comment";
|
| 172 |
+
/**
|
| 173 |
+
* Data associated with the comment.
|
| 174 |
+
*/
|
| 175 |
+
data?: CommentData | undefined;
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
/**
|
| 179 |
+
* Info associated with hast comments by the ecosystem.
|
| 180 |
+
*/
|
| 181 |
+
export interface CommentData extends Data {}
|
| 182 |
+
|
| 183 |
+
/**
|
| 184 |
+
* HTML document type.
|
| 185 |
+
*/
|
| 186 |
+
export interface Doctype extends UnistNode {
|
| 187 |
+
/**
|
| 188 |
+
* Node type of HTML document types in hast.
|
| 189 |
+
*/
|
| 190 |
+
type: "doctype";
|
| 191 |
+
/**
|
| 192 |
+
* Data associated with the doctype.
|
| 193 |
+
*/
|
| 194 |
+
data?: DoctypeData | undefined;
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
+
/**
|
| 198 |
+
* Info associated with hast doctypes by the ecosystem.
|
| 199 |
+
*/
|
| 200 |
+
export interface DoctypeData extends Data {}
|
| 201 |
+
|
| 202 |
+
/**
|
| 203 |
+
* HTML element.
|
| 204 |
+
*/
|
| 205 |
+
export interface Element extends Parent {
|
| 206 |
+
/**
|
| 207 |
+
* Node type of elements.
|
| 208 |
+
*/
|
| 209 |
+
type: "element";
|
| 210 |
+
/**
|
| 211 |
+
* Tag name (such as `'body'`) of the element.
|
| 212 |
+
*/
|
| 213 |
+
tagName: string;
|
| 214 |
+
/**
|
| 215 |
+
* Info associated with the element.
|
| 216 |
+
*/
|
| 217 |
+
properties: Properties;
|
| 218 |
+
/**
|
| 219 |
+
* Children of element.
|
| 220 |
+
*/
|
| 221 |
+
children: ElementContent[];
|
| 222 |
+
/**
|
| 223 |
+
* When the `tagName` field is `'template'`, a `content` field can be
|
| 224 |
+
* present.
|
| 225 |
+
*/
|
| 226 |
+
content?: Root | undefined;
|
| 227 |
+
/**
|
| 228 |
+
* Data associated with the element.
|
| 229 |
+
*/
|
| 230 |
+
data?: ElementData | undefined;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
/**
|
| 234 |
+
* Info associated with hast elements by the ecosystem.
|
| 235 |
+
*/
|
| 236 |
+
export interface ElementData extends Data {}
|
| 237 |
+
|
| 238 |
+
/**
|
| 239 |
+
* Document fragment or a whole document.
|
| 240 |
+
*
|
| 241 |
+
* Should be used as the root of a tree and must not be used as a child.
|
| 242 |
+
*
|
| 243 |
+
* Can also be used as the value for the content field on a `'template'` element.
|
| 244 |
+
*/
|
| 245 |
+
export interface Root extends Parent {
|
| 246 |
+
/**
|
| 247 |
+
* Node type of hast root.
|
| 248 |
+
*/
|
| 249 |
+
type: "root";
|
| 250 |
+
/**
|
| 251 |
+
* Children of root.
|
| 252 |
+
*/
|
| 253 |
+
children: RootContent[];
|
| 254 |
+
/**
|
| 255 |
+
* Data associated with the hast root.
|
| 256 |
+
*/
|
| 257 |
+
data?: RootData | undefined;
|
| 258 |
+
}
|
| 259 |
+
|
| 260 |
+
/**
|
| 261 |
+
* Info associated with hast root nodes by the ecosystem.
|
| 262 |
+
*/
|
| 263 |
+
export interface RootData extends Data {}
|
| 264 |
+
|
| 265 |
+
/**
|
| 266 |
+
* HTML character data (plain text).
|
| 267 |
+
*/
|
| 268 |
+
export interface Text extends Literal {
|
| 269 |
+
/**
|
| 270 |
+
* Node type of HTML character data (plain text) in hast.
|
| 271 |
+
*/
|
| 272 |
+
type: "text";
|
| 273 |
+
/**
|
| 274 |
+
* Data associated with the text.
|
| 275 |
+
*/
|
| 276 |
+
data?: TextData | undefined;
|
| 277 |
+
}
|
| 278 |
+
|
| 279 |
+
/**
|
| 280 |
+
* Info associated with hast texts by the ecosystem.
|
| 281 |
+
*/
|
| 282 |
+
export interface TextData extends Data {}
|
node_modules/@types/hast/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "@types/hast",
|
| 3 |
+
"version": "3.0.4",
|
| 4 |
+
"description": "TypeScript definitions for hast",
|
| 5 |
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hast",
|
| 6 |
+
"license": "MIT",
|
| 7 |
+
"contributors": [
|
| 8 |
+
{
|
| 9 |
+
"name": "lukeggchapman",
|
| 10 |
+
"githubUsername": "lukeggchapman",
|
| 11 |
+
"url": "https://github.com/lukeggchapman"
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"name": "Junyoung Choi",
|
| 15 |
+
"githubUsername": "rokt33r",
|
| 16 |
+
"url": "https://github.com/rokt33r"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "Christian Murphy",
|
| 20 |
+
"githubUsername": "ChristianMurphy",
|
| 21 |
+
"url": "https://github.com/ChristianMurphy"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"name": "Remco Haszing",
|
| 25 |
+
"githubUsername": "remcohaszing",
|
| 26 |
+
"url": "https://github.com/remcohaszing"
|
| 27 |
+
}
|
| 28 |
+
],
|
| 29 |
+
"main": "",
|
| 30 |
+
"types": "index.d.ts",
|
| 31 |
+
"repository": {
|
| 32 |
+
"type": "git",
|
| 33 |
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
| 34 |
+
"directory": "types/hast"
|
| 35 |
+
},
|
| 36 |
+
"scripts": {},
|
| 37 |
+
"dependencies": {
|
| 38 |
+
"@types/unist": "*"
|
| 39 |
+
},
|
| 40 |
+
"typesPublisherContentHash": "3f3f73826d79157c12087f5bb36195319c6f435b9e218fa7a8de88d1cc64d097",
|
| 41 |
+
"typeScriptVersion": "4.6"
|
| 42 |
+
}
|
node_modules/@types/mdast/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|
node_modules/@types/mdast/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Installation
|
| 2 |
+
> `npm install --save @types/mdast`
|
| 3 |
+
|
| 4 |
+
# Summary
|
| 5 |
+
This package contains type definitions for mdast (https://github.com/syntax-tree/mdast).
|
| 6 |
+
|
| 7 |
+
# Details
|
| 8 |
+
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mdast.
|
| 9 |
+
|
| 10 |
+
### Additional Details
|
| 11 |
+
* Last updated: Tue, 14 May 2024 07:35:36 GMT
|
| 12 |
+
* Dependencies: [@types/unist](https://npmjs.com/package/@types/unist)
|
| 13 |
+
|
| 14 |
+
# Credits
|
| 15 |
+
These definitions were written by [Christian Murphy](https://github.com/ChristianMurphy), [Jun Lu](https://github.com/lujun2), [Remco Haszing](https://github.com/remcohaszing), [Titus Wormer](https://github.com/wooorm), and [Remco Haszing](https://github.com/remcohaszing).
|
node_modules/@types/mdast/index.d.ts
ADDED
|
@@ -0,0 +1,1123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type { Data as UnistData, Literal as UnistLiteral, Node as UnistNode, Parent as UnistParent } from "unist";
|
| 2 |
+
|
| 3 |
+
// ## Enumeration
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* How phrasing content is aligned
|
| 7 |
+
* ({@link https://drafts.csswg.org/css-text/ | [CSSTEXT]}).
|
| 8 |
+
*
|
| 9 |
+
* * `'left'`: See the
|
| 10 |
+
* {@link https://drafts.csswg.org/css-text/#valdef-text-align-left | left}
|
| 11 |
+
* value of the `text-align` CSS property
|
| 12 |
+
* * `'right'`: See the
|
| 13 |
+
* {@link https://drafts.csswg.org/css-text/#valdef-text-align-right | right}
|
| 14 |
+
* value of the `text-align` CSS property
|
| 15 |
+
* * `'center'`: See the
|
| 16 |
+
* {@link https://drafts.csswg.org/css-text/#valdef-text-align-center | center}
|
| 17 |
+
* value of the `text-align` CSS property
|
| 18 |
+
* * `null`: phrasing content is aligned as defined by the host environment
|
| 19 |
+
*
|
| 20 |
+
* Used in GFM tables.
|
| 21 |
+
*/
|
| 22 |
+
export type AlignType = "center" | "left" | "right" | null;
|
| 23 |
+
|
| 24 |
+
/**
|
| 25 |
+
* Explicitness of a reference.
|
| 26 |
+
*
|
| 27 |
+
* `'shortcut'`: the reference is implicit, its identifier inferred from its
|
| 28 |
+
* content
|
| 29 |
+
* `'collapsed'`: the reference is explicit, its identifier inferred from its
|
| 30 |
+
* content
|
| 31 |
+
* `'full'`: the reference is explicit, its identifier explicitly set
|
| 32 |
+
*/
|
| 33 |
+
export type ReferenceType = "shortcut" | "collapsed" | "full";
|
| 34 |
+
|
| 35 |
+
// ## Mixin
|
| 36 |
+
|
| 37 |
+
/**
|
| 38 |
+
* Node with a fallback.
|
| 39 |
+
*/
|
| 40 |
+
export interface Alternative {
|
| 41 |
+
/**
|
| 42 |
+
* Equivalent content for environments that cannot represent the node as
|
| 43 |
+
* intended.
|
| 44 |
+
*/
|
| 45 |
+
alt?: string | null | undefined;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
/**
|
| 49 |
+
* Internal relation from one node to another.
|
| 50 |
+
*
|
| 51 |
+
* Whether the value of `identifier` is expected to be a unique identifier or
|
| 52 |
+
* not depends on the type of node including the Association.
|
| 53 |
+
* An example of this is that they should be unique on {@link Definition},
|
| 54 |
+
* whereas multiple {@link LinkReference}s can be non-unique to be associated
|
| 55 |
+
* with one definition.
|
| 56 |
+
*/
|
| 57 |
+
export interface Association {
|
| 58 |
+
/**
|
| 59 |
+
* Relation of association.
|
| 60 |
+
*
|
| 61 |
+
* `identifier` is a source value: character escapes and character
|
| 62 |
+
* references are not parsed.
|
| 63 |
+
*
|
| 64 |
+
* It can match another node.
|
| 65 |
+
*
|
| 66 |
+
* Its value must be normalized.
|
| 67 |
+
* To normalize a value, collapse markdown whitespace (`[\t\n\r ]+`) to a space,
|
| 68 |
+
* trim the optional initial and/or final space, and perform Unicode-aware
|
| 69 |
+
* case-folding.
|
| 70 |
+
*/
|
| 71 |
+
identifier: string;
|
| 72 |
+
|
| 73 |
+
/**
|
| 74 |
+
* Relation of association, in parsed form.
|
| 75 |
+
*
|
| 76 |
+
* `label` is a `string` value: it works just like `title` on {@link Link}
|
| 77 |
+
* or a `lang` on {@link Code}: character escapes and character references
|
| 78 |
+
* are parsed.
|
| 79 |
+
*
|
| 80 |
+
* It can match another node.
|
| 81 |
+
*/
|
| 82 |
+
label?: string | null | undefined;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
/**
|
| 86 |
+
* Marker that is associated to another node.
|
| 87 |
+
*/
|
| 88 |
+
export interface Reference extends Association {
|
| 89 |
+
/**
|
| 90 |
+
* Explicitness of the reference.
|
| 91 |
+
*/
|
| 92 |
+
referenceType: ReferenceType;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
/**
|
| 96 |
+
* Reference to resource.
|
| 97 |
+
*/
|
| 98 |
+
export interface Resource {
|
| 99 |
+
/**
|
| 100 |
+
* URL to the referenced resource.
|
| 101 |
+
*/
|
| 102 |
+
url: string;
|
| 103 |
+
/**
|
| 104 |
+
* Advisory information for the resource, such as would be appropriate for
|
| 105 |
+
* a tooltip.
|
| 106 |
+
*/
|
| 107 |
+
title?: string | null | undefined;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
// ## Interfaces
|
| 111 |
+
|
| 112 |
+
/**
|
| 113 |
+
* Info associated with mdast nodes by the ecosystem.
|
| 114 |
+
*
|
| 115 |
+
* This space is guaranteed to never be specified by unist or mdast.
|
| 116 |
+
* But you can use it in utilities and plugins to store data.
|
| 117 |
+
*
|
| 118 |
+
* This type can be augmented to register custom data.
|
| 119 |
+
* For example:
|
| 120 |
+
*
|
| 121 |
+
* ```ts
|
| 122 |
+
* declare module 'mdast' {
|
| 123 |
+
* interface Data {
|
| 124 |
+
* // `someNode.data.myId` is typed as `number | undefined`
|
| 125 |
+
* myId?: number | undefined
|
| 126 |
+
* }
|
| 127 |
+
* }
|
| 128 |
+
* ```
|
| 129 |
+
*/
|
| 130 |
+
export interface Data extends UnistData {}
|
| 131 |
+
|
| 132 |
+
// ## Content maps
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Union of registered mdast nodes that can occur where block content is
|
| 136 |
+
* expected.
|
| 137 |
+
*
|
| 138 |
+
* To register custom mdast nodes, add them to {@link BlockContentMap}.
|
| 139 |
+
* They will be automatically added here.
|
| 140 |
+
*/
|
| 141 |
+
export type BlockContent = BlockContentMap[keyof BlockContentMap];
|
| 142 |
+
|
| 143 |
+
/**
|
| 144 |
+
* Registry of all mdast nodes that can occur where {@link BlockContent} is
|
| 145 |
+
* expected.
|
| 146 |
+
*
|
| 147 |
+
* This interface can be augmented to register custom node types:
|
| 148 |
+
*
|
| 149 |
+
* ```ts
|
| 150 |
+
* declare module 'mdast' {
|
| 151 |
+
* interface BlockContentMap {
|
| 152 |
+
* // Allow using MDX ESM nodes defined by `remark-mdx`.
|
| 153 |
+
* mdxjsEsm: MdxjsEsm;
|
| 154 |
+
* }
|
| 155 |
+
* }
|
| 156 |
+
* ```
|
| 157 |
+
*
|
| 158 |
+
* For a union of all block content, see {@link RootContent}.
|
| 159 |
+
*/
|
| 160 |
+
export interface BlockContentMap {
|
| 161 |
+
blockquote: Blockquote;
|
| 162 |
+
code: Code;
|
| 163 |
+
heading: Heading;
|
| 164 |
+
html: Html;
|
| 165 |
+
list: List;
|
| 166 |
+
paragraph: Paragraph;
|
| 167 |
+
table: Table;
|
| 168 |
+
thematicBreak: ThematicBreak;
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
/**
|
| 172 |
+
* Union of registered mdast nodes that can occur where definition content is
|
| 173 |
+
* expected.
|
| 174 |
+
*
|
| 175 |
+
* To register custom mdast nodes, add them to {@link DefinitionContentMap}.
|
| 176 |
+
* They will be automatically added here.
|
| 177 |
+
*/
|
| 178 |
+
export type DefinitionContent = DefinitionContentMap[keyof DefinitionContentMap];
|
| 179 |
+
|
| 180 |
+
/**
|
| 181 |
+
* Registry of all mdast nodes that can occur where {@link DefinitionContent}
|
| 182 |
+
* is expected.
|
| 183 |
+
*
|
| 184 |
+
* This interface can be augmented to register custom node types:
|
| 185 |
+
*
|
| 186 |
+
* ```ts
|
| 187 |
+
* declare module 'mdast' {
|
| 188 |
+
* interface DefinitionContentMap {
|
| 189 |
+
* custom: Custom;
|
| 190 |
+
* }
|
| 191 |
+
* }
|
| 192 |
+
* ```
|
| 193 |
+
*
|
| 194 |
+
* For a union of all definition content, see {@link RootContent}.
|
| 195 |
+
*/
|
| 196 |
+
export interface DefinitionContentMap {
|
| 197 |
+
definition: Definition;
|
| 198 |
+
footnoteDefinition: FootnoteDefinition;
|
| 199 |
+
}
|
| 200 |
+
|
| 201 |
+
/**
|
| 202 |
+
* Union of registered mdast nodes that can occur where frontmatter content is
|
| 203 |
+
* expected.
|
| 204 |
+
*
|
| 205 |
+
* To register custom mdast nodes, add them to {@link FrontmatterContentMap}.
|
| 206 |
+
* They will be automatically added here.
|
| 207 |
+
*/
|
| 208 |
+
export type FrontmatterContent = FrontmatterContentMap[keyof FrontmatterContentMap];
|
| 209 |
+
|
| 210 |
+
/**
|
| 211 |
+
* Registry of all mdast nodes that can occur where {@link FrontmatterContent}
|
| 212 |
+
* is expected.
|
| 213 |
+
*
|
| 214 |
+
* This interface can be augmented to register custom node types:
|
| 215 |
+
*
|
| 216 |
+
* ```ts
|
| 217 |
+
* declare module 'mdast' {
|
| 218 |
+
* interface FrontmatterContentMap {
|
| 219 |
+
* // Allow using toml nodes defined by `remark-frontmatter`.
|
| 220 |
+
* toml: TOML;
|
| 221 |
+
* }
|
| 222 |
+
* }
|
| 223 |
+
* ```
|
| 224 |
+
*
|
| 225 |
+
* For a union of all frontmatter content, see {@link RootContent}.
|
| 226 |
+
*/
|
| 227 |
+
export interface FrontmatterContentMap {
|
| 228 |
+
yaml: Yaml;
|
| 229 |
+
}
|
| 230 |
+
|
| 231 |
+
/**
|
| 232 |
+
* Union of registered mdast nodes that can occur where list content is
|
| 233 |
+
* expected.
|
| 234 |
+
*
|
| 235 |
+
* To register custom mdast nodes, add them to {@link ListContentMap}.
|
| 236 |
+
* They will be automatically added here.
|
| 237 |
+
*/
|
| 238 |
+
export type ListContent = ListContentMap[keyof ListContentMap];
|
| 239 |
+
|
| 240 |
+
/**
|
| 241 |
+
* Registry of all mdast nodes that can occur where {@link ListContent}
|
| 242 |
+
* is expected.
|
| 243 |
+
*
|
| 244 |
+
* This interface can be augmented to register custom node types:
|
| 245 |
+
*
|
| 246 |
+
* ```ts
|
| 247 |
+
* declare module 'mdast' {
|
| 248 |
+
* interface ListContentMap {
|
| 249 |
+
* custom: Custom;
|
| 250 |
+
* }
|
| 251 |
+
* }
|
| 252 |
+
* ```
|
| 253 |
+
*
|
| 254 |
+
* For a union of all list content, see {@link RootContent}.
|
| 255 |
+
*/
|
| 256 |
+
export interface ListContentMap {
|
| 257 |
+
listItem: ListItem;
|
| 258 |
+
}
|
| 259 |
+
|
| 260 |
+
/**
|
| 261 |
+
* Union of registered mdast nodes that can occur where phrasing content is
|
| 262 |
+
* expected.
|
| 263 |
+
*
|
| 264 |
+
* To register custom mdast nodes, add them to {@link PhrasingContentMap}.
|
| 265 |
+
* They will be automatically added here.
|
| 266 |
+
*/
|
| 267 |
+
export type PhrasingContent = PhrasingContentMap[keyof PhrasingContentMap];
|
| 268 |
+
|
| 269 |
+
/**
|
| 270 |
+
* Registry of all mdast nodes that can occur where {@link PhrasingContent}
|
| 271 |
+
* is expected.
|
| 272 |
+
*
|
| 273 |
+
* This interface can be augmented to register custom node types:
|
| 274 |
+
*
|
| 275 |
+
* ```ts
|
| 276 |
+
* declare module 'mdast' {
|
| 277 |
+
* interface PhrasingContentMap {
|
| 278 |
+
* // Allow using MDX JSX (text) nodes defined by `remark-mdx`.
|
| 279 |
+
* mdxJsxTextElement: MDXJSXTextElement;
|
| 280 |
+
* }
|
| 281 |
+
* }
|
| 282 |
+
* ```
|
| 283 |
+
*
|
| 284 |
+
* For a union of all phrasing content, see {@link RootContent}.
|
| 285 |
+
*/
|
| 286 |
+
export interface PhrasingContentMap {
|
| 287 |
+
break: Break;
|
| 288 |
+
delete: Delete;
|
| 289 |
+
emphasis: Emphasis;
|
| 290 |
+
footnoteReference: FootnoteReference;
|
| 291 |
+
html: Html;
|
| 292 |
+
image: Image;
|
| 293 |
+
imageReference: ImageReference;
|
| 294 |
+
inlineCode: InlineCode;
|
| 295 |
+
link: Link;
|
| 296 |
+
linkReference: LinkReference;
|
| 297 |
+
strong: Strong;
|
| 298 |
+
text: Text;
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
/**
|
| 302 |
+
* Union of registered mdast nodes that can occur in {@link Root}.
|
| 303 |
+
*
|
| 304 |
+
* To register custom mdast nodes, add them to {@link RootContentMap}.
|
| 305 |
+
* They will be automatically added here.
|
| 306 |
+
*/
|
| 307 |
+
export type RootContent = RootContentMap[keyof RootContentMap];
|
| 308 |
+
|
| 309 |
+
/**
|
| 310 |
+
* Registry of all mdast nodes that can occur as children of {@link Root}.
|
| 311 |
+
*
|
| 312 |
+
* > **Note**: {@link Root} does not need to be an entire document.
|
| 313 |
+
* > it can also be a fragment.
|
| 314 |
+
*
|
| 315 |
+
* This interface can be augmented to register custom node types:
|
| 316 |
+
*
|
| 317 |
+
* ```ts
|
| 318 |
+
* declare module 'mdast' {
|
| 319 |
+
* interface RootContentMap {
|
| 320 |
+
* // Allow using toml nodes defined by `remark-frontmatter`.
|
| 321 |
+
* toml: TOML;
|
| 322 |
+
* }
|
| 323 |
+
* }
|
| 324 |
+
* ```
|
| 325 |
+
*
|
| 326 |
+
* For a union of all {@link Root} children, see {@link RootContent}.
|
| 327 |
+
*/
|
| 328 |
+
export interface RootContentMap {
|
| 329 |
+
blockquote: Blockquote;
|
| 330 |
+
break: Break;
|
| 331 |
+
code: Code;
|
| 332 |
+
definition: Definition;
|
| 333 |
+
delete: Delete;
|
| 334 |
+
emphasis: Emphasis;
|
| 335 |
+
footnoteDefinition: FootnoteDefinition;
|
| 336 |
+
footnoteReference: FootnoteReference;
|
| 337 |
+
heading: Heading;
|
| 338 |
+
html: Html;
|
| 339 |
+
image: Image;
|
| 340 |
+
imageReference: ImageReference;
|
| 341 |
+
inlineCode: InlineCode;
|
| 342 |
+
link: Link;
|
| 343 |
+
linkReference: LinkReference;
|
| 344 |
+
list: List;
|
| 345 |
+
listItem: ListItem;
|
| 346 |
+
paragraph: Paragraph;
|
| 347 |
+
strong: Strong;
|
| 348 |
+
table: Table;
|
| 349 |
+
tableCell: TableCell;
|
| 350 |
+
tableRow: TableRow;
|
| 351 |
+
text: Text;
|
| 352 |
+
thematicBreak: ThematicBreak;
|
| 353 |
+
yaml: Yaml;
|
| 354 |
+
}
|
| 355 |
+
|
| 356 |
+
/**
|
| 357 |
+
* Union of registered mdast nodes that can occur where row content is
|
| 358 |
+
* expected.
|
| 359 |
+
*
|
| 360 |
+
* To register custom mdast nodes, add them to {@link RowContentMap}.
|
| 361 |
+
* They will be automatically added here.
|
| 362 |
+
*/
|
| 363 |
+
export type RowContent = RowContentMap[keyof RowContentMap];
|
| 364 |
+
|
| 365 |
+
/**
|
| 366 |
+
* Registry of all mdast nodes that can occur where {@link RowContent}
|
| 367 |
+
* is expected.
|
| 368 |
+
*
|
| 369 |
+
* This interface can be augmented to register custom node types:
|
| 370 |
+
*
|
| 371 |
+
* ```ts
|
| 372 |
+
* declare module 'mdast' {
|
| 373 |
+
* interface RowContentMap {
|
| 374 |
+
* custom: Custom;
|
| 375 |
+
* }
|
| 376 |
+
* }
|
| 377 |
+
* ```
|
| 378 |
+
*
|
| 379 |
+
* For a union of all row content, see {@link RootContent}.
|
| 380 |
+
*/
|
| 381 |
+
export interface RowContentMap {
|
| 382 |
+
tableCell: TableCell;
|
| 383 |
+
}
|
| 384 |
+
|
| 385 |
+
/**
|
| 386 |
+
* Union of registered mdast nodes that can occur where table content is
|
| 387 |
+
* expected.
|
| 388 |
+
*
|
| 389 |
+
* To register custom mdast nodes, add them to {@link TableContentMap}.
|
| 390 |
+
* They will be automatically added here.
|
| 391 |
+
*/
|
| 392 |
+
export type TableContent = TableContentMap[keyof TableContentMap];
|
| 393 |
+
|
| 394 |
+
/**
|
| 395 |
+
* Registry of all mdast nodes that can occur where {@link TableContent}
|
| 396 |
+
* is expected.
|
| 397 |
+
*
|
| 398 |
+
* This interface can be augmented to register custom node types:
|
| 399 |
+
*
|
| 400 |
+
* ```ts
|
| 401 |
+
* declare module 'mdast' {
|
| 402 |
+
* interface TableContentMap {
|
| 403 |
+
* custom: Custom;
|
| 404 |
+
* }
|
| 405 |
+
* }
|
| 406 |
+
* ```
|
| 407 |
+
*
|
| 408 |
+
* For a union of all table content, see {@link RootContent}.
|
| 409 |
+
*/
|
| 410 |
+
export interface TableContentMap {
|
| 411 |
+
tableRow: TableRow;
|
| 412 |
+
}
|
| 413 |
+
|
| 414 |
+
// ### Special content types
|
| 415 |
+
|
| 416 |
+
/**
|
| 417 |
+
* Union of registered mdast nodes that can occur in {@link Root}.
|
| 418 |
+
*
|
| 419 |
+
* @deprecated Use {@link RootContent} instead.
|
| 420 |
+
*/
|
| 421 |
+
export type Content = RootContent;
|
| 422 |
+
|
| 423 |
+
/**
|
| 424 |
+
* Union of registered mdast literals.
|
| 425 |
+
*
|
| 426 |
+
* To register custom mdast nodes, add them to {@link RootContentMap} and other
|
| 427 |
+
* places where relevant.
|
| 428 |
+
* They will be automatically added here.
|
| 429 |
+
*/
|
| 430 |
+
export type Literals = Extract<Nodes, UnistLiteral>;
|
| 431 |
+
|
| 432 |
+
/**
|
| 433 |
+
* Union of registered mdast nodes.
|
| 434 |
+
*
|
| 435 |
+
* To register custom mdast nodes, add them to {@link RootContentMap} and other
|
| 436 |
+
* places where relevant.
|
| 437 |
+
* They will be automatically added here.
|
| 438 |
+
*/
|
| 439 |
+
export type Nodes = Root | RootContent;
|
| 440 |
+
|
| 441 |
+
/**
|
| 442 |
+
* Union of registered mdast parents.
|
| 443 |
+
*
|
| 444 |
+
* To register custom mdast nodes, add them to {@link RootContentMap} and other
|
| 445 |
+
* places where relevant.
|
| 446 |
+
* They will be automatically added here.
|
| 447 |
+
*/
|
| 448 |
+
export type Parents = Extract<Nodes, UnistParent>;
|
| 449 |
+
|
| 450 |
+
/**
|
| 451 |
+
* Union of registered mdast nodes that can occur at the top of the document.
|
| 452 |
+
*
|
| 453 |
+
* To register custom mdast nodes, add them to {@link BlockContent},
|
| 454 |
+
* {@link FrontmatterContent}, or {@link DefinitionContent}.
|
| 455 |
+
* They will be automatically added here.
|
| 456 |
+
*/
|
| 457 |
+
export type TopLevelContent = BlockContent | FrontmatterContent | DefinitionContent;
|
| 458 |
+
|
| 459 |
+
// ## Abstract nodes
|
| 460 |
+
|
| 461 |
+
/**
|
| 462 |
+
* Abstract mdast node that contains the smallest possible value.
|
| 463 |
+
*
|
| 464 |
+
* This interface is supposed to be extended if you make custom mdast nodes.
|
| 465 |
+
*
|
| 466 |
+
* For a union of all registered mdast literals, see {@link Literals}.
|
| 467 |
+
*/
|
| 468 |
+
export interface Literal extends Node {
|
| 469 |
+
/**
|
| 470 |
+
* Plain-text value.
|
| 471 |
+
*/
|
| 472 |
+
value: string;
|
| 473 |
+
}
|
| 474 |
+
|
| 475 |
+
/**
|
| 476 |
+
* Abstract mdast node.
|
| 477 |
+
*
|
| 478 |
+
* This interface is supposed to be extended.
|
| 479 |
+
* If you can use {@link Literal} or {@link Parent}, you should.
|
| 480 |
+
* But for example in markdown, a thematic break (`***`) is neither literal nor
|
| 481 |
+
* parent, but still a node.
|
| 482 |
+
*
|
| 483 |
+
* To register custom mdast nodes, add them to {@link RootContentMap} and other
|
| 484 |
+
* places where relevant (such as {@link ElementContentMap}).
|
| 485 |
+
*
|
| 486 |
+
* For a union of all registered mdast nodes, see {@link Nodes}.
|
| 487 |
+
*/
|
| 488 |
+
export interface Node extends UnistNode {
|
| 489 |
+
/**
|
| 490 |
+
* Info from the ecosystem.
|
| 491 |
+
*/
|
| 492 |
+
data?: Data | undefined;
|
| 493 |
+
}
|
| 494 |
+
|
| 495 |
+
/**
|
| 496 |
+
* Abstract mdast node that contains other mdast nodes (*children*).
|
| 497 |
+
*
|
| 498 |
+
* This interface is supposed to be extended if you make custom mdast nodes.
|
| 499 |
+
*
|
| 500 |
+
* For a union of all registered mdast parents, see {@link Parents}.
|
| 501 |
+
*/
|
| 502 |
+
export interface Parent extends Node {
|
| 503 |
+
/**
|
| 504 |
+
* List of children.
|
| 505 |
+
*/
|
| 506 |
+
children: RootContent[];
|
| 507 |
+
}
|
| 508 |
+
|
| 509 |
+
// ## Concrete nodes
|
| 510 |
+
|
| 511 |
+
/**
|
| 512 |
+
* Markdown block quote.
|
| 513 |
+
*/
|
| 514 |
+
export interface Blockquote extends Parent {
|
| 515 |
+
/**
|
| 516 |
+
* Node type of mdast block quote.
|
| 517 |
+
*/
|
| 518 |
+
type: "blockquote";
|
| 519 |
+
/**
|
| 520 |
+
* Children of block quote.
|
| 521 |
+
*/
|
| 522 |
+
children: Array<BlockContent | DefinitionContent>;
|
| 523 |
+
/**
|
| 524 |
+
* Data associated with the mdast block quote.
|
| 525 |
+
*/
|
| 526 |
+
data?: BlockquoteData | undefined;
|
| 527 |
+
}
|
| 528 |
+
|
| 529 |
+
/**
|
| 530 |
+
* Info associated with mdast block quote nodes by the ecosystem.
|
| 531 |
+
*/
|
| 532 |
+
export interface BlockquoteData extends Data {}
|
| 533 |
+
|
| 534 |
+
/**
|
| 535 |
+
* Markdown break.
|
| 536 |
+
*/
|
| 537 |
+
export interface Break extends Node {
|
| 538 |
+
/**
|
| 539 |
+
* Node type of mdast break.
|
| 540 |
+
*/
|
| 541 |
+
type: "break";
|
| 542 |
+
/**
|
| 543 |
+
* Data associated with the mdast break.
|
| 544 |
+
*/
|
| 545 |
+
data?: BreakData | undefined;
|
| 546 |
+
}
|
| 547 |
+
|
| 548 |
+
/**
|
| 549 |
+
* Info associated with mdast break nodes by the ecosystem.
|
| 550 |
+
*/
|
| 551 |
+
export interface BreakData extends Data {}
|
| 552 |
+
|
| 553 |
+
/**
|
| 554 |
+
* Markdown code (flow) (block).
|
| 555 |
+
*/
|
| 556 |
+
export interface Code extends Literal {
|
| 557 |
+
/**
|
| 558 |
+
* Node type of mdast code (flow).
|
| 559 |
+
*/
|
| 560 |
+
type: "code";
|
| 561 |
+
/**
|
| 562 |
+
* Language of computer code being marked up.
|
| 563 |
+
*/
|
| 564 |
+
lang?: string | null | undefined;
|
| 565 |
+
/**
|
| 566 |
+
* Custom information relating to the node.
|
| 567 |
+
*
|
| 568 |
+
* If the lang field is present, a meta field can be present.
|
| 569 |
+
*/
|
| 570 |
+
meta?: string | null | undefined;
|
| 571 |
+
/**
|
| 572 |
+
* Data associated with the mdast code (flow).
|
| 573 |
+
*/
|
| 574 |
+
data?: CodeData | undefined;
|
| 575 |
+
}
|
| 576 |
+
|
| 577 |
+
/**
|
| 578 |
+
* Info associated with mdast code (flow) (block) nodes by the ecosystem.
|
| 579 |
+
*/
|
| 580 |
+
export interface CodeData extends Data {}
|
| 581 |
+
|
| 582 |
+
/**
|
| 583 |
+
* Markdown definition.
|
| 584 |
+
*/
|
| 585 |
+
export interface Definition extends Node, Association, Resource {
|
| 586 |
+
/**
|
| 587 |
+
* Node type of mdast definition.
|
| 588 |
+
*/
|
| 589 |
+
type: "definition";
|
| 590 |
+
/**
|
| 591 |
+
* Data associated with the mdast definition.
|
| 592 |
+
*/
|
| 593 |
+
data?: DefinitionData | undefined;
|
| 594 |
+
}
|
| 595 |
+
|
| 596 |
+
/**
|
| 597 |
+
* Info associated with mdast definition nodes by the ecosystem.
|
| 598 |
+
*/
|
| 599 |
+
export interface DefinitionData extends Data {}
|
| 600 |
+
|
| 601 |
+
/**
|
| 602 |
+
* Markdown GFM delete (strikethrough).
|
| 603 |
+
*/
|
| 604 |
+
export interface Delete extends Parent {
|
| 605 |
+
/**
|
| 606 |
+
* Node type of mdast GFM delete.
|
| 607 |
+
*/
|
| 608 |
+
type: "delete";
|
| 609 |
+
/**
|
| 610 |
+
* Children of GFM delete.
|
| 611 |
+
*/
|
| 612 |
+
children: PhrasingContent[];
|
| 613 |
+
/**
|
| 614 |
+
* Data associated with the mdast GFM delete.
|
| 615 |
+
*/
|
| 616 |
+
data?: DeleteData | undefined;
|
| 617 |
+
}
|
| 618 |
+
|
| 619 |
+
/**
|
| 620 |
+
* Info associated with mdast GFM delete nodes by the ecosystem.
|
| 621 |
+
*/
|
| 622 |
+
export interface DeleteData extends Data {}
|
| 623 |
+
|
| 624 |
+
/**
|
| 625 |
+
* Markdown emphasis.
|
| 626 |
+
*/
|
| 627 |
+
export interface Emphasis extends Parent {
|
| 628 |
+
/**
|
| 629 |
+
* Node type of mdast emphasis.
|
| 630 |
+
*/
|
| 631 |
+
type: "emphasis";
|
| 632 |
+
/**
|
| 633 |
+
* Children of emphasis.
|
| 634 |
+
*/
|
| 635 |
+
children: PhrasingContent[];
|
| 636 |
+
/**
|
| 637 |
+
* Data associated with the mdast emphasis.
|
| 638 |
+
*/
|
| 639 |
+
data?: EmphasisData | undefined;
|
| 640 |
+
}
|
| 641 |
+
|
| 642 |
+
/**
|
| 643 |
+
* Info associated with mdast emphasis nodes by the ecosystem.
|
| 644 |
+
*/
|
| 645 |
+
export interface EmphasisData extends Data {}
|
| 646 |
+
|
| 647 |
+
/**
|
| 648 |
+
* Markdown GFM footnote definition.
|
| 649 |
+
*/
|
| 650 |
+
export interface FootnoteDefinition extends Parent, Association {
|
| 651 |
+
/**
|
| 652 |
+
* Node type of mdast GFM footnote definition.
|
| 653 |
+
*/
|
| 654 |
+
type: "footnoteDefinition";
|
| 655 |
+
/**
|
| 656 |
+
* Children of GFM footnote definition.
|
| 657 |
+
*/
|
| 658 |
+
children: Array<BlockContent | DefinitionContent>;
|
| 659 |
+
/**
|
| 660 |
+
* Data associated with the mdast GFM footnote definition.
|
| 661 |
+
*/
|
| 662 |
+
data?: FootnoteDefinitionData | undefined;
|
| 663 |
+
}
|
| 664 |
+
|
| 665 |
+
/**
|
| 666 |
+
* Info associated with mdast GFM footnote definition nodes by the ecosystem.
|
| 667 |
+
*/
|
| 668 |
+
export interface FootnoteDefinitionData extends Data {}
|
| 669 |
+
|
| 670 |
+
/**
|
| 671 |
+
* Markdown GFM footnote reference.
|
| 672 |
+
*/
|
| 673 |
+
export interface FootnoteReference extends Association, Node {
|
| 674 |
+
/**
|
| 675 |
+
* Node type of mdast GFM footnote reference.
|
| 676 |
+
*/
|
| 677 |
+
type: "footnoteReference";
|
| 678 |
+
/**
|
| 679 |
+
* Data associated with the mdast GFM footnote reference.
|
| 680 |
+
*/
|
| 681 |
+
data?: FootnoteReferenceData | undefined;
|
| 682 |
+
}
|
| 683 |
+
|
| 684 |
+
/**
|
| 685 |
+
* Info associated with mdast GFM footnote reference nodes by the ecosystem.
|
| 686 |
+
*/
|
| 687 |
+
export interface FootnoteReferenceData extends Data {}
|
| 688 |
+
|
| 689 |
+
/**
|
| 690 |
+
* Markdown heading.
|
| 691 |
+
*/
|
| 692 |
+
export interface Heading extends Parent {
|
| 693 |
+
/**
|
| 694 |
+
* Node type of mdast heading.
|
| 695 |
+
*/
|
| 696 |
+
type: "heading";
|
| 697 |
+
/**
|
| 698 |
+
* Heading rank.
|
| 699 |
+
*
|
| 700 |
+
* A value of `1` is said to be the highest rank and `6` the lowest.
|
| 701 |
+
*/
|
| 702 |
+
depth: 1 | 2 | 3 | 4 | 5 | 6;
|
| 703 |
+
/**
|
| 704 |
+
* Children of heading.
|
| 705 |
+
*/
|
| 706 |
+
children: PhrasingContent[];
|
| 707 |
+
/**
|
| 708 |
+
* Data associated with the mdast heading.
|
| 709 |
+
*/
|
| 710 |
+
data?: HeadingData | undefined;
|
| 711 |
+
}
|
| 712 |
+
|
| 713 |
+
/**
|
| 714 |
+
* Info associated with mdast heading nodes by the ecosystem.
|
| 715 |
+
*/
|
| 716 |
+
export interface HeadingData extends Data {}
|
| 717 |
+
|
| 718 |
+
/**
|
| 719 |
+
* Markdown HTML.
|
| 720 |
+
*/
|
| 721 |
+
export interface Html extends Literal {
|
| 722 |
+
/**
|
| 723 |
+
* Node type of mdast HTML.
|
| 724 |
+
*/
|
| 725 |
+
type: "html";
|
| 726 |
+
/**
|
| 727 |
+
* Data associated with the mdast HTML.
|
| 728 |
+
*/
|
| 729 |
+
data?: HtmlData | undefined;
|
| 730 |
+
}
|
| 731 |
+
|
| 732 |
+
/**
|
| 733 |
+
* Info associated with mdast HTML nodes by the ecosystem.
|
| 734 |
+
*/
|
| 735 |
+
export interface HtmlData extends Data {}
|
| 736 |
+
|
| 737 |
+
/**
|
| 738 |
+
* Old name of `Html` node.
|
| 739 |
+
*
|
| 740 |
+
* @deprecated
|
| 741 |
+
* Please use `Html` instead.
|
| 742 |
+
*/
|
| 743 |
+
export type HTML = Html;
|
| 744 |
+
|
| 745 |
+
/**
|
| 746 |
+
* Markdown image.
|
| 747 |
+
*/
|
| 748 |
+
export interface Image extends Alternative, Node, Resource {
|
| 749 |
+
/**
|
| 750 |
+
* Node type of mdast image.
|
| 751 |
+
*/
|
| 752 |
+
type: "image";
|
| 753 |
+
/**
|
| 754 |
+
* Data associated with the mdast image.
|
| 755 |
+
*/
|
| 756 |
+
data?: ImageData | undefined;
|
| 757 |
+
}
|
| 758 |
+
|
| 759 |
+
/**
|
| 760 |
+
* Info associated with mdast image nodes by the ecosystem.
|
| 761 |
+
*/
|
| 762 |
+
export interface ImageData extends Data {}
|
| 763 |
+
|
| 764 |
+
/**
|
| 765 |
+
* Markdown image reference.
|
| 766 |
+
*/
|
| 767 |
+
export interface ImageReference extends Alternative, Node, Reference {
|
| 768 |
+
/**
|
| 769 |
+
* Node type of mdast image reference.
|
| 770 |
+
*/
|
| 771 |
+
type: "imageReference";
|
| 772 |
+
/**
|
| 773 |
+
* Data associated with the mdast image reference.
|
| 774 |
+
*/
|
| 775 |
+
data?: ImageReferenceData | undefined;
|
| 776 |
+
}
|
| 777 |
+
|
| 778 |
+
/**
|
| 779 |
+
* Info associated with mdast image reference nodes by the ecosystem.
|
| 780 |
+
*/
|
| 781 |
+
export interface ImageReferenceData extends Data {}
|
| 782 |
+
|
| 783 |
+
/**
|
| 784 |
+
* Markdown code (text) (inline).
|
| 785 |
+
*/
|
| 786 |
+
export interface InlineCode extends Literal {
|
| 787 |
+
/**
|
| 788 |
+
* Node type of mdast code (text).
|
| 789 |
+
*/
|
| 790 |
+
type: "inlineCode";
|
| 791 |
+
/**
|
| 792 |
+
* Data associated with the mdast code (text).
|
| 793 |
+
*/
|
| 794 |
+
data?: InlineCodeData | undefined;
|
| 795 |
+
}
|
| 796 |
+
|
| 797 |
+
/**
|
| 798 |
+
* Info associated with mdast code (text) (inline) nodes by the ecosystem.
|
| 799 |
+
*/
|
| 800 |
+
export interface InlineCodeData extends Data {}
|
| 801 |
+
|
| 802 |
+
/**
|
| 803 |
+
* Markdown link.
|
| 804 |
+
*/
|
| 805 |
+
export interface Link extends Parent, Resource {
|
| 806 |
+
/**
|
| 807 |
+
* Node type of mdast link.
|
| 808 |
+
*/
|
| 809 |
+
type: "link";
|
| 810 |
+
/**
|
| 811 |
+
* Children of link.
|
| 812 |
+
*/
|
| 813 |
+
children: PhrasingContent[];
|
| 814 |
+
/**
|
| 815 |
+
* Data associated with the mdast link.
|
| 816 |
+
*/
|
| 817 |
+
data?: LinkData | undefined;
|
| 818 |
+
}
|
| 819 |
+
|
| 820 |
+
/**
|
| 821 |
+
* Info associated with mdast link nodes by the ecosystem.
|
| 822 |
+
*/
|
| 823 |
+
export interface LinkData extends Data {}
|
| 824 |
+
|
| 825 |
+
/**
|
| 826 |
+
* Markdown link reference.
|
| 827 |
+
*/
|
| 828 |
+
export interface LinkReference extends Parent, Reference {
|
| 829 |
+
/**
|
| 830 |
+
* Node type of mdast link reference.
|
| 831 |
+
*/
|
| 832 |
+
type: "linkReference";
|
| 833 |
+
/**
|
| 834 |
+
* Children of link reference.
|
| 835 |
+
*/
|
| 836 |
+
children: PhrasingContent[];
|
| 837 |
+
/**
|
| 838 |
+
* Data associated with the mdast link reference.
|
| 839 |
+
*/
|
| 840 |
+
data?: LinkReferenceData | undefined;
|
| 841 |
+
}
|
| 842 |
+
|
| 843 |
+
/**
|
| 844 |
+
* Info associated with mdast link reference nodes by the ecosystem.
|
| 845 |
+
*/
|
| 846 |
+
export interface LinkReferenceData extends Data {}
|
| 847 |
+
|
| 848 |
+
/**
|
| 849 |
+
* Markdown list.
|
| 850 |
+
*/
|
| 851 |
+
export interface List extends Parent {
|
| 852 |
+
/**
|
| 853 |
+
* Node type of mdast list.
|
| 854 |
+
*/
|
| 855 |
+
type: "list";
|
| 856 |
+
/**
|
| 857 |
+
* Whether the items have been intentionally ordered (when `true`), or that
|
| 858 |
+
* the order of items is not important (when `false` or not present).
|
| 859 |
+
*/
|
| 860 |
+
ordered?: boolean | null | undefined;
|
| 861 |
+
/**
|
| 862 |
+
* The starting number of the list, when the `ordered` field is `true`.
|
| 863 |
+
*/
|
| 864 |
+
start?: number | null | undefined;
|
| 865 |
+
/**
|
| 866 |
+
* Whether one or more of the children are separated with a blank line from
|
| 867 |
+
* its siblings (when `true`), or not (when `false` or not present).
|
| 868 |
+
*/
|
| 869 |
+
spread?: boolean | null | undefined;
|
| 870 |
+
/**
|
| 871 |
+
* Children of list.
|
| 872 |
+
*/
|
| 873 |
+
children: ListContent[];
|
| 874 |
+
/**
|
| 875 |
+
* Data associated with the mdast list.
|
| 876 |
+
*/
|
| 877 |
+
data?: ListData | undefined;
|
| 878 |
+
}
|
| 879 |
+
|
| 880 |
+
/**
|
| 881 |
+
* Info associated with mdast list nodes by the ecosystem.
|
| 882 |
+
*/
|
| 883 |
+
export interface ListData extends Data {}
|
| 884 |
+
|
| 885 |
+
/**
|
| 886 |
+
* Markdown list item.
|
| 887 |
+
*/
|
| 888 |
+
export interface ListItem extends Parent {
|
| 889 |
+
/**
|
| 890 |
+
* Node type of mdast list item.
|
| 891 |
+
*/
|
| 892 |
+
type: "listItem";
|
| 893 |
+
/**
|
| 894 |
+
* Whether the item is a tasklist item (when `boolean`).
|
| 895 |
+
*
|
| 896 |
+
* When `true`, the item is complete.
|
| 897 |
+
* When `false`, the item is incomplete.
|
| 898 |
+
*/
|
| 899 |
+
checked?: boolean | null | undefined;
|
| 900 |
+
/**
|
| 901 |
+
* Whether one or more of the children are separated with a blank line from
|
| 902 |
+
* its siblings (when `true`), or not (when `false` or not present).
|
| 903 |
+
*/
|
| 904 |
+
spread?: boolean | null | undefined;
|
| 905 |
+
/**
|
| 906 |
+
* Children of list item.
|
| 907 |
+
*/
|
| 908 |
+
children: Array<BlockContent | DefinitionContent>;
|
| 909 |
+
/**
|
| 910 |
+
* Data associated with the mdast list item.
|
| 911 |
+
*/
|
| 912 |
+
data?: ListItemData | undefined;
|
| 913 |
+
}
|
| 914 |
+
|
| 915 |
+
/**
|
| 916 |
+
* Info associated with mdast list item nodes by the ecosystem.
|
| 917 |
+
*/
|
| 918 |
+
export interface ListItemData extends Data {}
|
| 919 |
+
|
| 920 |
+
/**
|
| 921 |
+
* Markdown paragraph.
|
| 922 |
+
*/
|
| 923 |
+
export interface Paragraph extends Parent {
|
| 924 |
+
/**
|
| 925 |
+
* Node type of mdast paragraph.
|
| 926 |
+
*/
|
| 927 |
+
type: "paragraph";
|
| 928 |
+
/**
|
| 929 |
+
* Children of paragraph.
|
| 930 |
+
*/
|
| 931 |
+
children: PhrasingContent[];
|
| 932 |
+
/**
|
| 933 |
+
* Data associated with the mdast paragraph.
|
| 934 |
+
*/
|
| 935 |
+
data?: ParagraphData | undefined;
|
| 936 |
+
}
|
| 937 |
+
|
| 938 |
+
/**
|
| 939 |
+
* Info associated with mdast paragraph nodes by the ecosystem.
|
| 940 |
+
*/
|
| 941 |
+
export interface ParagraphData extends Data {}
|
| 942 |
+
|
| 943 |
+
/**
|
| 944 |
+
* Document fragment or a whole document.
|
| 945 |
+
*
|
| 946 |
+
* Should be used as the root of a tree and must not be used as a child.
|
| 947 |
+
*/
|
| 948 |
+
export interface Root extends Parent {
|
| 949 |
+
/**
|
| 950 |
+
* Node type of mdast root.
|
| 951 |
+
*/
|
| 952 |
+
type: "root";
|
| 953 |
+
/**
|
| 954 |
+
* Data associated with the mdast root.
|
| 955 |
+
*/
|
| 956 |
+
data?: RootData | undefined;
|
| 957 |
+
}
|
| 958 |
+
|
| 959 |
+
/**
|
| 960 |
+
* Info associated with mdast root nodes by the ecosystem.
|
| 961 |
+
*/
|
| 962 |
+
export interface RootData extends Data {}
|
| 963 |
+
|
| 964 |
+
/**
|
| 965 |
+
* Markdown strong.
|
| 966 |
+
*/
|
| 967 |
+
export interface Strong extends Parent {
|
| 968 |
+
/**
|
| 969 |
+
* Node type of mdast strong.
|
| 970 |
+
*/
|
| 971 |
+
type: "strong";
|
| 972 |
+
/**
|
| 973 |
+
* Children of strong.
|
| 974 |
+
*/
|
| 975 |
+
children: PhrasingContent[];
|
| 976 |
+
/**
|
| 977 |
+
* Data associated with the mdast strong.
|
| 978 |
+
*/
|
| 979 |
+
data?: StrongData | undefined;
|
| 980 |
+
}
|
| 981 |
+
|
| 982 |
+
/**
|
| 983 |
+
* Info associated with mdast strong nodes by the ecosystem.
|
| 984 |
+
*/
|
| 985 |
+
export interface StrongData extends Data {}
|
| 986 |
+
|
| 987 |
+
/**
|
| 988 |
+
* Markdown GFM table.
|
| 989 |
+
*/
|
| 990 |
+
export interface Table extends Parent {
|
| 991 |
+
/**
|
| 992 |
+
* Node type of mdast GFM table.
|
| 993 |
+
*/
|
| 994 |
+
type: "table";
|
| 995 |
+
/**
|
| 996 |
+
* How cells in columns are aligned.
|
| 997 |
+
*/
|
| 998 |
+
align?: AlignType[] | null | undefined;
|
| 999 |
+
/**
|
| 1000 |
+
* Children of GFM table.
|
| 1001 |
+
*/
|
| 1002 |
+
children: TableContent[];
|
| 1003 |
+
/**
|
| 1004 |
+
* Data associated with the mdast GFM table.
|
| 1005 |
+
*/
|
| 1006 |
+
data?: TableData | undefined;
|
| 1007 |
+
}
|
| 1008 |
+
|
| 1009 |
+
/**
|
| 1010 |
+
* Info associated with mdast GFM table nodes by the ecosystem.
|
| 1011 |
+
*/
|
| 1012 |
+
export interface TableData extends Data {}
|
| 1013 |
+
|
| 1014 |
+
/**
|
| 1015 |
+
* Markdown GFM table row.
|
| 1016 |
+
*/
|
| 1017 |
+
export interface TableRow extends Parent {
|
| 1018 |
+
/**
|
| 1019 |
+
* Node type of mdast GFM table row.
|
| 1020 |
+
*/
|
| 1021 |
+
type: "tableRow";
|
| 1022 |
+
/**
|
| 1023 |
+
* Children of GFM table row.
|
| 1024 |
+
*/
|
| 1025 |
+
children: RowContent[];
|
| 1026 |
+
/**
|
| 1027 |
+
* Data associated with the mdast GFM table row.
|
| 1028 |
+
*/
|
| 1029 |
+
data?: TableRowData | undefined;
|
| 1030 |
+
}
|
| 1031 |
+
|
| 1032 |
+
/**
|
| 1033 |
+
* Info associated with mdast GFM table row nodes by the ecosystem.
|
| 1034 |
+
*/
|
| 1035 |
+
export interface TableRowData extends Data {}
|
| 1036 |
+
|
| 1037 |
+
/**
|
| 1038 |
+
* Markdown GFM table cell.
|
| 1039 |
+
*/
|
| 1040 |
+
export interface TableCell extends Parent {
|
| 1041 |
+
/**
|
| 1042 |
+
* Node type of mdast GFM table cell.
|
| 1043 |
+
*/
|
| 1044 |
+
type: "tableCell";
|
| 1045 |
+
/**
|
| 1046 |
+
* Children of GFM table cell.
|
| 1047 |
+
*/
|
| 1048 |
+
children: PhrasingContent[];
|
| 1049 |
+
/**
|
| 1050 |
+
* Data associated with the mdast GFM table cell.
|
| 1051 |
+
*/
|
| 1052 |
+
data?: TableCellData | undefined;
|
| 1053 |
+
}
|
| 1054 |
+
|
| 1055 |
+
/**
|
| 1056 |
+
* Info associated with mdast GFM table cell nodes by the ecosystem.
|
| 1057 |
+
*/
|
| 1058 |
+
export interface TableCellData extends Data {}
|
| 1059 |
+
|
| 1060 |
+
/**
|
| 1061 |
+
* Markdown text.
|
| 1062 |
+
*/
|
| 1063 |
+
export interface Text extends Literal {
|
| 1064 |
+
/**
|
| 1065 |
+
* Node type of mdast text.
|
| 1066 |
+
*/
|
| 1067 |
+
type: "text";
|
| 1068 |
+
/**
|
| 1069 |
+
* Data associated with the mdast text.
|
| 1070 |
+
*/
|
| 1071 |
+
data?: TextData | undefined;
|
| 1072 |
+
}
|
| 1073 |
+
|
| 1074 |
+
/**
|
| 1075 |
+
* Info associated with mdast text nodes by the ecosystem.
|
| 1076 |
+
*/
|
| 1077 |
+
export interface TextData extends Data {}
|
| 1078 |
+
|
| 1079 |
+
/**
|
| 1080 |
+
* Markdown thematic break (horizontal rule).
|
| 1081 |
+
*/
|
| 1082 |
+
export interface ThematicBreak extends Node {
|
| 1083 |
+
/**
|
| 1084 |
+
* Node type of mdast thematic break.
|
| 1085 |
+
*/
|
| 1086 |
+
type: "thematicBreak";
|
| 1087 |
+
/**
|
| 1088 |
+
* Data associated with the mdast thematic break.
|
| 1089 |
+
*/
|
| 1090 |
+
data?: ThematicBreakData | undefined;
|
| 1091 |
+
}
|
| 1092 |
+
|
| 1093 |
+
/**
|
| 1094 |
+
* Info associated with mdast thematic break nodes by the ecosystem.
|
| 1095 |
+
*/
|
| 1096 |
+
export interface ThematicBreakData extends Data {}
|
| 1097 |
+
|
| 1098 |
+
/**
|
| 1099 |
+
* Markdown YAML.
|
| 1100 |
+
*/
|
| 1101 |
+
export interface Yaml extends Literal {
|
| 1102 |
+
/**
|
| 1103 |
+
* Node type of mdast YAML.
|
| 1104 |
+
*/
|
| 1105 |
+
type: "yaml";
|
| 1106 |
+
/**
|
| 1107 |
+
* Data associated with the mdast YAML.
|
| 1108 |
+
*/
|
| 1109 |
+
data?: YamlData | undefined;
|
| 1110 |
+
}
|
| 1111 |
+
|
| 1112 |
+
/**
|
| 1113 |
+
* Info associated with mdast YAML nodes by the ecosystem.
|
| 1114 |
+
*/
|
| 1115 |
+
export interface YamlData extends Data {}
|
| 1116 |
+
|
| 1117 |
+
/**
|
| 1118 |
+
* Old name of `Yaml` node.
|
| 1119 |
+
*
|
| 1120 |
+
* @deprecated
|
| 1121 |
+
* Please use `Yaml` instead.
|
| 1122 |
+
*/
|
| 1123 |
+
export type YAML = Yaml;
|
node_modules/@types/mdast/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "@types/mdast",
|
| 3 |
+
"version": "4.0.4",
|
| 4 |
+
"description": "TypeScript definitions for mdast",
|
| 5 |
+
"homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mdast",
|
| 6 |
+
"license": "MIT",
|
| 7 |
+
"contributors": [
|
| 8 |
+
{
|
| 9 |
+
"name": "Christian Murphy",
|
| 10 |
+
"githubUsername": "ChristianMurphy",
|
| 11 |
+
"url": "https://github.com/ChristianMurphy"
|
| 12 |
+
},
|
| 13 |
+
{
|
| 14 |
+
"name": "Jun Lu",
|
| 15 |
+
"githubUsername": "lujun2",
|
| 16 |
+
"url": "https://github.com/lujun2"
|
| 17 |
+
},
|
| 18 |
+
{
|
| 19 |
+
"name": "Remco Haszing",
|
| 20 |
+
"githubUsername": "remcohaszing",
|
| 21 |
+
"url": "https://github.com/remcohaszing"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"name": "Titus Wormer",
|
| 25 |
+
"githubUsername": "wooorm",
|
| 26 |
+
"url": "https://github.com/wooorm"
|
| 27 |
+
},
|
| 28 |
+
{
|
| 29 |
+
"name": "Remco Haszing",
|
| 30 |
+
"githubUsername": "remcohaszing",
|
| 31 |
+
"url": "https://github.com/remcohaszing"
|
| 32 |
+
}
|
| 33 |
+
],
|
| 34 |
+
"main": "",
|
| 35 |
+
"types": "index.d.ts",
|
| 36 |
+
"repository": {
|
| 37 |
+
"type": "git",
|
| 38 |
+
"url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git",
|
| 39 |
+
"directory": "types/mdast"
|
| 40 |
+
},
|
| 41 |
+
"scripts": {},
|
| 42 |
+
"dependencies": {
|
| 43 |
+
"@types/unist": "*"
|
| 44 |
+
},
|
| 45 |
+
"typesPublisherContentHash": "1599d3ca45533e9d9248231c90843306b49c07fe13ad94ebf7345da44d8fd4bd",
|
| 46 |
+
"typeScriptVersion": "4.7"
|
| 47 |
+
}
|
node_modules/@types/ms/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) Microsoft Corporation.
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE
|