From da60294ed345beb19be08733366fc9c298e757a2 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan <79624807+SiddharthMadhavan@users.noreply.github.com> Date: Sun, 17 May 2026 14:53:59 +0300 Subject: [PATCH 01/19] Add requirements for FastAPI and related libraries --- requirements.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7d25fa8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,16 @@ +# Core Framework +fastapi==0.104.1 +uvicorn[standard]==0.47.0 +pydantic==2.13.4 +pydantic-settings==2.14.1 +# IBM WatsonX AI +ibm-watsonx-ai==1.5.11 + +# HTTP Client +httpx==0.27.0 + +# Environment Variables +python-dotenv==1.2.2 + +# Async Support +asyncio==4.0.0 From 9270503a8f759ba07385165d49a0a3c88d50fe26 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan <79624807+SiddharthMadhavan@users.noreply.github.com> Date: Sun, 17 May 2026 14:55:42 +0300 Subject: [PATCH 02/19] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 7d25fa8..b61eecc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ uvicorn[standard]==0.47.0 pydantic==2.13.4 pydantic-settings==2.14.1 # IBM WatsonX AI -ibm-watsonx-ai==1.5.11 +ibm-watsonx-ai # HTTP Client httpx==0.27.0 From 516b76a706ae9bb401554751e4dc91046ed9be55 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan <79624807+SiddharthMadhavan@users.noreply.github.com> Date: Sun, 17 May 2026 14:59:24 +0300 Subject: [PATCH 03/19] Update requirements.txt to remove version constraints Updated package versions in requirements.txt to latest. --- requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/requirements.txt b/requirements.txt index b61eecc..1f66f3c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,15 +2,15 @@ fastapi==0.104.1 uvicorn[standard]==0.47.0 pydantic==2.13.4 -pydantic-settings==2.14.1 +pydantic-settings # IBM WatsonX AI ibm-watsonx-ai # HTTP Client -httpx==0.27.0 +httpx # Environment Variables -python-dotenv==1.2.2 +python-dotenv # Async Support -asyncio==4.0.0 +asyncio From 00451a2908cee267670f30c6889addc99078dae2 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan <79624807+SiddharthMadhavan@users.noreply.github.com> Date: Sun, 17 May 2026 15:07:44 +0300 Subject: [PATCH 04/19] Update requirements.txt to use latest package versions Updated package versions in requirements.txt to latest. --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1f66f3c..a38c76c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ # Core Framework -fastapi==0.104.1 -uvicorn[standard]==0.47.0 -pydantic==2.13.4 +fastapi +uvicorn[standard] +pydantic pydantic-settings # IBM WatsonX AI ibm-watsonx-ai From b192015d09cab9856513635670fdb9a425016013 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan <79624807+SiddharthMadhavan@users.noreply.github.com> Date: Sun, 17 May 2026 15:11:04 +0300 Subject: [PATCH 05/19] Add Python version to runtime.txt --- runtime.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 runtime.txt diff --git a/runtime.txt b/runtime.txt new file mode 100644 index 0000000..546f3c8 --- /dev/null +++ b/runtime.txt @@ -0,0 +1 @@ +python-3.11.9 From 64f2aef3027b17303c0c31f0f54c23650c852c41 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:18:31 +0300 Subject: [PATCH 06/19] changes --- Procfile | 1 + backend/Dockerfile | 16 ++++++++++++++++ backend/Procfile | 1 + backend/render.yaml | 8 ++++++++ backend/requirements.txt | 3 +++ backend/runtime.txt | 1 + render.yaml | 11 +++++++++++ vscode-extension/package.json | 3 +++ 8 files changed, 44 insertions(+) create mode 100644 Procfile create mode 100644 backend/Dockerfile create mode 100644 backend/Procfile create mode 100644 backend/render.yaml create mode 100644 backend/runtime.txt create mode 100644 render.yaml diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..6d7cad6 --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: pip install -r backend/requirements.txt && cd backend && gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:$PORT --workers 4 diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..2a0a8ff --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.12-slim + +WORKDIR /app + +# Copy backend requirements +COPY backend/requirements.txt . + +# Install dependencies +RUN pip install --no-cache-dir -r requirements.txt + +# Copy the backend source +COPY backend/src ./src +COPY backend/.env* ./ + +# Run the app +CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "src.main:app", "--bind", "0.0.0.0:8000"] diff --git a/backend/Procfile b/backend/Procfile new file mode 100644 index 0000000..39db716 --- /dev/null +++ b/backend/Procfile @@ -0,0 +1 @@ +web: cd backend && gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:$PORT --workers 4 diff --git a/backend/render.yaml b/backend/render.yaml new file mode 100644 index 0000000..499ff7f --- /dev/null +++ b/backend/render.yaml @@ -0,0 +1,8 @@ +# This file should be moved to repo root or use web service dashboard +# services: +# - type: web +# name: reposense-backend +# root: backend +# env: python +# buildCommand: pip install -r requirements.txt +# startCommand: gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:$PORT --workers 4 diff --git a/backend/requirements.txt b/backend/requirements.txt index 7d25fa8..714b3ab 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -14,3 +14,6 @@ python-dotenv==1.2.2 # Async Support asyncio==4.0.0 + +# Production WSGI server for Render +gunicorn==22.1.0 diff --git a/backend/runtime.txt b/backend/runtime.txt new file mode 100644 index 0000000..44f8fbe --- /dev/null +++ b/backend/runtime.txt @@ -0,0 +1 @@ +python-3.12.0 diff --git a/render.yaml b/render.yaml new file mode 100644 index 0000000..996d45e --- /dev/null +++ b/render.yaml @@ -0,0 +1,11 @@ +services: + - type: web + name: reposense-backend + env: python + pythonVersion: 3.12 + root: backend + buildCommand: pip install -r requirements.txt + startCommand: gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:$PORT --workers 4 + envVars: + - key: PYTHON_VERSION + value: 3.12 diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 394213b..a56b959 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -79,6 +79,7 @@ "scripts": { "vscode:prepublish": "npm run compile", "compile": "tsc -p ./", + "package": "vsce package", "watch": "tsc -watch -p ./", "pretest": "npm run compile && npm run lint", "lint": "eslint src --ext ts" @@ -91,6 +92,8 @@ "@typescript-eslint/parser": "^5.45.0", "eslint": "^8.28.0", "typescript": "^4.9.3" + , + "vsce": "^2.0.0" }, "dependencies": { "node-fetch": "^2.7.0" From 24f31d5b2e80a9eaa10f7306543926df7f4a5baa Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:22:42 +0300 Subject: [PATCH 07/19] Ch --- backend/Dockerfile | 7 +++++-- render.yaml | 11 +++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 2a0a8ff..46cce58 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -12,5 +12,8 @@ RUN pip install --no-cache-dir -r requirements.txt COPY backend/src ./src COPY backend/.env* ./ -# Run the app -CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "src.main:app", "--bind", "0.0.0.0:8000"] +# Expose port (Render will pass PORT env var at runtime) +EXPOSE 8000 + +# Run the app (Render sets PORT, defaults to 8000) +CMD ["sh", "-c", "gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:${PORT:-8000} --workers 4"] diff --git a/render.yaml b/render.yaml index 996d45e..840c6ca 100644 --- a/render.yaml +++ b/render.yaml @@ -1,11 +1,6 @@ services: - type: web name: reposense-backend - env: python - pythonVersion: 3.12 - root: backend - buildCommand: pip install -r requirements.txt - startCommand: gunicorn -k uvicorn.workers.UvicornWorker src.main:app --bind 0.0.0.0:$PORT --workers 4 - envVars: - - key: PYTHON_VERSION - value: 3.12 + env: docker + dockerfilePath: ./backend/Dockerfile + envVars: [] From cd79aafacced7420d11788fb159ba2e156344ffc Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:25:59 +0300 Subject: [PATCH 08/19] Ch --- backend/Dockerfile | 12 ++++++------ render.yaml | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index 46cce58..32c3a2a 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -2,17 +2,17 @@ FROM python:3.12-slim WORKDIR /app -# Copy backend requirements -COPY backend/requirements.txt . +# Copy requirements (Render's root is set to backend/) +COPY requirements.txt . # Install dependencies RUN pip install --no-cache-dir -r requirements.txt -# Copy the backend source -COPY backend/src ./src -COPY backend/.env* ./ +# Copy the source +COPY src ./src +COPY .env* ./ -# Expose port (Render will pass PORT env var at runtime) +# Expose port EXPOSE 8000 # Run the app (Render sets PORT, defaults to 8000) diff --git a/render.yaml b/render.yaml index 840c6ca..e49fb60 100644 --- a/render.yaml +++ b/render.yaml @@ -2,5 +2,6 @@ services: - type: web name: reposense-backend env: docker - dockerfilePath: ./backend/Dockerfile + root: backend + dockerfilePath: ./Dockerfile envVars: [] From 06ffe8ddba7a4ce6f3f0b8def8a95f6bc61d6b7e Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:27:14 +0300 Subject: [PATCH 09/19] Ch --- backend/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 714b3ab..8c59d5c 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -16,4 +16,4 @@ python-dotenv==1.2.2 asyncio==4.0.0 # Production WSGI server for Render -gunicorn==22.1.0 +gunicorn==22.0.0 From b179e69323fa94848141b190ad082cab22d943a8 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:40:20 +0300 Subject: [PATCH 10/19] Show setup when backend unavailable; improve 404 error message for /analyze --- vscode-extension/src/SidebarProvider.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vscode-extension/src/SidebarProvider.ts b/vscode-extension/src/SidebarProvider.ts index 255be0c..e9e3625 100644 --- a/vscode-extension/src/SidebarProvider.ts +++ b/vscode-extension/src/SidebarProvider.ts @@ -174,7 +174,8 @@ export class SidebarProvider implements vscode.WebviewViewProvider { switch (data.type) { case 'ready': { const status = await this._checkBackendConfig(); - if (status === 'not_configured') { + // If the backend is not configured or unavailable, show setup/dashboard + if (status !== 'configured') { webviewView.webview.postMessage({ type: 'setup' }); return; } @@ -331,6 +332,10 @@ export class SidebarProvider implements vscode.WebviewViewProvider { if (!response.ok) { const errorText = await response.text(); + // Provide more actionable error for 404s (likely wrong backend URL or missing endpoint) + if (response.status === 404) { + throw new Error(`HTTP 404: Endpoint not found. Check that the backend URL is correct and the server exposes /analyze.`); + } throw new Error(`HTTP error! status: ${response.status}, message: ${errorText}`); } From e579536f0a7e2fcc09398261c2ef58be80992dbd Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:52:27 +0300 Subject: [PATCH 11/19] m --- backend/src/config.py | 13 + backend/src/main.py | 2 +- backend/src/orchestrate_client.py | 4 + vscode-extension/LICENSE | 21 + vscode-extension/RELEASE_NOTES.md | 248 ++++ vscode-extension/out/SidebarProvider.js | 82 +- vscode-extension/out/SidebarProvider.js.map | 2 +- vscode-extension/package-lock.json | 1391 ++++++++++++++++++- vscode-extension/package.json | 6 +- vscode-extension/reposense-1.0.0.vsix | Bin 0 -> 209609 bytes vscode-extension/src/SidebarProvider.ts | 88 +- 11 files changed, 1791 insertions(+), 66 deletions(-) create mode 100644 vscode-extension/LICENSE create mode 100644 vscode-extension/RELEASE_NOTES.md create mode 100644 vscode-extension/reposense-1.0.0.vsix diff --git a/backend/src/config.py b/backend/src/config.py index 5b60598..a64cd68 100644 --- a/backend/src/config.py +++ b/backend/src/config.py @@ -140,6 +140,19 @@ def is_configured(self) -> bool: settings = Settings() # type: ignore[call-arg] +def reload_settings() -> Settings: + """ + Reload configuration from environment and update the shared settings object in place. + + This preserves object identity so modules that imported `settings` continue + to see fresh values after `/config/setup` updates. + """ + new_settings = Settings() # type: ignore[call-arg] + for key, value in new_settings.model_dump().items(): + setattr(settings, key, value) + return settings + + # Constants PROGRESS_STEPS = [ "Parsing codebase", diff --git a/backend/src/main.py b/backend/src/main.py index 89be3ca..a4cdf5e 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -336,7 +336,7 @@ async def config_setup(body: ConfigSetupRequest): encoding="utf-8" ) - config_module.settings = config_module.Settings() + config_module.reload_settings() missing = config_module.settings.missing_fields() return { diff --git a/backend/src/orchestrate_client.py b/backend/src/orchestrate_client.py index 56af66e..98fb2a0 100644 --- a/backend/src/orchestrate_client.py +++ b/backend/src/orchestrate_client.py @@ -41,6 +41,10 @@ def __init__(self): async def _get_iam_token(self) -> str: """Exchange IBM Cloud API key for an IAM Bearer token, refreshing when near expiry.""" + if not self.api_key or not self.api_key.strip(): + raise ValueError( + "ORCHESTRATE_API_KEY is missing or empty. Open RepoSense setup and save your Orchestrate API key." + ) if self._iam_token and time.time() < self._iam_token_expiry - 60: return self._iam_token async with httpx.AsyncClient(timeout=30) as client: diff --git a/vscode-extension/LICENSE b/vscode-extension/LICENSE new file mode 100644 index 0000000..14fac91 --- /dev/null +++ b/vscode-extension/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vscode-extension/RELEASE_NOTES.md b/vscode-extension/RELEASE_NOTES.md new file mode 100644 index 0000000..44f61c6 --- /dev/null +++ b/vscode-extension/RELEASE_NOTES.md @@ -0,0 +1,248 @@ +# RepoSense VS Code Extension - Release Notes + +## Version 1.0.0 - May 17, 2026 + +### Release Overview + +RepoSense 1.0.0 is the first stable release of the RepoSense VS Code extension, now fully integrated with a cloud-deployed backend service. This release enables repository analysis and health scoring directly from VS Code with real-time progress tracking. + +### What's New + +- **Cloud-Deployed Backend**: Backend service now runs on Render at `https://bits-and-bobs-deployment-1.onrender.com` +- **No Local Setup Required**: Simply install the extension and start analyzing workspaces +- **Real-Time Progress Updates**: Watch analysis progress as it happens with step-by-step status +- **Comprehensive Health Scoring**: Get detailed repository health metrics including: + - Code quality score + - Security assessment + - Documentation coverage + - Architecture analysis + - Top priority recommendations +- **WebView Sidebar**: Dedicated sidebar panel for analysis results and configuration +- **Configurable Backend URL**: Option to override backend URL for custom deployments + +### Installation + +#### Option A: Install from VSIX File (Recommended for Testing) + +1. Download the `reposense-1.0.0.vsix` file from the release assets +2. Open Visual Studio Code +3. Press `Ctrl+Shift+X` (Windows/Linux) or `Cmd+Shift+X` (Mac) to open Extensions +4. Click the `...` menu at the top of the Extensions panel +5. Select **"Install from VSIX..."** +6. Navigate to and select `reposense-1.0.0.vsix` +7. VS Code will install the extension and reload + +#### Option B: Install from VS Code Marketplace (When Published) + +Coming soon! The extension will be published to the official VS Code Marketplace, allowing one-click installation directly from VS Code. + +### Quick Start + +1. **Open the RepoSense Sidebar**: + - Click the RepoSense icon in the Activity Bar (left sidebar) + - A new panel titled "RepoSense" will appear + +2. **Configure Backend (First Time Only)**: + - If the backend is not yet configured, you'll see a setup screen + - Enter your credentials for IBM WatsonX and Orchestrate (these are used by the backend for AI analysis) + - Click "Save Configuration" + +3. **Analyze Your Workspace**: + - Click "Analyze Workspace" button + - The extension will send your workspace folder to the Render backend + - Watch real-time progress updates: + - ✓ Parser complete + - ✓ Architect complete + - ✓ Code Review complete + - ✓ Documentation complete + - ✓ Security Hardening complete + - Results will display automatically when analysis completes + +4. **View Results**: + - **Health Score**: Overall repository health (0-100) with letter grade (A-F) + - **Score Breakdown**: Detailed metrics for quality, security, documentation, and architecture + - **Top Priorities**: Key recommendations to improve repository health + - **Full Analysis**: Click "Open Full Report" to see comprehensive analysis details + +### Backend Service Details + +The RepoSense backend runs on **Render** (PaaS platform) at: +``` +https://bits-and-bobs-deployment-1.onrender.com +``` + +#### Supported Endpoints + +- `POST /analyze` - Start a new codebase analysis +- `GET /jobs/{job_id}` - Check analysis status and retrieve results +- `DELETE /jobs/{job_id}` - Delete an analysis job +- `GET /config/status` - Check backend configuration status +- `POST /config/setup` - Configure backend credentials +- `POST /cleanup` - Manually trigger cleanup of old analysis jobs + +#### Backend Features + +- **Asynchronous Processing**: Long-running analyses run in background tasks +- **Job Management**: Automatic cleanup of old jobs (>24 hours) +- **Concurrent Job Limits**: Default limit of 5 concurrent analyses +- **CORS Support**: Backend accepts requests from any origin +- **Path Validation**: Secure path validation prevents unauthorized filesystem access + +#### Technology Stack + +- **Framework**: FastAPI 0.104.1 +- **Server**: Uvicorn + Gunicorn (4 workers on Render) +- **AI Integration**: IBM WatsonX AI 1.5.11 +- **Process Orchestration**: Orchestrate AI platform +- **Deployment**: Render (Docker container, Python 3.12) + +### Configuration + +#### Extension Settings + +Access via VS Code: `File → Preferences → Settings → Search "reposense"` + +- **`reposense.backendUrl`** (default: `https://bits-and-bobs-deployment-1.onrender.com`) + - The backend API server URL + - Change this if running a custom backend deployment + +- **`reposense.requestTimeoutMs`** (default: `30000`) + - HTTP request timeout in milliseconds + - Increase if analyses are timing out + +- **`reposense.pollingIntervalMs`** (default: `2000`) + - How often to poll backend for job status (milliseconds) + - Lower = more frequent updates (higher bandwidth/CPU) + +### Usage Scenarios + +#### Scenario 1: Repository Health Check +``` +1. Open a workspace in VS Code +2. Click RepoSense in Activity Bar +3. Click "Analyze Workspace" +4. Wait for analysis (~2-5 minutes depending on repo size) +5. Review health score and recommendations +``` + +#### Scenario 2: Pre-Commit Quality Gate +``` +Use the health score to ensure code quality before pushing: +- If score < 70, review top priorities before committing +- If score >= 80, proceed with confidence +``` + +#### Scenario 3: Technical Debt Assessment +``` +1. Analyze workspace quarterly +2. Track health score trends +3. Use top priorities to guide refactoring work +``` + +### Architecture + +``` +┌─────────────────────────────────────────┐ +│ VS Code Extension (Webview Sidebar) │ +│ │ +│ - User Interface │ +│ - Job Polling │ +│ - Results Display │ +└──────────────────┬──────────────────────┘ + │ HTTPS + ↓ +┌─────────────────────────────────────────┐ +│ Render Backend (Cloud Deployed) │ +│ https://bits-and-bobs-deployment... │ +│ │ +│ - FastAPI Server │ +│ - Job Management │ +│ - Analysis Orchestration │ +│ - WatsonX AI Integration │ +│ - Orchestrate Process Execution │ +└──────────────────┬──────────────────────┘ + │ (async background tasks) + ↓ +┌─────────────────────────────────────────┐ +│ Analysis Pipeline (on Backend) │ +│ │ +│ 1. Parser - Extract code structure │ +│ 2. Architect - Analyze architecture │ +│ 3. Reviewer - AI code review │ +│ 4. Documenter - Generate docs │ +│ 5. Hardener - Security analysis │ +└─────────────────────────────────────────┘ +``` + +### Performance & Limitations + +- **Analysis Time**: 2-5 minutes depending on repository size +- **Concurrent Jobs**: Max 5 per backend instance +- **Free Tier**: Render free tier is used; may experience cold starts (first request slower) +- **Workspace Size**: Works best with codebases < 1 GB +- **Supported Languages**: Python, TypeScript, JavaScript (extensible) + +### Troubleshooting + +#### Issue: "Backend unreachable" +- **Cause**: Render service may be in cold start or down +- **Solution**: Wait 30 seconds and retry; check https://bits-and-bobs-deployment-1.onrender.com in browser + +#### Issue: "Configuration incomplete" +- **Cause**: WatsonX or Orchestrate API keys not set on backend +- **Solution**: + 1. Contact backend administrator to configure credentials + 2. Or configure via Settings panel if you have backend credentials + +#### Issue: Analysis takes very long +- **Cause**: Large repository or backend overloaded +- **Solution**: + - Increase `reposense.requestTimeoutMs` setting + - Try analyzing a smaller workspace + - Wait and retry (backend may be processing other jobs) + +#### Issue: "Maximum concurrent jobs exceeded" +- **Cause**: Too many analyses running on backend +- **Solution**: Wait for other analyses to complete; Render cleans up old jobs automatically + +### Known Limitations + +- Extension only supports analyzing a single workspace folder +- Backend must be configured with WatsonX and Orchestrate API keys +- Analyses are retained for 24 hours on backend, then auto-deleted +- Cannot cancel running analyses from UI (will auto-complete or timeout) +- Repository credentials/secrets are never sent to backend; only code structure is analyzed + +### Future Roadmap + +- Multi-workspace analysis support +- Analysis history and trends tracking +- Custom rule configuration for code quality +- Local backend option (Docker container) +- Integration with GitHub Actions for CI/CD +- Detailed code visualization and navigation +- Performance benchmarking and profiling tools + +### Feedback & Support + +- **Report Issues**: GitHub Issues (when repo is public) +- **Feature Requests**: GitHub Discussions or email +- **Documentation**: See [README.md](README.md) for additional information + +### Technical Support + +For backend deployment questions or custom setups, refer to: +- Backend docs: `backend/README.md` (in repository) +- Render documentation: https://render.com/docs +- FastAPI docs: https://fastapi.tiangolo.com +- Extension development: https://code.visualstudio.com/api + +### License + +MIT License - See [LICENSE](LICENSE) file for details + +--- + +**Happy Analyzing! 🎉** + +For the best experience, ensure your workspace is committed to Git and has a clear project structure. diff --git a/vscode-extension/out/SidebarProvider.js b/vscode-extension/out/SidebarProvider.js index 1ba38f9..624c6c6 100644 --- a/vscode-extension/out/SidebarProvider.js +++ b/vscode-extension/out/SidebarProvider.js @@ -31,6 +31,7 @@ const vscode = __importStar(require("vscode")); const node_fetch_1 = __importDefault(require("node-fetch")); const config_1 = require("./config"); const fs = __importStar(require("fs")); +const path = __importStar(require("path")); class SidebarProvider { constructor(_extensionUri, _statusBarItem) { this._extensionUri = _extensionUri; @@ -40,6 +41,7 @@ class SidebarProvider { // Cache — keyed per workspace folder path this._cachedResult = null; this._cachedWorkspacePath = null; + this._activeAnalysisPath = null; } triggerAnalysis(force = false) { this._analyzeWorkspace(force); @@ -59,7 +61,8 @@ class SidebarProvider { switch (data.type) { case 'ready': { const status = await this._checkBackendConfig(); - if (status === 'not_configured') { + // If the backend is not configured or unavailable, show setup/dashboard + if (status !== 'configured') { webviewView.webview.postMessage({ type: 'setup' }); return; } @@ -161,23 +164,25 @@ class SidebarProvider { } } async _analyzeWorkspace(force = false) { - const workspaceFolders = vscode.workspace.workspaceFolders; - if (!workspaceFolders || workspaceFolders.length === 0) { + const analysisPath = await this._resolveAnalysisPath(); + if (!analysisPath) { this._statusBarItem.text = '$(error) RepoSense: Error'; if (this._view) { this._view.webview.postMessage({ type: 'error', - message: 'No workspace folder open' + message: 'No valid folder selected for analysis' }); } return; } - const workspacePath = workspaceFolders[0].uri.fsPath; // Clear cache when switching folders - if (workspacePath !== this._cachedWorkspacePath) { + if (analysisPath !== this._cachedWorkspacePath) { this._cachedResult = null; } + this._activeAnalysisPath = analysisPath; try { + const config = (0, config_1.getConfig)(); + this._ensureBackendCanAccessPath(config.backendUrl, analysisPath); // Send initial status if (this._view) { this._view.webview.postMessage({ @@ -194,18 +199,24 @@ class SidebarProvider { message: 'Starting analysis...' }); } - const config = (0, config_1.getConfig)(); // Send POST request to start analysis const response = await (0, node_fetch_1.default)(`${config.backendUrl}/analyze`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ local_path: workspacePath }), + body: JSON.stringify({ local_path: analysisPath }), timeout: config.requestTimeoutMs }); if (!response.ok) { const errorText = await response.text(); + // Provide more actionable error for 404s (likely wrong backend URL or missing endpoint) + if (response.status === 404) { + throw new Error(`HTTP 404: Endpoint not found. Check that the backend URL is correct and the server exposes /analyze.`); + } + if (response.status === 400 && errorText.includes('Path does not exist')) { + throw new Error(`HTTP 400: Selected analysis path does not exist on this machine (${analysisPath}). Please choose an existing folder and retry.`); + } throw new Error(`HTTP error! status: ${response.status}, message: ${errorText}`); } const data = await response.json(); @@ -225,6 +236,59 @@ class SidebarProvider { } } } + async _resolveAnalysisPath() { + const workspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + if (workspacePath && this._isExistingDirectory(workspacePath)) { + return workspacePath; + } + const activeEditorPath = vscode.window.activeTextEditor?.document.uri.fsPath; + if (activeEditorPath) { + const fallbackFolder = this._isExistingDirectory(activeEditorPath) + ? activeEditorPath + : path.dirname(activeEditorPath); + if (this._isExistingDirectory(fallbackFolder)) { + return fallbackFolder; + } + } + const picked = await vscode.window.showOpenDialog({ + canSelectFiles: false, + canSelectFolders: true, + canSelectMany: false, + openLabel: 'Select Folder to Analyze' + }); + return picked?.[0]?.fsPath ?? null; + } + _isExistingDirectory(targetPath) { + try { + return fs.existsSync(targetPath) && fs.statSync(targetPath).isDirectory(); + } + catch { + return false; + } + } + _ensureBackendCanAccessPath(backendUrl, analysisPath) { + const host = this._getBackendHost(backendUrl); + if (!host) { + return; + } + const isLocalBackend = host === 'localhost' || host === '127.0.0.1' || host === '::1'; + if (isLocalBackend) { + return; + } + const isLikelyLocalFilesystemPath = path.isAbsolute(analysisPath); + if (isLikelyLocalFilesystemPath) { + throw new Error(`Backend URL ${backendUrl} is remote and cannot access local path ${analysisPath}. ` + + 'Set reposense.backendUrl to http://localhost:8000 (or run the backend where this path exists).'); + } + } + _getBackendHost(backendUrl) { + try { + return new URL(backendUrl).hostname.toLowerCase(); + } + catch { + return null; + } + } _startPolling(jobId) { // Clear any existing polling interval if (this._pollingInterval) { @@ -302,7 +366,7 @@ class SidebarProvider { } // Store in cache this._cachedResult = result; - this._cachedWorkspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? null; + this._cachedWorkspacePath = this._activeAnalysisPath; this._view.webview.postMessage({ type: 'results', data: result }); this._statusBarItem.text = `$(graph) RepoSense: Score ${result.score.score}/100`; vscode.window.showInformationMessage(`RepoSense: Analysis complete — Score ${result.score.score}/100`, 'View Details').then((selection) => { diff --git a/vscode-extension/out/SidebarProvider.js.map b/vscode-extension/out/SidebarProvider.js.map index 254d167..d0baad7 100644 --- a/vscode-extension/out/SidebarProvider.js.map +++ b/vscode-extension/out/SidebarProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/vscode-extension/package-lock.json b/vscode-extension/package-lock.json index 400e4fa..6893faa 100644 --- a/vscode-extension/package-lock.json +++ b/vscode-extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "reposense", - "version": "0.0.1", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "reposense", - "version": "0.0.1", + "version": "1.0.0", "dependencies": { "node-fetch": "^2.7.0" }, @@ -17,7 +17,8 @@ "@typescript-eslint/eslint-plugin": "^5.45.0", "@typescript-eslint/parser": "^5.45.0", "eslint": "^8.28.0", - "typescript": "^4.9.3" + "typescript": "^4.9.3", + "vsce": "^2.0.0" }, "engines": { "vscode": "^1.74.0" @@ -494,6 +495,17 @@ "dev": true, "license": "MIT" }, + "node_modules/azure-devops-node-api": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -501,6 +513,46 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", @@ -525,6 +577,41 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -539,6 +626,23 @@ "node": ">= 0.4" } }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -566,6 +670,57 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cheerio": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.2.0.tgz", + "integrity": "sha512-WDrybc/gKFpTYQutKIK6UvfcuxijIZfMfXaYm8NMsPQxSYvf+13fXUJ4rztGGbJcBQ/GF55gvrZ0Bc0bj/mqvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "encoding-sniffer": "^0.2.1", + "htmlparser2": "^10.1.0", + "parse5": "^7.3.0", + "parse5-htmlparser2-tree-adapter": "^7.1.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^7.19.0", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=20.18.1" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -599,6 +754,16 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -621,6 +786,36 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -639,6 +834,32 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -656,6 +877,16 @@ "node": ">=0.4.0" } }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -682,6 +913,65 @@ "node": ">=6.0.0" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -697,6 +987,43 @@ "node": ">= 0.4" } }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -954,6 +1281,16 @@ "node": ">=0.10.0" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "engines": { + "node": ">=6" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -1015,6 +1352,16 @@ "reusify": "^1.0.4" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -1097,6 +1444,13 @@ "node": ">= 6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -1153,6 +1507,13 @@ "node": ">= 0.4" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT" + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1297,62 +1658,149 @@ "node": ">= 0.4" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, "engines": { - "node": ">= 4" + "node": ">=10" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/htmlparser2": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.1.0.tgz", + "integrity": "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==", "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.2.2", + "entities": "^7.0.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=6" + "node": ">=0.12" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=0.8.19" + "node": ">=0.10.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true, "license": "ISC" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -1437,6 +1885,18 @@ "dev": true, "license": "MIT" }, + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -1447,6 +1907,16 @@ "json-buffer": "3.0.1" } }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -1461,6 +1931,16 @@ "node": ">= 0.8.0" } }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -1484,6 +1964,46 @@ "dev": true, "license": "MIT" }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -1494,6 +2014,13 @@ "node": ">= 0.4" } }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1518,6 +2045,19 @@ "node": ">=8.6" } }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -1541,6 +2081,19 @@ "node": ">= 0.6" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", @@ -1554,6 +2107,23 @@ "node": "*" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -1561,6 +2131,20 @@ "dev": true, "license": "MIT" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true, + "license": "ISC" + }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "dev": true, + "license": "MIT" + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -1575,6 +2159,26 @@ "dev": true, "license": "MIT" }, + "node_modules/node-abi": { + "version": "3.92.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.92.0.tgz", + "integrity": "sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true, + "license": "MIT" + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -1595,6 +2199,32 @@ } } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -1668,6 +2298,79 @@ "node": ">=6" } }, + "node_modules/parse-semver": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", + "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.1.0" + } + }, + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -1708,6 +2411,13 @@ "node": ">=8" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, "node_modules/picomatch": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", @@ -1721,6 +2431,34 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -1731,6 +2469,17 @@ "node": ">= 0.8.0" } }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -1741,6 +2490,22 @@ "node": ">=6" } }, + "node_modules/qs": { + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -1762,16 +2527,70 @@ ], "license": "MIT" }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -1824,6 +2643,44 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/semver": { "version": "7.8.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.0.tgz", @@ -1860,6 +2717,129 @@ "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -1870,6 +2850,16 @@ "node": ">=8" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1909,6 +2899,36 @@ "node": ">=8" } }, + "node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -1916,6 +2936,16 @@ "dev": true, "license": "MIT" }, + "node_modules/tmp": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -1958,6 +2988,29 @@ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -1984,6 +3037,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, "node_modules/typescript": { "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", @@ -1998,6 +3063,30 @@ "node": ">=4.2.0" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/underscore": { + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", + "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.25.0.tgz", + "integrity": "sha512-xXnp4kTyor2Zq+J1FfPI6Eq3ew5h6Vl0F/8d9XU5zZQf1tX9s2Su1/3PiMmUANFULpmksxkClamIZcaUqryHsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -2008,12 +3097,174 @@ "punycode": "^2.1.0" } }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vsce": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", + "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", + "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", + "dev": true, + "license": "MIT", + "dependencies": { + "azure-devops-node-api": "^11.0.1", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "commander": "^6.1.0", + "glob": "^7.0.6", + "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", + "leven": "^3.1.0", + "markdown-it": "^12.3.2", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^5.1.0", + "tmp": "^0.2.1", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.4.23", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/vsce/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/vsce/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vsce/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/vsce/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/vsce/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "license": "BSD-2-Clause" }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -2057,6 +3308,58 @@ "dev": true, "license": "ISC" }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/vscode-extension/package.json b/vscode-extension/package.json index a56b959..efc2453 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -2,7 +2,11 @@ "name": "reposense", "displayName": "RepoSense", "description": "Analyze workspace repositories and get health scores", - "version": "0.0.1", + "version": "1.0.0", + "repository": { + "type": "git", + "url": "https://github.com/yourusername/bits-and-bobs-deployment.git" + }, "engines": { "vscode": "^1.74.0" }, diff --git a/vscode-extension/reposense-1.0.0.vsix b/vscode-extension/reposense-1.0.0.vsix new file mode 100644 index 0000000000000000000000000000000000000000..7750e9ea63ece92dd49ccbac5459e659b52d053d GIT binary patch literal 209609 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�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°K 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ⅈ4-*U@0_P@aU;xk*HaDNKwhd_r=( zYz%mYJE8>wA&1idun%~Ci4{1XO9dpR1IVw?1AV|ue>Q{!uL)5n()6nBQ_RQzIoakP zqQ^?iC`tLLj2IYb@`eq{ru_x~z-<9l$Wj1nM``?BN^`4rL{Pa^2Z49xJqqDNJZ zJRUIqyY?>%q7WvJYm#&UBgT`RG7?Klt29@(vGM^e4NQtGvp zLj~WkVtDx;TwfBV6*^K`y8q7K)J_myE3%L6&up8w-{t}yLQJu|DjXY>>cT1?F+Q z&+6_hV^76dZKJ5)%wXKKu9^zEEo0U96NRJ2-UM`R%vISHsSqyf$b=}?m?g4HYKlL1)~rpuE{QD(WFJm zqlzGFtkR&&;=2d5`H1P2{$YxNI*ZfP^NiYl&hZ0iad<+GWwxTUaEXlNnyS^IL6cbY zFzr}l4ct4<{)LSwQSs?f`;DvgQs~^i)-K>MWZ>WTcy=4#z`#PR+@Er*)Di>y#i-?y z5bp)zChSW>w{M6bGKo`!2sg4YJlHQUV80lHX6{nU2vvST9b_XLOz?T8PTyGcx)a}8 zc~wL&GD|PATyYM!&Td2k^^R$q9lz@H$wZH;CX%-qG41UBdB?f=%AC+QHj0y8&+YM$ zWra7UGWwQn!b!zdoHb>b@-;smm?3npjf9FJl=k}ojn~BC&4KEN;m|F~y%97sDPx%6 z$V3#@6=wo3n>5F~?5ttAq=&Y0A=(s-0AEv*%X|Ex(H9%m{KhJF?!FQXuwS~IL|9Eq z9`qOc?CcgR9gB^|Di;ec=i<^;rqYqCRhq_xk*gKUvJO-O4yQ*gW6KZK8suG7S9}eg z6N&KZ)t>O zSZxTg2qCLY+*6c;@mt_gFSCGiJi$m68ZlrFJ_ioPD&$Vs&BEpW4*aG#e;$!y@ps|D z{j<k3UJ@Mv8f zc_UZIYoa&iHO;tVQLbaL+woT)zEWF_**67zJru%UR2x)eicNK&=qNG7Wt+D~<9bDj@@kta zM7*9Qcpm;T4|ul3PJuVOoj_tsVu+(A_O&=g)1(VtyE}25$p*~&i_}4E! zXvQk2d!H2#&2Jco<9c^zZ<4*5y(75fezfq}UKl1SP-Olmi5?Q!+9_?>-N~2}ML73Rb zCEE1E!z{OOH0yA;)4I5j{ZN#QNWmpwICdcG+l=&{J^0%QDns_iw0l+)(8z-9)u8zMAJ>p74&n~dNV=~*VMq_fS9&Mce{dvu|0q>b} zvAy29NI3&}9_%+?kK69gadGCn9!%cCAO+|%gH+*MS?DvvRFPbH=rbct;aoZBGc*km zL*pJh10AF&TET2IFCEa)5K*)mK{d!vwq%|rn{4FLi^O{J=o^W*lor5K{#>?P%qHbZ~}0YL0IMo00$-T zhg>vAJW?1w98{Izh(~C(pnc*sDlB<5^aL%c0O(M7%>aRt5fTt#tFcfSb*HR>D%>=NS!rciRlIs7;{IuYNk056o20c zK2jM`Qr@^=lZcLv#Uol7 zH?pL=kVD#mAs;1inx;Cv2n9#noI?hWDr(s31Dz~k+O+7~)X(DoE_gnRIfo2bCBf>z z#Q;&Ebx0uUPf8ee*pl+<1;bV_1At9S4#cAs&H4!$44BM00ya%K20v59WkPbnB>+*+ z)t~&1Xr4?z7$NAK8SkmqjX?CseM#3-FTCCVDYRFg{2jkVbU1t^-pa*;hVU_>|G!bKP8W3iN^EP7fSUDLoF_^Q z^2r=Qkr3sUB7VSTA;$tFzen^XS70zu+=mf>>YRliKy{O2;iOLy2)m1H6{ap#qT-N2 zrvi?u)yhx&Lc{jKVs}8(c}Z@ccP}i4OD0gBH-BSfA~!K+x8cxY{pK^sDY|5BlXy^< zGTp)v-K+vzj=eF2bruPYYIc0_H&6DMe3vX`)2%5noxM0*maNFuNLX&7Wl0MWwlgbw zG8g50`La9`eu{UQx*|O8qHEj(A&x)8Ivf(vrwIUCMc%Ek=(rSzszDSIZ(7KH2DT72 zkXM{FTLCN0k^wIjv@fHP$uE-jwkMOzBZPGu9T!Mb zIvd6f_I*(j1eh+ZrTH<^%>Cj_JlPJ6LKXNm=E7~Zbe`r{VI5lZ4Ywf!lR@lb$Fg@^ z4z(P~vU;Tg&$(d&8PGzcui>EG3TZyp%vRaiu7pdGc zpP)OR$UaRcGX}L(fSzUgbSPEW#f+l}6mdd?iSMcLTG`?OwAHgL5n+~;7 zAd8Y|#WM~<9I?*x6Kr-N#TH$fIl(Xby_$%)-I{EK9x`j)xlawMoE9l0m|1j?Q%$>iY+f2BAmdag`%6*DI&Rcldb@IL)3F$uuG6?p0%udEd?VuK{?}KOJ-GP! zLFE8sit6Md7#vY^`W5U6Q~L0EY2*NQ_+x4!hL;KfcTxy4!0vK8gQ_H6_~T1>8B3Kl zUm%10@B3e@g%g|f;WvXgFs$&$RAEs%x4?=TC!JUc-lh-OgqWm3JU7zDZOx6E=O280qvIL)y__ffRLs+v5 zj@1D0WOf+l@=AG~L&K^UPAuD$kXj*%PNgR$tMP$Y7B{Uz)F9RQ<+7d7+D%W~fb@Bg zl)AESwQwOIJpLOo@k$;!TLCw%3@#$EY*=KZ{vHRmm?)sLkf=XktHW?2YQx*nkl9ka z%pO08{jc!&gTnuaH1V>lU{1O0`2ENSkX-s7@!^k1h)*>Yg{K;jlx59_Ni+ph5wQ?H zA!BA)h^?oGTT0wG0b9=~A*$y~LjgUY0M8LD~xA_~%L^E*AB&no)dOWu>;1e!RY=0TZ z4hSYdc>EETe}tC!y8j~NON->4S7}#JeE2uzU}Q?1_+7NbFfbLxcOoimDOu5cHd%^< z%@N-?0G&ZP2m^amlNCydCbU2}Q-s&c!3;==JyVGnbX1P-Q3c0ks)AYYfNwB7DOs_9 zF%?3HluAx;-3g_ug7-3jGO{L|LlQriB5~r2%X9`i3?B(Pp2hdD)WZ%8NF=n)VNMiM zN*Np?dVGz)*Tn>B3a9VcBLwjeNSd=I06#7RxL}2|O~GtLwB+N(9S=~#At|43cFZ)l zq{PpDnVWn|jN058>5HQ#8W_unCRbohnEWHsqJYXqnNm>#)uT)skOc8SG6F-EHR0b( zJgr(pXJE?z5bc1{lrjz04k&tzDMkZOZQ%r-HCGT1veYP(YY6`h@Qy1$?EMk*NUNzj zA=8_b-U@cWPo&tNM-670aspi`KRy_7+#s#`{4q`+JrcNHwoLqD_WaFMs$k?3uiWmE z4!4INsoDt>i5_R{=Vxdz##eZ3GNM94VmN#{SN}3CMKq#Rr<1ZaYnzBpRC&=dJ5Lz= z1R|;b3N-=+VX2a0y6K<2FIE<&Hjj zgrNKZ@BVGwO~Kfy0{ zGo>Htyb3^MMd`nR|CydzBT!K5eO@^&)rR7V$s~Z@zW{g}2w?wKtoM;N5@Dg{fZgo7 zV1_GcF$1ybWJPz97_7~LOX^pPcXBEfQuT&}nSeoeG6|@pESkIuK6-`aAV*H$_*#0g zE?XBA5y!`sr&ho@$U1#{Dm3n$++^l0P(#2Cs38ytsUhuC4OO0MSo~B&xhIm42%xxs zBhppKfa=OQ?Tbit6i)-h18uZl16;?S0IaR{Ygq{K=_iufd;oxC?s?V00c5j-hIHwG z3gI2z2Q|ySm2QFdPcTv%3(<{~Vv_zyFXp)*2dJ@s6aea!?g$J#i1+`Ha~P7#32We3mEv z5CG)=EB^nk=8ffGz7XdKFqQz8zUf~ra^*5Yf%`vS;{n`j|33gyg$DS4sp%70$g}~9 z1erFpPjd*kX%Y|}P==VNdxr(w?Z5Z#&t3hWOFH@aHa3B@VlQ3o#7L2uTTaWlq1ame z0VOb`6JROA`2dVh=ka0#V0>aMoF4#HB+u{##wV}gWF>IxL#>;hX7^;WHDu;g=;G8v z%{p(T<0E`4(VgsuB1*OvCj=FkPeVvHnNLGV&VIfHNCG`V2AJLxNgxSu-+?&bzVH1R ztAFM@{nJh&wKXoPy(EHQb9~v4@QwI2q|2^-2qi3z| z1NlTFWtcCaGX#JE2{3|;PN59oEuX;&xpHK{9mkkIcS!xZ>n~UTKa>)}>EC(Q{NdT! zB`ncUe4uXxnLixAAoJ&cspH=daB~NlKOBBQg1hj#nZSBO#$eorW5Y!^|awhte^42NO%KQ5RL|4ivS>8u)@_*Yuk}U+In@wFoDx{A)yBq7em1`}K#$KF|2T z+@7hYyAUit(bpXftJ<}J-F{BQY_x%11vwOcqJ*fNASea#HyA;HVdK1|Gm+eqwe&HN zTI9@B`4Lee1Uy*y8#6nqP5yz5pJ<~5?9K|#X1MVCX(}nGwg0#_KzMY{(2+cU)k=0jL7MLSDJD=7`QEjqzrSM0=Eg^ehi?`F5|Y_r(AQRN zp(OHB)>7*L8WBe`d=g7^xYK3V{NJ+acBuZ5> z*l2o_lsyS?(FTQ(0+kPW(Ss0*=Hivnq`w?&YClgho*k&=r0K0lw6;}@(4(GR$i;1z zmnQy)e(=dUI55IO)BBI>T29c@_5arH1F@jqm^fp>i0Q-=+y7gucG|izZKW82Tm*dd zB2D^_6}>2t$bA6lOEm-rq+!&553I2MX|d7GY{JJi5oRg17Gf#J1%4j>ZK-g9@%;~j zYawBvu`CTR)M@(u)KnJq@`41^`v=&NtkMWZAQu*9!xpAKRrW8K!=Sx^5R6U~u~3Yl zEfUQLRF3$f2wTtQ#37;*Dd>3cvOXY328C0X7y&L9+~=IC0(Di14E)I!s414;aGe*sAZ zpWOczcjT$K|Cd(ov~}_mp7fUu?MNY7S6yqC8STS{8DqmJ(phb^D2O_M1)^r|i?M!% z&^PB$-rGUQS5ZqyXwqMcA7~75R)jc{M4ST7A}qeT)($j%vDU9JdavV+|4S?F0P2mE zp~Wb?cA)JIz`XiV+9O z((KkWy$1ueuAtt<|FLx`f0+cQtUIeMECq0m1IQg{%g`Vfy7S$vU=+H)`Omh2u{J0H za8iD9B3R|qFUKgl1}c?@`=+9n+xiuxCd^MY>4T^{2_b624WNLCCie|9>xNNeKmnuv z-vxx^cyh*tIENbFOR@lE{iFSF3wXMr905z~tNYJtLrS4RpS0eTlpr6VEKU1;I~P|& z8o4MJ_iC~yMTGXaKLAVml(L9BX&r`~?HC5>bXJ@GYNwa0*ZvfS`N?kXJBw#&GE*Rx-|yIexy9;D|P zaXl>Li2er}tqj?%9J9#a1ocBM0CLV@Sqm9_CNTTrfCKa1V2MNk1}L;r zshsmbra~}aXo-se47|_Hxk*MMRB&5zs=4@P^4fMQwA_-;6};X?%idA=WZT`Vl!03 zx&^#%Jh%ubzFaZAVcHV@dG=#y%=!x!&fP(|PFUD0(E__2Dzw_DD`TZ#(3J4h`tRP4 zl;;<1;Vypro->`C3pbI057mf^CXcu4hE9h{3reL*FEXFo47cRmk%K5N)@B={dtfJf z0{PB2O<1Z3jg5?qG!LPFxtV_J@A~rYi-i%(7k3|R@%;eH{Qw_F%%~;U$)!NPstpsR zDjH*@u6*M!{llvPL}aK_N$0Ti4xeIj6Z{M{mdYqgz@Rzmlx~ZwVj?8hUJ(blWL&uB ziDinCP0*490~soNGB}7YY?CZ9yf`7)P-B3=3YhNeePmxtG(oF-JF=xuu)h zt6!dCO|1`3&k53{>uP7u=`HB?X6o{N7}%4&tq%rZu zdnt9{7ub?A%u+JnC}BL1sXUN9L_sW_U>5RNBvYzXQ>snufGN1dsUUuexD3OD3?SGM zN7fMs2zGoQpZSx*LufqzB!h@ra6JDNlNP81tp4$b{~=uBVGuvb&o-_J9DT;>d~-F9 z0yEVqZ>C|RO{&yQs?7lZO*qQq$1S*MRGZtL4HV+pIgIG$QxG_h`zofd+Tuh63j2-< z`%dS?ft__s?%GYkGqmQ7{cg5#J6;@^n^$p7$YvZ6N<^}T9~TD zh{*_aQf2S#PGFP!@@mn+39>)VXDIPk!+QPrI?2KdYkTQq6}>5O0lpz&33QqI9-`|R zqU-iP6XU0AUvR?gpM|xzp8cFduJPl8rh9PgD^S^plF9VB3`DM}&-?AZKYP9L%(A`p z;%7f{tzV;TrbBr3s=f#JhDg@wRINkb%L(6u1@4V!R_!jfnWv{iM3^k^`d-fY9xMY& z+x81P;P|&AgPsnY6vMl6w~cVji=Ih(Oa0tdlnRJiZqce4x%o_ zS$zN$qOR~CVSL8Mfs^C5=-!x93pnXL9Rjzx;&^ z+oTMAUoeLabMXOx%ihZ9*?KGC-{GCuanEmvm1bYu=7~law4D*Oy#pOM=bbnQQD@p; z4rwSDGcc%*D=2{ZSHb*mFbR8hGD<67Ov(DUN%{M}U<(`PQZZOggipuMdLgY5Q7rb{ zvPqf!VXLA)v0IPJW!7X4B)clRe39%6FE_0hYZNHxLn-;YC_v4w@WoDJSUgvF{MhRc zAdf`Q&5}uY0$2X#D&za+l70_HW8hDtH|Gv%*XPf`?Jl$8Ll%ItYg4Xkv;KI&f(X$O zB)tNb_C2VG3k({tU&eE14i25t3qV9pT5Y1g2gRT1xCN7eRRIT3P|qOX5EN&4Q{Ma@ zs~9Q1i5`jk2gHFwmX^XrgGLx;yZ#tOO!JMrBN51`U63N11Vk=$q2oqs!5fpP8#J9k zYg>4XVvE&v-5h}3Vc|aTU1h17{*KAxN&!H{N%&im8Zf7_$v0=IqW^U$l0H};Pke!pez>J^?J{`&Yh ziInw>N8c=Ivhwp0ePCsjy#dkeCEf=8 zUw8Xn4mD5Mo z=cT8u3d;u8i?iIpUk4+ulcQ2KaA2h2^ie-?w!30mzLBaj zRBt59O78b3ZIvas(WOc&xjepOh;RtSd8N>t&NrQYuTfi!weQq5Y)l}f!z;yy6U~wl|7By|fdKtU`^aTi8F)l*6_R-)~3+#|I+Y`=Iz|$~F`@ z!4<1)bl3LvUtG76-FUoG?p%NOLj2C|WKEu-1jqBj7s0qv*QAmz7;1sqqYt^$5xujl z2Xv_r5{VPOMI5enM;+XY+WD&NV+Kq=pZiGXg_Uza2lcl3lt0?Lv zeJz8@Xe2x>4aMgm%;+HOB5oIhL$moc(z5nIIwi76Y^s$ZE%&(XUeT+*5Op74$<31= zN?bjhpv<)>!`w9aLDsr){iXPLoXoglvs)w*&eZb8)`51Zl-krXW#~dNDo*0pO3QM) z@A`E6$Mh7nQRh&=g$#wu3Lb(0RY`MY_>_Z!o{y}eTWoISMn&&W79l+?LM?hdI}trC zA}#vY1tCp$6Oz@_6IzOH2G2_$27w@^n5hGloTw2+Jx-C9CPZRD4AWigxy$UtiF zh}Hh&Fs!t{8fot&5ac&fm!NBz|5-Qxv$iFrC*_IeJi$dwVC?n?e|C`ewANc)#$T?_ ztkuek-uCck!RahheJ^y+8~R;x)C9v6*5DZ4Q1-I54yn-*xv|Xb!daq(Z^b|dPV{E{ z>$`d{&1e+%@HfbDj_7eP>L=!9+e=&SMvHHCHJpw$QD5@VHf)5xn@t(_a~R zQxMdix>_zbV(Fx8d(2|*htg-WUGpZqdHvAsLqzJv?{B^(kGjMA?ZcKSmjdN7HHk7c zDo3wf$j$Y^OM9a%;pUO;TZm*y{7!Cf?j*tKydFu2INr~d$uX%w|4(IS0T$KPHU6PX zLRvsUg+V$5l$MeX=|*B`h8ntC8cFGpknRpi0TDsEyBj2=Zri(IC5{)oMh?jOBT-aG(73-R3-;jEw=YlUzWl~?2ZkH z!p1gMAr&2S6=$abgg%2Ct40;XI3saKbsc0EBu2%~Urt8ikZMKVYJQa>4d#4vBvN-I zTK6??vf*AuYTVs_6X5#IH=& zsj+E|i3$ou!CMWxu*-6kFSR~qdLkuKHa^?7LVeT)etPJRY-Q|CffBX4%q+r-=OgpI?E-=YlbVQ-mRWQ}T zVCy=t^)(wA&16UCDCre!un#$j4oO=Yi|cw%jgW0p4iwDT-;TruTp7pczsuSg*Ak7o z%h_}*+t;zr+MXKxqC4u%Via1qbxJ2eYtZV`_XgmWlEEf6WW53~w_9Uk$>``I69S5h zs`POQS3FPL=I%U4lva4Qhm%Xm@aIE^IFB;v&xcIXfm-I-@9Ptzl2ulCItMbE-;lI;oT3 z+$fPa)jx2@TsFbZPjZ>0_3u6}SM}vBw6Tv>aY|ZNnoaG{vokEE-FHVGp(5;%_ek|p z&&^MrRScHT%71SpK|c^nWYQDxc&aCVJO1#@&0o1_^2PhB#>?hQr%Rfdv2-vbZkD|A zyvxU=g>~4Ka`?ar{QuYb)h_ajW6tzb6@Pt)yz->e=0wuD(2l1C+lS0 zuJsYi45jMjow!sF*4(dsWJ7KRFXe|a1H?Oo4f%>kS~GRa`rs>U;zX{-VCKi`Z}Tt9 z$?VBV-`rw3HM;YS&+yF_9+~WysqjGk1wGcmN+~IWjjwo9&g2?z=vl-aE=AploOrc@ z9~K8U9Ag{Ic1Eb!cuyoBU9kvgi=&$ke~%Yv#C`xAEYI8&(I#>-a)u9UU_AI7>yGNA zwUm6d_1&6WNIQ_oxU%<9a*Zzjtgu+lFk`pjP%q6`pjXI)7ge64A8GnqK!#5;1bgbKtpx-KI}Qa)Ssk$_MP|cWGoz ztA#*hF~e6=wI#VQ4mP}#a;W8As}L>)t(pNrKZ342ppL)}B2e_{_J;D1#e-?h`&vSE z;DJKNUcPv-K7JOHFE2?3x=l6I_6=QZUZ;5IMRK_daj9A4+fm_VPO40rHk#Hw%#0eY zQeR})%cSJJTB6@Ca<_?0@u=@Ma&kRFd6VjKRu`DK^NudxVpzdt{d!yJQc)LHS2kha z$?S`^VXsDWk2mFos1`u&9(0wDO7XCXb!B)rsUSR;{j8=@Ohwz{}B95WS? zfQ0N!WQ)9^WuW-Us<9bKnr%ljNL0Kdd}0E1+>2}M)FT%NTV4I>axMF0H3q+ZVD6io@4E*{CMkdGZ7kuCYWcgi2e6Sd| zl6vtvn;4zvkRgdC@PpUr2T9;)uZT=WF$+4(yEu`G$hFb~OzFGPjPD0FQJ+OFP&mj* zO>uZqE(<`TYRrJ2%=V3*iPS)$5D$!)U<&2{c3wwJNN$vXBBRlA8;5F4fK&X2wCPC* zJSnpTC3a84+@%c9hie1WNoa-;(L=N4ml~#X)FBO!a`bJSo zc*e9lQ#XUVv(PmmEOc!$W1907<+6~(`=XboD4v<#VrJ}#Qc}Y4gelYIR(ltd9yGcq z3gD$v>hL)dYuRU!n@}|6)=OIo@gTpUnL#%Mae0Q!V>YjaXOTk~G<_j+o$bsloWVJh z&v`J_$=Ihk7SJAUf25ZZp1nQYtV@|oCcjHf2417%PUihS+==Mq@SGOg8OV23h;wtS z2Z0kPkHn};IIh_1R3aNS1C`A$JZx9p%ih&7cn$qP5Q%v`=kbs5~{* zyxzPeWRk5*E3z6AYij_mf0-GEyUP*qHnUyqE)^z=RW$yc+_&mn7#rxKp@dC&z!}C% zSh}G-es42}x)wWy7m+eEC&cdZ+HpLS_!v6$WuON>BGUVz-Jw+gSwv(curnkHqM_lE z??jConSVsXE$=KH1;G*%Uw+L+ul*L-*?!H1tII_}H7vS8%n~=}89hW^Yvc>Wzhcj! zF8wk!=0e@Dmt`Dn!3{%+Vo^4mPE`2zsX z3&Bn;45OGE63&>s=QP&7BB8v5QT&Solhg&k?@1sXU_d5$b~bpu<^9y{uF61HVf9KLLBY@?f} z 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 { + const workspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + if (workspacePath && this._isExistingDirectory(workspacePath)) { + return workspacePath; + } + + const activeEditorPath = vscode.window.activeTextEditor?.document.uri.fsPath; + if (activeEditorPath) { + const fallbackFolder = this._isExistingDirectory(activeEditorPath) + ? activeEditorPath + : path.dirname(activeEditorPath); + if (this._isExistingDirectory(fallbackFolder)) { + return fallbackFolder; + } + } + + const picked = await vscode.window.showOpenDialog({ + canSelectFiles: false, + canSelectFolders: true, + canSelectMany: false, + openLabel: 'Select Folder to Analyze' + }); + + return picked?.[0]?.fsPath ?? null; + } + + private _isExistingDirectory(targetPath: string): boolean { + try { + return fs.existsSync(targetPath) && fs.statSync(targetPath).isDirectory(); + } catch { + return false; + } + } + + private _ensureBackendCanAccessPath(backendUrl: string, analysisPath: string): void { + const host = this._getBackendHost(backendUrl); + if (!host) { + return; + } + + const isLocalBackend = host === 'localhost' || host === '127.0.0.1' || host === '::1'; + if (isLocalBackend) { + return; + } + + const isLikelyLocalFilesystemPath = path.isAbsolute(analysisPath); + if (isLikelyLocalFilesystemPath) { + throw new Error( + `Backend URL ${backendUrl} is remote and cannot access local path ${analysisPath}. ` + + 'Set reposense.backendUrl to http://localhost:8000 (or run the backend where this path exists).' + ); + } + } + + private _getBackendHost(backendUrl: string): string | null { + try { + return new URL(backendUrl).hostname.toLowerCase(); + } catch { + return null; + } + } + private _startPolling(jobId: string) { // Clear any existing polling interval if (this._pollingInterval) { @@ -456,7 +524,7 @@ export class SidebarProvider implements vscode.WebviewViewProvider { // Store in cache this._cachedResult = result; - this._cachedWorkspacePath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath ?? null; + this._cachedWorkspacePath = this._activeAnalysisPath; this._view!.webview.postMessage({ type: 'results', data: result }); this._statusBarItem.text = `$(graph) RepoSense: Score ${result.score.score}/100`; From 4e76dfa487f36812551b6b89d9e58eae28c6a8b5 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 15:57:17 +0300 Subject: [PATCH 12/19] m --- backend/src/main.py | 73 +++++++++++++++++++-- backend/src/models.py | 15 ++++- vscode-extension/out/SidebarProvider.js | 57 ++++++++++++---- vscode-extension/out/SidebarProvider.js.map | 2 +- vscode-extension/out/config.js | 1 + vscode-extension/out/config.js.map | 2 +- vscode-extension/package.json | 5 ++ vscode-extension/src/SidebarProvider.ts | 71 +++++++++++++++----- vscode-extension/src/config.ts | 2 + 9 files changed, 191 insertions(+), 37 deletions(-) diff --git a/backend/src/main.py b/backend/src/main.py index a4cdf5e..c576a4c 100644 --- a/backend/src/main.py +++ b/backend/src/main.py @@ -5,6 +5,9 @@ import asyncio import os +import shutil +import subprocess +import tempfile from contextlib import asynccontextmanager from pathlib import Path from typing import Optional @@ -109,6 +112,59 @@ def validate_local_path(local_path: str) -> str: ) +def validate_repo_url(repo_url: str) -> str: + """Validate repository URL format for server-side clone analysis.""" + normalized = (repo_url or "").strip() + if not normalized: + raise HTTPException(status_code=400, detail="repo_url cannot be empty") + + valid_prefixes = ("https://", "http://", "git@") + if not normalized.startswith(valid_prefixes): + raise HTTPException( + status_code=400, + detail="repo_url must start with https://, http://, or git@" + ) + + return normalized + + +def clone_repo_to_temp(repo_url: str) -> tuple[str, str]: + """Clone repository to a temporary directory and return (repo_path, temp_root).""" + temp_root = tempfile.mkdtemp(prefix="reposense-") + repo_path = str(Path(temp_root) / "repo") + + try: + subprocess.run( + ["git", "clone", "--depth", "1", repo_url, repo_path], + check=True, + capture_output=True, + text=True, + timeout=180, + ) + except FileNotFoundError as e: + shutil.rmtree(temp_root, ignore_errors=True) + raise HTTPException(status_code=500, detail="git is not available on the backend server") from e + except subprocess.TimeoutExpired as e: + shutil.rmtree(temp_root, ignore_errors=True) + raise HTTPException(status_code=408, detail="Timed out while cloning repository") from e + except subprocess.CalledProcessError as e: + shutil.rmtree(temp_root, ignore_errors=True) + stderr = (e.stderr or "").strip() + message = stderr[:300] if stderr else "Unknown git clone error" + raise HTTPException(status_code=400, detail=f"Failed to clone repository: {message}") from e + + return repo_path, temp_root + + +async def run_analysis_with_optional_cleanup(job_id: str, local_path: str, temp_root: Optional[str] = None) -> None: + """Run analysis and cleanup temporary clone directory when applicable.""" + try: + await orchestrate_analysis(job_id=job_id, local_path=local_path) + finally: + if temp_root: + shutil.rmtree(temp_root, ignore_errors=True) + + @asynccontextmanager async def lifespan(app: FastAPI): """ @@ -171,8 +227,16 @@ async def analyze_codebase( Raises: HTTPException: If max concurrent jobs exceeded """ - # Validate and sanitize the local path - validated_path = validate_local_path(request.local_path) + validated_path: Optional[str] = None + temp_clone_root: Optional[str] = None + + if request.repo_url: + validated_repo_url = validate_repo_url(request.repo_url) + validated_path, temp_clone_root = clone_repo_to_temp(validated_repo_url) + elif request.local_path: + validated_path = validate_local_path(request.local_path) + else: + raise HTTPException(status_code=400, detail="Either local_path or repo_url is required") # Check concurrent job limit active_jobs = get_active_job_count() @@ -192,9 +256,10 @@ async def analyze_codebase( # Start background analysis with validated path background_tasks.add_task( - orchestrate_analysis, + run_analysis_with_optional_cleanup, job_id=job_id, - local_path=validated_path + local_path=validated_path, + temp_root=temp_clone_root, ) # Return immediate response with job_id and initial progress diff --git a/backend/src/models.py b/backend/src/models.py index a5292cf..7f16149 100644 --- a/backend/src/models.py +++ b/backend/src/models.py @@ -5,7 +5,7 @@ from enum import Enum from typing import Optional, Union -from pydantic import BaseModel +from pydantic import BaseModel, model_validator # ============================================================================ @@ -87,8 +87,17 @@ class ErrorCode(str, Enum): # ============================================================================ class AnalyzeRequest(BaseModel): - """Request to analyze a local codebase""" - local_path: str + """Request to analyze a local codebase path or remote repository URL.""" + local_path: Optional[str] = None + repo_url: Optional[str] = None + + @model_validator(mode="after") + def validate_source(self) -> "AnalyzeRequest": + has_local = bool(self.local_path and self.local_path.strip()) + has_repo = bool(self.repo_url and self.repo_url.strip()) + if not has_local and not has_repo: + raise ValueError("Either local_path or repo_url must be provided") + return self # ============================================================================ diff --git a/vscode-extension/out/SidebarProvider.js b/vscode-extension/out/SidebarProvider.js index 624c6c6..8868916 100644 --- a/vscode-extension/out/SidebarProvider.js +++ b/vscode-extension/out/SidebarProvider.js @@ -32,6 +32,7 @@ const node_fetch_1 = __importDefault(require("node-fetch")); const config_1 = require("./config"); const fs = __importStar(require("fs")); const path = __importStar(require("path")); +const cp = __importStar(require("child_process")); class SidebarProvider { constructor(_extensionUri, _statusBarItem) { this._extensionUri = _extensionUri; @@ -182,7 +183,7 @@ class SidebarProvider { this._activeAnalysisPath = analysisPath; try { const config = (0, config_1.getConfig)(); - this._ensureBackendCanAccessPath(config.backendUrl, analysisPath); + const analyzeRequestBody = await this._buildAnalyzeRequestBody(config.backendUrl, config.remoteRepoUrl, analysisPath); // Send initial status if (this._view) { this._view.webview.postMessage({ @@ -205,7 +206,7 @@ class SidebarProvider { headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ local_path: analysisPath }), + body: JSON.stringify(analyzeRequestBody), timeout: config.requestTimeoutMs }); if (!response.ok) { @@ -266,20 +267,50 @@ class SidebarProvider { return false; } } - _ensureBackendCanAccessPath(backendUrl, analysisPath) { - const host = this._getBackendHost(backendUrl); - if (!host) { - return; + async _buildAnalyzeRequestBody(backendUrl, configuredRemoteRepoUrl, analysisPath) { + if (this._isLocalBackend(backendUrl)) { + return { local_path: analysisPath }; } - const isLocalBackend = host === 'localhost' || host === '127.0.0.1' || host === '::1'; - if (isLocalBackend) { - return; + const explicitRepoUrl = configuredRemoteRepoUrl.trim(); + if (explicitRepoUrl) { + return { repo_url: explicitRepoUrl }; + } + const detectedRepoUrl = this._tryGetWorkspaceGitRemote(analysisPath); + if (detectedRepoUrl) { + return { repo_url: detectedRepoUrl }; } - const isLikelyLocalFilesystemPath = path.isAbsolute(analysisPath); - if (isLikelyLocalFilesystemPath) { - throw new Error(`Backend URL ${backendUrl} is remote and cannot access local path ${analysisPath}. ` + - 'Set reposense.backendUrl to http://localhost:8000 (or run the backend where this path exists).'); + throw new Error(`Backend URL ${backendUrl} is remote. Set reposense.remoteRepoUrl to your Git repository URL ` + + '(for example, https://github.com/org/repo.git) so Render can clone and analyze it.'); + } + _tryGetWorkspaceGitRemote(analysisPath) { + try { + const output = cp.execFileSync('git', ['-C', analysisPath, 'remote', 'get-url', 'origin'], { + encoding: 'utf8', + timeout: 5000, + stdio: ['ignore', 'pipe', 'ignore'] + }).trim(); + if (!output) { + return null; + } + return this._normalizeGitRemoteUrl(output); } + catch { + return null; + } + } + _normalizeGitRemoteUrl(remoteUrl) { + const trimmed = remoteUrl.trim(); + const sshMatch = /^git@([^:]+):(.+)$/.exec(trimmed); + if (sshMatch) { + const host = sshMatch[1]; + const repoPath = sshMatch[2]; + return `https://${host}/${repoPath}`; + } + return trimmed; + } + _isLocalBackend(backendUrl) { + const host = this._getBackendHost(backendUrl); + return !!host && (host === 'localhost' || host === '127.0.0.1' || host === '::1'); } _getBackendHost(backendUrl) { try { diff --git a/vscode-extension/out/SidebarProvider.js.map b/vscode-extension/out/SidebarProvider.js.map index d0baad7..6a8e43a 100644 --- a/vscode-extension/out/SidebarProvider.js.map +++ b/vscode-extension/out/SidebarProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/vscode-extension/out/config.js b/vscode-extension/out/config.js index 5664300..9e2ff2c 100644 --- a/vscode-extension/out/config.js +++ b/vscode-extension/out/config.js @@ -29,6 +29,7 @@ function getConfig() { const config = vscode.workspace.getConfiguration('reposense'); return { backendUrl: config.get('backendUrl', 'http://localhost:8000'), + remoteRepoUrl: config.get('remoteRepoUrl', ''), requestTimeoutMs: config.get('requestTimeoutMs', 30000), pollingIntervalMs: config.get('pollingIntervalMs', 2000), }; diff --git a/vscode-extension/out/config.js.map b/vscode-extension/out/config.js.map index 9f95110..eb12327 100644 --- a/vscode-extension/out/config.js.map +++ b/vscode-extension/out/config.js.map @@ -1 +1 @@ -{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAQjC,SAAgB,SAAS;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,GAAG,CAAS,YAAY,EAAE,uBAAuB,CAAC;QACrE,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAS,kBAAkB,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAS,mBAAmB,EAAE,IAAI,CAAC;KACnE,CAAC;AACN,CAAC;AAPD,8BAOC"} \ No newline at end of file +{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AASjC,SAAgB,SAAS;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,GAAG,CAAS,YAAY,EAAE,uBAAuB,CAAC;QACrE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC;QACtD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAS,kBAAkB,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAS,mBAAmB,EAAE,IAAI,CAAC;KACnE,CAAC;AACN,CAAC;AARD,8BAQC"} \ No newline at end of file diff --git a/vscode-extension/package.json b/vscode-extension/package.json index efc2453..b878875 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -67,6 +67,11 @@ "default": "http://localhost:8000", "description": "URL of the RepoSense backend API server" }, + "reposense.remoteRepoUrl": { + "type": "string", + "default": "", + "description": "Repository URL for remote backend analysis (for example, https://github.com/org/repo.git). Used when backendUrl is not localhost." + }, "reposense.requestTimeoutMs": { "type": "number", "default": 30000, diff --git a/vscode-extension/src/SidebarProvider.ts b/vscode-extension/src/SidebarProvider.ts index dae7985..cd3e3ff 100644 --- a/vscode-extension/src/SidebarProvider.ts +++ b/vscode-extension/src/SidebarProvider.ts @@ -3,6 +3,7 @@ import fetch from 'node-fetch'; import { getConfig } from './config'; import * as fs from 'fs'; import * as path from 'path'; +import * as cp from 'child_process'; // Backend API Models (matching models.py) type PayloadType = 'request' | 'result' | 'error'; @@ -303,7 +304,7 @@ export class SidebarProvider implements vscode.WebviewViewProvider { try { const config = getConfig(); - this._ensureBackendCanAccessPath(config.backendUrl, analysisPath); + const analyzeRequestBody = await this._buildAnalyzeRequestBody(config.backendUrl, config.remoteRepoUrl, analysisPath); // Send initial status if (this._view) { @@ -329,7 +330,7 @@ export class SidebarProvider implements vscode.WebviewViewProvider { headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ local_path: analysisPath }), + body: JSON.stringify(analyzeRequestBody), timeout: config.requestTimeoutMs }); @@ -399,24 +400,64 @@ export class SidebarProvider implements vscode.WebviewViewProvider { } } - private _ensureBackendCanAccessPath(backendUrl: string, analysisPath: string): void { - const host = this._getBackendHost(backendUrl); - if (!host) { - return; + private async _buildAnalyzeRequestBody( + backendUrl: string, + configuredRemoteRepoUrl: string, + analysisPath: string + ): Promise<{ local_path?: string; repo_url?: string }> { + if (this._isLocalBackend(backendUrl)) { + return { local_path: analysisPath }; } - const isLocalBackend = host === 'localhost' || host === '127.0.0.1' || host === '::1'; - if (isLocalBackend) { - return; + const explicitRepoUrl = configuredRemoteRepoUrl.trim(); + if (explicitRepoUrl) { + return { repo_url: explicitRepoUrl }; + } + + const detectedRepoUrl = this._tryGetWorkspaceGitRemote(analysisPath); + if (detectedRepoUrl) { + return { repo_url: detectedRepoUrl }; + } + + throw new Error( + `Backend URL ${backendUrl} is remote. Set reposense.remoteRepoUrl to your Git repository URL ` + + '(for example, https://github.com/org/repo.git) so Render can clone and analyze it.' + ); + } + + private _tryGetWorkspaceGitRemote(analysisPath: string): string | null { + try { + const output = cp.execFileSync('git', ['-C', analysisPath, 'remote', 'get-url', 'origin'], { + encoding: 'utf8', + timeout: 5000, + stdio: ['ignore', 'pipe', 'ignore'] + }).trim(); + + if (!output) { + return null; + } + + return this._normalizeGitRemoteUrl(output); + } catch { + return null; } + } - const isLikelyLocalFilesystemPath = path.isAbsolute(analysisPath); - if (isLikelyLocalFilesystemPath) { - throw new Error( - `Backend URL ${backendUrl} is remote and cannot access local path ${analysisPath}. ` + - 'Set reposense.backendUrl to http://localhost:8000 (or run the backend where this path exists).' - ); + private _normalizeGitRemoteUrl(remoteUrl: string): string { + const trimmed = remoteUrl.trim(); + const sshMatch = /^git@([^:]+):(.+)$/.exec(trimmed); + if (sshMatch) { + const host = sshMatch[1]; + const repoPath = sshMatch[2]; + return `https://${host}/${repoPath}`; } + + return trimmed; + } + + private _isLocalBackend(backendUrl: string): boolean { + const host = this._getBackendHost(backendUrl); + return !!host && (host === 'localhost' || host === '127.0.0.1' || host === '::1'); } private _getBackendHost(backendUrl: string): string | null { diff --git a/vscode-extension/src/config.ts b/vscode-extension/src/config.ts index f9c7777..d061358 100644 --- a/vscode-extension/src/config.ts +++ b/vscode-extension/src/config.ts @@ -2,6 +2,7 @@ import * as vscode from 'vscode'; interface RepoSenseConfig { backendUrl: string; + remoteRepoUrl: string; requestTimeoutMs: number; pollingIntervalMs: number; } @@ -10,6 +11,7 @@ export function getConfig(): RepoSenseConfig { const config = vscode.workspace.getConfiguration('reposense'); return { backendUrl: config.get('backendUrl', 'http://localhost:8000'), + remoteRepoUrl: config.get('remoteRepoUrl', ''), requestTimeoutMs: config.get('requestTimeoutMs', 30000), pollingIntervalMs: config.get('pollingIntervalMs', 2000), }; From e18238340a42bc64c4c822da72db3af5b18b4c8f Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 16:06:11 +0300 Subject: [PATCH 13/19] Fix remote analysis flow and refresh orchestrate client settings --- .vscode/launch.json | 16 ++++++++++++++++ .vscode/settings.json | 3 +++ backend/src/orchestrate_client.py | 24 +++++++++++++++++++----- vscode-extension/src/SidebarProvider.ts | 13 +++++++++++++ 4 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..f2f6681 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Run RepoSense Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}/vscode-extension" + ], + "outFiles": [ + "${workspaceFolder}/vscode-extension/out/**/*.js" + ] + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7d678a6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "reposense.backendUrl": "https://bits-and-bobs-deployment-1.onrender.com" +} diff --git a/backend/src/orchestrate_client.py b/backend/src/orchestrate_client.py index 98fb2a0..59bd1bc 100644 --- a/backend/src/orchestrate_client.py +++ b/backend/src/orchestrate_client.py @@ -264,15 +264,29 @@ async def call_hardener_agent(self, prompt: str) -> Dict[str, Any]: _orchestrate_client: Optional[OrchestrateClient] = None +def _client_matches_settings(client: OrchestrateClient) -> bool: + """Return True when the cached client reflects current runtime settings.""" + return ( + client.api_key == settings.orchestrate_api_key + and client.base_url == settings.orchestrate_url.rstrip('/') + and client.architect_agent_id == settings.orchestrate_agent_architect_id + and client.reviewer_agent_id == settings.orchestrate_agent_reviewer_id + and client.documenter_agent_id == settings.orchestrate_agent_documenter_id + and client.hardener_agent_id == settings.orchestrate_agent_hardener_id + and client.environment_id == settings.orchestrate_environment_id + and client.instance_id == settings.orchestrate_instance_id + and client.timeout == settings.orchestrate_timeout + ) + + def get_orchestrate_client() -> OrchestrateClient: """ - Get or create the global Orchestrate client instance. - - Returns: - OrchestrateClient instance + Get the Orchestrate client, recreating it if settings changed at runtime. + + This avoids stale credentials after /config/setup updates. """ global _orchestrate_client - if _orchestrate_client is None: + if _orchestrate_client is None or not _client_matches_settings(_orchestrate_client): _orchestrate_client = OrchestrateClient() return _orchestrate_client diff --git a/vscode-extension/src/SidebarProvider.ts b/vscode-extension/src/SidebarProvider.ts index cd3e3ff..ce5a9f7 100644 --- a/vscode-extension/src/SidebarProvider.ts +++ b/vscode-extension/src/SidebarProvider.ts @@ -283,6 +283,19 @@ export class SidebarProvider implements vscode.WebviewViewProvider { } private async _analyzeWorkspace(force: boolean = false) { + const backendStatus = await this._checkBackendConfig(); + if (backendStatus !== 'configured') { + this._statusBarItem.text = '$(error) RepoSense: Setup Required'; + if (this._view) { + this._view.webview.postMessage({ type: 'setup' }); + this._view.webview.postMessage({ + type: 'error', + message: 'Backend credentials are not configured. Complete setup in the sidebar and try again.' + }); + } + return; + } + const analysisPath = await this._resolveAnalysisPath(); if (!analysisPath) { this._statusBarItem.text = '$(error) RepoSense: Error'; From 61f5bea3738fcec301fe0656a8b4ab63fa418f6d Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 16:14:16 +0300 Subject: [PATCH 14/19] m --- backend/src/config.py | 4 +++- vscode-extension/out/SidebarProvider.js | 12 ++++++++++++ vscode-extension/out/SidebarProvider.js.map | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/backend/src/config.py b/backend/src/config.py index a64cd68..4b5d8ae 100644 --- a/backend/src/config.py +++ b/backend/src/config.py @@ -94,8 +94,10 @@ def validate_log_level(cls, v: str) -> str: raise ValueError(f'log_level must be one of {valid_levels}') return v_upper + # Only use .env file if it exists (for local dev), otherwise rely on OS env vars (for Render/production) + _env_file_path = Path(__file__).parent.parent / ".env" model_config = SettingsConfigDict( - env_file=str(Path(__file__).parent.parent / ".env"), + env_file=str(_env_file_path) if _env_file_path.exists() else None, env_file_encoding="utf-8", case_sensitive=False, extra="ignore" diff --git a/vscode-extension/out/SidebarProvider.js b/vscode-extension/out/SidebarProvider.js index 8868916..9ae3683 100644 --- a/vscode-extension/out/SidebarProvider.js +++ b/vscode-extension/out/SidebarProvider.js @@ -165,6 +165,18 @@ class SidebarProvider { } } async _analyzeWorkspace(force = false) { + const backendStatus = await this._checkBackendConfig(); + if (backendStatus !== 'configured') { + this._statusBarItem.text = '$(error) RepoSense: Setup Required'; + if (this._view) { + this._view.webview.postMessage({ type: 'setup' }); + this._view.webview.postMessage({ + type: 'error', + message: 'Backend credentials are not configured. Complete setup in the sidebar and try again.' + }); + } + return; + } const analysisPath = await this._resolveAnalysisPath(); if (!analysisPath) { this._statusBarItem.text = '$(error) RepoSense: Error'; diff --git a/vscode-extension/out/SidebarProvider.js.map b/vscode-extension/out/SidebarProvider.js.map index 6a8e43a..04dfb02 100644 --- a/vscode-extension/out/SidebarProvider.js.map +++ b/vscode-extension/out/SidebarProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 48c64c1a0fb133cf389f21bae32deab1f83091a0 Mon Sep 17 00:00:00 2001 From: Siddharth Madhavan Date: Sun, 17 May 2026 16:21:16 +0300 Subject: [PATCH 15/19] Fix: Add missing hideAllStates() function to prevent initialization hang --- vscode-extension/out/SidebarProvider.js | 73 ---------------- vscode-extension/out/SidebarProvider.js.map | 2 +- vscode-extension/out/config.js | 2 +- vscode-extension/out/config.js.map | 2 +- vscode-extension/src/SidebarProvider.ts | 68 +-------------- vscode-extension/src/config.ts | 2 +- vscode-extension/webview/main.html | 97 --------------------- vscode-extension/webview/main.js | 80 ++--------------- 8 files changed, 14 insertions(+), 312 deletions(-) diff --git a/vscode-extension/out/SidebarProvider.js b/vscode-extension/out/SidebarProvider.js index 9ae3683..64f917e 100644 --- a/vscode-extension/out/SidebarProvider.js +++ b/vscode-extension/out/SidebarProvider.js @@ -61,12 +61,6 @@ class SidebarProvider { webviewView.webview.onDidReceiveMessage(async (data) => { switch (data.type) { case 'ready': { - const status = await this._checkBackendConfig(); - // If the backend is not configured or unavailable, show setup/dashboard - if (status !== 'configured') { - webviewView.webview.postMessage({ type: 'setup' }); - return; - } const currentPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; if (currentPath && this._cachedWorkspacePath === currentPath && this._cachedResult) { this._handleResult(this._cachedResult); @@ -86,32 +80,6 @@ class SidebarProvider { case 'openFullView': this._openEditorPanel(); break; - case 'saveConfig': { - const msgData = data; - try { - await this._saveConfig(msgData.data); - const status = await this._checkBackendConfig(); - if (status === 'configured') { - const currentPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; - if (currentPath) { - await this._analyzeWorkspace(false); - } - else { - webviewView.webview.postMessage({ type: 'idle' }); - } - } - else { - webviewView.webview.postMessage({ type: 'setup' }); - } - } - catch (error) { - webviewView.webview.postMessage({ - type: 'error', - message: `Failed to save configuration: ${error instanceof Error ? error.message : String(error)}` - }); - } - break; - } } }); } @@ -135,48 +103,7 @@ class SidebarProvider { } }); } - async _checkBackendConfig() { - try { - const config = (0, config_1.getConfig)(); - const response = await (0, node_fetch_1.default)(`${config.backendUrl}/config/status`, { - timeout: config.requestTimeoutMs - }); - if (!response.ok) { - return 'unavailable'; - } - const data = await response.json(); - return data.configured ? 'configured' : 'not_configured'; - } - catch { - return 'unavailable'; - } - } - async _saveConfig(configData) { - const config = (0, config_1.getConfig)(); - const response = await (0, node_fetch_1.default)(`${config.backendUrl}/config/setup`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(configData), - timeout: config.requestTimeoutMs - }); - if (!response.ok) { - const text = await response.text(); - throw new Error(`HTTP ${response.status}: ${text}`); - } - } async _analyzeWorkspace(force = false) { - const backendStatus = await this._checkBackendConfig(); - if (backendStatus !== 'configured') { - this._statusBarItem.text = '$(error) RepoSense: Setup Required'; - if (this._view) { - this._view.webview.postMessage({ type: 'setup' }); - this._view.webview.postMessage({ - type: 'error', - message: 'Backend credentials are not configured. Complete setup in the sidebar and try again.' - }); - } - return; - } const analysisPath = await this._resolveAnalysisPath(); if (!analysisPath) { this._statusBarItem.text = '$(error) RepoSense: Error'; diff --git a/vscode-extension/out/SidebarProvider.js.map b/vscode-extension/out/SidebarProvider.js.map index 04dfb02..d15059b 100644 --- a/vscode-extension/out/SidebarProvider.js.map +++ b/vscode-extension/out/SidebarProvider.js.map @@ -1 +1 @@ -{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"SidebarProvider.js","sourceRoot":"","sources":["../src/SidebarProvider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/vscode-extension/out/config.js b/vscode-extension/out/config.js index 9e2ff2c..1aa1a45 100644 --- a/vscode-extension/out/config.js +++ b/vscode-extension/out/config.js @@ -28,7 +28,7 @@ const vscode = __importStar(require("vscode")); function getConfig() { const config = vscode.workspace.getConfiguration('reposense'); return { - backendUrl: config.get('backendUrl', 'http://localhost:8000'), + backendUrl: config.get('backendUrl', 'https://bits-and-bobs-deployment-1.onrender.com'), remoteRepoUrl: config.get('remoteRepoUrl', ''), requestTimeoutMs: config.get('requestTimeoutMs', 30000), pollingIntervalMs: config.get('pollingIntervalMs', 2000), diff --git a/vscode-extension/out/config.js.map b/vscode-extension/out/config.js.map index eb12327..03260c3 100644 --- a/vscode-extension/out/config.js.map +++ b/vscode-extension/out/config.js.map @@ -1 +1 @@ -{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AASjC,SAAgB,SAAS;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,GAAG,CAAS,YAAY,EAAE,uBAAuB,CAAC;QACrE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC;QACtD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAS,kBAAkB,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAS,mBAAmB,EAAE,IAAI,CAAC;KACnE,CAAC;AACN,CAAC;AARD,8BAQC"} \ No newline at end of file +{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AASjC,SAAgB,SAAS;IACrB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO;QACH,UAAU,EAAE,MAAM,CAAC,GAAG,CAAS,YAAY,EAAE,iDAAiD,CAAC;QAC/F,aAAa,EAAE,MAAM,CAAC,GAAG,CAAS,eAAe,EAAE,EAAE,CAAC;QACtD,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAS,kBAAkB,EAAE,KAAK,CAAC;QAC/D,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAS,mBAAmB,EAAE,IAAI,CAAC;KACnE,CAAC;AACN,CAAC;AARD,8BAQC"} \ No newline at end of file diff --git a/vscode-extension/src/SidebarProvider.ts b/vscode-extension/src/SidebarProvider.ts index ce5a9f7..ab00d5c 100644 --- a/vscode-extension/src/SidebarProvider.ts +++ b/vscode-extension/src/SidebarProvider.ts @@ -176,12 +176,6 @@ export class SidebarProvider implements vscode.WebviewViewProvider { webviewView.webview.onDidReceiveMessage(async (data: { type: string }) => { switch (data.type) { case 'ready': { - const status = await this._checkBackendConfig(); - // If the backend is not configured or unavailable, show setup/dashboard - if (status !== 'configured') { - webviewView.webview.postMessage({ type: 'setup' }); - return; - } const currentPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; if (currentPath && this._cachedWorkspacePath === currentPath && this._cachedResult) { this._handleResult(this._cachedResult); @@ -199,29 +193,7 @@ export class SidebarProvider implements vscode.WebviewViewProvider { case 'openFullView': this._openEditorPanel(); break; - case 'saveConfig': { - const msgData = data as { type: string; data: Record }; - try { - await this._saveConfig(msgData.data); - const status = await this._checkBackendConfig(); - if (status === 'configured') { - const currentPath = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; - if (currentPath) { - await this._analyzeWorkspace(false); - } else { - webviewView.webview.postMessage({ type: 'idle' }); - } - } else { - webviewView.webview.postMessage({ type: 'setup' }); - } - } catch (error) { - webviewView.webview.postMessage({ - type: 'error', - message: `Failed to save configuration: ${error instanceof Error ? error.message : String(error)}` - }); - } - break; - } + } }); } @@ -254,47 +226,9 @@ export class SidebarProvider implements vscode.WebviewViewProvider { }); } - private async _checkBackendConfig(): Promise<'configured' | 'not_configured' | 'unavailable'> { - try { - const config = getConfig(); - const response = await fetch(`${config.backendUrl}/config/status`, { - timeout: config.requestTimeoutMs - }); - if (!response.ok) { return 'unavailable'; } - const data = await response.json() as { configured: boolean }; - return data.configured ? 'configured' : 'not_configured'; - } catch { - return 'unavailable'; - } - } - private async _saveConfig(configData: Record) { - const config = getConfig(); - const response = await fetch(`${config.backendUrl}/config/setup`, { - method: 'POST', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(configData), - timeout: config.requestTimeoutMs - }); - if (!response.ok) { - const text = await response.text(); - throw new Error(`HTTP ${response.status}: ${text}`); - } - } private async _analyzeWorkspace(force: boolean = false) { - const backendStatus = await this._checkBackendConfig(); - if (backendStatus !== 'configured') { - this._statusBarItem.text = '$(error) RepoSense: Setup Required'; - if (this._view) { - this._view.webview.postMessage({ type: 'setup' }); - this._view.webview.postMessage({ - type: 'error', - message: 'Backend credentials are not configured. Complete setup in the sidebar and try again.' - }); - } - return; - } const analysisPath = await this._resolveAnalysisPath(); if (!analysisPath) { diff --git a/vscode-extension/src/config.ts b/vscode-extension/src/config.ts index d061358..29f0967 100644 --- a/vscode-extension/src/config.ts +++ b/vscode-extension/src/config.ts @@ -10,7 +10,7 @@ interface RepoSenseConfig { export function getConfig(): RepoSenseConfig { const config = vscode.workspace.getConfiguration('reposense'); return { - backendUrl: config.get('backendUrl', 'http://localhost:8000'), + backendUrl: config.get('backendUrl', 'https://bits-and-bobs-deployment-1.onrender.com'), remoteRepoUrl: config.get('remoteRepoUrl', ''), requestTimeoutMs: config.get('requestTimeoutMs', 30000), pollingIntervalMs: config.get('pollingIntervalMs', 2000), diff --git a/vscode-extension/webview/main.html b/vscode-extension/webview/main.html index 219bc5b..f20dba6 100644 --- a/vscode-extension/webview/main.html +++ b/vscode-extension/webview/main.html @@ -59,103 +59,6 @@ - - -