- Added
Marker.getImageInfo(source)across Android, iOS, and Web with upright and encoded dimensions, format, EXIF orientation, rotation, mirroring, and normalization metadata. - Added cross-platform text constraints and layout controls:
maxWidth,lineHeight,letterSpacing,direction,wrap,maxLines, andoverflow. - Moved the platform-neutral Recipe v2 schema, validation, migration,
templating, serialization, and immutable layer operations into
@image-marker/recipe@0.1.0. - Re-exported the shared Recipe authoring API from Core so existing consumers
can continue importing from
react-native-image-marker.
- Added one shared Recipe fixture exercised by Android, iOS, and Web text conformance tests.
- Added encoded-orientation metadata tests on TypeScript, Android, and iOS.
- Preserved the Core 2.0 rendering, result, and Recipe contracts; this is a backward-compatible minor release.
- Rendering and invisible-embed methods now return a structured
MarkerResult; existing consumers must readresult.uri. - Recipe v2 replaces
watermarksplus top-level encoding options with stablelayersand nestedoutput. UsemigrateWatermarkRecipe()for persisted v1 documents. - Removed
positionOptions,watermarkImage, andwatermarkPositions. - Raised the supported application baseline to React Native 0.73+, React 18+, iOS 13+, and Android API 24+.
- Replaced loosely typed native option objects with complete generated TurboModule structures.
- Newly encoded output normalizes pixel orientation and strips copied source EXIF/GPS metadata.
- Added job IDs, stable error codes, progress phases, abort signals, native cancellation, and timeouts for single operations.
- Added Recipe v2 layer IDs, names, visibility, locks, conditions, explicit import migration, validation, and serialization.
- Added font fallback chains across TypeScript, Android, iOS, and Web.
- Added WebP output on Android and Web with an explicit unsupported error on iOS.
- Productized invisible trace detection results, batch control, Web Worker execution, and optional Content Credentials composition.
- Added a portable shared C++ size-fit core plus Android JNI and iOS Objective-C++/Swift bridges.
- Added the separately versioned
react-native-image-marker-editor@0.0.1workspace and optional Core adapter.
- Kept native queues serial, capped Web queues at four, and made cancellation idempotent to bound decode memory.
- Added repeated Android and iOS large-image downsample gates, shared-core bridge tests, four-ABI Android native builds, and browser stress coverage.
- Added real packed-package CommonJS, ESM, TypeScript, peer-dependency, and production-audit consumer verification.
- Added complete English and Chinese v1-to-v2 migration, compatibility, performance, output, task-control, and Editor documentation.
- Migrated the bare, Expo, Playground, and online-tool examples to
MarkerResultand Recipe v2. - Added protected v1 LTS and immutable v1.0.0 archive lines, a combined versioned documentation deployment, and strict Core/Editor tag routing with post-publish registry consumer checks.
1.12.0 (2026-07-20)
- add server trace runtime and worker detection (b9976c5)
- docs: reorganize playground workflows (f26524c)
- isolate worker types from native consumers (d79379d)
1.11.0 (2026-07-19)
- watermark: add durable provenance workflows (7887786)
1.10.1 (2026-07-19)
- harden v1.10 release quality gates (95d7d2b)
1.10.0 (2026-07-19)
1.9.0 (2026-07-18)
1.8.0 (2026-07-18)
- add reusable watermark recipes (#327) (ef62443)
- add controlled watermark batches (#328) (3b2e941)
- web: add Blob recipe output (#329) (bb3113b)
- complete v1.8 examples and text opacity (#330) (266a3c8)
1.7.0 (2026-07-18)
- add text stroke rendering (#322) (e98cdfd)
- add tiled watermark layouts (#323) (42511fd)
- showcase v1.7 watermark layouts (#324) (4d0c1c1)
1.6.0 (2026-07-18)
- web: harden browser rendering compatibility (9e1256a)
- ci: generate lockfile with npm 10 (21f025f)
- ci: require modern compatibility jobs (7a81903)
- ci: run Expo prebuild in example (2cc19e0)
- expo: resolve config plugin from host app (0ac0220)
- release: pin compatible changelog preset (45e9db6)
- fix(ci): stabilize web example typecheck (51af719)
- fix(ci): sync web example clean install (0a540c4)
- fix(docs): correct production domain (d78de8e)
- feat(web): add browser SDK and live documentation (3e08838)
- fix(ci): repair npm publish setup (5a35143)
- fix(rendering): align cross-platform output and harden pipeline (#299) (94b623f), closes #299
- refactor: improve marker pipeline maintainability (#296) (58f9a1e), closes #296
- feat: add new architecture codegen support (#291) (26011b6), closes #291
- ci: enable npm trusted publishing (ac889c7)
- ci: fix pages deployment trigger (0f4df9c)
- test: add native functional coverage (#290) (90dbfa4), closes #290
- feat: support position offsets (#285) (85d9644), closes #285
- feat(example): add shared image marker lab (#289) (8dab7b4), closes #289
- fix: move patch tooling to dev dependencies (#277) (9f74cdb), closes #277
- fix: normalize ios image orientation (#287) (2497f58), closes #287
- fix: preserve android named colors (#278) (2208a15), closes #278
- fix: propagate image loading errors via rejecter on iOS (#267) (7e9bb86), closes #267
- fix: scope root typecheck to library sources (#288) (dc48a11), closes #288
- fix: support responsive watermark font sizing (#282) (a9643f4), closes #282
- fix: use react native pod dependency helper (#286) (98a422a), closes #286
- fix(android): remove deprecated jcenter repository (#262) (6f665ce), closes #262
- fix(ios): guard against nil markOpts and request to prevent EXC_BREAKPOINT crashes (#271) (1323326), closes #271
- fix(ios): reject malformed marker inputs (#284) (df8d9f5), closes #284
- docs: clarify font support (#279) (da1eabf), closes #279
- docs: expand expo installation guide (#280) (c9ae370), closes #280
- ci: bump Cocoapods version from 1.15.0 to 1.15.2 in the iOS build matrix (#266) (f12c10b), closes #266
- ci: change macos-13 pipline image to macos-14 (#263) (9362fc4), closes #263
- ci: stabilize android emulator tests (#283) (b7b590a), closes #283
- ci: update npm publish workflow to Node.js 24, newer actions, and OIDC permissions (#265) (db893db), closes #265
- chore: add workflow_dispatch trigger to npm-publish.yml (27951a8)
- chore: release 1.2.11 (#268) (515cc2c), closes #268
- chore: update dev dep (db37b64)
- cd/bump v 1.2.10 (#264) (7ffef10), closes #264
1.2.11 (2026-01-31)
- fix: propagate image loading errors via rejecter on iOS (#267) (7e9bb86), closes #267
- ci: bump Cocoapods version from 1.15.0 to 1.15.2 in the iOS build matrix (#266) (f12c10b), closes #266
- ci: change macos-13 pipline image to macos-14 (#263) (9362fc4), closes #263
- ci: update npm publish workflow to Node.js 24, newer actions, and OIDC permissions (#265) (db893db), closes #265
1.2.10 (2026-01-30)
1.2.9 (2025-11-20)
- expo support (#207) 7a6ca14
- fix #158 android release bug style not working (#160) a942e30
- fontName bug (android) (#196) 83d9856
- add custom fonts to example (#197) 6e2ad75
- cd scripts error f01c061
- coil load image with original size (#217) d6e8744
- fix #164 Build Failure on CI Due to CocoaPods 1.1.9 in iOS Project (#165) 532e8a4
- fix #179 Same watermark image is behaving differently on ANDROID and iOS (#180) 10d71e1
- fix #179 same watermark image is behaving differently on android and ios when use given position enum (#187) 1c62250
- fix #202 generates inconsistent text size across different devices (#204) 47c0cd9
- fix#176 Fresco 3.1.3 compatibility issues with RN 0.73.0, compileDebugKotlin FAILED (#177) 06d65c4
- Handle Nullable Map and Enum Mismatch in MarkTextOptions.kt (#247) 9878efa
- load base64 image on android (#240) 4764a6f
- parse hex color string crash on iOS (#186) 53ac1f1
- RN 0.80.2 build error (#248) 76d6972
1.2.6 (2024-02-04)
- coil load image use the original dimensions by default (fc29a6a)
- remove expo android ios folders and ignore it (7cd0df2)
1.2.5 (2024-01-26)
- expo support (6c97c55)
1.2.4 (2024-01-24)
- set the font size without considering the screen density (3df1080)
- replace positionOptions to postions (482198f)
1.2.3 (2024-01-22)
1.2.2 (2024-01-01)
- remove debug fill red color in rect (7ed675a)
1.2.1 (2023-12-28)
- #179 Same watermark image is behaving differently on ANDROID and IOS when use given position enum (39107f0)
- parse hex color string crash on iOS (#186) (53ac1f1)
1.2.0 (2023-12-21)
- fix #164 Build Failure on CI Due to CocoaPods 1.1.9 in iOS Project (#165) (532e8a4)
- fix#176 Fresco 3.1.3 compatibility issues with RN 0.73.0, compileDebugKotlin FAILED (2fd4fef)
- use Coil instead of Fresco to load images on the Android platform (4438127)
1.1.11 (2023-12-21)
- fix #158 android release bug style not working (#160) (a942e30)
- fix #164 Build Failure on CI Due to CocoaPods 1.1.9 in iOS Project (#165) (532e8a4)
- fix #179 Same watermark image is behaving differently on ANDROID and IOS (a269510)
1.1.10 (2023-11-29)
1.1.9 (2023-11-18)
1.1.8 (2023-10-20)
1.1.7 (2023-10-03)
- fix: image marker position bug WatermarkImageOptions.swift (f3789cb)
1.1.6 (2023-10-01)
1.1.4 (2023-09-27)
- android text background padding setting (b53ac1d)
- coordinates set support percentage (f96f4a9)
- iOS text background padding setting (03eb4d1)
1.1.2 (2023-09-20)
1.1.1 (2023-09-05)
- support multiple image watermarks (#113) (ec73482)
- support multiple text and more style options (#104) (0b91cd4)
1.1.0 (2023-07-31)
- support multiple image watermarks (#113) (ec73482)
- support multiple text and more style options (#104) (0b91cd4)