From 3bcb4ff8c568e3f45c8df187d95d58199baa79fb Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Fri, 17 Jan 2025 14:04:37 -0500 Subject: [PATCH] Add pre-commit hook to auto-run/fix prettier and eslint --- package-lock.json | 41 +++- package.json | 551 +++++++++++++++++++++++----------------------- 2 files changed, 314 insertions(+), 278 deletions(-) diff --git a/package-lock.json b/package-lock.json index bed6476..42fc99b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,6 +73,7 @@ "jest-simple-dot-reporter": "^1.0.5", "lint-staged": "^15.2.11", "npm-run-all": "^4.1.5", + "prettier": "^3.4.2", "ts-jest": "^29.2.5", "typescript": "^5.4.5" }, @@ -2733,6 +2734,21 @@ "semver": "^7.5.3" } }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", @@ -2999,6 +3015,21 @@ "prettier": "^2.7.1" } }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.24.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", @@ -13217,15 +13248,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" diff --git a/package.json b/package.json index 5b3dc1d..cb56216 100644 --- a/package.json +++ b/package.json @@ -1,275 +1,280 @@ { - "name": "roo-cline", - "displayName": "Roo Cline", - "description": "A fork of Cline, an autonomous coding agent, with some added experimental configuration and automation features.", - "publisher": "RooVeterinaryInc", - "version": "3.1.6", - "icon": "assets/icons/rocket.png", - "galleryBanner": { - "color": "#617A91", - "theme": "dark" - }, - "engines": { - "vscode": "^1.84.0" - }, - "author": { - "name": "Roo Vet" - }, - "repository": { - "type": "git", - "url": "https://github.com/RooVetGit/Roo-Cline" - }, - "homepage": "https://github.com/RooVetGit/Roo-Cline", - "categories": [ - "AI", - "Chat", - "Programming Languages", - "Education", - "Snippets", - "Testing" - ], - "keywords": [ - "cline", - "claude", - "dev", - "mcp", - "openrouter", - "coding", - "agent", - "autonomous", - "chatgpt", - "sonnet", - "ai", - "llama" - ], - "activationEvents": [ - "onLanguage", - "onStartupFinished" - ], - "main": "./dist/extension.js", - "contributes": { - "viewsContainers": { - "activitybar": [ - { - "id": "roo-cline-ActivityBar", - "title": "Roo Cline", - "icon": "$(rocket)" - } - ] - }, - "views": { - "roo-cline-ActivityBar": [ - { - "type": "webview", - "id": "roo-cline.SidebarProvider", - "name": "" - } - ] - }, - "commands": [ - { - "command": "roo-cline.plusButtonClicked", - "title": "New Task", - "icon": "$(add)" - }, - { - "command": "roo-cline.mcpButtonClicked", - "title": "MCP Servers", - "icon": "$(server)" - }, - { - "command": "roo-cline.promptsButtonClicked", - "title": "Prompts", - "icon": "$(notebook)" - }, - { - "command": "roo-cline.historyButtonClicked", - "title": "History", - "icon": "$(history)" - }, - { - "command": "roo-cline.popoutButtonClicked", - "title": "Open in Editor", - "icon": "$(link-external)" - }, - { - "command": "roo-cline.settingsButtonClicked", - "title": "Settings", - "icon": "$(settings-gear)" - }, - { - "command": "roo-cline.openInNewTab", - "title": "Open In New Tab", - "category": "Roo Cline" - } - ], - "menus": { - "view/title": [ - { - "command": "roo-cline.plusButtonClicked", - "group": "navigation@1", - "when": "view == roo-cline.SidebarProvider" - }, - { - "command": "roo-cline.promptsButtonClicked", - "group": "navigation@2", - "when": "view == roo-cline.SidebarProvider" - }, - { - "command": "roo-cline.mcpButtonClicked", - "group": "navigation@3", - "when": "view == roo-cline.SidebarProvider" - }, - { - "command": "roo-cline.historyButtonClicked", - "group": "navigation@4", - "when": "view == roo-cline.SidebarProvider" - }, - { - "command": "roo-cline.popoutButtonClicked", - "group": "navigation@5", - "when": "view == roo-cline.SidebarProvider" - }, - { - "command": "roo-cline.settingsButtonClicked", - "group": "navigation@6", - "when": "view == roo-cline.SidebarProvider" - } - ] - }, - "configuration": { - "title": "RooCline", - "properties": { - "roo-cline.allowedCommands": { - "type": "array", - "items": { - "type": "string" - }, - "default": [ - "npm test", - "npm install", - "tsc", - "git log", - "git diff", - "git show" - ], - "description": "Commands that can be auto-executed when 'Always approve execute operations' is enabled" - }, - "roo-cline.vsCodeLmModelSelector": { - "type": "object", - "properties": { - "vendor": { - "type": "string", - "description": "The vendor of the language model (e.g. copilot)" - }, - "family": { - "type": "string", - "description": "The family of the language model (e.g. gpt-4)" - } - }, - "description": "Settings for VSCode Language Model API" - } - } - } - }, - "scripts": { - "build": "npm run build:webview && npm run vsix", - "build:webview": "cd webview-ui && npm run build", - "changeset": "changeset", - "check-types": "tsc --noEmit", - "compile": "npm run check-types && npm run lint && node esbuild.js", - "compile-tests": "tsc -p . --outDir out", - "install:all": "npm install && cd webview-ui && npm install", - "lint": "eslint src --ext ts && npm run lint --prefix webview-ui", - "package": "npm run build:webview && npm run check-types && npm run lint && node esbuild.js --production", - "pretest": "npm run compile-tests && npm run compile && npm run lint", - "start:webview": "cd webview-ui && npm run start", - "test": "jest && npm run test:webview", - "test:webview": "cd webview-ui && npm run test", - "test:extension": "vscode-test", - "prepare": "husky", - "publish:marketplace": "vsce publish && ovsx publish", - "publish": "npm run build && changeset publish && npm install --package-lock-only", - "version-packages": "changeset version && npm install --package-lock-only", - "vscode:prepublish": "npm run package", - "vsix": "mkdir -p bin && npx vsce package --out bin", - "watch": "npm-run-all -p watch:*", - "watch:esbuild": "node esbuild.js --watch", - "watch:tsc": "tsc --noEmit --watch --project tsconfig.json", - "watch-tests": "tsc -p . -w --outDir out" - }, - "devDependencies": { - "@changesets/cli": "^2.27.10", - "@changesets/types": "^6.0.0", - "@types/diff": "^5.2.1", - "@types/diff-match-patch": "^1.0.36", - "@types/jest": "^29.5.14", - "@types/mocha": "^10.0.7", - "@types/node": "20.x", - "@types/string-similarity": "^4.0.2", - "@typescript-eslint/eslint-plugin": "^7.14.1", - "@typescript-eslint/parser": "^7.11.0", - "@vscode/test-cli": "^0.0.9", - "@vscode/test-electron": "^2.4.0", - "dotenv": "^16.4.7", - "esbuild": "^0.24.0", - "eslint": "^8.57.0", - "husky": "^9.1.7", - "jest": "^29.7.0", - "jest-simple-dot-reporter": "^1.0.5", - "lint-staged": "^15.2.11", - "npm-run-all": "^4.1.5", - "ts-jest": "^29.2.5", - "typescript": "^5.4.5" - }, - "dependencies": { - "@anthropic-ai/bedrock-sdk": "^0.10.2", - "@anthropic-ai/sdk": "^0.26.0", - "@anthropic-ai/vertex-sdk": "^0.4.1", - "@aws-sdk/client-bedrock-runtime": "^3.706.0", - "@google/generative-ai": "^0.18.0", - "@mistralai/mistralai": "^1.3.6", - "@modelcontextprotocol/sdk": "^1.0.1", - "@types/clone-deep": "^4.0.4", - "@types/pdf-parse": "^1.1.4", - "@types/tmp": "^0.2.6", - "@types/turndown": "^5.0.5", - "@types/vscode": "^1.95.0", - "@vscode/codicons": "^0.0.36", - "axios": "^1.7.4", - "cheerio": "^1.0.0", - "chokidar": "^4.0.1", - "clone-deep": "^4.0.1", - "default-shell": "^2.2.0", - "delay": "^6.0.0", - "diff": "^5.2.0", - "diff-match-patch": "^1.0.5", - "fast-deep-equal": "^3.1.3", - "fastest-levenshtein": "^1.0.16", - "globby": "^14.0.2", - "isbinaryfile": "^5.0.2", - "mammoth": "^1.8.0", - "monaco-vscode-textmate-theme-converter": "^0.1.7", - "openai": "^4.78.1", - "os-name": "^6.0.0", - "p-wait-for": "^5.0.2", - "pdf-parse": "^1.1.1", - "puppeteer-chromium-resolver": "^23.0.0", - "puppeteer-core": "^23.4.0", - "serialize-error": "^11.0.3", - "simple-git": "^3.27.0", - "sound-play": "^1.1.0", - "string-similarity": "^4.0.4", - "strip-ansi": "^7.1.0", - "tmp": "^0.2.3", - "tree-sitter-wasms": "^0.1.11", - "turndown": "^7.2.0", - "web-tree-sitter": "^0.22.6", - "zod": "^3.23.8" - }, - "lint-staged": { - "src/**/*.{ts,tsx}": [ - "npx eslint -c .eslintrc.json" - ] - } + "name": "roo-cline", + "displayName": "Roo Cline", + "description": "A fork of Cline, an autonomous coding agent, with some added experimental configuration and automation features.", + "publisher": "RooVeterinaryInc", + "version": "3.1.6", + "icon": "assets/icons/rocket.png", + "galleryBanner": { + "color": "#617A91", + "theme": "dark" + }, + "engines": { + "vscode": "^1.84.0" + }, + "author": { + "name": "Roo Vet" + }, + "repository": { + "type": "git", + "url": "https://github.com/RooVetGit/Roo-Cline" + }, + "homepage": "https://github.com/RooVetGit/Roo-Cline", + "categories": [ + "AI", + "Chat", + "Programming Languages", + "Education", + "Snippets", + "Testing" + ], + "keywords": [ + "cline", + "claude", + "dev", + "mcp", + "openrouter", + "coding", + "agent", + "autonomous", + "chatgpt", + "sonnet", + "ai", + "llama" + ], + "activationEvents": [ + "onLanguage", + "onStartupFinished" + ], + "main": "./dist/extension.js", + "contributes": { + "viewsContainers": { + "activitybar": [ + { + "id": "roo-cline-ActivityBar", + "title": "Roo Cline", + "icon": "$(rocket)" + } + ] + }, + "views": { + "roo-cline-ActivityBar": [ + { + "type": "webview", + "id": "roo-cline.SidebarProvider", + "name": "" + } + ] + }, + "commands": [ + { + "command": "roo-cline.plusButtonClicked", + "title": "New Task", + "icon": "$(add)" + }, + { + "command": "roo-cline.mcpButtonClicked", + "title": "MCP Servers", + "icon": "$(server)" + }, + { + "command": "roo-cline.promptsButtonClicked", + "title": "Prompts", + "icon": "$(notebook)" + }, + { + "command": "roo-cline.historyButtonClicked", + "title": "History", + "icon": "$(history)" + }, + { + "command": "roo-cline.popoutButtonClicked", + "title": "Open in Editor", + "icon": "$(link-external)" + }, + { + "command": "roo-cline.settingsButtonClicked", + "title": "Settings", + "icon": "$(settings-gear)" + }, + { + "command": "roo-cline.openInNewTab", + "title": "Open In New Tab", + "category": "Roo Cline" + } + ], + "menus": { + "view/title": [ + { + "command": "roo-cline.plusButtonClicked", + "group": "navigation@1", + "when": "view == roo-cline.SidebarProvider" + }, + { + "command": "roo-cline.promptsButtonClicked", + "group": "navigation@2", + "when": "view == roo-cline.SidebarProvider" + }, + { + "command": "roo-cline.mcpButtonClicked", + "group": "navigation@3", + "when": "view == roo-cline.SidebarProvider" + }, + { + "command": "roo-cline.historyButtonClicked", + "group": "navigation@4", + "when": "view == roo-cline.SidebarProvider" + }, + { + "command": "roo-cline.popoutButtonClicked", + "group": "navigation@5", + "when": "view == roo-cline.SidebarProvider" + }, + { + "command": "roo-cline.settingsButtonClicked", + "group": "navigation@6", + "when": "view == roo-cline.SidebarProvider" + } + ] + }, + "configuration": { + "title": "RooCline", + "properties": { + "roo-cline.allowedCommands": { + "type": "array", + "items": { + "type": "string" + }, + "default": [ + "npm test", + "npm install", + "tsc", + "git log", + "git diff", + "git show" + ], + "description": "Commands that can be auto-executed when 'Always approve execute operations' is enabled" + }, + "roo-cline.vsCodeLmModelSelector": { + "type": "object", + "properties": { + "vendor": { + "type": "string", + "description": "The vendor of the language model (e.g. copilot)" + }, + "family": { + "type": "string", + "description": "The family of the language model (e.g. gpt-4)" + } + }, + "description": "Settings for VSCode Language Model API" + } + } + } + }, + "scripts": { + "build": "npm run build:webview && npm run vsix", + "build:webview": "cd webview-ui && npm run build", + "changeset": "changeset", + "check-types": "tsc --noEmit", + "compile": "npm run check-types && npm run lint && node esbuild.js", + "compile-tests": "tsc -p . --outDir out", + "install:all": "npm install && cd webview-ui && npm install", + "lint": "eslint src --ext ts && npm run lint --prefix webview-ui", + "package": "npm run build:webview && npm run check-types && npm run lint && node esbuild.js --production", + "pretest": "npm run compile-tests && npm run compile && npm run lint", + "start:webview": "cd webview-ui && npm run start", + "test": "jest && npm run test:webview", + "test:webview": "cd webview-ui && npm run test", + "test:extension": "vscode-test", + "prepare": "husky", + "publish:marketplace": "vsce publish && ovsx publish", + "publish": "npm run build && changeset publish && npm install --package-lock-only", + "version-packages": "changeset version && npm install --package-lock-only", + "vscode:prepublish": "npm run package", + "vsix": "mkdir -p bin && npx vsce package --out bin", + "watch": "npm-run-all -p watch:*", + "watch:esbuild": "node esbuild.js --watch", + "watch:tsc": "tsc --noEmit --watch --project tsconfig.json", + "watch-tests": "tsc -p . -w --outDir out" + }, + "devDependencies": { + "@changesets/cli": "^2.27.10", + "@changesets/types": "^6.0.0", + "@types/diff": "^5.2.1", + "@types/diff-match-patch": "^1.0.36", + "@types/jest": "^29.5.14", + "@types/mocha": "^10.0.7", + "@types/node": "20.x", + "@types/string-similarity": "^4.0.2", + "@typescript-eslint/eslint-plugin": "^7.14.1", + "@typescript-eslint/parser": "^7.11.0", + "@vscode/test-cli": "^0.0.9", + "@vscode/test-electron": "^2.4.0", + "dotenv": "^16.4.7", + "esbuild": "^0.24.0", + "eslint": "^8.57.0", + "husky": "^9.1.7", + "jest": "^29.7.0", + "jest-simple-dot-reporter": "^1.0.5", + "lint-staged": "^15.2.11", + "npm-run-all": "^4.1.5", + "prettier": "^3.4.2", + "ts-jest": "^29.2.5", + "typescript": "^5.4.5" + }, + "dependencies": { + "@anthropic-ai/bedrock-sdk": "^0.10.2", + "@anthropic-ai/sdk": "^0.26.0", + "@anthropic-ai/vertex-sdk": "^0.4.1", + "@aws-sdk/client-bedrock-runtime": "^3.706.0", + "@google/generative-ai": "^0.18.0", + "@mistralai/mistralai": "^1.3.6", + "@modelcontextprotocol/sdk": "^1.0.1", + "@types/clone-deep": "^4.0.4", + "@types/pdf-parse": "^1.1.4", + "@types/tmp": "^0.2.6", + "@types/turndown": "^5.0.5", + "@types/vscode": "^1.95.0", + "@vscode/codicons": "^0.0.36", + "axios": "^1.7.4", + "cheerio": "^1.0.0", + "chokidar": "^4.0.1", + "clone-deep": "^4.0.1", + "default-shell": "^2.2.0", + "delay": "^6.0.0", + "diff": "^5.2.0", + "diff-match-patch": "^1.0.5", + "fast-deep-equal": "^3.1.3", + "fastest-levenshtein": "^1.0.16", + "globby": "^14.0.2", + "isbinaryfile": "^5.0.2", + "mammoth": "^1.8.0", + "monaco-vscode-textmate-theme-converter": "^0.1.7", + "openai": "^4.78.1", + "os-name": "^6.0.0", + "p-wait-for": "^5.0.2", + "pdf-parse": "^1.1.1", + "puppeteer-chromium-resolver": "^23.0.0", + "puppeteer-core": "^23.4.0", + "serialize-error": "^11.0.3", + "simple-git": "^3.27.0", + "sound-play": "^1.1.0", + "string-similarity": "^4.0.4", + "strip-ansi": "^7.1.0", + "tmp": "^0.2.3", + "tree-sitter-wasms": "^0.1.11", + "turndown": "^7.2.0", + "web-tree-sitter": "^0.22.6", + "zod": "^3.23.8" + }, + "lint-staged": { + "*.{js,jsx,ts,tsx,json,css,md}": [ + "prettier --write" + ], + "src/**/*.{ts,tsx}": [ + "prettier --write", + "npx eslint -c .eslintrc.json --fix" + ] + } }