react-native-nitro-version-check 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/nitrogen/generated/android/NitroVersionCheckOnLoad.cpp +11 -4
- package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.cpp +26 -32
- package/nitrogen/generated/android/c++/JHybridVersionCheckSpec.hpp +19 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitroversioncheck/HybridVersionCheckSpec.kt +15 -18
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -38,6 +38,8 @@ if (await VersionCheck.needsUpdate()) {
|
|
|
38
38
|
bun add react-native-nitro-version-check
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
+
> **Version 2.x and newer requires Nitro 0.35+** — for earlier versions, use version 1.x
|
|
42
|
+
>
|
|
41
43
|
> Check the [full installation guide](https://alshehriali0.github.io/react-native-nitro-version-check/docs/installation) for platform setup and additional dependencies.
|
|
42
44
|
|
|
43
45
|
## Documentation
|
|
@@ -45,6 +47,7 @@ bun add react-native-nitro-version-check
|
|
|
45
47
|
- [**Nitro Version Check** docs 📚](https://alshehriali0.github.io/react-native-nitro-version-check/)
|
|
46
48
|
- [**Getting Started** guide](https://alshehriali0.github.io/react-native-nitro-version-check/docs/getting-started)
|
|
47
49
|
- [**Installation** guide](https://alshehriali0.github.io/react-native-nitro-version-check/docs/installation)
|
|
50
|
+
- [**Compatibility** guide](https://alshehriali0.github.io/react-native-nitro-version-check/docs/compatibility)
|
|
48
51
|
- [**API Reference**](https://alshehriali0.github.io/react-native-nitro-version-check/docs/api-reference)
|
|
49
52
|
- [**Migration Guide** from react-native-version-check](https://alshehriali0.github.io/react-native-nitro-version-check/docs/migration-guide)
|
|
50
53
|
|
|
@@ -26,20 +26,27 @@ int initialize(JavaVM* vm) {
|
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
struct JHybridVersionCheckSpecImpl: public jni::JavaClass<JHybridVersionCheckSpecImpl, JHybridVersionCheckSpec::JavaPart> {
|
|
30
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroversioncheck/HybridVersionCheck;";
|
|
31
|
+
static std::shared_ptr<JHybridVersionCheckSpec> create() {
|
|
32
|
+
static auto constructorFn = javaClassStatic()->getConstructor<JHybridVersionCheckSpecImpl::javaobject()>();
|
|
33
|
+
jni::local_ref<JHybridVersionCheckSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
34
|
+
return javaPart->getJHybridVersionCheckSpec();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
29
38
|
void registerAllNatives() {
|
|
30
39
|
using namespace margelo::nitro;
|
|
31
40
|
using namespace margelo::nitro::nitroversioncheck;
|
|
32
41
|
|
|
33
42
|
// Register native JNI methods
|
|
34
|
-
margelo::nitro::nitroversioncheck::JHybridVersionCheckSpec::registerNatives();
|
|
43
|
+
margelo::nitro::nitroversioncheck::JHybridVersionCheckSpec::CxxPart::registerNatives();
|
|
35
44
|
|
|
36
45
|
// Register Nitro Hybrid Objects
|
|
37
46
|
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
38
47
|
"VersionCheck",
|
|
39
48
|
[]() -> std::shared_ptr<HybridObject> {
|
|
40
|
-
|
|
41
|
-
auto instance = object.create();
|
|
42
|
-
return instance->cthis()->shared();
|
|
49
|
+
return JHybridVersionCheckSpecImpl::create();
|
|
43
50
|
}
|
|
44
51
|
);
|
|
45
52
|
}
|
|
@@ -16,69 +16,63 @@
|
|
|
16
16
|
|
|
17
17
|
namespace margelo::nitro::nitroversioncheck {
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
});
|
|
19
|
+
std::shared_ptr<JHybridVersionCheckSpec> JHybridVersionCheckSpec::JavaPart::getJHybridVersionCheckSpec() {
|
|
20
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
21
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridVersionCheckSpec>(hybridObject);
|
|
22
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
23
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridVersionCheckSpec!");
|
|
24
|
+
}
|
|
25
|
+
return castHybridObject;
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return method(_javaPart);
|
|
28
|
+
jni::local_ref<JHybridVersionCheckSpec::CxxPart::jhybriddata> JHybridVersionCheckSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
29
|
+
return makeCxxInstance(jThis);
|
|
32
30
|
}
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
std::shared_ptr<JHybridObject> JHybridVersionCheckSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
33
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridVersionCheckSpec::JavaPart>(javaPart);
|
|
34
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
35
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridVersionCheckSpec::JavaPart!");
|
|
37
36
|
}
|
|
38
|
-
return
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
void JHybridVersionCheckSpec::dispose() noexcept {
|
|
42
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
43
|
-
method(_javaPart);
|
|
37
|
+
return std::make_shared<JHybridVersionCheckSpec>(castJavaPart);
|
|
44
38
|
}
|
|
45
39
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
void JHybridVersionCheckSpec::CxxPart::registerNatives() {
|
|
41
|
+
registerHybrid({
|
|
42
|
+
makeNativeMethod("initHybrid", JHybridVersionCheckSpec::CxxPart::initHybrid),
|
|
43
|
+
});
|
|
50
44
|
}
|
|
51
45
|
|
|
52
46
|
// Properties
|
|
53
47
|
std::string JHybridVersionCheckSpec::getVersion() {
|
|
54
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getVersion");
|
|
48
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getVersion");
|
|
55
49
|
auto __result = method(_javaPart);
|
|
56
50
|
return __result->toStdString();
|
|
57
51
|
}
|
|
58
52
|
std::string JHybridVersionCheckSpec::getBuildNumber() {
|
|
59
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBuildNumber");
|
|
53
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getBuildNumber");
|
|
60
54
|
auto __result = method(_javaPart);
|
|
61
55
|
return __result->toStdString();
|
|
62
56
|
}
|
|
63
57
|
std::string JHybridVersionCheckSpec::getPackageName() {
|
|
64
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getPackageName");
|
|
58
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getPackageName");
|
|
65
59
|
auto __result = method(_javaPart);
|
|
66
60
|
return __result->toStdString();
|
|
67
61
|
}
|
|
68
62
|
std::optional<std::string> JHybridVersionCheckSpec::getInstallSource() {
|
|
69
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getInstallSource");
|
|
63
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getInstallSource");
|
|
70
64
|
auto __result = method(_javaPart);
|
|
71
65
|
return __result != nullptr ? std::make_optional(__result->toStdString()) : std::nullopt;
|
|
72
66
|
}
|
|
73
67
|
|
|
74
68
|
// Methods
|
|
75
69
|
std::string JHybridVersionCheckSpec::getCountry() {
|
|
76
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getCountry");
|
|
70
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>()>("getCountry");
|
|
77
71
|
auto __result = method(_javaPart);
|
|
78
72
|
return __result->toStdString();
|
|
79
73
|
}
|
|
80
74
|
std::shared_ptr<Promise<std::string>> JHybridVersionCheckSpec::getStoreUrl(const std::optional<std::string>& countryCode) {
|
|
81
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* countryCode */)>("getStoreUrl");
|
|
75
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* countryCode */)>("getStoreUrl");
|
|
82
76
|
auto __result = method(_javaPart, countryCode.has_value() ? jni::make_jstring(countryCode.value()) : nullptr);
|
|
83
77
|
return [&]() {
|
|
84
78
|
auto __promise = Promise<std::string>::create();
|
|
@@ -94,7 +88,7 @@ namespace margelo::nitro::nitroversioncheck {
|
|
|
94
88
|
}();
|
|
95
89
|
}
|
|
96
90
|
std::shared_ptr<Promise<std::string>> JHybridVersionCheckSpec::getLatestVersion(const std::optional<std::string>& countryCode) {
|
|
97
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* countryCode */)>("getLatestVersion");
|
|
91
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* countryCode */)>("getLatestVersion");
|
|
98
92
|
auto __result = method(_javaPart, countryCode.has_value() ? jni::make_jstring(countryCode.value()) : nullptr);
|
|
99
93
|
return [&]() {
|
|
100
94
|
auto __promise = Promise<std::string>::create();
|
|
@@ -110,7 +104,7 @@ namespace margelo::nitro::nitroversioncheck {
|
|
|
110
104
|
}();
|
|
111
105
|
}
|
|
112
106
|
std::shared_ptr<Promise<bool>> JHybridVersionCheckSpec::needsUpdate() {
|
|
113
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("needsUpdate");
|
|
107
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("needsUpdate");
|
|
114
108
|
auto __result = method(_javaPart);
|
|
115
109
|
return [&]() {
|
|
116
110
|
auto __promise = Promise<bool>::create();
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitroversioncheck {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridVersionCheckSpec: public
|
|
22
|
-
public virtual HybridVersionCheckSpec {
|
|
21
|
+
class JHybridVersionCheckSpec: public virtual HybridVersionCheckSpec, public virtual JHybridObject {
|
|
23
22
|
public:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
HybridBase
|
|
33
|
-
|
|
23
|
+
struct JavaPart: public jni::JavaClass<JavaPart, JHybridObject::JavaPart> {
|
|
24
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroversioncheck/HybridVersionCheckSpec;";
|
|
25
|
+
std::shared_ptr<JHybridVersionCheckSpec> getJHybridVersionCheckSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/nitroversioncheck/HybridVersionCheckSpec$CxxPart;";
|
|
29
|
+
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis);
|
|
30
|
+
static void registerNatives();
|
|
31
|
+
using HybridBase::HybridBase;
|
|
32
|
+
protected:
|
|
33
|
+
std::shared_ptr<JHybridObject> createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) override;
|
|
34
|
+
};
|
|
34
35
|
|
|
35
36
|
public:
|
|
37
|
+
explicit JHybridVersionCheckSpec(const jni::local_ref<JHybridVersionCheckSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridVersionCheckSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridVersionCheckSpec() override {
|
|
37
42
|
// Hermes GC can destroy JS objects on a non-JNI Thread.
|
|
38
43
|
jni::ThreadScope::WithClassLoader([&] { _javaPart.reset(); });
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
public:
|
|
42
|
-
|
|
43
|
-
bool equals(const std::shared_ptr<HybridObject>& other) override;
|
|
44
|
-
void dispose() noexcept override;
|
|
45
|
-
std::string toString() override;
|
|
46
|
-
|
|
47
|
-
public:
|
|
48
|
-
inline const jni::global_ref<JHybridVersionCheckSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridVersionCheckSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -64,9 +63,7 @@ namespace margelo::nitro::nitroversioncheck {
|
|
|
64
63
|
std::shared_ptr<Promise<bool>> needsUpdate() override;
|
|
65
64
|
|
|
66
65
|
private:
|
|
67
|
-
|
|
68
|
-
using HybridBase::HybridBase;
|
|
69
|
-
jni::global_ref<JHybridVersionCheckSpec::javaobject> _javaPart;
|
|
66
|
+
jni::global_ref<JHybridVersionCheckSpec::JavaPart> _javaPart;
|
|
70
67
|
};
|
|
71
68
|
|
|
72
69
|
} // namespace margelo::nitro::nitroversioncheck
|
|
@@ -25,23 +25,6 @@ import com.margelo.nitro.core.HybridObject
|
|
|
25
25
|
"LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
|
|
26
26
|
)
|
|
27
27
|
abstract class HybridVersionCheckSpec: HybridObject() {
|
|
28
|
-
@DoNotStrip
|
|
29
|
-
private var mHybridData: HybridData = initHybrid()
|
|
30
|
-
|
|
31
|
-
init {
|
|
32
|
-
super.updateNative(mHybridData)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
override fun updateNative(hybridData: HybridData) {
|
|
36
|
-
mHybridData = hybridData
|
|
37
|
-
super.updateNative(hybridData)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Default implementation of `HybridObject.toString()`
|
|
41
|
-
override fun toString(): String {
|
|
42
|
-
return "[HybridObject VersionCheck]"
|
|
43
|
-
}
|
|
44
|
-
|
|
45
28
|
// Properties
|
|
46
29
|
@get:DoNotStrip
|
|
47
30
|
@get:Keep
|
|
@@ -76,7 +59,21 @@ abstract class HybridVersionCheckSpec: HybridObject() {
|
|
|
76
59
|
@Keep
|
|
77
60
|
abstract fun needsUpdate(): Promise<Boolean>
|
|
78
61
|
|
|
79
|
-
|
|
62
|
+
// Default implementation of `HybridObject.toString()`
|
|
63
|
+
override fun toString(): String {
|
|
64
|
+
return "[HybridObject VersionCheck]"
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// C++ backing class
|
|
68
|
+
@DoNotStrip
|
|
69
|
+
@Keep
|
|
70
|
+
protected open class CxxPart(javaPart: HybridVersionCheckSpec): HybridObject.CxxPart(javaPart) {
|
|
71
|
+
// C++ JHybridVersionCheckSpec::CxxPart::initHybrid(...)
|
|
72
|
+
external override fun initHybrid(): HybridData
|
|
73
|
+
}
|
|
74
|
+
override fun createCxxPart(): CxxPart {
|
|
75
|
+
return CxxPart(this)
|
|
76
|
+
}
|
|
80
77
|
|
|
81
78
|
companion object {
|
|
82
79
|
protected const val TAG = "HybridVersionCheckSpec"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-version-check",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "A lightweight, fast version-checking library for React Native, powered by Nitro Modules",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
"@types/jest": "^29.5.12",
|
|
155
155
|
"@types/react": "^19.1.03",
|
|
156
156
|
"jest": "^29.7.0",
|
|
157
|
-
"nitrogen": "
|
|
157
|
+
"nitrogen": "^0.35.0",
|
|
158
158
|
"react": "19.2.0",
|
|
159
159
|
"react-native": "0.83.0",
|
|
160
160
|
"react-native-nitro-modules": "*",
|
|
@@ -165,6 +165,6 @@
|
|
|
165
165
|
"peerDependencies": {
|
|
166
166
|
"react": "*",
|
|
167
167
|
"react-native": "*",
|
|
168
|
-
"react-native-nitro-modules": ">=
|
|
168
|
+
"react-native-nitro-modules": ">=35.0"
|
|
169
169
|
}
|
|
170
170
|
}
|