@encorekit/react-native 1.1.30 → 1.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -60,34 +60,26 @@ const result = await Encore.show('paywall');
60
60
 
61
61
  ### 4. Handle Callbacks
62
62
 
63
+ > **Setter semantics.** `onPurchaseRequest`, `onPurchaseComplete`, and `onPassthrough` each **replace** the previous handler when called again (matching iOS, Android, and Flutter). They are global singleton handlers, not multi-listener subscriptions. No manual cleanup is required — re-registration is safe and idempotent.
64
+
63
65
  ```tsx
64
- // Purchase request delegate to your subscription manager
65
- Encore.onPurchaseRequest(async ({ requestId, productId, placementId }) => {
66
+ // Register once, e.g. right after configure or at app startup
67
+ Encore.onPurchaseRequest(async ({ productId, placementId }) => {
66
68
  try {
67
69
  await RevenueCat.purchase(productId);
68
- await Encore.completePurchaseRequest(requestId, true);
70
+ await Encore.completePurchaseRequest(true);
69
71
  } catch {
70
- await Encore.completePurchaseRequest(requestId, false);
72
+ await Encore.completePurchaseRequest(false);
71
73
  }
72
74
  });
73
75
 
74
- // Passthrough — user dismissed without purchasing
75
- Encore.onPassthrough(({ placementId }) => {
76
- // Resume your original flow
77
- });
78
-
79
- // Purchase complete (fire-and-forget, for syncing with backends)
80
76
  Encore.onPurchaseComplete(({ productId, transactionId }) => {
81
- console.log('Purchase completed:', productId);
77
+ // Optional: sync with backends that don't auto-detect StoreKit/Play Billing
82
78
  });
83
- ```
84
79
 
85
- Each `on*` method returns an unsubscribe function:
86
-
87
- ```tsx
88
- const unsubscribe = Encore.onPassthrough(handler);
89
- // Later:
90
- unsubscribe();
80
+ Encore.onPassthrough(({ placementId }) => {
81
+ // User dismissed without purchasing — resume your original flow
82
+ });
91
83
  ```
92
84
 
93
85
  ## API Reference
@@ -121,13 +113,13 @@ Present a native offer sheet. Returns `PlacementResult`.
121
113
 
122
114
  Register native event handlers (purchase request, purchase complete, passthrough). Called automatically by `EncoreProvider`.
123
115
 
124
- ### `completePurchaseRequest(requestId, success)`
116
+ ### `completePurchaseRequest(success)`
125
117
 
126
- Signal completion of a purchase request initiated via `onPurchaseRequest`. The native SDK waits for this call before proceeding.
118
+ Signal completion of a purchase request initiated via `onPurchaseRequest`. Pass `true` on successful purchase, `false` on failure/cancellation.
127
119
 
128
120
  ### `onPurchaseRequest(handler)`
129
121
 
130
- Subscribe to purchase request events. Your handler receives `{ requestId, productId, placementId }` and must call `completePurchaseRequest` when done.
122
+ Register a handler for purchase request events (setter semantics — replaces any previous handler). Your handler receives `{ productId, placementId?, promoOfferId? }` and should call `completePurchaseRequest` when done. Returns an unsubscribe function.
131
123
 
132
124
  ### `onPurchaseComplete(handler)`
133
125
 
@@ -29,6 +29,14 @@ if (!EncoreReactSDK) {
29
29
  throw new Error(`EncoreReactSDK native module not found. Ensure the native ${_reactNative.Platform.OS} SDK is properly linked.`);
30
30
  }
31
31
  const encoreEmitter = new _reactNative.NativeEventEmitter(EncoreReactSDK);
32
+
33
+ // Setter semantics: each on*() call replaces the previous handler instead of
34
+ // appending. This matches Swift / Android / Flutter parity. Without this, repeat
35
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
36
+ // listeners and cause N duplicate purchase attempts per event.
37
+ let currentPurchaseRequestSubscription = null;
38
+ let currentPurchaseCompleteSubscription = null;
39
+ let currentPassthroughSubscription = null;
32
40
  async function safeBridgeCall(method, call, fallback) {
33
41
  try {
34
42
  return await call();
@@ -79,16 +87,40 @@ const Encore = {
79
87
  success: false
80
88
  }),
81
89
  onPurchaseRequest: handler => {
82
- const subscription = encoreEmitter.addListener('onPurchaseRequest', handler);
83
- return () => subscription.remove();
90
+ var _currentPurchaseReque;
91
+ (_currentPurchaseReque = currentPurchaseRequestSubscription) === null || _currentPurchaseReque === void 0 || _currentPurchaseReque.remove();
92
+ currentPurchaseRequestSubscription = encoreEmitter.addListener('onPurchaseRequest', handler);
93
+ const subscription = currentPurchaseRequestSubscription;
94
+ return () => {
95
+ subscription.remove();
96
+ if (currentPurchaseRequestSubscription === subscription) {
97
+ currentPurchaseRequestSubscription = null;
98
+ }
99
+ };
84
100
  },
85
101
  onPurchaseComplete: handler => {
86
- const subscription = encoreEmitter.addListener('onPurchaseComplete', handler);
87
- return () => subscription.remove();
102
+ var _currentPurchaseCompl;
103
+ (_currentPurchaseCompl = currentPurchaseCompleteSubscription) === null || _currentPurchaseCompl === void 0 || _currentPurchaseCompl.remove();
104
+ currentPurchaseCompleteSubscription = encoreEmitter.addListener('onPurchaseComplete', handler);
105
+ const subscription = currentPurchaseCompleteSubscription;
106
+ return () => {
107
+ subscription.remove();
108
+ if (currentPurchaseCompleteSubscription === subscription) {
109
+ currentPurchaseCompleteSubscription = null;
110
+ }
111
+ };
88
112
  },
89
113
  onPassthrough: handler => {
90
- const subscription = encoreEmitter.addListener('onPassthrough', handler);
91
- return () => subscription.remove();
114
+ var _currentPassthroughSu;
115
+ (_currentPassthroughSu = currentPassthroughSubscription) === null || _currentPassthroughSu === void 0 || _currentPassthroughSu.remove();
116
+ currentPassthroughSubscription = encoreEmitter.addListener('onPassthrough', handler);
117
+ const subscription = currentPassthroughSubscription;
118
+ return () => {
119
+ subscription.remove();
120
+ if (currentPassthroughSubscription === subscription) {
121
+ currentPassthroughSubscription = null;
122
+ }
123
+ };
92
124
  }
93
125
  };
94
126
  var _default = exports.default = Encore;
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_hooks","EncoreReactSDK","NativeModules","Error","Platform","OS","encoreEmitter","NativeEventEmitter","safeBridgeCall","method","call","fallback","error","console","warn","Encore","configure","apiKey","options","success","identify","userId","attributes","setUserAttributes","reset","placement","placementId","show","status","reason","placements","setClaimEnabled","enabled","registerCallbacks","completePurchaseRequest","onPurchaseRequest","handler","subscription","addListener","remove","onPurchaseComplete","onPassthrough","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAkKA,IAAAC,MAAA,GAAAD,OAAA;AAtKA;AACA;AACA;;AAIA,MAAM;EAAEE;AAAe,CAAC,GAAGC,0BAAa;AAExC,IAAI,CAACD,cAAc,EAAE;EACnB,MAAM,IAAIE,KAAK,CACb,6DAA6DC,qBAAQ,CAACC,EAAE,0BAC1E,CAAC;AACH;AAEA,MAAMC,aAAa,GAAG,IAAIC,+BAAkB,CAACN,cAAc,CAAC;AAE5D,eAAeO,cAAcA,CAC3BC,MAAc,EACdC,IAAsB,EACtBC,QAAW,EACC;EACZ,IAAI;IACF,OAAO,MAAMD,IAAI,CAAC,CAAC;EACrB,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdC,OAAO,CAACC,IAAI,CAAC,YAAYL,MAAM,UAAU,EAAEG,KAAK,CAAC;IACjD,OAAOD,QAAQ;EACjB;AACF;;AAEA;;AAsDA;;AA0BA;;AAEA,MAAMI,MAAiB,GAAG;EACxBC,SAAS,EAAEA,CAACC,MAAM,EAAEC,OAAO,GAAG,CAAC,CAAC,KAC9BV,cAAc,CAAC,WAAW,EAAE,MAAMP,cAAc,CAACe,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC,EAAE;IAAEC,OAAO,EAAE;EAAM,CAAC,CAAC;EAElGC,QAAQ,EAAEA,CAACC,MAAM,EAAEC,UAAU,KAC3Bd,cAAc,CAAC,UAAU,EAAE,MAAMP,cAAc,CAACmB,QAAQ,CAACC,MAAM,EAAEC,UAAU,IAAI,IAAI,CAAC,EAAE;IAAEH,OAAO,EAAE;EAAM,CAAC,CAAC;EAE3GI,iBAAiB,EAAGD,UAAU,IAC5Bd,cAAc,CAAC,mBAAmB,EAAE,MAAMP,cAAc,CAACsB,iBAAiB,CAACD,UAAU,CAAC,EAAE;IAAEH,OAAO,EAAE;EAAM,CAAC,CAAC;EAE7GK,KAAK,EAAEA,CAAA,KACLhB,cAAc,CAAC,OAAO,EAAE,MAAMP,cAAc,CAACuB,KAAK,CAAC,CAAC,EAAE;IAAEL,OAAO,EAAE;EAAM,CAAC,CAAC;EAE3EM,SAAS,EAAGC,WAAW,KAAM;IAC3BC,IAAI,EAAEA,CAAA,KACJnB,cAAc,CAAC,MAAM,EAAE,MAAMP,cAAc,CAAC0B,IAAI,CAACD,WAAW,CAAC,EAAE;MAC7DE,MAAM,EAAE,aAAsB;MAC9BC,MAAM,EAAE;IACV,CAAC;EACL,CAAC,CAAC;EAEFF,IAAI,EAAGD,WAAW,IAChBlB,cAAc,CAAC,MAAM,EAAE,MAAMP,cAAc,CAAC0B,IAAI,CAACD,WAAW,CAAC,EAAE;IAC7DE,MAAM,EAAE,aAAsB;IAC9BC,MAAM,EAAE;EACV,CAAC,CAAC;EAEJC,UAAU,EAAE;IACVC,eAAe,EAAGC,OAAO,IACvBxB,cAAc,CAAC,iBAAiB,EAAE,MAAMP,cAAc,CAAC8B,eAAe,CAACC,OAAO,CAAC,EAAE;MAAEb,OAAO,EAAE;IAAM,CAAC;EACvG,CAAC;EAEDc,iBAAiB,EAAEA,CAAA,KACjBzB,cAAc,CAAC,mBAAmB,EAAE,MAAMP,cAAc,CAACgC,iBAAiB,CAAC,CAAC,EAAE;IAAEd,OAAO,EAAE;EAAM,CAAC,CAAC;EAEnGe,uBAAuB,EAAGf,OAAO,IAC/BX,cAAc,CAAC,yBAAyB,EAAE,MAAMP,cAAc,CAACiC,uBAAuB,CAACf,OAAO,CAAC,EAAE;IAAEA,OAAO,EAAE;EAAM,CAAC,CAAC;EAEtHgB,iBAAiB,EAAGC,OAAO,IAAK;IAC9B,MAAMC,YAAY,GAAG/B,aAAa,CAACgC,WAAW,CAAC,mBAAmB,EAAEF,OAAO,CAAC;IAC5E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC;EAEDC,kBAAkB,EAAGJ,OAAO,IAAK;IAC/B,MAAMC,YAAY,GAAG/B,aAAa,CAACgC,WAAW,CAAC,oBAAoB,EAAEF,OAAO,CAAC;IAC7E,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC;EAEDE,aAAa,EAAGL,OAAO,IAAK;IAC1B,MAAMC,YAAY,GAAG/B,aAAa,CAACgC,WAAW,CAAC,eAAe,EAAEF,OAAO,CAAC;IACxE,OAAO,MAAMC,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC;AACF,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa7B,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_hooks","EncoreReactSDK","NativeModules","Error","Platform","OS","encoreEmitter","NativeEventEmitter","currentPurchaseRequestSubscription","currentPurchaseCompleteSubscription","currentPassthroughSubscription","safeBridgeCall","method","call","fallback","error","console","warn","Encore","configure","apiKey","options","success","identify","userId","attributes","setUserAttributes","reset","placement","placementId","show","status","reason","placements","setClaimEnabled","enabled","registerCallbacks","completePurchaseRequest","onPurchaseRequest","handler","_currentPurchaseReque","remove","addListener","subscription","onPurchaseComplete","_currentPurchaseCompl","onPassthrough","_currentPassthroughSu","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -10,6 +10,14 @@ if (!EncoreReactSDK) {
10
10
  throw new Error(`EncoreReactSDK native module not found. Ensure the native ${Platform.OS} SDK is properly linked.`);
11
11
  }
12
12
  const encoreEmitter = new NativeEventEmitter(EncoreReactSDK);
13
+
14
+ // Setter semantics: each on*() call replaces the previous handler instead of
15
+ // appending. This matches Swift / Android / Flutter parity. Without this, repeat
16
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
17
+ // listeners and cause N duplicate purchase attempts per event.
18
+ let currentPurchaseRequestSubscription = null;
19
+ let currentPurchaseCompleteSubscription = null;
20
+ let currentPassthroughSubscription = null;
13
21
  async function safeBridgeCall(method, call, fallback) {
14
22
  try {
15
23
  return await call();
@@ -60,16 +68,40 @@ const Encore = {
60
68
  success: false
61
69
  }),
62
70
  onPurchaseRequest: handler => {
63
- const subscription = encoreEmitter.addListener('onPurchaseRequest', handler);
64
- return () => subscription.remove();
71
+ var _currentPurchaseReque;
72
+ (_currentPurchaseReque = currentPurchaseRequestSubscription) === null || _currentPurchaseReque === void 0 || _currentPurchaseReque.remove();
73
+ currentPurchaseRequestSubscription = encoreEmitter.addListener('onPurchaseRequest', handler);
74
+ const subscription = currentPurchaseRequestSubscription;
75
+ return () => {
76
+ subscription.remove();
77
+ if (currentPurchaseRequestSubscription === subscription) {
78
+ currentPurchaseRequestSubscription = null;
79
+ }
80
+ };
65
81
  },
66
82
  onPurchaseComplete: handler => {
67
- const subscription = encoreEmitter.addListener('onPurchaseComplete', handler);
68
- return () => subscription.remove();
83
+ var _currentPurchaseCompl;
84
+ (_currentPurchaseCompl = currentPurchaseCompleteSubscription) === null || _currentPurchaseCompl === void 0 || _currentPurchaseCompl.remove();
85
+ currentPurchaseCompleteSubscription = encoreEmitter.addListener('onPurchaseComplete', handler);
86
+ const subscription = currentPurchaseCompleteSubscription;
87
+ return () => {
88
+ subscription.remove();
89
+ if (currentPurchaseCompleteSubscription === subscription) {
90
+ currentPurchaseCompleteSubscription = null;
91
+ }
92
+ };
69
93
  },
70
94
  onPassthrough: handler => {
71
- const subscription = encoreEmitter.addListener('onPassthrough', handler);
72
- return () => subscription.remove();
95
+ var _currentPassthroughSu;
96
+ (_currentPassthroughSu = currentPassthroughSubscription) === null || _currentPassthroughSu === void 0 || _currentPassthroughSu.remove();
97
+ currentPassthroughSubscription = encoreEmitter.addListener('onPassthrough', handler);
98
+ const subscription = currentPassthroughSubscription;
99
+ return () => {
100
+ subscription.remove();
101
+ if (currentPassthroughSubscription === subscription) {
102
+ currentPassthroughSubscription = null;
103
+ }
104
+ };
73
105
  }
74
106
  };
75
107
  export default Encore;
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","EncoreReactSDK","Error","OS","encoreEmitter","safeBridgeCall","method","call","fallback","error","console","warn","Encore","configure","apiKey","options","success","identify","userId","attributes","setUserAttributes","reset","placement","placementId","show","status","reason","placements","setClaimEnabled","enabled","registerCallbacks","completePurchaseRequest","onPurchaseRequest","handler","subscription","addListener","remove","onPurchaseComplete","onPassthrough","EncoreProvider","useEncoreContext"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","Platform","EncoreReactSDK","Error","OS","encoreEmitter","currentPurchaseRequestSubscription","currentPurchaseCompleteSubscription","currentPassthroughSubscription","safeBridgeCall","method","call","fallback","error","console","warn","Encore","configure","apiKey","options","success","identify","userId","attributes","setUserAttributes","reset","placement","placementId","show","status","reason","placements","setClaimEnabled","enabled","registerCallbacks","completePurchaseRequest","onPurchaseRequest","handler","_currentPurchaseReque","remove","addListener","subscription","onPurchaseComplete","_currentPurchaseCompl","onPassthrough","_currentPassthroughSu","EncoreProvider","useEncoreContext"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@encorekit/react-native",
3
- "version": "1.1.30",
3
+ "version": "1.1.32",
4
4
  "sdkVersions": {
5
5
  "ios": {
6
- "EncoreKit": "1.4.42"
6
+ "EncoreKit": "1.4.45"
7
7
  },
8
8
  "android": {
9
9
  "com.encorekit:encore": "1.4.48"
package/src/index.ts CHANGED
@@ -2,7 +2,12 @@
2
2
  // Bridge-only layer — delegates to native SDKs on each platform.
3
3
  // iOS: encore-swift-sdk | Android: encore-android-sdk
4
4
 
5
- import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
5
+ import {
6
+ NativeModules,
7
+ NativeEventEmitter,
8
+ Platform,
9
+ type EmitterSubscription,
10
+ } from 'react-native';
6
11
 
7
12
  const { EncoreReactSDK } = NativeModules;
8
13
 
@@ -14,6 +19,14 @@ if (!EncoreReactSDK) {
14
19
 
15
20
  const encoreEmitter = new NativeEventEmitter(EncoreReactSDK);
16
21
 
22
+ // Setter semantics: each on*() call replaces the previous handler instead of
23
+ // appending. This matches Swift / Android / Flutter parity. Without this, repeat
24
+ // registrations (e.g. hot reload, re-renders without cleanup) would accumulate
25
+ // listeners and cause N duplicate purchase attempts per event.
26
+ let currentPurchaseRequestSubscription: EmitterSubscription | null = null;
27
+ let currentPurchaseCompleteSubscription: EmitterSubscription | null = null;
28
+ let currentPassthroughSubscription: EmitterSubscription | null = null;
29
+
17
30
  async function safeBridgeCall<T>(
18
31
  method: string,
19
32
  call: () => Promise<T>,
@@ -148,18 +161,48 @@ const Encore: EncoreSDK = {
148
161
  safeBridgeCall('completePurchaseRequest', () => EncoreReactSDK.completePurchaseRequest(success), { success: false }),
149
162
 
150
163
  onPurchaseRequest: (handler) => {
151
- const subscription = encoreEmitter.addListener('onPurchaseRequest', handler);
152
- return () => subscription.remove();
164
+ currentPurchaseRequestSubscription?.remove();
165
+ currentPurchaseRequestSubscription = encoreEmitter.addListener(
166
+ 'onPurchaseRequest',
167
+ handler,
168
+ );
169
+ const subscription = currentPurchaseRequestSubscription;
170
+ return () => {
171
+ subscription.remove();
172
+ if (currentPurchaseRequestSubscription === subscription) {
173
+ currentPurchaseRequestSubscription = null;
174
+ }
175
+ };
153
176
  },
154
177
 
155
178
  onPurchaseComplete: (handler) => {
156
- const subscription = encoreEmitter.addListener('onPurchaseComplete', handler);
157
- return () => subscription.remove();
179
+ currentPurchaseCompleteSubscription?.remove();
180
+ currentPurchaseCompleteSubscription = encoreEmitter.addListener(
181
+ 'onPurchaseComplete',
182
+ handler,
183
+ );
184
+ const subscription = currentPurchaseCompleteSubscription;
185
+ return () => {
186
+ subscription.remove();
187
+ if (currentPurchaseCompleteSubscription === subscription) {
188
+ currentPurchaseCompleteSubscription = null;
189
+ }
190
+ };
158
191
  },
159
192
 
160
193
  onPassthrough: (handler) => {
161
- const subscription = encoreEmitter.addListener('onPassthrough', handler);
162
- return () => subscription.remove();
194
+ currentPassthroughSubscription?.remove();
195
+ currentPassthroughSubscription = encoreEmitter.addListener(
196
+ 'onPassthrough',
197
+ handler,
198
+ );
199
+ const subscription = currentPassthroughSubscription;
200
+ return () => {
201
+ subscription.remove();
202
+ if (currentPassthroughSubscription === subscription) {
203
+ currentPassthroughSubscription = null;
204
+ }
205
+ };
163
206
  },
164
207
  };
165
208