react-native-iap 14.3.2 → 14.3.3-rc.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.
Files changed (52) hide show
  1. package/lib/index.d.ts +8 -0
  2. package/lib/index.js +36 -0
  3. package/lib/module/helpers/subscription.js +2 -2
  4. package/lib/module/helpers/subscription.js.map +1 -1
  5. package/lib/module/hooks/useIAP.js +14 -8
  6. package/lib/module/hooks/useIAP.js.map +1 -1
  7. package/lib/module/index.js +76 -23
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/module/types.js +90 -190
  10. package/lib/module/types.js.map +1 -1
  11. package/lib/module/utils/error.js +4 -4
  12. package/lib/module/utils/error.js.map +1 -1
  13. package/lib/module/utils/errorMapping.js +34 -10
  14. package/lib/module/utils/errorMapping.js.map +1 -1
  15. package/lib/module/utils/type-bridge.js +217 -173
  16. package/lib/module/utils/type-bridge.js.map +1 -1
  17. package/lib/specs/RnIap.nitro.d.ts +7 -0
  18. package/lib/specs/RnIap.nitro.js +1 -0
  19. package/lib/typescript/src/helpers/subscription.d.ts.map +1 -1
  20. package/lib/typescript/src/hooks/useIAP.d.ts +8 -11
  21. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  22. package/lib/typescript/src/index.d.ts +11 -10
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/specs/RnIap.nitro.d.ts +2 -2
  25. package/lib/typescript/src/types.d.ts +606 -518
  26. package/lib/typescript/src/types.d.ts.map +1 -1
  27. package/lib/typescript/src/utils/errorMapping.d.ts +2 -1
  28. package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
  29. package/lib/typescript/src/utils/type-bridge.d.ts +13 -14
  30. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  31. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +4 -4
  32. package/nitrogen/generated/android/c++/{JNitroAndroidReceiptValidationOptions.hpp → JNitroReceiptValidationAndroidOptions.hpp} +9 -9
  33. package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +5 -5
  34. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroAndroidReceiptValidationOptions.kt → NitroReceiptValidationAndroidOptions.kt} +3 -3
  35. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +1 -1
  36. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +10 -10
  37. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +3 -3
  38. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +3 -3
  39. package/nitrogen/generated/ios/swift/{NitroAndroidReceiptValidationOptions.swift → NitroReceiptValidationAndroidOptions.swift} +5 -5
  40. package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +9 -9
  41. package/nitrogen/generated/shared/c++/{NitroAndroidReceiptValidationOptions.hpp → NitroReceiptValidationAndroidOptions.hpp} +10 -10
  42. package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +8 -8
  43. package/package.json +1 -1
  44. package/plugin/tsconfig.tsbuildinfo +1 -1
  45. package/src/helpers/subscription.ts +8 -9
  46. package/src/hooks/useIAP.ts +52 -47
  47. package/src/index.ts +123 -35
  48. package/src/specs/RnIap.nitro.ts +2 -2
  49. package/src/types.ts +651 -616
  50. package/src/utils/error.ts +4 -4
  51. package/src/utils/errorMapping.ts +47 -19
  52. package/src/utils/type-bridge.ts +308 -204
@@ -1,203 +1,103 @@
1
1
  "use strict";
2
2
 
3
3
  // ============================================================================
4
- // CORE TYPES
5
- // ============================================================================
6
- //
7
- // ⚠️ IMPORTANT: DO NOT MODIFY THIS FILE
8
- //
9
- // This types.ts file is based on the original react-native-iap library
10
- // and maintains backward compatibility for existing users.
11
- //
12
- // Any changes to these types could break existing applications.
13
- // New Nitro-specific types are defined in src/specs/RnIap.nitro.ts
14
- //
4
+ // AUTO-GENERATED TYPES — DO NOT EDIT DIRECTLY
5
+ // Run `npm run generate` after updating any *.graphql schema file.
15
6
  // ============================================================================
16
7
 
17
- // iOS detailed product types (4 types)
8
+ export let ErrorCode = /*#__PURE__*/function (ErrorCode) {
9
+ ErrorCode["ActivityUnavailable"] = "ACTIVITY_UNAVAILABLE";
10
+ ErrorCode["AlreadyOwned"] = "ALREADY_OWNED";
11
+ ErrorCode["AlreadyPrepared"] = "ALREADY_PREPARED";
12
+ ErrorCode["BillingResponseJsonParseError"] = "BILLING_RESPONSE_JSON_PARSE_ERROR";
13
+ ErrorCode["BillingUnavailable"] = "BILLING_UNAVAILABLE";
14
+ ErrorCode["ConnectionClosed"] = "CONNECTION_CLOSED";
15
+ ErrorCode["DeferredPayment"] = "DEFERRED_PAYMENT";
16
+ ErrorCode["DeveloperError"] = "DEVELOPER_ERROR";
17
+ ErrorCode["EmptySkuList"] = "EMPTY_SKU_LIST";
18
+ ErrorCode["FeatureNotSupported"] = "FEATURE_NOT_SUPPORTED";
19
+ ErrorCode["IapNotAvailable"] = "IAP_NOT_AVAILABLE";
20
+ ErrorCode["InitConnection"] = "INIT_CONNECTION";
21
+ ErrorCode["Interrupted"] = "INTERRUPTED";
22
+ ErrorCode["ItemNotOwned"] = "ITEM_NOT_OWNED";
23
+ ErrorCode["ItemUnavailable"] = "ITEM_UNAVAILABLE";
24
+ ErrorCode["NetworkError"] = "NETWORK_ERROR";
25
+ ErrorCode["NotEnded"] = "NOT_ENDED";
26
+ ErrorCode["NotPrepared"] = "NOT_PREPARED";
27
+ ErrorCode["Pending"] = "PENDING";
28
+ ErrorCode["PurchaseError"] = "PURCHASE_ERROR";
29
+ ErrorCode["QueryProduct"] = "QUERY_PRODUCT";
30
+ ErrorCode["ReceiptFailed"] = "RECEIPT_FAILED";
31
+ ErrorCode["ReceiptFinished"] = "RECEIPT_FINISHED";
32
+ ErrorCode["ReceiptFinishedFailed"] = "RECEIPT_FINISHED_FAILED";
33
+ ErrorCode["RemoteError"] = "REMOTE_ERROR";
34
+ ErrorCode["ServiceDisconnected"] = "SERVICE_DISCONNECTED";
35
+ ErrorCode["ServiceError"] = "SERVICE_ERROR";
36
+ ErrorCode["SkuNotFound"] = "SKU_NOT_FOUND";
37
+ ErrorCode["SkuOfferMismatch"] = "SKU_OFFER_MISMATCH";
38
+ ErrorCode["SyncError"] = "SYNC_ERROR";
39
+ ErrorCode["TransactionValidationFailed"] = "TRANSACTION_VALIDATION_FAILED";
40
+ ErrorCode["Unknown"] = "UNKNOWN";
41
+ ErrorCode["UserCancelled"] = "USER_CANCELLED";
42
+ ErrorCode["UserError"] = "USER_ERROR";
43
+ return ErrorCode;
44
+ }({});
45
+ export let IapEvent = /*#__PURE__*/function (IapEvent) {
46
+ IapEvent["PromotedProductIos"] = "PROMOTED_PRODUCT_IOS";
47
+ IapEvent["PurchaseError"] = "PURCHASE_ERROR";
48
+ IapEvent["PurchaseUpdated"] = "PURCHASE_UPDATED";
49
+ return IapEvent;
50
+ }({});
51
+ export let PaymentModeIOS = /*#__PURE__*/function (PaymentModeIOS) {
52
+ PaymentModeIOS["Empty"] = "EMPTY";
53
+ PaymentModeIOS["FreeTrial"] = "FREE_TRIAL";
54
+ PaymentModeIOS["PayAsYouGo"] = "PAY_AS_YOU_GO";
55
+ PaymentModeIOS["PayUpFront"] = "PAY_UP_FRONT";
56
+ return PaymentModeIOS;
57
+ }({});
58
+ export let Platform = /*#__PURE__*/function (Platform) {
59
+ Platform["Android"] = "ANDROID";
60
+ Platform["Ios"] = "IOS";
61
+ return Platform;
62
+ }({});
63
+ export let ProductQueryType = /*#__PURE__*/function (ProductQueryType) {
64
+ ProductQueryType["All"] = "ALL";
65
+ ProductQueryType["InApp"] = "IN_APP";
66
+ ProductQueryType["Subs"] = "SUBS";
67
+ return ProductQueryType;
68
+ }({});
69
+ export let ProductType = /*#__PURE__*/function (ProductType) {
70
+ ProductType["InApp"] = "IN_APP";
71
+ ProductType["Subs"] = "SUBS";
72
+ return ProductType;
73
+ }({});
18
74
  export let ProductTypeIOS = /*#__PURE__*/function (ProductTypeIOS) {
19
- ProductTypeIOS["consumable"] = "consumable";
20
- ProductTypeIOS["nonConsumable"] = "nonConsumable";
21
- ProductTypeIOS["autoRenewableSubscription"] = "autoRenewableSubscription";
22
- ProductTypeIOS["nonRenewingSubscription"] = "nonRenewingSubscription";
75
+ ProductTypeIOS["AutoRenewableSubscription"] = "AUTO_RENEWABLE_SUBSCRIPTION";
76
+ ProductTypeIOS["Consumable"] = "CONSUMABLE";
77
+ ProductTypeIOS["NonConsumable"] = "NON_CONSUMABLE";
78
+ ProductTypeIOS["NonRenewingSubscription"] = "NON_RENEWING_SUBSCRIPTION";
23
79
  return ProductTypeIOS;
24
80
  }({});
25
-
26
- // ============================================================================
27
- // COMMON TYPES (Base types shared across all platforms)
28
- // ============================================================================
29
-
30
- /**
31
- * Base product information shared across all platforms
32
- */
33
-
34
- /**
35
- * Base purchase information shared across all platforms
36
- * Represents both consumables, non-consumables, and subscriptions
37
- */
38
-
39
81
  export let PurchaseState = /*#__PURE__*/function (PurchaseState) {
40
- PurchaseState["pending"] = "pending";
41
- PurchaseState["purchased"] = "purchased";
42
- PurchaseState["failed"] = "failed";
43
- PurchaseState["restored"] = "restored";
44
- // iOS only
45
- PurchaseState["deferred"] = "deferred";
46
- // iOS only
47
- PurchaseState["unknown"] = "unknown";
82
+ PurchaseState["Deferred"] = "DEFERRED";
83
+ PurchaseState["Failed"] = "FAILED";
84
+ PurchaseState["Pending"] = "PENDING";
85
+ PurchaseState["Purchased"] = "PURCHASED";
86
+ PurchaseState["Restored"] = "RESTORED";
87
+ PurchaseState["Unknown"] = "UNKNOWN";
48
88
  return PurchaseState;
49
89
  }({});
50
-
51
- // ============================================================================
52
- // PLATFORM TYPES
53
- // ============================================================================
54
-
55
- // ============================================================================
56
- // IOS TYPES
57
- // ============================================================================
58
-
59
- /**
60
- * iOS subscription renewal info
61
- */
62
-
63
- /**
64
- * iOS subscription status entry
65
- */
66
-
67
- // ============================================================================
68
- // ANDROID TYPES
69
- // ============================================================================
70
-
71
- // ============================================================================
72
- // TYPE ALIASES
73
- // ============================================================================
74
-
75
- // Legacy naming for backward compatibility
76
-
77
- // Legacy naming for backward compatibility
78
-
79
- // ============================================================================
80
- // UNION TYPES
81
- // ============================================================================
82
-
83
- // Product Union Types
84
-
85
- // Purchase Union Types
86
- /**
87
- * Regular product purchase (consumable or non-consumable)
88
- * Both types appear in getAvailablePurchases until finishTransaction is called
89
- */
90
-
91
- /**
92
- * Active subscription purchase
93
- * Appears in getAvailablePurchases while subscription is active
94
- */
95
-
96
- /**
97
- * Combined purchase type that includes all purchase types
98
- * Used as return type for getAvailablePurchases
99
- */
100
-
101
- // ============================================================================
102
- // REQUEST TYPES
103
- // ============================================================================
104
-
105
- // Product request parameters for fetching products from the store
106
-
107
- // iOS-specific purchase request parameters
108
-
109
- // Android-specific purchase request parameters
110
-
111
- // Android-specific subscription request parameters
112
-
113
- // Platform-specific request structures
114
-
115
- // Modern request types (v2.7.0+)
116
-
117
- // ============================================================================
118
- // ERROR TYPES
119
- // ============================================================================
120
-
121
- export let ErrorCode = /*#__PURE__*/function (ErrorCode) {
122
- ErrorCode["E_UNKNOWN"] = "E_UNKNOWN";
123
- ErrorCode["E_USER_CANCELLED"] = "E_USER_CANCELLED";
124
- ErrorCode["E_USER_ERROR"] = "E_USER_ERROR";
125
- ErrorCode["E_ITEM_UNAVAILABLE"] = "E_ITEM_UNAVAILABLE";
126
- ErrorCode["E_REMOTE_ERROR"] = "E_REMOTE_ERROR";
127
- ErrorCode["E_NETWORK_ERROR"] = "E_NETWORK_ERROR";
128
- ErrorCode["E_SERVICE_ERROR"] = "E_SERVICE_ERROR";
129
- ErrorCode["E_RECEIPT_FAILED"] = "E_RECEIPT_FAILED";
130
- ErrorCode["E_RECEIPT_FINISHED_FAILED"] = "E_RECEIPT_FINISHED_FAILED";
131
- ErrorCode["E_NOT_PREPARED"] = "E_NOT_PREPARED";
132
- ErrorCode["E_NOT_ENDED"] = "E_NOT_ENDED";
133
- ErrorCode["E_ALREADY_OWNED"] = "E_ALREADY_OWNED";
134
- ErrorCode["E_DEVELOPER_ERROR"] = "E_DEVELOPER_ERROR";
135
- ErrorCode["E_BILLING_RESPONSE_JSON_PARSE_ERROR"] = "E_BILLING_RESPONSE_JSON_PARSE_ERROR";
136
- ErrorCode["E_DEFERRED_PAYMENT"] = "E_DEFERRED_PAYMENT";
137
- ErrorCode["E_INTERRUPTED"] = "E_INTERRUPTED";
138
- ErrorCode["E_IAP_NOT_AVAILABLE"] = "E_IAP_NOT_AVAILABLE";
139
- ErrorCode["E_PURCHASE_ERROR"] = "E_PURCHASE_ERROR";
140
- ErrorCode["E_SYNC_ERROR"] = "E_SYNC_ERROR";
141
- ErrorCode["E_TRANSACTION_VALIDATION_FAILED"] = "E_TRANSACTION_VALIDATION_FAILED";
142
- ErrorCode["E_ACTIVITY_UNAVAILABLE"] = "E_ACTIVITY_UNAVAILABLE";
143
- ErrorCode["E_ALREADY_PREPARED"] = "E_ALREADY_PREPARED";
144
- ErrorCode["E_PENDING"] = "E_PENDING";
145
- ErrorCode["E_CONNECTION_CLOSED"] = "E_CONNECTION_CLOSED";
146
- ErrorCode["E_INIT_CONNECTION"] = "E_INIT_CONNECTION";
147
- ErrorCode["E_SERVICE_DISCONNECTED"] = "E_SERVICE_DISCONNECTED";
148
- ErrorCode["E_QUERY_PRODUCT"] = "E_QUERY_PRODUCT";
149
- ErrorCode["E_SKU_NOT_FOUND"] = "E_SKU_NOT_FOUND";
150
- ErrorCode["E_SKU_OFFER_MISMATCH"] = "E_SKU_OFFER_MISMATCH";
151
- ErrorCode["E_ITEM_NOT_OWNED"] = "E_ITEM_NOT_OWNED";
152
- ErrorCode["E_BILLING_UNAVAILABLE"] = "E_BILLING_UNAVAILABLE";
153
- ErrorCode["E_FEATURE_NOT_SUPPORTED"] = "E_FEATURE_NOT_SUPPORTED";
154
- ErrorCode["E_EMPTY_SKU_LIST"] = "E_EMPTY_SKU_LIST";
155
- return ErrorCode;
90
+ export let SubscriptionOfferTypeIOS = /*#__PURE__*/function (SubscriptionOfferTypeIOS) {
91
+ SubscriptionOfferTypeIOS["Introductory"] = "INTRODUCTORY";
92
+ SubscriptionOfferTypeIOS["Promotional"] = "PROMOTIONAL";
93
+ return SubscriptionOfferTypeIOS;
94
+ }({});
95
+ export let SubscriptionPeriodIOS = /*#__PURE__*/function (SubscriptionPeriodIOS) {
96
+ SubscriptionPeriodIOS["Day"] = "DAY";
97
+ SubscriptionPeriodIOS["Empty"] = "EMPTY";
98
+ SubscriptionPeriodIOS["Month"] = "MONTH";
99
+ SubscriptionPeriodIOS["Week"] = "WEEK";
100
+ SubscriptionPeriodIOS["Year"] = "YEAR";
101
+ return SubscriptionPeriodIOS;
156
102
  }({});
157
-
158
- // Additional iOS types
159
-
160
- // ============================================================================
161
- // METHOD OPTIONS TYPES
162
- // ============================================================================
163
-
164
- /**
165
- * Options for getAvailablePurchases and getPurchaseHistories methods
166
- */
167
-
168
- /**
169
- * Parameters for finishTransaction method
170
- */
171
-
172
- // ============================================================================
173
- // IAP CONTEXT INTERFACE
174
- // ============================================================================
175
-
176
- /**
177
- * Main IAP context interface providing all in-app purchase functionality
178
- */
179
-
180
- /**
181
- * Purchase error type
182
- */
183
-
184
- /**
185
- * Validation options for receipt validation
186
- */
187
-
188
- /**
189
- * iOS receipt validation result
190
- */
191
-
192
- /**
193
- * Android receipt validation result
194
- */
195
-
196
- /**
197
- * Receipt validation result from receipt validation
198
- */
199
-
200
- /**
201
- * Represents an active subscription with platform-specific details
202
- */
203
103
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ProductTypeIOS","PurchaseState","ErrorCode"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;AACA,WAAYA,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;;AAO1B;AACA;AACA;;AAEA;AACA;AACA;;AAwBA;AACA;AACA;AACA;;AAwBA,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAIA;EAJbA,aAAa;EAKA;EALbA,aAAa;EAAA,OAAbA,aAAa;AAAA;;AAazB;AACA;AACA;;AAKA;AACA;AACA;;AA0GA;AACA;AACA;;AAUA;AACA;AACA;;AAOA;AACA;AACA;;AAuEA;AACA;AACA;;AAEA;;AAIA;;AAIA;AACA;AACA;;AAEA;;AASA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;;AAKA;AACA;AACA;;AAEA;;AAQA;;AASA;;AAQA;;AAWA;;AAWA;;AAIA;AACA;AACA;;AAEA,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAgDrB;;AAyBA;AACA;AACA;;AAEA;AACA;AACA;;AAQA;AACA;AACA;;AAeA;AACA;AACA;;AAEA;AACA;AACA;;AAkFA;AACA;AACA;;AAUA;AACA;AACA;;AAaA;AACA;AACA;;AAYA;AACA;AACA;;AAsBA;AACA;AACA;;AAKA;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["ErrorCode","IapEvent","PaymentModeIOS","Platform","ProductQueryType","ProductType","ProductTypeIOS","PurchaseState","SubscriptionOfferTypeIOS","SubscriptionPeriodIOS"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAwFA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AA0CrB,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AAoEpB,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAO1B,WAAYC,QAAQ,0BAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAAA,OAARA,QAAQ;AAAA;AA2EpB,WAAYC,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAiE5B,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAKvB,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAmH1B,WAAYC,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA;AAoPzB,WAAYC,wBAAwB,0BAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAxBA,wBAAwB;EAAA,OAAxBA,wBAAwB;AAAA;AAKpC,WAAYC,qBAAqB,0BAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAArBA,qBAAqB;EAAA,OAArBA,qBAAqB;AAAA","ignoreList":[]}
@@ -25,7 +25,7 @@ export function parseErrorStringToJsonObj(errorString) {
25
25
  // Handle non-string inputs
26
26
  if (typeof errorString !== 'string') {
27
27
  return {
28
- code: ErrorCode.E_UNKNOWN,
28
+ code: ErrorCode.Unknown,
29
29
  message: 'Unknown error occurred'
30
30
  };
31
31
  }
@@ -36,7 +36,7 @@ export function parseErrorStringToJsonObj(errorString) {
36
36
  if (typeof parsed === 'object' && parsed !== null) {
37
37
  // Ensure it has at least code and message
38
38
  return {
39
- code: parsed.code || ErrorCode.E_UNKNOWN,
39
+ code: parsed.code || ErrorCode.Unknown,
40
40
  message: parsed.message || errorString,
41
41
  ...parsed
42
42
  };
@@ -61,7 +61,7 @@ export function parseErrorStringToJsonObj(errorString) {
61
61
 
62
62
  // Fallback: treat entire string as message
63
63
  return {
64
- code: ErrorCode.E_UNKNOWN,
64
+ code: ErrorCode.Unknown,
65
65
  message: errorString
66
66
  };
67
67
  }
@@ -73,7 +73,7 @@ export function parseErrorStringToJsonObj(errorString) {
73
73
  */
74
74
  export function isUserCancelledError(error) {
75
75
  const errorObj = typeof error === 'object' && error !== null && 'code' in error ? error : parseErrorStringToJsonObj(error);
76
- return errorObj.code === ErrorCode.E_USER_CANCELLED || errorObj.code === 'E_USER_CANCELED' ||
76
+ return errorObj.code === ErrorCode.UserCancelled || errorObj.code === 'E_USER_CANCELED' ||
77
77
  // Alternative spelling
78
78
  errorObj.responseCode === 1; // Android BillingClient.BillingResponseCode.USER_CANCELED
79
79
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ErrorCode","parseErrorStringToJsonObj","errorString","Error","message","code","E_UNKNOWN","parsed","JSON","parse","colonIndex","indexOf","potentialCode","substring","trim","startsWith","test","isUserCancelledError","error","errorObj","E_USER_CANCELLED","responseCode"],"sourceRoot":"../../../src","sources":["utils/error.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,SAAQA,SAAS,QAAO,aAAU;AAWlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CACvCC,WAAqC,EAC3B;EACV;EACA,IAAIA,WAAW,YAAYC,KAAK,EAAE;IAChCD,WAAW,GAAGA,WAAW,CAACE,OAAO;EACnC;;EAEA;EACA,IAAI,OAAOF,WAAW,KAAK,QAAQ,EAAE;IACnC,OAAO;MACLG,IAAI,EAAEL,SAAS,CAACM,SAAS;MACzBF,OAAO,EAAE;IACX,CAAC;EACH;;EAEA;EACA,IAAI;IACF,MAAMG,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACP,WAAW,CAAC;IACtC,IAAI,OAAOK,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;MACjD;MACA,OAAO;QACLF,IAAI,EAAEE,MAAM,CAACF,IAAI,IAAIL,SAAS,CAACM,SAAS;QACxCF,OAAO,EAAEG,MAAM,CAACH,OAAO,IAAIF,WAAW;QACtC,GAAGK;MACL,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACN;EAAA;;EAGF;EACA,MAAMG,UAAU,GAAGR,WAAW,CAACS,OAAO,CAAC,GAAG,CAAC;EAC3C,IAAID,UAAU,GAAG,CAAC,IAAIA,UAAU,GAAG,EAAE,EAAE;IACrC;IACA,MAAME,aAAa,GAAGV,WAAW,CAACW,SAAS,CAAC,CAAC,EAAEH,UAAU,CAAC,CAACI,IAAI,CAAC,CAAC;IACjE;IACA,IAAIF,aAAa,CAACG,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAACC,IAAI,CAACJ,aAAa,CAAC,EAAE;MACrE,OAAO;QACLP,IAAI,EAAEO,aAAa;QACnBR,OAAO,EAAEF,WAAW,CAACW,SAAS,CAACH,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MACtD,CAAC;IACH;EACF;;EAEA;EACA,OAAO;IACLT,IAAI,EAAEL,SAAS,CAACM,SAAS;IACzBF,OAAO,EAAEF;EACX,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASe,oBAAoBA,CAClCC,KAA0C,EACjC;EACT,MAAMC,QAAQ,GACZ,OAAOD,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,MAAM,IAAIA,KAAK,GACzDA,KAAK,GACNjB,yBAAyB,CAACiB,KAAK,CAAC;EAEtC,OACEC,QAAQ,CAACd,IAAI,KAAKL,SAAS,CAACoB,gBAAgB,IAC5CD,QAAQ,CAACd,IAAI,KAAK,iBAAiB;EAAI;EACvCc,QAAQ,CAACE,YAAY,KAAK,CAAC,CAC3B,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["ErrorCode","parseErrorStringToJsonObj","errorString","Error","message","code","Unknown","parsed","JSON","parse","colonIndex","indexOf","potentialCode","substring","trim","startsWith","test","isUserCancelledError","error","errorObj","UserCancelled","responseCode"],"sourceRoot":"../../../src","sources":["utils/error.ts"],"mappings":";;AAAA;AACA;AACA;;AAEA,SAAQA,SAAS,QAAO,aAAU;AAWlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CACvCC,WAAqC,EAC3B;EACV;EACA,IAAIA,WAAW,YAAYC,KAAK,EAAE;IAChCD,WAAW,GAAGA,WAAW,CAACE,OAAO;EACnC;;EAEA;EACA,IAAI,OAAOF,WAAW,KAAK,QAAQ,EAAE;IACnC,OAAO;MACLG,IAAI,EAAEL,SAAS,CAACM,OAAO;MACvBF,OAAO,EAAE;IACX,CAAC;EACH;;EAEA;EACA,IAAI;IACF,MAAMG,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACP,WAAW,CAAC;IACtC,IAAI,OAAOK,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,EAAE;MACjD;MACA,OAAO;QACLF,IAAI,EAAEE,MAAM,CAACF,IAAI,IAAIL,SAAS,CAACM,OAAO;QACtCF,OAAO,EAAEG,MAAM,CAACH,OAAO,IAAIF,WAAW;QACtC,GAAGK;MACL,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACN;EAAA;;EAGF;EACA,MAAMG,UAAU,GAAGR,WAAW,CAACS,OAAO,CAAC,GAAG,CAAC;EAC3C,IAAID,UAAU,GAAG,CAAC,IAAIA,UAAU,GAAG,EAAE,EAAE;IACrC;IACA,MAAME,aAAa,GAAGV,WAAW,CAACW,SAAS,CAAC,CAAC,EAAEH,UAAU,CAAC,CAACI,IAAI,CAAC,CAAC;IACjE;IACA,IAAIF,aAAa,CAACG,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAACC,IAAI,CAACJ,aAAa,CAAC,EAAE;MACrE,OAAO;QACLP,IAAI,EAAEO,aAAa;QACnBR,OAAO,EAAEF,WAAW,CAACW,SAAS,CAACH,UAAU,GAAG,CAAC,CAAC,CAACI,IAAI,CAAC;MACtD,CAAC;IACH;EACF;;EAEA;EACA,OAAO;IACLT,IAAI,EAAEL,SAAS,CAACM,OAAO;IACvBF,OAAO,EAAEF;EACX,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASe,oBAAoBA,CAClCC,KAA0C,EACjC;EACT,MAAMC,QAAQ,GACZ,OAAOD,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,MAAM,IAAIA,KAAK,GACzDA,KAAK,GACNjB,yBAAyB,CAACiB,KAAK,CAAC;EAEtC,OACEC,QAAQ,CAACd,IAAI,KAAKL,SAAS,CAACoB,aAAa,IACzCD,QAAQ,CAACd,IAAI,KAAK,iBAAiB;EAAI;EACvCc,QAAQ,CAACE,YAAY,KAAK,CAAC,CAC3B,CAAC;AACL","ignoreList":[]}
@@ -1,30 +1,54 @@
1
1
  "use strict";
2
2
 
3
3
  import { ErrorCode } from "../types.js";
4
+ const ERROR_CODE_ALIASES = {
5
+ E_USER_CANCELED: ErrorCode.UserCancelled,
6
+ USER_CANCELED: ErrorCode.UserCancelled,
7
+ E_USER_CANCELLED: ErrorCode.UserCancelled,
8
+ USER_CANCELLED: ErrorCode.UserCancelled
9
+ };
10
+ export const normalizeErrorCodeFromNative = code => {
11
+ if (typeof code === 'string') {
12
+ const upper = code.toUpperCase();
13
+ const alias = ERROR_CODE_ALIASES[upper];
14
+ if (alias) {
15
+ return alias;
16
+ }
17
+ const trimmed = upper.startsWith('E_') ? upper.slice(2) : upper;
18
+ const camel = trimmed.toLowerCase().split('_').map(segment => {
19
+ if (!segment) return segment;
20
+ return segment.charAt(0).toUpperCase() + segment.slice(1);
21
+ }).join('');
22
+ if (ErrorCode[camel]) {
23
+ return ErrorCode[camel];
24
+ }
25
+ }
26
+ return ErrorCode.Unknown;
27
+ };
4
28
  export function isUserCancelledError(error) {
5
- return error.code === ErrorCode.E_USER_CANCELLED || error.code === 'E_USER_CANCELED';
29
+ return normalizeErrorCodeFromNative(error.code) === ErrorCode.UserCancelled;
6
30
  }
7
31
  export function isRecoverableError(error) {
8
- const recoverable = new Set([ErrorCode.E_NETWORK_ERROR, ErrorCode.E_SERVICE_ERROR, ErrorCode.E_REMOTE_ERROR, ErrorCode.E_CONNECTION_CLOSED, ErrorCode.E_SERVICE_DISCONNECTED, ErrorCode.E_INIT_CONNECTION, ErrorCode.E_SYNC_ERROR]);
32
+ const recoverable = new Set([ErrorCode.NetworkError, ErrorCode.ServiceError, ErrorCode.RemoteError, ErrorCode.ConnectionClosed, ErrorCode.ServiceDisconnected, ErrorCode.InitConnection, ErrorCode.SyncError]);
9
33
  return recoverable.has(error.code);
10
34
  }
11
35
  export function getUserFriendlyErrorMessage(error) {
12
36
  switch (error.code) {
13
- case ErrorCode.E_USER_CANCELLED:
37
+ case ErrorCode.UserCancelled:
14
38
  return 'Purchase cancelled';
15
- case ErrorCode.E_NETWORK_ERROR:
39
+ case ErrorCode.NetworkError:
16
40
  return 'Network connection error';
17
- case ErrorCode.E_SERVICE_ERROR:
41
+ case ErrorCode.ServiceError:
18
42
  return 'Store service error';
19
- case ErrorCode.E_REMOTE_ERROR:
43
+ case ErrorCode.RemoteError:
20
44
  return 'Remote service error';
21
- case ErrorCode.E_IAP_NOT_AVAILABLE:
45
+ case ErrorCode.IapNotAvailable:
22
46
  return 'In-app purchases are not available on this device';
23
- case ErrorCode.E_DEFERRED_PAYMENT:
47
+ case ErrorCode.DeferredPayment:
24
48
  return 'Payment was deferred (pending approval)';
25
- case ErrorCode.E_TRANSACTION_VALIDATION_FAILED:
49
+ case ErrorCode.TransactionValidationFailed:
26
50
  return 'Transaction validation failed';
27
- case ErrorCode.E_SKU_NOT_FOUND:
51
+ case ErrorCode.SkuNotFound:
28
52
  return 'Product not found';
29
53
  default:
30
54
  return error.message || 'Unknown error occurred';
@@ -1 +1 @@
1
- {"version":3,"names":["ErrorCode","isUserCancelledError","error","code","E_USER_CANCELLED","isRecoverableError","recoverable","Set","E_NETWORK_ERROR","E_SERVICE_ERROR","E_REMOTE_ERROR","E_CONNECTION_CLOSED","E_SERVICE_DISCONNECTED","E_INIT_CONNECTION","E_SYNC_ERROR","has","getUserFriendlyErrorMessage","E_IAP_NOT_AVAILABLE","E_DEFERRED_PAYMENT","E_TRANSACTION_VALIDATION_FAILED","E_SKU_NOT_FOUND","message"],"sourceRoot":"../../../src","sources":["utils/errorMapping.ts"],"mappings":";;AAAA,SAAQA,SAAS,QAA2B,aAAU;AAEtD,OAAO,SAASC,oBAAoBA,CAACC,KAAoB,EAAW;EAClE,OACEA,KAAK,CAACC,IAAI,KAAKH,SAAS,CAACI,gBAAgB,IACzCF,KAAK,CAACC,IAAI,KAAK,iBAAiB;AAEpC;AAEA,OAAO,SAASE,kBAAkBA,CAACH,KAAoB,EAAW;EAChE,MAAMI,WAAW,GAAG,IAAIC,GAAG,CAAS,CAClCP,SAAS,CAACQ,eAAe,EACzBR,SAAS,CAACS,eAAe,EACzBT,SAAS,CAACU,cAAc,EACxBV,SAAS,CAACW,mBAAmB,EAC7BX,SAAS,CAACY,sBAAsB,EAChCZ,SAAS,CAACa,iBAAiB,EAC3Bb,SAAS,CAACc,YAAY,CACvB,CAAC;EACF,OAAOR,WAAW,CAACS,GAAG,CAACb,KAAK,CAACC,IAAI,CAAC;AACpC;AAEA,OAAO,SAASa,2BAA2BA,CAACd,KAAoB,EAAU;EACxE,QAAQA,KAAK,CAACC,IAAI;IAChB,KAAKH,SAAS,CAACI,gBAAgB;MAC7B,OAAO,oBAAoB;IAC7B,KAAKJ,SAAS,CAACQ,eAAe;MAC5B,OAAO,0BAA0B;IACnC,KAAKR,SAAS,CAACS,eAAe;MAC5B,OAAO,qBAAqB;IAC9B,KAAKT,SAAS,CAACU,cAAc;MAC3B,OAAO,sBAAsB;IAC/B,KAAKV,SAAS,CAACiB,mBAAmB;MAChC,OAAO,mDAAmD;IAC5D,KAAKjB,SAAS,CAACkB,kBAAkB;MAC/B,OAAO,yCAAyC;IAClD,KAAKlB,SAAS,CAACmB,+BAA+B;MAC5C,OAAO,+BAA+B;IACxC,KAAKnB,SAAS,CAACoB,eAAe;MAC5B,OAAO,mBAAmB;IAC5B;MACE,OAAOlB,KAAK,CAACmB,OAAO,IAAI,wBAAwB;EACpD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["ErrorCode","ERROR_CODE_ALIASES","E_USER_CANCELED","UserCancelled","USER_CANCELED","E_USER_CANCELLED","USER_CANCELLED","normalizeErrorCodeFromNative","code","upper","toUpperCase","alias","trimmed","startsWith","slice","camel","toLowerCase","split","map","segment","charAt","join","Unknown","isUserCancelledError","error","isRecoverableError","recoverable","Set","NetworkError","ServiceError","RemoteError","ConnectionClosed","ServiceDisconnected","InitConnection","SyncError","has","getUserFriendlyErrorMessage","IapNotAvailable","DeferredPayment","TransactionValidationFailed","SkuNotFound","message"],"sourceRoot":"../../../src","sources":["utils/errorMapping.ts"],"mappings":";;AAAA,SAAQA,SAAS,QAA2B,aAAU;AAEtD,MAAMC,kBAA6C,GAAG;EACpDC,eAAe,EAAEF,SAAS,CAACG,aAAa;EACxCC,aAAa,EAAEJ,SAAS,CAACG,aAAa;EACtCE,gBAAgB,EAAEL,SAAS,CAACG,aAAa;EACzCG,cAAc,EAAEN,SAAS,CAACG;AAC5B,CAAC;AAED,OAAO,MAAMI,4BAA4B,GAAIC,IAAa,IAAgB;EACxE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,MAAMC,KAAK,GAAGD,IAAI,CAACE,WAAW,CAAC,CAAC;IAChC,MAAMC,KAAK,GAAGV,kBAAkB,CAACQ,KAAK,CAAC;IACvC,IAAIE,KAAK,EAAE;MACT,OAAOA,KAAK;IACd;IAEA,MAAMC,OAAO,GAAGH,KAAK,CAACI,UAAU,CAAC,IAAI,CAAC,GAAGJ,KAAK,CAACK,KAAK,CAAC,CAAC,CAAC,GAAGL,KAAK;IAC/D,MAAMM,KAAK,GAAGH,OAAO,CAClBI,WAAW,CAAC,CAAC,CACbC,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAEC,OAAO,IAAK;MAChB,IAAI,CAACA,OAAO,EAAE,OAAOA,OAAO;MAC5B,OAAOA,OAAO,CAACC,MAAM,CAAC,CAAC,CAAC,CAACV,WAAW,CAAC,CAAC,GAAGS,OAAO,CAACL,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CACDO,IAAI,CAAC,EAAE,CAAC;IACX,IAAKrB,SAAS,CAASe,KAAK,CAAC,EAAE;MAC7B,OAAQf,SAAS,CAASe,KAAK,CAAC;IAClC;EACF;EACA,OAAOf,SAAS,CAACsB,OAAO;AAC1B,CAAC;AAED,OAAO,SAASC,oBAAoBA,CAACC,KAAoB,EAAW;EAClE,OAAOjB,4BAA4B,CAACiB,KAAK,CAAChB,IAAI,CAAC,KAAKR,SAAS,CAACG,aAAa;AAC7E;AAEA,OAAO,SAASsB,kBAAkBA,CAACD,KAAoB,EAAW;EAChE,MAAME,WAAW,GAAG,IAAIC,GAAG,CAAS,CAClC3B,SAAS,CAAC4B,YAAY,EACtB5B,SAAS,CAAC6B,YAAY,EACtB7B,SAAS,CAAC8B,WAAW,EACrB9B,SAAS,CAAC+B,gBAAgB,EAC1B/B,SAAS,CAACgC,mBAAmB,EAC7BhC,SAAS,CAACiC,cAAc,EACxBjC,SAAS,CAACkC,SAAS,CACpB,CAAC;EACF,OAAOR,WAAW,CAACS,GAAG,CAACX,KAAK,CAAChB,IAAI,CAAC;AACpC;AAEA,OAAO,SAAS4B,2BAA2BA,CAACZ,KAAoB,EAAU;EACxE,QAAQA,KAAK,CAAChB,IAAI;IAChB,KAAKR,SAAS,CAACG,aAAa;MAC1B,OAAO,oBAAoB;IAC7B,KAAKH,SAAS,CAAC4B,YAAY;MACzB,OAAO,0BAA0B;IACnC,KAAK5B,SAAS,CAAC6B,YAAY;MACzB,OAAO,qBAAqB;IAC9B,KAAK7B,SAAS,CAAC8B,WAAW;MACxB,OAAO,sBAAsB;IAC/B,KAAK9B,SAAS,CAACqC,eAAe;MAC5B,OAAO,mDAAmD;IAC5D,KAAKrC,SAAS,CAACsC,eAAe;MAC5B,OAAO,yCAAyC;IAClD,KAAKtC,SAAS,CAACuC,2BAA2B;MACxC,OAAO,+BAA+B;IACxC,KAAKvC,SAAS,CAACwC,WAAW;MACxB,OAAO,mBAAmB;IAC5B;MACE,OAAOhB,KAAK,CAACiB,OAAO,IAAI,wBAAwB;EACpD;AACF","ignoreList":[]}