react-native-nitro-cookies 1.0.4 → 1.2.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/android/src/main/cpp/cpp-adapter.cpp +4 -1
- package/android/src/main/java/com/margelo/nitro/nitrocookies/NitroCookies.kt +69 -0
- package/ios/NitroCookies.swift +101 -0
- package/lib/module/index.js +96 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NitroCookies.nitro.d.ts +48 -0
- package/lib/typescript/src/NitroCookies.nitro.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +88 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JCookie.hpp +1 -1
- package/nitrogen/generated/android/c++/JHybridNitroCookiesSpec.cpp +107 -53
- package/nitrogen/generated/android/c++/JHybridNitroCookiesSpec.hpp +23 -22
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrocookies/Cookie.kt +27 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrocookies/HybridNitroCookiesSpec.kt +31 -18
- package/nitrogen/generated/android/nitrocookiesOnLoad.cpp +26 -16
- package/nitrogen/generated/android/nitrocookiesOnLoad.hpp +13 -4
- package/nitrogen/generated/ios/NitroCookies+autolinking.rb +2 -0
- package/nitrogen/generated/ios/NitroCookies-Swift-Cxx-Bridge.cpp +8 -0
- package/nitrogen/generated/ios/NitroCookies-Swift-Cxx-Bridge.hpp +52 -0
- package/nitrogen/generated/ios/c++/HybridNitroCookiesSpecSwift.hpp +32 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridNitroCookiesSpec.swift +4 -0
- package/nitrogen/generated/ios/swift/HybridNitroCookiesSpec_cxx.swift +76 -0
- package/nitrogen/generated/shared/c++/HybridNitroCookiesSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridNitroCookiesSpec.hpp +4 -0
- package/package.json +9 -8
- package/src/NitroCookies.nitro.ts +56 -0
- package/src/index.tsx +104 -0
|
@@ -21,37 +21,31 @@ namespace margelo::nitro::nitrocookies { struct Cookie; }
|
|
|
21
21
|
|
|
22
22
|
namespace margelo::nitro::nitrocookies {
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
24
|
+
std::shared_ptr<JHybridNitroCookiesSpec> JHybridNitroCookiesSpec::JavaPart::getJHybridNitroCookiesSpec() {
|
|
25
|
+
auto hybridObject = JHybridObject::JavaPart::getJHybridObject();
|
|
26
|
+
auto castHybridObject = std::dynamic_pointer_cast<JHybridNitroCookiesSpec>(hybridObject);
|
|
27
|
+
if (castHybridObject == nullptr) [[unlikely]] {
|
|
28
|
+
throw std::runtime_error("Failed to downcast JHybridObject to JHybridNitroCookiesSpec!");
|
|
29
|
+
}
|
|
30
|
+
return castHybridObject;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
return method(_javaPart);
|
|
33
|
+
jni::local_ref<JHybridNitroCookiesSpec::CxxPart::jhybriddata> JHybridNitroCookiesSpec::CxxPart::initHybrid(jni::alias_ref<jhybridobject> jThis) {
|
|
34
|
+
return makeCxxInstance(jThis);
|
|
37
35
|
}
|
|
38
36
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
37
|
+
std::shared_ptr<JHybridObject> JHybridNitroCookiesSpec::CxxPart::createHybridObject(const jni::local_ref<JHybridObject::JavaPart>& javaPart) {
|
|
38
|
+
auto castJavaPart = jni::dynamic_ref_cast<JHybridNitroCookiesSpec::JavaPart>(javaPart);
|
|
39
|
+
if (castJavaPart == nullptr) [[unlikely]] {
|
|
40
|
+
throw std::runtime_error("Failed to cast JHybridObject::JavaPart to JHybridNitroCookiesSpec::JavaPart!");
|
|
42
41
|
}
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
void JHybridNitroCookiesSpec::dispose() noexcept {
|
|
47
|
-
static const auto method = javaClassStatic()->getMethod<void()>("dispose");
|
|
48
|
-
method(_javaPart);
|
|
42
|
+
return std::make_shared<JHybridNitroCookiesSpec>(castJavaPart);
|
|
49
43
|
}
|
|
50
44
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
void JHybridNitroCookiesSpec::CxxPart::registerNatives() {
|
|
46
|
+
registerHybrid({
|
|
47
|
+
makeNativeMethod("initHybrid", JHybridNitroCookiesSpec::CxxPart::initHybrid),
|
|
48
|
+
});
|
|
55
49
|
}
|
|
56
50
|
|
|
57
51
|
// Properties
|
|
@@ -59,36 +53,55 @@ namespace margelo::nitro::nitrocookies {
|
|
|
59
53
|
|
|
60
54
|
// Methods
|
|
61
55
|
std::vector<Cookie> JHybridNitroCookiesSpec::getSync(const std::string& url) {
|
|
62
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JCookie>>(jni::alias_ref<jni::JString> /* url */)>("getSync");
|
|
56
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JArrayClass<JCookie>>(jni::alias_ref<jni::JString> /* url */)>("getSync");
|
|
63
57
|
auto __result = method(_javaPart, jni::make_jstring(url));
|
|
64
|
-
return [&]() {
|
|
65
|
-
size_t __size =
|
|
58
|
+
return [&](auto&& __input) {
|
|
59
|
+
size_t __size = __input->size();
|
|
66
60
|
std::vector<Cookie> __vector;
|
|
67
61
|
__vector.reserve(__size);
|
|
68
62
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
69
|
-
auto __element =
|
|
63
|
+
auto __element = __input->getElement(__i);
|
|
70
64
|
__vector.push_back(__element->toCpp());
|
|
71
65
|
}
|
|
72
66
|
return __vector;
|
|
73
|
-
}();
|
|
67
|
+
}(__result);
|
|
74
68
|
}
|
|
75
69
|
bool JHybridNitroCookiesSpec::setSync(const std::string& url, const Cookie& cookie) {
|
|
76
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<JCookie> /* cookie */)>("setSync");
|
|
70
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<JCookie> /* cookie */)>("setSync");
|
|
77
71
|
auto __result = method(_javaPart, jni::make_jstring(url), JCookie::fromCpp(cookie));
|
|
78
72
|
return static_cast<bool>(__result);
|
|
79
73
|
}
|
|
80
74
|
bool JHybridNitroCookiesSpec::setFromResponseSync(const std::string& url, const std::string& value) {
|
|
81
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* value */)>("setFromResponseSync");
|
|
75
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* value */)>("setFromResponseSync");
|
|
82
76
|
auto __result = method(_javaPart, jni::make_jstring(url), jni::make_jstring(value));
|
|
83
77
|
return static_cast<bool>(__result);
|
|
84
78
|
}
|
|
85
79
|
bool JHybridNitroCookiesSpec::clearByNameSync(const std::string& url, const std::string& name) {
|
|
86
|
-
static const auto method = javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* name */)>("clearByNameSync");
|
|
80
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* name */)>("clearByNameSync");
|
|
87
81
|
auto __result = method(_javaPart, jni::make_jstring(url), jni::make_jstring(name));
|
|
88
82
|
return static_cast<bool>(__result);
|
|
89
83
|
}
|
|
84
|
+
std::string JHybridNitroCookiesSpec::getCookieHeaderSync(const std::string& url) {
|
|
85
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<jni::JString>(jni::alias_ref<jni::JString> /* url */)>("getCookieHeaderSync");
|
|
86
|
+
auto __result = method(_javaPart, jni::make_jstring(url));
|
|
87
|
+
return __result->toStdString();
|
|
88
|
+
}
|
|
89
|
+
bool JHybridNitroCookiesSpec::setManySync(const std::string& url, const std::vector<Cookie>& cookies) {
|
|
90
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jboolean(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JArrayClass<JCookie>> /* cookies */)>("setManySync");
|
|
91
|
+
auto __result = method(_javaPart, jni::make_jstring(url), [&](auto&& __input) {
|
|
92
|
+
size_t __size = __input.size();
|
|
93
|
+
jni::local_ref<jni::JArrayClass<JCookie>> __array = jni::JArrayClass<JCookie>::newArray(__size);
|
|
94
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
95
|
+
const auto& __element = __input[__i];
|
|
96
|
+
auto __elementJni = JCookie::fromCpp(__element);
|
|
97
|
+
__array->setElement(__i, *__elementJni);
|
|
98
|
+
}
|
|
99
|
+
return __array;
|
|
100
|
+
}(cookies));
|
|
101
|
+
return static_cast<bool>(__result);
|
|
102
|
+
}
|
|
90
103
|
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::set(const std::string& url, const Cookie& cookie, std::optional<bool> useWebKit) {
|
|
91
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<JCookie> /* cookie */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("set");
|
|
104
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<JCookie> /* cookie */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("set");
|
|
92
105
|
auto __result = method(_javaPart, jni::make_jstring(url), JCookie::fromCpp(cookie), useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
93
106
|
return [&]() {
|
|
94
107
|
auto __promise = Promise<bool>::create();
|
|
@@ -103,23 +116,64 @@ namespace margelo::nitro::nitrocookies {
|
|
|
103
116
|
return __promise;
|
|
104
117
|
}();
|
|
105
118
|
}
|
|
119
|
+
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::setMany(const std::string& url, const std::vector<Cookie>& cookies, std::optional<bool> useWebKit) {
|
|
120
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JArrayClass<JCookie>> /* cookies */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("setMany");
|
|
121
|
+
auto __result = method(_javaPart, jni::make_jstring(url), [&](auto&& __input) {
|
|
122
|
+
size_t __size = __input.size();
|
|
123
|
+
jni::local_ref<jni::JArrayClass<JCookie>> __array = jni::JArrayClass<JCookie>::newArray(__size);
|
|
124
|
+
for (size_t __i = 0; __i < __size; __i++) {
|
|
125
|
+
const auto& __element = __input[__i];
|
|
126
|
+
auto __elementJni = JCookie::fromCpp(__element);
|
|
127
|
+
__array->setElement(__i, *__elementJni);
|
|
128
|
+
}
|
|
129
|
+
return __array;
|
|
130
|
+
}(cookies), useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
131
|
+
return [&]() {
|
|
132
|
+
auto __promise = Promise<bool>::create();
|
|
133
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
134
|
+
auto __result = jni::static_ref_cast<jni::JBoolean>(__boxedResult);
|
|
135
|
+
__promise->resolve(static_cast<bool>(__result->value()));
|
|
136
|
+
});
|
|
137
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
138
|
+
jni::JniException __jniError(__throwable);
|
|
139
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
140
|
+
});
|
|
141
|
+
return __promise;
|
|
142
|
+
}();
|
|
143
|
+
}
|
|
144
|
+
std::shared_ptr<Promise<std::string>> JHybridNitroCookiesSpec::getCookieHeader(const std::string& url, std::optional<bool> useWebKit) {
|
|
145
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("getCookieHeader");
|
|
146
|
+
auto __result = method(_javaPart, jni::make_jstring(url), useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
147
|
+
return [&]() {
|
|
148
|
+
auto __promise = Promise<std::string>::create();
|
|
149
|
+
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
150
|
+
auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
|
|
151
|
+
__promise->resolve(__result->toStdString());
|
|
152
|
+
});
|
|
153
|
+
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
154
|
+
jni::JniException __jniError(__throwable);
|
|
155
|
+
__promise->reject(std::make_exception_ptr(__jniError));
|
|
156
|
+
});
|
|
157
|
+
return __promise;
|
|
158
|
+
}();
|
|
159
|
+
}
|
|
106
160
|
std::shared_ptr<Promise<std::vector<Cookie>>> JHybridNitroCookiesSpec::get(const std::string& url, std::optional<bool> useWebKit) {
|
|
107
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("get");
|
|
161
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("get");
|
|
108
162
|
auto __result = method(_javaPart, jni::make_jstring(url), useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
109
163
|
return [&]() {
|
|
110
164
|
auto __promise = Promise<std::vector<Cookie>>::create();
|
|
111
165
|
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
112
166
|
auto __result = jni::static_ref_cast<jni::JArrayClass<JCookie>>(__boxedResult);
|
|
113
|
-
__promise->resolve([&]() {
|
|
114
|
-
size_t __size =
|
|
167
|
+
__promise->resolve([&](auto&& __input) {
|
|
168
|
+
size_t __size = __input->size();
|
|
115
169
|
std::vector<Cookie> __vector;
|
|
116
170
|
__vector.reserve(__size);
|
|
117
171
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
118
|
-
auto __element =
|
|
172
|
+
auto __element = __input->getElement(__i);
|
|
119
173
|
__vector.push_back(__element->toCpp());
|
|
120
174
|
}
|
|
121
175
|
return __vector;
|
|
122
|
-
}());
|
|
176
|
+
}(__result));
|
|
123
177
|
});
|
|
124
178
|
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
125
179
|
jni::JniException __jniError(__throwable);
|
|
@@ -129,7 +183,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
129
183
|
}();
|
|
130
184
|
}
|
|
131
185
|
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::clearAll(std::optional<bool> useWebKit) {
|
|
132
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* useWebKit */)>("clearAll");
|
|
186
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* useWebKit */)>("clearAll");
|
|
133
187
|
auto __result = method(_javaPart, useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
134
188
|
return [&]() {
|
|
135
189
|
auto __promise = Promise<bool>::create();
|
|
@@ -145,7 +199,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
145
199
|
}();
|
|
146
200
|
}
|
|
147
201
|
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::setFromResponse(const std::string& url, const std::string& value) {
|
|
148
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* value */)>("setFromResponse");
|
|
202
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* value */)>("setFromResponse");
|
|
149
203
|
auto __result = method(_javaPart, jni::make_jstring(url), jni::make_jstring(value));
|
|
150
204
|
return [&]() {
|
|
151
205
|
auto __promise = Promise<bool>::create();
|
|
@@ -161,22 +215,22 @@ namespace margelo::nitro::nitrocookies {
|
|
|
161
215
|
}();
|
|
162
216
|
}
|
|
163
217
|
std::shared_ptr<Promise<std::vector<Cookie>>> JHybridNitroCookiesSpec::getFromResponse(const std::string& url) {
|
|
164
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */)>("getFromResponse");
|
|
218
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */)>("getFromResponse");
|
|
165
219
|
auto __result = method(_javaPart, jni::make_jstring(url));
|
|
166
220
|
return [&]() {
|
|
167
221
|
auto __promise = Promise<std::vector<Cookie>>::create();
|
|
168
222
|
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
169
223
|
auto __result = jni::static_ref_cast<jni::JArrayClass<JCookie>>(__boxedResult);
|
|
170
|
-
__promise->resolve([&]() {
|
|
171
|
-
size_t __size =
|
|
224
|
+
__promise->resolve([&](auto&& __input) {
|
|
225
|
+
size_t __size = __input->size();
|
|
172
226
|
std::vector<Cookie> __vector;
|
|
173
227
|
__vector.reserve(__size);
|
|
174
228
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
175
|
-
auto __element =
|
|
229
|
+
auto __element = __input->getElement(__i);
|
|
176
230
|
__vector.push_back(__element->toCpp());
|
|
177
231
|
}
|
|
178
232
|
return __vector;
|
|
179
|
-
}());
|
|
233
|
+
}(__result));
|
|
180
234
|
});
|
|
181
235
|
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
182
236
|
jni::JniException __jniError(__throwable);
|
|
@@ -186,22 +240,22 @@ namespace margelo::nitro::nitrocookies {
|
|
|
186
240
|
}();
|
|
187
241
|
}
|
|
188
242
|
std::shared_ptr<Promise<std::vector<Cookie>>> JHybridNitroCookiesSpec::getAll(std::optional<bool> useWebKit) {
|
|
189
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* useWebKit */)>("getAll");
|
|
243
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JBoolean> /* useWebKit */)>("getAll");
|
|
190
244
|
auto __result = method(_javaPart, useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
191
245
|
return [&]() {
|
|
192
246
|
auto __promise = Promise<std::vector<Cookie>>::create();
|
|
193
247
|
__result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
|
|
194
248
|
auto __result = jni::static_ref_cast<jni::JArrayClass<JCookie>>(__boxedResult);
|
|
195
|
-
__promise->resolve([&]() {
|
|
196
|
-
size_t __size =
|
|
249
|
+
__promise->resolve([&](auto&& __input) {
|
|
250
|
+
size_t __size = __input->size();
|
|
197
251
|
std::vector<Cookie> __vector;
|
|
198
252
|
__vector.reserve(__size);
|
|
199
253
|
for (size_t __i = 0; __i < __size; __i++) {
|
|
200
|
-
auto __element =
|
|
254
|
+
auto __element = __input->getElement(__i);
|
|
201
255
|
__vector.push_back(__element->toCpp());
|
|
202
256
|
}
|
|
203
257
|
return __vector;
|
|
204
|
-
}());
|
|
258
|
+
}(__result));
|
|
205
259
|
});
|
|
206
260
|
__result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
|
|
207
261
|
jni::JniException __jniError(__throwable);
|
|
@@ -211,7 +265,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
211
265
|
}();
|
|
212
266
|
}
|
|
213
267
|
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::clearByName(const std::string& url, const std::string& name, std::optional<bool> useWebKit) {
|
|
214
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("clearByName");
|
|
268
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<jni::JString> /* name */, jni::alias_ref<jni::JBoolean> /* useWebKit */)>("clearByName");
|
|
215
269
|
auto __result = method(_javaPart, jni::make_jstring(url), jni::make_jstring(name), useWebKit.has_value() ? jni::JBoolean::valueOf(useWebKit.value()) : nullptr);
|
|
216
270
|
return [&]() {
|
|
217
271
|
auto __promise = Promise<bool>::create();
|
|
@@ -227,7 +281,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
227
281
|
}();
|
|
228
282
|
}
|
|
229
283
|
std::shared_ptr<Promise<void>> JHybridNitroCookiesSpec::flush() {
|
|
230
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("flush");
|
|
284
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("flush");
|
|
231
285
|
auto __result = method(_javaPart);
|
|
232
286
|
return [&]() {
|
|
233
287
|
auto __promise = Promise<void>::create();
|
|
@@ -242,7 +296,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
242
296
|
}();
|
|
243
297
|
}
|
|
244
298
|
std::shared_ptr<Promise<bool>> JHybridNitroCookiesSpec::removeSessionCookies() {
|
|
245
|
-
static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("removeSessionCookies");
|
|
299
|
+
static const auto method = _javaPart->javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("removeSessionCookies");
|
|
246
300
|
auto __result = method(_javaPart);
|
|
247
301
|
return [&]() {
|
|
248
302
|
auto __promise = Promise<bool>::create();
|
|
@@ -18,34 +18,33 @@ namespace margelo::nitro::nitrocookies {
|
|
|
18
18
|
|
|
19
19
|
using namespace facebook;
|
|
20
20
|
|
|
21
|
-
class JHybridNitroCookiesSpec: public
|
|
22
|
-
public virtual HybridNitroCookiesSpec {
|
|
21
|
+
class JHybridNitroCookiesSpec: public virtual HybridNitroCookiesSpec, 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 constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrocookies/HybridNitroCookiesSpec;";
|
|
25
|
+
std::shared_ptr<JHybridNitroCookiesSpec> getJHybridNitroCookiesSpec();
|
|
26
|
+
};
|
|
27
|
+
struct CxxPart: public jni::HybridClass<CxxPart, JHybridObject::CxxPart> {
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrocookies/HybridNitroCookiesSpec$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 JHybridNitroCookiesSpec(const jni::local_ref<JHybridNitroCookiesSpec::JavaPart>& javaPart):
|
|
38
|
+
HybridObject(HybridNitroCookiesSpec::TAG),
|
|
39
|
+
JHybridObject(javaPart),
|
|
40
|
+
_javaPart(jni::make_global(javaPart)) {}
|
|
36
41
|
~JHybridNitroCookiesSpec() 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<JHybridNitroCookiesSpec::javaobject>& getJavaPart() const noexcept {
|
|
47
|
+
inline const jni::global_ref<JHybridNitroCookiesSpec::JavaPart>& getJavaPart() const noexcept {
|
|
49
48
|
return _javaPart;
|
|
50
49
|
}
|
|
51
50
|
|
|
@@ -59,7 +58,11 @@ namespace margelo::nitro::nitrocookies {
|
|
|
59
58
|
bool setSync(const std::string& url, const Cookie& cookie) override;
|
|
60
59
|
bool setFromResponseSync(const std::string& url, const std::string& value) override;
|
|
61
60
|
bool clearByNameSync(const std::string& url, const std::string& name) override;
|
|
61
|
+
std::string getCookieHeaderSync(const std::string& url) override;
|
|
62
|
+
bool setManySync(const std::string& url, const std::vector<Cookie>& cookies) override;
|
|
62
63
|
std::shared_ptr<Promise<bool>> set(const std::string& url, const Cookie& cookie, std::optional<bool> useWebKit) override;
|
|
64
|
+
std::shared_ptr<Promise<bool>> setMany(const std::string& url, const std::vector<Cookie>& cookies, std::optional<bool> useWebKit) override;
|
|
65
|
+
std::shared_ptr<Promise<std::string>> getCookieHeader(const std::string& url, std::optional<bool> useWebKit) override;
|
|
63
66
|
std::shared_ptr<Promise<std::vector<Cookie>>> get(const std::string& url, std::optional<bool> useWebKit) override;
|
|
64
67
|
std::shared_ptr<Promise<bool>> clearAll(std::optional<bool> useWebKit) override;
|
|
65
68
|
std::shared_ptr<Promise<bool>> setFromResponse(const std::string& url, const std::string& value) override;
|
|
@@ -70,9 +73,7 @@ namespace margelo::nitro::nitrocookies {
|
|
|
70
73
|
std::shared_ptr<Promise<bool>> removeSessionCookies() override;
|
|
71
74
|
|
|
72
75
|
private:
|
|
73
|
-
|
|
74
|
-
using HybridBase::HybridBase;
|
|
75
|
-
jni::global_ref<JHybridNitroCookiesSpec::javaobject> _javaPart;
|
|
76
|
+
jni::global_ref<JHybridNitroCookiesSpec::JavaPart> _javaPart;
|
|
76
77
|
};
|
|
77
78
|
|
|
78
79
|
} // namespace margelo::nitro::nitrocookies
|
|
@@ -9,6 +9,7 @@ package com.margelo.nitro.nitrocookies
|
|
|
9
9
|
|
|
10
10
|
import androidx.annotation.Keep
|
|
11
11
|
import com.facebook.proguard.annotations.DoNotStrip
|
|
12
|
+
import java.util.Objects
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -44,6 +45,32 @@ data class Cookie(
|
|
|
44
45
|
) {
|
|
45
46
|
/* primary constructor */
|
|
46
47
|
|
|
48
|
+
override fun equals(other: Any?): Boolean {
|
|
49
|
+
if (this === other) return true
|
|
50
|
+
if (other !is Cookie) return false
|
|
51
|
+
return Objects.deepEquals(this.name, other.name)
|
|
52
|
+
&& Objects.deepEquals(this.value, other.value)
|
|
53
|
+
&& Objects.deepEquals(this.path, other.path)
|
|
54
|
+
&& Objects.deepEquals(this.domain, other.domain)
|
|
55
|
+
&& Objects.deepEquals(this.version, other.version)
|
|
56
|
+
&& Objects.deepEquals(this.expires, other.expires)
|
|
57
|
+
&& Objects.deepEquals(this.secure, other.secure)
|
|
58
|
+
&& Objects.deepEquals(this.httpOnly, other.httpOnly)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override fun hashCode(): Int {
|
|
62
|
+
return arrayOf<Any?>(
|
|
63
|
+
name,
|
|
64
|
+
value,
|
|
65
|
+
path,
|
|
66
|
+
domain,
|
|
67
|
+
version,
|
|
68
|
+
expires,
|
|
69
|
+
secure,
|
|
70
|
+
httpOnly
|
|
71
|
+
).contentDeepHashCode()
|
|
72
|
+
}
|
|
73
|
+
|
|
47
74
|
companion object {
|
|
48
75
|
/**
|
|
49
76
|
* Constructor called from C++
|
package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrocookies/HybridNitroCookiesSpec.kt
CHANGED
|
@@ -25,23 +25,6 @@ import com.margelo.nitro.core.HybridObject
|
|
|
25
25
|
"LocalVariableName", "PropertyName", "PrivatePropertyName", "FunctionName"
|
|
26
26
|
)
|
|
27
27
|
abstract class HybridNitroCookiesSpec: 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 NitroCookies]"
|
|
43
|
-
}
|
|
44
|
-
|
|
45
28
|
// Properties
|
|
46
29
|
|
|
47
30
|
|
|
@@ -62,10 +45,26 @@ abstract class HybridNitroCookiesSpec: HybridObject() {
|
|
|
62
45
|
@Keep
|
|
63
46
|
abstract fun clearByNameSync(url: String, name: String): Boolean
|
|
64
47
|
|
|
48
|
+
@DoNotStrip
|
|
49
|
+
@Keep
|
|
50
|
+
abstract fun getCookieHeaderSync(url: String): String
|
|
51
|
+
|
|
52
|
+
@DoNotStrip
|
|
53
|
+
@Keep
|
|
54
|
+
abstract fun setManySync(url: String, cookies: Array<Cookie>): Boolean
|
|
55
|
+
|
|
65
56
|
@DoNotStrip
|
|
66
57
|
@Keep
|
|
67
58
|
abstract fun set(url: String, cookie: Cookie, useWebKit: Boolean?): Promise<Boolean>
|
|
68
59
|
|
|
60
|
+
@DoNotStrip
|
|
61
|
+
@Keep
|
|
62
|
+
abstract fun setMany(url: String, cookies: Array<Cookie>, useWebKit: Boolean?): Promise<Boolean>
|
|
63
|
+
|
|
64
|
+
@DoNotStrip
|
|
65
|
+
@Keep
|
|
66
|
+
abstract fun getCookieHeader(url: String, useWebKit: Boolean?): Promise<String>
|
|
67
|
+
|
|
69
68
|
@DoNotStrip
|
|
70
69
|
@Keep
|
|
71
70
|
abstract fun get(url: String, useWebKit: Boolean?): Promise<Array<Cookie>>
|
|
@@ -98,7 +97,21 @@ abstract class HybridNitroCookiesSpec: HybridObject() {
|
|
|
98
97
|
@Keep
|
|
99
98
|
abstract fun removeSessionCookies(): Promise<Boolean>
|
|
100
99
|
|
|
101
|
-
|
|
100
|
+
// Default implementation of `HybridObject.toString()`
|
|
101
|
+
override fun toString(): String {
|
|
102
|
+
return "[HybridObject NitroCookies]"
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// C++ backing class
|
|
106
|
+
@DoNotStrip
|
|
107
|
+
@Keep
|
|
108
|
+
protected open class CxxPart(javaPart: HybridNitroCookiesSpec): HybridObject.CxxPart(javaPart) {
|
|
109
|
+
// C++ JHybridNitroCookiesSpec::CxxPart::initHybrid(...)
|
|
110
|
+
external override fun initHybrid(): HybridData
|
|
111
|
+
}
|
|
112
|
+
override fun createCxxPart(): CxxPart {
|
|
113
|
+
return CxxPart(this)
|
|
114
|
+
}
|
|
102
115
|
|
|
103
116
|
companion object {
|
|
104
117
|
protected const val TAG = "HybridNitroCookiesSpec"
|
|
@@ -21,24 +21,34 @@
|
|
|
21
21
|
namespace margelo::nitro::nitrocookies {
|
|
22
22
|
|
|
23
23
|
int initialize(JavaVM* vm) {
|
|
24
|
+
return facebook::jni::initialize(vm, []() {
|
|
25
|
+
::margelo::nitro::nitrocookies::registerAllNatives();
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
struct JHybridNitroCookiesSpecImpl: public jni::JavaClass<JHybridNitroCookiesSpecImpl, JHybridNitroCookiesSpec::JavaPart> {
|
|
30
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/nitrocookies/NitroCookies;";
|
|
31
|
+
static std::shared_ptr<JHybridNitroCookiesSpec> create() {
|
|
32
|
+
static const auto constructorFn = javaClassStatic()->getConstructor<JHybridNitroCookiesSpecImpl::javaobject()>();
|
|
33
|
+
jni::local_ref<JHybridNitroCookiesSpec::JavaPart> javaPart = javaClassStatic()->newObject(constructorFn);
|
|
34
|
+
return javaPart->getJHybridNitroCookiesSpec();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
void registerAllNatives() {
|
|
24
39
|
using namespace margelo::nitro;
|
|
25
40
|
using namespace margelo::nitro::nitrocookies;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
auto instance = object.create();
|
|
38
|
-
return instance->cthis()->shared();
|
|
39
|
-
}
|
|
40
|
-
);
|
|
41
|
-
});
|
|
41
|
+
|
|
42
|
+
// Register native JNI methods
|
|
43
|
+
margelo::nitro::nitrocookies::JHybridNitroCookiesSpec::CxxPart::registerNatives();
|
|
44
|
+
|
|
45
|
+
// Register Nitro Hybrid Objects
|
|
46
|
+
HybridObjectRegistry::registerHybridObjectConstructor(
|
|
47
|
+
"NitroCookies",
|
|
48
|
+
[]() -> std::shared_ptr<HybridObject> {
|
|
49
|
+
return JHybridNitroCookiesSpecImpl::create();
|
|
50
|
+
}
|
|
51
|
+
);
|
|
42
52
|
}
|
|
43
53
|
|
|
44
54
|
} // namespace margelo::nitro::nitrocookies
|
|
@@ -6,20 +6,29 @@
|
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#include <jni.h>
|
|
9
|
+
#include <functional>
|
|
9
10
|
#include <NitroModules/NitroDefines.hpp>
|
|
10
11
|
|
|
11
12
|
namespace margelo::nitro::nitrocookies {
|
|
12
13
|
|
|
14
|
+
[[deprecated("Use registerNatives() instead.")]]
|
|
15
|
+
int initialize(JavaVM* vm);
|
|
16
|
+
|
|
13
17
|
/**
|
|
14
|
-
*
|
|
15
|
-
* Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`)
|
|
18
|
+
* Register the native (C++) part of nitrocookies, and autolinks all Hybrid Objects.
|
|
19
|
+
* Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`),
|
|
20
|
+
* inside a `facebook::jni::initialize(vm, ...)` call.
|
|
16
21
|
* Example:
|
|
17
22
|
* ```cpp (cpp-adapter.cpp)
|
|
18
23
|
* JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
|
|
19
|
-
* return
|
|
24
|
+
* return facebook::jni::initialize(vm, []() {
|
|
25
|
+
* // register all nitrocookies HybridObjects
|
|
26
|
+
* margelo::nitro::nitrocookies::registerNatives();
|
|
27
|
+
* // any other custom registrations go here.
|
|
28
|
+
* });
|
|
20
29
|
* }
|
|
21
30
|
* ```
|
|
22
31
|
*/
|
|
23
|
-
|
|
32
|
+
void registerAllNatives();
|
|
24
33
|
|
|
25
34
|
} // namespace margelo::nitro::nitrocookies
|
|
@@ -56,5 +56,7 @@ def add_nitrogen_files(spec)
|
|
|
56
56
|
"SWIFT_OBJC_INTEROP_MODE" => "objcxx",
|
|
57
57
|
# Enables stricter modular headers
|
|
58
58
|
"DEFINES_MODULE" => "YES",
|
|
59
|
+
# Disable auto-generated ObjC header for Swift (Static linkage on Xcode 26.4 breaks here)
|
|
60
|
+
"SWIFT_INSTALL_OBJC_HEADER" => "NO",
|
|
59
61
|
})
|
|
60
62
|
end
|
|
@@ -30,6 +30,14 @@ namespace margelo::nitro::nitrocookies::bridge::swift {
|
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
// pragma MARK: std::function<void(const std::string& /* result */)>
|
|
34
|
+
Func_void_std__string create_Func_void_std__string(void* NON_NULL swiftClosureWrapper) noexcept {
|
|
35
|
+
auto swiftClosure = NitroCookies::Func_void_std__string::fromUnsafe(swiftClosureWrapper);
|
|
36
|
+
return [swiftClosure = std::move(swiftClosure)](const std::string& result) mutable -> void {
|
|
37
|
+
swiftClosure.call(result);
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
33
41
|
// pragma MARK: std::function<void(const std::vector<Cookie>& /* result */)>
|
|
34
42
|
Func_void_std__vector_Cookie_ create_Func_void_std__vector_Cookie_(void* NON_NULL swiftClosureWrapper) noexcept {
|
|
35
43
|
auto swiftClosure = NitroCookies::Func_void_std__vector_Cookie_::fromUnsafe(swiftClosureWrapper);
|