From 153caa5430d63b0553cc4ad4f05ed606caf38a48 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 07:51:45 +0000 Subject: [PATCH] chore: version bump --- .changeset/initial-release.md | 31 ------------------------------- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ package.json | 6 ++++-- 3 files changed, 37 insertions(+), 33 deletions(-) delete mode 100644 .changeset/initial-release.md create mode 100644 CHANGELOG.md diff --git a/.changeset/initial-release.md b/.changeset/initial-release.md deleted file mode 100644 index f7b215b..0000000 --- a/.changeset/initial-release.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -'@cyb3rcore/sharpify': minor ---- - -Initial release of `@cyb3rcore/sharpify` — a Fastify plugin for on-the-fly image transformation with sharp. - -Commits included: - -- `aa94c26` — chore: scaffold project structure -- `97181e5` — feat: add type definitions (SharpifyOptions, NormalizedParams, FormatResult) -- `2546b47` — feat: add param parsing with security caps (parseParams, normalizeParams) -- `9f183ea` — feat: add format negotiation with Accept header (negotiateFormat, getFormatOptions) -- `3d5c87f` — feat: add cache key computation and LRU manager (computeCacheKey, CacheManager) -- `d32b650` — fix: make prune tests write files in subdirectories that prune actually scans -- `8d7eaf9` — feat: add sharp pipeline builder with all operations (buildPipeline, transformAndCache) -- `472ebc5` — feat: add plugin registration with route handler (sharpifyPlugin) -- `39fd1df` — fix: address final review — propagate format negotiation, prune cache, add error tests -- `bd557b4` — ci: add CI/CD workflows with changesets release pipeline - -### Features - -- On-the-fly image resize, format conversion, and processing via URL query params (`?w=400&fmt=webp&q=80`) -- Accept-header content negotiation (AVIF > WebP > JPEG > PNG) -- 30+ sharp operations: resize, crop, blur, sharpen, rotate, greyscale, modulate, tint, trim, flip, flop, normalize, negate, gamma, threshold, median, linear, pad, strip-alpha -- Disk cache with SHA-256 key, two-char subdirectory layout, LRU eviction -- Atomic cache writes (`.tmp` + `renameSync`) -- Full `@fastify/static` integration via `reply.sendFile()` -- DoS protections: dimension caps (max 4096), processing timeout (30s), concurrency semaphore, without-enlargement guard, path traversal prevention -- Error fallback: processing failures serve the original image -- Per-derivative Cache-Control via `setHeaders` -- Format-specific options: progressive JPEG, mozjpeg, lossless WebP/AVIF, indexed PNG, chroma subsampling, encoding effort diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..dfec451 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,33 @@ +# @cyb3rcore/sharpify + +## 0.2.0 + +### Minor Changes + +- ae55e9d: Initial release of `@cyb3rcore/sharpify` — a Fastify plugin for on-the-fly image transformation with sharp. + + Commits included: + + - `aa94c26` — chore: scaffold project structure + - `97181e5` — feat: add type definitions (SharpifyOptions, NormalizedParams, FormatResult) + - `2546b47` — feat: add param parsing with security caps (parseParams, normalizeParams) + - `9f183ea` — feat: add format negotiation with Accept header (negotiateFormat, getFormatOptions) + - `3d5c87f` — feat: add cache key computation and LRU manager (computeCacheKey, CacheManager) + - `d32b650` — fix: make prune tests write files in subdirectories that prune actually scans + - `8d7eaf9` — feat: add sharp pipeline builder with all operations (buildPipeline, transformAndCache) + - `472ebc5` — feat: add plugin registration with route handler (sharpifyPlugin) + - `39fd1df` — fix: address final review — propagate format negotiation, prune cache, add error tests + - `bd557b4` — ci: add CI/CD workflows with changesets release pipeline + + ### Features + + - On-the-fly image resize, format conversion, and processing via URL query params (`?w=400&fmt=webp&q=80`) + - Accept-header content negotiation (AVIF > WebP > JPEG > PNG) + - 30+ sharp operations: resize, crop, blur, sharpen, rotate, greyscale, modulate, tint, trim, flip, flop, normalize, negate, gamma, threshold, median, linear, pad, strip-alpha + - Disk cache with SHA-256 key, two-char subdirectory layout, LRU eviction + - Atomic cache writes (`.tmp` + `renameSync`) + - Full `@fastify/static` integration via `reply.sendFile()` + - DoS protections: dimension caps (max 4096), processing timeout (30s), concurrency semaphore, without-enlargement guard, path traversal prevention + - Error fallback: processing failures serve the original image + - Per-derivative Cache-Control via `setHeaders` + - Format-specific options: progressive JPEG, mozjpeg, lossless WebP/AVIF, indexed PNG, chroma subsampling, encoding effort diff --git a/package.json b/package.json index 4d00bd1..a13ca40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cyb3rcore/sharpify", - "version": "0.1.0", + "version": "0.2.0", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -10,7 +10,9 @@ "import": "./dist/index.js" } }, - "files": ["dist"], + "files": [ + "dist" + ], "scripts": { "build": "tsc", "test": "vitest run",