diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9cd11b4..40f332d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,7 +25,7 @@ updates: # @types/node majors: these types decide what Node API the code may compile # against, so they must not exceed the runtime. VS Code 1.132's extension # host runs Node 24.18.0 (measured, via ELECTRON_RUN_AS_NODE), and - # `engines.vscode: ^1.134.0` puts the floor lower still. A bump past that + # `engines.vscode: ^1.136.0` puts the floor lower still. A bump past that # passes CI — nothing reaches for a newer API *yet* — which is precisely why # CI cannot be what catches it. Same rule as @types/vscode, where the types # floor is also the ceiling. Revisit when the host moves. diff --git a/CHANGELOG.md b/CHANGELOG.md index 3788c1c..7d073c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.5.0] - 2026-09-07 + +**Breaking: VS Code 1.136 or later is now required**, up from 1.134, in step with +`@types/vscode` moving to `~1.136.0`. The two have to move together — `vsce` +refuses to package an extension whose `@types/vscode` outruns its +`engines.vscode`, and raising only the types would let code compile against an +API the declared floor does not have. + +The floor is inherited: `@kkdev92/vscode-ext-kit` 5.0.0 raised its own +`engines.vscode` to `^1.136.0`, and every extension built on it declares at least +the same. Nothing this extension does changed — pasting, saving and the image +handling behave exactly as in 0.4.x. Installations on an older VS Code keep +0.4.x and stop receiving updates. + +### Changed + +- **Breaking:** `engines.vscode` raised from `^1.134.0` to `^1.136.0`, with + `@types/vscode` at `~1.136.0` to match. +- `@kkdev92/vscode-ext-kit` `^4.1.0` → `^5.0.0`. The only change in that major is + the VS Code floor; the API it exposes is byte-for-byte what 4.1.1 exposed. + ### Fixed - **The Marketplace version badge could render as a broken image.** The host @@ -325,7 +346,8 @@ Initial release. (PNG/JPEG/WebP) and quality. - Path validation and sanitization to keep saved files inside the workspace. -[Unreleased]: https://github.com/kkdev92/clipshot/compare/v0.4.1...HEAD +[Unreleased]: https://github.com/kkdev92/clipshot/compare/v0.5.0...HEAD +[0.5.0]: https://github.com/kkdev92/clipshot/compare/v0.4.1...v0.5.0 [0.4.1]: https://github.com/kkdev92/clipshot/compare/v0.4.0...v0.4.1 [0.4.0]: https://github.com/kkdev92/clipshot/compare/v0.3.2...v0.4.0 [0.3.2]: https://github.com/kkdev92/clipshot/compare/v0.3.1...v0.3.2 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 64e6852..6599733 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ Please be respectful and constructive in all interactions. - Node.js 22.12 or later (what CI builds on) - npm 10.x or later -- VS Code 1.134.0 or later — the minimum the extension declares +- VS Code 1.136.0 or later — the minimum the extension declares - Git ### Development Setup diff --git a/README.md b/README.md index 7db3380..c329f71 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,7 @@ For the full policy and for vulnerability reporting, see [SECURITY.md](SECURITY. ## Platform Requirements -- **VS Code 1.134 or later** +- **VS Code 1.136 or later** - Windows, macOS or Linux, on x64 or ARM64 | Platform | Needs | @@ -280,9 +280,9 @@ instead of all six. VS Code picks the right one for you. CI runs the test suite on Windows, macOS and Linux, and builds and verifies all six. -> **Upgrading?** The minimum VS Code version is now 1.134 — it was 1.125 from -> 0.3.0, and 1.96 before that. Older installations keep the version they have -> and stop receiving updates. +> **Upgrading?** The minimum VS Code version is now 1.136 — it was 1.134 from +> 0.4.0, 1.125 from 0.3.0, and 1.96 before that. Older installations keep the +> version they have and stop receiving updates. --- diff --git a/package-lock.json b/package-lock.json index ac9e02d..6553134 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "clipshot", - "version": "0.4.1", + "version": "0.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "clipshot", - "version": "0.4.1", + "version": "0.5.0", "bundleDependencies": [ "sharp" ], @@ -16,10 +16,10 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@kkdev92/vscode-ext-kit": "^4.1.0", + "@kkdev92/vscode-ext-kit": "^5.0.0", "@types/mocha": "^10.0.10", "@types/node": "^22.20.1", - "@types/vscode": "~1.134.0", + "@types/vscode": "~1.136.0", "@vitest/coverage-v8": "^4.1.11", "@vscode/test-electron": "^3.1.0", "@vscode/vsce": "^3.9.2", @@ -29,12 +29,12 @@ "mocha": "^12.0.0", "rimraf": "^6.1.3", "typescript": "~6.0.3", - "typescript-eslint": "^8.68.0", + "typescript-eslint": "^8.69.0", "vitest": "^4.0.18" }, "engines": { "node": ">=22.12.0", - "vscode": "^1.134.0" + "vscode": "^1.136.0" } }, "node_modules/@azu/format-text": { @@ -1548,9 +1548,9 @@ } }, "node_modules/@kkdev92/vscode-ext-kit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@kkdev92/vscode-ext-kit/-/vscode-ext-kit-4.1.0.tgz", - "integrity": "sha512-TiwfqvLhgQW5oaFCkjPY4zyK+S6QaJ+7AxRA633QClM8j8Yg7fR26jk9K0gWnrw7oi9cokeSNpJo2IjeGbTDsQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@kkdev92/vscode-ext-kit/-/vscode-ext-kit-5.0.0.tgz", + "integrity": "sha512-YDa07SyrLx5wNkAFJgJdNSlvfDrgjHtzwTeIrxdIJ9cP0yEfF/NUaYUZyYB5Y7BgkKKUGPzCcpBkLq2Ge4F04A==", "dev": true, "license": "MIT", "bin": { @@ -1558,7 +1558,7 @@ }, "engines": { "node": ">=22.12.0", - "vscode": "^1.134.0" + "vscode": "^1.136.0" }, "peerDependencies": { "vitest": ">=4" @@ -2246,24 +2246,24 @@ "license": "MIT" }, "node_modules/@types/vscode": { - "version": "1.134.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.134.0.tgz", - "integrity": "sha512-NDEu0hg4sF7+vvFsADsktqUJ6f80LHSZvVK2Ovo1XiQ0/VHck1O3zst+ZZyVA/uvz6vo6LcuoqU2q48YMqOwWw==", + "version": "1.136.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.136.0.tgz", + "integrity": "sha512-DO746VAfnHk8+Y8CsUKYMm2rjWD0mxEuYBZI+ssaqJY7yvLJPf9lcwxSSz9W60gbdvdcGyvHQxHTyByfF9mVqg==", "dev": true, "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.68.0.tgz", - "integrity": "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.69.0.tgz", + "integrity": "sha512-t5jQTKPIgVW1PE6dR6H6Qz5gm8zjMlX5/2gRaOGd9eO6V7J+tQc6iWKukEe7dY8u9HyYasQ0yfF0/FSSTEO2gA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/type-utils": "8.68.0", - "@typescript-eslint/utils": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/scope-manager": "8.69.0", + "@typescript-eslint/type-utils": "8.69.0", + "@typescript-eslint/utils": "8.69.0", + "@typescript-eslint/visitor-keys": "8.69.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -2276,15 +2276,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.68.0", + "@typescript-eslint/parser": "^8.69.0", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", - "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.8.tgz", + "integrity": "sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==", "dev": true, "license": "MIT", "engines": { @@ -2292,16 +2292,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.68.0.tgz", - "integrity": "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.69.0.tgz", + "integrity": "sha512-l4b0DhWioGg6Gt2ebGlvfkFMOjRsauxtsnDRwUSRX1qHq3HdTfQHV8wW9zEXeciai6HfeaKOedQn2Zoofx3WBw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/scope-manager": "8.69.0", + "@typescript-eslint/types": "8.69.0", + "@typescript-eslint/typescript-estree": "8.69.0", + "@typescript-eslint/visitor-keys": "8.69.0", "debug": "^4.4.3" }, "engines": { @@ -2317,14 +2317,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.68.0.tgz", - "integrity": "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.69.0.tgz", + "integrity": "sha512-yi4obFrHMmnsesWehHbkg9zMA7Jt8cXT+mKM08G999pH1yT6nqgsHx7MYm0uY1wAj8CqiBXYRJ7WAT0QdQHQXg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.68.0", - "@typescript-eslint/types": "^8.68.0", + "@typescript-eslint/tsconfig-utils": "^8.69.0", + "@typescript-eslint/types": "^8.69.0", "debug": "^4.4.3" }, "engines": { @@ -2339,14 +2339,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.68.0.tgz", - "integrity": "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.69.0.tgz", + "integrity": "sha512-ewfspqWvSxKSOaplqAUNbaSFO0eB6w1EtQ+esfYFRm3614Ty4uNtExkcbgd6nWsXphbqKyf9ZYdbZdv2xEoWEQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0" + "@typescript-eslint/types": "8.69.0", + "@typescript-eslint/visitor-keys": "8.69.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2357,9 +2357,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz", - "integrity": "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.69.0.tgz", + "integrity": "sha512-xNqK7YTDZsLniQMV/4rpFR8Z5JlqeRvVjuG1YgF/mdPVH84HSD19L8CczMA0qg2RfwEV231GHH3VnToJDo4MfQ==", "dev": true, "license": "MIT", "engines": { @@ -2374,15 +2374,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.68.0.tgz", - "integrity": "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.69.0.tgz", + "integrity": "sha512-ZfoJAVg3JZndQEpEl9petVlxau3lRuElc4HRMuAlLCf8to04/iHz692RUSNmXKDjEuJmIL+KZ2/BsOcBc16dsA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/utils": "8.68.0", + "@typescript-eslint/types": "8.69.0", + "@typescript-eslint/typescript-estree": "8.69.0", + "@typescript-eslint/utils": "8.69.0", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -2399,9 +2399,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.68.0.tgz", - "integrity": "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.69.0.tgz", + "integrity": "sha512-K3VrubUPhlo9VDBS6QdI8YB5j7ClpqLRdefcz6PFrhnwicehBweqQ9Evhl4l+FYz0HdDmMqIiSX0aldGRYtDCA==", "dev": true, "license": "MIT", "engines": { @@ -2413,16 +2413,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.68.0.tgz", - "integrity": "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.69.0.tgz", + "integrity": "sha512-AdFkgqck3Vudb/kWnxlyafU/4aBhHrbQ9locP2N4psXTy5mOBg0SHJumnLvx7r6g1gV4DKvUFwV2nJZBoqOD8w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.68.0", - "@typescript-eslint/tsconfig-utils": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/project-service": "8.69.0", + "@typescript-eslint/tsconfig-utils": "8.69.0", + "@typescript-eslint/types": "8.69.0", + "@typescript-eslint/visitor-keys": "8.69.0", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -2441,16 +2441,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.68.0.tgz", - "integrity": "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.69.0.tgz", + "integrity": "sha512-tUbx60BBqQa31kXF5MCsOOLL5E/WzUuxIn7YpAvq+eaUlqvk8/NXnXMBNAdLCr0icjkzem7iUA5QqWHe/hJ1aw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0" + "@typescript-eslint/scope-manager": "8.69.0", + "@typescript-eslint/types": "8.69.0", + "@typescript-eslint/typescript-estree": "8.69.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2465,13 +2465,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.68.0.tgz", - "integrity": "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.69.0.tgz", + "integrity": "sha512-+rmdgPA+EXkNgKYvHvFfhrs35utXbwaC5PGpDquSXcoXQDKUA5UjV0LmTucG/4JXkM31BTu4TilHtrN8IVBe8w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/types": "8.69.0", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -7532,16 +7532,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.68.0.tgz", - "integrity": "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ==", + "version": "8.69.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.69.0.tgz", + "integrity": "sha512-B3MltX0VqjUBNEe3b3sSuiRbfa6XrfHFtBiPamjT5AsW/dfq+y+bc0wyuS9DxAS1LyzCxRp2+rxzpLUvqM2BvA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.68.0", - "@typescript-eslint/parser": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/utils": "8.68.0" + "@typescript-eslint/eslint-plugin": "8.69.0", + "@typescript-eslint/parser": "8.69.0", + "@typescript-eslint/typescript-estree": "8.69.0", + "@typescript-eslint/utils": "8.69.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 8c59ccf..2e1bba8 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "clipshot", "displayName": "ClipShot", "description": "Paste clipboard images with automatic file saving - perfect for AI chat and documentation", - "version": "0.4.1", + "version": "0.5.0", "publisher": "kkdev92", "author": { "name": "kkdev92", @@ -19,7 +19,7 @@ }, "engines": { "node": ">=22.12.0", - "vscode": "^1.134.0" + "vscode": "^1.136.0" }, "categories": [ "AI", @@ -249,10 +249,10 @@ }, "devDependencies": { "@eslint/js": "^10.0.1", - "@kkdev92/vscode-ext-kit": "^4.1.0", + "@kkdev92/vscode-ext-kit": "^5.0.0", "@types/mocha": "^10.0.10", "@types/node": "^22.20.1", - "@types/vscode": "~1.134.0", + "@types/vscode": "~1.136.0", "@vitest/coverage-v8": "^4.1.11", "@vscode/test-electron": "^3.1.0", "@vscode/vsce": "^3.9.2", @@ -262,7 +262,7 @@ "mocha": "^12.0.0", "rimraf": "^6.1.3", "typescript": "~6.0.3", - "typescript-eslint": "^8.68.0", + "typescript-eslint": "^8.69.0", "vitest": "^4.0.18" }, "dependencies": {