react-native-nitro-modules 0.18.1 → 0.19.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/NitroModules.podspec +1 -0
- package/README.md +3 -3
- package/android/build.gradle +1 -1
- package/android/src/main/cpp/turbomodule/JNitroModules.cpp +0 -2
- package/android/src/main/cpp/turbomodule/JNitroModules.hpp +1 -1
- package/android/src/main/java/com/margelo/nitro/core/HybridObject.kt +1 -1
- package/cpp/core/HybridFunction.hpp +9 -1
- package/cpp/core/HybridObject.hpp +2 -2
- package/cpp/core/Promise.hpp +15 -7
- package/cpp/entrypoint/HybridNitroModulesProxy.cpp +5 -0
- package/cpp/entrypoint/HybridNitroModulesProxy.hpp +1 -0
- package/cpp/jsi/JSIConverter+Exception.hpp +10 -0
- package/cpp/jsi/JSIConverter+Function.hpp +3 -4
- package/cpp/jsi/JSIConverter+Future.hpp +5 -4
- package/cpp/jsi/JSIConverter+HostObject.hpp +1 -1
- package/cpp/jsi/JSIConverter+HybridObject.hpp +1 -1
- package/cpp/registry/HybridObjectRegistry.cpp +4 -4
- package/cpp/templates/PromiseType.hpp +32 -0
- package/cpp/threading/Dispatcher.hpp +9 -10
- package/cpp/utils/NitroDefines.hpp +3 -0
- package/ios/core/HybridContext.hpp +2 -1
- package/ios/core/HybridObjectSpec.swift +3 -18
- package/ios/utils/MemoryHelper.swift +21 -0
- package/ios/utils/Result.hpp +193 -0
- package/ios/utils/RuntimeError.hpp +4 -0
- package/lib/commonjs/turbomodule/NativeNitroModules.js +8 -0
- package/lib/commonjs/turbomodule/NativeNitroModules.js.map +1 -1
- package/lib/module/turbomodule/NativeNitroModules.js +8 -0
- package/lib/module/turbomodule/NativeNitroModules.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/lib/typescript/NitroModulesProxy.d.ts +6 -0
- package/lib/typescript/NitroModulesProxy.d.ts.map +1 -1
- package/lib/typescript/turbomodule/NativeNitroModules.d.ts.map +1 -1
- package/package.json +6 -4
- package/src/NitroModulesProxy.ts +6 -0
- package/src/turbomodule/NativeNitroModules.ts +11 -0
package/NitroModules.podspec
CHANGED
package/README.md
CHANGED
|
@@ -177,9 +177,9 @@ The following C++ / JS types are supported out of the box:
|
|
|
177
177
|
</tr>
|
|
178
178
|
<tr>
|
|
179
179
|
<td><code>(T...) => R</code></td>
|
|
180
|
-
<td><code>std::function<std::
|
|
181
|
-
<td
|
|
182
|
-
<td
|
|
180
|
+
<td><code>std::function<std::shared_ptr<<a href="./cpp/core/Promise.hpp">Promise<R></a>> (T...)></code></td>
|
|
181
|
+
<td><code>(T...) -> <a href="./ios/core/Promise.swift">Promise<T></a></code></td>
|
|
182
|
+
<td><code>(T...) -> <a href="./android/src/main/java/com/margelo/nitro/core/Promise.kt">Promise<T></a></code></td>
|
|
183
183
|
</tr>
|
|
184
184
|
<tr>
|
|
185
185
|
<td><code>Error</code></td>
|
package/android/build.gradle
CHANGED
|
@@ -108,6 +108,14 @@ public:
|
|
|
108
108
|
std::string funcName = getHybridFuncFullName<THybrid>(kind, name, hybridInstance.get());
|
|
109
109
|
std::string message = exception.what();
|
|
110
110
|
throw jsi::JSError(runtime, funcName + ": " + message);
|
|
111
|
+
#ifdef ANDROID
|
|
112
|
+
// Workaround for https://github.com/mrousavy/nitro/issues/382
|
|
113
|
+
} catch (const std::runtime_error& exception) {
|
|
114
|
+
// Some exception was thrown - add method name information and re-throw as `JSError`.
|
|
115
|
+
std::string funcName = getHybridFuncFullName<THybrid>(kind, name, hybridInstance.get());
|
|
116
|
+
std::string message = exception.what();
|
|
117
|
+
throw jsi::JSError(runtime, funcName + ": " + message);
|
|
118
|
+
#endif
|
|
111
119
|
} catch (...) {
|
|
112
120
|
// Some unknown exception was thrown - add method name information and re-throw as `JSError`.
|
|
113
121
|
std::string funcName = getHybridFuncFullName<THybrid>(kind, name, hybridInstance.get());
|
|
@@ -205,7 +213,7 @@ private:
|
|
|
205
213
|
#ifdef NITRO_DEBUG
|
|
206
214
|
if (nativeState == nullptr) [[unlikely]] {
|
|
207
215
|
throw jsi::JSError(runtime, "Cannot " + getHybridFuncDebugInfo<THybrid>(funcKind, funcName) +
|
|
208
|
-
" - `this`'s `NativeState` is `
|
|
216
|
+
" - `this`'s `NativeState` is `null`, "
|
|
209
217
|
"did you accidentally call `dispose()` on this object?");
|
|
210
218
|
}
|
|
211
219
|
#endif
|
|
@@ -38,11 +38,11 @@ public:
|
|
|
38
38
|
/**
|
|
39
39
|
* HybridObjects cannot be copied.
|
|
40
40
|
*/
|
|
41
|
-
HybridObject(const HybridObject& copy) =
|
|
41
|
+
HybridObject(const HybridObject& copy) = delete;
|
|
42
42
|
/**
|
|
43
43
|
* HybridObjects cannot be moved.
|
|
44
44
|
*/
|
|
45
|
-
HybridObject(HybridObject&& move) =
|
|
45
|
+
HybridObject(HybridObject&& move) = delete;
|
|
46
46
|
/**
|
|
47
47
|
* HybridObjects cannot be default-constructed!
|
|
48
48
|
*/
|
package/cpp/core/Promise.hpp
CHANGED
|
@@ -117,6 +117,10 @@ public:
|
|
|
117
117
|
* Rejects this Promise with the given error, and calls any pending listeners.
|
|
118
118
|
*/
|
|
119
119
|
void reject(const std::exception_ptr& exception) {
|
|
120
|
+
if (exception == nullptr) [[unlikely]] {
|
|
121
|
+
throw std::runtime_error("Cannot reject Promise with a null exception_ptr!");
|
|
122
|
+
}
|
|
123
|
+
|
|
120
124
|
std::unique_lock lock(*_mutex);
|
|
121
125
|
#ifdef NITRO_DEBUG
|
|
122
126
|
assertPromiseState(*this, PromiseTask::WANTS_TO_REJECT);
|
|
@@ -315,6 +319,10 @@ public:
|
|
|
315
319
|
}
|
|
316
320
|
}
|
|
317
321
|
void reject(const std::exception_ptr& exception) {
|
|
322
|
+
if (exception == nullptr) [[unlikely]] {
|
|
323
|
+
throw std::runtime_error("Cannot reject Promise with a null exception_ptr!");
|
|
324
|
+
}
|
|
325
|
+
|
|
318
326
|
std::unique_lock lock(*_mutex);
|
|
319
327
|
#ifdef NITRO_DEBUG
|
|
320
328
|
assertPromiseState(*this, PromiseTask::WANTS_TO_REJECT);
|
|
@@ -344,8 +352,8 @@ public:
|
|
|
344
352
|
}
|
|
345
353
|
void addOnRejectedListener(OnRejectedFunc&& onRejected) {
|
|
346
354
|
std::unique_lock lock(*_mutex);
|
|
347
|
-
if (_error
|
|
348
|
-
onRejected(_error
|
|
355
|
+
if (_error) {
|
|
356
|
+
onRejected(_error);
|
|
349
357
|
} else {
|
|
350
358
|
// Promise is not yet rejected, put the listener in our queue.
|
|
351
359
|
_onRejectedListeners.push_back(std::move(onRejected));
|
|
@@ -353,8 +361,8 @@ public:
|
|
|
353
361
|
}
|
|
354
362
|
void addOnRejectedListener(const OnRejectedFunc& onRejected) {
|
|
355
363
|
std::unique_lock lock(*_mutex);
|
|
356
|
-
if (_error
|
|
357
|
-
onRejected(_error
|
|
364
|
+
if (_error) {
|
|
365
|
+
onRejected(_error);
|
|
358
366
|
} else {
|
|
359
367
|
// Promise is not yet rejected, put the listener in our queue.
|
|
360
368
|
_onRejectedListeners.push_back(onRejected);
|
|
@@ -374,7 +382,7 @@ public:
|
|
|
374
382
|
if (!isRejected()) {
|
|
375
383
|
throw std::runtime_error("Cannot get error when Promise is not yet rejected!");
|
|
376
384
|
}
|
|
377
|
-
return _error
|
|
385
|
+
return _error;
|
|
378
386
|
}
|
|
379
387
|
|
|
380
388
|
public:
|
|
@@ -384,7 +392,7 @@ public:
|
|
|
384
392
|
}
|
|
385
393
|
[[nodiscard]]
|
|
386
394
|
inline bool isRejected() const noexcept {
|
|
387
|
-
return _error
|
|
395
|
+
return _error != nullptr;
|
|
388
396
|
}
|
|
389
397
|
[[nodiscard]]
|
|
390
398
|
inline bool isPending() const noexcept {
|
|
@@ -394,7 +402,7 @@ public:
|
|
|
394
402
|
private:
|
|
395
403
|
std::unique_ptr<std::mutex> _mutex;
|
|
396
404
|
bool _isResolved = false;
|
|
397
|
-
std::
|
|
405
|
+
std::exception_ptr _error;
|
|
398
406
|
std::vector<OnResolvedFunc> _onResolvedListeners;
|
|
399
407
|
std::vector<OnRejectedFunc> _onRejectedListeners;
|
|
400
408
|
};
|
|
@@ -24,6 +24,7 @@ void HybridNitroModulesProxy::loadHybridMethods() {
|
|
|
24
24
|
prototype.registerRawHybridMethod("hasNativeState", 1, &HybridNitroModulesProxy::hasNativeState);
|
|
25
25
|
|
|
26
26
|
prototype.registerHybridGetter("buildType", &HybridNitroModulesProxy::getBuildType);
|
|
27
|
+
prototype.registerHybridGetter("version", &HybridNitroModulesProxy::getVersion);
|
|
27
28
|
});
|
|
28
29
|
}
|
|
29
30
|
|
|
@@ -61,4 +62,8 @@ std::string HybridNitroModulesProxy::getBuildType() {
|
|
|
61
62
|
#endif
|
|
62
63
|
}
|
|
63
64
|
|
|
65
|
+
std::string HybridNitroModulesProxy::getVersion() {
|
|
66
|
+
return NITRO_VERSION;
|
|
67
|
+
}
|
|
68
|
+
|
|
64
69
|
} // namespace margelo::nitro
|
|
@@ -30,11 +30,21 @@ struct JSIConverter<std::exception_ptr> final {
|
|
|
30
30
|
return std::make_exception_ptr(std::runtime_error(name + ": " + message));
|
|
31
31
|
}
|
|
32
32
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const std::exception_ptr& exception) {
|
|
33
|
+
if (exception == nullptr) [[unlikely]] {
|
|
34
|
+
throw std::runtime_error("Cannot convert an empty exception_ptr to a JS Error!");
|
|
35
|
+
}
|
|
36
|
+
|
|
33
37
|
try {
|
|
34
38
|
std::rethrow_exception(exception);
|
|
35
39
|
} catch (const std::exception& e) {
|
|
36
40
|
jsi::JSError error(runtime, e.what());
|
|
37
41
|
return jsi::Value(runtime, error.value());
|
|
42
|
+
#ifdef ANDROID
|
|
43
|
+
// Workaround for https://github.com/mrousavy/nitro/issues/382
|
|
44
|
+
} catch (const std::runtime_error& e) {
|
|
45
|
+
jsi::JSError error(runtime, e.what());
|
|
46
|
+
return jsi::Value(runtime, error.value());
|
|
47
|
+
#endif
|
|
38
48
|
} catch (...) {
|
|
39
49
|
// Some unknown exception was thrown - maybe an Objective-C error?
|
|
40
50
|
std::string errorName = TypeInfo::getCurrentExceptionName();
|
|
@@ -15,10 +15,9 @@ struct JSIConverter;
|
|
|
15
15
|
#include "JSIConverter.hpp"
|
|
16
16
|
|
|
17
17
|
#include "Dispatcher.hpp"
|
|
18
|
-
#include "FutureType.hpp"
|
|
19
18
|
#include "JSICache.hpp"
|
|
19
|
+
#include "PromiseType.hpp"
|
|
20
20
|
#include <functional>
|
|
21
|
-
#include <future>
|
|
22
21
|
#include <jsi/jsi.h>
|
|
23
22
|
|
|
24
23
|
namespace margelo::nitro {
|
|
@@ -28,8 +27,8 @@ using namespace facebook;
|
|
|
28
27
|
// [](Args...) -> T {} <> (Args...) => T
|
|
29
28
|
template <typename ReturnType, typename... Args>
|
|
30
29
|
struct JSIConverter<std::function<ReturnType(Args...)>> final {
|
|
31
|
-
//
|
|
32
|
-
using ResultingType =
|
|
30
|
+
// Promise<T> -> T
|
|
31
|
+
using ResultingType = promise_type_v<ReturnType>;
|
|
33
32
|
|
|
34
33
|
static inline std::function<ReturnType(Args...)> fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
35
34
|
// Make function global - it'll be managed by the Runtime's memory, and we only have a weak_ref to it.
|
|
@@ -26,8 +26,9 @@ using namespace facebook;
|
|
|
26
26
|
template <typename TResult>
|
|
27
27
|
struct JSIConverter<std::future<TResult>> final {
|
|
28
28
|
[[deprecated("Use JSIConverter<std::shared_ptr<Promise<T>>> instead.")]]
|
|
29
|
-
static inline std::future<TResult> fromJSI(jsi::Runtime
|
|
30
|
-
|
|
29
|
+
static inline std::future<TResult> fromJSI(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
30
|
+
auto promise = JSIConverter<std::shared_ptr<Promise<TResult>>>::fromJSI(runtime, value);
|
|
31
|
+
return promise->await();
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
[[deprecated("Use JSIConverter<std::shared_ptr<Promise<T>>> instead.")]]
|
|
@@ -37,8 +38,8 @@ struct JSIConverter<std::future<TResult>> final {
|
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
[[deprecated("Use JSIConverter<std::shared_ptr<Promise<T>>> instead.")]]
|
|
40
|
-
static inline bool canConvert(jsi::Runtime
|
|
41
|
-
|
|
41
|
+
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
42
|
+
return JSIConverter<std::shared_ptr<Promise<TResult>>>::canConvert(runtime, value);
|
|
42
43
|
}
|
|
43
44
|
};
|
|
44
45
|
|
|
@@ -49,7 +49,7 @@ struct JSIConverter<T, std::enable_if_t<is_shared_ptr_to_v<T, jsi::HostObject>>>
|
|
|
49
49
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const T& arg) {
|
|
50
50
|
if (arg == nullptr) [[unlikely]] {
|
|
51
51
|
std::string typeName = TypeInfo::getFriendlyTypename<TPointee>();
|
|
52
|
-
throw jsi::JSError(runtime, "Cannot convert nullptr to HostObject<" + typeName + ">!");
|
|
52
|
+
throw jsi::JSError(runtime, "Cannot convert `nullptr` to HostObject<" + typeName + ">!");
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
return jsi::Object::createFromHostObject(runtime, arg);
|
|
@@ -55,7 +55,7 @@ struct JSIConverter<T, std::enable_if_t<is_shared_ptr_to_v<T, jsi::NativeState>>
|
|
|
55
55
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const T& arg) {
|
|
56
56
|
if (arg == nullptr) [[unlikely]] {
|
|
57
57
|
std::string typeName = TypeInfo::getFriendlyTypename<TPointee>();
|
|
58
|
-
throw jsi::JSError(runtime, "Cannot convert nullptr to NativeState<" + typeName + ">!");
|
|
58
|
+
throw jsi::JSError(runtime, "Cannot convert `nullptr` to NativeState<" + typeName + ">!");
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
if constexpr (std::is_base_of_v<HybridObject, TPointee>) {
|
|
@@ -63,9 +63,9 @@ std::shared_ptr<HybridObject> HybridObjectRegistry::createHybridObject(const std
|
|
|
63
63
|
std::string(hybridObjectName) +
|
|
64
64
|
"` on this platform.\n"
|
|
65
65
|
"- If you use Nitrogen, make sure your library (*Package.java)/app (MainApplication.java) calls "
|
|
66
|
-
"`System.loadLibrary(\"
|
|
67
|
-
"- If you use Nitrogen, make sure your cpp-adapter.cpp calls `margelo::nitro
|
|
68
|
-
"- If you use Nitrogen, inspect the generated
|
|
66
|
+
"`System.loadLibrary(\"$$androidCxxLibName$$\")` somewhere on app-startup.\n"
|
|
67
|
+
"- If you use Nitrogen, make sure your cpp-adapter.cpp calls `margelo::nitro::$$cxxNamespace$$::initialize(vm)`.\n"
|
|
68
|
+
"- If you use Nitrogen, inspect the generated `$$androidCxxLibName$$OnLoad.cpp` file.\n"
|
|
69
69
|
"- If you don't use Nitrogen, make sure you called `HybridObjectRegistry.registerHybridObject(...)`.";
|
|
70
70
|
throw std::runtime_error(message);
|
|
71
71
|
}
|
|
@@ -73,7 +73,7 @@ std::shared_ptr<HybridObject> HybridObjectRegistry::createHybridObject(const std
|
|
|
73
73
|
|
|
74
74
|
#ifdef NITRO_DEBUG
|
|
75
75
|
if (instance == nullptr) [[unlikely]] {
|
|
76
|
-
throw std::runtime_error("Failed to create HybridObject \"" + hybridObjectName + "\" - The constructor returned
|
|
76
|
+
throw std::runtime_error("Failed to create HybridObject \"" + hybridObjectName + "\" - The constructor returned null!");
|
|
77
77
|
}
|
|
78
78
|
if (instance->getName() != hybridObjectName) [[unlikely]] {
|
|
79
79
|
throw std::runtime_error("HybridObject's name (\"" + instance->getName() +
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//
|
|
2
|
+
// PromiseType.hpp
|
|
3
|
+
// NitroModules
|
|
4
|
+
//
|
|
5
|
+
// Created by Marc Rousavy on 09.12.24.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "Promise.hpp"
|
|
11
|
+
#include <type_traits>
|
|
12
|
+
|
|
13
|
+
namespace margelo::nitro {
|
|
14
|
+
|
|
15
|
+
// Gets the `T` in `Promise<T>`.
|
|
16
|
+
template <typename T>
|
|
17
|
+
struct promise_type {
|
|
18
|
+
using type = void;
|
|
19
|
+
};
|
|
20
|
+
template <typename T>
|
|
21
|
+
struct promise_type<Promise<T>> {
|
|
22
|
+
using type = T;
|
|
23
|
+
};
|
|
24
|
+
template <typename T>
|
|
25
|
+
struct promise_type<std::shared_ptr<Promise<T>>> {
|
|
26
|
+
using type = T;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
template <typename T>
|
|
30
|
+
using promise_type_v = typename promise_type<std::remove_reference_t<T>>::type;
|
|
31
|
+
|
|
32
|
+
} // namespace margelo::nitro
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
#pragma once
|
|
6
6
|
|
|
7
|
+
#include "Promise.hpp"
|
|
7
8
|
#include <functional>
|
|
8
|
-
#include <future>
|
|
9
9
|
#include <jsi/jsi.h>
|
|
10
10
|
#include <queue>
|
|
11
11
|
#include <unordered_map>
|
|
@@ -42,13 +42,12 @@ public:
|
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Run the given function asynchronously on the Thread this Dispatcher is managing,
|
|
45
|
-
* and return a
|
|
45
|
+
* and return a `Promise<T>` that will hold the result of the function.
|
|
46
46
|
*/
|
|
47
47
|
template <typename T>
|
|
48
|
-
std::
|
|
48
|
+
std::shared_ptr<Promise<T>> runAsyncAwaitable(std::function<T()>&& function) {
|
|
49
49
|
// 1. Create Promise that can be shared between this and dispatcher thread
|
|
50
|
-
auto promise =
|
|
51
|
-
std::future<T> future = promise->get_future();
|
|
50
|
+
auto promise = Promise<T>::create();
|
|
52
51
|
|
|
53
52
|
runAsync([function = std::move(function), promise]() {
|
|
54
53
|
try {
|
|
@@ -56,21 +55,21 @@ public:
|
|
|
56
55
|
// 4. Call the actual function on the new Thread
|
|
57
56
|
function();
|
|
58
57
|
// 5.a. Resolve the Promise if we succeeded
|
|
59
|
-
promise->
|
|
58
|
+
promise->resolve();
|
|
60
59
|
} else {
|
|
61
60
|
// 4. Call the actual function on the new Thread
|
|
62
61
|
T result = function();
|
|
63
62
|
// 5.a. Resolve the Promise if we succeeded
|
|
64
|
-
promise->
|
|
63
|
+
promise->resolve(std::move(result));
|
|
65
64
|
}
|
|
66
65
|
} catch (...) {
|
|
67
66
|
// 5.b. Reject the Promise if the call failed
|
|
68
|
-
promise->
|
|
67
|
+
promise->reject(std::current_exception());
|
|
69
68
|
}
|
|
70
69
|
});
|
|
71
70
|
|
|
72
|
-
// 3. Return an open
|
|
73
|
-
return
|
|
71
|
+
// 3. Return an open `Promise<T>` that gets resolved later by the dispatcher Thread
|
|
72
|
+
return promise;
|
|
74
73
|
}
|
|
75
74
|
|
|
76
75
|
private:
|
|
@@ -24,7 +24,8 @@ namespace margelo::nitro {
|
|
|
24
24
|
* This can be used in remote implementations, e.g. in a Swift implementation
|
|
25
25
|
* to properly (weak-)reference the `HybridObject` instead of re-creating it each time.
|
|
26
26
|
*/
|
|
27
|
-
struct
|
|
27
|
+
struct [[deprecated("Update Nitrogen and re-generate your specs.")]]
|
|
28
|
+
HybridContext final {
|
|
28
29
|
public:
|
|
29
30
|
std::weak_ptr<HybridObject> cppPart;
|
|
30
31
|
|
|
@@ -11,17 +11,6 @@ import Foundation
|
|
|
11
11
|
* A base protocol for all Swift-based Hybrid Objects.
|
|
12
12
|
*/
|
|
13
13
|
public protocol HybridObjectSpec: AnyObject {
|
|
14
|
-
/**
|
|
15
|
-
* Holds the C++ HybridObject and it's context.
|
|
16
|
-
* Use the default initializer in your implementation, C++ will set and get this value.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```swift
|
|
20
|
-
* var hybridContext = margelo.nitro.HybridContext()
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
var hybridContext: margelo.nitro.HybridContext { get set }
|
|
24
|
-
|
|
25
14
|
/**
|
|
26
15
|
* Get the memory size of the Swift instance (plus any external heap allocations),
|
|
27
16
|
* in bytes.
|
|
@@ -33,7 +22,7 @@ public protocol HybridObjectSpec: AnyObject {
|
|
|
33
22
|
* ```swift
|
|
34
23
|
* var memorySize: Int {
|
|
35
24
|
* let imageSize = self.uiImage.bytesPerRow * self.uiImage.height
|
|
36
|
-
* return
|
|
25
|
+
* return imageSize
|
|
37
26
|
* }
|
|
38
27
|
* ```
|
|
39
28
|
*/
|
|
@@ -41,12 +30,8 @@ public protocol HybridObjectSpec: AnyObject {
|
|
|
41
30
|
}
|
|
42
31
|
|
|
43
32
|
public extension HybridObjectSpec {
|
|
44
|
-
|
|
45
|
-
* Get the memory size of the given instance.
|
|
46
|
-
* This only accounts for stack allocated member variables,
|
|
47
|
-
* not for externally allocated heap allocations like images or buffers.
|
|
48
|
-
*/
|
|
33
|
+
@available(*, deprecated, message: "getSizeOf(...) will now be default-computed. Please remove getSizeOf() from your code.")
|
|
49
34
|
func getSizeOf<T: AnyObject>(_ instance: T) -> Int {
|
|
50
|
-
return
|
|
35
|
+
return 0
|
|
51
36
|
}
|
|
52
37
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MemoryHelper.swift
|
|
3
|
+
// NitroModules
|
|
4
|
+
//
|
|
5
|
+
// Created by Marc Rousavy on 17.12.2024.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
|
|
10
|
+
public final class MemoryHelper {
|
|
11
|
+
/**
|
|
12
|
+
* Get the amount of memory that was allocated using a `malloc`-like allocator
|
|
13
|
+
* for the given instance, in bytes.
|
|
14
|
+
* When allocating resources differently (e.g. GPU buffers, or `UIImage`) you
|
|
15
|
+
* should add their byte sizes to the result of this function to get an object's
|
|
16
|
+
* total memory footprint.
|
|
17
|
+
*/
|
|
18
|
+
public static func getSizeOf(_ instance: AnyObject) -> Int {
|
|
19
|
+
return malloc_size(Unmanaged.passUnretained(instance).toOpaque())
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <exception>
|
|
4
|
+
#include <new>
|
|
5
|
+
#include <type_traits>
|
|
6
|
+
#include <utility>
|
|
7
|
+
|
|
8
|
+
namespace margelo::nitro {
|
|
9
|
+
|
|
10
|
+
// TODO: Remove this whole Result wrapping system once Swift errors can be caught in C++.
|
|
11
|
+
// See https://github.com/swiftlang/swift/issues/75290
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents a Result from a function. It's either a value (`T`), or an error (`std::exception_ptr`).
|
|
15
|
+
*/
|
|
16
|
+
template <typename T>
|
|
17
|
+
class Result {
|
|
18
|
+
public:
|
|
19
|
+
// Constructors
|
|
20
|
+
Result(const Result& other) : _hasError(other._hasError) {
|
|
21
|
+
if (_hasError) {
|
|
22
|
+
new (&_error) std::exception_ptr(other._error);
|
|
23
|
+
} else {
|
|
24
|
+
new (&_storage) T(other.value());
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
Result(Result&& other) noexcept(std::is_nothrow_move_constructible<T>::value) : _hasError(other._hasError) {
|
|
29
|
+
if (_hasError) {
|
|
30
|
+
new (&_error) std::exception_ptr(std::move(other._error));
|
|
31
|
+
} else {
|
|
32
|
+
new (&_storage) T(std::move(other.value()));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
~Result() {
|
|
37
|
+
destroy();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Result& operator=(const Result& other) {
|
|
41
|
+
if (this == &other)
|
|
42
|
+
return *this;
|
|
43
|
+
destroy();
|
|
44
|
+
_hasError = other._hasError;
|
|
45
|
+
if (_hasError) {
|
|
46
|
+
new (&_error) std::exception_ptr(other._error);
|
|
47
|
+
} else {
|
|
48
|
+
new (&_storage) T(other.value());
|
|
49
|
+
}
|
|
50
|
+
return *this;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
Result& operator=(Result&& other) noexcept(std::is_nothrow_move_constructible<T>::value) {
|
|
54
|
+
if (this == &other)
|
|
55
|
+
return *this;
|
|
56
|
+
destroy();
|
|
57
|
+
_hasError = other._hasError;
|
|
58
|
+
if (_hasError) {
|
|
59
|
+
new (&_error) std::exception_ptr(std::move(other._error));
|
|
60
|
+
} else {
|
|
61
|
+
new (&_storage) T(std::move(other.value()));
|
|
62
|
+
}
|
|
63
|
+
return *this;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Static factories
|
|
67
|
+
static Result withValue(const T& value) {
|
|
68
|
+
return Result(value);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
static Result withValue(T&& value) {
|
|
72
|
+
return Result(std::move(value));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
static Result withError(std::exception_ptr eptr) {
|
|
76
|
+
return Result(eptr);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Accessors
|
|
80
|
+
bool hasValue() const noexcept {
|
|
81
|
+
return !_hasError;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
bool hasError() const noexcept {
|
|
85
|
+
return _hasError;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const T& value() const {
|
|
89
|
+
assert(!_hasError && "Result<T> does not hold a value!");
|
|
90
|
+
return *reinterpret_cast<const T*>(&_storage);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
T& value() {
|
|
94
|
+
assert(!_hasError && "Result<T> does not hold a value!");
|
|
95
|
+
return *reinterpret_cast<T*>(&_storage);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
std::exception_ptr error() const {
|
|
99
|
+
assert(_hasError && "Result<T> does not hold an error!");
|
|
100
|
+
return _error;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
private:
|
|
104
|
+
// Private constructors
|
|
105
|
+
explicit Result(const T& value) : _hasError(false) {
|
|
106
|
+
new (&_storage) T(value);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
explicit Result(T&& value) : _hasError(false) {
|
|
110
|
+
new (&_storage) T(std::move(value));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
explicit Result(std::exception_ptr eptr) : _hasError(true) {
|
|
114
|
+
new (&_error) std::exception_ptr(eptr);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
void destroy() {
|
|
118
|
+
if (_hasError) {
|
|
119
|
+
reinterpret_cast<std::exception_ptr*>(&_error)->~exception_ptr();
|
|
120
|
+
} else {
|
|
121
|
+
reinterpret_cast<T*>(&_storage)->~T();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
private:
|
|
126
|
+
bool _hasError;
|
|
127
|
+
union {
|
|
128
|
+
typename std::aligned_storage<sizeof(T), alignof(T)>::type _storage;
|
|
129
|
+
std::exception_ptr _error;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
// Specialization for void
|
|
134
|
+
template <>
|
|
135
|
+
class Result<void> {
|
|
136
|
+
public:
|
|
137
|
+
// Constructors
|
|
138
|
+
Result(const Result& other) : _hasError(other._hasError), _error(other._error) {}
|
|
139
|
+
|
|
140
|
+
Result(Result&& other) noexcept : _hasError(other._hasError), _error(std::move(other._error)) {}
|
|
141
|
+
|
|
142
|
+
Result& operator=(const Result& other) {
|
|
143
|
+
if (this == &other)
|
|
144
|
+
return *this;
|
|
145
|
+
_hasError = other._hasError;
|
|
146
|
+
if (_hasError) {
|
|
147
|
+
_error = other._error;
|
|
148
|
+
}
|
|
149
|
+
return *this;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
Result& operator=(Result&& other) noexcept {
|
|
153
|
+
if (this == &other)
|
|
154
|
+
return *this;
|
|
155
|
+
_hasError = other._hasError;
|
|
156
|
+
if (_hasError) {
|
|
157
|
+
_error = std::move(other._error);
|
|
158
|
+
}
|
|
159
|
+
return *this;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Static factories
|
|
163
|
+
static Result withValue() {
|
|
164
|
+
return Result();
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
static Result withError(std::exception_ptr eptr) {
|
|
168
|
+
return Result(eptr);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
bool hasValue() const noexcept {
|
|
172
|
+
return !_hasError;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
bool hasError() const noexcept {
|
|
176
|
+
return _hasError;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
std::exception_ptr error() const {
|
|
180
|
+
assert(_hasError && "Result<void> does not hold an error!");
|
|
181
|
+
return _error;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private:
|
|
185
|
+
explicit Result() : _hasError(false), _error(nullptr) {}
|
|
186
|
+
explicit Result(std::exception_ptr error) : _hasError(true), _error(error) {}
|
|
187
|
+
|
|
188
|
+
private:
|
|
189
|
+
bool _hasError;
|
|
190
|
+
std::exception_ptr _error;
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
} // namespace margelo::nitro
|
|
@@ -18,6 +18,10 @@ static inline std::exception_ptr make_exception(const std::string& message) {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
static inline std::string get_exception_message(const std::exception_ptr& exception) {
|
|
21
|
+
if (exception == nullptr) [[unlikely]] {
|
|
22
|
+
throw std::runtime_error("Cannot get error message of an empty exception_ptr!");
|
|
23
|
+
}
|
|
24
|
+
|
|
21
25
|
try {
|
|
22
26
|
std::rethrow_exception(exception);
|
|
23
27
|
} catch (const std::exception& error) {
|
|
@@ -28,6 +28,14 @@ if (NitroModules == null) {
|
|
|
28
28
|
const cause = new Error('NitroModules was installed, but `global.NitroModulesProxy` was null!');
|
|
29
29
|
throw new _ModuleNotFoundError.ModuleNotFoundError(cause);
|
|
30
30
|
}
|
|
31
|
+
|
|
32
|
+
// Double-check native version
|
|
33
|
+
if (__DEV__) {
|
|
34
|
+
const jsVersion = require('react-native-nitro-modules/package.json').version;
|
|
35
|
+
if (jsVersion !== NitroModules.version) {
|
|
36
|
+
console.warn(`The native Nitro Modules core runtime version is ${NitroModules.version}, but the JS code is using version ${jsVersion}. ` + `This could lead to undefined behaviour! Make sure to keep your Nitro versions in sync.`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
31
39
|
function isRuntimeAlive() {
|
|
32
40
|
const cache = globalThis.__nitroModulesJSICache;
|
|
33
41
|
const dispatcher = globalThis.__nitroDispatcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","turboModule","TurboModuleRegistry","getEnforcing","e","ModuleNotFoundError","errorMessage","install","Error","NitroModules","exports","global","NitroModulesProxy","cause","isRuntimeAlive","cache","globalThis","__nitroModulesJSICache","dispatcher","__nitroDispatcher"],"sourceRoot":"../../../src","sources":["turbomodule/NativeNitroModules.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAYA;AACA,IAAIE,WAA6B;AACjC,IAAI;EACFA,WAAW,GAAGC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC;AACtE,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV,MAAM,IAAIC,wCAAmB,CAACD,CAAC,CAAC;AAClC;;AAEA;AACA,MAAME,YAAY,GAAGL,WAAW,CAACM,OAAO,CAAC,CAAC;AAC1C,IAAID,YAAY,IAAI,IAAI,EAAE;EACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4BF,YAAY,EAAE,CAAC;AAC7D;;AAEA;AACA;AACO,MAAMG,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,MAAM,CAACC,iBAAsC;AACzE,IAAIH,YAAY,IAAI,IAAI,EAAE;EACxB,MAAMI,KAAK,GAAG,IAAIL,KAAK,CACrB,sEACF,CAAC;EACD,MAAM,IAAIH,wCAAmB,CAACQ,KAAK,CAAC;AACtC;AAOO,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_ModuleNotFoundError","turboModule","TurboModuleRegistry","getEnforcing","e","ModuleNotFoundError","errorMessage","install","Error","NitroModules","exports","global","NitroModulesProxy","cause","__DEV__","jsVersion","version","console","warn","isRuntimeAlive","cache","globalThis","__nitroModulesJSICache","dispatcher","__nitroDispatcher"],"sourceRoot":"../../../src","sources":["turbomodule/NativeNitroModules.ts"],"mappings":";;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAYA;AACA,IAAIE,WAA6B;AACjC,IAAI;EACFA,WAAW,GAAGC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC;AACtE,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV,MAAM,IAAIC,wCAAmB,CAACD,CAAC,CAAC;AAClC;;AAEA;AACA,MAAME,YAAY,GAAGL,WAAW,CAACM,OAAO,CAAC,CAAC;AAC1C,IAAID,YAAY,IAAI,IAAI,EAAE;EACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4BF,YAAY,EAAE,CAAC;AAC7D;;AAEA;AACA;AACO,MAAMG,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,MAAM,CAACC,iBAAsC;AACzE,IAAIH,YAAY,IAAI,IAAI,EAAE;EACxB,MAAMI,KAAK,GAAG,IAAIL,KAAK,CACrB,sEACF,CAAC;EACD,MAAM,IAAIH,wCAAmB,CAACQ,KAAK,CAAC;AACtC;;AAEA;AACA,IAAIC,OAAO,EAAE;EACX,MAAMC,SAAS,GAAGhB,OAAO,CAAC,yCAAyC,CAAC,CAACiB,OAAO;EAC5E,IAAID,SAAS,KAAKN,YAAY,CAACO,OAAO,EAAE;IACtCC,OAAO,CAACC,IAAI,CACV,oDAAoDT,YAAY,CAACO,OAAO,sCAAsCD,SAAS,IAAI,GACzH,wFACJ,CAAC;EACH;AACF;AAOO,SAASI,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGC,UAAU,CAACC,sBAAsB;EAC/C,MAAMC,UAAU,GAAGF,UAAU,CAACG,iBAAiB;EAC/C,OAAOJ,KAAK,IAAI,IAAI,IAAIG,UAAU,IAAI,IAAI;AAC5C","ignoreList":[]}
|
|
@@ -23,6 +23,14 @@ if (NitroModules == null) {
|
|
|
23
23
|
const cause = new Error('NitroModules was installed, but `global.NitroModulesProxy` was null!');
|
|
24
24
|
throw new ModuleNotFoundError(cause);
|
|
25
25
|
}
|
|
26
|
+
|
|
27
|
+
// Double-check native version
|
|
28
|
+
if (__DEV__) {
|
|
29
|
+
const jsVersion = require('react-native-nitro-modules/package.json').version;
|
|
30
|
+
if (jsVersion !== NitroModules.version) {
|
|
31
|
+
console.warn(`The native Nitro Modules core runtime version is ${NitroModules.version}, but the JS code is using version ${jsVersion}. ` + `This could lead to undefined behaviour! Make sure to keep your Nitro versions in sync.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
26
34
|
export function isRuntimeAlive() {
|
|
27
35
|
const cache = globalThis.__nitroModulesJSICache;
|
|
28
36
|
const dispatcher = globalThis.__nitroDispatcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","turboModule","getEnforcing","e","errorMessage","install","Error","NitroModules","global","NitroModulesProxy","cause","isRuntimeAlive","cache","globalThis","__nitroModulesJSICache","dispatcher","__nitroDispatcher"],"sourceRoot":"../../../src","sources":["turbomodule/NativeNitroModules.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SAASC,mBAAmB,QAAQ,wBAAwB;AAY5D;AACA,IAAIC,WAA6B;AACjC,IAAI;EACFA,WAAW,GAAGF,mBAAmB,CAACG,YAAY,CAAO,cAAc,CAAC;AACtE,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV,MAAM,IAAIH,mBAAmB,CAACG,CAAC,CAAC;AAClC;;AAEA;AACA,MAAMC,YAAY,GAAGH,WAAW,CAACI,OAAO,CAAC,CAAC;AAC1C,IAAID,YAAY,IAAI,IAAI,EAAE;EACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4BF,YAAY,EAAE,CAAC;AAC7D;;AAEA;AACA;AACA,OAAO,MAAMG,YAAY,GAAGC,MAAM,CAACC,iBAAsC;AACzE,IAAIF,YAAY,IAAI,IAAI,EAAE;EACxB,MAAMG,KAAK,GAAG,IAAIJ,KAAK,CACrB,sEACF,CAAC;EACD,MAAM,IAAIN,mBAAmB,CAACU,KAAK,CAAC;AACtC;AAOA,OAAO,
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","turboModule","getEnforcing","e","errorMessage","install","Error","NitroModules","global","NitroModulesProxy","cause","__DEV__","jsVersion","require","version","console","warn","isRuntimeAlive","cache","globalThis","__nitroModulesJSICache","dispatcher","__nitroDispatcher"],"sourceRoot":"../../../src","sources":["turbomodule/NativeNitroModules.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAClD,SAASC,mBAAmB,QAAQ,wBAAwB;AAY5D;AACA,IAAIC,WAA6B;AACjC,IAAI;EACFA,WAAW,GAAGF,mBAAmB,CAACG,YAAY,CAAO,cAAc,CAAC;AACtE,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV,MAAM,IAAIH,mBAAmB,CAACG,CAAC,CAAC;AAClC;;AAEA;AACA,MAAMC,YAAY,GAAGH,WAAW,CAACI,OAAO,CAAC,CAAC;AAC1C,IAAID,YAAY,IAAI,IAAI,EAAE;EACxB,MAAM,IAAIE,KAAK,CAAC,4BAA4BF,YAAY,EAAE,CAAC;AAC7D;;AAEA;AACA;AACA,OAAO,MAAMG,YAAY,GAAGC,MAAM,CAACC,iBAAsC;AACzE,IAAIF,YAAY,IAAI,IAAI,EAAE;EACxB,MAAMG,KAAK,GAAG,IAAIJ,KAAK,CACrB,sEACF,CAAC;EACD,MAAM,IAAIN,mBAAmB,CAACU,KAAK,CAAC;AACtC;;AAEA;AACA,IAAIC,OAAO,EAAE;EACX,MAAMC,SAAS,GAAGC,OAAO,CAAC,yCAAyC,CAAC,CAACC,OAAO;EAC5E,IAAIF,SAAS,KAAKL,YAAY,CAACO,OAAO,EAAE;IACtCC,OAAO,CAACC,IAAI,CACV,oDAAoDT,YAAY,CAACO,OAAO,sCAAsCF,SAAS,IAAI,GACzH,wFACJ,CAAC;EACH;AACF;AAOA,OAAO,SAASK,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGC,UAAU,CAACC,sBAAsB;EAC/C,MAAMC,UAAU,GAAGF,UAAU,CAACG,iBAAiB;EAC/C,OAAOJ,KAAK,IAAI,IAAI,IAAIG,UAAU,IAAI,IAAI;AAC5C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/anymap.ts","../src/hybridobject.ts","../src/boxedhybridobject.ts","../../../node_modules/react-native/types/modules/batchedbridge.d.ts","../../../node_modules/react-native/types/modules/codegen.d.ts","../../../node_modules/react-native/types/modules/devtools.d.ts","../../../node_modules/react-native/types/modules/globals.d.ts","../../../node_modules/react-native/types/modules/launchscreen.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/react-native/types/private/utilities.d.ts","../../../node_modules/react-native/types/public/insets.d.ts","../../../node_modules/react-native/types/public/reactnativetypes.d.ts","../../../node_modules/react-native/libraries/types/coreeventtypes.d.ts","../../../node_modules/react-native/types/public/reactnativerenderer.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchable.d.ts","../../../node_modules/react-native/libraries/components/view/viewaccessibility.d.ts","../../../node_modules/react-native/libraries/components/view/viewproptypes.d.ts","../../../node_modules/react-native/libraries/components/refreshcontrol/refreshcontrol.d.ts","../../../node_modules/react-native/libraries/components/scrollview/scrollview.d.ts","../../../node_modules/react-native/libraries/components/view/view.d.ts","../../../node_modules/react-native/libraries/image/imageresizemode.d.ts","../../../node_modules/react-native/libraries/image/imagesource.d.ts","../../../node_modules/react-native/libraries/image/image.d.ts","../../../node_modules/@react-native/virtualized-lists/lists/virtualizedlist.d.ts","../../../node_modules/@react-native/virtualized-lists/index.d.ts","../../../node_modules/react-native/libraries/lists/flatlist.d.ts","../../../node_modules/react-native/libraries/reactnative/rendererproxy.d.ts","../../../node_modules/react-native/libraries/lists/sectionlist.d.ts","../../../node_modules/react-native/libraries/text/text.d.ts","../../../node_modules/react-native/libraries/animated/animated.d.ts","../../../node_modules/react-native/libraries/stylesheet/stylesheettypes.d.ts","../../../node_modules/react-native/libraries/stylesheet/stylesheet.d.ts","../../../node_modules/react-native/libraries/stylesheet/processcolor.d.ts","../../../node_modules/react-native/libraries/actionsheetios/actionsheetios.d.ts","../../../node_modules/react-native/libraries/alert/alert.d.ts","../../../node_modules/react-native/libraries/animated/easing.d.ts","../../../node_modules/react-native/libraries/animated/useanimatedvalue.d.ts","../../../node_modules/react-native/libraries/vendor/emitter/eventemitter.d.ts","../../../node_modules/react-native/libraries/eventemitter/rctdeviceeventemitter.d.ts","../../../node_modules/react-native/libraries/eventemitter/rctnativeappeventemitter.d.ts","../../../node_modules/react-native/libraries/appstate/appstate.d.ts","../../../node_modules/react-native/libraries/batchedbridge/nativemodules.d.ts","../../../node_modules/react-native/libraries/components/accessibilityinfo/accessibilityinfo.d.ts","../../../node_modules/react-native/libraries/components/activityindicator/activityindicator.d.ts","../../../node_modules/react-native/libraries/components/clipboard/clipboard.d.ts","../../../node_modules/react-native/libraries/components/drawerandroid/drawerlayoutandroid.d.ts","../../../node_modules/react-native/libraries/eventemitter/nativeeventemitter.d.ts","../../../node_modules/react-native/libraries/components/keyboard/keyboard.d.ts","../../../node_modules/react-native/types/private/timermixin.d.ts","../../../node_modules/react-native/libraries/components/keyboard/keyboardavoidingview.d.ts","../../../node_modules/react-native/libraries/components/pressable/pressable.d.ts","../../../node_modules/react-native/libraries/components/progressbarandroid/progressbarandroid.d.ts","../../../node_modules/react-native/libraries/components/safeareaview/safeareaview.d.ts","../../../node_modules/react-native/libraries/components/statusbar/statusbar.d.ts","../../../node_modules/react-native/libraries/components/switch/switch.d.ts","../../../node_modules/react-native/libraries/components/textinput/inputaccessoryview.d.ts","../../../node_modules/react-native/libraries/components/textinput/textinput.d.ts","../../../node_modules/react-native/libraries/components/toastandroid/toastandroid.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablewithoutfeedback.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablehighlight.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchableopacity.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablenativefeedback.d.ts","../../../node_modules/react-native/libraries/components/button.d.ts","../../../node_modules/react-native/libraries/core/registercallablemodule.d.ts","../../../node_modules/react-native/libraries/devtoolssettings/devtoolssettingsmanager.d.ts","../../../node_modules/react-native/libraries/interaction/interactionmanager.d.ts","../../../node_modules/react-native/libraries/interaction/panresponder.d.ts","../../../node_modules/react-native/libraries/layoutanimation/layoutanimation.d.ts","../../../node_modules/react-native/libraries/linking/linking.d.ts","../../../node_modules/react-native/libraries/logbox/logbox.d.ts","../../../node_modules/react-native/libraries/modal/modal.d.ts","../../../node_modules/react-native/libraries/performance/systrace.d.ts","../../../node_modules/react-native/libraries/permissionsandroid/permissionsandroid.d.ts","../../../node_modules/react-native/libraries/pushnotificationios/pushnotificationios.d.ts","../../../node_modules/react-native/libraries/utilities/iperformancelogger.d.ts","../../../node_modules/react-native/libraries/reactnative/appregistry.d.ts","../../../node_modules/react-native/libraries/reactnative/i18nmanager.d.ts","../../../node_modules/react-native/libraries/reactnative/roottag.d.ts","../../../node_modules/react-native/libraries/reactnative/uimanager.d.ts","../../../node_modules/react-native/libraries/reactnative/requirenativecomponent.d.ts","../../../node_modules/react-native/libraries/settings/settings.d.ts","../../../node_modules/react-native/libraries/share/share.d.ts","../../../node_modules/react-native/libraries/stylesheet/platformcolorvaluetypesios.d.ts","../../../node_modules/react-native/libraries/stylesheet/platformcolorvaluetypes.d.ts","../../../node_modules/react-native/libraries/turbomodule/rctexport.d.ts","../../../node_modules/react-native/libraries/turbomodule/turbomoduleregistry.d.ts","../../../node_modules/react-native/libraries/utilities/appearance.d.ts","../../../node_modules/react-native/libraries/utilities/backhandler.d.ts","../../../node_modules/react-native/libraries/utilities/devsettings.d.ts","../../../node_modules/react-native/libraries/utilities/dimensions.d.ts","../../../node_modules/react-native/libraries/utilities/pixelratio.d.ts","../../../node_modules/react-native/libraries/utilities/platform.d.ts","../../../node_modules/react-native/libraries/vibration/vibration.d.ts","../../../node_modules/react-native/libraries/yellowbox/yellowboxdeprecated.d.ts","../../../node_modules/react-native/libraries/vendor/core/errorutils.d.ts","../../../node_modules/react-native/types/public/deprecatedpropertiesalias.d.ts","../../../node_modules/react-native/types/index.d.ts","../src/modulenotfounderror.ts","../src/nitromodulesproxy.ts","../src/turbomodule/nativenitromodules.ts","../src/nitromodules.ts","../src/constructor.ts","../src/index.ts","../src/__tests__/index.test.tsx","../src/turbomodule/nativenitromodules.web.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"9d540251809289a05349b70ab5f4b7b99f922af66ab3c39ba56a475dcf95d5ff","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"a064b82533d211b1f97d1dc7c82e8d622d82d873a3dbb7e225f6e17814f40003","signature":"5d6084b922921ea84fce8617204272f5fb30ef8bedd91da18102c160fcf591aa"},{"version":"75c983a06ae990d5d05e9e6bcc5b20e52c1008f10a4d18af7561ce33ced01d23","signature":"90538ea42b1b8f3ac4ec7306a0a27ba7afee541df9684991e87202ffc9a6beb7"},{"version":"7cdf8681726690f80e41a5dcae289e664e78e0a0f81682d38b0f86ce9439f2aa","signature":"e5d121b23622c120b8e60e5efccd1436d9212b89f4cb180eb330f7d00cbe0e5d"},{"version":"3a909e8789a4f8b5377ef3fb8dc10d0c0a090c03f2e40aab599534727457475a","affectsGlobalScope":true},"2b47c8df863142d9383f948c987e1ebd25ade3867aeb4ae60e9d6009035dfe46","b8dd45aa6e099a5f564edcabfe8114096b096eb1ffaa343dd6f3fe73f1a6e85e",{"version":"38e8ac2d182bd3f85d28de9bdf1386c19a319f9c0280aa43960204c353b07878","affectsGlobalScope":true},"bc4db28f3510994e45bbabba1ee33e9a0d27dab33d4c8a5844cee8c85438a058",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800",{"version":"c469d07daf4f88b613f0c99d95389e049e85c14f28f58120abca6785a0b3813d","affectsGlobalScope":true},"232f660363b3b189f7be7822ed71e907195d1a85bc8d55d2b7ce3f09b2136938","e745388cfad9efb4e5a9a15a2c6b66d54094dd82f8d0c2551064e216f7b51526","53390c21d095fb54e6c0b8351cbf7f4008f096ade9717bc5ee75e340bc3dfa30","71493b2c538dffa1e3e968b55b70984b542cc6e488012850865f72768ff32630","8ebf448e9837fda1a368acbb575b0e28843d5b2a3fda04bce76248b64326ea49","91b9f6241fca7843985aa31157cfa08cc724c77d91145a4d834d27cdde099c05","8b94ac8c460c9a2578ca3308fecfcf034e21af89e9c287c97710e9717ffae133","a7266bcc42f8ec0f31f319c2dd8100411b4d7b8a534235cb00a719f1c8a2a42e","3dfa3a6f2a62259b56fa7bcebfbacf886848dfa037298be5bed07c7a0381ee4f","a1e3cda52746919d2a95784ce0b1b9ffa22052209aab5f54e079e7b920f5339e","1882680f8c88c5648d603408dd1943857ca831a815e33d3126be8368f7a69252","f387a979388291b2688ba0f604e3ae78874f5f777616b448d34109762a4f05a9","cae0fb826d8a88749189b8a924dfcb5d3ad629e3bc5ec934195fbd83fa48b068","376b8482d1224aa83f4521590672304e30ba847d0b87b9e1a62b2e60a5c788f2","488242948cc48ee6413a159c60bcaf70de15db01364741737a962662f1a127a5","42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","b326790c20287ad266b5fcd0c388e2a83320a24747856727dcb70c7bbd489dfc","cd2156bc8e4d54d52a2817d1b6f4629a5dd3173b1d8bb0fc893ee678d6a78ecd","60526d9010e8ccb2a76a59821061463464c3acd5bc7a50320df6d2e4e0d6e4f7","562cce1c8e14e8d5a55d1931cb1848b1df49cc7b1024356d56f3550ed57ad67f","623fa4efc706bb9956d0ae94b13321c6617655bf8ebdb270c9792bb398f82e44","f20c96192f5841cbf982d2c1989c1e9fdef41c4a9db7543edff131007bf1dbfb","79d6871ce0da76f4c865a58daa509d5c8a10545d510b804501daa5d0626e7028","9054417b5760061bc5fe31f9eee5dc9bf018339b0617d3c65dd1673c8e3c0f25","442856ad0787bc213f659e134c204ad0d502179aa216bf700faefb5572208358","443702ca8101ef0adc827c2cc530ca93cf98d41e36ce4399efb9bc833ad9cb62","c94f70562ae60797cce564c3bebbaaf1752c327d5063d6ac152aa5ca1616c267","2aeb5fcdfc884b16015617d263fd8d1a8513f7efe23880be4e5f0bdb3794b37c","fd412dd6372493eb8e3e95cae8687d35e4d34dde905a33e0ee47b74224cdd6ab","b561170fbe8d4292425e1dfa52406c8d97575681f7a5e420d11d9f72f7c29e38","5fe94f3f6411a0f6293f16fdc8e02ee61138941847ce91d6f6800c97fac22fcd","7f7c0ecc3eeeef905a3678e540947f4fbbc1a9c76075419dcc5fbfc3df59cb0b","df3303018d45c92be73fb4a282d5a242579f96235f5e0f8981983102caf5feca","35db266b474b3b9dfd0bc7d25dff3926cc227de45394262f3783b8b174182a16","8205e62a7310ac0513747f6d84175400680cff372559bc5fbe2df707194a295d","084d0df6805570b6dc6c8b49c3a71d5bdfe59606901e0026c63945b68d4b080a","8387fa3287992c71702756fe6ecea68e2f8f2c5aa434493e3afe4817dd4a4787","0f066f9654e700a9cf79c75553c934eb14296aa80583bd2b5d07e2d582a3f4ee","269c5d54104033b70331343bd931c9933852a882391ed6bd98c3d8b7d6465d22","a56b8577aaf471d9e60582065a8193269310e8cae48c1ce4111ed03216f5f715","486ae83cd51b813095f6716f06cc9b2cf480ad1d6c7f8ec59674d6c858cd2407","fff527e2567a24dd634a30268f1aa8a220315fed9c513d70ee872e54f67f27f3","5dd0ff735b3f2e642c3f16bcfb3dc4ecebb679a70e43cfb19ab5fd84d8faaeed","d1d78d1ef0f21ac77cdc436d2a4d56592453a8a2e51af2040ec9a69a5d35e4de","bc55b91274e43f88030c9cfe2c4217fae57894c3c302173ab6e9743c29484e3d","8bb22f70bfd7bf186631fa565c9202ee6a1009ffb961197b7d092b5a1e1d56b1","77282216c61bcef9a700db98e142301d5a7d988d3076286029da63e415e98a42","6c28f4f95aaa6c3c8b1a0681c29f446b0bf0ed1aa5aa11e8b2ca6fc9e066e9f2","64ce8e260a1362d4cadd6c753581a912a9869d4a53ec6e733dc61018f9250f5d","85a915dbb768b89cb92f5e6c165d776bfebd065883c34fee4e0219c3ed321b47","83df2f39cb14971adea51d1c84e7d146a34e9b7f84ad118450a51bdc3138412c","b96364fcb0c9d521e7618346b00acf3fe16ccf9368404ceac1658edee7b6332c","bdb2b70c74908c92ec41d8dd8375a195cb3bb07523e4de642b2b2dfbde249ca6","7b329f4137a552073f504022acbf8cd90d49cc5e5529791bef508f76ff774854","f63bbbffcfc897d22f34cf19ae13405cd267b1783cd21ec47d8a2d02947c98c1","7889f4932dfa7b1126cdc17914d85d80b5860cc3d62ba329494007e8aab45430","d9725ef7f60a791668f7fb808eb90b1789feaaef989a686fefc0f7546a51dcdc","df55b9be6ba19a6f77487e09dc7a94d7c9bf66094d35ea168dbd4bac42c46b8f","595125f3e088b883d104622ef10e6b7d5875ff6976bbe4d7dca090a3e2dca513","8ebb6f0603bf481e893311c49e4d2e2061413c51b9ba5898cd9b0a01f5ef19c8","e0d7eed4ba363df3faadb8e617f95f9fc8adfbb00b87db7ade4a1098d6cf1e90","38faab59a79924ce5eb4f2f3e7e7db91e74d425b4183f908cc014be213f0d971","de115595321ce012c456f512a799679bfc874f0ac0a4928a8429557bb25086aa","cdca67bd898deff48e3acb05fb44500b5ebce16c26a8ec99dee1522cf9879795","0524cab11ba9048d151d93cc666d3908fda329eec6b1642e9a936093e6d79f28","869073d7523e75f45bd65b2072865c60002d5e0cbd3d17831e999cf011312778","bc7b5906a6ce6c5744a640c314e020856be6c50a693e77dc12aff2d77b12ca76","56503e377bc1344f155e4e3115a772cb4e59350c0b8131e3e1fb2750ac491608","6b579287217ee1320ee1c6cfec5f6730f3a1f91daab000f7131558ee531b2bf8","e2ddb2877f5a841866f4fc772a601b58e90ac8399b35f9a06535be81b8e08b47","a793636667598e739a52684033037a67dc2d9db37fab727623626ef19aa5abb9","b15d6238a86bc0fc2368da429249b96c260debc0cec3eb7b5f838ad32587c129","9a9fba3a20769b0a74923e7032997451b61c1bd371c519429b29019399040d74","4b10e2fe52cb61035e58df3f1fdd926dd0fe9cf1a2302f92916da324332fb4e0","d1092ae8d6017f359f4758115f588e089848cc8fb359f7ba045b1a1cf3668a49","ddae9195b0da7b25a585ef43365f4dc5204a746b155fbee71e6ee1a9193fb69f","32dbced998ce74c5e76ce87044d0b4071857576dde36b0c6ed1d5957ce9cf5b5","5bc29a9918feba88816b71e32960cf11243b77b76630e9e87cad961e5e1d31d0","341ffa358628577f490f128f3880c01d50ef31412d1be012bb1cd959b0a383ea","ecc1b8878c8033bde0204b85e26fe1af6847805427759e5723882c848a11e134","cfc9c32553ad3b5be38342bc8731397438a93531118e1a226a8c79ad255b4f0c","16e5b5b023c2a1119c1878a51714861c56255778de0a7fe378391876a15f7433","52e8612d284467b4417143ca8fe54d30145fdfc3815f5b5ea9b14b677f422be5","a090a8a3b0ef2cceeb089acf4df95df72e7d934215896afe264ff6f734d66d15","a0259c6054e3ed2c5fb705b6638e384446cbcdf7fd2072c659b43bd56e214b9a","005319c82222e57934c7b211013eb6931829e46b2a61c5d9a1c3c25f8dc3ea90","151f422f08c8ca67b77c5c39d49278b4df452ef409237c8219be109ae3cdae9d",{"version":"6466cbb0aa561e1c1a87850a1f066692f1692a0a9513c508a3886cd66a62dae8","affectsGlobalScope":true},{"version":"445f7bb9b132395763d2fd00e88167a7b7d5c514728cfe462c17d044fe9f27d2","signature":"5423eff0aeb3d2eba041721efabde15d1c06709724dea6ae79b48559f86ed9b8","affectsGlobalScope":true},{"version":"518e88001c0f0491bfa8c829746804b01470e84eb3bf652cd94fcfba51a51ce4","signature":"36b6eabd3267624fa7b13a790877fc05eec7db80154aabb57f9c031c066189e9"},{"version":"2d47446fdcc95dd728b8476a79aaa0919734c265462904daf49ee111b2d63469","signature":"c071991397ba57b75b07574dd2d11efe990aea9c59136423d149ce6c3f301eea","affectsGlobalScope":true},{"version":"725586b511f51bca1589b2476a469a9335db4cb1fe1b8fd0e94c189d7335fa98","signature":"edac49118a9eb46d842c8d24a567e31f0290ecdf8d44a5fc78da3112c2fdda54"},{"version":"c1bfa934a0edef8d1e8a7360d4c67d3e3df4f3c45867ea6f8925c6ffbc907b79","signature":"a94e72e6c01437b8fa4f74fe9f192a8cc62b76e4c67730ca240f8db734f7c75e"},{"version":"c8f28aeb6a262efc544fd09ee8d16da12884d06b8c7168fa331deff3df5a182e","signature":"ab8b3b5fdcd840447d69c2dd1b62b0104e7f4a6242e8af92d26433fa3dd9ff39"},{"version":"844f2848bfe787dc98769ea4edc2e30371a5bfb15ef9f3e6afd625e76f6dc5c8","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"1c18d5790d0f5e15e84827cbf08982aef0339fb034b7971cff0535fc20a77879","signature":"68724f2c23cf02888072a2830ca5b336b6af536abce6094d3392e884c9293e52"},"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true}],"root":[[72,74],[172,179]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noImplicitUseStrict":false,"noStrictGenericChecks":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./typescript","rootDir":"../src","skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"fileIdsList":[[182],[98],[83,171],[184,187],[80,81,82],[180,186],[184],[181,185],[183],[106,107],[83,87,93,94,97,100,102,103,106],[104],[114],[83,86,112],[83,84,86,87,91,105,106],[83,106,135,136],[83,84,86,87,91,106],[112,121],[83,84,91,105,106,123],[83,85,87,90,91,94,105,106],[83,84,86,91,106],[83,84,86,91],[83,84,85,87,89,91,92,105,106],[83,106],[83,105,106],[83,84,86,87,90,91,105,106,112,123],[83,85,87],[83,94,105,106,133],[83,84,89,106,133,135],[83,94,133],[83,84,85,87,89,90,105,106,123],[87],[83,85,87,88,89,90,105,106],[112],[113],[83,84,85,86,87,90,95,96,105,106],[87,88],[83,93,94,99,105,106],[83,93,99,101,105,106],[83,87,91],[83,105,149],[83],[86],[83,86],[106],[105],[95,104,106],[83,84,86,87,90,105,106],[159],[121],[75,76,77,78,79,85,86,87,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[171],[77],[73],[73,175],[72,73,175,176],[174],[73,74],[171,172,173]],"referencedMap":[[183,1],[99,2],[98,3],[188,4],[83,5],[187,6],[185,7],[186,8],[184,9],[108,10],[104,11],[111,12],[115,13],[117,14],[118,15],[137,16],[120,17],[122,18],[124,19],[125,20],[126,21],[92,21],[127,22],[93,23],[128,24],[129,15],[130,25],[131,26],[89,27],[134,28],[136,29],[135,30],[133,31],[94,22],[90,32],[91,33],[121,34],[113,34],[114,35],[97,36],[140,34],[141,37],[143,18],[100,38],[102,39],[145,40],[150,41],[101,42],[154,43],[152,42],[153,44],[156,45],[158,45],[157,45],[107,45],[106,46],[105,47],[103,48],[160,49],[87,44],[161,13],[162,13],[163,50],[164,34],[168,42],[171,51],[76,52],[77,53],[170,52],[88,32],[86,42],[74,54],[176,55],[177,56],[172,52],[175,57],[173,58],[174,59],[179,52]],"latestChangedDtsFile":"./typescript/turbomodule/NativeNitroModules.web.d.ts"},"version":"5.5.4"}
|
|
1
|
+
{"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.array.d.ts","../../../node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.string.d.ts","../../../node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.object.d.ts","../../../node_modules/typescript/lib/lib.esnext.regexp.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../src/anymap.ts","../src/hybridobject.ts","../src/boxedhybridobject.ts","../../../node_modules/react-native/types/modules/batchedbridge.d.ts","../../../node_modules/react-native/libraries/vendor/emitter/eventemitter.d.ts","../../../node_modules/react-native/types/modules/codegen.d.ts","../../../node_modules/react-native/types/modules/devtools.d.ts","../../../node_modules/react-native/types/modules/globals.d.ts","../../../node_modules/react-native/types/modules/launchscreen.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/react-native/types/private/utilities.d.ts","../../../node_modules/react-native/types/public/insets.d.ts","../../../node_modules/react-native/types/public/reactnativetypes.d.ts","../../../node_modules/react-native/libraries/types/coreeventtypes.d.ts","../../../node_modules/react-native/types/public/reactnativerenderer.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchable.d.ts","../../../node_modules/react-native/libraries/components/view/viewaccessibility.d.ts","../../../node_modules/react-native/libraries/components/view/viewproptypes.d.ts","../../../node_modules/react-native/libraries/components/refreshcontrol/refreshcontrol.d.ts","../../../node_modules/react-native/libraries/components/scrollview/scrollview.d.ts","../../../node_modules/react-native/libraries/components/view/view.d.ts","../../../node_modules/react-native/libraries/image/imageresizemode.d.ts","../../../node_modules/react-native/libraries/image/imagesource.d.ts","../../../node_modules/react-native/libraries/image/image.d.ts","../../../node_modules/@react-native/virtualized-lists/lists/virtualizedlist.d.ts","../../../node_modules/@react-native/virtualized-lists/index.d.ts","../../../node_modules/react-native/libraries/lists/flatlist.d.ts","../../../node_modules/react-native/libraries/reactnative/rendererproxy.d.ts","../../../node_modules/react-native/libraries/lists/sectionlist.d.ts","../../../node_modules/react-native/libraries/text/text.d.ts","../../../node_modules/react-native/libraries/animated/animated.d.ts","../../../node_modules/react-native/libraries/stylesheet/stylesheettypes.d.ts","../../../node_modules/react-native/libraries/stylesheet/stylesheet.d.ts","../../../node_modules/react-native/libraries/stylesheet/processcolor.d.ts","../../../node_modules/react-native/libraries/actionsheetios/actionsheetios.d.ts","../../../node_modules/react-native/libraries/alert/alert.d.ts","../../../node_modules/react-native/libraries/animated/easing.d.ts","../../../node_modules/react-native/libraries/animated/useanimatedvalue.d.ts","../../../node_modules/react-native/libraries/eventemitter/rctdeviceeventemitter.d.ts","../../../node_modules/react-native/libraries/eventemitter/rctnativeappeventemitter.d.ts","../../../node_modules/react-native/libraries/appstate/appstate.d.ts","../../../node_modules/react-native/libraries/batchedbridge/nativemodules.d.ts","../../../node_modules/react-native/libraries/components/accessibilityinfo/accessibilityinfo.d.ts","../../../node_modules/react-native/libraries/components/activityindicator/activityindicator.d.ts","../../../node_modules/react-native/libraries/components/clipboard/clipboard.d.ts","../../../node_modules/react-native/libraries/components/drawerandroid/drawerlayoutandroid.d.ts","../../../node_modules/react-native/libraries/eventemitter/nativeeventemitter.d.ts","../../../node_modules/react-native/libraries/components/keyboard/keyboard.d.ts","../../../node_modules/react-native/types/private/timermixin.d.ts","../../../node_modules/react-native/libraries/components/keyboard/keyboardavoidingview.d.ts","../../../node_modules/react-native/libraries/components/pressable/pressable.d.ts","../../../node_modules/react-native/libraries/components/progressbarandroid/progressbarandroid.d.ts","../../../node_modules/react-native/libraries/components/safeareaview/safeareaview.d.ts","../../../node_modules/react-native/libraries/components/statusbar/statusbar.d.ts","../../../node_modules/react-native/libraries/components/switch/switch.d.ts","../../../node_modules/react-native/libraries/components/textinput/inputaccessoryview.d.ts","../../../node_modules/react-native/libraries/components/textinput/textinput.d.ts","../../../node_modules/react-native/libraries/components/toastandroid/toastandroid.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablewithoutfeedback.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablehighlight.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchableopacity.d.ts","../../../node_modules/react-native/libraries/components/touchable/touchablenativefeedback.d.ts","../../../node_modules/react-native/libraries/components/button.d.ts","../../../node_modules/react-native/libraries/core/registercallablemodule.d.ts","../../../node_modules/react-native/libraries/devtoolssettings/devtoolssettingsmanager.d.ts","../../../node_modules/react-native/libraries/interaction/interactionmanager.d.ts","../../../node_modules/react-native/libraries/interaction/panresponder.d.ts","../../../node_modules/react-native/libraries/layoutanimation/layoutanimation.d.ts","../../../node_modules/react-native/libraries/linking/linking.d.ts","../../../node_modules/react-native/libraries/logbox/logbox.d.ts","../../../node_modules/react-native/libraries/modal/modal.d.ts","../../../node_modules/react-native/libraries/performance/systrace.d.ts","../../../node_modules/react-native/libraries/permissionsandroid/permissionsandroid.d.ts","../../../node_modules/react-native/libraries/pushnotificationios/pushnotificationios.d.ts","../../../node_modules/react-native/libraries/utilities/iperformancelogger.d.ts","../../../node_modules/react-native/libraries/reactnative/appregistry.d.ts","../../../node_modules/react-native/libraries/reactnative/i18nmanager.d.ts","../../../node_modules/react-native/libraries/reactnative/roottag.d.ts","../../../node_modules/react-native/libraries/reactnative/uimanager.d.ts","../../../node_modules/react-native/libraries/reactnative/requirenativecomponent.d.ts","../../../node_modules/react-native/libraries/settings/settings.d.ts","../../../node_modules/react-native/libraries/share/share.d.ts","../../../node_modules/react-native/libraries/stylesheet/platformcolorvaluetypesios.d.ts","../../../node_modules/react-native/libraries/stylesheet/platformcolorvaluetypes.d.ts","../../../node_modules/react-native/libraries/turbomodule/rctexport.d.ts","../../../node_modules/react-native/libraries/turbomodule/turbomoduleregistry.d.ts","../../../node_modules/react-native/libraries/utilities/appearance.d.ts","../../../node_modules/react-native/libraries/utilities/backhandler.d.ts","../../../node_modules/react-native/libraries/utilities/devsettings.d.ts","../../../node_modules/react-native/libraries/utilities/dimensions.d.ts","../../../node_modules/react-native/libraries/utilities/pixelratio.d.ts","../../../node_modules/react-native/libraries/utilities/platform.d.ts","../../../node_modules/react-native/libraries/vibration/vibration.d.ts","../../../node_modules/react-native/libraries/yellowbox/yellowboxdeprecated.d.ts","../../../node_modules/react-native/libraries/vendor/core/errorutils.d.ts","../../../node_modules/react-native/types/public/deprecatedpropertiesalias.d.ts","../../../node_modules/react-native/types/index.d.ts","../src/modulenotfounderror.ts","../src/nitromodulesproxy.ts","../src/turbomodule/nativenitromodules.ts","../src/nitromodules.ts","../src/constructor.ts","../src/index.ts","../src/__tests__/index.test.tsx","../src/turbomodule/nativenitromodules.web.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/jest-matcher-utils/node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/typebox.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","17edc026abf73c5c2dd508652d63f68ec4efd9d4856e3469890d27598209feb5",{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"d8670852241d4c6e03f2b89d67497a4bbefe29ecaa5a444e2c11a9b05e6fccc6","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true},{"version":"9d540251809289a05349b70ab5f4b7b99f922af66ab3c39ba56a475dcf95d5ff","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true},{"version":"0b11f3ca66aa33124202c80b70cd203219c3d4460cfc165e0707aa9ec710fc53","affectsGlobalScope":true},{"version":"6a3f5a0129cc80cf439ab71164334d649b47059a4f5afca90282362407d0c87f","affectsGlobalScope":true},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true},{"version":"15b98a533864d324e5f57cd3cfc0579b231df58c1c0f6063ea0fcb13c3c74ff9","affectsGlobalScope":true},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"a064b82533d211b1f97d1dc7c82e8d622d82d873a3dbb7e225f6e17814f40003","signature":"5d6084b922921ea84fce8617204272f5fb30ef8bedd91da18102c160fcf591aa"},{"version":"75c983a06ae990d5d05e9e6bcc5b20e52c1008f10a4d18af7561ce33ced01d23","signature":"90538ea42b1b8f3ac4ec7306a0a27ba7afee541df9684991e87202ffc9a6beb7"},{"version":"7cdf8681726690f80e41a5dcae289e664e78e0a0f81682d38b0f86ce9439f2aa","signature":"e5d121b23622c120b8e60e5efccd1436d9212b89f4cb180eb330f7d00cbe0e5d"},{"version":"3a909e8789a4f8b5377ef3fb8dc10d0c0a090c03f2e40aab599534727457475a","affectsGlobalScope":true},"fd412dd6372493eb8e3e95cae8687d35e4d34dde905a33e0ee47b74224cdd6ab","9d3b119c15e8eeb9a8fbeca47e0165ca7120704d90bf123b16ee5b612e2ecc9d","b8dd45aa6e099a5f564edcabfe8114096b096eb1ffaa343dd6f3fe73f1a6e85e",{"version":"38e8ac2d182bd3f85d28de9bdf1386c19a319f9c0280aa43960204c353b07878","affectsGlobalScope":true},"bc4db28f3510994e45bbabba1ee33e9a0d27dab33d4c8a5844cee8c85438a058",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","247a952efd811d780e5630f8cfd76f495196f5fa74f6f0fee39ac8ba4a3c9800",{"version":"c469d07daf4f88b613f0c99d95389e049e85c14f28f58120abca6785a0b3813d","affectsGlobalScope":true},"232f660363b3b189f7be7822ed71e907195d1a85bc8d55d2b7ce3f09b2136938","e745388cfad9efb4e5a9a15a2c6b66d54094dd82f8d0c2551064e216f7b51526","53390c21d095fb54e6c0b8351cbf7f4008f096ade9717bc5ee75e340bc3dfa30","71493b2c538dffa1e3e968b55b70984b542cc6e488012850865f72768ff32630","8ebf448e9837fda1a368acbb575b0e28843d5b2a3fda04bce76248b64326ea49","91b9f6241fca7843985aa31157cfa08cc724c77d91145a4d834d27cdde099c05","8b94ac8c460c9a2578ca3308fecfcf034e21af89e9c287c97710e9717ffae133","a7266bcc42f8ec0f31f319c2dd8100411b4d7b8a534235cb00a719f1c8a2a42e","3dfa3a6f2a62259b56fa7bcebfbacf886848dfa037298be5bed07c7a0381ee4f","a1e3cda52746919d2a95784ce0b1b9ffa22052209aab5f54e079e7b920f5339e","1882680f8c88c5648d603408dd1943857ca831a815e33d3126be8368f7a69252","f387a979388291b2688ba0f604e3ae78874f5f777616b448d34109762a4f05a9","cae0fb826d8a88749189b8a924dfcb5d3ad629e3bc5ec934195fbd83fa48b068","376b8482d1224aa83f4521590672304e30ba847d0b87b9e1a62b2e60a5c788f2","488242948cc48ee6413a159c60bcaf70de15db01364741737a962662f1a127a5","42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","b326790c20287ad266b5fcd0c388e2a83320a24747856727dcb70c7bbd489dfc","cd2156bc8e4d54d52a2817d1b6f4629a5dd3173b1d8bb0fc893ee678d6a78ecd","60526d9010e8ccb2a76a59821061463464c3acd5bc7a50320df6d2e4e0d6e4f7","562cce1c8e14e8d5a55d1931cb1848b1df49cc7b1024356d56f3550ed57ad67f","623fa4efc706bb9956d0ae94b13321c6617655bf8ebdb270c9792bb398f82e44","f20c96192f5841cbf982d2c1989c1e9fdef41c4a9db7543edff131007bf1dbfb","79d6871ce0da76f4c865a58daa509d5c8a10545d510b804501daa5d0626e7028","9054417b5760061bc5fe31f9eee5dc9bf018339b0617d3c65dd1673c8e3c0f25","442856ad0787bc213f659e134c204ad0d502179aa216bf700faefb5572208358","443702ca8101ef0adc827c2cc530ca93cf98d41e36ce4399efb9bc833ad9cb62","c94f70562ae60797cce564c3bebbaaf1752c327d5063d6ac152aa5ca1616c267","2aeb5fcdfc884b16015617d263fd8d1a8513f7efe23880be4e5f0bdb3794b37c","b561170fbe8d4292425e1dfa52406c8d97575681f7a5e420d11d9f72f7c29e38","5fe94f3f6411a0f6293f16fdc8e02ee61138941847ce91d6f6800c97fac22fcd","7f7c0ecc3eeeef905a3678e540947f4fbbc1a9c76075419dcc5fbfc3df59cb0b","df3303018d45c92be73fb4a282d5a242579f96235f5e0f8981983102caf5feca","35db266b474b3b9dfd0bc7d25dff3926cc227de45394262f3783b8b174182a16","8205e62a7310ac0513747f6d84175400680cff372559bc5fbe2df707194a295d","084d0df6805570b6dc6c8b49c3a71d5bdfe59606901e0026c63945b68d4b080a","8387fa3287992c71702756fe6ecea68e2f8f2c5aa434493e3afe4817dd4a4787","0f066f9654e700a9cf79c75553c934eb14296aa80583bd2b5d07e2d582a3f4ee","269c5d54104033b70331343bd931c9933852a882391ed6bd98c3d8b7d6465d22","a56b8577aaf471d9e60582065a8193269310e8cae48c1ce4111ed03216f5f715","486ae83cd51b813095f6716f06cc9b2cf480ad1d6c7f8ec59674d6c858cd2407","fff527e2567a24dd634a30268f1aa8a220315fed9c513d70ee872e54f67f27f3","5dd0ff735b3f2e642c3f16bcfb3dc4ecebb679a70e43cfb19ab5fd84d8faaeed","d1d78d1ef0f21ac77cdc436d2a4d56592453a8a2e51af2040ec9a69a5d35e4de","bc55b91274e43f88030c9cfe2c4217fae57894c3c302173ab6e9743c29484e3d","8bb22f70bfd7bf186631fa565c9202ee6a1009ffb961197b7d092b5a1e1d56b1","77282216c61bcef9a700db98e142301d5a7d988d3076286029da63e415e98a42","6c28f4f95aaa6c3c8b1a0681c29f446b0bf0ed1aa5aa11e8b2ca6fc9e066e9f2","64ce8e260a1362d4cadd6c753581a912a9869d4a53ec6e733dc61018f9250f5d","85a915dbb768b89cb92f5e6c165d776bfebd065883c34fee4e0219c3ed321b47","83df2f39cb14971adea51d1c84e7d146a34e9b7f84ad118450a51bdc3138412c","b96364fcb0c9d521e7618346b00acf3fe16ccf9368404ceac1658edee7b6332c","bdb2b70c74908c92ec41d8dd8375a195cb3bb07523e4de642b2b2dfbde249ca6","7b329f4137a552073f504022acbf8cd90d49cc5e5529791bef508f76ff774854","f63bbbffcfc897d22f34cf19ae13405cd267b1783cd21ec47d8a2d02947c98c1","7889f4932dfa7b1126cdc17914d85d80b5860cc3d62ba329494007e8aab45430","d9725ef7f60a791668f7fb808eb90b1789feaaef989a686fefc0f7546a51dcdc","df55b9be6ba19a6f77487e09dc7a94d7c9bf66094d35ea168dbd4bac42c46b8f","595125f3e088b883d104622ef10e6b7d5875ff6976bbe4d7dca090a3e2dca513","8ebb6f0603bf481e893311c49e4d2e2061413c51b9ba5898cd9b0a01f5ef19c8","e0d7eed4ba363df3faadb8e617f95f9fc8adfbb00b87db7ade4a1098d6cf1e90","38faab59a79924ce5eb4f2f3e7e7db91e74d425b4183f908cc014be213f0d971","de115595321ce012c456f512a799679bfc874f0ac0a4928a8429557bb25086aa","cdca67bd898deff48e3acb05fb44500b5ebce16c26a8ec99dee1522cf9879795","0524cab11ba9048d151d93cc666d3908fda329eec6b1642e9a936093e6d79f28","869073d7523e75f45bd65b2072865c60002d5e0cbd3d17831e999cf011312778","bc7b5906a6ce6c5744a640c314e020856be6c50a693e77dc12aff2d77b12ca76","56503e377bc1344f155e4e3115a772cb4e59350c0b8131e3e1fb2750ac491608","6b579287217ee1320ee1c6cfec5f6730f3a1f91daab000f7131558ee531b2bf8","e2ddb2877f5a841866f4fc772a601b58e90ac8399b35f9a06535be81b8e08b47","a793636667598e739a52684033037a67dc2d9db37fab727623626ef19aa5abb9","b15d6238a86bc0fc2368da429249b96c260debc0cec3eb7b5f838ad32587c129","9a9fba3a20769b0a74923e7032997451b61c1bd371c519429b29019399040d74","4b10e2fe52cb61035e58df3f1fdd926dd0fe9cf1a2302f92916da324332fb4e0","d1092ae8d6017f359f4758115f588e089848cc8fb359f7ba045b1a1cf3668a49","ddae9195b0da7b25a585ef43365f4dc5204a746b155fbee71e6ee1a9193fb69f","32dbced998ce74c5e76ce87044d0b4071857576dde36b0c6ed1d5957ce9cf5b5","5bc29a9918feba88816b71e32960cf11243b77b76630e9e87cad961e5e1d31d0","341ffa358628577f490f128f3880c01d50ef31412d1be012bb1cd959b0a383ea","ecc1b8878c8033bde0204b85e26fe1af6847805427759e5723882c848a11e134","cfc9c32553ad3b5be38342bc8731397438a93531118e1a226a8c79ad255b4f0c","16e5b5b023c2a1119c1878a51714861c56255778de0a7fe378391876a15f7433","52e8612d284467b4417143ca8fe54d30145fdfc3815f5b5ea9b14b677f422be5","a090a8a3b0ef2cceeb089acf4df95df72e7d934215896afe264ff6f734d66d15","a0259c6054e3ed2c5fb705b6638e384446cbcdf7fd2072c659b43bd56e214b9a","005319c82222e57934c7b211013eb6931829e46b2a61c5d9a1c3c25f8dc3ea90","151f422f08c8ca67b77c5c39d49278b4df452ef409237c8219be109ae3cdae9d",{"version":"6466cbb0aa561e1c1a87850a1f066692f1692a0a9513c508a3886cd66a62dae8","affectsGlobalScope":true},{"version":"445f7bb9b132395763d2fd00e88167a7b7d5c514728cfe462c17d044fe9f27d2","signature":"5423eff0aeb3d2eba041721efabde15d1c06709724dea6ae79b48559f86ed9b8","affectsGlobalScope":true},{"version":"a05feefa8c48750d2bbf1eafb7259a1970fb6b58c468cf36adf66ca37385f750","signature":"12c88d6421521d8a083fbf31ebc1e3927dfc991ab22e68a9b0f237b6cc416a76"},{"version":"ee0cd52125f0a6012ad0f39327bf21ee6d8cf9f82036677b7b984b5866ee2156","signature":"c071991397ba57b75b07574dd2d11efe990aea9c59136423d149ce6c3f301eea","affectsGlobalScope":true},{"version":"725586b511f51bca1589b2476a469a9335db4cb1fe1b8fd0e94c189d7335fa98","signature":"edac49118a9eb46d842c8d24a567e31f0290ecdf8d44a5fc78da3112c2fdda54"},{"version":"c1bfa934a0edef8d1e8a7360d4c67d3e3df4f3c45867ea6f8925c6ffbc907b79","signature":"a94e72e6c01437b8fa4f74fe9f192a8cc62b76e4c67730ca240f8db734f7c75e"},{"version":"c8f28aeb6a262efc544fd09ee8d16da12884d06b8c7168fa331deff3df5a182e","signature":"ab8b3b5fdcd840447d69c2dd1b62b0104e7f4a6242e8af92d26433fa3dd9ff39"},{"version":"844f2848bfe787dc98769ea4edc2e30371a5bfb15ef9f3e6afd625e76f6dc5c8","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"1c18d5790d0f5e15e84827cbf08982aef0339fb034b7971cff0535fc20a77879","signature":"68724f2c23cf02888072a2830ca5b336b6af536abce6094d3392e884c9293e52"},"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec",{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true}],"root":[[72,74],[172,179]],"options":{"allowJs":true,"allowSyntheticDefaultImports":true,"allowUnreachableCode":false,"allowUnusedLabels":false,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noImplicitUseStrict":false,"noStrictGenericChecks":false,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./typescript","rootDir":"../src","skipLibCheck":true,"strict":true,"target":99,"verbatimModuleSyntax":true},"fileIdsList":[[182],[99],[84,171],[184,187],[81,82,83],[180,186],[184],[181,185],[183],[107,108],[84,88,94,95,98,101,103,104,107],[105],[114],[76,84,87],[84,85,87,88,92,106,107],[84,107,135,136],[84,85,87,88,92,107],[76,121],[84,85,92,106,107,123],[84,86,88,91,92,95,106,107],[84,85,87,92,107],[84,85,87,92],[84,85,86,88,90,92,93,106,107],[84,107],[84,106,107],[76,84,85,87,88,91,92,106,107,123],[84,86,88],[84,95,106,107,133],[84,85,90,107,133,135],[84,95,133],[84,85,86,88,90,91,106,107,123],[88],[84,86,88,89,90,91,106,107],[76],[113],[84,85,86,87,88,91,96,97,106,107],[88,89],[84,94,95,100,106,107],[84,94,100,102,106,107],[84,88,92],[84,106,149],[84],[87],[84,87],[107],[106],[96,105,107],[84,85,87,88,91,106,107],[159],[121],[75,76,77,78,79,80,86,87,88,89,90,91,92,93,94,95,96,97,98,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[76,171],[78],[171],[73],[73,175],[72,73,175,176],[174],[73,74],[171,172,173]],"referencedMap":[[183,1],[100,2],[99,3],[188,4],[84,5],[187,6],[185,7],[186,8],[184,9],[109,10],[105,11],[112,12],[115,13],[117,14],[118,15],[137,16],[120,17],[122,18],[124,19],[125,20],[126,21],[93,21],[127,22],[94,23],[128,24],[129,15],[130,25],[131,26],[90,27],[134,28],[136,29],[135,30],[133,31],[95,22],[91,32],[92,33],[121,34],[113,34],[114,35],[98,36],[140,34],[141,37],[143,18],[101,38],[103,39],[145,40],[150,41],[102,42],[154,43],[152,42],[153,44],[156,45],[158,45],[157,45],[108,45],[107,46],[106,47],[104,48],[160,49],[88,44],[161,13],[162,13],[163,50],[164,34],[168,42],[171,51],[77,52],[78,53],[170,54],[89,32],[87,42],[74,55],[176,56],[177,57],[172,54],[175,58],[173,59],[174,60],[179,54]],"latestChangedDtsFile":"./typescript/turbomodule/NativeNitroModules.web.d.ts"},"version":"5.5.4"}
|
|
@@ -31,6 +31,12 @@ export interface NitroModulesProxy extends HybridObject {
|
|
|
31
31
|
* preprocessor flag.
|
|
32
32
|
*/
|
|
33
33
|
buildType: 'debug' | 'release';
|
|
34
|
+
/**
|
|
35
|
+
* Gets the native Nitro Modules core runtime version that this app is built with.
|
|
36
|
+
* This should be kept in sync with the JS version (package.json), otherwise it could
|
|
37
|
+
* introduce undefined behaviour.
|
|
38
|
+
*/
|
|
39
|
+
version: string;
|
|
34
40
|
/**
|
|
35
41
|
* Boxes the given {@linkcode hybridObject} into a {@linkcode BoxedHybridObject<T>}, which can
|
|
36
42
|
* later be unboxed in a separate Runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NitroModulesProxy.d.ts","sourceRoot":"","sources":["../../src/NitroModulesProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAA;IAC3D;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE,CAAA;IAEnC;;;OAGG;IACH,SAAS,EAAE,OAAO,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"NitroModulesProxy.d.ts","sourceRoot":"","sources":["../../src/NitroModulesProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D;;;;;GAKG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD;;;;;;;;;OASG;IACH,kBAAkB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAA;IAC3D;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;IACtC;;OAEG;IACH,uBAAuB,IAAI,MAAM,EAAE,CAAA;IAEnC;;;OAGG;IACH,SAAS,EAAE,OAAO,GAAG,SAAS,CAAA;IAC9B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,GAAG,CAAC,CAAC,SAAS,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IAEzD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAA;CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeNitroModules.d.ts","sourceRoot":"","sources":["../../../src/turbomodule/NativeNitroModules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA2B7D,eAAO,MAAM,YAAY,EAA+B,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"NativeNitroModules.d.ts","sourceRoot":"","sources":["../../../src/turbomodule/NativeNitroModules.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AA2B7D,eAAO,MAAM,YAAY,EAA+B,iBAAiB,CAAA;AAmBzE,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,sBAAsB,EAAE,EAAE,CAAA;IAC9B,IAAI,iBAAiB,EAAE,EAAE,CAAA;CAC1B;AAED,wBAAgB,cAAc,YAI7B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-nitro-modules",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Insanely fast native C++, Swift or Kotlin modules with a statically compiled binding layer to JSI.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -58,6 +58,8 @@
|
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
60
|
"postinstall": "bun build || exit 0;",
|
|
61
|
+
"write-native-version": "version=$(node -p \"require('./package.json').version\") && sed -i '' \"s/#define NITRO_VERSION \\\".*\\\"/#define NITRO_VERSION \\\"$version\\\"/\" ./cpp/utils/NitroDefines.hpp",
|
|
62
|
+
"postversion": "bun run write-native-version",
|
|
61
63
|
"build": "rm -rf lib && bun typecheck && bob build",
|
|
62
64
|
"typecheck": "tsc --noEmit",
|
|
63
65
|
"lint": "eslint \"**/*.{js,ts,tsx}\" --fix",
|
|
@@ -70,9 +72,9 @@
|
|
|
70
72
|
"@types/jest": "*",
|
|
71
73
|
"@types/react": "*",
|
|
72
74
|
"jest": "*",
|
|
73
|
-
"react": "
|
|
74
|
-
"react-native": "
|
|
75
|
-
"react-native-builder-bob": "^0.
|
|
75
|
+
"react": "18.3.1",
|
|
76
|
+
"react-native": "0.76.5",
|
|
77
|
+
"react-native-builder-bob": "^0.35.0"
|
|
76
78
|
},
|
|
77
79
|
"peerDependencies": {
|
|
78
80
|
"react": "*",
|
package/src/NitroModulesProxy.ts
CHANGED
|
@@ -33,6 +33,12 @@ export interface NitroModulesProxy extends HybridObject {
|
|
|
33
33
|
* preprocessor flag.
|
|
34
34
|
*/
|
|
35
35
|
buildType: 'debug' | 'release'
|
|
36
|
+
/**
|
|
37
|
+
* Gets the native Nitro Modules core runtime version that this app is built with.
|
|
38
|
+
* This should be kept in sync with the JS version (package.json), otherwise it could
|
|
39
|
+
* introduce undefined behaviour.
|
|
40
|
+
*/
|
|
41
|
+
version: string
|
|
36
42
|
|
|
37
43
|
/**
|
|
38
44
|
* Boxes the given {@linkcode hybridObject} into a {@linkcode BoxedHybridObject<T>}, which can
|
|
@@ -36,6 +36,17 @@ if (NitroModules == null) {
|
|
|
36
36
|
throw new ModuleNotFoundError(cause)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
// Double-check native version
|
|
40
|
+
if (__DEV__) {
|
|
41
|
+
const jsVersion = require('react-native-nitro-modules/package.json').version
|
|
42
|
+
if (jsVersion !== NitroModules.version) {
|
|
43
|
+
console.warn(
|
|
44
|
+
`The native Nitro Modules core runtime version is ${NitroModules.version}, but the JS code is using version ${jsVersion}. ` +
|
|
45
|
+
`This could lead to undefined behaviour! Make sure to keep your Nitro versions in sync.`
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
39
50
|
declare global {
|
|
40
51
|
var __nitroModulesJSICache: {}
|
|
41
52
|
var __nitroDispatcher: {}
|