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.
- package/lib/index.d.ts +8 -0
- package/lib/index.js +36 -0
- package/lib/module/helpers/subscription.js +2 -2
- package/lib/module/helpers/subscription.js.map +1 -1
- package/lib/module/hooks/useIAP.js +14 -8
- package/lib/module/hooks/useIAP.js.map +1 -1
- package/lib/module/index.js +76 -23
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +90 -190
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/error.js +4 -4
- package/lib/module/utils/error.js.map +1 -1
- package/lib/module/utils/errorMapping.js +34 -10
- package/lib/module/utils/errorMapping.js.map +1 -1
- package/lib/module/utils/type-bridge.js +217 -173
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/specs/RnIap.nitro.d.ts +7 -0
- package/lib/specs/RnIap.nitro.js +1 -0
- package/lib/typescript/src/helpers/subscription.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useIAP.d.ts +8 -11
- package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +11 -10
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +2 -2
- package/lib/typescript/src/types.d.ts +606 -518
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/errorMapping.d.ts +2 -1
- package/lib/typescript/src/utils/errorMapping.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts +13 -14
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +4 -4
- package/nitrogen/generated/android/c++/{JNitroAndroidReceiptValidationOptions.hpp → JNitroReceiptValidationAndroidOptions.hpp} +9 -9
- package/nitrogen/generated/android/c++/JNitroReceiptValidationParams.hpp +5 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/{NitroAndroidReceiptValidationOptions.kt → NitroReceiptValidationAndroidOptions.kt} +3 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroReceiptValidationParams.kt +1 -1
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +10 -10
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +3 -3
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +3 -3
- package/nitrogen/generated/ios/swift/{NitroAndroidReceiptValidationOptions.swift → NitroReceiptValidationAndroidOptions.swift} +5 -5
- package/nitrogen/generated/ios/swift/NitroReceiptValidationParams.swift +9 -9
- package/nitrogen/generated/shared/c++/{NitroAndroidReceiptValidationOptions.hpp → NitroReceiptValidationAndroidOptions.hpp} +10 -10
- package/nitrogen/generated/shared/c++/NitroReceiptValidationParams.hpp +8 -8
- package/package.json +1 -1
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/src/helpers/subscription.ts +8 -9
- package/src/hooks/useIAP.ts +52 -47
- package/src/index.ts +123 -35
- package/src/specs/RnIap.nitro.ts +2 -2
- package/src/types.ts +651 -616
- package/src/utils/error.ts +4 -4
- package/src/utils/errorMapping.ts +47 -19
- package/src/utils/type-bridge.ts +308 -204
package/lib/module/types.js
CHANGED
|
@@ -1,203 +1,103 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
// ============================================================================
|
|
4
|
-
//
|
|
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
|
-
|
|
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["
|
|
20
|
-
ProductTypeIOS["
|
|
21
|
-
ProductTypeIOS["
|
|
22
|
-
ProductTypeIOS["
|
|
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["
|
|
41
|
-
PurchaseState["
|
|
42
|
-
PurchaseState["
|
|
43
|
-
PurchaseState["
|
|
44
|
-
|
|
45
|
-
PurchaseState["
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
package/lib/module/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ProductTypeIOS","PurchaseState","
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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","
|
|
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.
|
|
29
|
+
return normalizeErrorCodeFromNative(error.code) === ErrorCode.UserCancelled;
|
|
6
30
|
}
|
|
7
31
|
export function isRecoverableError(error) {
|
|
8
|
-
const recoverable = new Set([ErrorCode.
|
|
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.
|
|
37
|
+
case ErrorCode.UserCancelled:
|
|
14
38
|
return 'Purchase cancelled';
|
|
15
|
-
case ErrorCode.
|
|
39
|
+
case ErrorCode.NetworkError:
|
|
16
40
|
return 'Network connection error';
|
|
17
|
-
case ErrorCode.
|
|
41
|
+
case ErrorCode.ServiceError:
|
|
18
42
|
return 'Store service error';
|
|
19
|
-
case ErrorCode.
|
|
43
|
+
case ErrorCode.RemoteError:
|
|
20
44
|
return 'Remote service error';
|
|
21
|
-
case ErrorCode.
|
|
45
|
+
case ErrorCode.IapNotAvailable:
|
|
22
46
|
return 'In-app purchases are not available on this device';
|
|
23
|
-
case ErrorCode.
|
|
47
|
+
case ErrorCode.DeferredPayment:
|
|
24
48
|
return 'Payment was deferred (pending approval)';
|
|
25
|
-
case ErrorCode.
|
|
49
|
+
case ErrorCode.TransactionValidationFailed:
|
|
26
50
|
return 'Transaction validation failed';
|
|
27
|
-
case ErrorCode.
|
|
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","
|
|
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":[]}
|