react-native-iap 9.0.2 → 10.0.0

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.
Files changed (68) hide show
  1. package/android/src/amazon/java/com/dooboolab/RNIap/RNIapAmazonModule.kt +6 -2
  2. package/lib/commonjs/eventEmitter.js +54 -0
  3. package/lib/commonjs/eventEmitter.js.map +1 -0
  4. package/lib/commonjs/hooks/useIAP.js +33 -15
  5. package/lib/commonjs/hooks/useIAP.js.map +1 -1
  6. package/lib/commonjs/hooks/withIAPContext.js +9 -7
  7. package/lib/commonjs/hooks/withIAPContext.js.map +1 -1
  8. package/lib/commonjs/iap.js +131 -197
  9. package/lib/commonjs/iap.js.map +1 -1
  10. package/lib/commonjs/index.js +28 -15
  11. package/lib/commonjs/index.js.map +1 -1
  12. package/lib/commonjs/internal/enhancedFetch.js +30 -0
  13. package/lib/commonjs/internal/enhancedFetch.js.map +1 -0
  14. package/lib/commonjs/internal/fillProductsWithAdditionalData.js +47 -0
  15. package/lib/commonjs/internal/fillProductsWithAdditionalData.js.map +1 -0
  16. package/lib/commonjs/internal/index.js +45 -0
  17. package/lib/commonjs/internal/index.js.map +1 -0
  18. package/lib/commonjs/internal/platform.js +19 -0
  19. package/lib/commonjs/internal/platform.js.map +1 -0
  20. package/lib/commonjs/purchaseError.js +47 -0
  21. package/lib/commonjs/purchaseError.js.map +1 -0
  22. package/lib/commonjs/types/index.js +1 -23
  23. package/lib/commonjs/types/index.js.map +1 -1
  24. package/lib/module/eventEmitter.js +36 -0
  25. package/lib/module/eventEmitter.js.map +1 -0
  26. package/lib/module/hooks/useIAP.js +34 -16
  27. package/lib/module/hooks/useIAP.js.map +1 -1
  28. package/lib/module/hooks/withIAPContext.js +6 -5
  29. package/lib/module/hooks/withIAPContext.js.map +1 -1
  30. package/lib/module/iap.js +123 -186
  31. package/lib/module/iap.js.map +1 -1
  32. package/lib/module/index.js +2 -2
  33. package/lib/module/index.js.map +1 -1
  34. package/lib/module/internal/enhancedFetch.js +21 -0
  35. package/lib/module/internal/enhancedFetch.js.map +1 -0
  36. package/lib/module/internal/fillProductsWithAdditionalData.js +37 -0
  37. package/lib/module/internal/fillProductsWithAdditionalData.js.map +1 -0
  38. package/lib/module/internal/index.js +4 -0
  39. package/lib/module/internal/index.js.map +1 -0
  40. package/lib/module/internal/platform.js +8 -0
  41. package/lib/module/internal/platform.js.map +1 -0
  42. package/lib/module/purchaseError.js +38 -0
  43. package/lib/module/purchaseError.js.map +1 -0
  44. package/lib/module/types/index.js +0 -21
  45. package/lib/module/types/index.js.map +1 -1
  46. package/lib/typescript/eventEmitter.d.ts +17 -0
  47. package/lib/typescript/hooks/useIAP.d.ts +15 -9
  48. package/lib/typescript/hooks/withIAPContext.d.ts +4 -3
  49. package/lib/typescript/iap.d.ts +80 -41
  50. package/lib/typescript/index.d.ts +2 -2
  51. package/lib/typescript/internal/enhancedFetch.d.ts +6 -0
  52. package/lib/typescript/internal/fillProductsWithAdditionalData.d.ts +5 -0
  53. package/lib/typescript/internal/index.d.ts +3 -0
  54. package/lib/typescript/internal/platform.d.ts +3 -0
  55. package/lib/typescript/purchaseError.d.ts +26 -0
  56. package/lib/typescript/types/index.d.ts +1 -48
  57. package/package.json +1 -1
  58. package/src/eventEmitter.ts +49 -0
  59. package/src/hooks/useIAP.ts +38 -35
  60. package/src/hooks/withIAPContext.tsx +12 -13
  61. package/src/iap.ts +165 -242
  62. package/src/index.ts +2 -4
  63. package/src/internal/enhancedFetch.ts +25 -0
  64. package/src/internal/fillProductsWithAdditionalData.ts +43 -0
  65. package/src/internal/index.ts +3 -0
  66. package/src/internal/platform.ts +7 -0
  67. package/src/purchaseError.ts +35 -0
  68. package/src/types/index.ts +1 -59
@@ -1,5 +1,5 @@
1
1
  import { useCallback } from 'react';
2
- import { finishTransaction as iapFinishTransaction, getAvailablePurchases as iapGetAvailablePurchases, getProducts as iapGetProducts, getPurchaseHistory, getSubscriptions as iapGetSubscriptions, requestPurchase as iapRequestPurchase, requestSubscription as iapRequestSubscription } from '../iap';
2
+ import { finishTransaction as iapFinishTransaction, getAvailablePurchases as iapGetAvailablePurchases, getProducts as iapGetProducts, getPurchaseHistory as iapGetPurchaseHistory, getSubscriptions as iapGetSubscriptions } from '../iap';
3
3
  import { useIAPContext } from './withIAPContext';
4
4
  export function useIAP() {
5
5
  const {
@@ -7,7 +7,7 @@ export function useIAP() {
7
7
  products,
8
8
  promotedProductsIOS,
9
9
  subscriptions,
10
- purchaseHistories,
10
+ purchaseHistory,
11
11
  availablePurchases,
12
12
  currentPurchase,
13
13
  currentPurchaseError,
@@ -15,25 +15,45 @@ export function useIAP() {
15
15
  setProducts,
16
16
  setSubscriptions,
17
17
  setAvailablePurchases,
18
- setPurchaseHistories,
18
+ setPurchaseHistory,
19
19
  setCurrentPurchase,
20
20
  setCurrentPurchaseError
21
21
  } = useIAPContext();
22
- const getProducts = useCallback(async skus => {
23
- setProducts(await iapGetProducts(skus));
22
+ const getProducts = useCallback(async _ref => {
23
+ let {
24
+ skus
25
+ } = _ref;
26
+ setProducts(await iapGetProducts({
27
+ skus
28
+ }));
24
29
  }, [setProducts]);
25
- const getSubscriptions = useCallback(async skus => {
26
- setSubscriptions(await iapGetSubscriptions(skus));
30
+ const getSubscriptions = useCallback(async _ref2 => {
31
+ let {
32
+ skus
33
+ } = _ref2;
34
+ setSubscriptions(await iapGetSubscriptions({
35
+ skus
36
+ }));
27
37
  }, [setSubscriptions]);
28
38
  const getAvailablePurchases = useCallback(async () => {
29
39
  setAvailablePurchases(await iapGetAvailablePurchases());
30
40
  }, [setAvailablePurchases]);
31
- const getPurchaseHistories = useCallback(async () => {
32
- setPurchaseHistories(await getPurchaseHistory());
33
- }, [setPurchaseHistories]);
34
- const finishTransaction = useCallback(async (purchase, isConsumable, developerPayloadAndroid) => {
41
+ const getPurchaseHistory = useCallback(async () => {
42
+ setPurchaseHistory(await iapGetPurchaseHistory());
43
+ }, [setPurchaseHistory]);
44
+ const finishTransaction = useCallback(async _ref3 => {
45
+ let {
46
+ purchase,
47
+ isConsumable,
48
+ developerPayloadAndroid
49
+ } = _ref3;
50
+
35
51
  try {
36
- return await iapFinishTransaction(purchase, isConsumable, developerPayloadAndroid);
52
+ return await iapFinishTransaction({
53
+ purchase,
54
+ isConsumable,
55
+ developerPayloadAndroid
56
+ });
37
57
  } catch (err) {
38
58
  throw err;
39
59
  } finally {
@@ -51,7 +71,7 @@ export function useIAP() {
51
71
  products,
52
72
  promotedProductsIOS,
53
73
  subscriptions,
54
- purchaseHistories,
74
+ purchaseHistory,
55
75
  availablePurchases,
56
76
  currentPurchase,
57
77
  currentPurchaseError,
@@ -60,9 +80,7 @@ export function useIAP() {
60
80
  getProducts,
61
81
  getSubscriptions,
62
82
  getAvailablePurchases,
63
- getPurchaseHistories,
64
- requestPurchase: iapRequestPurchase,
65
- requestSubscription: iapRequestSubscription
83
+ getPurchaseHistory
66
84
  };
67
85
  }
68
86
  //# sourceMappingURL=useIAP.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","finishTransaction","iapFinishTransaction","getAvailablePurchases","iapGetAvailablePurchases","getProducts","iapGetProducts","getPurchaseHistory","getSubscriptions","iapGetSubscriptions","requestPurchase","iapRequestPurchase","requestSubscription","iapRequestSubscription","useIAPContext","useIAP","connected","products","promotedProductsIOS","subscriptions","purchaseHistories","availablePurchases","currentPurchase","currentPurchaseError","initConnectionError","setProducts","setSubscriptions","setAvailablePurchases","setPurchaseHistories","setCurrentPurchase","setCurrentPurchaseError","skus","getPurchaseHistories","purchase","isConsumable","developerPayloadAndroid","err","productId","undefined"],"sources":["useIAP.ts"],"sourcesContent":["import {useCallback} from 'react';\n\nimport {\n finishTransaction as iapFinishTransaction,\n getAvailablePurchases as iapGetAvailablePurchases,\n getProducts as iapGetProducts,\n getPurchaseHistory,\n getSubscriptions as iapGetSubscriptions,\n requestPurchase as iapRequestPurchase,\n requestSubscription as iapRequestSubscription,\n} from '../iap';\nimport type {Product, Purchase, PurchaseError, Subscription} from '../types';\n\nimport {useIAPContext} from './withIAPContext';\n\ntype IAP_STATUS = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistories: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n finishTransaction: (\n purchase: Purchase,\n isConsumable?: boolean,\n developerPayloadAndroid?: string,\n ) => Promise<string | void>;\n getAvailablePurchases: () => Promise<void>;\n getPurchaseHistories: () => Promise<void>;\n getProducts: (skus: string[]) => Promise<void>;\n getSubscriptions: (skus: string[]) => Promise<void>;\n requestPurchase: typeof iapRequestPurchase;\n requestSubscription: typeof iapRequestSubscription;\n};\n\nexport function useIAP(): IAP_STATUS {\n const {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistories,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setAvailablePurchases,\n setPurchaseHistories,\n setCurrentPurchase,\n setCurrentPurchaseError,\n } = useIAPContext();\n\n const getProducts = useCallback(\n async (skus: string[]): Promise<void> => {\n setProducts(await iapGetProducts(skus));\n },\n [setProducts],\n );\n\n const getSubscriptions = useCallback(\n async (skus: string[]): Promise<void> => {\n setSubscriptions(await iapGetSubscriptions(skus));\n },\n [setSubscriptions],\n );\n\n const getAvailablePurchases = useCallback(async (): Promise<void> => {\n setAvailablePurchases(await iapGetAvailablePurchases());\n }, [setAvailablePurchases]);\n\n const getPurchaseHistories = useCallback(async (): Promise<void> => {\n setPurchaseHistories(await getPurchaseHistory());\n }, [setPurchaseHistories]);\n\n const finishTransaction = useCallback(\n async (\n purchase: Purchase,\n isConsumable?: boolean,\n developerPayloadAndroid?: string,\n ): Promise<string | void> => {\n try {\n return await iapFinishTransaction(\n purchase,\n isConsumable,\n developerPayloadAndroid,\n );\n } catch (err) {\n throw err;\n } finally {\n if (purchase.productId === currentPurchase?.productId) {\n setCurrentPurchase(undefined);\n }\n\n if (purchase.productId === currentPurchaseError?.productId) {\n setCurrentPurchaseError(undefined);\n }\n }\n },\n [\n currentPurchase?.productId,\n currentPurchaseError?.productId,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n return {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistories,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n finishTransaction,\n getProducts,\n getSubscriptions,\n getAvailablePurchases,\n getPurchaseHistories,\n requestPurchase: iapRequestPurchase,\n requestSubscription: iapRequestSubscription,\n };\n}\n"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,OAA1B;AAEA,SACEC,iBAAiB,IAAIC,oBADvB,EAEEC,qBAAqB,IAAIC,wBAF3B,EAGEC,WAAW,IAAIC,cAHjB,EAIEC,kBAJF,EAKEC,gBAAgB,IAAIC,mBALtB,EAMEC,eAAe,IAAIC,kBANrB,EAOEC,mBAAmB,IAAIC,sBAPzB,QAQO,QARP;AAWA,SAAQC,aAAR,QAA4B,kBAA5B;AAyBA,OAAO,SAASC,MAAT,GAA8B;EACnC,MAAM;IACJC,SADI;IAEJC,QAFI;IAGJC,mBAHI;IAIJC,aAJI;IAKJC,iBALI;IAMJC,kBANI;IAOJC,eAPI;IAQJC,oBARI;IASJC,mBATI;IAUJC,WAVI;IAWJC,gBAXI;IAYJC,qBAZI;IAaJC,oBAbI;IAcJC,kBAdI;IAeJC;EAfI,IAgBFhB,aAAa,EAhBjB;EAkBA,MAAMT,WAAW,GAAGL,WAAW,CAC7B,MAAO+B,IAAP,IAAyC;IACvCN,WAAW,CAAC,MAAMnB,cAAc,CAACyB,IAAD,CAArB,CAAX;EACD,CAH4B,EAI7B,CAACN,WAAD,CAJ6B,CAA/B;EAOA,MAAMjB,gBAAgB,GAAGR,WAAW,CAClC,MAAO+B,IAAP,IAAyC;IACvCL,gBAAgB,CAAC,MAAMjB,mBAAmB,CAACsB,IAAD,CAA1B,CAAhB;EACD,CAHiC,EAIlC,CAACL,gBAAD,CAJkC,CAApC;EAOA,MAAMvB,qBAAqB,GAAGH,WAAW,CAAC,YAA2B;IACnE2B,qBAAqB,CAAC,MAAMvB,wBAAwB,EAA/B,CAArB;EACD,CAFwC,EAEtC,CAACuB,qBAAD,CAFsC,CAAzC;EAIA,MAAMK,oBAAoB,GAAGhC,WAAW,CAAC,YAA2B;IAClE4B,oBAAoB,CAAC,MAAMrB,kBAAkB,EAAzB,CAApB;EACD,CAFuC,EAErC,CAACqB,oBAAD,CAFqC,CAAxC;EAIA,MAAM3B,iBAAiB,GAAGD,WAAW,CACnC,OACEiC,QADF,EAEEC,YAFF,EAGEC,uBAHF,KAI6B;IAC3B,IAAI;MACF,OAAO,MAAMjC,oBAAoB,CAC/B+B,QAD+B,EAE/BC,YAF+B,EAG/BC,uBAH+B,CAAjC;IAKD,CAND,CAME,OAAOC,GAAP,EAAY;MACZ,MAAMA,GAAN;IACD,CARD,SAQU;MACR,IAAIH,QAAQ,CAACI,SAAT,MAAuBf,eAAvB,aAAuBA,eAAvB,uBAAuBA,eAAe,CAAEe,SAAxC,CAAJ,EAAuD;QACrDR,kBAAkB,CAACS,SAAD,CAAlB;MACD;;MAED,IAAIL,QAAQ,CAACI,SAAT,MAAuBd,oBAAvB,aAAuBA,oBAAvB,uBAAuBA,oBAAoB,CAAEc,SAA7C,CAAJ,EAA4D;QAC1DP,uBAAuB,CAACQ,SAAD,CAAvB;MACD;IACF;EACF,CAvBkC,EAwBnC,CACEhB,eADF,aACEA,eADF,uBACEA,eAAe,CAAEe,SADnB,EAEEd,oBAFF,aAEEA,oBAFF,uBAEEA,oBAAoB,CAAEc,SAFxB,EAGER,kBAHF,EAIEC,uBAJF,CAxBmC,CAArC;EAgCA,OAAO;IACLd,SADK;IAELC,QAFK;IAGLC,mBAHK;IAILC,aAJK;IAKLC,iBALK;IAMLC,kBANK;IAOLC,eAPK;IAQLC,oBARK;IASLC,mBATK;IAULvB,iBAVK;IAWLI,WAXK;IAYLG,gBAZK;IAaLL,qBAbK;IAcL6B,oBAdK;IAeLtB,eAAe,EAAEC,kBAfZ;IAgBLC,mBAAmB,EAAEC;EAhBhB,CAAP;AAkBD"}
1
+ {"version":3,"names":["useCallback","finishTransaction","iapFinishTransaction","getAvailablePurchases","iapGetAvailablePurchases","getProducts","iapGetProducts","getPurchaseHistory","iapGetPurchaseHistory","getSubscriptions","iapGetSubscriptions","useIAPContext","useIAP","connected","products","promotedProductsIOS","subscriptions","purchaseHistory","availablePurchases","currentPurchase","currentPurchaseError","initConnectionError","setProducts","setSubscriptions","setAvailablePurchases","setPurchaseHistory","setCurrentPurchase","setCurrentPurchaseError","skus","purchase","isConsumable","developerPayloadAndroid","err","productId","undefined"],"sources":["useIAP.ts"],"sourcesContent":["import {useCallback} from 'react';\n\nimport {\n finishTransaction as iapFinishTransaction,\n getAvailablePurchases as iapGetAvailablePurchases,\n getProducts as iapGetProducts,\n getPurchaseHistory as iapGetPurchaseHistory,\n getSubscriptions as iapGetSubscriptions,\n} from '../iap';\nimport type {PurchaseError} from '../purchaseError';\nimport type {Product, Purchase, Subscription} from '../types';\n\nimport {useIAPContext} from './withIAPContext';\n\ntype IAP_STATUS = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistory: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n finishTransaction: ({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n }: {\n purchase: Purchase;\n isConsumable?: boolean;\n developerPayloadAndroid?: string;\n }) => Promise<string | void>;\n getAvailablePurchases: () => Promise<void>;\n getPurchaseHistory: () => Promise<void>;\n getProducts: ({skus}: {skus: string[]}) => Promise<void>;\n getSubscriptions: ({skus}: {skus: string[]}) => Promise<void>;\n};\n\nexport function useIAP(): IAP_STATUS {\n const {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setAvailablePurchases,\n setPurchaseHistory,\n setCurrentPurchase,\n setCurrentPurchaseError,\n } = useIAPContext();\n\n const getProducts = useCallback(\n async ({skus}: {skus: string[]}): Promise<void> => {\n setProducts(await iapGetProducts({skus}));\n },\n [setProducts],\n );\n\n const getSubscriptions = useCallback(\n async ({skus}: {skus: string[]}): Promise<void> => {\n setSubscriptions(await iapGetSubscriptions({skus}));\n },\n [setSubscriptions],\n );\n\n const getAvailablePurchases = useCallback(async (): Promise<void> => {\n setAvailablePurchases(await iapGetAvailablePurchases());\n }, [setAvailablePurchases]);\n\n const getPurchaseHistory = useCallback(async (): Promise<void> => {\n setPurchaseHistory(await iapGetPurchaseHistory());\n }, [setPurchaseHistory]);\n\n const finishTransaction = useCallback(\n async ({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n }: {\n purchase: Purchase;\n isConsumable?: boolean;\n developerPayloadAndroid?: string;\n }): Promise<string | void> => {\n try {\n return await iapFinishTransaction({\n purchase,\n isConsumable,\n developerPayloadAndroid,\n });\n } catch (err) {\n throw err;\n } finally {\n if (purchase.productId === currentPurchase?.productId) {\n setCurrentPurchase(undefined);\n }\n\n if (purchase.productId === currentPurchaseError?.productId) {\n setCurrentPurchaseError(undefined);\n }\n }\n },\n [\n currentPurchase?.productId,\n currentPurchaseError?.productId,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n return {\n connected,\n products,\n promotedProductsIOS,\n subscriptions,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n finishTransaction,\n getProducts,\n getSubscriptions,\n getAvailablePurchases,\n getPurchaseHistory,\n };\n}\n"],"mappings":"AAAA,SAAQA,WAAR,QAA0B,OAA1B;AAEA,SACEC,iBAAiB,IAAIC,oBADvB,EAEEC,qBAAqB,IAAIC,wBAF3B,EAGEC,WAAW,IAAIC,cAHjB,EAIEC,kBAAkB,IAAIC,qBAJxB,EAKEC,gBAAgB,IAAIC,mBALtB,QAMO,QANP;AAUA,SAAQC,aAAR,QAA4B,kBAA5B;AA2BA,OAAO,SAASC,MAAT,GAA8B;EACnC,MAAM;IACJC,SADI;IAEJC,QAFI;IAGJC,mBAHI;IAIJC,aAJI;IAKJC,eALI;IAMJC,kBANI;IAOJC,eAPI;IAQJC,oBARI;IASJC,mBATI;IAUJC,WAVI;IAWJC,gBAXI;IAYJC,qBAZI;IAaJC,kBAbI;IAcJC,kBAdI;IAeJC;EAfI,IAgBFhB,aAAa,EAhBjB;EAkBA,MAAMN,WAAW,GAAGL,WAAW,CAC7B,cAAmD;IAAA,IAA5C;MAAC4B;IAAD,CAA4C;IACjDN,WAAW,CAAC,MAAMhB,cAAc,CAAC;MAACsB;IAAD,CAAD,CAArB,CAAX;EACD,CAH4B,EAI7B,CAACN,WAAD,CAJ6B,CAA/B;EAOA,MAAMb,gBAAgB,GAAGT,WAAW,CAClC,eAAmD;IAAA,IAA5C;MAAC4B;IAAD,CAA4C;IACjDL,gBAAgB,CAAC,MAAMb,mBAAmB,CAAC;MAACkB;IAAD,CAAD,CAA1B,CAAhB;EACD,CAHiC,EAIlC,CAACL,gBAAD,CAJkC,CAApC;EAOA,MAAMpB,qBAAqB,GAAGH,WAAW,CAAC,YAA2B;IACnEwB,qBAAqB,CAAC,MAAMpB,wBAAwB,EAA/B,CAArB;EACD,CAFwC,EAEtC,CAACoB,qBAAD,CAFsC,CAAzC;EAIA,MAAMjB,kBAAkB,GAAGP,WAAW,CAAC,YAA2B;IAChEyB,kBAAkB,CAAC,MAAMjB,qBAAqB,EAA5B,CAAlB;EACD,CAFqC,EAEnC,CAACiB,kBAAD,CAFmC,CAAtC;EAIA,MAAMxB,iBAAiB,GAAGD,WAAW,CACnC,eAQ8B;IAAA,IARvB;MACL6B,QADK;MAELC,YAFK;MAGLC;IAHK,CAQuB;;IAC5B,IAAI;MACF,OAAO,MAAM7B,oBAAoB,CAAC;QAChC2B,QADgC;QAEhCC,YAFgC;QAGhCC;MAHgC,CAAD,CAAjC;IAKD,CAND,CAME,OAAOC,GAAP,EAAY;MACZ,MAAMA,GAAN;IACD,CARD,SAQU;MACR,IAAIH,QAAQ,CAACI,SAAT,MAAuBd,eAAvB,aAAuBA,eAAvB,uBAAuBA,eAAe,CAAEc,SAAxC,CAAJ,EAAuD;QACrDP,kBAAkB,CAACQ,SAAD,CAAlB;MACD;;MAED,IAAIL,QAAQ,CAACI,SAAT,MAAuBb,oBAAvB,aAAuBA,oBAAvB,uBAAuBA,oBAAoB,CAAEa,SAA7C,CAAJ,EAA4D;QAC1DN,uBAAuB,CAACO,SAAD,CAAvB;MACD;IACF;EACF,CA3BkC,EA4BnC,CACEf,eADF,aACEA,eADF,uBACEA,eAAe,CAAEc,SADnB,EAEEb,oBAFF,aAEEA,oBAFF,uBAEEA,oBAAoB,CAAEa,SAFxB,EAGEP,kBAHF,EAIEC,uBAJF,CA5BmC,CAArC;EAoCA,OAAO;IACLd,SADK;IAELC,QAFK;IAGLC,mBAHK;IAILC,aAJK;IAKLC,eALK;IAMLC,kBANK;IAOLC,eAPK;IAQLC,oBARK;IASLC,mBATK;IAULpB,iBAVK;IAWLI,WAXK;IAYLI,gBAZK;IAaLN,qBAbK;IAcLI;EAdK,CAAP;AAgBD"}
@@ -1,5 +1,6 @@
1
1
  import React, { useContext, useEffect, useMemo, useState } from 'react';
2
- import { getPromotedProductIOS, initConnection, promotedProductListener, purchaseErrorListener, purchaseUpdatedListener } from '../iap';
2
+ import { promotedProductListener, purchaseErrorListener, purchaseUpdatedListener } from '../eventEmitter';
3
+ import { getPromotedProductIOS, initConnection } from '../iap';
3
4
  // @ts-ignore
4
5
  const IAPContext = /*#__PURE__*/React.createContext(null);
5
6
  export function useIAPContext() {
@@ -17,7 +18,7 @@ export function withIAPContext(Component) {
17
18
  const [products, setProducts] = useState([]);
18
19
  const [promotedProductsIOS, setPromotedProductsIOS] = useState([]);
19
20
  const [subscriptions, setSubscriptions] = useState([]);
20
- const [purchaseHistories, setPurchaseHistories] = useState([]);
21
+ const [purchaseHistory, setPurchaseHistory] = useState([]);
21
22
  const [availablePurchases, setAvailablePurchases] = useState([]);
22
23
  const [currentPurchase, setCurrentPurchase] = useState();
23
24
  const [currentPurchaseError, setCurrentPurchaseError] = useState();
@@ -27,18 +28,18 @@ export function withIAPContext(Component) {
27
28
  products,
28
29
  subscriptions,
29
30
  promotedProductsIOS,
30
- purchaseHistories,
31
+ purchaseHistory,
31
32
  availablePurchases,
32
33
  currentPurchase,
33
34
  currentPurchaseError,
34
35
  initConnectionError,
35
36
  setProducts,
36
37
  setSubscriptions,
37
- setPurchaseHistories,
38
+ setPurchaseHistory,
38
39
  setAvailablePurchases,
39
40
  setCurrentPurchase,
40
41
  setCurrentPurchaseError
41
- }), [connected, products, subscriptions, promotedProductsIOS, purchaseHistories, availablePurchases, currentPurchase, currentPurchaseError, initConnectionError, setProducts, setSubscriptions, setPurchaseHistories, setAvailablePurchases, setCurrentPurchase, setCurrentPurchaseError]);
42
+ }), [connected, products, subscriptions, promotedProductsIOS, purchaseHistory, availablePurchases, currentPurchase, currentPurchaseError, initConnectionError, setProducts, setSubscriptions, setPurchaseHistory, setAvailablePurchases, setCurrentPurchase, setCurrentPurchaseError]);
42
43
  useEffect(() => {
43
44
  initConnection().then(value => {
44
45
  setInitConnectionError(undefined);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useEffect","useMemo","useState","getPromotedProductIOS","initConnection","promotedProductListener","purchaseErrorListener","purchaseUpdatedListener","IAPContext","createContext","useIAPContext","ctx","Error","withIAPContext","Component","WrapperComponent","props","connected","setConnected","products","setProducts","promotedProductsIOS","setPromotedProductsIOS","subscriptions","setSubscriptions","purchaseHistories","setPurchaseHistories","availablePurchases","setAvailablePurchases","currentPurchase","setCurrentPurchase","currentPurchaseError","setCurrentPurchaseError","initConnectionError","setInitConnectionError","context","then","value","undefined","catch","purchaseUpdateSubscription","purchase","purchaseErrorSubscription","error","promotedProductSubscription","product","prevProducts","remove"],"sources":["withIAPContext.tsx"],"sourcesContent":["import React, {useContext, useEffect, useMemo, useState} from 'react';\n\nimport {\n getPromotedProductIOS,\n initConnection,\n promotedProductListener,\n purchaseErrorListener,\n purchaseUpdatedListener,\n} from '../iap';\nimport type {\n InAppPurchase,\n Product,\n Purchase,\n PurchaseError,\n Subscription,\n SubscriptionPurchase,\n} from '../types';\n\ntype IAPContextType = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistories: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n setProducts: (products: Product[]) => void;\n setSubscriptions: (subscriptions: Subscription[]) => void;\n setPurchaseHistories: (purchaseHistories: Purchase[]) => void;\n setAvailablePurchases: (availablePurchases: Purchase[]) => void;\n setCurrentPurchase: (currentPurchase: Purchase | undefined) => void;\n setCurrentPurchaseError: (\n currentPurchaseError: PurchaseError | undefined,\n ) => void;\n};\n\n// @ts-ignore\nconst IAPContext = React.createContext<IAPContextType>(null);\n\nexport function useIAPContext(): IAPContextType {\n const ctx = useContext(IAPContext);\n\n if (!ctx) {\n throw new Error('You need wrap your app with withIAPContext HOC');\n }\n\n return ctx;\n}\n\nexport function withIAPContext<T>(Component: React.ComponentType<T>) {\n return function WrapperComponent(props: T) {\n const [connected, setConnected] = useState(false);\n const [products, setProducts] = useState<Product[]>([]);\n\n const [promotedProductsIOS, setPromotedProductsIOS] = useState<Product[]>(\n [],\n );\n const [subscriptions, setSubscriptions] = useState<Subscription[]>([]);\n const [purchaseHistories, setPurchaseHistories] = useState<Purchase[]>([]);\n\n const [availablePurchases, setAvailablePurchases] = useState<Purchase[]>(\n [],\n );\n const [currentPurchase, setCurrentPurchase] = useState<Purchase>();\n\n const [currentPurchaseError, setCurrentPurchaseError] =\n useState<PurchaseError>();\n\n const [initConnectionError, setInitConnectionError] = useState<Error>();\n\n const context = useMemo(\n () => ({\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistories,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistories,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n }),\n [\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistories,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistories,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n useEffect(() => {\n initConnection()\n .then((value) => {\n setInitConnectionError(undefined);\n setConnected(value);\n })\n .catch(setInitConnectionError);\n }, []);\n\n useEffect(() => {\n if (!connected) {\n return;\n }\n\n const purchaseUpdateSubscription = purchaseUpdatedListener(\n async (purchase: InAppPurchase | SubscriptionPurchase) => {\n setCurrentPurchaseError(undefined);\n setCurrentPurchase(purchase);\n },\n );\n\n const purchaseErrorSubscription = purchaseErrorListener(\n (error: PurchaseError) => {\n setCurrentPurchase(undefined);\n setCurrentPurchaseError(error);\n },\n );\n\n const promotedProductSubscription = promotedProductListener(async () => {\n const product = await getPromotedProductIOS();\n\n setPromotedProductsIOS((prevProducts) => [\n ...prevProducts,\n ...(product ? [product] : []),\n ]);\n });\n\n return () => {\n purchaseUpdateSubscription.remove();\n purchaseErrorSubscription.remove();\n promotedProductSubscription?.remove();\n };\n }, [connected]);\n\n return (\n <IAPContext.Provider value={context}>\n <Component {...props} />\n </IAPContext.Provider>\n );\n };\n}\n"],"mappings":"AAAA,OAAOA,KAAP,IAAeC,UAAf,EAA2BC,SAA3B,EAAsCC,OAAtC,EAA+CC,QAA/C,QAA8D,OAA9D;AAEA,SACEC,qBADF,EAEEC,cAFF,EAGEC,uBAHF,EAIEC,qBAJF,EAKEC,uBALF,QAMO,QANP;AAoCA;AACA,MAAMC,UAAU,gBAAGV,KAAK,CAACW,aAAN,CAAoC,IAApC,CAAnB;AAEA,OAAO,SAASC,aAAT,GAAyC;EAC9C,MAAMC,GAAG,GAAGZ,UAAU,CAACS,UAAD,CAAtB;;EAEA,IAAI,CAACG,GAAL,EAAU;IACR,MAAM,IAAIC,KAAJ,CAAU,gDAAV,CAAN;EACD;;EAED,OAAOD,GAAP;AACD;AAED,OAAO,SAASE,cAAT,CAA2BC,SAA3B,EAA8D;EACnE,OAAO,SAASC,gBAAT,CAA0BC,KAA1B,EAAoC;IACzC,MAAM,CAACC,SAAD,EAAYC,YAAZ,IAA4BhB,QAAQ,CAAC,KAAD,CAA1C;IACA,MAAM,CAACiB,QAAD,EAAWC,WAAX,IAA0BlB,QAAQ,CAAY,EAAZ,CAAxC;IAEA,MAAM,CAACmB,mBAAD,EAAsBC,sBAAtB,IAAgDpB,QAAQ,CAC5D,EAD4D,CAA9D;IAGA,MAAM,CAACqB,aAAD,EAAgBC,gBAAhB,IAAoCtB,QAAQ,CAAiB,EAAjB,CAAlD;IACA,MAAM,CAACuB,iBAAD,EAAoBC,oBAApB,IAA4CxB,QAAQ,CAAa,EAAb,CAA1D;IAEA,MAAM,CAACyB,kBAAD,EAAqBC,qBAArB,IAA8C1B,QAAQ,CAC1D,EAD0D,CAA5D;IAGA,MAAM,CAAC2B,eAAD,EAAkBC,kBAAlB,IAAwC5B,QAAQ,EAAtD;IAEA,MAAM,CAAC6B,oBAAD,EAAuBC,uBAAvB,IACJ9B,QAAQ,EADV;IAGA,MAAM,CAAC+B,mBAAD,EAAsBC,sBAAtB,IAAgDhC,QAAQ,EAA9D;IAEA,MAAMiC,OAAO,GAAGlC,OAAO,CACrB,OAAO;MACLgB,SADK;MAELE,QAFK;MAGLI,aAHK;MAILF,mBAJK;MAKLI,iBALK;MAMLE,kBANK;MAOLE,eAPK;MAQLE,oBARK;MASLE,mBATK;MAULb,WAVK;MAWLI,gBAXK;MAYLE,oBAZK;MAaLE,qBAbK;MAcLE,kBAdK;MAeLE;IAfK,CAAP,CADqB,EAkBrB,CACEf,SADF,EAEEE,QAFF,EAGEI,aAHF,EAIEF,mBAJF,EAKEI,iBALF,EAMEE,kBANF,EAOEE,eAPF,EAQEE,oBARF,EASEE,mBATF,EAUEb,WAVF,EAWEI,gBAXF,EAYEE,oBAZF,EAaEE,qBAbF,EAcEE,kBAdF,EAeEE,uBAfF,CAlBqB,CAAvB;IAqCAhC,SAAS,CAAC,MAAM;MACdI,cAAc,GACXgC,IADH,CACSC,KAAD,IAAW;QACfH,sBAAsB,CAACI,SAAD,CAAtB;QACApB,YAAY,CAACmB,KAAD,CAAZ;MACD,CAJH,EAKGE,KALH,CAKSL,sBALT;IAMD,CAPQ,EAON,EAPM,CAAT;IASAlC,SAAS,CAAC,MAAM;MACd,IAAI,CAACiB,SAAL,EAAgB;QACd;MACD;;MAED,MAAMuB,0BAA0B,GAAGjC,uBAAuB,CACxD,MAAOkC,QAAP,IAA0D;QACxDT,uBAAuB,CAACM,SAAD,CAAvB;QACAR,kBAAkB,CAACW,QAAD,CAAlB;MACD,CAJuD,CAA1D;MAOA,MAAMC,yBAAyB,GAAGpC,qBAAqB,CACpDqC,KAAD,IAA0B;QACxBb,kBAAkB,CAACQ,SAAD,CAAlB;QACAN,uBAAuB,CAACW,KAAD,CAAvB;MACD,CAJoD,CAAvD;MAOA,MAAMC,2BAA2B,GAAGvC,uBAAuB,CAAC,YAAY;QACtE,MAAMwC,OAAO,GAAG,MAAM1C,qBAAqB,EAA3C;QAEAmB,sBAAsB,CAAEwB,YAAD,IAAkB,CACvC,GAAGA,YADoC,EAEvC,IAAID,OAAO,GAAG,CAACA,OAAD,CAAH,GAAe,EAA1B,CAFuC,CAAnB,CAAtB;MAID,CAP0D,CAA3D;MASA,OAAO,MAAM;QACXL,0BAA0B,CAACO,MAA3B;QACAL,yBAAyB,CAACK,MAA1B;QACAH,2BAA2B,SAA3B,IAAAA,2BAA2B,WAA3B,YAAAA,2BAA2B,CAAEG,MAA7B;MACD,CAJD;IAKD,CAjCQ,EAiCN,CAAC9B,SAAD,CAjCM,CAAT;IAmCA,oBACE,oBAAC,UAAD,CAAY,QAAZ;MAAqB,KAAK,EAAEkB;IAA5B,gBACE,oBAAC,SAAD,EAAenB,KAAf,CADF,CADF;EAKD,CA1GD;AA2GD"}
1
+ {"version":3,"names":["React","useContext","useEffect","useMemo","useState","promotedProductListener","purchaseErrorListener","purchaseUpdatedListener","getPromotedProductIOS","initConnection","IAPContext","createContext","useIAPContext","ctx","Error","withIAPContext","Component","WrapperComponent","props","connected","setConnected","products","setProducts","promotedProductsIOS","setPromotedProductsIOS","subscriptions","setSubscriptions","purchaseHistory","setPurchaseHistory","availablePurchases","setAvailablePurchases","currentPurchase","setCurrentPurchase","currentPurchaseError","setCurrentPurchaseError","initConnectionError","setInitConnectionError","context","then","value","undefined","catch","purchaseUpdateSubscription","purchase","purchaseErrorSubscription","error","promotedProductSubscription","product","prevProducts","remove"],"sources":["withIAPContext.tsx"],"sourcesContent":["import React, {useContext, useEffect, useMemo, useState} from 'react';\n\nimport {\n promotedProductListener,\n purchaseErrorListener,\n purchaseUpdatedListener,\n} from '../eventEmitter';\nimport {getPromotedProductIOS, initConnection} from '../iap';\nimport type {PurchaseError} from '../purchaseError';\nimport type {\n Product,\n ProductPurchase,\n Purchase,\n Subscription,\n SubscriptionPurchase,\n} from '../types';\n\ntype IAPContextType = {\n connected: boolean;\n products: Product[];\n promotedProductsIOS: Product[];\n subscriptions: Subscription[];\n purchaseHistory: Purchase[];\n availablePurchases: Purchase[];\n currentPurchase?: Purchase;\n currentPurchaseError?: PurchaseError;\n initConnectionError?: Error;\n setProducts: (products: Product[]) => void;\n setSubscriptions: (subscriptions: Subscription[]) => void;\n setPurchaseHistory: (purchaseHistory: Purchase[]) => void;\n setAvailablePurchases: (availablePurchases: Purchase[]) => void;\n setCurrentPurchase: (currentPurchase: Purchase | undefined) => void;\n setCurrentPurchaseError: (\n currentPurchaseError: PurchaseError | undefined,\n ) => void;\n};\n\n// @ts-ignore\nconst IAPContext = React.createContext<IAPContextType>(null);\n\nexport function useIAPContext(): IAPContextType {\n const ctx = useContext(IAPContext);\n\n if (!ctx) {\n throw new Error('You need wrap your app with withIAPContext HOC');\n }\n\n return ctx;\n}\n\nexport function withIAPContext<T>(Component: React.ComponentType<T>) {\n return function WrapperComponent(props: T) {\n const [connected, setConnected] = useState(false);\n const [products, setProducts] = useState<Product[]>([]);\n\n const [promotedProductsIOS, setPromotedProductsIOS] = useState<Product[]>(\n [],\n );\n const [subscriptions, setSubscriptions] = useState<Subscription[]>([]);\n const [purchaseHistory, setPurchaseHistory] = useState<Purchase[]>([]);\n\n const [availablePurchases, setAvailablePurchases] = useState<Purchase[]>(\n [],\n );\n const [currentPurchase, setCurrentPurchase] = useState<Purchase>();\n\n const [currentPurchaseError, setCurrentPurchaseError] =\n useState<PurchaseError>();\n\n const [initConnectionError, setInitConnectionError] = useState<Error>();\n\n const context = useMemo(\n () => ({\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistory,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n }),\n [\n connected,\n products,\n subscriptions,\n promotedProductsIOS,\n purchaseHistory,\n availablePurchases,\n currentPurchase,\n currentPurchaseError,\n initConnectionError,\n setProducts,\n setSubscriptions,\n setPurchaseHistory,\n setAvailablePurchases,\n setCurrentPurchase,\n setCurrentPurchaseError,\n ],\n );\n\n useEffect(() => {\n initConnection()\n .then((value) => {\n setInitConnectionError(undefined);\n setConnected(value);\n })\n .catch(setInitConnectionError);\n }, []);\n\n useEffect(() => {\n if (!connected) {\n return;\n }\n\n const purchaseUpdateSubscription = purchaseUpdatedListener(\n async (purchase: ProductPurchase | SubscriptionPurchase) => {\n setCurrentPurchaseError(undefined);\n setCurrentPurchase(purchase);\n },\n );\n\n const purchaseErrorSubscription = purchaseErrorListener(\n (error: PurchaseError) => {\n setCurrentPurchase(undefined);\n setCurrentPurchaseError(error);\n },\n );\n\n const promotedProductSubscription = promotedProductListener(async () => {\n const product = await getPromotedProductIOS();\n\n setPromotedProductsIOS((prevProducts) => [\n ...prevProducts,\n ...(product ? [product] : []),\n ]);\n });\n\n return () => {\n purchaseUpdateSubscription.remove();\n purchaseErrorSubscription.remove();\n promotedProductSubscription?.remove();\n };\n }, [connected]);\n\n return (\n <IAPContext.Provider value={context}>\n <Component {...props} />\n </IAPContext.Provider>\n );\n };\n}\n"],"mappings":"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"}