diff --git a/android/src/main/java/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclaration.kt b/android/src/main/java/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclaration.kt index 5090c0c..c8fd311 100644 --- a/android/src/main/java/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclaration.kt +++ b/android/src/main/java/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclaration.kt @@ -40,11 +40,18 @@ class PlayAgeRangeDeclaration : HybridPlayAgeRangeDeclarationSpec() { .addOnSuccessListener { r -> val isoDateFormat = SimpleDateFormat("yyyy-MM-dd", Locale.US) val approvalDate = r.mostRecentApprovalDate()?.let { isoDateFormat.format(it) } - val userStatusString = r.userStatus()?.toString() // userStatus will be empty if the user is not in a location where are legally required to show show the age verification prompt // This is different from UNKNOWN where the user is not verified, but is in an applicable region // https://developer.android.com/google/play/age-signals/use-age-signals-api#age-signals-responses - val isEligible = !userStatusString.isNullOrEmpty() + val userStatus = when (r.userStatus()) { + AgeSignalsVerificationStatus.VERIFIED -> PlayAgeRangeDeclarationUserStatusValues._0 + AgeSignalsVerificationStatus.SUPERVISED -> PlayAgeRangeDeclarationUserStatusValues._1 + AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING -> PlayAgeRangeDeclarationUserStatusValues._2 + AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED -> PlayAgeRangeDeclarationUserStatusValues._3 + AgeSignalsVerificationStatus.UNKNOWN -> PlayAgeRangeDeclarationUserStatusValues._4 + else -> null + } + val isEligible = userStatus != null cont.resume( PlayAgeRangeDeclarationResult( @@ -53,7 +60,7 @@ class PlayAgeRangeDeclaration : HybridPlayAgeRangeDeclarationSpec() { ageLower = r.ageLower()?.toDouble(), ageUpper = r.ageUpper()?.toDouble(), mostRecentApprovalDate = approvalDate, - userStatus = userStatusString, + userStatus = userStatus, error = null ) ) diff --git a/ios/PlayAgeRangeDeclaration.swift b/ios/PlayAgeRangeDeclaration.swift index 094ef75..e992dc6 100644 --- a/ios/PlayAgeRangeDeclaration.swift +++ b/ios/PlayAgeRangeDeclaration.swift @@ -47,20 +47,19 @@ class PlayAgeRangeDeclaration: HybridPlayAgeRangeDeclarationSpec { case .sharing(let declaration): - let statusString: String + let status: AppleAgeRangeDeclarationUserStatusValues if let declarationStatus = declaration.ageRangeDeclaration { - statusString = String(describing: declarationStatus) - + status = AppleAgeRangeDeclarationUserStatusValues(fromString: String(describing: declarationStatus)) ?? .unknown } else { - statusString = "unknown" + status = .unknown } let controlsRawValue = try declaration.activeParentalControls.rawValue return DeclaredAgeRangeResult( isEligible: true, - status: statusString, + status: status, parentControls: "\(controlsRawValue)", lowerBound: declaration.lowerBound.map { Double($0) }, upperBound: declaration.upperBound.map { Double($0) } @@ -69,7 +68,7 @@ class PlayAgeRangeDeclaration: HybridPlayAgeRangeDeclarationSpec { case .declinedSharing: return DeclaredAgeRangeResult( isEligible: true, - status: "declined", + status: .declined, parentControls: nil, lowerBound: nil, upperBound: nil @@ -78,7 +77,7 @@ class PlayAgeRangeDeclaration: HybridPlayAgeRangeDeclarationSpec { @unknown default: return DeclaredAgeRangeResult( isEligible: true, - status: "unknown", + status: .unknown, parentControls: nil, lowerBound: nil, upperBound: nil diff --git a/nitrogen/generated/android/c++/JAppleAgeRangeDeclarationUserStatusValues.hpp b/nitrogen/generated/android/c++/JAppleAgeRangeDeclarationUserStatusValues.hpp new file mode 100644 index 0000000..42b640b --- /dev/null +++ b/nitrogen/generated/android/c++/JAppleAgeRangeDeclarationUserStatusValues.hpp @@ -0,0 +1,82 @@ +/// +/// JAppleAgeRangeDeclarationUserStatusValues.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +#pragma once + +#include +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" + +namespace margelo::nitro::playagerangedeclaration { + + using namespace facebook; + + /** + * The C++ JNI bridge between the C++ enum "AppleAgeRangeDeclarationUserStatusValues" and the the Kotlin enum "AppleAgeRangeDeclarationUserStatusValues". + */ + struct JAppleAgeRangeDeclarationUserStatusValues final: public jni::JavaClass { + public: + static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/playagerangedeclaration/AppleAgeRangeDeclarationUserStatusValues;"; + + public: + /** + * Convert this Java/Kotlin-based enum to the C++ enum AppleAgeRangeDeclarationUserStatusValues. + */ + [[maybe_unused]] + [[nodiscard]] + AppleAgeRangeDeclarationUserStatusValues toCpp() const { + static const auto clazz = javaClassStatic(); + static const auto fieldOrdinal = clazz->getField("value"); + int ordinal = this->getFieldValue(fieldOrdinal); + return static_cast(ordinal); + } + + public: + /** + * Create a Java/Kotlin-based enum with the given C++ enum's value. + */ + [[maybe_unused]] + static jni::alias_ref fromCpp(AppleAgeRangeDeclarationUserStatusValues value) { + static const auto clazz = javaClassStatic(); + switch (value) { + case AppleAgeRangeDeclarationUserStatusValues::CHECKEDBYOTHERMETHOD: + static const auto fieldCHECKEDBYOTHERMETHOD = clazz->getStaticField("CHECKEDBYOTHERMETHOD"); + return clazz->getStaticFieldValue(fieldCHECKEDBYOTHERMETHOD); + case AppleAgeRangeDeclarationUserStatusValues::GOVERNMENTIDCHECKED: + static const auto fieldGOVERNMENTIDCHECKED = clazz->getStaticField("GOVERNMENTIDCHECKED"); + return clazz->getStaticFieldValue(fieldGOVERNMENTIDCHECKED); + case AppleAgeRangeDeclarationUserStatusValues::GUARDIANCHECKEDBYOTHERMETHOD: + static const auto fieldGUARDIANCHECKEDBYOTHERMETHOD = clazz->getStaticField("GUARDIANCHECKEDBYOTHERMETHOD"); + return clazz->getStaticFieldValue(fieldGUARDIANCHECKEDBYOTHERMETHOD); + case AppleAgeRangeDeclarationUserStatusValues::GUARDIANDECLARED: + static const auto fieldGUARDIANDECLARED = clazz->getStaticField("GUARDIANDECLARED"); + return clazz->getStaticFieldValue(fieldGUARDIANDECLARED); + case AppleAgeRangeDeclarationUserStatusValues::GUARDIANGOVERNMENTIDCHECKED: + static const auto fieldGUARDIANGOVERNMENTIDCHECKED = clazz->getStaticField("GUARDIANGOVERNMENTIDCHECKED"); + return clazz->getStaticFieldValue(fieldGUARDIANGOVERNMENTIDCHECKED); + case AppleAgeRangeDeclarationUserStatusValues::GUARDIANPAYMENTCHECKED: + static const auto fieldGUARDIANPAYMENTCHECKED = clazz->getStaticField("GUARDIANPAYMENTCHECKED"); + return clazz->getStaticFieldValue(fieldGUARDIANPAYMENTCHECKED); + case AppleAgeRangeDeclarationUserStatusValues::PAYMENTCHECKED: + static const auto fieldPAYMENTCHECKED = clazz->getStaticField("PAYMENTCHECKED"); + return clazz->getStaticFieldValue(fieldPAYMENTCHECKED); + case AppleAgeRangeDeclarationUserStatusValues::SELFDECLARED: + static const auto fieldSELFDECLARED = clazz->getStaticField("SELFDECLARED"); + return clazz->getStaticFieldValue(fieldSELFDECLARED); + case AppleAgeRangeDeclarationUserStatusValues::DECLINED: + static const auto fieldDECLINED = clazz->getStaticField("DECLINED"); + return clazz->getStaticFieldValue(fieldDECLINED); + case AppleAgeRangeDeclarationUserStatusValues::UNKNOWN: + static const auto fieldUNKNOWN = clazz->getStaticField("UNKNOWN"); + return clazz->getStaticFieldValue(fieldUNKNOWN); + default: + std::string stringValue = std::to_string(static_cast(value)); + throw std::invalid_argument("Invalid enum value (" + stringValue + "!"); + } + } + }; + +} // namespace margelo::nitro::playagerangedeclaration diff --git a/nitrogen/generated/android/c++/JDeclaredAgeRangeResult.hpp b/nitrogen/generated/android/c++/JDeclaredAgeRangeResult.hpp index 705c406..d35002c 100644 --- a/nitrogen/generated/android/c++/JDeclaredAgeRangeResult.hpp +++ b/nitrogen/generated/android/c++/JDeclaredAgeRangeResult.hpp @@ -10,6 +10,8 @@ #include #include "DeclaredAgeRangeResult.hpp" +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" +#include "JAppleAgeRangeDeclarationUserStatusValues.hpp" #include #include @@ -34,8 +36,8 @@ namespace margelo::nitro::playagerangedeclaration { static const auto clazz = javaClassStatic(); static const auto fieldIsEligible = clazz->getField("isEligible"); jboolean isEligible = this->getFieldValue(fieldIsEligible); - static const auto fieldStatus = clazz->getField("status"); - jni::local_ref status = this->getFieldValue(fieldStatus); + static const auto fieldStatus = clazz->getField("status"); + jni::local_ref status = this->getFieldValue(fieldStatus); static const auto fieldParentControls = clazz->getField("parentControls"); jni::local_ref parentControls = this->getFieldValue(fieldParentControls); static const auto fieldLowerBound = clazz->getField("lowerBound"); @@ -44,7 +46,7 @@ namespace margelo::nitro::playagerangedeclaration { jni::local_ref upperBound = this->getFieldValue(fieldUpperBound); return DeclaredAgeRangeResult( static_cast(isEligible), - status != nullptr ? std::make_optional(status->toStdString()) : std::nullopt, + status != nullptr ? std::make_optional(status->toCpp()) : std::nullopt, parentControls != nullptr ? std::make_optional(parentControls->toStdString()) : std::nullopt, lowerBound != nullptr ? std::make_optional(lowerBound->value()) : std::nullopt, upperBound != nullptr ? std::make_optional(upperBound->value()) : std::nullopt @@ -57,13 +59,13 @@ namespace margelo::nitro::playagerangedeclaration { */ [[maybe_unused]] static jni::local_ref fromCpp(const DeclaredAgeRangeResult& value) { - using JSignature = JDeclaredAgeRangeResult(jboolean, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref); + using JSignature = JDeclaredAgeRangeResult(jboolean, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref); static const auto clazz = javaClassStatic(); static const auto create = clazz->getStaticMethod("fromCpp"); return create( clazz, value.isEligible, - value.status.has_value() ? jni::make_jstring(value.status.value()) : nullptr, + value.status.has_value() ? JAppleAgeRangeDeclarationUserStatusValues::fromCpp(value.status.value()) : nullptr, value.parentControls.has_value() ? jni::make_jstring(value.parentControls.value()) : nullptr, value.lowerBound.has_value() ? jni::JDouble::valueOf(value.lowerBound.value()) : nullptr, value.upperBound.has_value() ? jni::JDouble::valueOf(value.upperBound.value()) : nullptr diff --git a/nitrogen/generated/android/c++/JHybridPlayAgeRangeDeclarationSpec.cpp b/nitrogen/generated/android/c++/JHybridPlayAgeRangeDeclarationSpec.cpp index f7e8961..66f1219 100644 --- a/nitrogen/generated/android/c++/JHybridPlayAgeRangeDeclarationSpec.cpp +++ b/nitrogen/generated/android/c++/JHybridPlayAgeRangeDeclarationSpec.cpp @@ -9,8 +9,12 @@ // Forward declaration of `PlayAgeRangeDeclarationResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct PlayAgeRangeDeclarationResult; } +// Forward declaration of `PlayAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class PlayAgeRangeDeclarationUserStatusValues; } // Forward declaration of `DeclaredAgeRangeResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResult; } +// Forward declaration of `AppleAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class AppleAgeRangeDeclarationUserStatusValues; } #include "PlayAgeRangeDeclarationResult.hpp" #include @@ -18,8 +22,12 @@ namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResul #include "JPlayAgeRangeDeclarationResult.hpp" #include #include +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" +#include "JPlayAgeRangeDeclarationUserStatusValues.hpp" #include "DeclaredAgeRangeResult.hpp" #include "JDeclaredAgeRangeResult.hpp" +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" +#include "JAppleAgeRangeDeclarationUserStatusValues.hpp" namespace margelo::nitro::playagerangedeclaration { diff --git a/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationResult.hpp b/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationResult.hpp index f168d89..6aa4620 100644 --- a/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationResult.hpp +++ b/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationResult.hpp @@ -10,6 +10,8 @@ #include #include "PlayAgeRangeDeclarationResult.hpp" +#include "JPlayAgeRangeDeclarationUserStatusValues.hpp" +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" #include #include @@ -36,8 +38,8 @@ namespace margelo::nitro::playagerangedeclaration { jboolean isEligible = this->getFieldValue(fieldIsEligible); static const auto fieldInstallId = clazz->getField("installId"); jni::local_ref installId = this->getFieldValue(fieldInstallId); - static const auto fieldUserStatus = clazz->getField("userStatus"); - jni::local_ref userStatus = this->getFieldValue(fieldUserStatus); + static const auto fieldUserStatus = clazz->getField("userStatus"); + jni::local_ref userStatus = this->getFieldValue(fieldUserStatus); static const auto fieldError = clazz->getField("error"); jni::local_ref error = this->getFieldValue(fieldError); static const auto fieldAgeLower = clazz->getField("ageLower"); @@ -49,7 +51,7 @@ namespace margelo::nitro::playagerangedeclaration { return PlayAgeRangeDeclarationResult( static_cast(isEligible), installId != nullptr ? std::make_optional(installId->toStdString()) : std::nullopt, - userStatus != nullptr ? std::make_optional(userStatus->toStdString()) : std::nullopt, + userStatus != nullptr ? std::make_optional(userStatus->toCpp()) : std::nullopt, error != nullptr ? std::make_optional(error->toStdString()) : std::nullopt, ageLower != nullptr ? std::make_optional(ageLower->value()) : std::nullopt, ageUpper != nullptr ? std::make_optional(ageUpper->value()) : std::nullopt, @@ -63,14 +65,14 @@ namespace margelo::nitro::playagerangedeclaration { */ [[maybe_unused]] static jni::local_ref fromCpp(const PlayAgeRangeDeclarationResult& value) { - using JSignature = JPlayAgeRangeDeclarationResult(jboolean, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref); + using JSignature = JPlayAgeRangeDeclarationResult(jboolean, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref, jni::alias_ref); static const auto clazz = javaClassStatic(); static const auto create = clazz->getStaticMethod("fromCpp"); return create( clazz, value.isEligible, value.installId.has_value() ? jni::make_jstring(value.installId.value()) : nullptr, - value.userStatus.has_value() ? jni::make_jstring(value.userStatus.value()) : nullptr, + value.userStatus.has_value() ? JPlayAgeRangeDeclarationUserStatusValues::fromCpp(value.userStatus.value()) : nullptr, value.error.has_value() ? jni::make_jstring(value.error.value()) : nullptr, value.ageLower.has_value() ? jni::JDouble::valueOf(value.ageLower.value()) : nullptr, value.ageUpper.has_value() ? jni::JDouble::valueOf(value.ageUpper.value()) : nullptr, diff --git a/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationUserStatusValues.hpp b/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationUserStatusValues.hpp new file mode 100644 index 0000000..11f3cba --- /dev/null +++ b/nitrogen/generated/android/c++/JPlayAgeRangeDeclarationUserStatusValues.hpp @@ -0,0 +1,67 @@ +/// +/// JPlayAgeRangeDeclarationUserStatusValues.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +#pragma once + +#include +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" + +namespace margelo::nitro::playagerangedeclaration { + + using namespace facebook; + + /** + * The C++ JNI bridge between the C++ enum "PlayAgeRangeDeclarationUserStatusValues" and the the Kotlin enum "PlayAgeRangeDeclarationUserStatusValues". + */ + struct JPlayAgeRangeDeclarationUserStatusValues final: public jni::JavaClass { + public: + static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationUserStatusValues;"; + + public: + /** + * Convert this Java/Kotlin-based enum to the C++ enum PlayAgeRangeDeclarationUserStatusValues. + */ + [[maybe_unused]] + [[nodiscard]] + PlayAgeRangeDeclarationUserStatusValues toCpp() const { + static const auto clazz = javaClassStatic(); + static const auto fieldOrdinal = clazz->getField("value"); + int ordinal = this->getFieldValue(fieldOrdinal); + return static_cast(ordinal); + } + + public: + /** + * Create a Java/Kotlin-based enum with the given C++ enum's value. + */ + [[maybe_unused]] + static jni::alias_ref fromCpp(PlayAgeRangeDeclarationUserStatusValues value) { + static const auto clazz = javaClassStatic(); + switch (value) { + case PlayAgeRangeDeclarationUserStatusValues::_0: + static const auto field_0 = clazz->getStaticField("_0"); + return clazz->getStaticFieldValue(field_0); + case PlayAgeRangeDeclarationUserStatusValues::_1: + static const auto field_1 = clazz->getStaticField("_1"); + return clazz->getStaticFieldValue(field_1); + case PlayAgeRangeDeclarationUserStatusValues::_2: + static const auto field_2 = clazz->getStaticField("_2"); + return clazz->getStaticFieldValue(field_2); + case PlayAgeRangeDeclarationUserStatusValues::_3: + static const auto field_3 = clazz->getStaticField("_3"); + return clazz->getStaticFieldValue(field_3); + case PlayAgeRangeDeclarationUserStatusValues::_4: + static const auto field_4 = clazz->getStaticField("_4"); + return clazz->getStaticFieldValue(field_4); + default: + std::string stringValue = std::to_string(static_cast(value)); + throw std::invalid_argument("Invalid enum value (" + stringValue + "!"); + } + } + }; + +} // namespace margelo::nitro::playagerangedeclaration diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/AppleAgeRangeDeclarationUserStatusValues.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/AppleAgeRangeDeclarationUserStatusValues.kt new file mode 100644 index 0000000..e9120b9 --- /dev/null +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/AppleAgeRangeDeclarationUserStatusValues.kt @@ -0,0 +1,31 @@ +/// +/// AppleAgeRangeDeclarationUserStatusValues.kt +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +package com.margelo.nitro.playagerangedeclaration + +import androidx.annotation.Keep +import com.facebook.proguard.annotations.DoNotStrip + +/** + * Represents the JavaScript enum/union "AppleAgeRangeDeclarationUserStatusValues". + */ +@DoNotStrip +@Keep +enum class AppleAgeRangeDeclarationUserStatusValues(@DoNotStrip @Keep val value: Int) { + CHECKEDBYOTHERMETHOD(0), + GOVERNMENTIDCHECKED(1), + GUARDIANCHECKEDBYOTHERMETHOD(2), + GUARDIANDECLARED(3), + GUARDIANGOVERNMENTIDCHECKED(4), + GUARDIANPAYMENTCHECKED(5), + PAYMENTCHECKED(6), + SELFDECLARED(7), + DECLINED(8), + UNKNOWN(9); + + companion object +} diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/DeclaredAgeRangeResult.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/DeclaredAgeRangeResult.kt index 7ca92ac..3874739 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/DeclaredAgeRangeResult.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/DeclaredAgeRangeResult.kt @@ -23,7 +23,7 @@ data class DeclaredAgeRangeResult( val isEligible: Boolean, @DoNotStrip @Keep - val status: String?, + val status: AppleAgeRangeDeclarationUserStatusValues?, @DoNotStrip @Keep val parentControls: String?, @@ -64,7 +64,7 @@ data class DeclaredAgeRangeResult( @Keep @Suppress("unused") @JvmStatic - private fun fromCpp(isEligible: Boolean, status: String?, parentControls: String?, lowerBound: Double?, upperBound: Double?): DeclaredAgeRangeResult { + private fun fromCpp(isEligible: Boolean, status: AppleAgeRangeDeclarationUserStatusValues?, parentControls: String?, lowerBound: Double?, upperBound: Double?): DeclaredAgeRangeResult { return DeclaredAgeRangeResult(isEligible, status, parentControls, lowerBound, upperBound) } } diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationResult.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationResult.kt index 829c74c..bdb37a0 100644 --- a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationResult.kt +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationResult.kt @@ -26,7 +26,7 @@ data class PlayAgeRangeDeclarationResult( val installId: String?, @DoNotStrip @Keep - val userStatus: String?, + val userStatus: PlayAgeRangeDeclarationUserStatusValues?, @DoNotStrip @Keep val error: String?, @@ -74,7 +74,7 @@ data class PlayAgeRangeDeclarationResult( @Keep @Suppress("unused") @JvmStatic - private fun fromCpp(isEligible: Boolean, installId: String?, userStatus: String?, error: String?, ageLower: Double?, ageUpper: Double?, mostRecentApprovalDate: String?): PlayAgeRangeDeclarationResult { + private fun fromCpp(isEligible: Boolean, installId: String?, userStatus: PlayAgeRangeDeclarationUserStatusValues?, error: String?, ageLower: Double?, ageUpper: Double?, mostRecentApprovalDate: String?): PlayAgeRangeDeclarationResult { return PlayAgeRangeDeclarationResult(isEligible, installId, userStatus, error, ageLower, ageUpper, mostRecentApprovalDate) } } diff --git a/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationUserStatusValues.kt b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationUserStatusValues.kt new file mode 100644 index 0000000..a82907b --- /dev/null +++ b/nitrogen/generated/android/kotlin/com/margelo/nitro/playagerangedeclaration/PlayAgeRangeDeclarationUserStatusValues.kt @@ -0,0 +1,26 @@ +/// +/// PlayAgeRangeDeclarationUserStatusValues.kt +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +package com.margelo.nitro.playagerangedeclaration + +import androidx.annotation.Keep +import com.facebook.proguard.annotations.DoNotStrip + +/** + * Represents the JavaScript enum/union "PlayAgeRangeDeclarationUserStatusValues". + */ +@DoNotStrip +@Keep +enum class PlayAgeRangeDeclarationUserStatusValues(@DoNotStrip @Keep val value: Int) { + _0(0), + _1(1), + _2(2), + _3(3), + _4(4); + + companion object +} diff --git a/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Bridge.hpp b/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Bridge.hpp index a65fe24..943ac3e 100644 --- a/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Bridge.hpp +++ b/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Bridge.hpp @@ -8,21 +8,27 @@ #pragma once // Forward declarations of C++ defined types +// Forward declaration of `AppleAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class AppleAgeRangeDeclarationUserStatusValues; } // Forward declaration of `DeclaredAgeRangeResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResult; } // Forward declaration of `HybridPlayAgeRangeDeclarationSpec` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { class HybridPlayAgeRangeDeclarationSpec; } // Forward declaration of `PlayAgeRangeDeclarationResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct PlayAgeRangeDeclarationResult; } +// Forward declaration of `PlayAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class PlayAgeRangeDeclarationUserStatusValues; } // Forward declarations of Swift defined types // Forward declaration of `HybridPlayAgeRangeDeclarationSpec_cxx` to properly resolve imports. namespace PlayAgeRangeDeclaration { class HybridPlayAgeRangeDeclarationSpec_cxx; } // Include C++ defined types +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" #include "DeclaredAgeRangeResult.hpp" #include "HybridPlayAgeRangeDeclarationSpec.hpp" #include "PlayAgeRangeDeclarationResult.hpp" +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" #include #include #include @@ -53,6 +59,21 @@ namespace margelo::nitro::playagerangedeclaration::bridge::swift { return optional.value(); } + // pragma MARK: std::optional + /** + * Specialized version of `std::optional`. + */ + using std__optional_PlayAgeRangeDeclarationUserStatusValues_ = std::optional; + inline std::optional create_std__optional_PlayAgeRangeDeclarationUserStatusValues_(const PlayAgeRangeDeclarationUserStatusValues& value) noexcept { + return std::optional(value); + } + inline bool has_value_std__optional_PlayAgeRangeDeclarationUserStatusValues_(const std::optional& optional) noexcept { + return optional.has_value(); + } + inline PlayAgeRangeDeclarationUserStatusValues get_std__optional_PlayAgeRangeDeclarationUserStatusValues_(const std::optional& optional) noexcept { + return optional.value(); + } + // pragma MARK: std::optional /** * Specialized version of `std::optional`. @@ -124,6 +145,21 @@ namespace margelo::nitro::playagerangedeclaration::bridge::swift { return Func_void_std__exception_ptr_Wrapper(std::move(value)); } + // pragma MARK: std::optional + /** + * Specialized version of `std::optional`. + */ + using std__optional_AppleAgeRangeDeclarationUserStatusValues_ = std::optional; + inline std::optional create_std__optional_AppleAgeRangeDeclarationUserStatusValues_(const AppleAgeRangeDeclarationUserStatusValues& value) noexcept { + return std::optional(value); + } + inline bool has_value_std__optional_AppleAgeRangeDeclarationUserStatusValues_(const std::optional& optional) noexcept { + return optional.has_value(); + } + inline AppleAgeRangeDeclarationUserStatusValues get_std__optional_AppleAgeRangeDeclarationUserStatusValues_(const std::optional& optional) noexcept { + return optional.value(); + } + // pragma MARK: std::shared_ptr> /** * Specialized version of `std::shared_ptr>`. diff --git a/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Umbrella.hpp b/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Umbrella.hpp index e419e39..69c6219 100644 --- a/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Umbrella.hpp +++ b/nitrogen/generated/ios/PlayAgeRangeDeclaration-Swift-Cxx-Umbrella.hpp @@ -8,17 +8,23 @@ #pragma once // Forward declarations of C++ defined types +// Forward declaration of `AppleAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class AppleAgeRangeDeclarationUserStatusValues; } // Forward declaration of `DeclaredAgeRangeResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResult; } // Forward declaration of `HybridPlayAgeRangeDeclarationSpec` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { class HybridPlayAgeRangeDeclarationSpec; } // Forward declaration of `PlayAgeRangeDeclarationResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct PlayAgeRangeDeclarationResult; } +// Forward declaration of `PlayAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class PlayAgeRangeDeclarationUserStatusValues; } // Include C++ defined types +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" #include "DeclaredAgeRangeResult.hpp" #include "HybridPlayAgeRangeDeclarationSpec.hpp" #include "PlayAgeRangeDeclarationResult.hpp" +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" #include #include #include diff --git a/nitrogen/generated/ios/c++/HybridPlayAgeRangeDeclarationSpecSwift.hpp b/nitrogen/generated/ios/c++/HybridPlayAgeRangeDeclarationSpecSwift.hpp index 0a2cb2c..93fc368 100644 --- a/nitrogen/generated/ios/c++/HybridPlayAgeRangeDeclarationSpecSwift.hpp +++ b/nitrogen/generated/ios/c++/HybridPlayAgeRangeDeclarationSpecSwift.hpp @@ -14,14 +14,20 @@ namespace PlayAgeRangeDeclaration { class HybridPlayAgeRangeDeclarationSpec_cxx; // Forward declaration of `PlayAgeRangeDeclarationResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct PlayAgeRangeDeclarationResult; } +// Forward declaration of `PlayAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class PlayAgeRangeDeclarationUserStatusValues; } // Forward declaration of `DeclaredAgeRangeResult` to properly resolve imports. namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResult; } +// Forward declaration of `AppleAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class AppleAgeRangeDeclarationUserStatusValues; } #include "PlayAgeRangeDeclarationResult.hpp" #include #include #include +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" #include "DeclaredAgeRangeResult.hpp" +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" #include "PlayAgeRangeDeclaration-Swift-Cxx-Umbrella.hpp" diff --git a/nitrogen/generated/ios/swift/AppleAgeRangeDeclarationUserStatusValues.swift b/nitrogen/generated/ios/swift/AppleAgeRangeDeclarationUserStatusValues.swift new file mode 100644 index 0000000..4023095 --- /dev/null +++ b/nitrogen/generated/ios/swift/AppleAgeRangeDeclarationUserStatusValues.swift @@ -0,0 +1,72 @@ +/// +/// AppleAgeRangeDeclarationUserStatusValues.swift +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +/** + * Represents the JS union `AppleAgeRangeDeclarationUserStatusValues`, backed by a C++ enum. + */ +public typealias AppleAgeRangeDeclarationUserStatusValues = margelo.nitro.playagerangedeclaration.AppleAgeRangeDeclarationUserStatusValues + +public extension AppleAgeRangeDeclarationUserStatusValues { + /** + * Get a AppleAgeRangeDeclarationUserStatusValues for the given String value, or + * return `nil` if the given value was invalid/unknown. + */ + init?(fromString string: String) { + switch string { + case "checkedByOtherMethod": + self = .checkedbyothermethod + case "governmentIDChecked": + self = .governmentidchecked + case "guardianCheckedByOtherMethod": + self = .guardiancheckedbyothermethod + case "guardianDeclared": + self = .guardiandeclared + case "guardianGovernmentIDChecked": + self = .guardiangovernmentidchecked + case "guardianPaymentChecked": + self = .guardianpaymentchecked + case "paymentChecked": + self = .paymentchecked + case "selfDeclared": + self = .selfdeclared + case "declined": + self = .declined + case "unknown": + self = .unknown + default: + return nil + } + } + + /** + * Get the String value this AppleAgeRangeDeclarationUserStatusValues represents. + */ + var stringValue: String { + switch self { + case .checkedbyothermethod: + return "checkedByOtherMethod" + case .governmentidchecked: + return "governmentIDChecked" + case .guardiancheckedbyothermethod: + return "guardianCheckedByOtherMethod" + case .guardiandeclared: + return "guardianDeclared" + case .guardiangovernmentidchecked: + return "guardianGovernmentIDChecked" + case .guardianpaymentchecked: + return "guardianPaymentChecked" + case .paymentchecked: + return "paymentChecked" + case .selfdeclared: + return "selfDeclared" + case .declined: + return "declined" + case .unknown: + return "unknown" + } + } +} diff --git a/nitrogen/generated/ios/swift/DeclaredAgeRangeResult.swift b/nitrogen/generated/ios/swift/DeclaredAgeRangeResult.swift index 8e34f35..8e86e3d 100644 --- a/nitrogen/generated/ios/swift/DeclaredAgeRangeResult.swift +++ b/nitrogen/generated/ios/swift/DeclaredAgeRangeResult.swift @@ -18,10 +18,10 @@ public extension DeclaredAgeRangeResult { /** * Create a new instance of `DeclaredAgeRangeResult`. */ - init(isEligible: Bool, status: String?, parentControls: String?, lowerBound: Double?, upperBound: Double?) { - self.init(isEligible, { () -> bridge.std__optional_std__string_ in + init(isEligible: Bool, status: AppleAgeRangeDeclarationUserStatusValues?, parentControls: String?, lowerBound: Double?, upperBound: Double?) { + self.init(isEligible, { () -> bridge.std__optional_AppleAgeRangeDeclarationUserStatusValues_ in if let __unwrappedValue = status { - return bridge.create_std__optional_std__string_(std.string(__unwrappedValue)) + return bridge.create_std__optional_AppleAgeRangeDeclarationUserStatusValues_(__unwrappedValue) } else { return .init() } @@ -52,15 +52,8 @@ public extension DeclaredAgeRangeResult { } @inline(__always) - var status: String? { - return { () -> String? in - if bridge.has_value_std__optional_std__string_(self.__status) { - let __unwrapped = bridge.get_std__optional_std__string_(self.__status) - return String(__unwrapped) - } else { - return nil - } - }() + var status: AppleAgeRangeDeclarationUserStatusValues? { + return self.__status.value } @inline(__always) diff --git a/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationResult.swift b/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationResult.swift index cd141cd..6a071eb 100644 --- a/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationResult.swift +++ b/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationResult.swift @@ -18,16 +18,16 @@ public extension PlayAgeRangeDeclarationResult { /** * Create a new instance of `PlayAgeRangeDeclarationResult`. */ - init(isEligible: Bool, installId: String?, userStatus: String?, error: String?, ageLower: Double?, ageUpper: Double?, mostRecentApprovalDate: String?) { + init(isEligible: Bool, installId: String?, userStatus: PlayAgeRangeDeclarationUserStatusValues?, error: String?, ageLower: Double?, ageUpper: Double?, mostRecentApprovalDate: String?) { self.init(isEligible, { () -> bridge.std__optional_std__string_ in if let __unwrappedValue = installId { return bridge.create_std__optional_std__string_(std.string(__unwrappedValue)) } else { return .init() } - }(), { () -> bridge.std__optional_std__string_ in + }(), { () -> bridge.std__optional_PlayAgeRangeDeclarationUserStatusValues_ in if let __unwrappedValue = userStatus { - return bridge.create_std__optional_std__string_(std.string(__unwrappedValue)) + return bridge.create_std__optional_PlayAgeRangeDeclarationUserStatusValues_(__unwrappedValue) } else { return .init() } @@ -76,15 +76,8 @@ public extension PlayAgeRangeDeclarationResult { } @inline(__always) - var userStatus: String? { - return { () -> String? in - if bridge.has_value_std__optional_std__string_(self.__userStatus) { - let __unwrapped = bridge.get_std__optional_std__string_(self.__userStatus) - return String(__unwrapped) - } else { - return nil - } - }() + var userStatus: PlayAgeRangeDeclarationUserStatusValues? { + return self.__userStatus.value } @inline(__always) diff --git a/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationUserStatusValues.swift b/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationUserStatusValues.swift new file mode 100644 index 0000000..5c933e9 --- /dev/null +++ b/nitrogen/generated/ios/swift/PlayAgeRangeDeclarationUserStatusValues.swift @@ -0,0 +1,52 @@ +/// +/// PlayAgeRangeDeclarationUserStatusValues.swift +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +/** + * Represents the JS union `PlayAgeRangeDeclarationUserStatusValues`, backed by a C++ enum. + */ +public typealias PlayAgeRangeDeclarationUserStatusValues = margelo.nitro.playagerangedeclaration.PlayAgeRangeDeclarationUserStatusValues + +public extension PlayAgeRangeDeclarationUserStatusValues { + /** + * Get a PlayAgeRangeDeclarationUserStatusValues for the given String value, or + * return `nil` if the given value was invalid/unknown. + */ + init?(fromString string: String) { + switch string { + case "0": + self = .0 + case "1": + self = .1 + case "2": + self = .2 + case "3": + self = .3 + case "4": + self = .4 + default: + return nil + } + } + + /** + * Get the String value this PlayAgeRangeDeclarationUserStatusValues represents. + */ + var stringValue: String { + switch self { + case .0: + return "0" + case .1: + return "1" + case .2: + return "2" + case .3: + return "3" + case .4: + return "4" + } + } +} diff --git a/nitrogen/generated/shared/c++/AppleAgeRangeDeclarationUserStatusValues.hpp b/nitrogen/generated/shared/c++/AppleAgeRangeDeclarationUserStatusValues.hpp new file mode 100644 index 0000000..e4d282d --- /dev/null +++ b/nitrogen/generated/shared/c++/AppleAgeRangeDeclarationUserStatusValues.hpp @@ -0,0 +1,108 @@ +/// +/// AppleAgeRangeDeclarationUserStatusValues.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::playagerangedeclaration { + + /** + * An enum which can be represented as a JavaScript union (AppleAgeRangeDeclarationUserStatusValues). + */ + enum class AppleAgeRangeDeclarationUserStatusValues { + CHECKEDBYOTHERMETHOD SWIFT_NAME(checkedbyothermethod) = 0, + GOVERNMENTIDCHECKED SWIFT_NAME(governmentidchecked) = 1, + GUARDIANCHECKEDBYOTHERMETHOD SWIFT_NAME(guardiancheckedbyothermethod) = 2, + GUARDIANDECLARED SWIFT_NAME(guardiandeclared) = 3, + GUARDIANGOVERNMENTIDCHECKED SWIFT_NAME(guardiangovernmentidchecked) = 4, + GUARDIANPAYMENTCHECKED SWIFT_NAME(guardianpaymentchecked) = 5, + PAYMENTCHECKED SWIFT_NAME(paymentchecked) = 6, + SELFDECLARED SWIFT_NAME(selfdeclared) = 7, + DECLINED SWIFT_NAME(declined) = 8, + UNKNOWN SWIFT_NAME(unknown) = 9, + } CLOSED_ENUM; + +} // namespace margelo::nitro::playagerangedeclaration + +namespace margelo::nitro { + + // C++ AppleAgeRangeDeclarationUserStatusValues <> JS AppleAgeRangeDeclarationUserStatusValues (union) + template <> + struct JSIConverter final { + static inline margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("checkedByOtherMethod"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::CHECKEDBYOTHERMETHOD; + case hashString("governmentIDChecked"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GOVERNMENTIDCHECKED; + case hashString("guardianCheckedByOtherMethod"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANCHECKEDBYOTHERMETHOD; + case hashString("guardianDeclared"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANDECLARED; + case hashString("guardianGovernmentIDChecked"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANGOVERNMENTIDCHECKED; + case hashString("guardianPaymentChecked"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANPAYMENTCHECKED; + case hashString("paymentChecked"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::PAYMENTCHECKED; + case hashString("selfDeclared"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::SELFDECLARED; + case hashString("declined"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::DECLINED; + case hashString("unknown"): return margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::UNKNOWN; + default: [[unlikely]] + throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum AppleAgeRangeDeclarationUserStatusValues - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues arg) { + switch (arg) { + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::CHECKEDBYOTHERMETHOD: return JSIConverter::toJSI(runtime, "checkedByOtherMethod"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GOVERNMENTIDCHECKED: return JSIConverter::toJSI(runtime, "governmentIDChecked"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANCHECKEDBYOTHERMETHOD: return JSIConverter::toJSI(runtime, "guardianCheckedByOtherMethod"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANDECLARED: return JSIConverter::toJSI(runtime, "guardianDeclared"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANGOVERNMENTIDCHECKED: return JSIConverter::toJSI(runtime, "guardianGovernmentIDChecked"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::GUARDIANPAYMENTCHECKED: return JSIConverter::toJSI(runtime, "guardianPaymentChecked"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::PAYMENTCHECKED: return JSIConverter::toJSI(runtime, "paymentChecked"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::SELFDECLARED: return JSIConverter::toJSI(runtime, "selfDeclared"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::DECLINED: return JSIConverter::toJSI(runtime, "declined"); + case margelo::nitro::playagerangedeclaration::AppleAgeRangeDeclarationUserStatusValues::UNKNOWN: return JSIConverter::toJSI(runtime, "unknown"); + default: [[unlikely]] + throw std::invalid_argument("Cannot convert AppleAgeRangeDeclarationUserStatusValues to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("checkedByOtherMethod"): + case hashString("governmentIDChecked"): + case hashString("guardianCheckedByOtherMethod"): + case hashString("guardianDeclared"): + case hashString("guardianGovernmentIDChecked"): + case hashString("guardianPaymentChecked"): + case hashString("paymentChecked"): + case hashString("selfDeclared"): + case hashString("declined"): + case hashString("unknown"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro diff --git a/nitrogen/generated/shared/c++/DeclaredAgeRangeResult.hpp b/nitrogen/generated/shared/c++/DeclaredAgeRangeResult.hpp index 2ea0632..a38f2e4 100644 --- a/nitrogen/generated/shared/c++/DeclaredAgeRangeResult.hpp +++ b/nitrogen/generated/shared/c++/DeclaredAgeRangeResult.hpp @@ -28,10 +28,12 @@ #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif +// Forward declaration of `AppleAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class AppleAgeRangeDeclarationUserStatusValues; } - -#include +#include "AppleAgeRangeDeclarationUserStatusValues.hpp" #include +#include namespace margelo::nitro::playagerangedeclaration { @@ -41,14 +43,14 @@ namespace margelo::nitro::playagerangedeclaration { struct DeclaredAgeRangeResult final { public: bool isEligible SWIFT_PRIVATE; - std::optional status SWIFT_PRIVATE; + std::optional status SWIFT_PRIVATE; std::optional parentControls SWIFT_PRIVATE; std::optional lowerBound SWIFT_PRIVATE; std::optional upperBound SWIFT_PRIVATE; public: DeclaredAgeRangeResult() = default; - explicit DeclaredAgeRangeResult(bool isEligible, std::optional status, std::optional parentControls, std::optional lowerBound, std::optional upperBound): isEligible(isEligible), status(status), parentControls(parentControls), lowerBound(lowerBound), upperBound(upperBound) {} + explicit DeclaredAgeRangeResult(bool isEligible, std::optional status, std::optional parentControls, std::optional lowerBound, std::optional upperBound): isEligible(isEligible), status(status), parentControls(parentControls), lowerBound(lowerBound), upperBound(upperBound) {} public: friend bool operator==(const DeclaredAgeRangeResult& lhs, const DeclaredAgeRangeResult& rhs) = default; @@ -65,7 +67,7 @@ namespace margelo::nitro { jsi::Object obj = arg.asObject(runtime); return margelo::nitro::playagerangedeclaration::DeclaredAgeRangeResult( JSIConverter::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isEligible"))), - JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "status"))), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "status"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "parentControls"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lowerBound"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "upperBound"))) @@ -74,7 +76,7 @@ namespace margelo::nitro { static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::playagerangedeclaration::DeclaredAgeRangeResult& arg) { jsi::Object obj(runtime); obj.setProperty(runtime, PropNameIDCache::get(runtime, "isEligible"), JSIConverter::toJSI(runtime, arg.isEligible)); - obj.setProperty(runtime, PropNameIDCache::get(runtime, "status"), JSIConverter>::toJSI(runtime, arg.status)); + obj.setProperty(runtime, PropNameIDCache::get(runtime, "status"), JSIConverter>::toJSI(runtime, arg.status)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "parentControls"), JSIConverter>::toJSI(runtime, arg.parentControls)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "lowerBound"), JSIConverter>::toJSI(runtime, arg.lowerBound)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "upperBound"), JSIConverter>::toJSI(runtime, arg.upperBound)); @@ -89,7 +91,7 @@ namespace margelo::nitro { return false; } if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isEligible")))) return false; - if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "status")))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "status")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "parentControls")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "lowerBound")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "upperBound")))) return false; diff --git a/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationResult.hpp b/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationResult.hpp index ae7327c..031a610 100644 --- a/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationResult.hpp +++ b/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationResult.hpp @@ -28,10 +28,12 @@ #error NitroModules cannot be found! Are you sure you installed NitroModules properly? #endif - +// Forward declaration of `PlayAgeRangeDeclarationUserStatusValues` to properly resolve imports. +namespace margelo::nitro::playagerangedeclaration { enum class PlayAgeRangeDeclarationUserStatusValues; } #include #include +#include "PlayAgeRangeDeclarationUserStatusValues.hpp" namespace margelo::nitro::playagerangedeclaration { @@ -42,7 +44,7 @@ namespace margelo::nitro::playagerangedeclaration { public: bool isEligible SWIFT_PRIVATE; std::optional installId SWIFT_PRIVATE; - std::optional userStatus SWIFT_PRIVATE; + std::optional userStatus SWIFT_PRIVATE; std::optional error SWIFT_PRIVATE; std::optional ageLower SWIFT_PRIVATE; std::optional ageUpper SWIFT_PRIVATE; @@ -50,7 +52,7 @@ namespace margelo::nitro::playagerangedeclaration { public: PlayAgeRangeDeclarationResult() = default; - explicit PlayAgeRangeDeclarationResult(bool isEligible, std::optional installId, std::optional userStatus, std::optional error, std::optional ageLower, std::optional ageUpper, std::optional mostRecentApprovalDate): isEligible(isEligible), installId(installId), userStatus(userStatus), error(error), ageLower(ageLower), ageUpper(ageUpper), mostRecentApprovalDate(mostRecentApprovalDate) {} + explicit PlayAgeRangeDeclarationResult(bool isEligible, std::optional installId, std::optional userStatus, std::optional error, std::optional ageLower, std::optional ageUpper, std::optional mostRecentApprovalDate): isEligible(isEligible), installId(installId), userStatus(userStatus), error(error), ageLower(ageLower), ageUpper(ageUpper), mostRecentApprovalDate(mostRecentApprovalDate) {} public: friend bool operator==(const PlayAgeRangeDeclarationResult& lhs, const PlayAgeRangeDeclarationResult& rhs) = default; @@ -68,7 +70,7 @@ namespace margelo::nitro { return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationResult( JSIConverter::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isEligible"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "installId"))), - JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userStatus"))), + JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userStatus"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "error"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ageLower"))), JSIConverter>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ageUpper"))), @@ -79,7 +81,7 @@ namespace margelo::nitro { jsi::Object obj(runtime); obj.setProperty(runtime, PropNameIDCache::get(runtime, "isEligible"), JSIConverter::toJSI(runtime, arg.isEligible)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "installId"), JSIConverter>::toJSI(runtime, arg.installId)); - obj.setProperty(runtime, PropNameIDCache::get(runtime, "userStatus"), JSIConverter>::toJSI(runtime, arg.userStatus)); + obj.setProperty(runtime, PropNameIDCache::get(runtime, "userStatus"), JSIConverter>::toJSI(runtime, arg.userStatus)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "error"), JSIConverter>::toJSI(runtime, arg.error)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "ageLower"), JSIConverter>::toJSI(runtime, arg.ageLower)); obj.setProperty(runtime, PropNameIDCache::get(runtime, "ageUpper"), JSIConverter>::toJSI(runtime, arg.ageUpper)); @@ -96,7 +98,7 @@ namespace margelo::nitro { } if (!JSIConverter::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "isEligible")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "installId")))) return false; - if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userStatus")))) return false; + if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "userStatus")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "error")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ageLower")))) return false; if (!JSIConverter>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "ageUpper")))) return false; diff --git a/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationUserStatusValues.hpp b/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationUserStatusValues.hpp new file mode 100644 index 0000000..c81b96d --- /dev/null +++ b/nitrogen/generated/shared/c++/PlayAgeRangeDeclarationUserStatusValues.hpp @@ -0,0 +1,88 @@ +/// +/// PlayAgeRangeDeclarationUserStatusValues.hpp +/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. +/// https://github.com/mrousavy/nitro +/// Copyright © Marc Rousavy @ Margelo +/// + +#pragma once + +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif +#if __has_include() +#include +#else +#error NitroModules cannot be found! Are you sure you installed NitroModules properly? +#endif + +namespace margelo::nitro::playagerangedeclaration { + + /** + * An enum which can be represented as a JavaScript union (PlayAgeRangeDeclarationUserStatusValues). + */ + enum class PlayAgeRangeDeclarationUserStatusValues { + _0 SWIFT_NAME(0) = 0, + _1 SWIFT_NAME(1) = 1, + _2 SWIFT_NAME(2) = 2, + _3 SWIFT_NAME(3) = 3, + _4 SWIFT_NAME(4) = 4, + } CLOSED_ENUM; + +} // namespace margelo::nitro::playagerangedeclaration + +namespace margelo::nitro { + + // C++ PlayAgeRangeDeclarationUserStatusValues <> JS PlayAgeRangeDeclarationUserStatusValues (union) + template <> + struct JSIConverter final { + static inline margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) { + std::string unionValue = JSIConverter::fromJSI(runtime, arg); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("0"): return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_0; + case hashString("1"): return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_1; + case hashString("2"): return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_2; + case hashString("3"): return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_3; + case hashString("4"): return margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_4; + default: [[unlikely]] + throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum PlayAgeRangeDeclarationUserStatusValues - invalid value!"); + } + } + static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues arg) { + switch (arg) { + case margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_0: return JSIConverter::toJSI(runtime, "0"); + case margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_1: return JSIConverter::toJSI(runtime, "1"); + case margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_2: return JSIConverter::toJSI(runtime, "2"); + case margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_3: return JSIConverter::toJSI(runtime, "3"); + case margelo::nitro::playagerangedeclaration::PlayAgeRangeDeclarationUserStatusValues::_4: return JSIConverter::toJSI(runtime, "4"); + default: [[unlikely]] + throw std::invalid_argument("Cannot convert PlayAgeRangeDeclarationUserStatusValues to JS - invalid value: " + + std::to_string(static_cast(arg)) + "!"); + } + } + static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) { + if (!value.isString()) { + return false; + } + std::string unionValue = JSIConverter::fromJSI(runtime, value); + switch (hashString(unionValue.c_str(), unionValue.size())) { + case hashString("0"): + case hashString("1"): + case hashString("2"): + case hashString("3"): + case hashString("4"): + return true; + default: + return false; + } + } + }; + +} // namespace margelo::nitro