chore(example): modernize example app and demo the multi-instance API - #194
Open
Yaswanth0606 wants to merge 2 commits into
Open
chore(example): modernize example app and demo the multi-instance API#194Yaswanth0606 wants to merge 2 commits into
Yaswanth0606 wants to merge 2 commits into
Conversation
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 24, 2026 12:57
ac34c7e to
39b7b49
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 24, 2026 12:57
93377f3 to
a487798
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 24, 2026 13:02
39b7b49 to
8273224
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 24, 2026 13:03
a487798 to
f6ee21e
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 24, 2026 13:09
8273224 to
3d069f5
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 24, 2026 13:10
f6ee21e to
71fe3ad
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 24, 2026 13:25
3d069f5 to
4141008
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 24, 2026 13:25
71fe3ad to
1187e1e
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 24, 2026 14:17
4141008 to
3aa5978
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 24, 2026 14:17
1187e1e to
2f696fc
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 25, 2026 09:53
3aa5978 to
2d1e0ac
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 25, 2026 09:53
2f696fc to
5e5084a
Compare
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 25, 2026 09:58
2d1e0ac to
d239282
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 25, 2026 09:59
5e5084a to
adf1438
Compare
Adds a HyperServiceInstance class that creates independent, keyed HyperServices objects alongside the existing module-wide singleton API, each with its own event channel. This PR covers the core integration: create, initiate, process, terminate, back-press and status helpers. Merchant views, HyperFragmentView and processWithActivity/openPaymentPage per instance follow in a separate PR. JS: - HyperServiceInstance: constructor(tenantId?, clientId?), initiate, process, terminate, onBackPressed, isNull, isInitialised and getHyperEventString() as the instance's event channel - lazy linking error; platform guards for iOS-only gaps Android: - keyed create/initiate/process/terminate/back-press/isInitialised with per-key event emission - permission and activity results forwarded to every live instance - invalidate() terminates and clears keyed state on React reloads - every skipped call logged to logcat alongside SdkTracker telemetry - legacy single-instance API behaviour preserved exactly - resolve ReactHost reflectively so the module compiles on RN < 0.74 - fix rnVersion Groovy scoping crash for newArchEnabled=false consumers iOS: - keyed methods mirrored with per-key delegate retention, dynamic supportedEvents, synchronized dict access, and invalidate cleanup - podspec: RN version detection for development layouts; folly compiler flags applied Example app: - toolchain modernized: React Native 0.79.7 (react 19), AGP 8.9 via RNGP, Gradle 8.13, compileSdk 36, Kotlin 2.0.21, RN 0.79 Podfile, Flipper removed; Jetifier re-enabled for the Juspay micro-SDKs with RN AARs on the ignorelist - demo flows for multiple instances: create/select instances, initiate, process and terminate per instance with per-instance event listeners - generateSign accepts PKCS#8/PKCS#1 keys with or without PEM armor on both platforms, with errors surfaced in the UI Docs: - README section covering merchant integration for multiple instances Co-authored-by: Anurag Singh <as6003688@gmail.com> Co-authored-by: yuvrajjsingh0 <yuvraj.singh@juspay.in>
Extends multiple-HyperServices-instances support with the advanced surfaces deferred from the core PR: - processWithActivity per instance: ProcessActivity callbacks keyed by instance with per-key back-press routing and teardown - openPaymentPage per instance with results on the instance's channel - per-instance merchant view registration (notifyAboutRegisterComponent(viewType, componentName)) with process-wide fallback, and per-instance updateMerchantViewHeight on iOS - instance-aware HyperFragmentView via an instance prop on both platforms and architectures, with per-view props state fixing the shared-fields clobbering and double-process issues - example app demonstrates the new surfaces (instance-bound fragment view, merchant views routed via activeInstance, per-instance process-with-activity) - README: merchant views per instance, HyperFragmentView per instance, and updated limitations
Yaswanth0606
force-pushed
the
multi-instance-core
branch
from
August 25, 2026 10:41
d239282 to
96de1ca
Compare
Yaswanth0606
force-pushed
the
multi-instance-example-upgrade
branch
from
August 25, 2026 10:41
adf1438 to
c3a048c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked on #193 — merge that first, then retarget/merge this.
Modernizes the example app toolchain and adds the demo flows for the multiple-HyperServices-instances API:
android.support.*; without it the SDK crashes withNoClassDefFoundErrorwhen spawning services) withreact-android/hermes-androidon the ignorelistbundleURLAppDelegate, folly flags in the app target, min iOS 15.1generateSignaccepts PKCS#8 and PKCS#1 keys, with or without PEM armor, on both platforms, with descriptive errors surfaced as alerts (previously: Android crashed on PEM input, iOS could not parse PKCS#8 at all)activeInstanceholderVerification
xcodebuildsucceeds, app runs on an iPhone 16 Pro simulator with the keyed flow exercised🤖 Generated with Claude Code