Commit be97ed3
Version 2.2.0 Release (#296)
* Bridge geofencing methods (#277)
* Modify permissions library
* Add bridging to test mock API call
* Removed unused react-native-permissions library
* Oh we don't need react-native-geolocation-service either
* Rename registerForGeofences to registerGeofencing
* Bridge unregister method
* Add permission prompting through react-native-permissions, add to example app
* Support location services in terminated state
* Only bridge background monitor method to objc, not RN
* Point to swift SDK feat/geofencing
* Remove duplicate setup_permissions
* Bridged android methods (#283)
Co-authored-by: Evan Masseau <>
* dispatch to main thread, update pods
* Remove permissions from Android manifest
* Add dispatch to main
* Remove redundant script loading
* Unversion dependencies
* Point to updated feat/geofencing swift branch
* fix path for CI
* Use Task in KlaviyoBridge async calls
* Bridge getCurrentGeofences
* Point pods to feat/geofencing
* Fix async calls
* Fix getCurrentGeofences in KlaviyoBridge
* Added android "getCurrentGeofences" bridge function, tagged it internal
also added tests
---------
Co-authored-by: Evan C Masseau <5167687+evan-masseau@users.noreply.github.com>
Co-authored-by: Evan Masseau <>
* Minor android deps update (#287)
* Minor config stuff including updating android SDK dependency branch
* Update example/android/settings.gradle
---------
Co-authored-by: Evan Masseau <>
* Bump to version 2.2.0-alpha.1 (#290)
* Bump to version 2.2.0-alpha.1
* Curse thee no autosave
* Clean up KlaviyoBridge after removing extra monitor method (#292)
* Clean up KlaviyoBridge after removing extra monitor method
* Remove unnecessary keys from Info.plist
* Geofencing README (#293)
* First pass
* Simplify README deferring to native instructions
* Explicitly explain iOS requirement
* Add troubleshooting for geofencing
* Remove extra note
* Pull in published Android and iOS SDKs (#294)
* TODO: run pod install after prerelease publish
* specify prerelease version to install pods
* 2.2.0 Release Prep (#297)
* Linter fixes
* Set temp dependencies on native release branches
* RN SDK Version bump
* Missed the example podfile update
* Add geofence help doc link to README (#299)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Add TypeScript type validation (attw) to CI (#301)
Adds @arethetypeswrong/cli to validate TypeScript types in CI.
This prevents regressions like issue #212, where types broke for
users with moduleResolution: "node" in v1.2.0.
The tool validates that types resolve correctly across all module
resolution modes (node10, node16 CJS/ESM, bundler). The
unexpected-module-syntax rule is ignored as React Native SDKs
are consumed via bundlers, not Node's native ESM resolution.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Upgrade to RN 0.81.5 (#298)
* initial RN upgrade works
* tsconfig.json updates
* gradle bump
* Resolves yarn prepare errors
* Fix gradle issues and attempt fix of the babel / syntax problem (#300)
* Fix gradle issues
* This should fix babel to interpret flow syntax, by using RN's bable config.
* Rerun pod install
* Remove @react-native/typescript-config entirely
* One more android thing, may as well (will revisit in the UI overhaul anyway)
* Regenerate the lockfiles after rebase
* remove duplicate safe area thing
* keep matching rn-babel version with root rn version
* another pod install (how many commits does it take to upgrade RN)
* seems we shouldn't be using this right now, since we aren't using turbomodules, and we don't have a codegen config, so its just re-triggering codegen for other package deps.
* Try a different work around for the babel issue.
* Upgrade react-native-builder-bob to 0.40.17
Bob 0.40+ generates split type declarations for ESM/CJS and includes
hermes-parser for Flow syntax support. Update package.json exports
structure accordingly and simplify babel config.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* podfile bump from last commit
* Bump Node.js to v20 for bob 0.40+ compatibility
Bob 0.40+ has an ESM compatibility issue with Node 18 (arktype dependency).
Upgrading to Node 20 LTS resolves this.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Regenerate yarn.lock after rebase onto rel/2.2.0
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* resolve version conflicts, different babel config, passes locally
* Try another babel approach
* Use the same babel config as latest react native template, which uses bob for library and not for node modules.
* Include yarn lockfile in the cocoapods cache key. seems these are interdependent on one another, and even if pods are unaffected by a yarn change, it can still cause build to fail.
* yarn tweaks
* Trigger Wiz scans
* Fix unresolved usesCleartextTraffic manifest placeholder
Added manifestPlaceholders to defaultConfig to provide a value for the
${usesCleartextTraffic} placeholder in the main AndroidManifest.xml.
- Release builds: usesCleartextTraffic="false" (secure default)
- Debug builds: usesCleartextTraffic="true" (overridden by debug-specific manifest)
This prevents manifest merging errors in release builds while maintaining
the existing debug behavior for local development.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Downgrade builder-bob
* Upgrade react-native-builder-bob to 0.39.1 for Node 20 compatibility
Bob 0.39.1 is the latest version before arktype was introduced in 0.40.0.
This version:
- Works on Node 20.0+ (no arktype ESM issues)
- Has full Flow syntax support via @babel/preset-flow
- Includes all modern features and improvements
- Fixes git install failures on Node 20.13.1
Bob 0.40+ requires Node 20.19+ or Node 22+ due to arktype ESM/CommonJS
mismatch during git installs. Bob 0.39.1 is the "Goldilocks" version
that works for all Node 20.x users.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Require Node.js 20.19.4+ and upgrade to bob 0.40.17
Aligned with React Native 0.81.5's official Node.js requirement of 20.19.4+.
This allows us to use react-native-builder-bob 0.40.17 which includes:
- Built-in hermes-parser for Flow syntax support
- Better performance and modern tooling
- Latest bug fixes and improvements
Updated:
- .nvmrc: v20 → v20.19.4 (explicit version for consistency)
- react-native-builder-bob: 0.39.1 → 0.40.17
The babel config remains unchanged (split presets for library vs node_modules)
as this matches the latest create-react-native-library template.
Git installs now require Node 20.19.4+ but npm registry installs work on any
Node version (pre-built files included in tarball).
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Evan C Masseau <5167687+evan-masseau@users.noreply.github.com>
Co-authored-by: Evan Masseau <evan.masseau@klaviyo.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* Use released versions (#303)
iOS 5.2.0
Android 4.2.0
RN 2.2.0
---------
Co-authored-by: Belle Lim <isobelle.lim@klaviyo.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>1 parent 797f6cf commit be97ed3
39 files changed
Lines changed: 3052 additions & 1766 deletions
File tree
- .github/workflows
- android
- gradle/wrapper
- src/main
- java/com/klaviyoreactnativesdk
- res/values
- example
- android
- app
- src/main
- gradle/wrapper
- ios
- KlaviyoReactNativeSdkExample.xcodeproj
- KlaviyoReactNativeSdkExample
- src
- ios
- src
- __tests__
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
43 | 48 | | |
44 | 49 | | |
45 | 50 | | |
| |||
591 | 596 | | |
592 | 597 | | |
593 | 598 | | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
594 | 641 | | |
595 | 642 | | |
596 | 643 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | 30 | | |
35 | 31 | | |
36 | 32 | | |
| |||
121 | 117 | | |
122 | 118 | | |
123 | 119 | | |
| 120 | + | |
124 | 121 | | |
125 | 122 | | |
126 | 123 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
7 | | - | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
8 | 14 | | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
12 | 18 | | |
13 | 19 | | |
14 | | - | |
| 20 | + | |
15 | 21 | | |
16 | 22 | | |
17 | 23 | | |
| |||
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments