@gmisoftware/react-native-pay 0.0.4
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/NitroPay.podspec +31 -0
- package/README.md +455 -0
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +144 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +8 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/pay/Constants.kt +49 -0
- package/android/src/main/java/com/margelo/nitro/pay/GooglePayButtonFactory.kt +95 -0
- package/android/src/main/java/com/margelo/nitro/pay/GooglePayRequestBuilder.kt +170 -0
- package/android/src/main/java/com/margelo/nitro/pay/HybridGooglePayButton.kt +146 -0
- package/android/src/main/java/com/margelo/nitro/pay/HybridPaymentHandler.kt +184 -0
- package/android/src/main/java/com/margelo/nitro/pay/NitroPayPackage.kt +26 -0
- package/android/src/main/java/com/margelo/nitro/pay/PaymentMapper.kt +89 -0
- package/app.plugin.js +1 -0
- package/ios/ApplePayButtonFactory.swift +53 -0
- package/ios/Bridge.h +8 -0
- package/ios/HybridApplePayButton.swift +60 -0
- package/ios/HybridPaymentHandler.swift +248 -0
- package/ios/PassKitTypeMapper.swift +192 -0
- package/lib/hooks/index.d.ts +7 -0
- package/lib/hooks/index.js +10 -0
- package/lib/hooks/usePaymentCheckout.d.ts +95 -0
- package/lib/hooks/usePaymentCheckout.js +183 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +29 -0
- package/lib/plugin/index.d.ts +4 -0
- package/lib/plugin/index.js +10 -0
- package/lib/plugin/type.d.ts +4 -0
- package/lib/plugin/type.js +2 -0
- package/lib/plugin/withApplePay.d.ts +4 -0
- package/lib/plugin/withApplePay.js +32 -0
- package/lib/plugin/withGooglePay.d.ts +4 -0
- package/lib/plugin/withGooglePay.js +24 -0
- package/lib/specs/ApplePayButton.nitro.d.ts +13 -0
- package/lib/specs/ApplePayButton.nitro.js +2 -0
- package/lib/specs/GooglePayButton.nitro.d.ts +14 -0
- package/lib/specs/GooglePayButton.nitro.js +2 -0
- package/lib/specs/PaymentHandler.nitro.d.ts +10 -0
- package/lib/specs/PaymentHandler.nitro.js +2 -0
- package/lib/types/Contact.d.ts +51 -0
- package/lib/types/Contact.js +6 -0
- package/lib/types/Payment.d.ts +67 -0
- package/lib/types/Payment.js +6 -0
- package/lib/types/index.d.ts +2 -0
- package/lib/types/index.js +18 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/index.js +20 -0
- package/lib/utils/paymentHelpers.d.ts +144 -0
- package/lib/utils/paymentHelpers.js +190 -0
- package/nitro.json +30 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroPay+autolinking.cmake +87 -0
- package/nitrogen/generated/android/NitroPay+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroPayOnLoad.cpp +58 -0
- package/nitrogen/generated/android/NitroPayOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JCNContact.hpp +202 -0
- package/nitrogen/generated/android/c++/JCNContactType.hpp +59 -0
- package/nitrogen/generated/android/c++/JCNLabeledEmailAddress.hpp +62 -0
- package/nitrogen/generated/android/c++/JCNLabeledPhoneNumber.hpp +64 -0
- package/nitrogen/generated/android/c++/JCNLabeledPostalAddress.hpp +64 -0
- package/nitrogen/generated/android/c++/JCNPhoneNumber.hpp +57 -0
- package/nitrogen/generated/android/c++/JCNPostalAddress.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JGooglePayButtonTheme.hpp +59 -0
- package/nitrogen/generated/android/c++/JGooglePayButtonType.hpp +77 -0
- package/nitrogen/generated/android/c++/JGooglePayEnvironment.hpp +59 -0
- package/nitrogen/generated/android/c++/JHybridGooglePayButtonSpec.cpp +96 -0
- package/nitrogen/generated/android/c++/JHybridGooglePayButtonSpec.hpp +71 -0
- package/nitrogen/generated/android/c++/JHybridPaymentHandlerSpec.cpp +154 -0
- package/nitrogen/generated/android/c++/JHybridPaymentHandlerSpec.hpp +66 -0
- package/nitrogen/generated/android/c++/JPKSecureElementPass.hpp +96 -0
- package/nitrogen/generated/android/c++/JPassActivationState.hpp +68 -0
- package/nitrogen/generated/android/c++/JPayServiceStatus.hpp +61 -0
- package/nitrogen/generated/android/c++/JPaymentItem.hpp +67 -0
- package/nitrogen/generated/android/c++/JPaymentItemType.hpp +59 -0
- package/nitrogen/generated/android/c++/JPaymentMethod.hpp +97 -0
- package/nitrogen/generated/android/c++/JPaymentMethodType.hpp +68 -0
- package/nitrogen/generated/android/c++/JPaymentNetwork.hpp +86 -0
- package/nitrogen/generated/android/c++/JPaymentRequest.hpp +181 -0
- package/nitrogen/generated/android/c++/JPaymentResult.hpp +97 -0
- package/nitrogen/generated/android/c++/JPaymentToken.hpp +91 -0
- package/nitrogen/generated/android/c++/views/JHybridGooglePayButtonStateUpdater.cpp +68 -0
- package/nitrogen/generated/android/c++/views/JHybridGooglePayButtonStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNContact.kt +96 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNContactType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledEmailAddress.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledPhoneNumber.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNLabeledPostalAddress.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNPhoneNumber.kt +36 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/CNPostalAddress.kt +51 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayButtonTheme.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayButtonType.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/GooglePayEnvironment.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/HybridGooglePayButtonSpec.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/HybridPaymentHandlerSpec.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/NitroPayOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PKSecureElementPass.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PassActivationState.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PayServiceStatus.kt +39 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentItem.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentItemType.kt +21 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentMethod.kt +48 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentMethodType.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentNetwork.kt +30 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentRequest.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentResult.kt +45 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/PaymentToken.kt +42 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/views/HybridGooglePayButtonManager.kt +50 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/pay/views/HybridGooglePayButtonStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/NitroPay+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Bridge.cpp +73 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Bridge.hpp +415 -0
- package/nitrogen/generated/ios/NitroPay-Swift-Cxx-Umbrella.hpp +116 -0
- package/nitrogen/generated/ios/NitroPayAutolinking.mm +41 -0
- package/nitrogen/generated/ios/NitroPayAutolinking.swift +40 -0
- package/nitrogen/generated/ios/c++/HybridApplePayButtonSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridApplePayButtonSpecSwift.hpp +92 -0
- package/nitrogen/generated/ios/c++/HybridPaymentHandlerSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridPaymentHandlerSpecSwift.hpp +148 -0
- package/nitrogen/generated/ios/c++/views/HybridApplePayButtonComponent.mm +106 -0
- package/nitrogen/generated/ios/swift/ApplePayButtonStyle.swift +44 -0
- package/nitrogen/generated/ios/swift/ApplePayButtonType.swift +84 -0
- package/nitrogen/generated/ios/swift/CNContact.swift +329 -0
- package/nitrogen/generated/ios/swift/CNContactType.swift +40 -0
- package/nitrogen/generated/ios/swift/CNLabeledEmailAddress.swift +65 -0
- package/nitrogen/generated/ios/swift/CNLabeledPhoneNumber.swift +65 -0
- package/nitrogen/generated/ios/swift/CNLabeledPostalAddress.swift +65 -0
- package/nitrogen/generated/ios/swift/CNPhoneNumber.swift +35 -0
- package/nitrogen/generated/ios/swift/CNPostalAddress.swift +204 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_PaymentResult.swift +47 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +47 -0
- package/nitrogen/generated/ios/swift/GooglePayEnvironment.swift +40 -0
- package/nitrogen/generated/ios/swift/HybridApplePayButtonSpec.swift +51 -0
- package/nitrogen/generated/ios/swift/HybridApplePayButtonSpec_cxx.swift +175 -0
- package/nitrogen/generated/ios/swift/HybridPaymentHandlerSpec.swift +52 -0
- package/nitrogen/generated/ios/swift/HybridPaymentHandlerSpec_cxx.swift +155 -0
- package/nitrogen/generated/ios/swift/PKSecureElementPass.swift +191 -0
- package/nitrogen/generated/ios/swift/PassActivationState.swift +52 -0
- package/nitrogen/generated/ios/swift/PayServiceStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/PaymentItem.swift +57 -0
- package/nitrogen/generated/ios/swift/PaymentItemType.swift +40 -0
- package/nitrogen/generated/ios/swift/PaymentMethod.swift +134 -0
- package/nitrogen/generated/ios/swift/PaymentMethodType.swift +52 -0
- package/nitrogen/generated/ios/swift/PaymentNetwork.swift +76 -0
- package/nitrogen/generated/ios/swift/PaymentRequest.swift +341 -0
- package/nitrogen/generated/ios/swift/PaymentResult.swift +118 -0
- package/nitrogen/generated/ios/swift/PaymentToken.swift +57 -0
- package/nitrogen/generated/shared/c++/ApplePayButtonStyle.hpp +80 -0
- package/nitrogen/generated/shared/c++/ApplePayButtonType.hpp +120 -0
- package/nitrogen/generated/shared/c++/CNContact.hpp +168 -0
- package/nitrogen/generated/shared/c++/CNContactType.hpp +76 -0
- package/nitrogen/generated/shared/c++/CNLabeledEmailAddress.hpp +80 -0
- package/nitrogen/generated/shared/c++/CNLabeledPhoneNumber.hpp +82 -0
- package/nitrogen/generated/shared/c++/CNLabeledPostalAddress.hpp +82 -0
- package/nitrogen/generated/shared/c++/CNPhoneNumber.hpp +75 -0
- package/nitrogen/generated/shared/c++/CNPostalAddress.hpp +96 -0
- package/nitrogen/generated/shared/c++/GooglePayButtonTheme.hpp +76 -0
- package/nitrogen/generated/shared/c++/GooglePayButtonType.hpp +100 -0
- package/nitrogen/generated/shared/c++/GooglePayEnvironment.hpp +76 -0
- package/nitrogen/generated/shared/c++/HybridApplePayButtonSpec.cpp +26 -0
- package/nitrogen/generated/shared/c++/HybridApplePayButtonSpec.hpp +73 -0
- package/nitrogen/generated/shared/c++/HybridGooglePayButtonSpec.cpp +28 -0
- package/nitrogen/generated/shared/c++/HybridGooglePayButtonSpec.hpp +75 -0
- package/nitrogen/generated/shared/c++/HybridPaymentHandlerSpec.cpp +23 -0
- package/nitrogen/generated/shared/c++/HybridPaymentHandlerSpec.hpp +74 -0
- package/nitrogen/generated/shared/c++/PKSecureElementPass.hpp +114 -0
- package/nitrogen/generated/shared/c++/PassActivationState.hpp +88 -0
- package/nitrogen/generated/shared/c++/PayServiceStatus.hpp +79 -0
- package/nitrogen/generated/shared/c++/PaymentItem.hpp +85 -0
- package/nitrogen/generated/shared/c++/PaymentItemType.hpp +76 -0
- package/nitrogen/generated/shared/c++/PaymentMethod.hpp +103 -0
- package/nitrogen/generated/shared/c++/PaymentMethodType.hpp +88 -0
- package/nitrogen/generated/shared/c++/PaymentNetwork.hpp +112 -0
- package/nitrogen/generated/shared/c++/PaymentRequest.hpp +130 -0
- package/nitrogen/generated/shared/c++/PaymentResult.hpp +90 -0
- package/nitrogen/generated/shared/c++/PaymentToken.hpp +85 -0
- package/nitrogen/generated/shared/c++/views/HybridApplePayButtonComponent.cpp +111 -0
- package/nitrogen/generated/shared/c++/views/HybridApplePayButtonComponent.hpp +111 -0
- package/nitrogen/generated/shared/c++/views/HybridGooglePayButtonComponent.cpp +123 -0
- package/nitrogen/generated/shared/c++/views/HybridGooglePayButtonComponent.hpp +112 -0
- package/nitrogen/generated/shared/json/ApplePayButtonConfig.json +12 -0
- package/nitrogen/generated/shared/json/GooglePayButtonConfig.json +13 -0
- package/package.json +116 -0
- package/react-native.config.js +16 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/usePaymentCheckout.ts +281 -0
- package/src/index.ts +32 -0
- package/src/plugin/index.ts +17 -0
- package/src/plugin/type.ts +4 -0
- package/src/plugin/withApplePay.ts +44 -0
- package/src/plugin/withGooglePay.ts +41 -0
- package/src/specs/ApplePayButton.nitro.ts +37 -0
- package/src/specs/GooglePayButton.nitro.ts +34 -0
- package/src/specs/PaymentHandler.nitro.ts +13 -0
- package/src/types/Contact.ts +58 -0
- package/src/types/Payment.ts +104 -0
- package/src/types/index.ts +2 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/paymentHelpers.ts +215 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentMethod.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/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `PaymentNetwork` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::pay { enum class PaymentNetwork; }
|
|
28
|
+
// Forward declaration of `PaymentMethodType` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::pay { enum class PaymentMethodType; }
|
|
30
|
+
// Forward declaration of `PKSecureElementPass` to properly resolve imports.
|
|
31
|
+
namespace margelo::nitro::pay { struct PKSecureElementPass; }
|
|
32
|
+
// Forward declaration of `CNContact` to properly resolve imports.
|
|
33
|
+
namespace margelo::nitro::pay { struct CNContact; }
|
|
34
|
+
|
|
35
|
+
#include <string>
|
|
36
|
+
#include <optional>
|
|
37
|
+
#include "PaymentNetwork.hpp"
|
|
38
|
+
#include "PaymentMethodType.hpp"
|
|
39
|
+
#include "PKSecureElementPass.hpp"
|
|
40
|
+
#include "CNContact.hpp"
|
|
41
|
+
|
|
42
|
+
namespace margelo::nitro::pay {
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* A struct which can be represented as a JavaScript object (PaymentMethod).
|
|
46
|
+
*/
|
|
47
|
+
struct PaymentMethod {
|
|
48
|
+
public:
|
|
49
|
+
std::optional<std::string> displayName SWIFT_PRIVATE;
|
|
50
|
+
std::optional<PaymentNetwork> network SWIFT_PRIVATE;
|
|
51
|
+
PaymentMethodType type SWIFT_PRIVATE;
|
|
52
|
+
std::optional<PKSecureElementPass> secureElementPass SWIFT_PRIVATE;
|
|
53
|
+
std::optional<CNContact> billingAddress SWIFT_PRIVATE;
|
|
54
|
+
|
|
55
|
+
public:
|
|
56
|
+
PaymentMethod() = default;
|
|
57
|
+
explicit PaymentMethod(std::optional<std::string> displayName, std::optional<PaymentNetwork> network, PaymentMethodType type, std::optional<PKSecureElementPass> secureElementPass, std::optional<CNContact> billingAddress): displayName(displayName), network(network), type(type), secureElementPass(secureElementPass), billingAddress(billingAddress) {}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
} // namespace margelo::nitro::pay
|
|
61
|
+
|
|
62
|
+
namespace margelo::nitro {
|
|
63
|
+
|
|
64
|
+
// C++ PaymentMethod <> JS PaymentMethod (object)
|
|
65
|
+
template <>
|
|
66
|
+
struct JSIConverter<margelo::nitro::pay::PaymentMethod> final {
|
|
67
|
+
static inline margelo::nitro::pay::PaymentMethod fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
68
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
69
|
+
return margelo::nitro::pay::PaymentMethod(
|
|
70
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "displayName")),
|
|
71
|
+
JSIConverter<std::optional<margelo::nitro::pay::PaymentNetwork>>::fromJSI(runtime, obj.getProperty(runtime, "network")),
|
|
72
|
+
JSIConverter<margelo::nitro::pay::PaymentMethodType>::fromJSI(runtime, obj.getProperty(runtime, "type")),
|
|
73
|
+
JSIConverter<std::optional<margelo::nitro::pay::PKSecureElementPass>>::fromJSI(runtime, obj.getProperty(runtime, "secureElementPass")),
|
|
74
|
+
JSIConverter<std::optional<margelo::nitro::pay::CNContact>>::fromJSI(runtime, obj.getProperty(runtime, "billingAddress"))
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pay::PaymentMethod& arg) {
|
|
78
|
+
jsi::Object obj(runtime);
|
|
79
|
+
obj.setProperty(runtime, "displayName", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.displayName));
|
|
80
|
+
obj.setProperty(runtime, "network", JSIConverter<std::optional<margelo::nitro::pay::PaymentNetwork>>::toJSI(runtime, arg.network));
|
|
81
|
+
obj.setProperty(runtime, "type", JSIConverter<margelo::nitro::pay::PaymentMethodType>::toJSI(runtime, arg.type));
|
|
82
|
+
obj.setProperty(runtime, "secureElementPass", JSIConverter<std::optional<margelo::nitro::pay::PKSecureElementPass>>::toJSI(runtime, arg.secureElementPass));
|
|
83
|
+
obj.setProperty(runtime, "billingAddress", JSIConverter<std::optional<margelo::nitro::pay::CNContact>>::toJSI(runtime, arg.billingAddress));
|
|
84
|
+
return obj;
|
|
85
|
+
}
|
|
86
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
87
|
+
if (!value.isObject()) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
jsi::Object obj = value.getObject(runtime);
|
|
91
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "displayName"))) return false;
|
|
95
|
+
if (!JSIConverter<std::optional<margelo::nitro::pay::PaymentNetwork>>::canConvert(runtime, obj.getProperty(runtime, "network"))) return false;
|
|
96
|
+
if (!JSIConverter<margelo::nitro::pay::PaymentMethodType>::canConvert(runtime, obj.getProperty(runtime, "type"))) return false;
|
|
97
|
+
if (!JSIConverter<std::optional<margelo::nitro::pay::PKSecureElementPass>>::canConvert(runtime, obj.getProperty(runtime, "secureElementPass"))) return false;
|
|
98
|
+
if (!JSIConverter<std::optional<margelo::nitro::pay::CNContact>>::canConvert(runtime, obj.getProperty(runtime, "billingAddress"))) return false;
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentMethodType.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::pay {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (PaymentMethodType).
|
|
30
|
+
*/
|
|
31
|
+
enum class PaymentMethodType {
|
|
32
|
+
UNKNOWN SWIFT_NAME(unknown) = 0,
|
|
33
|
+
DEBIT SWIFT_NAME(debit) = 1,
|
|
34
|
+
CREDIT SWIFT_NAME(credit) = 2,
|
|
35
|
+
PREPAID SWIFT_NAME(prepaid) = 3,
|
|
36
|
+
STORE SWIFT_NAME(store) = 4,
|
|
37
|
+
} CLOSED_ENUM;
|
|
38
|
+
|
|
39
|
+
} // namespace margelo::nitro::pay
|
|
40
|
+
|
|
41
|
+
namespace margelo::nitro {
|
|
42
|
+
|
|
43
|
+
// C++ PaymentMethodType <> JS PaymentMethodType (union)
|
|
44
|
+
template <>
|
|
45
|
+
struct JSIConverter<margelo::nitro::pay::PaymentMethodType> final {
|
|
46
|
+
static inline margelo::nitro::pay::PaymentMethodType fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
47
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
48
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
49
|
+
case hashString("unknown"): return margelo::nitro::pay::PaymentMethodType::UNKNOWN;
|
|
50
|
+
case hashString("debit"): return margelo::nitro::pay::PaymentMethodType::DEBIT;
|
|
51
|
+
case hashString("credit"): return margelo::nitro::pay::PaymentMethodType::CREDIT;
|
|
52
|
+
case hashString("prepaid"): return margelo::nitro::pay::PaymentMethodType::PREPAID;
|
|
53
|
+
case hashString("store"): return margelo::nitro::pay::PaymentMethodType::STORE;
|
|
54
|
+
default: [[unlikely]]
|
|
55
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum PaymentMethodType - invalid value!");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::pay::PaymentMethodType arg) {
|
|
59
|
+
switch (arg) {
|
|
60
|
+
case margelo::nitro::pay::PaymentMethodType::UNKNOWN: return JSIConverter<std::string>::toJSI(runtime, "unknown");
|
|
61
|
+
case margelo::nitro::pay::PaymentMethodType::DEBIT: return JSIConverter<std::string>::toJSI(runtime, "debit");
|
|
62
|
+
case margelo::nitro::pay::PaymentMethodType::CREDIT: return JSIConverter<std::string>::toJSI(runtime, "credit");
|
|
63
|
+
case margelo::nitro::pay::PaymentMethodType::PREPAID: return JSIConverter<std::string>::toJSI(runtime, "prepaid");
|
|
64
|
+
case margelo::nitro::pay::PaymentMethodType::STORE: return JSIConverter<std::string>::toJSI(runtime, "store");
|
|
65
|
+
default: [[unlikely]]
|
|
66
|
+
throw std::invalid_argument("Cannot convert PaymentMethodType to JS - invalid value: "
|
|
67
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
71
|
+
if (!value.isString()) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
75
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
76
|
+
case hashString("unknown"):
|
|
77
|
+
case hashString("debit"):
|
|
78
|
+
case hashString("credit"):
|
|
79
|
+
case hashString("prepaid"):
|
|
80
|
+
case hashString("store"):
|
|
81
|
+
return true;
|
|
82
|
+
default:
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentNetwork.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::pay {
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* An enum which can be represented as a JavaScript union (PaymentNetwork).
|
|
30
|
+
*/
|
|
31
|
+
enum class PaymentNetwork {
|
|
32
|
+
VISA SWIFT_NAME(visa) = 0,
|
|
33
|
+
MASTERCARD SWIFT_NAME(mastercard) = 1,
|
|
34
|
+
AMEX SWIFT_NAME(amex) = 2,
|
|
35
|
+
DISCOVER SWIFT_NAME(discover) = 3,
|
|
36
|
+
JCB SWIFT_NAME(jcb) = 4,
|
|
37
|
+
MAESTRO SWIFT_NAME(maestro) = 5,
|
|
38
|
+
ELECTRON SWIFT_NAME(electron) = 6,
|
|
39
|
+
ELO SWIFT_NAME(elo) = 7,
|
|
40
|
+
IDCREDIT SWIFT_NAME(idcredit) = 8,
|
|
41
|
+
INTERAC SWIFT_NAME(interac) = 9,
|
|
42
|
+
PRIVATELABEL SWIFT_NAME(privatelabel) = 10,
|
|
43
|
+
} CLOSED_ENUM;
|
|
44
|
+
|
|
45
|
+
} // namespace margelo::nitro::pay
|
|
46
|
+
|
|
47
|
+
namespace margelo::nitro {
|
|
48
|
+
|
|
49
|
+
// C++ PaymentNetwork <> JS PaymentNetwork (union)
|
|
50
|
+
template <>
|
|
51
|
+
struct JSIConverter<margelo::nitro::pay::PaymentNetwork> final {
|
|
52
|
+
static inline margelo::nitro::pay::PaymentNetwork fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
53
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
|
|
54
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
55
|
+
case hashString("visa"): return margelo::nitro::pay::PaymentNetwork::VISA;
|
|
56
|
+
case hashString("mastercard"): return margelo::nitro::pay::PaymentNetwork::MASTERCARD;
|
|
57
|
+
case hashString("amex"): return margelo::nitro::pay::PaymentNetwork::AMEX;
|
|
58
|
+
case hashString("discover"): return margelo::nitro::pay::PaymentNetwork::DISCOVER;
|
|
59
|
+
case hashString("jcb"): return margelo::nitro::pay::PaymentNetwork::JCB;
|
|
60
|
+
case hashString("maestro"): return margelo::nitro::pay::PaymentNetwork::MAESTRO;
|
|
61
|
+
case hashString("electron"): return margelo::nitro::pay::PaymentNetwork::ELECTRON;
|
|
62
|
+
case hashString("elo"): return margelo::nitro::pay::PaymentNetwork::ELO;
|
|
63
|
+
case hashString("idcredit"): return margelo::nitro::pay::PaymentNetwork::IDCREDIT;
|
|
64
|
+
case hashString("interac"): return margelo::nitro::pay::PaymentNetwork::INTERAC;
|
|
65
|
+
case hashString("privateLabel"): return margelo::nitro::pay::PaymentNetwork::PRIVATELABEL;
|
|
66
|
+
default: [[unlikely]]
|
|
67
|
+
throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum PaymentNetwork - invalid value!");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::pay::PaymentNetwork arg) {
|
|
71
|
+
switch (arg) {
|
|
72
|
+
case margelo::nitro::pay::PaymentNetwork::VISA: return JSIConverter<std::string>::toJSI(runtime, "visa");
|
|
73
|
+
case margelo::nitro::pay::PaymentNetwork::MASTERCARD: return JSIConverter<std::string>::toJSI(runtime, "mastercard");
|
|
74
|
+
case margelo::nitro::pay::PaymentNetwork::AMEX: return JSIConverter<std::string>::toJSI(runtime, "amex");
|
|
75
|
+
case margelo::nitro::pay::PaymentNetwork::DISCOVER: return JSIConverter<std::string>::toJSI(runtime, "discover");
|
|
76
|
+
case margelo::nitro::pay::PaymentNetwork::JCB: return JSIConverter<std::string>::toJSI(runtime, "jcb");
|
|
77
|
+
case margelo::nitro::pay::PaymentNetwork::MAESTRO: return JSIConverter<std::string>::toJSI(runtime, "maestro");
|
|
78
|
+
case margelo::nitro::pay::PaymentNetwork::ELECTRON: return JSIConverter<std::string>::toJSI(runtime, "electron");
|
|
79
|
+
case margelo::nitro::pay::PaymentNetwork::ELO: return JSIConverter<std::string>::toJSI(runtime, "elo");
|
|
80
|
+
case margelo::nitro::pay::PaymentNetwork::IDCREDIT: return JSIConverter<std::string>::toJSI(runtime, "idcredit");
|
|
81
|
+
case margelo::nitro::pay::PaymentNetwork::INTERAC: return JSIConverter<std::string>::toJSI(runtime, "interac");
|
|
82
|
+
case margelo::nitro::pay::PaymentNetwork::PRIVATELABEL: return JSIConverter<std::string>::toJSI(runtime, "privateLabel");
|
|
83
|
+
default: [[unlikely]]
|
|
84
|
+
throw std::invalid_argument("Cannot convert PaymentNetwork to JS - invalid value: "
|
|
85
|
+
+ std::to_string(static_cast<int>(arg)) + "!");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
89
|
+
if (!value.isString()) {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
|
|
93
|
+
switch (hashString(unionValue.c_str(), unionValue.size())) {
|
|
94
|
+
case hashString("visa"):
|
|
95
|
+
case hashString("mastercard"):
|
|
96
|
+
case hashString("amex"):
|
|
97
|
+
case hashString("discover"):
|
|
98
|
+
case hashString("jcb"):
|
|
99
|
+
case hashString("maestro"):
|
|
100
|
+
case hashString("electron"):
|
|
101
|
+
case hashString("elo"):
|
|
102
|
+
case hashString("idcredit"):
|
|
103
|
+
case hashString("interac"):
|
|
104
|
+
case hashString("privateLabel"):
|
|
105
|
+
return true;
|
|
106
|
+
default:
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentRequest.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/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `PaymentItem` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::pay { struct PaymentItem; }
|
|
28
|
+
// Forward declaration of `GooglePayEnvironment` to properly resolve imports.
|
|
29
|
+
namespace margelo::nitro::pay { enum class GooglePayEnvironment; }
|
|
30
|
+
|
|
31
|
+
#include <string>
|
|
32
|
+
#include "PaymentItem.hpp"
|
|
33
|
+
#include <vector>
|
|
34
|
+
#include <optional>
|
|
35
|
+
#include "GooglePayEnvironment.hpp"
|
|
36
|
+
|
|
37
|
+
namespace margelo::nitro::pay {
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* A struct which can be represented as a JavaScript object (PaymentRequest).
|
|
41
|
+
*/
|
|
42
|
+
struct PaymentRequest {
|
|
43
|
+
public:
|
|
44
|
+
std::string merchantIdentifier SWIFT_PRIVATE;
|
|
45
|
+
std::string countryCode SWIFT_PRIVATE;
|
|
46
|
+
std::string currencyCode SWIFT_PRIVATE;
|
|
47
|
+
std::vector<PaymentItem> paymentItems SWIFT_PRIVATE;
|
|
48
|
+
std::vector<std::string> merchantCapabilities SWIFT_PRIVATE;
|
|
49
|
+
std::vector<std::string> supportedNetworks SWIFT_PRIVATE;
|
|
50
|
+
std::optional<std::string> shippingType SWIFT_PRIVATE;
|
|
51
|
+
std::optional<std::vector<PaymentItem>> shippingMethods SWIFT_PRIVATE;
|
|
52
|
+
std::optional<bool> billingContactRequired SWIFT_PRIVATE;
|
|
53
|
+
std::optional<bool> shippingContactRequired SWIFT_PRIVATE;
|
|
54
|
+
std::optional<GooglePayEnvironment> googlePayEnvironment SWIFT_PRIVATE;
|
|
55
|
+
std::optional<std::string> googlePayGateway SWIFT_PRIVATE;
|
|
56
|
+
std::optional<std::string> googlePayGatewayMerchantId SWIFT_PRIVATE;
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
PaymentRequest() = default;
|
|
60
|
+
explicit PaymentRequest(std::string merchantIdentifier, std::string countryCode, std::string currencyCode, std::vector<PaymentItem> paymentItems, std::vector<std::string> merchantCapabilities, std::vector<std::string> supportedNetworks, std::optional<std::string> shippingType, std::optional<std::vector<PaymentItem>> shippingMethods, std::optional<bool> billingContactRequired, std::optional<bool> shippingContactRequired, std::optional<GooglePayEnvironment> googlePayEnvironment, std::optional<std::string> googlePayGateway, std::optional<std::string> googlePayGatewayMerchantId): merchantIdentifier(merchantIdentifier), countryCode(countryCode), currencyCode(currencyCode), paymentItems(paymentItems), merchantCapabilities(merchantCapabilities), supportedNetworks(supportedNetworks), shippingType(shippingType), shippingMethods(shippingMethods), billingContactRequired(billingContactRequired), shippingContactRequired(shippingContactRequired), googlePayEnvironment(googlePayEnvironment), googlePayGateway(googlePayGateway), googlePayGatewayMerchantId(googlePayGatewayMerchantId) {}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
} // namespace margelo::nitro::pay
|
|
64
|
+
|
|
65
|
+
namespace margelo::nitro {
|
|
66
|
+
|
|
67
|
+
// C++ PaymentRequest <> JS PaymentRequest (object)
|
|
68
|
+
template <>
|
|
69
|
+
struct JSIConverter<margelo::nitro::pay::PaymentRequest> final {
|
|
70
|
+
static inline margelo::nitro::pay::PaymentRequest fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
71
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
72
|
+
return margelo::nitro::pay::PaymentRequest(
|
|
73
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "merchantIdentifier")),
|
|
74
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "countryCode")),
|
|
75
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "currencyCode")),
|
|
76
|
+
JSIConverter<std::vector<margelo::nitro::pay::PaymentItem>>::fromJSI(runtime, obj.getProperty(runtime, "paymentItems")),
|
|
77
|
+
JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "merchantCapabilities")),
|
|
78
|
+
JSIConverter<std::vector<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "supportedNetworks")),
|
|
79
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "shippingType")),
|
|
80
|
+
JSIConverter<std::optional<std::vector<margelo::nitro::pay::PaymentItem>>>::fromJSI(runtime, obj.getProperty(runtime, "shippingMethods")),
|
|
81
|
+
JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "billingContactRequired")),
|
|
82
|
+
JSIConverter<std::optional<bool>>::fromJSI(runtime, obj.getProperty(runtime, "shippingContactRequired")),
|
|
83
|
+
JSIConverter<std::optional<margelo::nitro::pay::GooglePayEnvironment>>::fromJSI(runtime, obj.getProperty(runtime, "googlePayEnvironment")),
|
|
84
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "googlePayGateway")),
|
|
85
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "googlePayGatewayMerchantId"))
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pay::PaymentRequest& arg) {
|
|
89
|
+
jsi::Object obj(runtime);
|
|
90
|
+
obj.setProperty(runtime, "merchantIdentifier", JSIConverter<std::string>::toJSI(runtime, arg.merchantIdentifier));
|
|
91
|
+
obj.setProperty(runtime, "countryCode", JSIConverter<std::string>::toJSI(runtime, arg.countryCode));
|
|
92
|
+
obj.setProperty(runtime, "currencyCode", JSIConverter<std::string>::toJSI(runtime, arg.currencyCode));
|
|
93
|
+
obj.setProperty(runtime, "paymentItems", JSIConverter<std::vector<margelo::nitro::pay::PaymentItem>>::toJSI(runtime, arg.paymentItems));
|
|
94
|
+
obj.setProperty(runtime, "merchantCapabilities", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.merchantCapabilities));
|
|
95
|
+
obj.setProperty(runtime, "supportedNetworks", JSIConverter<std::vector<std::string>>::toJSI(runtime, arg.supportedNetworks));
|
|
96
|
+
obj.setProperty(runtime, "shippingType", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.shippingType));
|
|
97
|
+
obj.setProperty(runtime, "shippingMethods", JSIConverter<std::optional<std::vector<margelo::nitro::pay::PaymentItem>>>::toJSI(runtime, arg.shippingMethods));
|
|
98
|
+
obj.setProperty(runtime, "billingContactRequired", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.billingContactRequired));
|
|
99
|
+
obj.setProperty(runtime, "shippingContactRequired", JSIConverter<std::optional<bool>>::toJSI(runtime, arg.shippingContactRequired));
|
|
100
|
+
obj.setProperty(runtime, "googlePayEnvironment", JSIConverter<std::optional<margelo::nitro::pay::GooglePayEnvironment>>::toJSI(runtime, arg.googlePayEnvironment));
|
|
101
|
+
obj.setProperty(runtime, "googlePayGateway", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.googlePayGateway));
|
|
102
|
+
obj.setProperty(runtime, "googlePayGatewayMerchantId", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.googlePayGatewayMerchantId));
|
|
103
|
+
return obj;
|
|
104
|
+
}
|
|
105
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
106
|
+
if (!value.isObject()) {
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
jsi::Object obj = value.getObject(runtime);
|
|
110
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "merchantIdentifier"))) return false;
|
|
114
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "countryCode"))) return false;
|
|
115
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "currencyCode"))) return false;
|
|
116
|
+
if (!JSIConverter<std::vector<margelo::nitro::pay::PaymentItem>>::canConvert(runtime, obj.getProperty(runtime, "paymentItems"))) return false;
|
|
117
|
+
if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "merchantCapabilities"))) return false;
|
|
118
|
+
if (!JSIConverter<std::vector<std::string>>::canConvert(runtime, obj.getProperty(runtime, "supportedNetworks"))) return false;
|
|
119
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "shippingType"))) return false;
|
|
120
|
+
if (!JSIConverter<std::optional<std::vector<margelo::nitro::pay::PaymentItem>>>::canConvert(runtime, obj.getProperty(runtime, "shippingMethods"))) return false;
|
|
121
|
+
if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "billingContactRequired"))) return false;
|
|
122
|
+
if (!JSIConverter<std::optional<bool>>::canConvert(runtime, obj.getProperty(runtime, "shippingContactRequired"))) return false;
|
|
123
|
+
if (!JSIConverter<std::optional<margelo::nitro::pay::GooglePayEnvironment>>::canConvert(runtime, obj.getProperty(runtime, "googlePayEnvironment"))) return false;
|
|
124
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "googlePayGateway"))) return false;
|
|
125
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "googlePayGatewayMerchantId"))) return false;
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentResult.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/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `PaymentToken` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::pay { struct PaymentToken; }
|
|
28
|
+
|
|
29
|
+
#include <string>
|
|
30
|
+
#include <optional>
|
|
31
|
+
#include "PaymentToken.hpp"
|
|
32
|
+
|
|
33
|
+
namespace margelo::nitro::pay {
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* A struct which can be represented as a JavaScript object (PaymentResult).
|
|
37
|
+
*/
|
|
38
|
+
struct PaymentResult {
|
|
39
|
+
public:
|
|
40
|
+
bool success SWIFT_PRIVATE;
|
|
41
|
+
std::optional<std::string> transactionId SWIFT_PRIVATE;
|
|
42
|
+
std::optional<PaymentToken> token SWIFT_PRIVATE;
|
|
43
|
+
std::optional<std::string> error SWIFT_PRIVATE;
|
|
44
|
+
|
|
45
|
+
public:
|
|
46
|
+
PaymentResult() = default;
|
|
47
|
+
explicit PaymentResult(bool success, std::optional<std::string> transactionId, std::optional<PaymentToken> token, std::optional<std::string> error): success(success), transactionId(transactionId), token(token), error(error) {}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
} // namespace margelo::nitro::pay
|
|
51
|
+
|
|
52
|
+
namespace margelo::nitro {
|
|
53
|
+
|
|
54
|
+
// C++ PaymentResult <> JS PaymentResult (object)
|
|
55
|
+
template <>
|
|
56
|
+
struct JSIConverter<margelo::nitro::pay::PaymentResult> final {
|
|
57
|
+
static inline margelo::nitro::pay::PaymentResult fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
58
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
59
|
+
return margelo::nitro::pay::PaymentResult(
|
|
60
|
+
JSIConverter<bool>::fromJSI(runtime, obj.getProperty(runtime, "success")),
|
|
61
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "transactionId")),
|
|
62
|
+
JSIConverter<std::optional<margelo::nitro::pay::PaymentToken>>::fromJSI(runtime, obj.getProperty(runtime, "token")),
|
|
63
|
+
JSIConverter<std::optional<std::string>>::fromJSI(runtime, obj.getProperty(runtime, "error"))
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pay::PaymentResult& arg) {
|
|
67
|
+
jsi::Object obj(runtime);
|
|
68
|
+
obj.setProperty(runtime, "success", JSIConverter<bool>::toJSI(runtime, arg.success));
|
|
69
|
+
obj.setProperty(runtime, "transactionId", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.transactionId));
|
|
70
|
+
obj.setProperty(runtime, "token", JSIConverter<std::optional<margelo::nitro::pay::PaymentToken>>::toJSI(runtime, arg.token));
|
|
71
|
+
obj.setProperty(runtime, "error", JSIConverter<std::optional<std::string>>::toJSI(runtime, arg.error));
|
|
72
|
+
return obj;
|
|
73
|
+
}
|
|
74
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
75
|
+
if (!value.isObject()) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
jsi::Object obj = value.getObject(runtime);
|
|
79
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
if (!JSIConverter<bool>::canConvert(runtime, obj.getProperty(runtime, "success"))) return false;
|
|
83
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "transactionId"))) return false;
|
|
84
|
+
if (!JSIConverter<std::optional<margelo::nitro::pay::PaymentToken>>::canConvert(runtime, obj.getProperty(runtime, "token"))) return false;
|
|
85
|
+
if (!JSIConverter<std::optional<std::string>>::canConvert(runtime, obj.getProperty(runtime, "error"))) return false;
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
} // namespace margelo::nitro
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// PaymentToken.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/JSIConverter.hpp>)
|
|
11
|
+
#include <NitroModules/JSIConverter.hpp>
|
|
12
|
+
#else
|
|
13
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
14
|
+
#endif
|
|
15
|
+
#if __has_include(<NitroModules/NitroDefines.hpp>)
|
|
16
|
+
#include <NitroModules/NitroDefines.hpp>
|
|
17
|
+
#else
|
|
18
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
19
|
+
#endif
|
|
20
|
+
#if __has_include(<NitroModules/JSIHelpers.hpp>)
|
|
21
|
+
#include <NitroModules/JSIHelpers.hpp>
|
|
22
|
+
#else
|
|
23
|
+
#error NitroModules cannot be found! Are you sure you installed NitroModules properly?
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
// Forward declaration of `PaymentMethod` to properly resolve imports.
|
|
27
|
+
namespace margelo::nitro::pay { struct PaymentMethod; }
|
|
28
|
+
|
|
29
|
+
#include "PaymentMethod.hpp"
|
|
30
|
+
#include <string>
|
|
31
|
+
|
|
32
|
+
namespace margelo::nitro::pay {
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A struct which can be represented as a JavaScript object (PaymentToken).
|
|
36
|
+
*/
|
|
37
|
+
struct PaymentToken {
|
|
38
|
+
public:
|
|
39
|
+
PaymentMethod paymentMethod SWIFT_PRIVATE;
|
|
40
|
+
std::string transactionIdentifier SWIFT_PRIVATE;
|
|
41
|
+
std::string paymentData SWIFT_PRIVATE;
|
|
42
|
+
|
|
43
|
+
public:
|
|
44
|
+
PaymentToken() = default;
|
|
45
|
+
explicit PaymentToken(PaymentMethod paymentMethod, std::string transactionIdentifier, std::string paymentData): paymentMethod(paymentMethod), transactionIdentifier(transactionIdentifier), paymentData(paymentData) {}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
} // namespace margelo::nitro::pay
|
|
49
|
+
|
|
50
|
+
namespace margelo::nitro {
|
|
51
|
+
|
|
52
|
+
// C++ PaymentToken <> JS PaymentToken (object)
|
|
53
|
+
template <>
|
|
54
|
+
struct JSIConverter<margelo::nitro::pay::PaymentToken> final {
|
|
55
|
+
static inline margelo::nitro::pay::PaymentToken fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
56
|
+
jsi::Object obj = arg.asObject(runtime);
|
|
57
|
+
return margelo::nitro::pay::PaymentToken(
|
|
58
|
+
JSIConverter<margelo::nitro::pay::PaymentMethod>::fromJSI(runtime, obj.getProperty(runtime, "paymentMethod")),
|
|
59
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "transactionIdentifier")),
|
|
60
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "paymentData"))
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::pay::PaymentToken& arg) {
|
|
64
|
+
jsi::Object obj(runtime);
|
|
65
|
+
obj.setProperty(runtime, "paymentMethod", JSIConverter<margelo::nitro::pay::PaymentMethod>::toJSI(runtime, arg.paymentMethod));
|
|
66
|
+
obj.setProperty(runtime, "transactionIdentifier", JSIConverter<std::string>::toJSI(runtime, arg.transactionIdentifier));
|
|
67
|
+
obj.setProperty(runtime, "paymentData", JSIConverter<std::string>::toJSI(runtime, arg.paymentData));
|
|
68
|
+
return obj;
|
|
69
|
+
}
|
|
70
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
71
|
+
if (!value.isObject()) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
jsi::Object obj = value.getObject(runtime);
|
|
75
|
+
if (!nitro::isPlainObject(runtime, obj)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (!JSIConverter<margelo::nitro::pay::PaymentMethod>::canConvert(runtime, obj.getProperty(runtime, "paymentMethod"))) return false;
|
|
79
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "transactionIdentifier"))) return false;
|
|
80
|
+
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "paymentData"))) return false;
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
} // namespace margelo::nitro
|