react-native-iap 12.9.0 → 12.10.1

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.
@@ -87,6 +87,31 @@ class RNIapModule(
87
87
  }
88
88
  }
89
89
 
90
+ @ReactMethod
91
+ fun isFeatureSupported(feature: String, promise: Promise) {
92
+ ensureConnection(
93
+ promise,
94
+ ) { billingClient ->
95
+ val f = when (feature) {
96
+ "IN_APP_MESSAGING" ->
97
+ BillingClient.FeatureType.IN_APP_MESSAGING
98
+ "PRICE_CHANGE_CONFIRMATION" ->
99
+ BillingClient.FeatureType.PRICE_CHANGE_CONFIRMATION
100
+ "PRODUCT_DETAILS" ->
101
+ BillingClient.FeatureType.PRODUCT_DETAILS
102
+ "SUBSCRIPTIONS" ->
103
+ BillingClient.FeatureType.SUBSCRIPTIONS
104
+ "SUBSCRIPTIONS_UPDATE" ->
105
+ BillingClient.FeatureType.SUBSCRIPTIONS_UPDATE
106
+ else -> {
107
+ promise.safeReject("Invalid Feature name")
108
+ return@ensureConnection
109
+ }
110
+ }
111
+ promise.safeResolve(billingClient.isFeatureSupported(f))
112
+ }
113
+ }
114
+
90
115
  @ReactMethod
91
116
  fun initConnection(promise: Promise) {
92
117
  if (googleApiAvailability.isGooglePlayServicesAvailable(reactContext)
@@ -254,13 +254,7 @@ class RNIapIos: RCTEventEmitter, SKRequestDelegate, SKPaymentTransactionObserver
254
254
  reject: @escaping RCTPromiseRejectBlock = { _, _, _ in }
255
255
  ) {
256
256
  debugMessage("clear valid products")
257
-
258
- let lockQueue = DispatchQueue(label: "validProducts")
259
-
260
- lockQueue.sync {
261
- validProducts.removeAll()
262
- }
263
-
257
+ validProducts.removeAll()
264
258
  resolve(nil)
265
259
  }
266
260
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validateReceiptAndroid = exports.getInstallSourceAndroid = exports.deepLinkToSubscriptionsAndroid = exports.acknowledgePurchaseAndroid = exports.AndroidModule = void 0;
6
+ exports.validateReceiptAndroid = exports.isFeatureSupported = exports.getInstallSourceAndroid = exports.deepLinkToSubscriptionsAndroid = exports.acknowledgePurchaseAndroid = exports.AndroidModule = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _internal = require("../internal");
9
9
  var _types = require("../types");
@@ -79,5 +79,18 @@ const acknowledgePurchaseAndroid = _ref3 => {
79
79
  } = _ref3;
80
80
  return (0, _internal.getAndroidModule)().acknowledgePurchase(token, developerPayload);
81
81
  };
82
+
83
+ /**
84
+ * Acknowledge a product (on Android.) No-op on iOS.
85
+ * @param {Android.FeatureType} feature to be checked
86
+ * @returns {Promise<boolean>}
87
+ */
82
88
  exports.acknowledgePurchaseAndroid = acknowledgePurchaseAndroid;
89
+ const isFeatureSupported = feature => {
90
+ if (!(_internal.isAndroid && RNIapModule)) {
91
+ return Promise.reject('This is only available on Android clients');
92
+ }
93
+ return AndroidModule.isFeatureSupported(feature);
94
+ };
95
+ exports.isFeatureSupported = isFeatureSupported;
83
96
  //# sourceMappingURL=android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_internal","_types","RNIapModule","NativeModules","AndroidModule","exports","getInstallSourceAndroid","InstallSourceAndroid","GOOGLE_PLAY","AMAZON","deepLinkToSubscriptionsAndroid","_ref","sku","checkNativeAndroidAvailable","Linking","openURL","getPackageName","validateReceiptAndroid","_ref2","packageName","productId","productToken","accessToken","isSub","type","url","response","fetch","method","headers","ok","Object","assign","Error","statusText","statusCode","status","json","acknowledgePurchaseAndroid","_ref3","token","developerPayload","getAndroidModule","acknowledgePurchase"],"sourceRoot":"../../../src","sources":["modules/android.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAaA,MAAM;EAACG;AAAW,CAAC,GAAGC,0BAAa;AAsD5B,MAAMC,aAAa,GAAGD,0BAAa,CAACD,WAAiC;AAACG,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAEtE,MAAME,uBAAuB,GAAGA,CAAA,KAA4B;EACjE,OAAOJ,WAAW,GACdK,2BAAoB,CAACC,WAAW,GAChCD,2BAAoB,CAACE,MAAM;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAJ,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAKO,MAAMI,8BAA8B,GAAG,MAAAC,IAAA,IAIzB;EAAA,IAJgC;IACnDC;EAGF,CAAC,GAAAD,IAAA;EACC,IAAAE,qCAA2B,GAAE;EAE7B,OAAOC,oBAAO,CAACC,OAAO,CACnB,+DAA8D,MAAMb,WAAW,CAACc,cAAc,EAAG,QAAOJ,GAAI,EAAC,CAC/G;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAP,OAAA,CAAAK,8BAAA,GAAAA,8BAAA;AAWO,MAAMO,sBAAsB,GAAG,MAAAC,KAAA,IAYF;EAAA,IAZS;IAC3CC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,WAAW;IACXC;EAOF,CAAC,GAAAL,KAAA;EACC,MAAMM,IAAI,GAAGD,KAAK,GAAG,eAAe,GAAG,UAAU;EAEjD,MAAME,GAAG,GACP,0EAA0E,GACzE,IAAGN,WAAY,cAAaK,IAAK,IAAGJ,SAAU,EAAC,GAC/C,WAAUC,YAAa,iBAAgBC,WAAY,EAAC;EAEvD,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,EAAE;IAChCG,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;EAEF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAMC,MAAM,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACP,QAAQ,CAACQ,UAAU,CAAC,EAAE;MAClDC,UAAU,EAAET,QAAQ,CAACU;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOV,QAAQ,CAACW,IAAI,EAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAhC,OAAA,CAAAY,sBAAA,GAAAA,sBAAA;AAKO,MAAMqB,0BAA0B,GAAGC,KAAA,IAMM;EAAA,IANL;IACzCC,KAAK;IACLC;EAIF,CAAC,GAAAF,KAAA;EACC,OAAO,IAAAG,0BAAgB,GAAE,CAACC,mBAAmB,CAACH,KAAK,EAAEC,gBAAgB,CAAC;AACxE,CAAC;AAACpC,OAAA,CAAAiC,0BAAA,GAAAA,0BAAA"}
1
+ {"version":3,"names":["_reactNative","require","_internal","_types","RNIapModule","NativeModules","AndroidModule","exports","getInstallSourceAndroid","InstallSourceAndroid","GOOGLE_PLAY","AMAZON","deepLinkToSubscriptionsAndroid","_ref","sku","checkNativeAndroidAvailable","Linking","openURL","getPackageName","validateReceiptAndroid","_ref2","packageName","productId","productToken","accessToken","isSub","type","url","response","fetch","method","headers","ok","Object","assign","Error","statusText","statusCode","status","json","acknowledgePurchaseAndroid","_ref3","token","developerPayload","getAndroidModule","acknowledgePurchase","isFeatureSupported","feature","isAndroid","Promise","reject"],"sourceRoot":"../../../src","sources":["modules/android.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AAaA,MAAM;EAACG;AAAW,CAAC,GAAGC,0BAAa;AAuD5B,MAAMC,aAAa,GAAGD,0BAAa,CAACD,WAAiC;AAACG,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAEtE,MAAME,uBAAuB,GAAGA,CAAA,KAA4B;EACjE,OAAOJ,WAAW,GACdK,2BAAoB,CAACC,WAAW,GAChCD,2BAAoB,CAACE,MAAM;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAJ,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAKO,MAAMI,8BAA8B,GAAG,MAAAC,IAAA,IAIzB;EAAA,IAJgC;IACnDC;EAGF,CAAC,GAAAD,IAAA;EACC,IAAAE,qCAA2B,GAAE;EAE7B,OAAOC,oBAAO,CAACC,OAAO,CACnB,+DAA8D,MAAMb,WAAW,CAACc,cAAc,EAAG,QAAOJ,GAAI,EAAC,CAC/G;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAP,OAAA,CAAAK,8BAAA,GAAAA,8BAAA;AAWO,MAAMO,sBAAsB,GAAG,MAAAC,KAAA,IAYF;EAAA,IAZS;IAC3CC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,WAAW;IACXC;EAOF,CAAC,GAAAL,KAAA;EACC,MAAMM,IAAI,GAAGD,KAAK,GAAG,eAAe,GAAG,UAAU;EAEjD,MAAME,GAAG,GACP,0EAA0E,GACzE,IAAGN,WAAY,cAAaK,IAAK,IAAGJ,SAAU,EAAC,GAC/C,WAAUC,YAAa,iBAAgBC,WAAY,EAAC;EAEvD,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,EAAE;IAChCG,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;EAEF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAMC,MAAM,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACP,QAAQ,CAACQ,UAAU,CAAC,EAAE;MAClDC,UAAU,EAAET,QAAQ,CAACU;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOV,QAAQ,CAACW,IAAI,EAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJAhC,OAAA,CAAAY,sBAAA,GAAAA,sBAAA;AAKO,MAAMqB,0BAA0B,GAAGC,KAAA,IAMM;EAAA,IANL;IACzCC,KAAK;IACLC;EAIF,CAAC,GAAAF,KAAA;EACC,OAAO,IAAAG,0BAAgB,GAAE,CAACC,mBAAmB,CAACH,KAAK,EAAEC,gBAAgB,CAAC;AACxE,CAAC;;AAED;AACA;AACA;AACA;AACA;AAJApC,OAAA,CAAAiC,0BAAA,GAAAA,0BAAA;AAKO,MAAMM,kBAAkB,GAC7BC,OAA4B,IACP;EACrB,IAAI,EAAEC,mBAAS,IAAI5C,WAAW,CAAC,EAAE;IAC/B,OAAO6C,OAAO,CAACC,MAAM,CAAC,2CAA2C,CAAC;EACpE;EACA,OAAO5C,aAAa,CAACwC,kBAAkB,CAACC,OAAO,CAAC;AAClD,CAAC;AAACxC,OAAA,CAAAuC,kBAAA,GAAAA,kBAAA"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.singleProductAndroidMap = exports.AndroidPurchaseType = exports.AndroidPurchaseState = exports.AndroidConsumptionState = exports.AndroidAcknowledgementState = void 0;
6
+ exports.singleProductAndroidMap = exports.FeatureType = exports.AndroidPurchaseType = exports.AndroidPurchaseState = exports.AndroidConsumptionState = exports.AndroidAcknowledgementState = void 0;
7
7
  let AndroidPurchaseState = /*#__PURE__*/function (AndroidPurchaseState) {
8
8
  AndroidPurchaseState[AndroidPurchaseState["purchased"] = 0] = "purchased";
9
9
  AndroidPurchaseState[AndroidPurchaseState["canceled"] = 1] = "canceled";
@@ -44,7 +44,19 @@ let AndroidAcknowledgementState = /*#__PURE__*/function (AndroidAcknowledgementS
44
44
  * @param {string} kind
45
45
  */
46
46
  exports.AndroidAcknowledgementState = AndroidAcknowledgementState;
47
+ /** Based on
48
+ * https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType
49
+ */
50
+ let FeatureType = /*#__PURE__*/function (FeatureType) {
51
+ FeatureType["IN_APP_MESSAGING"] = "IN_APP_MESSAGING";
52
+ FeatureType["PRICE_CHANGE_CONFIRMATION"] = "PRICE_CHANGE_CONFIRMATION";
53
+ FeatureType["PRODUCT_DETAILS"] = "PRODUCT_DETAILS";
54
+ FeatureType["SUBSCRIPTIONS"] = "SUBSCRIPTIONS";
55
+ FeatureType["SUBSCRIPTIONS_UPDATE"] = "SUBSCRIPTIONS_UPDATE";
56
+ return FeatureType;
57
+ }({});
47
58
  /** Added to maintain backwards compatibility */
59
+ exports.FeatureType = FeatureType;
48
60
  const singleProductAndroidMap = originalProd => {
49
61
  var _originalProd$oneTime, _originalProd$oneTime2, _originalProd$oneTime3;
50
62
  const prod = {
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidPurchaseState","exports","AndroidPurchaseType","AndroidConsumptionState","AndroidAcknowledgementState","singleProductAndroidMap","originalProd","_originalProd$oneTime","_originalProd$oneTime2","_originalProd$oneTime3","prod","price","oneTimePurchaseOfferDetails","formattedPrice","localizedPrice","currency","priceCurrencyCode"],"sourceRoot":"../../../src","sources":["types/android.ts"],"mappings":";;;;;;IAEYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAAC,OAAA,CAAAD,oBAAA,GAAAA,oBAAA;AAAA,IAMpBE,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAAD,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAAA,IAMnBC,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAAAF,OAAA,CAAAE,uBAAA,GAAAA,uBAAA;AAAA,IAKvBC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AAKvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbAH,OAAA,CAAAG,2BAAA,GAAAA,2BAAA;AA8BA;AACO,MAAMC,uBAAuB,GAClCC,YAA4B,IACT;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACnB,MAAMC,IAAoB,GAAG;IAC3B,GAAGJ,YAAY;IACf;IACAK,KAAK,EACH,EAAAJ,qBAAA,GAAAD,YAAY,CAACM,2BAA2B,cAAAL,qBAAA,uBAAxCA,qBAAA,CAA0CM,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBG,cAAc,EACZ,EAAAN,sBAAA,GAAAF,YAAY,CAACM,2BAA2B,cAAAJ,sBAAA,uBAAxCA,sBAAA,CAA0CK,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBI,QAAQ,EACN,EAAAN,sBAAA,GAAAH,YAAY,CAACM,2BAA2B,cAAAH,sBAAA,uBAAxCA,sBAAA,CAA0CO,iBAAiB,KAC3DV,YAAY,CAACS;EACjB,CAAC;EACD,OAAOL,IAAI;AACb,CAAC;AAACT,OAAA,CAAAI,uBAAA,GAAAA,uBAAA"}
1
+ {"version":3,"names":["AndroidPurchaseState","exports","AndroidPurchaseType","AndroidConsumptionState","AndroidAcknowledgementState","FeatureType","singleProductAndroidMap","originalProd","_originalProd$oneTime","_originalProd$oneTime2","_originalProd$oneTime3","prod","price","oneTimePurchaseOfferDetails","formattedPrice","localizedPrice","currency","priceCurrencyCode"],"sourceRoot":"../../../src","sources":["types/android.ts"],"mappings":";;;;;;IAEYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAAC,OAAA,CAAAD,oBAAA,GAAAA,oBAAA;AAAA,IAMpBE,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAAD,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAAA,IAMnBC,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAAAF,OAAA,CAAAE,uBAAA,GAAAA,uBAAA;AAAA,IAKvBC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;AAKvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbAH,OAAA,CAAAG,2BAAA,GAAAA,2BAAA;AA8BA;AACA;AACA;AAFA,IAGYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAavB;AAAAJ,OAAA,CAAAI,WAAA,GAAAA,WAAA;AACO,MAAMC,uBAAuB,GAClCC,YAA4B,IACT;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACnB,MAAMC,IAAoB,GAAG;IAC3B,GAAGJ,YAAY;IACf;IACAK,KAAK,EACH,EAAAJ,qBAAA,GAAAD,YAAY,CAACM,2BAA2B,cAAAL,qBAAA,uBAAxCA,qBAAA,CAA0CM,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBG,cAAc,EACZ,EAAAN,sBAAA,GAAAF,YAAY,CAACM,2BAA2B,cAAAJ,sBAAA,uBAAxCA,sBAAA,CAA0CK,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBI,QAAQ,EACN,EAAAN,sBAAA,GAAAH,YAAY,CAACM,2BAA2B,cAAAH,sBAAA,uBAAxCA,sBAAA,CAA0CO,iBAAiB,KAC3DV,YAAY,CAACS;EACjB,CAAC;EACD,OAAOL,IAAI;AACb,CAAC;AAACV,OAAA,CAAAK,uBAAA,GAAAA,uBAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Linking, NativeModules } from 'react-native';
2
- import { checkNativeAndroidAvailable, getAndroidModule } from '../internal';
2
+ import { checkNativeAndroidAvailable, getAndroidModule, isAndroid } from '../internal';
3
3
  import { InstallSourceAndroid } from '../types';
4
4
  const {
5
5
  RNIapModule
@@ -69,4 +69,16 @@ export const acknowledgePurchaseAndroid = _ref3 => {
69
69
  } = _ref3;
70
70
  return getAndroidModule().acknowledgePurchase(token, developerPayload);
71
71
  };
72
+
73
+ /**
74
+ * Acknowledge a product (on Android.) No-op on iOS.
75
+ * @param {Android.FeatureType} feature to be checked
76
+ * @returns {Promise<boolean>}
77
+ */
78
+ export const isFeatureSupported = feature => {
79
+ if (!(isAndroid && RNIapModule)) {
80
+ return Promise.reject('This is only available on Android clients');
81
+ }
82
+ return AndroidModule.isFeatureSupported(feature);
83
+ };
72
84
  //# sourceMappingURL=android.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Linking","NativeModules","checkNativeAndroidAvailable","getAndroidModule","InstallSourceAndroid","RNIapModule","AndroidModule","getInstallSourceAndroid","GOOGLE_PLAY","AMAZON","deepLinkToSubscriptionsAndroid","_ref","sku","openURL","getPackageName","validateReceiptAndroid","_ref2","packageName","productId","productToken","accessToken","isSub","type","url","response","fetch","method","headers","ok","Object","assign","Error","statusText","statusCode","status","json","acknowledgePurchaseAndroid","_ref3","token","developerPayload","acknowledgePurchase"],"sourceRoot":"../../../src","sources":["modules/android.ts"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,aAAa,QAAO,cAAc;AAEnD,SAAQC,2BAA2B,EAAEC,gBAAgB,QAAO,aAAa;AACzE,SACEC,oBAAoB,QAOf,UAAU;AAKjB,MAAM;EAACC;AAAW,CAAC,GAAGJ,aAAa;AAsDnC,OAAO,MAAMK,aAAa,GAAGL,aAAa,CAACI,WAAiC;AAE5E,OAAO,MAAME,uBAAuB,GAAGA,CAAA,KAA4B;EACjE,OAAOF,WAAW,GACdD,oBAAoB,CAACI,WAAW,GAChCJ,oBAAoB,CAACK,MAAM;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,8BAA8B,GAAG,MAAAC,IAAA,IAIzB;EAAA,IAJgC;IACnDC;EAGF,CAAC,GAAAD,IAAA;EACCT,2BAA2B,EAAE;EAE7B,OAAOF,OAAO,CAACa,OAAO,CACnB,+DAA8D,MAAMR,WAAW,CAACS,cAAc,EAAG,QAAOF,GAAI,EAAC,CAC/G;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,sBAAsB,GAAG,MAAAC,KAAA,IAYF;EAAA,IAZS;IAC3CC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,WAAW;IACXC;EAOF,CAAC,GAAAL,KAAA;EACC,MAAMM,IAAI,GAAGD,KAAK,GAAG,eAAe,GAAG,UAAU;EAEjD,MAAME,GAAG,GACP,0EAA0E,GACzE,IAAGN,WAAY,cAAaK,IAAK,IAAGJ,SAAU,EAAC,GAC/C,WAAUC,YAAa,iBAAgBC,WAAY,EAAC;EAEvD,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,EAAE;IAChCG,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;EAEF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAMC,MAAM,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACP,QAAQ,CAACQ,UAAU,CAAC,EAAE;MAClDC,UAAU,EAAET,QAAQ,CAACU;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOV,QAAQ,CAACW,IAAI,EAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGC,KAAA,IAMM;EAAA,IANL;IACzCC,KAAK;IACLC;EAIF,CAAC,GAAAF,KAAA;EACC,OAAOlC,gBAAgB,EAAE,CAACqC,mBAAmB,CAACF,KAAK,EAAEC,gBAAgB,CAAC;AACxE,CAAC"}
1
+ {"version":3,"names":["Linking","NativeModules","checkNativeAndroidAvailable","getAndroidModule","isAndroid","InstallSourceAndroid","RNIapModule","AndroidModule","getInstallSourceAndroid","GOOGLE_PLAY","AMAZON","deepLinkToSubscriptionsAndroid","_ref","sku","openURL","getPackageName","validateReceiptAndroid","_ref2","packageName","productId","productToken","accessToken","isSub","type","url","response","fetch","method","headers","ok","Object","assign","Error","statusText","statusCode","status","json","acknowledgePurchaseAndroid","_ref3","token","developerPayload","acknowledgePurchase","isFeatureSupported","feature","Promise","reject"],"sourceRoot":"../../../src","sources":["modules/android.ts"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,aAAa,QAAO,cAAc;AAEnD,SACEC,2BAA2B,EAC3BC,gBAAgB,EAChBC,SAAS,QACJ,aAAa;AACpB,SACEC,oBAAoB,QAOf,UAAU;AAKjB,MAAM;EAACC;AAAW,CAAC,GAAGL,aAAa;AAuDnC,OAAO,MAAMM,aAAa,GAAGN,aAAa,CAACK,WAAiC;AAE5E,OAAO,MAAME,uBAAuB,GAAGA,CAAA,KAA4B;EACjE,OAAOF,WAAW,GACdD,oBAAoB,CAACI,WAAW,GAChCJ,oBAAoB,CAACK,MAAM;AACjC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,8BAA8B,GAAG,MAAAC,IAAA,IAIzB;EAAA,IAJgC;IACnDC;EAGF,CAAC,GAAAD,IAAA;EACCV,2BAA2B,EAAE;EAE7B,OAAOF,OAAO,CAACc,OAAO,CACnB,+DAA8D,MAAMR,WAAW,CAACS,cAAc,EAAG,QAAOF,GAAI,EAAC,CAC/G;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,sBAAsB,GAAG,MAAAC,KAAA,IAYF;EAAA,IAZS;IAC3CC,WAAW;IACXC,SAAS;IACTC,YAAY;IACZC,WAAW;IACXC;EAOF,CAAC,GAAAL,KAAA;EACC,MAAMM,IAAI,GAAGD,KAAK,GAAG,eAAe,GAAG,UAAU;EAEjD,MAAME,GAAG,GACP,0EAA0E,GACzE,IAAGN,WAAY,cAAaK,IAAK,IAAGJ,SAAU,EAAC,GAC/C,WAAUC,YAAa,iBAAgBC,WAAY,EAAC;EAEvD,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACF,GAAG,EAAE;IAChCG,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACP,cAAc,EAAE;IAClB;EACF,CAAC,CAAC;EAEF,IAAI,CAACH,QAAQ,CAACI,EAAE,EAAE;IAChB,MAAMC,MAAM,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACP,QAAQ,CAACQ,UAAU,CAAC,EAAE;MAClDC,UAAU,EAAET,QAAQ,CAACU;IACvB,CAAC,CAAC;EACJ;EAEA,OAAOV,QAAQ,CAACW,IAAI,EAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGC,KAAA,IAMM;EAAA,IANL;IACzCC,KAAK;IACLC;EAIF,CAAC,GAAAF,KAAA;EACC,OAAOnC,gBAAgB,EAAE,CAACsC,mBAAmB,CAACF,KAAK,EAAEC,gBAAgB,CAAC;AACxE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,kBAAkB,GAC7BC,OAA4B,IACP;EACrB,IAAI,EAAEvC,SAAS,IAAIE,WAAW,CAAC,EAAE;IAC/B,OAAOsC,OAAO,CAACC,MAAM,CAAC,2CAA2C,CAAC;EACpE;EACA,OAAOtC,aAAa,CAACmC,kBAAkB,CAACC,OAAO,CAAC;AAClD,CAAC"}
@@ -36,6 +36,18 @@ export let AndroidAcknowledgementState = /*#__PURE__*/function (AndroidAcknowled
36
36
  * @param {string} kind
37
37
  */
38
38
 
39
+ /** Based on
40
+ * https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType
41
+ */
42
+ export let FeatureType = /*#__PURE__*/function (FeatureType) {
43
+ FeatureType["IN_APP_MESSAGING"] = "IN_APP_MESSAGING";
44
+ FeatureType["PRICE_CHANGE_CONFIRMATION"] = "PRICE_CHANGE_CONFIRMATION";
45
+ FeatureType["PRODUCT_DETAILS"] = "PRODUCT_DETAILS";
46
+ FeatureType["SUBSCRIPTIONS"] = "SUBSCRIPTIONS";
47
+ FeatureType["SUBSCRIPTIONS_UPDATE"] = "SUBSCRIPTIONS_UPDATE";
48
+ return FeatureType;
49
+ }({});
50
+
39
51
  /** Added to maintain backwards compatibility */
40
52
  export const singleProductAndroidMap = originalProd => {
41
53
  var _originalProd$oneTime, _originalProd$oneTime2, _originalProd$oneTime3;
@@ -1 +1 @@
1
- {"version":3,"names":["AndroidPurchaseState","AndroidPurchaseType","AndroidConsumptionState","AndroidAcknowledgementState","singleProductAndroidMap","originalProd","_originalProd$oneTime","_originalProd$oneTime2","_originalProd$oneTime3","prod","price","oneTimePurchaseOfferDetails","formattedPrice","localizedPrice","currency","priceCurrencyCode"],"sourceRoot":"../../../src","sources":["types/android.ts"],"mappings":"AAEA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAMhC,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAM/B,WAAYC,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAKnC,WAAYC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;;AAKvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA,OAAO,MAAMC,uBAAuB,GAClCC,YAA4B,IACT;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACnB,MAAMC,IAAoB,GAAG;IAC3B,GAAGJ,YAAY;IACf;IACAK,KAAK,EACH,EAAAJ,qBAAA,GAAAD,YAAY,CAACM,2BAA2B,cAAAL,qBAAA,uBAAxCA,qBAAA,CAA0CM,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBG,cAAc,EACZ,EAAAN,sBAAA,GAAAF,YAAY,CAACM,2BAA2B,cAAAJ,sBAAA,uBAAxCA,sBAAA,CAA0CK,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBI,QAAQ,EACN,EAAAN,sBAAA,GAAAH,YAAY,CAACM,2BAA2B,cAAAH,sBAAA,uBAAxCA,sBAAA,CAA0CO,iBAAiB,KAC3DV,YAAY,CAACS;EACjB,CAAC;EACD,OAAOL,IAAI;AACb,CAAC"}
1
+ {"version":3,"names":["AndroidPurchaseState","AndroidPurchaseType","AndroidConsumptionState","AndroidAcknowledgementState","FeatureType","singleProductAndroidMap","originalProd","_originalProd$oneTime","_originalProd$oneTime2","_originalProd$oneTime3","prod","price","oneTimePurchaseOfferDetails","formattedPrice","localizedPrice","currency","priceCurrencyCode"],"sourceRoot":"../../../src","sources":["types/android.ts"],"mappings":"AAEA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAApBA,oBAAoB,CAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAMhC,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAM/B,WAAYC,uBAAuB,0BAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAvBA,uBAAuB,CAAvBA,uBAAuB;EAAA,OAAvBA,uBAAuB;AAAA;AAKnC,WAAYC,2BAA2B,0BAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAA3BA,2BAA2B,CAA3BA,2BAA2B;EAAA,OAA3BA,2BAA2B;AAAA;;AAKvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;AACA;AACA;AACA,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAavB;AACA,OAAO,MAAMC,uBAAuB,GAClCC,YAA4B,IACT;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EACnB,MAAMC,IAAoB,GAAG;IAC3B,GAAGJ,YAAY;IACf;IACAK,KAAK,EACH,EAAAJ,qBAAA,GAAAD,YAAY,CAACM,2BAA2B,cAAAL,qBAAA,uBAAxCA,qBAAA,CAA0CM,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBG,cAAc,EACZ,EAAAN,sBAAA,GAAAF,YAAY,CAACM,2BAA2B,cAAAJ,sBAAA,uBAAxCA,sBAAA,CAA0CK,cAAc,KACxDP,YAAY,CAACK,KAAK;IACpBI,QAAQ,EACN,EAAAN,sBAAA,GAAAH,YAAY,CAACM,2BAA2B,cAAAH,sBAAA,uBAAxCA,sBAAA,CAA0CO,iBAAiB,KAC3DV,YAAY,CAACS;EACjB,CAAC;EACD,OAAOL,IAAI;AACb,CAAC"}
@@ -21,6 +21,7 @@ export interface AndroidModuleProps extends NativeModuleProps {
21
21
  /** @deprecated to be renamed to sendUnconsumedPurchases if not removed completely */
22
22
  startListening: StartListening;
23
23
  getPackageName: GetPackageName;
24
+ isFeatureSupported: (feature: Android.FeatureType) => Promise<boolean>;
24
25
  }
25
26
  export declare const AndroidModule: AndroidModuleProps;
26
27
  export declare const getInstallSourceAndroid: () => InstallSourceAndroid;
@@ -59,5 +60,11 @@ export declare const acknowledgePurchaseAndroid: ({ token, developerPayload, }:
59
60
  token: string;
60
61
  developerPayload?: string | undefined;
61
62
  }) => Promise<PurchaseResult | boolean | void>;
63
+ /**
64
+ * Acknowledge a product (on Android.) No-op on iOS.
65
+ * @param {Android.FeatureType} feature to be checked
66
+ * @returns {Promise<boolean>}
67
+ */
68
+ export declare const isFeatureSupported: (feature: Android.FeatureType) => Promise<boolean>;
62
69
  export {};
63
70
  //# sourceMappingURL=android.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/modules/android.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,GAAG,EACJ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAIhD,KAAK,mCAAmC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAElE,KAAK,cAAc,GAAG,CAAC,CAAC,GAAG,OAAO,EAChC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,GAAG,EAAE,KACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,KAAK,uBAAuB,GAAG,CAAC,CAAC,GAAG,QAAQ,EAC1C,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,KAAK,wBAAwB,GAAG,CAAC,CAAC,GAAG,QAAQ,EAC3C,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EAAE,EACX,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,aAAa,EAAE,qBAAqB,GAAG,CAAC,CAAC,EACzC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,mBAAmB,EAAE,OAAO,KACzB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,KAAK,mBAAmB,GAAG,CACzB,aAAa,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,KAC7B,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;AAEvC,KAAK,cAAc,GAAG,CACpB,aAAa,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,KAC7B,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;AAEvC,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAE5C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,mCAAmC,EAAE,mCAAmC,CAAC;IACzE,cAAc,EAAE,cAAc,CAAC;IAC/B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,oBAAkD,CAAC;AAE7E,eAAO,MAAM,uBAAuB,QAAO,oBAI1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;SAGpC,GAAG;MACN,QAAQ,IAAI,CAMf,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB;iBAOpB,MAAM;eACR,MAAM;kBACH,MAAM;iBACP,MAAM;;MAEjB,QAAQ,QAAQ,WAAW,CAsB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;WAI9B,MAAM;;MAEX,QAAQ,cAAc,GAAG,OAAO,GAAG,IAAI,CAE1C,CAAC"}
1
+ {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/modules/android.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,oBAAoB,EACpB,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,GAAG,EACJ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,UAAU,CAAC;AAIhD,KAAK,mCAAmC,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAElE,KAAK,cAAc,GAAG,CAAC,CAAC,GAAG,OAAO,EAChC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,GAAG,EAAE,KACR,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,KAAK,uBAAuB,GAAG,CAAC,CAAC,GAAG,QAAQ,EAC1C,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,KAAK,wBAAwB,GAAG,CAAC,CAAC,GAAG,QAAQ,EAC3C,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;AAElB,MAAM,MAAM,aAAa,GAAG,CAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,EAAE,EACX,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,aAAa,EAAE,qBAAqB,GAAG,CAAC,CAAC,EACzC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,kBAAkB,EAAE,MAAM,EAAE,EAC5B,mBAAmB,EAAE,OAAO,KACzB,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB,KAAK,mBAAmB,GAAG,CACzB,aAAa,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,KAC7B,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;AAEvC,KAAK,cAAc,GAAG,CACpB,aAAa,EAAE,MAAM,EACrB,uBAAuB,CAAC,EAAE,MAAM,KAC7B,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;AAEvC,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAC1C,KAAK,cAAc,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AAE5C,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,mCAAmC,EAAE,mCAAmC,CAAC;IACzE,cAAc,EAAE,cAAc,CAAC;IAC/B,uBAAuB,EAAE,uBAAuB,CAAC;IACjD,wBAAwB,EAAE,wBAAwB,CAAC;IACnD,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,qFAAqF;IACrF,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE;AAED,eAAO,MAAM,aAAa,oBAAkD,CAAC;AAE7E,eAAO,MAAM,uBAAuB,QAAO,oBAI1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;SAGpC,GAAG;MACN,QAAQ,IAAI,CAMf,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB;iBAOpB,MAAM;eACR,MAAM;kBACH,MAAM;iBACP,MAAM;;MAEjB,QAAQ,QAAQ,WAAW,CAsB9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B;WAI9B,MAAM;;MAEX,QAAQ,cAAc,GAAG,OAAO,GAAG,IAAI,CAE1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,YACpB,QAAQ,WAAW,KAC3B,QAAQ,OAAO,CAKjB,CAAC"}
@@ -46,6 +46,21 @@ export type ReceiptType = {
46
46
  acknowledgementState: AndroidAcknowledgementState;
47
47
  kind: string;
48
48
  } & Record<string, unknown>;
49
+ /** Based on
50
+ * https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType
51
+ */
52
+ export declare enum FeatureType {
53
+ /** Show in-app messages. Included in documentation by the annotations: */
54
+ IN_APP_MESSAGING = "IN_APP_MESSAGING",
55
+ /** Launch a price change confirmation flow. */
56
+ PRICE_CHANGE_CONFIRMATION = "PRICE_CHANGE_CONFIRMATION",
57
+ /** Play billing library support for querying and purchasing with ProductDetails. */
58
+ PRODUCT_DETAILS = "PRODUCT_DETAILS",
59
+ /** Purchase/query for subscriptions. */
60
+ SUBSCRIPTIONS = "SUBSCRIPTIONS",
61
+ /** Subscriptions update/replace. */
62
+ SUBSCRIPTIONS_UPDATE = "SUBSCRIPTIONS_UPDATE"
63
+ }
49
64
  /** Added to maintain backwards compatibility */
50
65
  export declare const singleProductAndroidMap: (originalProd: ProductAndroid) => ProductAndroid;
51
66
  //# sourceMappingURL=android.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/types/android.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,GAAG,CAAC;AAEtC,oBAAY,oBAAoB;IAC9B,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,OAAO,IAAI;CACZ;AAED,oBAAY,mBAAmB;IAC7B,IAAI,IAAI;IACR,KAAK,IAAI;IACT,QAAQ,IAAI;CACb;AAED,oBAAY,uBAAuB;IACjC,GAAG,IAAI;IACP,QAAQ,IAAI;CACb;AAED,oBAAY,2BAA2B;IACrC,GAAG,IAAI;IACP,YAAY,IAAI;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,oBAAoB,EAAE,2BAA2B,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,iBACpB,cAAc,KAC3B,cAeF,CAAC"}
1
+ {"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../../src/types/android.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,GAAG,CAAC;AAEtC,oBAAY,oBAAoB;IAC9B,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,OAAO,IAAI;CACZ;AAED,oBAAY,mBAAmB;IAC7B,IAAI,IAAI;IACR,KAAK,IAAI;IACT,QAAQ,IAAI;CACb;AAED,oBAAY,uBAAuB;IACjC,GAAG,IAAI;IACP,QAAQ,IAAI;CACb;AAED,oBAAY,2BAA2B;IACrC,GAAG,IAAI;IACP,YAAY,IAAI;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;IAClC,oBAAoB,EAAE,2BAA2B,CAAC;IAClD,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B;;GAEG;AACH,oBAAY,WAAW;IACrB,0EAA0E;IAC1E,gBAAgB,qBAAqB;IACrC,+CAA+C;IAC/C,yBAAyB,8BAA8B;IACvD,oFAAoF;IACpF,eAAe,oBAAoB;IACnC,wCAAwC;IACxC,aAAa,kBAAkB;IAC/B,oCAAoC;IACpC,oBAAoB,yBAAyB;CAC9C;AAED,gDAAgD;AAChD,eAAO,MAAM,uBAAuB,iBACpB,cAAc,KAC3B,cAeF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-iap",
3
- "version": "12.9.0",
3
+ "version": "12.10.1",
4
4
  "description": "React Native In App Purchase Module.",
5
5
  "repository": "https://github.com/dooboolab/react-native-iap",
6
6
  "author": "dooboolab <support@dooboolab.com> (https://github.com/dooboolab)",
@@ -86,11 +86,11 @@
86
86
  "@types/jest": "29.5.0",
87
87
  "@types/react": "*",
88
88
  "@types/react-native": "*",
89
- "@typescript-eslint/eslint-plugin": "5.55.0",
90
- "@typescript-eslint/parser": "5.55.0",
89
+ "@typescript-eslint/eslint-plugin": "5.56.0",
90
+ "@typescript-eslint/parser": "5.56.0",
91
91
  "babel-jest": "29.5.0",
92
92
  "eslint": "8.36.0",
93
- "eslint-config-prettier": "8.7.0",
93
+ "eslint-config-prettier": "8.8.0",
94
94
  "eslint-plugin-jest": "27.2.1",
95
95
  "eslint-plugin-prettier": "4.2.1",
96
96
  "eslint-plugin-simple-import-sort": "10.0.0",
@@ -98,11 +98,11 @@
98
98
  "jest": "29.5.0",
99
99
  "monolinter": "1.0.4",
100
100
  "pod-install": "0.1.38",
101
- "prettier": "2.8.5",
101
+ "prettier": "2.8.6",
102
102
  "react": "17.0.2",
103
103
  "react-native": "0.68.2",
104
104
  "react-native-builder-bob": "0.20.4",
105
- "release-it": "15.9.0",
105
+ "release-it": "15.9.1",
106
106
  "ts-jest": "29.0.5",
107
107
  "typedoc": "^0.23.14",
108
108
  "typedoc-plugin-markdown": "^3.14.0",
@@ -1,6 +1,10 @@
1
1
  import {Linking, NativeModules} from 'react-native';
2
2
 
3
- import {checkNativeAndroidAvailable, getAndroidModule} from '../internal';
3
+ import {
4
+ checkNativeAndroidAvailable,
5
+ getAndroidModule,
6
+ isAndroid,
7
+ } from '../internal';
4
8
  import {
5
9
  InstallSourceAndroid,
6
10
  Product,
@@ -66,6 +70,7 @@ export interface AndroidModuleProps extends NativeModuleProps {
66
70
  /** @deprecated to be renamed to sendUnconsumedPurchases if not removed completely */
67
71
  startListening: StartListening;
68
72
  getPackageName: GetPackageName;
73
+ isFeatureSupported: (feature: Android.FeatureType) => Promise<boolean>;
69
74
  }
70
75
 
71
76
  export const AndroidModule = NativeModules.RNIapModule as AndroidModuleProps;
@@ -154,3 +159,17 @@ export const acknowledgePurchaseAndroid = ({
154
159
  }): Promise<PurchaseResult | boolean | void> => {
155
160
  return getAndroidModule().acknowledgePurchase(token, developerPayload);
156
161
  };
162
+
163
+ /**
164
+ * Acknowledge a product (on Android.) No-op on iOS.
165
+ * @param {Android.FeatureType} feature to be checked
166
+ * @returns {Promise<boolean>}
167
+ */
168
+ export const isFeatureSupported = (
169
+ feature: Android.FeatureType,
170
+ ): Promise<boolean> => {
171
+ if (!(isAndroid && RNIapModule)) {
172
+ return Promise.reject('This is only available on Android clients');
173
+ }
174
+ return AndroidModule.isFeatureSupported(feature);
175
+ };
@@ -52,6 +52,22 @@ export type ReceiptType = {
52
52
  kind: string;
53
53
  } & Record<string, unknown>;
54
54
 
55
+ /** Based on
56
+ * https://developer.android.com/reference/com/android/billingclient/api/BillingClient.FeatureType
57
+ */
58
+ export enum FeatureType {
59
+ /** Show in-app messages. Included in documentation by the annotations: */
60
+ IN_APP_MESSAGING = 'IN_APP_MESSAGING',
61
+ /** Launch a price change confirmation flow. */
62
+ PRICE_CHANGE_CONFIRMATION = 'PRICE_CHANGE_CONFIRMATION',
63
+ /** Play billing library support for querying and purchasing with ProductDetails. */
64
+ PRODUCT_DETAILS = 'PRODUCT_DETAILS',
65
+ /** Purchase/query for subscriptions. */
66
+ SUBSCRIPTIONS = 'SUBSCRIPTIONS',
67
+ /** Subscriptions update/replace. */
68
+ SUBSCRIPTIONS_UPDATE = 'SUBSCRIPTIONS_UPDATE',
69
+ }
70
+
55
71
  /** Added to maintain backwards compatibility */
56
72
  export const singleProductAndroidMap = (
57
73
  originalProd: ProductAndroid,