Releases: GGULBAE/react-native-image-compression-kit
Release list
v0.4.0
React Native Image Compression Kit v0.4.0
This release makes large-image compression resilient to memory pressure and
moves native work off the React Native and main-thread execution paths while
preserving existing compressImage(options) calls.
Highlights
- Bounded native execution with at most two concurrent compression operations
on Android and iOS. - Decode-time downsampling through
BitmapFactory.inSampleSize,
ImageDecoder.setTargetSize, and ImageIO thumbnails. - Pre-decode source and working-pixel limits with stable
ERR_RESOURCE_LIMITfailures instead of unbounded full-resolution decode. - Optional AbortSignal-compatible cancellation with stable
ERR_CANCELLED
behavior for preflight, queued, and running work. - Transactional cache output that removes incomplete or cancellation-losing
files and only returns fully published results. - Cross-platform JPEG transparency flattening and decode-back-validated PNG and
WebP alpha capabilities.
Install
npm install react-native-image-compression-kit@0.4.0Android requires API 23 or newer and iOS requires 13.4 or newer. Expo requires
a development build or prebuild; Expo Go and Snack remain unsupported.
Public API
Existing calls remain valid:
const result = await compressImage(options);Cancellation is additive:
const controller = new AbortController();
const pending = compressImage(options, { signal: controller.signal });
controller.abort();
await pending;getImageCompressionCapabilities() now also reports bounded concurrency,
decode-downsampling support, cancellation support, and named source/working
pixel limits.
Resource policy
- Maximum source dimension: 32,768 pixels per axis.
- Maximum source pixels: 100,000,000.
- Maximum required decoded working pixels: 25,000,000.
- Large sources remain supported when resize bounds permit safe decode-time
downsampling below the working limit.
Validation
- 364 JavaScript and TypeScript contract tests.
- 75 Android native unit tests plus emulator codec validation.
- 945 iOS native assertions including a real 8000×6000 JPEG.
- React Native 0.73.11 Legacy, React Native 0.86 Legacy/New Architecture, and
Expo 57 development-build consumers on Android and iOS. - Alpha round-trip, target-size cancellation, queue saturation, settle-once,
and output-cleanup coverage.
Known limitations
- HEIC, HEIF, and AVIF output are not implemented.
- Animation preservation, batch compression, and progress events are not
implemented. - Remote URLs and data URIs remain outside the local-source contract.
- WebP and modern input codecs remain runtime capability gated.
- Successful cache files remain application-owned after return.
Full changes are in CHANGELOG.md. Registry provenance and
review evidence are imported after the exact published artifact passes Trusted
Release validation.
v0.3.0
React Native Image Compression Kit v0.3.0
This release turns the package into a verifiable public open source project
without changing the native compression pipeline.
Highlights
- Public installation, picker, capability fallback, metadata, file-lifecycle,
error, testing, API, and compatibility guides. - A native example with gallery input, before/after previews, byte metrics, and
capability-aware controls. - A GitHub Pages site that presents traceable native results rather than
substituting a browser codec. - Community contribution, support, governance, issue, pull request, changelog,
and private security-reporting paths. - Fresh Bare React Native and Expo development-build release matrices.
- Protected exact-source release automation using npm Trusted Publishing OIDC.
Install
npm install react-native-image-compression-kit@0.3.0Android requires API 23 or newer and iOS requires 13.4 or newer. Expo requires
a development build or prebuild; Expo Go and Snack are unsupported.
Compatibility
The release gate covers React Native 0.73.11 Legacy Architecture, React Native
0.86.0 Legacy and New Architecture, and Expo 57 development builds on Android
and iOS. See the public compatibility page for exact evidence.
Public API
Native behavior is unchanged from 0.2.62. The release adds the public
ImageCompressionKitErrorCode TypeScript export and aligns the podspec source
tag with v<version> Git tags.
Known limitations
- HEIC, HEIF, and AVIF output are not implemented.
- Animation preservation and cancellation are not implemented.
- WebP and modern input codecs remain runtime capability gated.
- Outputs are temporary cache files owned by the application after return.
Full changes are in CHANGELOG.md. Registry and review
evidence are imported after the exact published artifact passes validation.
v0.2.62
Highlights
- Refactors package documentation around an npm-user-focused README and repository-only release-evidence docs.
- Replaces brittle prose-coupled documentation checks with semantic status, structure, link, command, and package-exclusion gates.
- Decomposes Android and iOS request, source, transform, metadata, encoder, output, and pipeline ownership boundaries while preserving public API and native behavior.
Package
- npm: https://www.npmjs.com/package/react-native-image-compression-kit/v/0.2.62
- Source commit: 43c1577
The published registry tarball and clean React Native consumer smoke passed before this release was created.
v0.2.17
Status: published to npm as the 0.2.17 latest release, tagged as v0.2.17.
This release does not enable AVIF output. It advances the v0.2.16 Android MediaCodec image/avif prototype from route discovery to a real static-file smoke attempt that either proves a minimal AVIF cache file can be encoded and decoded back, or records the blocker that keeps production AVIF output disabled.
Goals
- Attempt a repo-owned 16x12 Bitmap to AVIF cache-file encode on an API 34+ Android emulator or device.
- Validate the generated file has an
ftypbox withaviforaviscompatible brand. - Decode the generated file with
ImageDecoderand assert 16x12 output dimensions. - Record a clear blocker when no encoder is exposed, the codec route fails, muxing fails, the signature is invalid, or decode-back fails.
- Keep AVIF output capability reporting unchanged until a production path is intentionally implemented.
- Align README, release notes, Android verification doctor checks, Vitest expectations, JVM tests, and Android instrumentation with the smoke result contract.
Findings
- Android platform supported-media documentation lists AVIF baseline image encoder and decoder support as mandatory beginning with Android 14, but the current production implementation still cannot use
Bitmap.compress()for AVIF becauseBitmap.CompressFormathas no AVIF enum. - The smoke route creates a 16x12 ARGB bitmap pattern, converts it into YUV420 input through
MediaCodec.getInputImage(), queues it into animage/avifencoder, and collects encoder output bytes and muxable samples. - The smoke validates direct encoder bytes first, then attempts a
MediaMuxer.MUXER_OUTPUT_HEIFcontainer path and validates the muxed output. - A passing smoke requires both AVIF
ftypavif/avissignature bytes andImageDecoderdecode-back dimensions. Anything less remains a documented blocker, not a partial production feature. - Current GitHub Android Instrumentation on the API 35 Google APIs emulator reports
attempted=false,success=false, and blockerNo image/avif encoder was discovered through MediaCodecList.findEncoderForFormat().; that keeps AVIF output disabled.
Capability Reporting Decision
- v0.2.17 keeps runtime capability reporting unchanged: Android AVIF
input=trueon Android 14+ andoutput=false; iOS AVIF input remains gated byCGImageSourceCopyTypeIdentifiers()and AVIF output remainsfalse. - Android may report AVIF
output=trueonly after the smoke is promoted into a production encode path with metadata, target-size, unsupported-path, and public API behavior tests. metadata: 'preserve'remains unsupported for AVIF output unless explicitly designed and validated.output.maxBytesremains unsupported for AVIF output until AVIF quality and size-search semantics are validated.- Animated AVIF preservation remains out of scope.
Included
package.jsonversion bump to0.2.17.- Internal Android
AndroidAvifOutputPrototype.runEncodeDecodeBackSmoke()route withMediaCodecinput image writing, direct output validation,MediaMuxer.MUXER_OUTPUT_HEIFfallback, AVIF signature checking, andImageDecoderdecode-back validation. - Android JVM tests for smoke blocker reporting below API 34 and when no
image/avifencoder is discovered. - Android instrumentation smoke that runs on API 34+, logs
RNICK_AVIF_OUTPUT_SMOKE, accepts either a validated static AVIF file or a documented blocker, and assertsgetImageCompressionCapabilities().formats.avif.output=false. - README and verification expectations that keep
getImageCompressionCapabilities().formats.avif.output=false. - npm package publication under the
latestdist-tag. - Git tag
v0.2.17and GitHub Releasev0.2.17.
Not Included
- Production AVIF output encoding.
- AVIF output capability enablement.
- HEIC / HEIF output encoding.
- Metadata preservation for AVIF output.
- Target-size AVIF output.
- Animated AVIF preservation.
Release Checklist
Before npm publish:
git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-runAfter npm publish:
npm publish --tag latest
npm view react-native-image-compression-kit version dist-tags time.modified --json
pnpm smoke:registry -- --version 0.2.17
git tag -a v0.2.17 -m "v0.2.17"
git push origin v0.2.17Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release commit. The Android Instrumentation RNICK_AVIF_OUTPUT_SMOKE log must be reviewed. If the route fails to produce a decodeable AVIF file there, keep AVIF output disabled and carry the logged blocker into the next production-path decision.
Publication Results
npm view react-native-image-compression-kit version dist-tags time.modified --jsonconfirmed package version0.2.17,latest: 0.2.17, and registry modified time2026-07-03T09:25:30.216Z.npm view react-native-image-compression-kit@0.2.17 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed tarballhttps://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.17.tgz.- Registry integrity is
sha512-QMoXmU5VL5dPvhJIVe1GPJxK5u2OilbAVzL1UHH8gHaf7nDeL/7Cu2JdDY4yqgCLe+HvYG+MTJNEQ2cqjAsi7g==. - Registry shasum is
a7a99058a1f67f6907e57d3a5080129655b0314b. pnpm smoke:registry -- --version 0.2.17passed against the real registry tarball withfileCount: 50,packageSize: 54863,unpackedSize: 242110, and a clean consumertsc --noEmit.- Published tarball README inspection found pre-publish package-page wording because
0.2.17was published before the post-publish README refresh. The npm tarball is immutable, so correcting the npm package-page README requires a later docs-only package version. - Release promotion gate passed on commit
f142dcb8bccd0d6955048fb9a762356c076d7167: CI, Android Instrumentation, and iOS Validation. - Git tag and GitHub Release:
v0.2.17athttps://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.17.
v0.2.14
Status: published to npm as the 0.2.14 latest release, tagged as v0.2.14.
This release keeps AVIF output unimplemented while making Android and iOS capability reporting, unsupported-output messages, TypeScript guidance, README guidance, and verification checks agree on the same boundary: AVIF input can be supported, but output.format: 'avif' rejects with ERR_NOT_IMPLEMENTED.
Goals
- Keep AVIF output out of scope while making the unsupported output path explicit.
- Align Android and iOS AVIF capability notes around
output=false. - Make native
ERR_NOT_IMPLEMENTEDmessages clear when callers selectoutput.format: 'avif'. - Keep TypeScript validation accepting
avifas a planned output format so native platform capability errors surface intact. - Align README guidance, release notes, Android verification doctor checks, Vitest expectations, Android JVM tests, and iOS host-app smoke assertions.
Included
package.jsonversion bump to0.2.14.- Android AVIF capability notes now say AVIF output reports
output=falseand selectingoutput.format: 'avif'rejects withERR_NOT_IMPLEMENTED. - Android
compressImage()now rejects HEIC, HEIF, and AVIF output with an explicit unsupported-output message naming JPEG, PNG, and WebP as the supported output formats. - Android module tests now assert AVIF output rejects with
ERR_NOT_IMPLEMENTED. - iOS AVIF capability notes now separate animated AVIF preservation from AVIF output, report AVIF output as unsupported, and state that selecting
output.format: 'avif'rejects withERR_NOT_IMPLEMENTED. - iOS
compressImage()now uses an AVIF-specific unsupported-output message foroutput.format: 'avif'. - iOS host-app smoke now asserts the AVIF capability note documents the unsupported AVIF output path.
- TypeScript native-unavailable guidance now describes the current Android/iOS input/output matrix and calls out HEIC, HEIF, and AVIF output as unsupported.
- README status, implementation scope, iOS behavior, Android AVIF input/output guidance, installation/package status, and release dry-run guidance are updated for the
0.2.14release. - Source-level tests and Android verification doctor expectations are updated for the AVIF output unsupported surface release.
- npm package publication under the
latestdist-tag. - Git tag
v0.2.14and GitHub Releasev0.2.14.
Not Included
- AVIF output encoding.
- HEIC / HEIF output encoding.
- Animated AVIF preservation.
- Android or iOS decode behavior changes.
Release Checklist
Before npm publish:
git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-runAfter npm publish:
npm publish --tag latest
pnpm smoke:registry -- --version 0.2.14
git tag -a v0.2.14 -m "v0.2.14"
git push origin v0.2.14Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release commit. After npm publish, the registry smoke must confirm the real 0.2.14 tarball README no longer includes stale candidate package-page status snippets.
Publication Results
npm view react-native-image-compression-kit version dist-tags time.modified --jsonconfirmed package version0.2.14,latest: 0.2.14, and registry modified time2026-07-03T07:12:58.753Z.npm view react-native-image-compression-kit@0.2.14 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed tarballhttps://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.14.tgz.- Registry integrity is
sha512-/rdbK4BvVQZkGKYhUkutQn4z9NwCD4n+9a2cmHxVdE61YTp0+TWOhpDQHVmOmAjA4mwqjXykn2RPimAZ8FOweA==. - Registry shasum is
d49f394ad95935f7326d33e9fb9efeb5cc276f2d. pnpm smoke:registry -- --version 0.2.14passed against the real registry tarball withfileCount: 49,packageSize: 47733,unpackedSize: 213156, and a clean consumertsc --noEmit.- The published tarball README stale-candidate scan found no
v0.2.14 candidate, unpublished release-candidate,latest published npm package is 0.2.13, or unpublished AVIF output capability/error surface candidate package-page snippets. - Release promotion gate passed on commit
2d3d4732f6b2ddc5bb58c100c810e7befb5d539d: CI, Android Instrumentation, and iOS Validation. - Git tag and GitHub Release:
v0.2.14athttps://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.14.
v0.2.13
Status: published to npm as the 0.2.13 latest release, tagged as v0.2.13.
This release hardens the iOS JPEG source to JPEG output metadata: 'preserve'
path so preserved metadata does not retain stale orientation or pixel dimension
values after resize, quality, or output.maxBytes encoding.
Goals
- Normalize iOS preserved JPEG output orientation metadata to
1after rendering. - Update preserved top-level pixel width/height and EXIF
PixelXDimension/PixelYDimensionto the rendered JPEG dimensions. - Keep JPEG source to JPEG output as the only iOS preserve scope.
- Prove the behavior through iOS host-app smoke metadata readback and source-level expectations.
- Align README guidance, release notes, Android verification doctor checks, and Vitest expectations.
Included
package.jsonversion bump to0.2.13.- iOS JPEG preserve encoding now passes final
CGImagedimensions into ImageIO destination properties. - Preserved JPEG metadata normalizes top-level orientation, TIFF orientation, top-level pixel width/height, and EXIF pixel dimensions.
- iOS smoke fixture writes stale TIFF orientation and source-size EXIF pixel dimensions, then verifies preserve output normalizes them to the compressed JPEG result.
- README status, iOS behavior guidance, metadata policy docs, iOS smoke description, and release dry-run guidance are updated for the
0.2.13release. - Source-level tests and Android verification doctor expectations are updated for the iOS JPEG metadata preserve hardening release.
- npm package publication under the
latestdist-tag. - Git tag
v0.2.13and GitHub Releasev0.2.13.
Not Included
- Android runtime behavior changes.
- PNG, WebP, GIF, HEIC, HEIF, or AVIF metadata preserve on iOS.
- New output formats.
Release Checklist
Before npm publish:
git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-runAfter npm publish:
npm publish --tag latest
pnpm smoke:registry -- --version 0.2.13
git tag -a v0.2.13 -m "v0.2.13"
git push origin v0.2.13Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release commit. After npm publish, the registry smoke must confirm the real 0.2.13 tarball README no longer includes stale candidate package-page status snippets.
Publication Results
npm view react-native-image-compression-kit version dist-tags time.modified --jsonconfirmed package version0.2.13,latest: 0.2.13, and registry modified time2026-07-03T06:21:08.749Z.npm view react-native-image-compression-kit@0.2.13 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed tarballhttps://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.13.tgz.- Registry integrity is
sha512-1XklGCG2cUQaXuw7z1AeNxJekleC5IUyCVWRnNWekJAbpae3uXnX1Fa0c43J5w5werqnHSs7kUGcAxcmSo0qEQ==. - Registry shasum is
59af2dc4682fe8445c5f7f02b886f56cd799bb09. pnpm smoke:registry -- --version 0.2.13passed against the real registry tarball withfileCount: 49,packageSize: 47296,unpackedSize: 210816, and a clean consumertsc --noEmit.- Release promotion gate passed on commit
dfaa3763fc3d3a223a6672dbfa934e6bc8100443: CI, Android Instrumentation, and iOS Validation. - Git tag and GitHub Release:
v0.2.13athttps://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.13.
v0.2.12
v0.2.12
Status: published to npm as the 0.2.12 latest release, tagged as v0.2.12.
This release adds the narrow iOS metadata: 'preserve' MVP for JPEG source
to JPEG output. Other iOS format conversions keep the explicit
ERR_NOT_IMPLEMENTED preserve boundary.
Goals
- Support iOS JPEG source to JPEG output with
metadata: 'preserve'. - Keep resize,
output.quality, andoutput.maxBytesJPEG output paths aligned with metadata preserve. - Report iOS
metadataPolicies: ['preserve', 'safe', 'strip']while documenting that preserve is JPEG-to-JPEG only. - Keep PNG/WebP/GIF/HEIC/HEIF/AVIF metadata preservation out of scope.
- Align TypeScript/native error surface, README guidance, release notes, source-level expectations, Android verification doctor checks, and iOS host-app smoke validation.
Included
package.jsonversion bump to0.2.12.- iOS JPEG output now uses ImageIO
CGImageDestination, allowing source JPEG metadata to be copied for JPEG source to JPEG output. - iOS
metadata: 'preserve'rejects withERR_NOT_IMPLEMENTEDunless both input and output are JPEG. - iOS capability reporting now includes
preserve,safe, andstripmetadata policies. - iOS smoke fixtures include a JPEG TIFF Software metadata marker and read it back after preserve compression.
- README status, iOS behavior guidance, metadata policy docs, iOS smoke description, and release dry-run guidance are updated for the
0.2.12release. - Source-level tests and Android verification doctor expectations are updated for the iOS JPEG metadata preserve release.
- npm package publication under the
latestdist-tag. - Git tag
v0.2.12and GitHub Releasev0.2.12.
Not Included
- Android runtime behavior changes.
- PNG, WebP, GIF, HEIC, HEIF, or AVIF metadata preserve on iOS.
- AVIF output, animated AVIF preservation, HEIC/HEIF output, GIF animation preservation, animated WebP preservation, cancellation, or progress support.
Release Checklist
Before npm publish:
git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-runAfter npm publish:
npm publish --tag latest
pnpm smoke:registry -- --version 0.2.12
git tag -a v0.2.12 -m "v0.2.12"
git push origin v0.2.12Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release commit. After npm publish, the registry smoke must confirm the real 0.2.12 tarball README no longer includes stale candidate package-page status snippets.
v0.2.11
Status: published to npm on July 2, 2026 at 08:49:37 UTC (17:49:37 KST), tagged as v0.2.11.
This docs-only patch corrects the README that is shown on the npm package page
after the 0.2.10 tarball shipped release-ready/pre-publish status text. It
keeps Android and iOS runtime behavior unchanged while publishing a new package
version whose packaged README reports the 0.2.11 published package state.
Goals
- Publish a docs-only package version so the npm package page reflects the published state after
0.2.11is released. - Remove stale
0.2.10release-ready/pre-publish package-page status wording from the packaged README. - Keep Android runtime behavior, iOS runtime behavior, and the public TypeScript API unchanged.
- Verify the
0.2.10registry tarball README before preparation and the0.2.11registry tarball README after publish. - Keep the release dry-run packed README stale-status check and post-publish registry smoke flow in place.
Included
package.jsonversion bump to0.2.11.- README status, installation, release guidance, and registry smoke examples updated for the docs-only npm README correction.
- README copy now describes
0.2.11as a docs-only README correction while preserving the0.2.10runtime behavior surface. - Source-level tests and Android verification doctor expectations are updated for the
0.2.11docs-only status. - Release dry-run packed README stale checks now reject the stale
0.2.10release-ready/pre-publish snippets and old0.2.10package-page status snippets. - npm package publication under the
latestdist-tag. - Git tag
v0.2.11and GitHub Releasev0.2.11.
Not Included
- Android or iOS runtime behavior changes.
- Native code changes.
- New public TypeScript API surface.
- AVIF output, animated AVIF preservation, HEIC/HEIF output, iOS metadata preservation, cancellation, or progress support.
v0.2.10 Registry README Inspection
Before preparing this patch, the published 0.2.10 registry tarball README was
checked explicitly:
tmpdir=$(mktemp -d)
npm pack react-native-image-compression-kit@0.2.10 --pack-destination "$tmpdir"
tar -xOf "$tmpdir"/react-native-image-compression-kit-0.2.10.tgz package/README.md | rg -n 'Status: v0\.2\.10 release-ready|It has not been published to npm yet|latest published npm package remains `0\.2\.9`|v0\.2\.10 release-ready notes'
rm -rf "$tmpdir"The inspection found Status: v0.2.10 release-ready, It has not been published to npm yet, the "latest published npm package remains 0.2.9"
wording, and v0.2.10 release-ready notes in the published 0.2.10 README.
Release Checklist
Before npm publish:
git status --short --branch
pnpm verify
pnpm example:typecheck
git diff --check
pnpm pack --dry-run
pnpm release:dry-runAfter npm publish:
npm publish --tag latest
pnpm smoke:registry -- --version 0.2.11
git tag -a v0.2.11 -m "v0.2.11"
git push origin v0.2.11The release dry run includes a packed README stale status check before the consumer smoke and publish dry run. Release promotion also requires GitHub Actions CI, Android Instrumentation, and iOS Validation to pass on the pushed release-ready commit. After npm publish, the registry smoke must confirm the real 0.2.11 tarball README no longer includes the stale 0.2.10 release-ready/pre-publish package-page status snippets.
Release commit validation before npm publish:
- Commit:
be8344f7b5dd884e5d44d9da9ae934976c50d581. - GitHub Actions CI: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28576768326.
- Android Instrumentation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28576768289.
- iOS Validation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28576768307.
- Local pre-publish gate completed successfully before npm publish:
pnpm release:dry-run, includingpnpm verify,pnpm example:typecheck,git diff --check,pnpm pack --dry-run, packed README stale-status check, packed consumer smoke, and publish dry run.
Completed after npm publish and GitHub Release creation:
npm publish --tag latestpublishedreact-native-image-compression-kit@0.2.11.npm view react-native-image-compression-kit@0.2.11 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed version0.2.11, registry tarball URL, integritysha512-JMBebCxcpwdiLspK8s8pIF8xIEpgqxWjO5BZEkBEoCdRp09wvqj8b3UXLczGqXSgcAZtTL+UuE2mF+nptKWDpw==, shasume3c067a00949e93f29f80dee5eabfaaf4bf1fa72, and publish timestamp2026-07-02T08:49:36.915Z.npm view react-native-image-compression-kit dist-tags version --jsonconfirmedlatestdist-tag0.2.11.- npm package:
react-native-image-compression-kit@0.2.11 - npm tarball:
https://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.11.tgz - npm integrity:
sha512-JMBebCxcpwdiLspK8s8pIF8xIEpgqxWjO5BZEkBEoCdRp09wvqj8b3UXLczGqXSgcAZtTL+UuE2mF+nptKWDpw== - npm shasum:
e3c067a00949e93f29f80dee5eabfaaf4bf1fa72 - Git tag:
v0.2.11 - GitHub Release: https://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.11.
- Registry smoke confirmed 49 files, 46.4 kB package size, 204.3 kB unpacked size, clean
npm install --ignore-scripts --legacy-peer-deps, and public TypeScript import/typecheck success. - Registry tarball README stale-status check passed for the
0.2.11package-page status.
v0.2.10
v0.2.10
Status: published to npm on July 2, 2026 at 07:52:44 UTC (16:52:44 KST), tagged as v0.2.10.
This release adds capability-gated iOS AVIF input. iOS decodes AVIF as a static image through ImageIO only when the runtime advertises AVIF source support, then routes the decoded image through the existing JPEG, PNG, or runtime-gated WebP output paths. Runtimes without ImageIO AVIF source support keep the explicit ERR_UNSUPPORTED_FORMAT path.
Included
package.jsonversion bump to0.2.10.- iOS
getImageCompressionCapabilities()reports AVIFinput=trueonly whenCGImageSourceCopyTypeIdentifiers()advertises an AVIF source type, and always reports AVIFoutput=false. - iOS
compressImage()accepts AVIF input only on runtimes with ImageIO AVIF source support. - Supported iOS AVIF input is decoded as a static image with
CGImageSourceCreateImageAtIndex. - AVIF input can be re-encoded to JPEG, PNG, or runtime-available ImageIO WebP output.
- README, RELEASE, source-level tests, Android verification doctor expectations, and registry smoke guidance are aligned to the published
0.2.10state.
Not Included
- Android runtime behavior changes.
- AVIF output.
- Animated AVIF preservation.
- HEIC/HEIF output.
- iOS metadata preservation.
- Cancellation or progress support.
- New public TypeScript API surface.
Validation
Release-ready commit before npm publish: d8d3232d74e66158d1de297783e3fc39448f1684.
Post-publish documentation commit: 0973f29.
GitHub Actions on the release-ready commit:
- CI: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28573553093
- Android Instrumentation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28573553082
- iOS Validation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28573553073
GitHub Actions on the post-publish commit:
- CI: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28574674621
- Android Instrumentation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28574674649
- iOS Validation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28574674661
Local gates completed successfully:
pnpm release:dry-runbefore publish, including packed README stale-status check, consumer smoke, and publish dry run.pnpm verifypnpm example:typecheckgit diff --checkpnpm pack --dry-runpnpm smoke:registry -- --version 0.2.10
Completed after npm publish:
npm publish --tag latestpublishedreact-native-image-compression-kit@0.2.10.npm view react-native-image-compression-kit version dist-tags --jsonconfirmedlatestdist-tag0.2.10.npm view react-native-image-compression-kit@0.2.10 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed version0.2.10, publish timestamp2026-07-02T07:52:43.911Z, integritysha512-73bAB8tcLrQ7o2iletdLYWEry1VRn3vIWyhYy+/RDGAj9MLho5aKJJtnx92eDgtQOW3s9r48qtCcJByPVwnfxw==, and shasum1890e78917538d2e27d3274e97a0820c5597a827.pnpm smoke:registry -- --version 0.2.10passed with 49 files, 46.4 kB package size, 204.3 kB unpacked size, clean install, and public TypeScript import/typecheck success.
npm package: react-native-image-compression-kit@0.2.10
npm tarball: https://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.10.tgz
Git tag: v0.2.10
v0.2.9
v0.2.9
Status: published to npm on July 2, 2026 at 06:24:49 UTC (15:24:49 KST), tagged as v0.2.9.
This docs-only patch corrects the README shown on the npm package page. Android runtime behavior, iOS runtime behavior, and the public TypeScript API are unchanged from 0.2.8.
Included
package.jsonversion bump to0.2.9.- README status, installation, release guidance, and registry smoke examples updated for the npm package-page correction.
- Packaged README no longer carries the stale
0.2.8candidate/unpublished/latest-0.2.7 wording that shipped in the0.2.8tarball. - Source-level tests and Android verification doctor expectations updated for the
0.2.9docs-only status.
Not Included
- Android or iOS runtime behavior changes.
- New public TypeScript API surface.
- AVIF output, HEIC/HEIF output, iOS metadata preservation, cancellation, or progress support.
- Changes to npm package file globs or install-time lifecycle behavior.
Validation
Release commit: 770bb06b2c0dc8b2e186cd799e647f6fdcac9fa8.
GitHub Actions on the release commit:
- CI: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28568919988
- Android Instrumentation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28568919982
- iOS Validation: https://github.com/GGULBAE/react-native-image-compression-kit/actions/runs/28568919984
Local pre-publish gate completed successfully before npm publish:
pnpm verifypnpm example:typecheckgit diff --checkpnpm pack --dry-run- packed tarball README stale-status grep check
pnpm smoke:registry -- --version 0.2.8
Completed after npm publish:
npm publish --tag latestpublishedreact-native-image-compression-kit@0.2.9.npm view react-native-image-compression-kit version dist-tags versions --jsonconfirmedlatestdist-tag0.2.9.npm view react-native-image-compression-kit@0.2.9 version dist.tarball dist.integrity dist.shasum time.modified --jsonconfirmed version0.2.9, publish timestamp2026-07-02T06:24:49.065Z, integritysha512-Q/z8QZdsEl85Q9IhO31gv3/OAfGXh5FS7O3kBKJouzlnvtbTYCS+zgGYKrDNNq7x1rIVHQAxKXmeNJpoMwxWqw==, and shasum11882a2c1fff4b21648ebbfb773c6ae5aabad638.pnpm smoke:registry -- --version 0.2.9passed with 49 files, 45.4 kB package size, 198.3 kB unpacked size, clean install, and public TypeScript import/typecheck success.- Registry tarball README stale-status grep check passed.
npm package: react-native-image-compression-kit@0.2.9
npm tarball: https://registry.npmjs.org/react-native-image-compression-kit/-/react-native-image-compression-kit-0.2.9.tgz
Git tag: v0.2.9