feat: enhance documentation and remove deprecated files

- Added a comprehensive Table of Contents to AGENTS.md for improved navigation.
- Expanded documentation with new backend and frontend guides, detailing architecture, API contracts, and workflows.
- Introduced new documents for backend architecture and requirements, outlining system design and API specifications.
- Removed outdated Makefile and setup.sh scripts to streamline project setup.
- Deleted yarn.lock to eliminate unnecessary dependency management files.
- Updated AGENTS.md to reflect changes in documentation structure and links.
This commit is contained in:
srbhr
2025-12-29 16:27:39 +05:30
parent 8a6bc1a249
commit b833bf3db7
10 changed files with 39 additions and 496 deletions

View File

@@ -1,9 +1,42 @@
# Repository Guidelines
## Table of Contents
- [Documentation](#documentation)
- [Project Structure & Module Organization](#project-structure--module-organization)
- [Build, Test, and Development Commands](#build-test-and-development-commands)
- [Coding Style & Naming Conventions](#coding-style--naming-conventions)
- [Testing Guidelines](#testing-guidelines)
- [Commit & Pull Request Guidelines](#commit--pull-request-guidelines)
- [LLM & AI Workflow Notes](#llm--ai-workflow-notes)
---
## Documentation
All project documentation is located in the `docs/` folder:
| Document | Description |
|----------|-------------|
| [backend-guide.md](docs/backend-guide.md) | Backend architecture, modules, and API endpoints |
| [frontend-workflow.md](docs/frontend-workflow.md) | User flow, page routes, and component architecture |
| [front-end-apis.md](docs/front-end-apis.md) | API contract between frontend and backend |
| [style-guide.md](docs/style-guide.md) | Swiss International Style design system |
| [backend-architecture.md](docs/backend-architecture.md) | Detailed backend architecture diagrams |
| [frontend-architecture.md](docs/frontend-architecture.md) | Detailed frontend architecture diagrams |
| [api-flow-maps.md](docs/api-flow-maps.md) | API request/response flow diagrams |
| [design-system.md](docs/design-system.md) | Extended design system documentation |
| [template-system.md](docs/template-system.md) | Resume template system documentation |
| [print_pdf_design_spec.md](docs/print_pdf_design_spec.md) | PDF generation specifications |
| [resume_template_design_spec.md](docs/resume_template_design_spec.md) | Resume template design specifications |
| [i18n-preparation.md](docs/i18n-preparation.md) | Internationalization preparation notes |
| [backend-requirements.md](docs/backend-requirements.md) | API contract specifications |
| [review-todo.md](docs/review-todo.md) | Review checklist and TODOs |
## Project Structure & Module Organization
### Backend (`apps/backend/`)
A lean FastAPI application with multi-provider AI support. See **[.backend-guide.md](.backend-guide.md)** for detailed architecture documentation.
A lean FastAPI application with multi-provider AI support. See **[docs/backend-guide.md](docs/backend-guide.md)** for detailed architecture documentation.
- `app/main.py` - FastAPI entry point with CORS and router setup
- `app/config.py` - Pydantic settings loaded from environment
@@ -15,7 +48,7 @@ A lean FastAPI application with multi-provider AI support. See **[.backend-guide
- `app/prompts/` - Simplified LLM prompt templates
### Frontend (`apps/frontend/`)
Next.js dashboard with Swiss International Style design. See **[.frontend-workflow.md](.frontend-workflow.md)** for user flow and **[.front-end-apis.md](.front-end-apis.md)** for API contracts.
Next.js dashboard with Swiss International Style design. See **[docs/frontend-workflow.md](docs/frontend-workflow.md)** for user flow and **[docs/front-end-apis.md](docs/front-end-apis.md)** for API contracts.
- `app/` - Next.js routes (dashboard, builder, tailor, resumes, settings, print)
- `components/` - Reusable UI components (including `ConfirmDialog` with danger/success variants)
@@ -28,20 +61,18 @@ Next.js dashboard with Swiss International Style design. See **[.frontend-workfl
- Delete flow includes confirmation before and success message after deletion
### Root Tooling
- `Makefile`, `setup.sh`, `package.json` - Workflow coordination
- `backend-requirements.md` - API contract specifications
- `.style-guide.md` - Swiss International Style design system
- `package.json` - Workflow coordination and scripts
## Build, Test, and Development Commands
- `npm run install` provisions the frontend and, via `uv`, the backend virtual environment.
- `make run-dev` (or `npm run dev`) launches FastAPI on `:8000` and the UI on `:3000`; use `npm run dev:backend` or `npm run dev:frontend` to focus on a single tier.
- Production builds: `npm run build` for both stacks, `npm run build:frontend` for UI-only, and `make build-prod` for a Makefile-driven bundle.
- `npm run dev` launches FastAPI on `:8000` and the UI on `:3000`; use `npm run dev:backend` or `npm run dev:frontend` to focus on a single tier.
- Production builds: `npm run build` for both stacks, `npm run build:frontend` for UI-only.
- Quality checks: `npm run lint` for the UI, `npm run format` to apply Prettier.
## Coding Style & Naming Conventions
### Frontend (TypeScript/React)
- **Design System**: All UI changes MUST follow the **Swiss International Style** in `.style-guide.md`.
- **Design System**: All UI changes MUST follow the **Swiss International Style** in [docs/style-guide.md](docs/style-guide.md).
- Use `font-serif` for headers, `font-mono` for metadata, `font-sans` for body text.
- Color palette: `#F0F0E8` (Canvas), `#000000` (Ink), `#1D4ED8` (Hyper Blue), `#15803D` (Signal Green), `#F97316` (Alert Orange), `#DC2626` (Alert Red), `#4B5563` (Steel Grey).
- Components: `rounded-none` with 1px black borders and hard shadows.

View File

@@ -1,40 +0,0 @@
.SHELL := /usr/bin/env bash
.PHONY: all help setup dev build clean
all: help
help:
@echo "Usage: make [target]"
@echo "Available targets:"
@echo " setup Run the setup script to configure the project"
@echo " run-dev Setup and start the development server (with graceful shutdown)"
@echo " build-prod Build the project for production"
@echo " start-prod Start the production server (after building)"
@echo " run-prod Build and start the production server"
@echo " clean Clean up generated artifacts"
setup:
@echo "🔧 Running setup.sh…"
@bash setup.sh
run-dev:
@echo "🚀 Starting development server…"
@bash -c 'trap "echo "\n🛑 Development server stopped"; exit 0" SIGINT; npm run dev'
build-prod:
@echo "📦 Building for production…"
@npm run build
start-prod:
@echo "🚀 Starting production server…"
@bash -c 'trap "echo "\n🛑 Production server stopped"; exit 0" SIGINT; npm run start'
run-prod: build-prod
@echo "🚀 Starting production server…"
@bash -c 'trap "echo "\n🛑 Production server stopped"; exit 0" SIGINT; npm run start'
clean:
@echo "🧹 Cleaning artifacts…"
# Add commands to clean build and temp files, e.g.:
# rm -rf node_modules apps/backend/.venv apps/frontend/node_modules

236
setup.sh
View File

@@ -1,236 +0,0 @@
#!/usr/bin/env bash
#
# setup.sh - cross-platform setup for Resume Matcher
#
# Usage:
# ./setup.sh [--help] [--start-dev]
#
# Requirements:
# • Bash 4.4+ (for associative arrays)
# • curl (for uv & ollama installers, if needed)
#
# After setup:
# npm run dev # start development server
# npm run build # build for production
set -euo pipefail
export PYTHONDONTWRITEBYTECODE=1
IFS=$'\n\t'
# Detect OS for compatibility #
OS="$(uname -s)"
case "$OS" in
Linux*) OS_TYPE="Linux" ;;
Darwin*) OS_TYPE="macOS" ;;
*) OS_TYPE="$OS" ;;
esac
# CLI help #
usage() {
cat <<EOF
Usage: $0 [--help] [--start-dev]
Options:
--help Show this help message and exit
--start-dev After setup completes, start the dev server (with graceful SIGINT handling)
This script will:
• Verify required tools: node, npm, python3, pip3, uv
• Install Ollama & pull relevant models
• Install root dependencies via npm ci
• Bootstrap both frontend and backend .env files
• Bootstrap backend venv and install Python deps via uv
• Install frontend dependencies via npm ci
EOF
}
START_DEV=false
if [[ "${1:-}" == "--help" ]]; then
usage
exit 0
elif [[ "${1:-}" == "--start-dev" ]]; then
START_DEV=true
fi
# Logging helpers #
info() { echo -e " $*"; }
success() { echo -e "$*"; }
error() { echo -e "$*" >&2; exit 1; }
info "Detected operating system: $OS_TYPE"
# 1. Prerequisite checks #
check_cmd() {
local cmd=$1
if ! command -v "$cmd" &> /dev/null; then
error "$cmd is not installed. Please install it and retry."
fi
}
check_node_version() {
local min_major=18
local ver
ver=$(node --version | sed 's/^v\([0-9]*\).*/\1/')
if (( ver < min_major )); then
error "Node.js v${min_major}+ is required (found v$(node --version))."
fi
}
info "Checking prerequisites…"
check_cmd node
check_node_version
check_cmd npm
check_cmd python3
if ! command -v pip3 &> /dev/null; then
if [[ "$OS_TYPE" == "Linux" && -x "$(command -v apt-get)" ]]; then
info "pip3 not found; installing via apt-get…"
sudo apt-get update && sudo apt-get install -y python3-pip || error "Failed to install python3-pip"
elif [[ "$OS_TYPE" == "Linux" && -x "$(command -v yum)" ]]; then
info "pip3 not found; installing via yum…"
sudo yum install -y python3-pip || error "Failed to install python3-pip"
else
info "pip3 not found; bootstrapping via ensurepip…"
python3 -m ensurepip --upgrade || error "ensurepip failed"
fi
fi
check_cmd pip3
success "pip3 is available"
# ensure uv
if ! command -v uv &> /dev/null; then
info "uv not found; installing via Astral.sh…"
curl -LsSf https://astral.sh/uv/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
fi
check_cmd uv
success "All prerequisites satisfied."
# 2. Optional Ollama setup #
ollama_check_or_pull() {
model_name="$1"
if ! ollama list | grep -q "$model_name"; then
info "Pulling $model_name model…"
ollama pull "$model_name" || error "Failed to pull $model_name model"
success "$model_name model ready"
else
info "$model_name model already present—skipping"
fi
}
NEEDS_OLLAMA=false
ENV_SOURCE=""
if [[ -f apps/backend/.env ]]; then
ENV_SOURCE="apps/backend/.env"
elif [[ -f apps/backend/.env.sample ]]; then
ENV_SOURCE="apps/backend/.env.sample"
fi
if [[ -n "$ENV_SOURCE" ]]; then
if grep -Eq "^LLM_PROVIDER=[\"']?ollama" "$ENV_SOURCE" || grep -Eq "^EMBEDDING_PROVIDER=[\"']?ollama" "$ENV_SOURCE"; then
NEEDS_OLLAMA=true
fi
fi
if [[ "$NEEDS_OLLAMA" == true ]]; then
info "Checking Ollama installation…"
if ! command -v ollama &> /dev/null; then
info "ollama not found; installing…"
if [[ "$OS_TYPE" == "macOS" ]]; then
brew install ollama || error "Failed to install Ollama via Homebrew"
else
# Download Ollama installer securely without using curl | sh
curl -Lo ollama-install.sh https://ollama.com/install.sh || error "Failed to download Ollama installer"
chmod +x ollama-install.sh
./ollama-install.sh || error "Failed to execute Ollama installer"
rm ollama-install.sh
export PATH="$HOME/.local/bin:$PATH"
fi
success "Ollama installed"
else
info "Ollama already installed—skipping"
fi
else
info "Skipping Ollama installation (providers set to non-Ollama)."
fi
# 3. Bootstrap root .env #
if [[ -f .env.example && ! -f .env ]]; then
info "Bootstrapping root .env from .env.example"
cp .env.example .env
success "Root .env created"
elif [[ -f .env ]]; then
info "Root .env already exists—skipping"
else
info "No .env.example at root—skipping"
fi
# 4. Install root dependencies #
info "Installing root dependencies with npm ci…"
npm ci
success "Root dependencies installed."
# 5. Setup backend #
info "Setting up backend (apps/backend)…"
(
cd apps/backend
# bootstrap backend .env
if [[ -f .env.sample && ! -f .env ]]; then
info "Bootstrapping backend .env from .env.sample"
cp .env.sample .env
success "Backend .env created"
else
info "Backend .env exists or .env.sample missing—skipping"
fi
# The Ollama provider automatically pulls models on demand, but it's preferable to do it at setup time.
eval `grep ^LLM_PROVIDER= .env`
if [ "$LLM_PROVIDER" = "ollama" ]; then
eval `grep ^LL_MODEL .env`
ollama_check_or_pull $LL_MODEL
fi
eval `grep ^EMBEDDING_PROVIDER= .env`
if [ "$EMBEDDING_PROVIDER" = "ollama" ]; then
eval `grep ^EMBEDDING_MODEL .env`
ollama_check_or_pull $EMBEDDING_MODEL
fi
info "Syncing Python deps via uv…"
uv sync
success "Backend dependencies ready."
)
# 6. Setup frontend #
info "Setting up frontend (apps/frontend)…"
(
cd apps/frontend
# bootstrap frontend .env
if [[ -f .env.sample && ! -f .env ]]; then
info "Bootstrapping frontend .env from .env.sample"
cp .env.sample .env
success "frontend .env created"
else
info "frontend .env exists or .env.sample missing—skipping"
fi
info "Installing frontend deps with npm ci…"
npm ci
success "Frontend dependencies ready."
)
# 7. Finish or start dev #
if [[ "$START_DEV" == true ]]; then
info "Starting development server…"
# trap SIGINT for graceful shutdown
trap 'info "Gracefully shutting down development server."; exit 0' SIGINT
npm run dev
else
success "🎉 Setup complete!
Next steps:
• Run \`npm run dev\` to start in development mode.
• Run \`npm run build\` for production.
• See SETUP.md for more details."
fi

212
yarn.lock
View File

@@ -1,212 +0,0 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@pkgr/core@^0.2.9":
version "0.2.9"
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b"
integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
color-convert "^2.0.1"
chalk@4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
cliui@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
dependencies:
string-width "^4.2.0"
strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
color-convert@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
dependencies:
color-name "~1.1.4"
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
concurrently@^9.1.2:
version "9.2.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.2.1.tgz#248ea21b95754947be2dad9c3e4b60f18ca4e44f"
integrity sha512-fsfrO0MxV64Znoy8/l1vVIjjHa29SZyyqPgQBwhiDcaW8wJc2W3XWVOGx4M3oJBnv/zdUZIIp1gDeS98GzP8Ng==
dependencies:
chalk "4.1.2"
rxjs "7.8.2"
shell-quote "1.8.3"
supports-color "8.1.1"
tree-kill "1.2.2"
yargs "17.7.2"
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
escalade@^3.1.1:
version "3.2.0"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
eslint-config-prettier@^10.1.8:
version "10.1.8"
resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#15734ce4af8c2778cc32f0b01b37b0b5cd1ecb97"
integrity sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==
eslint-plugin-prettier@^5.5.4:
version "5.5.4"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#9d61c4ea11de5af704d4edf108c82ccfa7f2e61c"
integrity sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==
dependencies:
prettier-linter-helpers "^1.0.0"
synckit "^0.11.7"
fast-diff@^1.1.2:
version "1.3.0"
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
has-flag@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
prettier-linter-helpers@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
dependencies:
fast-diff "^1.1.2"
prettier@^3.6.2:
version "3.7.4"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f"
integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
rxjs@7.8.2:
version "7.8.2"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
dependencies:
tslib "^2.1.0"
shell-quote@1.8.3:
version "1.8.3"
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b"
integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
supports-color@8.1.1:
version "8.1.1"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
dependencies:
has-flag "^4.0.0"
supports-color@^7.1.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
dependencies:
has-flag "^4.0.0"
synckit@^0.11.7:
version "0.11.11"
resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0"
integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==
dependencies:
"@pkgr/core" "^0.2.9"
tree-kill@1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
tslib@^2.1.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
string-width "^4.1.0"
strip-ansi "^6.0.0"
y18n@^5.0.5:
version "5.0.8"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
yargs@17.7.2:
version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
dependencies:
cliui "^8.0.1"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
string-width "^4.2.3"
y18n "^5.0.5"
yargs-parser "^21.1.1"