react-native-iap 14.5.0 → 14.6.0-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/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +173 -7
- package/ios/HybridRnIap.swift +24 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- package/ios/reactnativeiap.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/lib/module/index.js +166 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +93 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/type-bridge.js +2 -1
- package/lib/module/utils/type-bridge.js.map +1 -1
- package/lib/typescript/src/index.d.ts +124 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts +125 -1
- package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +227 -15
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JExternalLinkLaunchModeAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JExternalLinkTypeAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JFunc_void_NitroProduct.hpp +13 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +100 -0
- package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -0
- package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroBillingProgramReportingDetailsAndroid.hpp +63 -0
- package/nitrogen/generated/android/c++/JNitroDiscountAmountAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroDiscountDisplayInfoAndroid.hpp +64 -0
- package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +75 -0
- package/nitrogen/generated/android/c++/JNitroLimitedQuantityInfoAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +70 -3
- package/nitrogen/generated/android/c++/JNitroPreorderDetailsAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JNitroProduct.hpp +35 -5
- package/nitrogen/generated/android/c++/JNitroPurchase.hpp +7 -3
- package/nitrogen/generated/android/c++/JNitroRentalDetailsAndroid.hpp +62 -0
- package/nitrogen/generated/android/c++/JNitroValidTimeWindowAndroid.hpp +61 -0
- package/nitrogen/generated/android/c++/JPurchaseAndroid.hpp +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkLaunchModeAndroid.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ExternalLinkTypeAndroid.kt +22 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +16 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramReportingDetailsAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountAmountAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroDiscountDisplayInfoAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +45 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLimitedQuantityInfoAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +30 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPreorderDetailsAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroPurchase.kt +6 -3
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRentalDetailsAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroValidTimeWindowAndroid.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/PurchaseAndroid.kt +5 -2
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +16 -0
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +232 -18
- package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +36 -0
- package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +66 -0
- package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/ExternalLinkLaunchModeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/ExternalLinkTypeAndroid.swift +44 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramAvailabilityResultAndroid.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_NitroBillingProgramReportingDetailsAndroid.swift +47 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +68 -0
- package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroBillingProgramReportingDetailsAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroDiscountAmountAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroDiscountDisplayInfoAndroid.swift +70 -0
- package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +68 -0
- package/nitrogen/generated/ios/swift/NitroLimitedQuantityInfoAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +211 -2
- package/nitrogen/generated/ios/swift/NitroPreorderDetailsAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/NitroProduct.swift +26 -7
- package/nitrogen/generated/ios/swift/NitroPurchase.swift +31 -1
- package/nitrogen/generated/ios/swift/NitroRentalDetailsAndroid.swift +65 -0
- package/nitrogen/generated/ios/swift/NitroValidTimeWindowAndroid.swift +46 -0
- package/nitrogen/generated/ios/swift/PurchaseAndroid.swift +32 -2
- package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/ExternalLinkLaunchModeAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/ExternalLinkTypeAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +16 -0
- package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/NitroBillingProgramReportingDetailsAndroid.hpp +81 -0
- package/nitrogen/generated/shared/c++/NitroDiscountAmountAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroDiscountDisplayInfoAndroid.hpp +81 -0
- package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +95 -0
- package/nitrogen/generated/shared/c++/NitroLimitedQuantityInfoAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +55 -3
- package/nitrogen/generated/shared/c++/NitroPreorderDetailsAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/NitroProduct.hpp +6 -5
- package/nitrogen/generated/shared/c++/NitroPurchase.hpp +6 -2
- package/nitrogen/generated/shared/c++/NitroRentalDetailsAndroid.hpp +80 -0
- package/nitrogen/generated/shared/c++/NitroValidTimeWindowAndroid.hpp +79 -0
- package/nitrogen/generated/shared/c++/PurchaseAndroid.hpp +5 -1
- package/openiap-versions.json +2 -2
- package/package.json +1 -1
- package/plugin/build/src/withIAP.d.ts +3 -0
- package/plugin/build/src/withIAP.js +81 -0
- package/plugin/build/tsconfig.tsbuildinfo +1 -0
- package/plugin/tsconfig.tsbuildinfo +1 -1
- package/src/index.ts +218 -0
- package/src/specs/RnIap.nitro.ts +161 -1
- package/src/types.ts +243 -15
- package/src/utils/type-bridge.ts +1 -0
|
@@ -18,10 +18,75 @@ public extension NitroOneTimePurchaseOfferDetail {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `NitroOneTimePurchaseOfferDetail`.
|
|
20
20
|
*/
|
|
21
|
-
init(formattedPrice: String, priceAmountMicros: String, priceCurrencyCode: String) {
|
|
22
|
-
self.init(
|
|
21
|
+
init(discountDisplayInfo: NitroDiscountDisplayInfoAndroid?, formattedPrice: String, fullPriceMicros: String?, limitedQuantityInfo: NitroLimitedQuantityInfoAndroid?, offerId: String?, offerTags: [String], offerToken: String, preorderDetailsAndroid: NitroPreorderDetailsAndroid?, priceAmountMicros: String, priceCurrencyCode: String, rentalDetailsAndroid: NitroRentalDetailsAndroid?, validTimeWindow: NitroValidTimeWindowAndroid?) {
|
|
22
|
+
self.init({ () -> bridge.std__optional_NitroDiscountDisplayInfoAndroid_ in
|
|
23
|
+
if let __unwrappedValue = discountDisplayInfo {
|
|
24
|
+
return bridge.create_std__optional_NitroDiscountDisplayInfoAndroid_(__unwrappedValue)
|
|
25
|
+
} else {
|
|
26
|
+
return .init()
|
|
27
|
+
}
|
|
28
|
+
}(), std.string(formattedPrice), { () -> bridge.std__optional_std__string_ in
|
|
29
|
+
if let __unwrappedValue = fullPriceMicros {
|
|
30
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
31
|
+
} else {
|
|
32
|
+
return .init()
|
|
33
|
+
}
|
|
34
|
+
}(), { () -> bridge.std__optional_NitroLimitedQuantityInfoAndroid_ in
|
|
35
|
+
if let __unwrappedValue = limitedQuantityInfo {
|
|
36
|
+
return bridge.create_std__optional_NitroLimitedQuantityInfoAndroid_(__unwrappedValue)
|
|
37
|
+
} else {
|
|
38
|
+
return .init()
|
|
39
|
+
}
|
|
40
|
+
}(), { () -> bridge.std__optional_std__string_ in
|
|
41
|
+
if let __unwrappedValue = offerId {
|
|
42
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
43
|
+
} else {
|
|
44
|
+
return .init()
|
|
45
|
+
}
|
|
46
|
+
}(), { () -> bridge.std__vector_std__string_ in
|
|
47
|
+
var __vector = bridge.create_std__vector_std__string_(offerTags.count)
|
|
48
|
+
for __item in offerTags {
|
|
49
|
+
__vector.push_back(std.string(__item))
|
|
50
|
+
}
|
|
51
|
+
return __vector
|
|
52
|
+
}(), std.string(offerToken), { () -> bridge.std__optional_NitroPreorderDetailsAndroid_ in
|
|
53
|
+
if let __unwrappedValue = preorderDetailsAndroid {
|
|
54
|
+
return bridge.create_std__optional_NitroPreorderDetailsAndroid_(__unwrappedValue)
|
|
55
|
+
} else {
|
|
56
|
+
return .init()
|
|
57
|
+
}
|
|
58
|
+
}(), std.string(priceAmountMicros), std.string(priceCurrencyCode), { () -> bridge.std__optional_NitroRentalDetailsAndroid_ in
|
|
59
|
+
if let __unwrappedValue = rentalDetailsAndroid {
|
|
60
|
+
return bridge.create_std__optional_NitroRentalDetailsAndroid_(__unwrappedValue)
|
|
61
|
+
} else {
|
|
62
|
+
return .init()
|
|
63
|
+
}
|
|
64
|
+
}(), { () -> bridge.std__optional_NitroValidTimeWindowAndroid_ in
|
|
65
|
+
if let __unwrappedValue = validTimeWindow {
|
|
66
|
+
return bridge.create_std__optional_NitroValidTimeWindowAndroid_(__unwrappedValue)
|
|
67
|
+
} else {
|
|
68
|
+
return .init()
|
|
69
|
+
}
|
|
70
|
+
}())
|
|
23
71
|
}
|
|
24
72
|
|
|
73
|
+
var discountDisplayInfo: NitroDiscountDisplayInfoAndroid? {
|
|
74
|
+
@inline(__always)
|
|
75
|
+
get {
|
|
76
|
+
return self.__discountDisplayInfo.value
|
|
77
|
+
}
|
|
78
|
+
@inline(__always)
|
|
79
|
+
set {
|
|
80
|
+
self.__discountDisplayInfo = { () -> bridge.std__optional_NitroDiscountDisplayInfoAndroid_ in
|
|
81
|
+
if let __unwrappedValue = newValue {
|
|
82
|
+
return bridge.create_std__optional_NitroDiscountDisplayInfoAndroid_(__unwrappedValue)
|
|
83
|
+
} else {
|
|
84
|
+
return .init()
|
|
85
|
+
}
|
|
86
|
+
}()
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
25
90
|
var formattedPrice: String {
|
|
26
91
|
@inline(__always)
|
|
27
92
|
get {
|
|
@@ -33,6 +98,116 @@ public extension NitroOneTimePurchaseOfferDetail {
|
|
|
33
98
|
}
|
|
34
99
|
}
|
|
35
100
|
|
|
101
|
+
var fullPriceMicros: String? {
|
|
102
|
+
@inline(__always)
|
|
103
|
+
get {
|
|
104
|
+
return { () -> String? in
|
|
105
|
+
if bridge.has_value_std__optional_std__string_(self.__fullPriceMicros) {
|
|
106
|
+
let __unwrapped = bridge.get_std__optional_std__string_(self.__fullPriceMicros)
|
|
107
|
+
return String(__unwrapped)
|
|
108
|
+
} else {
|
|
109
|
+
return nil
|
|
110
|
+
}
|
|
111
|
+
}()
|
|
112
|
+
}
|
|
113
|
+
@inline(__always)
|
|
114
|
+
set {
|
|
115
|
+
self.__fullPriceMicros = { () -> bridge.std__optional_std__string_ in
|
|
116
|
+
if let __unwrappedValue = newValue {
|
|
117
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
118
|
+
} else {
|
|
119
|
+
return .init()
|
|
120
|
+
}
|
|
121
|
+
}()
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var limitedQuantityInfo: NitroLimitedQuantityInfoAndroid? {
|
|
126
|
+
@inline(__always)
|
|
127
|
+
get {
|
|
128
|
+
return self.__limitedQuantityInfo.value
|
|
129
|
+
}
|
|
130
|
+
@inline(__always)
|
|
131
|
+
set {
|
|
132
|
+
self.__limitedQuantityInfo = { () -> bridge.std__optional_NitroLimitedQuantityInfoAndroid_ in
|
|
133
|
+
if let __unwrappedValue = newValue {
|
|
134
|
+
return bridge.create_std__optional_NitroLimitedQuantityInfoAndroid_(__unwrappedValue)
|
|
135
|
+
} else {
|
|
136
|
+
return .init()
|
|
137
|
+
}
|
|
138
|
+
}()
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
var offerId: String? {
|
|
143
|
+
@inline(__always)
|
|
144
|
+
get {
|
|
145
|
+
return { () -> String? in
|
|
146
|
+
if bridge.has_value_std__optional_std__string_(self.__offerId) {
|
|
147
|
+
let __unwrapped = bridge.get_std__optional_std__string_(self.__offerId)
|
|
148
|
+
return String(__unwrapped)
|
|
149
|
+
} else {
|
|
150
|
+
return nil
|
|
151
|
+
}
|
|
152
|
+
}()
|
|
153
|
+
}
|
|
154
|
+
@inline(__always)
|
|
155
|
+
set {
|
|
156
|
+
self.__offerId = { () -> bridge.std__optional_std__string_ in
|
|
157
|
+
if let __unwrappedValue = newValue {
|
|
158
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
159
|
+
} else {
|
|
160
|
+
return .init()
|
|
161
|
+
}
|
|
162
|
+
}()
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
var offerTags: [String] {
|
|
167
|
+
@inline(__always)
|
|
168
|
+
get {
|
|
169
|
+
return self.__offerTags.map({ __item in String(__item) })
|
|
170
|
+
}
|
|
171
|
+
@inline(__always)
|
|
172
|
+
set {
|
|
173
|
+
self.__offerTags = { () -> bridge.std__vector_std__string_ in
|
|
174
|
+
var __vector = bridge.create_std__vector_std__string_(newValue.count)
|
|
175
|
+
for __item in newValue {
|
|
176
|
+
__vector.push_back(std.string(__item))
|
|
177
|
+
}
|
|
178
|
+
return __vector
|
|
179
|
+
}()
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
var offerToken: String {
|
|
184
|
+
@inline(__always)
|
|
185
|
+
get {
|
|
186
|
+
return String(self.__offerToken)
|
|
187
|
+
}
|
|
188
|
+
@inline(__always)
|
|
189
|
+
set {
|
|
190
|
+
self.__offerToken = std.string(newValue)
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
var preorderDetailsAndroid: NitroPreorderDetailsAndroid? {
|
|
195
|
+
@inline(__always)
|
|
196
|
+
get {
|
|
197
|
+
return self.__preorderDetailsAndroid.value
|
|
198
|
+
}
|
|
199
|
+
@inline(__always)
|
|
200
|
+
set {
|
|
201
|
+
self.__preorderDetailsAndroid = { () -> bridge.std__optional_NitroPreorderDetailsAndroid_ in
|
|
202
|
+
if let __unwrappedValue = newValue {
|
|
203
|
+
return bridge.create_std__optional_NitroPreorderDetailsAndroid_(__unwrappedValue)
|
|
204
|
+
} else {
|
|
205
|
+
return .init()
|
|
206
|
+
}
|
|
207
|
+
}()
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
36
211
|
var priceAmountMicros: String {
|
|
37
212
|
@inline(__always)
|
|
38
213
|
get {
|
|
@@ -54,4 +229,38 @@ public extension NitroOneTimePurchaseOfferDetail {
|
|
|
54
229
|
self.__priceCurrencyCode = std.string(newValue)
|
|
55
230
|
}
|
|
56
231
|
}
|
|
232
|
+
|
|
233
|
+
var rentalDetailsAndroid: NitroRentalDetailsAndroid? {
|
|
234
|
+
@inline(__always)
|
|
235
|
+
get {
|
|
236
|
+
return self.__rentalDetailsAndroid.value
|
|
237
|
+
}
|
|
238
|
+
@inline(__always)
|
|
239
|
+
set {
|
|
240
|
+
self.__rentalDetailsAndroid = { () -> bridge.std__optional_NitroRentalDetailsAndroid_ in
|
|
241
|
+
if let __unwrappedValue = newValue {
|
|
242
|
+
return bridge.create_std__optional_NitroRentalDetailsAndroid_(__unwrappedValue)
|
|
243
|
+
} else {
|
|
244
|
+
return .init()
|
|
245
|
+
}
|
|
246
|
+
}()
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
var validTimeWindow: NitroValidTimeWindowAndroid? {
|
|
251
|
+
@inline(__always)
|
|
252
|
+
get {
|
|
253
|
+
return self.__validTimeWindow.value
|
|
254
|
+
}
|
|
255
|
+
@inline(__always)
|
|
256
|
+
set {
|
|
257
|
+
self.__validTimeWindow = { () -> bridge.std__optional_NitroValidTimeWindowAndroid_ in
|
|
258
|
+
if let __unwrappedValue = newValue {
|
|
259
|
+
return bridge.create_std__optional_NitroValidTimeWindowAndroid_(__unwrappedValue)
|
|
260
|
+
} else {
|
|
261
|
+
return .init()
|
|
262
|
+
}
|
|
263
|
+
}()
|
|
264
|
+
}
|
|
265
|
+
}
|
|
57
266
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroPreorderDetailsAndroid.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `NitroPreorderDetailsAndroid`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias NitroPreorderDetailsAndroid = margelo.nitro.iap.NitroPreorderDetailsAndroid
|
|
14
|
+
|
|
15
|
+
public extension NitroPreorderDetailsAndroid {
|
|
16
|
+
private typealias bridge = margelo.nitro.iap.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `NitroPreorderDetailsAndroid`.
|
|
20
|
+
*/
|
|
21
|
+
init(preorderPresaleEndTimeMillis: String, preorderReleaseTimeMillis: String) {
|
|
22
|
+
self.init(std.string(preorderPresaleEndTimeMillis), std.string(preorderReleaseTimeMillis))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var preorderPresaleEndTimeMillis: String {
|
|
26
|
+
@inline(__always)
|
|
27
|
+
get {
|
|
28
|
+
return String(self.__preorderPresaleEndTimeMillis)
|
|
29
|
+
}
|
|
30
|
+
@inline(__always)
|
|
31
|
+
set {
|
|
32
|
+
self.__preorderPresaleEndTimeMillis = std.string(newValue)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var preorderReleaseTimeMillis: String {
|
|
37
|
+
@inline(__always)
|
|
38
|
+
get {
|
|
39
|
+
return String(self.__preorderReleaseTimeMillis)
|
|
40
|
+
}
|
|
41
|
+
@inline(__always)
|
|
42
|
+
set {
|
|
43
|
+
self.__preorderReleaseTimeMillis = std.string(newValue)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -18,7 +18,7 @@ public extension NitroProduct {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `NitroProduct`.
|
|
20
20
|
*/
|
|
21
|
-
init(id: String, title: String, description: String, type: String, displayName: String?, displayPrice: String?, currency: String?, price: Double?, platform: IapPlatform, typeIOS: String?, isFamilyShareableIOS: Bool?, jsonRepresentationIOS: String?, discountsIOS: String?, introductoryPriceIOS: String?, introductoryPriceAsAmountIOS: Double?, introductoryPriceNumberOfPeriodsIOS: Double?, introductoryPricePaymentModeIOS: PaymentModeIOS, introductoryPriceSubscriptionPeriodIOS: String?, subscriptionPeriodNumberIOS: Double?, subscriptionPeriodUnitIOS: String?, nameAndroid: String?, originalPriceAndroid: String?, originalPriceAmountMicrosAndroid: Double?, introductoryPriceCyclesAndroid: Double?, introductoryPricePeriodAndroid: String?, introductoryPriceValueAndroid: Double?, subscriptionPeriodAndroid: String?, freeTrialPeriodAndroid: String?, subscriptionOfferDetailsAndroid: String?, oneTimePurchaseOfferDetailsAndroid: NitroOneTimePurchaseOfferDetail?) {
|
|
21
|
+
init(id: String, title: String, description: String, type: String, displayName: String?, displayPrice: String?, currency: String?, price: Double?, platform: IapPlatform, typeIOS: String?, isFamilyShareableIOS: Bool?, jsonRepresentationIOS: String?, discountsIOS: String?, introductoryPriceIOS: String?, introductoryPriceAsAmountIOS: Double?, introductoryPriceNumberOfPeriodsIOS: Double?, introductoryPricePaymentModeIOS: PaymentModeIOS, introductoryPriceSubscriptionPeriodIOS: String?, subscriptionPeriodNumberIOS: Double?, subscriptionPeriodUnitIOS: String?, nameAndroid: String?, originalPriceAndroid: String?, originalPriceAmountMicrosAndroid: Double?, introductoryPriceCyclesAndroid: Double?, introductoryPricePeriodAndroid: String?, introductoryPriceValueAndroid: Double?, subscriptionPeriodAndroid: String?, freeTrialPeriodAndroid: String?, subscriptionOfferDetailsAndroid: String?, oneTimePurchaseOfferDetailsAndroid: [NitroOneTimePurchaseOfferDetail]?) {
|
|
22
22
|
self.init(std.string(id), std.string(title), std.string(description), std.string(type), { () -> bridge.std__optional_std__string_ in
|
|
23
23
|
if let __unwrappedValue = displayName {
|
|
24
24
|
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
@@ -157,9 +157,15 @@ public extension NitroProduct {
|
|
|
157
157
|
} else {
|
|
158
158
|
return .init()
|
|
159
159
|
}
|
|
160
|
-
}(), { () -> bridge.
|
|
160
|
+
}(), { () -> bridge.std__optional_std__vector_NitroOneTimePurchaseOfferDetail__ in
|
|
161
161
|
if let __unwrappedValue = oneTimePurchaseOfferDetailsAndroid {
|
|
162
|
-
return bridge.
|
|
162
|
+
return bridge.create_std__optional_std__vector_NitroOneTimePurchaseOfferDetail__({ () -> bridge.std__vector_NitroOneTimePurchaseOfferDetail_ in
|
|
163
|
+
var __vector = bridge.create_std__vector_NitroOneTimePurchaseOfferDetail_(__unwrappedValue.count)
|
|
164
|
+
for __item in __unwrappedValue {
|
|
165
|
+
__vector.push_back(__item)
|
|
166
|
+
}
|
|
167
|
+
return __vector
|
|
168
|
+
}())
|
|
163
169
|
} else {
|
|
164
170
|
return .init()
|
|
165
171
|
}
|
|
@@ -735,16 +741,29 @@ public extension NitroProduct {
|
|
|
735
741
|
}
|
|
736
742
|
}
|
|
737
743
|
|
|
738
|
-
var oneTimePurchaseOfferDetailsAndroid: NitroOneTimePurchaseOfferDetail? {
|
|
744
|
+
var oneTimePurchaseOfferDetailsAndroid: [NitroOneTimePurchaseOfferDetail]? {
|
|
739
745
|
@inline(__always)
|
|
740
746
|
get {
|
|
741
|
-
return
|
|
747
|
+
return { () -> [NitroOneTimePurchaseOfferDetail]? in
|
|
748
|
+
if bridge.has_value_std__optional_std__vector_NitroOneTimePurchaseOfferDetail__(self.__oneTimePurchaseOfferDetailsAndroid) {
|
|
749
|
+
let __unwrapped = bridge.get_std__optional_std__vector_NitroOneTimePurchaseOfferDetail__(self.__oneTimePurchaseOfferDetailsAndroid)
|
|
750
|
+
return __unwrapped.map({ __item in __item })
|
|
751
|
+
} else {
|
|
752
|
+
return nil
|
|
753
|
+
}
|
|
754
|
+
}()
|
|
742
755
|
}
|
|
743
756
|
@inline(__always)
|
|
744
757
|
set {
|
|
745
|
-
self.__oneTimePurchaseOfferDetailsAndroid = { () -> bridge.
|
|
758
|
+
self.__oneTimePurchaseOfferDetailsAndroid = { () -> bridge.std__optional_std__vector_NitroOneTimePurchaseOfferDetail__ in
|
|
746
759
|
if let __unwrappedValue = newValue {
|
|
747
|
-
return bridge.
|
|
760
|
+
return bridge.create_std__optional_std__vector_NitroOneTimePurchaseOfferDetail__({ () -> bridge.std__vector_NitroOneTimePurchaseOfferDetail_ in
|
|
761
|
+
var __vector = bridge.create_std__vector_NitroOneTimePurchaseOfferDetail_(__unwrappedValue.count)
|
|
762
|
+
for __item in __unwrappedValue {
|
|
763
|
+
__vector.push_back(__item)
|
|
764
|
+
}
|
|
765
|
+
return __vector
|
|
766
|
+
}())
|
|
748
767
|
} else {
|
|
749
768
|
return .init()
|
|
750
769
|
}
|
|
@@ -18,7 +18,7 @@ public extension NitroPurchase {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `NitroPurchase`.
|
|
20
20
|
*/
|
|
21
|
-
init(id: String, productId: String, transactionDate: Double, purchaseToken: String?, platform: IapPlatform, store: IapStore, quantity: Double, purchaseState: PurchaseState, isAutoRenewing: Bool, quantityIOS: Double?, originalTransactionDateIOS: Double?, originalTransactionIdentifierIOS: String?, appAccountToken: String?, appBundleIdIOS: String?, countryCodeIOS: String?, currencyCodeIOS: String?, currencySymbolIOS: String?, environmentIOS: String?, expirationDateIOS: Double?, isUpgradedIOS: Bool?, offerIOS: String?, ownershipTypeIOS: String?, reasonIOS: String?, reasonStringRepresentationIOS: String?, revocationDateIOS: Double?, revocationReasonIOS: String?, storefrontCountryCodeIOS: String?, subscriptionGroupIdIOS: String?, transactionReasonIOS: String?, webOrderLineItemIdIOS: String?, renewalInfoIOS: NitroRenewalInfoIOS?, purchaseTokenAndroid: String?, dataAndroid: String?, signatureAndroid: String?, autoRenewingAndroid: Bool?, purchaseStateAndroid: Double?, isAcknowledgedAndroid: Bool?, packageNameAndroid: String?, obfuscatedAccountIdAndroid: String?, obfuscatedProfileIdAndroid: String?, developerPayloadAndroid: String?) {
|
|
21
|
+
init(id: String, productId: String, transactionDate: Double, purchaseToken: String?, platform: IapPlatform, store: IapStore, quantity: Double, purchaseState: PurchaseState, isAutoRenewing: Bool, quantityIOS: Double?, originalTransactionDateIOS: Double?, originalTransactionIdentifierIOS: String?, appAccountToken: String?, appBundleIdIOS: String?, countryCodeIOS: String?, currencyCodeIOS: String?, currencySymbolIOS: String?, environmentIOS: String?, expirationDateIOS: Double?, isUpgradedIOS: Bool?, offerIOS: String?, ownershipTypeIOS: String?, reasonIOS: String?, reasonStringRepresentationIOS: String?, revocationDateIOS: Double?, revocationReasonIOS: String?, storefrontCountryCodeIOS: String?, subscriptionGroupIdIOS: String?, transactionReasonIOS: String?, webOrderLineItemIdIOS: String?, renewalInfoIOS: NitroRenewalInfoIOS?, purchaseTokenAndroid: String?, dataAndroid: String?, signatureAndroid: String?, autoRenewingAndroid: Bool?, purchaseStateAndroid: Double?, isAcknowledgedAndroid: Bool?, packageNameAndroid: String?, obfuscatedAccountIdAndroid: String?, obfuscatedProfileIdAndroid: String?, developerPayloadAndroid: String?, isSuspendedAndroid: Bool?) {
|
|
22
22
|
self.init(std.string(id), std.string(productId), transactionDate, { () -> bridge.std__optional_std__string_ in
|
|
23
23
|
if let __unwrappedValue = purchaseToken {
|
|
24
24
|
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
@@ -217,6 +217,12 @@ public extension NitroPurchase {
|
|
|
217
217
|
} else {
|
|
218
218
|
return .init()
|
|
219
219
|
}
|
|
220
|
+
}(), { () -> bridge.std__optional_bool_ in
|
|
221
|
+
if let __unwrappedValue = isSuspendedAndroid {
|
|
222
|
+
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
223
|
+
} else {
|
|
224
|
+
return .init()
|
|
225
|
+
}
|
|
220
226
|
}())
|
|
221
227
|
}
|
|
222
228
|
|
|
@@ -1057,4 +1063,28 @@ public extension NitroPurchase {
|
|
|
1057
1063
|
}()
|
|
1058
1064
|
}
|
|
1059
1065
|
}
|
|
1066
|
+
|
|
1067
|
+
var isSuspendedAndroid: Bool? {
|
|
1068
|
+
@inline(__always)
|
|
1069
|
+
get {
|
|
1070
|
+
return { () -> Bool? in
|
|
1071
|
+
if bridge.has_value_std__optional_bool_(self.__isSuspendedAndroid) {
|
|
1072
|
+
let __unwrapped = bridge.get_std__optional_bool_(self.__isSuspendedAndroid)
|
|
1073
|
+
return __unwrapped
|
|
1074
|
+
} else {
|
|
1075
|
+
return nil
|
|
1076
|
+
}
|
|
1077
|
+
}()
|
|
1078
|
+
}
|
|
1079
|
+
@inline(__always)
|
|
1080
|
+
set {
|
|
1081
|
+
self.__isSuspendedAndroid = { () -> bridge.std__optional_bool_ in
|
|
1082
|
+
if let __unwrappedValue = newValue {
|
|
1083
|
+
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
1084
|
+
} else {
|
|
1085
|
+
return .init()
|
|
1086
|
+
}
|
|
1087
|
+
}()
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1060
1090
|
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroRentalDetailsAndroid.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `NitroRentalDetailsAndroid`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias NitroRentalDetailsAndroid = margelo.nitro.iap.NitroRentalDetailsAndroid
|
|
14
|
+
|
|
15
|
+
public extension NitroRentalDetailsAndroid {
|
|
16
|
+
private typealias bridge = margelo.nitro.iap.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `NitroRentalDetailsAndroid`.
|
|
20
|
+
*/
|
|
21
|
+
init(rentalExpirationPeriod: String?, rentalPeriod: String) {
|
|
22
|
+
self.init({ () -> bridge.std__optional_std__string_ in
|
|
23
|
+
if let __unwrappedValue = rentalExpirationPeriod {
|
|
24
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
25
|
+
} else {
|
|
26
|
+
return .init()
|
|
27
|
+
}
|
|
28
|
+
}(), std.string(rentalPeriod))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var rentalExpirationPeriod: String? {
|
|
32
|
+
@inline(__always)
|
|
33
|
+
get {
|
|
34
|
+
return { () -> String? in
|
|
35
|
+
if bridge.has_value_std__optional_std__string_(self.__rentalExpirationPeriod) {
|
|
36
|
+
let __unwrapped = bridge.get_std__optional_std__string_(self.__rentalExpirationPeriod)
|
|
37
|
+
return String(__unwrapped)
|
|
38
|
+
} else {
|
|
39
|
+
return nil
|
|
40
|
+
}
|
|
41
|
+
}()
|
|
42
|
+
}
|
|
43
|
+
@inline(__always)
|
|
44
|
+
set {
|
|
45
|
+
self.__rentalExpirationPeriod = { () -> bridge.std__optional_std__string_ in
|
|
46
|
+
if let __unwrappedValue = newValue {
|
|
47
|
+
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
48
|
+
} else {
|
|
49
|
+
return .init()
|
|
50
|
+
}
|
|
51
|
+
}()
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var rentalPeriod: String {
|
|
56
|
+
@inline(__always)
|
|
57
|
+
get {
|
|
58
|
+
return String(self.__rentalPeriod)
|
|
59
|
+
}
|
|
60
|
+
@inline(__always)
|
|
61
|
+
set {
|
|
62
|
+
self.__rentalPeriod = std.string(newValue)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// NitroValidTimeWindowAndroid.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import NitroModules
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents an instance of `NitroValidTimeWindowAndroid`, backed by a C++ struct.
|
|
12
|
+
*/
|
|
13
|
+
public typealias NitroValidTimeWindowAndroid = margelo.nitro.iap.NitroValidTimeWindowAndroid
|
|
14
|
+
|
|
15
|
+
public extension NitroValidTimeWindowAndroid {
|
|
16
|
+
private typealias bridge = margelo.nitro.iap.bridge.swift
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Create a new instance of `NitroValidTimeWindowAndroid`.
|
|
20
|
+
*/
|
|
21
|
+
init(endTimeMillis: String, startTimeMillis: String) {
|
|
22
|
+
self.init(std.string(endTimeMillis), std.string(startTimeMillis))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
var endTimeMillis: String {
|
|
26
|
+
@inline(__always)
|
|
27
|
+
get {
|
|
28
|
+
return String(self.__endTimeMillis)
|
|
29
|
+
}
|
|
30
|
+
@inline(__always)
|
|
31
|
+
set {
|
|
32
|
+
self.__endTimeMillis = std.string(newValue)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
var startTimeMillis: String {
|
|
37
|
+
@inline(__always)
|
|
38
|
+
get {
|
|
39
|
+
return String(self.__startTimeMillis)
|
|
40
|
+
}
|
|
41
|
+
@inline(__always)
|
|
42
|
+
set {
|
|
43
|
+
self.__startTimeMillis = std.string(newValue)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -18,7 +18,7 @@ public extension PurchaseAndroid {
|
|
|
18
18
|
/**
|
|
19
19
|
* Create a new instance of `PurchaseAndroid`.
|
|
20
20
|
*/
|
|
21
|
-
init(autoRenewingAndroid: Bool?, currentPlanId: String?, dataAndroid: String?, developerPayloadAndroid: String?, id: String, ids: [String]?, isAcknowledgedAndroid: Bool?, isAutoRenewing: Bool, obfuscatedAccountIdAndroid: String?, obfuscatedProfileIdAndroid: String?, packageNameAndroid: String?, platform: IapPlatform, productId: String, purchaseState: PurchaseState, purchaseToken: String?, quantity: Double, signatureAndroid: String?, store: IapStore, transactionDate: Double, transactionId: String?) {
|
|
21
|
+
init(autoRenewingAndroid: Bool?, currentPlanId: String?, dataAndroid: String?, developerPayloadAndroid: String?, id: String, ids: [String]?, isAcknowledgedAndroid: Bool?, isAutoRenewing: Bool, isSuspendedAndroid: Bool?, obfuscatedAccountIdAndroid: String?, obfuscatedProfileIdAndroid: String?, packageNameAndroid: String?, platform: IapPlatform, productId: String, purchaseState: PurchaseState, purchaseToken: String?, quantity: Double, signatureAndroid: String?, store: IapStore, transactionDate: Double, transactionId: String?) {
|
|
22
22
|
self.init({ () -> bridge.std__optional_bool_ in
|
|
23
23
|
if let __unwrappedValue = autoRenewingAndroid {
|
|
24
24
|
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
@@ -61,7 +61,13 @@ public extension PurchaseAndroid {
|
|
|
61
61
|
} else {
|
|
62
62
|
return .init()
|
|
63
63
|
}
|
|
64
|
-
}(), isAutoRenewing, { () -> bridge.
|
|
64
|
+
}(), isAutoRenewing, { () -> bridge.std__optional_bool_ in
|
|
65
|
+
if let __unwrappedValue = isSuspendedAndroid {
|
|
66
|
+
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
67
|
+
} else {
|
|
68
|
+
return .init()
|
|
69
|
+
}
|
|
70
|
+
}(), { () -> bridge.std__optional_std__string_ in
|
|
65
71
|
if let __unwrappedValue = obfuscatedAccountIdAndroid {
|
|
66
72
|
return bridge.create_std__optional_std__string_(std.string(__unwrappedValue))
|
|
67
73
|
} else {
|
|
@@ -272,6 +278,30 @@ public extension PurchaseAndroid {
|
|
|
272
278
|
}
|
|
273
279
|
}
|
|
274
280
|
|
|
281
|
+
var isSuspendedAndroid: Bool? {
|
|
282
|
+
@inline(__always)
|
|
283
|
+
get {
|
|
284
|
+
return { () -> Bool? in
|
|
285
|
+
if bridge.has_value_std__optional_bool_(self.__isSuspendedAndroid) {
|
|
286
|
+
let __unwrapped = bridge.get_std__optional_bool_(self.__isSuspendedAndroid)
|
|
287
|
+
return __unwrapped
|
|
288
|
+
} else {
|
|
289
|
+
return nil
|
|
290
|
+
}
|
|
291
|
+
}()
|
|
292
|
+
}
|
|
293
|
+
@inline(__always)
|
|
294
|
+
set {
|
|
295
|
+
self.__isSuspendedAndroid = { () -> bridge.std__optional_bool_ in
|
|
296
|
+
if let __unwrappedValue = newValue {
|
|
297
|
+
return bridge.create_std__optional_bool_(__unwrappedValue)
|
|
298
|
+
} else {
|
|
299
|
+
return .init()
|
|
300
|
+
}
|
|
301
|
+
}()
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
275
305
|
var obfuscatedAccountIdAndroid: String? {
|
|
276
306
|
@inline(__always)
|
|
277
307
|
get {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// BillingProgramAndroid.hpp
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © 2025 Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#if __has_include(<NitroModules/NitroHash.hpp>)
|
|
11
|
+
#include <NitroModules/NitroHash.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/JSIConverter.hpp>)
|
|
16
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
21
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
namespace margelo::nitro::iap {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (BillingProgramAndroid).
|
|
30
|
+
*/
|
|
31
|
+
enum class BillingProgramAndroid {
|
|
32
|
+
UNSPECIFIED SWIFT_NAME(unspecified) = 0,
|
|
33
|
+
EXTERNAL_CONTENT_LINK SWIFT_NAME(externalContentLink) = 1,
|
|
34
|
+
EXTERNAL_OFFER SWIFT_NAME(externalOffer) = 2,
|
|
35
|
+
} CLOSED_ENUM;
|
|
36
|
+
|
|
37
|
+
} // namespace margelo::nitro::iap
|
|
38
|
+
|
|
39
|
+
namespace margelo::nitro {
|
|
40
|
+
|
|
41
|
+
// C++ BillingProgramAndroid <> JS BillingProgramAndroid (union)
|
|
42
|
+
template <>
|
|
43
|
+
struct JSIConverter<margelo::nitro::iap::BillingProgramAndroid> final {
|
|
44
|
+
static inline margelo::nitro::iap::BillingProgramAndroid fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
45
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
46
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
47
|
+
case hashString("unspecified"): return margelo::nitro::iap::BillingProgramAndroid::UNSPECIFIED;
|
|
48
|
+
case hashString("external-content-link"): return margelo::nitro::iap::BillingProgramAndroid::EXTERNAL_CONTENT_LINK;
|
|
49
|
+
case hashString("external-offer"): return margelo::nitro::iap::BillingProgramAndroid::EXTERNAL_OFFER;
|
|
50
|
+
default: [[unlikely]]
|
|
51
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum BillingProgramAndroid - invalid value!");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::iap::BillingProgramAndroid arg) {
|
|
55
|
+
switch (arg) {
|
|
56
|
+
case margelo::nitro::iap::BillingProgramAndroid::UNSPECIFIED: return JSIConverter<std::string>::toJSI(runtime, "unspecified");
|
|
57
|
+
case margelo::nitro::iap::BillingProgramAndroid::EXTERNAL_CONTENT_LINK: return JSIConverter<std::string>::toJSI(runtime, "external-content-link");
|
|
58
|
+
case margelo::nitro::iap::BillingProgramAndroid::EXTERNAL_OFFER: return JSIConverter<std::string>::toJSI(runtime, "external-offer");
|
|
59
|
+
default: [[unlikely]]
|
|
60
|
+
throw std::invalid_argument("Cannot convert BillingProgramAndroid to JS - invalid value: "
|
|
61
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
65
|
+
if (!value.isString()) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
69
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
70
|
+
case hashString("unspecified"):
|
|
71
|
+
case hashString("external-content-link"):
|
|
72
|
+
case hashString("external-offer"):
|
|
73
|
+
return true;
|
|
74
|
+
default:
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
} // namespace margelo::nitro
|