Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
- Added Image Resize with pixel and percentage modes, aspect-ratio preservation, optional enlargement, Original/JPEG/PNG/WebP output, and local batch ZIP saving.
- Added Image Compressor with Original/JPEG/PNG/WebP output, truthful format-specific quality behavior, unchanged dimensions, and local batch ZIP saving.
- Added the single-file Image Metadata Inspector & Cleaner for JPEG, PNG, and WebP with honest partial/opaque reporting, authoritative Privacy Clean, ICC preservation, and fail-closed verification before save.
- Pinned the immutable `secure-metadata v0.1.0` browser Release artifact as a same-origin dependency with exact provenance and SHA-256 release-gate coverage.
- Pinned the immutable `secure-metadata v0.1.1` browser Release artifact as a same-origin dependency with exact provenance and SHA-256 release-gate coverage.
- Added per-file and aggregate compression metrics that distinguish byte savings from larger generated results.
- Added per-image output dimension/pixel checks and a 200-megapixel aggregate resize-output workload limit.
- Added JPEG, PNG, and WebP input/output, lossy quality controls for JPEG/WebP, deterministic white JPEG transparency, metadata-stripping canvas re-encoding, collision-safe Unicode names, and ZIP batch output.
Expand All @@ -17,6 +17,8 @@
### Changed

- Hardened v2 promotion gates for all ten production tools, vendored-resource integrity, local-only network invariants, save failure paths, and resource boundaries.
- Upgraded secure-metadata to v0.1.1 so JPEG Privacy Clean preserves one valid rendering Orientation while removing other targeted EXIF/GPS data without decoding or re-encoding pixels.
- Aligned Image and PDF Metadata action panels and bounded their primary decoded summaries while retaining complete details.
- Corrected canonical repository links and extended integration CI to `v2` pushes.
- Narrowed homepage and category privacy copy to production file-content processing and localized shared navigation and summary accessible names across all six interface languages.
- Added a live v2 promotion QA matrix that keeps blocked browser evidence separate from passing automated checks.
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,10 @@ Image Compressor is available at `/tools/image/compress/` on the v2 integration
Image Metadata Inspector & Cleaner is available at `/tools/image/metadata/` on the v2 integration branch.

- Accepts exactly one signature-validated JPEG, PNG, or WebP file and enforces the application’s 50 MiB limit before full inspection.
- Uses the manually pinned, same-origin `secure-metadata v0.1.0` browser artifact. No npm package, CDN, runtime GitHub request, or automatic version check is used.
- Shows the local source thumbnail, detected format, size, and a keyboard-accessible remove/reset path. Decoded values are primary; opaque containers, coverage, and diagnostics remain available in a native details disclosure.
- Uses the manually pinned, same-origin `secure-metadata v0.1.1` browser artifact. No npm package, CDN, runtime GitHub request, or automatic version check is used.
- Shows the local source thumbnail, detected format, size, and a keyboard-accessible remove/reset path. Up to six high-value decoded fields are shown first; all decoded values, opaque containers, coverage, and diagnostics remain available in a native details disclosure.
- Presents `metadata-partial` as successful but non-exhaustive. “No supported metadata detected” is not a claim that the file contains no metadata.
- Privacy Clean calls the library’s authoritative default policy: supported EXIF, XMP, IPTC, comments, PNG text metadata, and timestamps are removed while ICC color profiles are preserved.
- Privacy Clean calls the library’s authoritative default policy: supported privacy-related EXIF, XMP, IPTC, comments, PNG text metadata, and timestamps are removed while valid JPEG rendering orientation and ICC color profiles are preserved.
- Customize exposes only supported class-level removal controls for the detected format. Unselected supported classes and unknown structures are preserved; individual metadata-value editing is not offered.
- Keeps source bytes unchanged and never decodes pixels, creates Canvas, resizes, converts, changes quality, or re-encodes the image.
- Calls `verifyMetadata` on cleaned bytes and requires a valid result with every policy check passing before saving. Invalid, incomplete, truncated, or mismatched results fail closed with no output write.
Expand Down Expand Up @@ -331,10 +331,10 @@ All processing libraries are pinned and served as same-origin static files. Prod

### secure-metadata

- Version/tag: `v0.1.0`
- Release commit: `352258ec413a838dfe8b9146370505f125b5ae10`
- Version/tag: `v0.1.1`
- Release commit: `cdcd138e48d30618b6d76f7c6538cd43ad660b53`
- Purpose: local JPEG, PNG, and WebP metadata inspection, Privacy Clean, and fail-closed verification
- Browser artifact SHA-256: `8d0b8a1addf904760aa1f52378fb05eed6540520cb05fe2320d77011cba69c28`
- Browser artifact SHA-256: `4bfcc9e0e484db12192e46f076c19cf69cd36c496c7cfbb5a71c1057cbcccba1`
- License: MIT
- Runtime dependencies: 0
- Integration: manually pinned same-origin GitHub Release artifact; not an npm runtime dependency
Expand Down
28 changes: 16 additions & 12 deletions assets/vendor/secure-metadata/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
# secure-metadata

Manually pinned browser artifact for local image metadata inspection, cleaning, and verification.
This directory contains the approved same-origin browser runtime used by Image Metadata Inspector & Cleaner.

## Provenance

- Library: `secure-metadata`
- Version: `0.1.0`
- Repository: `SecureToolsProject/Secure_Metadata`
- Release tag: `v0.1.0`
- Release commit: `352258ec413a838dfe8b9146370505f125b5ae10`
- Artifact: `secure-metadata-0.1.0.browser.js`
- SHA-256: `8d0b8a1addf904760aa1f52378fb05eed6540520cb05fe2320d77011cba69c28`
- License: MIT; see `LICENSE`
- Version: `0.1.1`
- Source repository: `SecureToolsProject/Secure_Metadata`
- Release tag: `v0.1.1`
- Release commit: `cdcd138e48d30618b6d76f7c6538cd43ad660b53`
- Browser artifact: `secure-metadata-0.1.1.browser.js`
- Browser artifact SHA-256: `4bfcc9e0e484db12192e46f076c19cf69cd36c496c7cfbb5a71c1057cbcccba1`
- Package artifact: `secure-metadata-0.1.1.tgz`
- Package artifact SHA-256: `4ecaedeeac12ddda1821afb93f0b9f9adc2323b38c7f865ad9b026550fd4305d`
- License: MIT
- Runtime dependencies: 0
- Integration: manually pinned, same-origin
- Upgrade policy: explicit reviewed replacement only

The browser artifact was downloaded from the GitHub `v0.1.0` Release and checked locally against both the published `SHA256SUMS` manifest and the approved hash above. Its bytes are unchanged: it was not rebuilt, minified, reformatted, concatenated, or stripped. `LICENSE` and `package.json` were copied from the immutable `v0.1.0` tag.
## Integrity and runtime use

The browser and package artifacts were downloaded from the immutable GitHub `v0.1.1` Release and checked locally against the published `SHA256SUMS` manifest and GitHub asset digests. The browser bytes are unchanged and match the browser build inside the published package: they were not rebuilt, minified, reformatted, concatenated, or stripped. `LICENSE` and `package.json` were taken from that published package.

Secure Tools imports this file only through `tools/image/metadata/metadata.js`. Production pages do not load secure-metadata from npm, a CDN, GitHub, or another runtime origin. Updates require a new explicit provenance and hash review.
Secure Tools imports the browser artifact only through `tools/image/metadata/metadata.js`. Production pages do not load secure-metadata from npm, a CDN, GitHub, or another runtime origin. Updates require a new explicit provenance and hash review.
2 changes: 1 addition & 1 deletion assets/vendor/secure-metadata/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "secure-metadata",
"version": "0.1.0",
"version": "0.1.1",
"description": "Deterministic, security-conscious metadata tooling for binary image formats.",
"license": "MIT",
"type": "module",
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading