Skip to content

Releases: GGULBAE/react-native-image-compression-kit

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 11:13
Immutable release. Only release title and notes can be modified.
6841a88

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_LIMIT failures 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.0

Android 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

Choose a tag to compare

@github-actions github-actions released this 18 Jul 11:50
Immutable release. Only release title and notes can be modified.
f8ad71f

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.0

Android 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

Choose a tag to compare

@GGULBAE GGULBAE released this 17 Jul 05:55

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

The published registry tarball and clean React Native consumer smoke passed before this release was created.

v0.2.17

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 10:53

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 ftyp box with avif or avis compatible brand.
  • Decode the generated file with ImageDecoder and 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 because Bitmap.CompressFormat has no AVIF enum.
  • The smoke route creates a 16x12 ARGB bitmap pattern, converts it into YUV420 input through MediaCodec.getInputImage(), queues it into an image/avif encoder, and collects encoder output bytes and muxable samples.
  • The smoke validates direct encoder bytes first, then attempts a MediaMuxer.MUXER_OUTPUT_HEIF container path and validates the muxed output.
  • A passing smoke requires both AVIF ftyp avif / avis signature bytes and ImageDecoder decode-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 blocker No 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=true on Android 14+ and output=false; iOS AVIF input remains gated by CGImageSourceCopyTypeIdentifiers() and AVIF output remains false.
  • Android may report AVIF output=true only 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.maxBytes remains unsupported for AVIF output until AVIF quality and size-search semantics are validated.
  • Animated AVIF preservation remains out of scope.

Included

  • package.json version bump to 0.2.17.
  • Internal Android AndroidAvifOutputPrototype.runEncodeDecodeBackSmoke() route with MediaCodec input image writing, direct output validation, MediaMuxer.MUXER_OUTPUT_HEIF fallback, AVIF signature checking, and ImageDecoder decode-back validation.
  • Android JVM tests for smoke blocker reporting below API 34 and when no image/avif encoder 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 asserts getImageCompressionCapabilities().formats.avif.output=false.
  • README and verification expectations that keep getImageCompressionCapabilities().formats.avif.output=false.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.17 and GitHub Release v0.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-run

After 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.17

Release 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 --json confirmed package version 0.2.17, latest: 0.2.17, and registry modified time 2026-07-03T09:25:30.216Z.
  • npm view react-native-image-compression-kit@0.2.17 version dist.tarball dist.integrity dist.shasum time.modified --json confirmed tarball https://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.17 passed against the real registry tarball with fileCount: 50, packageSize: 54863, unpackedSize: 242110, and a clean consumer tsc --noEmit.
  • Published tarball README inspection found pre-publish package-page wording because 0.2.17 was 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.17 at https://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.17.

v0.2.14

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 07:25

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_IMPLEMENTED messages clear when callers select output.format: 'avif'.
  • Keep TypeScript validation accepting avif as 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.json version bump to 0.2.14.
  • Android AVIF capability notes now say AVIF output reports output=false and selecting output.format: 'avif' rejects with ERR_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 with ERR_NOT_IMPLEMENTED.
  • iOS compressImage() now uses an AVIF-specific unsupported-output message for output.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.14 release.
  • Source-level tests and Android verification doctor expectations are updated for the AVIF output unsupported surface release.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.14 and GitHub Release v0.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-run

After 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.14

Release 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 --json confirmed package version 0.2.14, latest: 0.2.14, and registry modified time 2026-07-03T07:12:58.753Z.
  • npm view react-native-image-compression-kit@0.2.14 version dist.tarball dist.integrity dist.shasum time.modified --json confirmed tarball https://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.14 passed against the real registry tarball with fileCount: 49, packageSize: 47733, unpackedSize: 213156, and a clean consumer tsc --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.14 at https://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.14.

v0.2.13

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 06:31

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 1 after rendering.
  • Update preserved top-level pixel width/height and EXIF PixelXDimension / PixelYDimension to 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.json version bump to 0.2.13.
  • iOS JPEG preserve encoding now passes final CGImage dimensions 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.13 release.
  • Source-level tests and Android verification doctor expectations are updated for the iOS JPEG metadata preserve hardening release.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.13 and GitHub Release v0.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-run

After 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.13

Release 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 --json confirmed package version 0.2.13, latest: 0.2.13, and registry modified time 2026-07-03T06:21:08.749Z.
  • npm view react-native-image-compression-kit@0.2.13 version dist.tarball dist.integrity dist.shasum time.modified --json confirmed tarball https://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.13 passed against the real registry tarball with fileCount: 49, packageSize: 47296, unpackedSize: 210816, and a clean consumer tsc --noEmit.
  • Release promotion gate passed on commit dfaa3763fc3d3a223a6672dbfa934e6bc8100443: CI, Android Instrumentation, and iOS Validation.
  • Git tag and GitHub Release: v0.2.13 at https://github.com/GGULBAE/react-native-image-compression-kit/releases/tag/v0.2.13.

v0.2.12

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 04:10

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, and output.maxBytes JPEG 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.json version bump to 0.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 with ERR_NOT_IMPLEMENTED unless both input and output are JPEG.
  • iOS capability reporting now includes preserve, safe, and strip metadata 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.12 release.
  • Source-level tests and Android verification doctor expectations are updated for the iOS JPEG metadata preserve release.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.12 and GitHub Release v0.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-run

After 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.12

Release 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

Choose a tag to compare

@GGULBAE GGULBAE released this 03 Jul 02:42

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.11 is released.
  • Remove stale 0.2.10 release-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.10 registry tarball README before preparation and the 0.2.11 registry tarball README after publish.
  • Keep the release dry-run packed README stale-status check and post-publish registry smoke flow in place.

Included

  • package.json version bump to 0.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.11 as a docs-only README correction while preserving the 0.2.10 runtime behavior surface.
  • Source-level tests and Android verification doctor expectations are updated for the 0.2.11 docs-only status.
  • Release dry-run packed README stale checks now reject the stale 0.2.10 release-ready/pre-publish snippets and old 0.2.10 package-page status snippets.
  • npm package publication under the latest dist-tag.
  • Git tag v0.2.11 and GitHub Release v0.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-run

After 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.11

The 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:

Completed after npm publish and GitHub Release creation:

  • npm publish --tag latest published react-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 --json confirmed version 0.2.11, registry tarball URL, integrity sha512-JMBebCxcpwdiLspK8s8pIF8xIEpgqxWjO5BZEkBEoCdRp09wvqj8b3UXLczGqXSgcAZtTL+UuE2mF+nptKWDpw==, shasum e3c067a00949e93f29f80dee5eabfaaf4bf1fa72, and publish timestamp 2026-07-02T08:49:36.915Z.
  • npm view react-native-image-compression-kit dist-tags version --json confirmed latest dist-tag 0.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.11 package-page status.

v0.2.10

Choose a tag to compare

@GGULBAE GGULBAE released this 02 Jul 08:06

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.json version bump to 0.2.10.
  • iOS getImageCompressionCapabilities() reports AVIF input=true only when CGImageSourceCopyTypeIdentifiers() advertises an AVIF source type, and always reports AVIF output=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.10 state.

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:

GitHub Actions on the post-publish commit:

Local gates completed successfully:

  • pnpm release:dry-run before publish, including packed README stale-status check, consumer smoke, and publish dry run.
  • pnpm verify
  • pnpm example:typecheck
  • git diff --check
  • pnpm pack --dry-run
  • pnpm smoke:registry -- --version 0.2.10

Completed after npm publish:

  • npm publish --tag latest published react-native-image-compression-kit@0.2.10.
  • npm view react-native-image-compression-kit version dist-tags --json confirmed latest dist-tag 0.2.10.
  • npm view react-native-image-compression-kit@0.2.10 version dist.tarball dist.integrity dist.shasum time.modified --json confirmed version 0.2.10, publish timestamp 2026-07-02T07:52:43.911Z, integrity sha512-73bAB8tcLrQ7o2iletdLYWEry1VRn3vIWyhYy+/RDGAj9MLho5aKJJtnx92eDgtQOW3s9r48qtCcJByPVwnfxw==, and shasum 1890e78917538d2e27d3274e97a0820c5597a827.
  • pnpm smoke:registry -- --version 0.2.10 passed 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

Choose a tag to compare

@GGULBAE GGULBAE released this 02 Jul 06:25

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.json version bump to 0.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.8 candidate/unpublished/latest-0.2.7 wording that shipped in the 0.2.8 tarball.
  • Source-level tests and Android verification doctor expectations updated for the 0.2.9 docs-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:

Local pre-publish gate completed successfully before npm publish:

  • pnpm verify
  • pnpm example:typecheck
  • git diff --check
  • pnpm pack --dry-run
  • packed tarball README stale-status grep check
  • pnpm smoke:registry -- --version 0.2.8

Completed after npm publish:

  • npm publish --tag latest published react-native-image-compression-kit@0.2.9.
  • npm view react-native-image-compression-kit version dist-tags versions --json confirmed latest dist-tag 0.2.9.
  • npm view react-native-image-compression-kit@0.2.9 version dist.tarball dist.integrity dist.shasum time.modified --json confirmed version 0.2.9, publish timestamp 2026-07-02T06:24:49.065Z, integrity sha512-Q/z8QZdsEl85Q9IhO31gv3/OAfGXh5FS7O3kBKJouzlnvtbTYCS+zgGYKrDNNq7x1rIVHQAxKXmeNJpoMwxWqw==, and shasum 11882a2c1fff4b21648ebbfb773c6ae5aabad638.
  • pnpm smoke:registry -- --version 0.2.9 passed 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