react-native-iap 15.4.0-rc.3 → 15.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/README.md +23 -25
  2. package/android/src/main/java/com/margelo/nitro/iap/HybridRnIap.kt +250 -168
  3. package/android/src/main/java/com/margelo/nitro/iap/ProductSerialization.kt +98 -0
  4. package/ios/HybridRnIap.swift +19 -1
  5. package/ios/RnIapHelper.swift +30 -2
  6. package/lib/module/hooks/useIAP.js +19 -3
  7. package/lib/module/hooks/useIAP.js.map +1 -1
  8. package/lib/module/index.js +104 -18
  9. package/lib/module/index.js.map +1 -1
  10. package/lib/module/index.kepler.js +3 -0
  11. package/lib/module/index.kepler.js.map +1 -1
  12. package/lib/module/types.js +67 -6
  13. package/lib/module/types.js.map +1 -1
  14. package/lib/module/utils/type-bridge.js +22 -3
  15. package/lib/module/utils/type-bridge.js.map +1 -1
  16. package/lib/module/vega-adapter.js +24 -2
  17. package/lib/module/vega-adapter.js.map +1 -1
  18. package/lib/typescript/src/hooks/useIAP.d.ts +25 -2
  19. package/lib/typescript/src/hooks/useIAP.d.ts.map +1 -1
  20. package/lib/typescript/src/index.d.ts +50 -10
  21. package/lib/typescript/src/index.d.ts.map +1 -1
  22. package/lib/typescript/src/index.kepler.d.ts +3 -0
  23. package/lib/typescript/src/index.kepler.d.ts.map +1 -1
  24. package/lib/typescript/src/specs/RnIap.nitro.d.ts +79 -9
  25. package/lib/typescript/src/specs/RnIap.nitro.d.ts.map +1 -1
  26. package/lib/typescript/src/types.d.ts +223 -35
  27. package/lib/typescript/src/types.d.ts.map +1 -1
  28. package/lib/typescript/src/utils/type-bridge.d.ts.map +1 -1
  29. package/lib/typescript/src/vega-adapter.d.ts.map +1 -1
  30. package/nitrogen/generated/android/NitroIap+autolinking.cmake +3 -0
  31. package/nitrogen/generated/android/c++/JBillingChoiceImageLayoutAndroid.hpp +61 -0
  32. package/nitrogen/generated/android/c++/JBillingChoiceScreenTypeAndroid.hpp +61 -0
  33. package/nitrogen/generated/android/c++/JBillingProgramAndroid.hpp +3 -0
  34. package/nitrogen/generated/android/c++/JDeveloperBillingLaunchModeAndroid.hpp +61 -0
  35. package/nitrogen/generated/android/c++/JDeveloperBillingOptionParamsAndroid.hpp +78 -0
  36. package/nitrogen/generated/android/c++/JDeveloperBillingTypeAndroid.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingDetailsAndroid.hpp +45 -5
  38. package/nitrogen/generated/android/c++/JDeveloperProvidedBillingProductAndroid.hpp +72 -0
  39. package/nitrogen/generated/android/c++/JFunc_void_DeveloperProvidedBillingDetailsAndroid.hpp +10 -0
  40. package/nitrogen/generated/android/c++/JHybridRnIapSpec.cpp +118 -3
  41. package/nitrogen/generated/android/c++/JHybridRnIapSpec.hpp +4 -1
  42. package/nitrogen/generated/android/c++/JInAppMessageCategoryAndroid.hpp +58 -0
  43. package/nitrogen/generated/android/c++/JInAppMessageResponseCodeAndroid.hpp +58 -0
  44. package/nitrogen/generated/android/c++/JInitConnectionConfig.hpp +7 -1
  45. package/nitrogen/generated/android/c++/JNitroBillingChoiceInfoAndroid.hpp +66 -0
  46. package/nitrogen/generated/android/c++/JNitroBillingProgramAvailabilityResultAndroid.hpp +18 -3
  47. package/nitrogen/generated/android/c++/JNitroBillingProgramInformationDialogParamsAndroid.hpp +63 -0
  48. package/nitrogen/generated/android/c++/JNitroBillingResultAndroid.hpp +72 -0
  49. package/nitrogen/generated/android/c++/JNitroGetBillingChoiceInfoParamsAndroid.hpp +74 -0
  50. package/nitrogen/generated/android/c++/JNitroInAppMessageParamsAndroid.hpp +64 -0
  51. package/nitrogen/generated/android/c++/JNitroInAppMessageResultAndroid.hpp +68 -0
  52. package/nitrogen/generated/android/c++/JNitroLaunchExternalLinkParamsAndroid.hpp +10 -1
  53. package/nitrogen/generated/android/c++/JNitroOneTimePurchaseOfferDetail.hpp +5 -1
  54. package/nitrogen/generated/android/c++/JNitroProduct.hpp +13 -1
  55. package/nitrogen/generated/android/c++/JNitroPurchaseRequest.hpp +7 -0
  56. package/nitrogen/generated/android/c++/JNitroRequestPurchaseAndroid.hpp +16 -1
  57. package/nitrogen/generated/android/c++/JProductType.hpp +58 -0
  58. package/nitrogen/generated/android/c++/JSubResponseCodeAndroid.hpp +61 -0
  59. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.cpp +35 -0
  60. package/nitrogen/generated/android/c++/JVariant_NullType_Array_InAppMessageCategoryAndroid_.hpp +81 -0
  61. package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.cpp +26 -0
  62. package/nitrogen/generated/android/c++/JVariant_NullType_DeveloperBillingOptionParamsAndroid.hpp +78 -0
  63. package/nitrogen/generated/android/c++/JVariant_NullType_InitConnectionConfig.hpp +2 -0
  64. package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.cpp +26 -0
  65. package/nitrogen/generated/android/c++/JVariant_NullType_NitroInAppMessageParamsAndroid.hpp +76 -0
  66. package/nitrogen/generated/android/c++/JVariant_NullType_NitroRequestPurchaseAndroid.hpp +7 -0
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceImageLayoutAndroid.kt +24 -0
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingChoiceScreenTypeAndroid.kt +24 -0
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/BillingProgramAndroid.kt +2 -1
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingLaunchModeAndroid.kt +24 -0
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingOptionParamsAndroid.kt +47 -0
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperBillingTypeAndroid.kt +24 -0
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingDetailsAndroid.kt +13 -4
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/DeveloperProvidedBillingProductAndroid.kt +44 -0
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/HybridRnIapSpec.kt +13 -1
  76. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageCategoryAndroid.kt +23 -0
  77. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InAppMessageResponseCodeAndroid.kt +23 -0
  78. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/InitConnectionConfig.kt +5 -2
  79. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingChoiceInfoAndroid.kt +41 -0
  80. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramAvailabilityResultAndroid.kt +10 -4
  81. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingProgramInformationDialogParamsAndroid.kt +41 -0
  82. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroBillingResultAndroid.kt +44 -0
  83. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroGetBillingChoiceInfoParamsAndroid.kt +44 -0
  84. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageParamsAndroid.kt +38 -0
  85. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroInAppMessageResultAndroid.kt +41 -0
  86. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroLaunchExternalLinkParamsAndroid.kt +6 -3
  87. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroOneTimePurchaseOfferDetail.kt +5 -2
  88. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroProduct.kt +11 -2
  89. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/NitroRequestPurchaseAndroid.kt +8 -2
  90. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/ProductType.kt +23 -0
  91. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/SubResponseCodeAndroid.kt +24 -0
  92. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_Array_InAppMessageCategoryAndroid_.kt +53 -0
  93. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_DeveloperBillingOptionParamsAndroid.kt +53 -0
  94. package/nitrogen/generated/android/kotlin/com/margelo/nitro/iap/Variant_NullType_NitroInAppMessageParamsAndroid.kt +53 -0
  95. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.cpp +24 -0
  96. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Bridge.hpp +382 -0
  97. package/nitrogen/generated/ios/NitroIap-Swift-Cxx-Umbrella.hpp +48 -0
  98. package/nitrogen/generated/ios/c++/HybridRnIapSpecSwift.hpp +74 -2
  99. package/nitrogen/generated/ios/swift/BillingChoiceImageLayoutAndroid.swift +44 -0
  100. package/nitrogen/generated/ios/swift/BillingChoiceScreenTypeAndroid.swift +44 -0
  101. package/nitrogen/generated/ios/swift/BillingProgramAndroid.swift +4 -0
  102. package/nitrogen/generated/ios/swift/DeveloperBillingLaunchModeAndroid.swift +44 -0
  103. package/nitrogen/generated/ios/swift/DeveloperBillingOptionParamsAndroid.swift +114 -0
  104. package/nitrogen/generated/ios/swift/DeveloperBillingTypeAndroid.swift +44 -0
  105. package/nitrogen/generated/ios/swift/DeveloperProvidedBillingDetailsAndroid.swift +121 -4
  106. package/nitrogen/generated/ios/swift/DeveloperProvidedBillingProductAndroid.swift +71 -0
  107. package/nitrogen/generated/ios/swift/Func_void_NitroBillingChoiceInfoAndroid.swift +46 -0
  108. package/nitrogen/generated/ios/swift/Func_void_NitroBillingResultAndroid.swift +46 -0
  109. package/nitrogen/generated/ios/swift/Func_void_NitroInAppMessageResultAndroid.swift +46 -0
  110. package/nitrogen/generated/ios/swift/HybridRnIapSpec.swift +4 -1
  111. package/nitrogen/generated/ios/swift/HybridRnIapSpec_cxx.swift +78 -2
  112. package/nitrogen/generated/ios/swift/InAppMessageCategoryAndroid.swift +40 -0
  113. package/nitrogen/generated/ios/swift/InAppMessageResponseCodeAndroid.swift +40 -0
  114. package/nitrogen/generated/ios/swift/InitConnectionConfig.swift +12 -1
  115. package/nitrogen/generated/ios/swift/NitroBillingChoiceInfoAndroid.swift +66 -0
  116. package/nitrogen/generated/ios/swift/NitroBillingProgramAvailabilityResultAndroid.swift +50 -2
  117. package/nitrogen/generated/ios/swift/NitroBillingProgramInformationDialogParamsAndroid.swift +34 -0
  118. package/nitrogen/generated/ios/swift/NitroBillingResultAndroid.swift +77 -0
  119. package/nitrogen/generated/ios/swift/NitroGetBillingChoiceInfoParamsAndroid.swift +71 -0
  120. package/nitrogen/generated/ios/swift/NitroInAppMessageParamsAndroid.swift +67 -0
  121. package/nitrogen/generated/ios/swift/NitroInAppMessageResultAndroid.swift +66 -0
  122. package/nitrogen/generated/ios/swift/NitroLaunchExternalLinkParamsAndroid.swift +39 -2
  123. package/nitrogen/generated/ios/swift/NitroOneTimePurchaseOfferDetail.swift +39 -2
  124. package/nitrogen/generated/ios/swift/NitroProduct.swift +113 -2
  125. package/nitrogen/generated/ios/swift/NitroRequestPurchaseAndroid.swift +75 -1
  126. package/nitrogen/generated/ios/swift/ProductType.swift +40 -0
  127. package/nitrogen/generated/ios/swift/SubResponseCodeAndroid.swift +44 -0
  128. package/nitrogen/generated/ios/swift/Variant_NullType_DeveloperBillingOptionParamsAndroid.swift +18 -0
  129. package/nitrogen/generated/ios/swift/Variant_NullType_NitroInAppMessageParamsAndroid.swift +18 -0
  130. package/nitrogen/generated/ios/swift/Variant_NullType__InAppMessageCategoryAndroid_.swift +18 -0
  131. package/nitrogen/generated/shared/c++/BillingChoiceImageLayoutAndroid.hpp +80 -0
  132. package/nitrogen/generated/shared/c++/BillingChoiceScreenTypeAndroid.hpp +80 -0
  133. package/nitrogen/generated/shared/c++/BillingProgramAndroid.hpp +4 -0
  134. package/nitrogen/generated/shared/c++/DeveloperBillingLaunchModeAndroid.hpp +80 -0
  135. package/nitrogen/generated/shared/c++/DeveloperBillingOptionParamsAndroid.hpp +103 -0
  136. package/nitrogen/generated/shared/c++/DeveloperBillingTypeAndroid.hpp +80 -0
  137. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingDetailsAndroid.hpp +24 -6
  138. package/nitrogen/generated/shared/c++/DeveloperProvidedBillingProductAndroid.hpp +96 -0
  139. package/nitrogen/generated/shared/c++/HybridRnIapSpec.cpp +3 -0
  140. package/nitrogen/generated/shared/c++/HybridRnIapSpec.hpp +25 -1
  141. package/nitrogen/generated/shared/c++/InAppMessageCategoryAndroid.hpp +76 -0
  142. package/nitrogen/generated/shared/c++/InAppMessageResponseCodeAndroid.hpp +76 -0
  143. package/nitrogen/generated/shared/c++/InitConnectionConfig.hpp +8 -1
  144. package/nitrogen/generated/shared/c++/NitroBillingChoiceInfoAndroid.hpp +90 -0
  145. package/nitrogen/generated/shared/c++/NitroBillingProgramAvailabilityResultAndroid.hpp +16 -2
  146. package/nitrogen/generated/shared/c++/NitroBillingProgramInformationDialogParamsAndroid.hpp +89 -0
  147. package/nitrogen/generated/shared/c++/NitroBillingResultAndroid.hpp +96 -0
  148. package/nitrogen/generated/shared/c++/NitroGetBillingChoiceInfoParamsAndroid.hpp +99 -0
  149. package/nitrogen/generated/shared/c++/NitroInAppMessageParamsAndroid.hpp +88 -0
  150. package/nitrogen/generated/shared/c++/NitroInAppMessageResultAndroid.hpp +92 -0
  151. package/nitrogen/generated/shared/c++/NitroLaunchExternalLinkParamsAndroid.hpp +9 -2
  152. package/nitrogen/generated/shared/c++/NitroOneTimePurchaseOfferDetail.hpp +5 -1
  153. package/nitrogen/generated/shared/c++/NitroProduct.hpp +13 -1
  154. package/nitrogen/generated/shared/c++/NitroRequestPurchaseAndroid.hpp +12 -1
  155. package/nitrogen/generated/shared/c++/ProductType.hpp +76 -0
  156. package/nitrogen/generated/shared/c++/SubResponseCodeAndroid.hpp +80 -0
  157. package/openiap-versions.json +3 -3
  158. package/package.json +1 -1
  159. package/src/hooks/useIAP.ts +63 -0
  160. package/src/index.kepler.ts +9 -0
  161. package/src/index.ts +223 -95
  162. package/src/specs/RnIap.nitro.ts +116 -8
  163. package/src/types.ts +238 -35
  164. package/src/utils/type-bridge.ts +26 -2
  165. package/src/vega-adapter.ts +46 -11
@@ -18,12 +18,129 @@ public extension DeveloperProvidedBillingDetailsAndroid {
18
18
  /**
19
19
  * Create a new instance of `DeveloperProvidedBillingDetailsAndroid`.
20
20
  */
21
- init(externalTransactionToken: String) {
22
- self.init(std.string(externalTransactionToken))
21
+ init(externalTransactionToken: Variant_NullType_String?, linkUri: Variant_NullType_String?, originalExternalTransactionId: Variant_NullType_String?, products: [DeveloperProvidedBillingProductAndroid]) {
22
+ self.init({ () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
23
+ if let __unwrappedValue = externalTransactionToken {
24
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
25
+ switch __unwrappedValue {
26
+ case .first(let __value):
27
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
28
+ case .second(let __value):
29
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
30
+ }
31
+ }().variant)
32
+ } else {
33
+ return .init()
34
+ }
35
+ }(), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
36
+ if let __unwrappedValue = linkUri {
37
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
38
+ switch __unwrappedValue {
39
+ case .first(let __value):
40
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
41
+ case .second(let __value):
42
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
43
+ }
44
+ }().variant)
45
+ } else {
46
+ return .init()
47
+ }
48
+ }(), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
49
+ if let __unwrappedValue = originalExternalTransactionId {
50
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
51
+ switch __unwrappedValue {
52
+ case .first(let __value):
53
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
54
+ case .second(let __value):
55
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
56
+ }
57
+ }().variant)
58
+ } else {
59
+ return .init()
60
+ }
61
+ }(), { () -> bridge.std__vector_DeveloperProvidedBillingProductAndroid_ in
62
+ var __vector = bridge.create_std__vector_DeveloperProvidedBillingProductAndroid_(products.count)
63
+ for __item in products {
64
+ __vector.push_back(__item)
65
+ }
66
+ return __vector
67
+ }())
23
68
  }
24
69
 
25
70
  @inline(__always)
26
- var externalTransactionToken: String {
27
- return String(self.__externalTransactionToken)
71
+ var externalTransactionToken: Variant_NullType_String? {
72
+ return { () -> Variant_NullType_String? in
73
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__externalTransactionToken) {
74
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__externalTransactionToken)
75
+ return { () -> Variant_NullType_String in
76
+ let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
77
+ switch __variant.index() {
78
+ case 0:
79
+ let __actual = __variant.get_0()
80
+ return .first(NullType.null)
81
+ case 1:
82
+ let __actual = __variant.get_1()
83
+ return .second(String(__actual))
84
+ default:
85
+ fatalError("Variant can never have index \(__variant.index())!")
86
+ }
87
+ }()
88
+ } else {
89
+ return nil
90
+ }
91
+ }()
92
+ }
93
+
94
+ @inline(__always)
95
+ var linkUri: Variant_NullType_String? {
96
+ return { () -> Variant_NullType_String? in
97
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__linkUri) {
98
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__linkUri)
99
+ return { () -> Variant_NullType_String in
100
+ let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
101
+ switch __variant.index() {
102
+ case 0:
103
+ let __actual = __variant.get_0()
104
+ return .first(NullType.null)
105
+ case 1:
106
+ let __actual = __variant.get_1()
107
+ return .second(String(__actual))
108
+ default:
109
+ fatalError("Variant can never have index \(__variant.index())!")
110
+ }
111
+ }()
112
+ } else {
113
+ return nil
114
+ }
115
+ }()
116
+ }
117
+
118
+ @inline(__always)
119
+ var originalExternalTransactionId: Variant_NullType_String? {
120
+ return { () -> Variant_NullType_String? in
121
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__originalExternalTransactionId) {
122
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__originalExternalTransactionId)
123
+ return { () -> Variant_NullType_String in
124
+ let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
125
+ switch __variant.index() {
126
+ case 0:
127
+ let __actual = __variant.get_0()
128
+ return .first(NullType.null)
129
+ case 1:
130
+ let __actual = __variant.get_1()
131
+ return .second(String(__actual))
132
+ default:
133
+ fatalError("Variant can never have index \(__variant.index())!")
134
+ }
135
+ }()
136
+ } else {
137
+ return nil
138
+ }
139
+ }()
140
+ }
141
+
142
+ @inline(__always)
143
+ var products: [DeveloperProvidedBillingProductAndroid] {
144
+ return self.__products.map({ __item in __item })
28
145
  }
29
146
  }
@@ -0,0 +1,71 @@
1
+ ///
2
+ /// DeveloperProvidedBillingProductAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `DeveloperProvidedBillingProductAndroid`, backed by a C++ struct.
12
+ */
13
+ public typealias DeveloperProvidedBillingProductAndroid = margelo.nitro.iap.DeveloperProvidedBillingProductAndroid
14
+
15
+ public extension DeveloperProvidedBillingProductAndroid {
16
+ private typealias bridge = margelo.nitro.iap.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `DeveloperProvidedBillingProductAndroid`.
20
+ */
21
+ init(id: String, offerToken: Variant_NullType_String?, type: ProductType) {
22
+ self.init(std.string(id), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
23
+ if let __unwrappedValue = offerToken {
24
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
25
+ switch __unwrappedValue {
26
+ case .first(let __value):
27
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
28
+ case .second(let __value):
29
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
30
+ }
31
+ }().variant)
32
+ } else {
33
+ return .init()
34
+ }
35
+ }(), type)
36
+ }
37
+
38
+ @inline(__always)
39
+ var id: String {
40
+ return String(self.__id)
41
+ }
42
+
43
+ @inline(__always)
44
+ var offerToken: Variant_NullType_String? {
45
+ return { () -> Variant_NullType_String? in
46
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__offerToken) {
47
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__offerToken)
48
+ return { () -> Variant_NullType_String in
49
+ let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
50
+ switch __variant.index() {
51
+ case 0:
52
+ let __actual = __variant.get_0()
53
+ return .first(NullType.null)
54
+ case 1:
55
+ let __actual = __variant.get_1()
56
+ return .second(String(__actual))
57
+ default:
58
+ fatalError("Variant can never have index \(__variant.index())!")
59
+ }
60
+ }()
61
+ } else {
62
+ return nil
63
+ }
64
+ }()
65
+ }
66
+
67
+ @inline(__always)
68
+ var type: ProductType {
69
+ return self.__type
70
+ }
71
+ }
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// Func_void_NitroBillingChoiceInfoAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: NitroBillingChoiceInfoAndroid) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_NitroBillingChoiceInfoAndroid {
15
+ public typealias bridge = margelo.nitro.iap.bridge.swift
16
+
17
+ private let closure: (_ value: NitroBillingChoiceInfoAndroid) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: NitroBillingChoiceInfoAndroid) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: NitroBillingChoiceInfoAndroid) -> Void {
25
+ self.closure(value)
26
+ }
27
+
28
+ /**
29
+ * Casts this instance to a retained unsafe raw pointer.
30
+ * This acquires one additional strong reference on the object!
31
+ */
32
+ @inline(__always)
33
+ public func toUnsafe() -> UnsafeMutableRawPointer {
34
+ return Unmanaged.passRetained(self).toOpaque()
35
+ }
36
+
37
+ /**
38
+ * Casts an unsafe pointer to a `Func_void_NitroBillingChoiceInfoAndroid`.
39
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_NitroBillingChoiceInfoAndroid>`.
40
+ * This removes one strong reference from the object!
41
+ */
42
+ @inline(__always)
43
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_NitroBillingChoiceInfoAndroid {
44
+ return Unmanaged<Func_void_NitroBillingChoiceInfoAndroid>.fromOpaque(pointer).takeRetainedValue()
45
+ }
46
+ }
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// Func_void_NitroBillingResultAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: NitroBillingResultAndroid) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_NitroBillingResultAndroid {
15
+ public typealias bridge = margelo.nitro.iap.bridge.swift
16
+
17
+ private let closure: (_ value: NitroBillingResultAndroid) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: NitroBillingResultAndroid) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: NitroBillingResultAndroid) -> Void {
25
+ self.closure(value)
26
+ }
27
+
28
+ /**
29
+ * Casts this instance to a retained unsafe raw pointer.
30
+ * This acquires one additional strong reference on the object!
31
+ */
32
+ @inline(__always)
33
+ public func toUnsafe() -> UnsafeMutableRawPointer {
34
+ return Unmanaged.passRetained(self).toOpaque()
35
+ }
36
+
37
+ /**
38
+ * Casts an unsafe pointer to a `Func_void_NitroBillingResultAndroid`.
39
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_NitroBillingResultAndroid>`.
40
+ * This removes one strong reference from the object!
41
+ */
42
+ @inline(__always)
43
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_NitroBillingResultAndroid {
44
+ return Unmanaged<Func_void_NitroBillingResultAndroid>.fromOpaque(pointer).takeRetainedValue()
45
+ }
46
+ }
@@ -0,0 +1,46 @@
1
+ ///
2
+ /// Func_void_NitroInAppMessageResultAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Wraps a Swift `(_ value: NitroInAppMessageResultAndroid) -> Void` as a class.
12
+ * This class can be used from C++, e.g. to wrap the Swift closure as a `std::function`.
13
+ */
14
+ public final class Func_void_NitroInAppMessageResultAndroid {
15
+ public typealias bridge = margelo.nitro.iap.bridge.swift
16
+
17
+ private let closure: (_ value: NitroInAppMessageResultAndroid) -> Void
18
+
19
+ public init(_ closure: @escaping (_ value: NitroInAppMessageResultAndroid) -> Void) {
20
+ self.closure = closure
21
+ }
22
+
23
+ @inline(__always)
24
+ public func call(value: NitroInAppMessageResultAndroid) -> Void {
25
+ self.closure(value)
26
+ }
27
+
28
+ /**
29
+ * Casts this instance to a retained unsafe raw pointer.
30
+ * This acquires one additional strong reference on the object!
31
+ */
32
+ @inline(__always)
33
+ public func toUnsafe() -> UnsafeMutableRawPointer {
34
+ return Unmanaged.passRetained(self).toOpaque()
35
+ }
36
+
37
+ /**
38
+ * Casts an unsafe pointer to a `Func_void_NitroInAppMessageResultAndroid`.
39
+ * The pointer has to be a retained opaque `Unmanaged<Func_void_NitroInAppMessageResultAndroid>`.
40
+ * This removes one strong reference from the object!
41
+ */
42
+ @inline(__always)
43
+ public static func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> Func_void_NitroInAppMessageResultAndroid {
44
+ return Unmanaged<Func_void_NitroInAppMessageResultAndroid>.fromOpaque(pointer).takeRetainedValue()
45
+ }
46
+ }
@@ -64,7 +64,10 @@ public protocol HybridRnIapSpec_protocol: HybridObject {
64
64
  func removeSubscriptionBillingIssueListener(listener: @escaping (_ purchase: NitroPurchase) -> Void) throws -> Void
65
65
  func enableBillingProgramAndroid(program: BillingProgramAndroid) throws -> Void
66
66
  func isBillingProgramAvailableAndroid(program: BillingProgramAndroid) throws -> Promise<NitroBillingProgramAvailabilityResultAndroid>
67
- func createBillingProgramReportingDetailsAndroid(program: BillingProgramAndroid) throws -> Promise<NitroBillingProgramReportingDetailsAndroid>
67
+ func getBillingChoiceInfoAndroid(params: NitroGetBillingChoiceInfoParamsAndroid) throws -> Promise<NitroBillingChoiceInfoAndroid>
68
+ func createBillingProgramReportingDetailsAndroid(program: BillingProgramAndroid, developerBillingType: DeveloperBillingTypeAndroid?) throws -> Promise<NitroBillingProgramReportingDetailsAndroid>
69
+ func showBillingProgramInformationDialogAndroid(params: NitroBillingProgramInformationDialogParamsAndroid) throws -> Promise<NitroBillingResultAndroid>
70
+ func showInAppMessagesAndroid(params: Variant_NullType_NitroInAppMessageParamsAndroid?) throws -> Promise<NitroInAppMessageResultAndroid>
68
71
  func launchExternalLinkAndroid(params: NitroLaunchExternalLinkParamsAndroid) throws -> Promise<Bool>
69
72
  func canPresentExternalPurchaseNoticeIOS() throws -> Promise<Bool>
70
73
  func presentExternalPurchaseNoticeSheetIOS() throws -> Promise<ExternalPurchaseNoticeResultIOS>
@@ -1241,9 +1241,28 @@ open class HybridRnIapSpec_cxx {
1241
1241
  }
1242
1242
 
1243
1243
  @inline(__always)
1244
- public final func createBillingProgramReportingDetailsAndroid(program: Int32) -> bridge.Result_std__shared_ptr_Promise_NitroBillingProgramReportingDetailsAndroid___ {
1244
+ public final func getBillingChoiceInfoAndroid(params: NitroGetBillingChoiceInfoParamsAndroid) -> bridge.Result_std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid___ {
1245
1245
  do {
1246
- let __result = try self.__implementation.createBillingProgramReportingDetailsAndroid(program: margelo.nitro.iap.BillingProgramAndroid(rawValue: program)!)
1246
+ let __result = try self.__implementation.getBillingChoiceInfoAndroid(params: params)
1247
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid__ in
1248
+ let __promise = bridge.create_std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid__()
1249
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid__(__promise)
1250
+ __result
1251
+ .then({ __result in __promiseHolder.resolve(__result) })
1252
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
1253
+ return __promise
1254
+ }()
1255
+ return bridge.create_Result_std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid___(__resultCpp)
1256
+ } catch (let __error) {
1257
+ let __exceptionPtr = __error.toCpp()
1258
+ return bridge.create_Result_std__shared_ptr_Promise_NitroBillingChoiceInfoAndroid___(__exceptionPtr)
1259
+ }
1260
+ }
1261
+
1262
+ @inline(__always)
1263
+ public final func createBillingProgramReportingDetailsAndroid(program: Int32, developerBillingType: bridge.std__optional_DeveloperBillingTypeAndroid_) -> bridge.Result_std__shared_ptr_Promise_NitroBillingProgramReportingDetailsAndroid___ {
1264
+ do {
1265
+ let __result = try self.__implementation.createBillingProgramReportingDetailsAndroid(program: margelo.nitro.iap.BillingProgramAndroid(rawValue: program)!, developerBillingType: developerBillingType.value)
1247
1266
  let __resultCpp = { () -> bridge.std__shared_ptr_Promise_NitroBillingProgramReportingDetailsAndroid__ in
1248
1267
  let __promise = bridge.create_std__shared_ptr_Promise_NitroBillingProgramReportingDetailsAndroid__()
1249
1268
  let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_NitroBillingProgramReportingDetailsAndroid__(__promise)
@@ -1259,6 +1278,63 @@ open class HybridRnIapSpec_cxx {
1259
1278
  }
1260
1279
  }
1261
1280
 
1281
+ @inline(__always)
1282
+ public final func showBillingProgramInformationDialogAndroid(params: NitroBillingProgramInformationDialogParamsAndroid) -> bridge.Result_std__shared_ptr_Promise_NitroBillingResultAndroid___ {
1283
+ do {
1284
+ let __result = try self.__implementation.showBillingProgramInformationDialogAndroid(params: params)
1285
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_NitroBillingResultAndroid__ in
1286
+ let __promise = bridge.create_std__shared_ptr_Promise_NitroBillingResultAndroid__()
1287
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_NitroBillingResultAndroid__(__promise)
1288
+ __result
1289
+ .then({ __result in __promiseHolder.resolve(__result) })
1290
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
1291
+ return __promise
1292
+ }()
1293
+ return bridge.create_Result_std__shared_ptr_Promise_NitroBillingResultAndroid___(__resultCpp)
1294
+ } catch (let __error) {
1295
+ let __exceptionPtr = __error.toCpp()
1296
+ return bridge.create_Result_std__shared_ptr_Promise_NitroBillingResultAndroid___(__exceptionPtr)
1297
+ }
1298
+ }
1299
+
1300
+ @inline(__always)
1301
+ public final func showInAppMessagesAndroid(params: bridge.std__optional_std__variant_nitro__NullType__NitroInAppMessageParamsAndroid__) -> bridge.Result_std__shared_ptr_Promise_NitroInAppMessageResultAndroid___ {
1302
+ do {
1303
+ let __result = try self.__implementation.showInAppMessagesAndroid(params: { () -> Variant_NullType_NitroInAppMessageParamsAndroid? in
1304
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__NitroInAppMessageParamsAndroid__(params) {
1305
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__NitroInAppMessageParamsAndroid__(params)
1306
+ return { () -> Variant_NullType_NitroInAppMessageParamsAndroid in
1307
+ let __variant = bridge.std__variant_nitro__NullType__NitroInAppMessageParamsAndroid_(__unwrapped)
1308
+ switch __variant.index() {
1309
+ case 0:
1310
+ let __actual = __variant.get_0()
1311
+ return .first(NullType.null)
1312
+ case 1:
1313
+ let __actual = __variant.get_1()
1314
+ return .second(__actual)
1315
+ default:
1316
+ fatalError("Variant can never have index \(__variant.index())!")
1317
+ }
1318
+ }()
1319
+ } else {
1320
+ return nil
1321
+ }
1322
+ }())
1323
+ let __resultCpp = { () -> bridge.std__shared_ptr_Promise_NitroInAppMessageResultAndroid__ in
1324
+ let __promise = bridge.create_std__shared_ptr_Promise_NitroInAppMessageResultAndroid__()
1325
+ let __promiseHolder = bridge.wrap_std__shared_ptr_Promise_NitroInAppMessageResultAndroid__(__promise)
1326
+ __result
1327
+ .then({ __result in __promiseHolder.resolve(__result) })
1328
+ .catch({ __error in __promiseHolder.reject(__error.toCpp()) })
1329
+ return __promise
1330
+ }()
1331
+ return bridge.create_Result_std__shared_ptr_Promise_NitroInAppMessageResultAndroid___(__resultCpp)
1332
+ } catch (let __error) {
1333
+ let __exceptionPtr = __error.toCpp()
1334
+ return bridge.create_Result_std__shared_ptr_Promise_NitroInAppMessageResultAndroid___(__exceptionPtr)
1335
+ }
1336
+ }
1337
+
1262
1338
  @inline(__always)
1263
1339
  public final func launchExternalLinkAndroid(params: NitroLaunchExternalLinkParamsAndroid) -> bridge.Result_std__shared_ptr_Promise_bool___ {
1264
1340
  do {
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// InAppMessageCategoryAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `InAppMessageCategoryAndroid`, backed by a C++ enum.
10
+ */
11
+ public typealias InAppMessageCategoryAndroid = margelo.nitro.iap.InAppMessageCategoryAndroid
12
+
13
+ public extension InAppMessageCategoryAndroid {
14
+ /**
15
+ * Get a InAppMessageCategoryAndroid for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "unknown-in-app-message-category-id":
21
+ self = .unknownInAppMessageCategoryId
22
+ case "transactional":
23
+ self = .transactional
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this InAppMessageCategoryAndroid represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .unknownInAppMessageCategoryId:
35
+ return "unknown-in-app-message-category-id"
36
+ case .transactional:
37
+ return "transactional"
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// InAppMessageResponseCodeAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /**
9
+ * Represents the JS union `InAppMessageResponseCodeAndroid`, backed by a C++ enum.
10
+ */
11
+ public typealias InAppMessageResponseCodeAndroid = margelo.nitro.iap.InAppMessageResponseCodeAndroid
12
+
13
+ public extension InAppMessageResponseCodeAndroid {
14
+ /**
15
+ * Get a InAppMessageResponseCodeAndroid for the given String value, or
16
+ * return `nil` if the given value was invalid/unknown.
17
+ */
18
+ init?(fromString string: String) {
19
+ switch string {
20
+ case "no-action-needed":
21
+ self = .noActionNeeded
22
+ case "subscription-status-updated":
23
+ self = .subscriptionStatusUpdated
24
+ default:
25
+ return nil
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Get the String value this InAppMessageResponseCodeAndroid represents.
31
+ */
32
+ var stringValue: String {
33
+ switch self {
34
+ case .noActionNeeded:
35
+ return "no-action-needed"
36
+ case .subscriptionStatusUpdated:
37
+ return "subscription-status-updated"
38
+ }
39
+ }
40
+ }
@@ -18,13 +18,19 @@ public extension InitConnectionConfig {
18
18
  /**
19
19
  * Create a new instance of `InitConnectionConfig`.
20
20
  */
21
- init(alternativeBillingModeAndroid: AlternativeBillingModeAndroid?, enableBillingProgramAndroid: BillingProgramAndroid?) {
21
+ init(alternativeBillingModeAndroid: AlternativeBillingModeAndroid?, billingChoiceScreenTypeAndroid: BillingChoiceScreenTypeAndroid?, enableBillingProgramAndroid: BillingProgramAndroid?) {
22
22
  self.init({ () -> bridge.std__optional_AlternativeBillingModeAndroid_ in
23
23
  if let __unwrappedValue = alternativeBillingModeAndroid {
24
24
  return bridge.create_std__optional_AlternativeBillingModeAndroid_(__unwrappedValue)
25
25
  } else {
26
26
  return .init()
27
27
  }
28
+ }(), { () -> bridge.std__optional_BillingChoiceScreenTypeAndroid_ in
29
+ if let __unwrappedValue = billingChoiceScreenTypeAndroid {
30
+ return bridge.create_std__optional_BillingChoiceScreenTypeAndroid_(__unwrappedValue)
31
+ } else {
32
+ return .init()
33
+ }
28
34
  }(), { () -> bridge.std__optional_BillingProgramAndroid_ in
29
35
  if let __unwrappedValue = enableBillingProgramAndroid {
30
36
  return bridge.create_std__optional_BillingProgramAndroid_(__unwrappedValue)
@@ -39,6 +45,11 @@ public extension InitConnectionConfig {
39
45
  return self.__alternativeBillingModeAndroid.value
40
46
  }
41
47
 
48
+ @inline(__always)
49
+ var billingChoiceScreenTypeAndroid: BillingChoiceScreenTypeAndroid? {
50
+ return self.__billingChoiceScreenTypeAndroid.value
51
+ }
52
+
42
53
  @inline(__always)
43
54
  var enableBillingProgramAndroid: BillingProgramAndroid? {
44
55
  return self.__enableBillingProgramAndroid.value
@@ -0,0 +1,66 @@
1
+ ///
2
+ /// NitroBillingChoiceInfoAndroid.swift
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ import NitroModules
9
+
10
+ /**
11
+ * Represents an instance of `NitroBillingChoiceInfoAndroid`, backed by a C++ struct.
12
+ */
13
+ public typealias NitroBillingChoiceInfoAndroid = margelo.nitro.iap.NitroBillingChoiceInfoAndroid
14
+
15
+ public extension NitroBillingChoiceInfoAndroid {
16
+ private typealias bridge = margelo.nitro.iap.bridge.swift
17
+
18
+ /**
19
+ * Create a new instance of `NitroBillingChoiceInfoAndroid`.
20
+ */
21
+ init(playBillingChoiceImageUrl: String, playBillingLoyaltyInfo: Variant_NullType_String?) {
22
+ self.init(std.string(playBillingChoiceImageUrl), { () -> bridge.std__optional_std__variant_nitro__NullType__std__string__ in
23
+ if let __unwrappedValue = playBillingLoyaltyInfo {
24
+ return bridge.create_std__optional_std__variant_nitro__NullType__std__string__({ () -> bridge.std__variant_nitro__NullType__std__string_ in
25
+ switch __unwrappedValue {
26
+ case .first(let __value):
27
+ return bridge.create_std__variant_nitro__NullType__std__string_(margelo.nitro.NullType.null)
28
+ case .second(let __value):
29
+ return bridge.create_std__variant_nitro__NullType__std__string_(std.string(__value))
30
+ }
31
+ }().variant)
32
+ } else {
33
+ return .init()
34
+ }
35
+ }())
36
+ }
37
+
38
+ @inline(__always)
39
+ var playBillingChoiceImageUrl: String {
40
+ return String(self.__playBillingChoiceImageUrl)
41
+ }
42
+
43
+ @inline(__always)
44
+ var playBillingLoyaltyInfo: Variant_NullType_String? {
45
+ return { () -> Variant_NullType_String? in
46
+ if bridge.has_value_std__optional_std__variant_nitro__NullType__std__string__(self.__playBillingLoyaltyInfo) {
47
+ let __unwrapped = bridge.get_std__optional_std__variant_nitro__NullType__std__string__(self.__playBillingLoyaltyInfo)
48
+ return { () -> Variant_NullType_String in
49
+ let __variant = bridge.std__variant_nitro__NullType__std__string_(__unwrapped)
50
+ switch __variant.index() {
51
+ case 0:
52
+ let __actual = __variant.get_0()
53
+ return .first(NullType.null)
54
+ case 1:
55
+ let __actual = __variant.get_1()
56
+ return .second(String(__actual))
57
+ default:
58
+ fatalError("Variant can never have index \(__variant.index())!")
59
+ }
60
+ }()
61
+ } else {
62
+ return nil
63
+ }
64
+ }()
65
+ }
66
+ }