react-native-nitro-modules 0.19.0 → 0.20.1

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.
@@ -47,6 +47,7 @@ Pod::Spec.new do |s|
47
47
  "ios/core/ArrayBufferHolder.hpp",
48
48
  "ios/core/AnyMapHolder.hpp",
49
49
  "ios/core/HybridContext.hpp",
50
+ "ios/core/PromiseHolder.hpp",
50
51
  "ios/utils/Result.hpp",
51
52
  "ios/utils/RuntimeError.hpp",
52
53
  "ios/utils/SwiftClosure.hpp",
@@ -38,8 +38,7 @@ public:
38
38
  /**
39
39
  * Create a new `JArrayBuffer` that wraps the given `ByteBuffer` from Java.
40
40
  */
41
- static jni::local_ref<JArrayBuffer::jhybriddata> initHybrid(jni::alias_ref<jhybridobject> jThis,
42
- jni::alias_ref<jni::JByteBuffer> buffer) {
41
+ static jni::local_ref<JArrayBuffer::jhybriddata> initHybrid(jni::alias_ref<jhybridobject>, jni::alias_ref<jni::JByteBuffer> buffer) {
43
42
  return makeCxxInstance(buffer);
44
43
  }
45
44
 
@@ -56,6 +56,16 @@ public:
56
56
  return newObjectCxxArgs();
57
57
  }
58
58
 
59
+ public:
60
+ ~JPromise() override {
61
+ if (_result == nullptr && _error == nullptr) [[unlikely]] {
62
+ jni::ThreadScope::WithClassLoader([&]() {
63
+ std::runtime_error error("Timeouted: JPromise was destroyed!");
64
+ this->reject(jni::getJavaExceptionForCppException(std::make_exception_ptr(error)));
65
+ });
66
+ }
67
+ }
68
+
59
69
  public:
60
70
  void resolve(jni::alias_ref<jni::JObject> result) {
61
71
  std::unique_lock lock(_mutex);
@@ -103,7 +113,8 @@ private:
103
113
  } else {
104
114
  // Promise is not yet resolved, put the listener in our queue.
105
115
  auto sharedCallback = jni::make_global(callback);
106
- _onResolvedListeners.emplace_back([=](const auto& result) { sharedCallback->onResolved(result); });
116
+ _onResolvedListeners.emplace_back(
117
+ [sharedCallback = std::move(sharedCallback)](const auto& result) { sharedCallback->onResolved(result); });
107
118
  }
108
119
  }
109
120
  void addOnRejectedListenerJava(jni::alias_ref<JOnRejectedCallback> callback) {
@@ -114,7 +125,8 @@ private:
114
125
  } else {
115
126
  // Promise is not yet rejected, put the listener in our queue.
116
127
  auto sharedCallback = jni::make_global(callback);
117
- _onRejectedListeners.emplace_back([=](const auto& error) { sharedCallback->onRejected(error); });
128
+ _onRejectedListeners.emplace_back(
129
+ [sharedCallback = std::move(sharedCallback)](const auto& error) { sharedCallback->onRejected(error); });
118
130
  }
119
131
  }
120
132
 
@@ -12,26 +12,29 @@
12
12
 
13
13
  namespace margelo::nitro {
14
14
 
15
- void JHybridObjectRegistry::registerHybridObjectConstructor(jni::alias_ref<jni::JClass> clazz, std::string hybridObjectName,
15
+ void JHybridObjectRegistry::registerHybridObjectConstructor(jni::alias_ref<jni::JClass>, std::string hybridObjectName,
16
16
  jni::alias_ref<JHybridObjectInitializer> constructorFn) {
17
17
  auto sharedInitializer = jni::make_global(constructorFn);
18
- HybridObjectRegistry::registerHybridObjectConstructor(hybridObjectName, [=]() -> std::shared_ptr<HybridObject> {
19
- // 1. Call the Java initializer function
20
- jni::local_ref<JHybridObject::javaobject> hybridObject = sharedInitializer->call();
18
+ HybridObjectRegistry::registerHybridObjectConstructor(
19
+ hybridObjectName,
20
+ [sharedInitializer = std::move(sharedInitializer),
21
+ hybridObjectName = std::move(hybridObjectName)]() -> std::shared_ptr<HybridObject> {
22
+ // 1. Call the Java initializer function
23
+ jni::local_ref<JHybridObject::javaobject> hybridObject = sharedInitializer->call();
21
24
  #ifdef NITRO_DEBUG
22
- if (hybridObject == nullptr) [[unlikely]] {
23
- throw std::runtime_error("Failed to create HybridObject \"" + hybridObjectName + "\" - the constructor returned null!");
24
- }
25
+ if (hybridObject == nullptr) [[unlikely]] {
26
+ throw std::runtime_error("Failed to create HybridObject \"" + hybridObjectName + "\" - the constructor returned null!");
27
+ }
25
28
  #endif
26
29
 
27
- // 2. Make the resulting HybridObject a global (shared) reference
28
- jni::global_ref<JHybridObject::javaobject> globalHybridObject = jni::make_global(hybridObject);
29
- // 3. Create a shared_ptr from the JNI global reference
30
- std::shared_ptr<JHybridObject> sharedCppPart = JNISharedPtr::make_shared_from_jni<JHybridObject>(globalHybridObject);
31
- // 4. Up-cast to a HybridObject (kinda unsafe)
32
- std::shared_ptr<HybridObject> cast = std::static_pointer_cast<HybridObject>(sharedCppPart);
33
- return cast;
34
- });
30
+ // 2. Make the resulting HybridObject a global (shared) reference
31
+ jni::global_ref<JHybridObject::javaobject> globalHybridObject = jni::make_global(hybridObject);
32
+ // 3. Create a shared_ptr from the JNI global reference
33
+ std::shared_ptr<JHybridObject> sharedCppPart = JNISharedPtr::make_shared_from_jni<JHybridObject>(globalHybridObject);
34
+ // 4. Up-cast to a HybridObject (kinda unsafe)
35
+ std::shared_ptr<HybridObject> cast = std::static_pointer_cast<HybridObject>(sharedCppPart);
36
+ return cast;
37
+ });
35
38
  }
36
39
 
37
40
  void JHybridObjectRegistry::registerNatives() {
@@ -15,7 +15,7 @@ template <typename T>
15
15
  struct GlobalRefDeleter {
16
16
  explicit GlobalRefDeleter(jni::global_ref<typename T::javaobject> ref) : _ref(ref) {}
17
17
 
18
- void operator()(T* ptr) {
18
+ void operator()(T* /* cthis */) {
19
19
  if (_ref) {
20
20
  _ref.release();
21
21
  }
@@ -4,6 +4,7 @@
4
4
 
5
5
  #pragma once
6
6
 
7
+ #include "NitroDefines.hpp"
7
8
  #include <map>
8
9
  #include <memory>
9
10
  #include <string>
@@ -199,6 +200,6 @@ public:
199
200
 
200
201
  private:
201
202
  std::unordered_map<std::string, AnyValue> _map;
202
- };
203
+ } SWIFT_NONCOPYABLE;
203
204
 
204
205
  } // namespace margelo::nitro
@@ -19,8 +19,9 @@ jsi::Value BoxedHybridObject::get(jsi::Runtime& runtime, const jsi::PropNameID&
19
19
  if (name == "unbox") {
20
20
  return jsi::Function::createFromHostFunction(
21
21
  runtime, jsi::PropNameID::forUtf8(runtime, "unbox"), 0,
22
- [hybridObject = _hybridObject](jsi::Runtime& runtime, const jsi::Value& thisArg, const jsi::Value* args,
23
- size_t count) -> jsi::Value { return hybridObject->toObject(runtime); });
22
+ [hybridObject = _hybridObject](jsi::Runtime& runtime, const jsi::Value&, const jsi::Value*, size_t) -> jsi::Value {
23
+ return hybridObject->toObject(runtime);
24
+ });
24
25
  }
25
26
 
26
27
  return jsi::Value::undefined();
@@ -23,7 +23,7 @@ bool HybridObject::equals(std::shared_ptr<HybridObject> other) {
23
23
  return this == other.get();
24
24
  }
25
25
 
26
- jsi::Value HybridObject::disposeRaw(jsi::Runtime& runtime, const jsi::Value& thisArg, const jsi::Value* args, size_t count) {
26
+ jsi::Value HybridObject::disposeRaw(jsi::Runtime& runtime, const jsi::Value& thisArg, const jsi::Value*, size_t) {
27
27
  // 1. Dispose any resources - this might be overridden by child classes to perform manual cleanup.
28
28
  dispose();
29
29
  // 2. Remove the NativeState from `this`
@@ -28,12 +28,16 @@ public:
28
28
  public:
29
29
  // Promise cannot be copied.
30
30
  Promise(const Promise&) = delete;
31
- // Promise can be moved.
32
- Promise(Promise&&) = default;
33
31
 
34
32
  private:
35
- Promise() {
36
- _mutex = std::make_unique<std::mutex>();
33
+ Promise() {}
34
+
35
+ public:
36
+ ~Promise() {
37
+ if (isPending()) [[unlikely]] {
38
+ auto message = std::string("Timeouted: Promise<") + TypeInfo::getFriendlyTypename<TResult>() + "> was destroyed!";
39
+ reject(std::make_exception_ptr(std::runtime_error(message)));
40
+ }
37
41
  }
38
42
 
39
43
  public:
@@ -94,7 +98,7 @@ public:
94
98
  * Resolves this Promise with the given result, and calls any pending listeners.
95
99
  */
96
100
  void resolve(TResult&& result) {
97
- std::unique_lock lock(*_mutex);
101
+ std::unique_lock lock(_mutex);
98
102
  #ifdef NITRO_DEBUG
99
103
  assertPromiseState(*this, PromiseTask::WANTS_TO_RESOLVE);
100
104
  #endif
@@ -104,7 +108,7 @@ public:
104
108
  }
105
109
  }
106
110
  void resolve(const TResult& result) {
107
- std::unique_lock lock(*_mutex);
111
+ std::unique_lock lock(_mutex);
108
112
  #ifdef NITRO_DEBUG
109
113
  assertPromiseState(*this, PromiseTask::WANTS_TO_RESOLVE);
110
114
  #endif
@@ -121,7 +125,7 @@ public:
121
125
  throw std::runtime_error("Cannot reject Promise with a null exception_ptr!");
122
126
  }
123
127
 
124
- std::unique_lock lock(*_mutex);
128
+ std::unique_lock lock(_mutex);
125
129
  #ifdef NITRO_DEBUG
126
130
  assertPromiseState(*this, PromiseTask::WANTS_TO_REJECT);
127
131
  #endif
@@ -137,7 +141,7 @@ public:
137
141
  * If the Promise is already resolved, the listener will be immediately called.
138
142
  */
139
143
  void addOnResolvedListener(OnResolvedFunc&& onResolved) {
140
- std::unique_lock lock(*_mutex);
144
+ std::unique_lock lock(_mutex);
141
145
  if (std::holds_alternative<TResult>(_state)) {
142
146
  // Promise is already resolved! Call the callback immediately
143
147
  onResolved(std::get<TResult>(_state));
@@ -147,7 +151,7 @@ public:
147
151
  }
148
152
  }
149
153
  void addOnResolvedListener(const OnResolvedFunc& onResolved) {
150
- std::unique_lock lock(*_mutex);
154
+ std::unique_lock lock(_mutex);
151
155
  if (std::holds_alternative<TResult>(_state)) {
152
156
  // Promise is already resolved! Call the callback immediately
153
157
  onResolved(std::get<TResult>(_state));
@@ -156,15 +160,9 @@ public:
156
160
  _onResolvedListeners.push_back(onResolved);
157
161
  }
158
162
  }
163
+ [[deprecated("Upgrade Nitro to use PromiseHolder<T> instead.")]]
159
164
  void addOnResolvedListenerCopy(const std::function<void(TResult)>& onResolved) {
160
- std::unique_lock lock(*_mutex);
161
- if (std::holds_alternative<TResult>(_state)) {
162
- // Promise is already resolved! Call the callback immediately
163
- onResolved(std::get<TResult>(_state));
164
- } else {
165
- // Promise is not yet resolved, put the listener in our queue.
166
- _onResolvedListeners.push_back(onResolved);
167
- }
165
+ addOnResolvedListener([=](const TResult& value) { onResolved(value); });
168
166
  }
169
167
 
170
168
  /**
@@ -172,7 +170,7 @@ public:
172
170
  * If the Promise is already rejected, the listener will be immediately called.
173
171
  */
174
172
  void addOnRejectedListener(OnRejectedFunc&& onRejected) {
175
- std::unique_lock lock(*_mutex);
173
+ std::unique_lock lock(_mutex);
176
174
  if (std::holds_alternative<std::exception_ptr>(_state)) {
177
175
  // Promise is already rejected! Call the callback immediately
178
176
  onRejected(std::get<std::exception_ptr>(_state));
@@ -182,7 +180,7 @@ public:
182
180
  }
183
181
  }
184
182
  void addOnRejectedListener(const OnRejectedFunc& onRejected) {
185
- std::unique_lock lock(*_mutex);
183
+ std::unique_lock lock(_mutex);
186
184
  if (std::holds_alternative<std::exception_ptr>(_state)) {
187
185
  // Promise is already rejected! Call the callback immediately
188
186
  onRejected(std::get<std::exception_ptr>(_state));
@@ -252,7 +250,7 @@ private:
252
250
  std::variant<std::monostate, TResult, std::exception_ptr> _state;
253
251
  std::vector<OnResolvedFunc> _onResolvedListeners;
254
252
  std::vector<OnRejectedFunc> _onRejectedListeners;
255
- std::unique_ptr<std::mutex> _mutex;
253
+ std::mutex _mutex;
256
254
  };
257
255
 
258
256
  // Specialization for void
@@ -264,11 +262,16 @@ public:
264
262
 
265
263
  public:
266
264
  Promise(const Promise&) = delete;
267
- Promise(Promise&&) = default;
268
265
 
269
266
  private:
270
- Promise() {
271
- _mutex = std::make_unique<std::mutex>();
267
+ Promise() {}
268
+
269
+ public:
270
+ ~Promise() {
271
+ if (isPending()) [[unlikely]] {
272
+ std::runtime_error error("Timeouted: Promise<void> was destroyed!");
273
+ reject(std::make_exception_ptr(std::move(error)));
274
+ }
272
275
  }
273
276
 
274
277
  public:
@@ -309,7 +312,7 @@ public:
309
312
 
310
313
  public:
311
314
  void resolve() {
312
- std::unique_lock lock(*_mutex);
315
+ std::unique_lock lock(_mutex);
313
316
  #ifdef NITRO_DEBUG
314
317
  assertPromiseState(*this, PromiseTask::WANTS_TO_RESOLVE);
315
318
  #endif
@@ -323,7 +326,7 @@ public:
323
326
  throw std::runtime_error("Cannot reject Promise with a null exception_ptr!");
324
327
  }
325
328
 
326
- std::unique_lock lock(*_mutex);
329
+ std::unique_lock lock(_mutex);
327
330
  #ifdef NITRO_DEBUG
328
331
  assertPromiseState(*this, PromiseTask::WANTS_TO_REJECT);
329
332
  #endif
@@ -335,7 +338,7 @@ public:
335
338
 
336
339
  public:
337
340
  void addOnResolvedListener(OnResolvedFunc&& onResolved) {
338
- std::unique_lock lock(*_mutex);
341
+ std::unique_lock lock(_mutex);
339
342
  if (_isResolved) {
340
343
  onResolved();
341
344
  } else {
@@ -343,7 +346,7 @@ public:
343
346
  }
344
347
  }
345
348
  void addOnResolvedListener(const OnResolvedFunc& onResolved) {
346
- std::unique_lock lock(*_mutex);
349
+ std::unique_lock lock(_mutex);
347
350
  if (_isResolved) {
348
351
  onResolved();
349
352
  } else {
@@ -351,7 +354,7 @@ public:
351
354
  }
352
355
  }
353
356
  void addOnRejectedListener(OnRejectedFunc&& onRejected) {
354
- std::unique_lock lock(*_mutex);
357
+ std::unique_lock lock(_mutex);
355
358
  if (_error) {
356
359
  onRejected(_error);
357
360
  } else {
@@ -360,7 +363,7 @@ public:
360
363
  }
361
364
  }
362
365
  void addOnRejectedListener(const OnRejectedFunc& onRejected) {
363
- std::unique_lock lock(*_mutex);
366
+ std::unique_lock lock(_mutex);
364
367
  if (_error) {
365
368
  onRejected(_error);
366
369
  } else {
@@ -400,7 +403,7 @@ public:
400
403
  }
401
404
 
402
405
  private:
403
- std::unique_ptr<std::mutex> _mutex;
406
+ std::mutex _mutex;
404
407
  bool _isResolved = false;
405
408
  std::exception_ptr _error;
406
409
  std::vector<OnResolvedFunc> _onResolvedListeners;
@@ -41,7 +41,7 @@ struct JSIConverter<std::function<ReturnType(Args...)>> final {
41
41
 
42
42
  // Create a C++ function that can be called by the consumer.
43
43
  // This will call the jsi::Function if it is still alive.
44
- return [&runtime, weakDispatcher, sharedFunction = std::move(sharedFunction)](Args... args) -> ReturnType {
44
+ return [&runtime, weakDispatcher = std::move(weakDispatcher), sharedFunction = std::move(sharedFunction)](Args... args) -> ReturnType {
45
45
  // Try to get the JS Dispatcher if the Runtime is still alive
46
46
  std::shared_ptr<Dispatcher> dispatcher = weakDispatcher.lock();
47
47
  if (!dispatcher) {
@@ -55,26 +55,34 @@ struct JSIConverter<std::function<ReturnType(Args...)>> final {
55
55
  }
56
56
 
57
57
  if constexpr (std::is_void_v<ResultingType>) {
58
- dispatcher->runAsync(
59
- [&runtime, sharedFunction, ... args = std::move(args)]() { callJSFunction(runtime, sharedFunction, args...); });
60
- } else {
61
- return dispatcher->runAsyncAwaitable<ResultingType>([&runtime, sharedFunction, ... args = std::move(args)]() -> ResultingType {
62
- return callJSFunction(runtime, sharedFunction, args...);
58
+ dispatcher->runAsync([&runtime, sharedFunction = std::move(sharedFunction), ... args = std::move(args)]() {
59
+ callJSFunction(runtime, sharedFunction, args...);
63
60
  });
61
+ } else {
62
+ return dispatcher->runAsyncAwaitable<ResultingType>(
63
+ [&runtime, sharedFunction = std::move(sharedFunction), ... args = std::move(args)]() -> ResultingType {
64
+ return callJSFunction(runtime, sharedFunction, args...);
65
+ });
64
66
  }
65
67
  };
66
68
  }
67
69
 
68
- static inline jsi::Value toJSI(jsi::Runtime& runtime, const std::function<ReturnType(Args...)>& function) {
69
- jsi::HostFunctionType jsFunction = [function](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* args,
70
- size_t count) -> jsi::Value {
70
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, std::function<ReturnType(Args...)>&& function) {
71
+ jsi::HostFunctionType jsFunction = [function = std::move(function)](jsi::Runtime& runtime, const jsi::Value&, const jsi::Value* args,
72
+ size_t count) -> jsi::Value {
71
73
  if (count != sizeof...(Args)) [[unlikely]] {
72
74
  throw jsi::JSError(runtime, "Function expected " + std::to_string(sizeof...(Args)) + " arguments, but received " +
73
75
  std::to_string(count) + "!");
74
76
  }
75
77
  return callHybridFunction(function, runtime, args, std::index_sequence_for<Args...>{});
76
78
  };
77
- return jsi::Function::createFromHostFunction(runtime, jsi::PropNameID::forUtf8(runtime, "hostFunction"), sizeof...(Args), jsFunction);
79
+ return jsi::Function::createFromHostFunction(runtime, jsi::PropNameID::forUtf8(runtime, "hostFunction"), sizeof...(Args),
80
+ std::move(jsFunction));
81
+ }
82
+
83
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const std::function<ReturnType(Args...)>& function) {
84
+ std::function<ReturnType(Args...)> copy = function;
85
+ return toJSI(runtime, std::move(copy));
78
86
  }
79
87
 
80
88
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
@@ -87,9 +95,6 @@ struct JSIConverter<std::function<ReturnType(Args...)>> final {
87
95
 
88
96
  private:
89
97
  static inline ResultingType callJSFunction(jsi::Runtime& runtime, const OwningReference<jsi::Function>& function, const Args&... args) {
90
- // Throw a lock on the OwningReference<T> so we can guarantee safe access (Hermes GC cannot delete it while `lock` is alive)
91
- OwningLock<jsi::Function> lock = function.lock();
92
-
93
98
  if (!function) {
94
99
  if constexpr (std::is_void_v<ResultingType>) {
95
100
  // runtime has already been deleted. since this returns void, we can just ignore it being deleted.
@@ -52,8 +52,8 @@ struct JSIConverter<std::shared_ptr<Promise<TResult>>> final {
52
52
  if (promise->isPending()) {
53
53
  // Get Promise ctor from global
54
54
  jsi::Function promiseCtor = runtime.global().getPropertyAsFunction(runtime, "Promise");
55
- jsi::HostFunctionType executor = [promise](jsi::Runtime& runtime, const jsi::Value& thisValue, const jsi::Value* arguments,
56
- size_t count) -> jsi::Value {
55
+ jsi::HostFunctionType executor = [promise](jsi::Runtime& runtime, const jsi::Value&, const jsi::Value* arguments,
56
+ size_t) -> jsi::Value {
57
57
  // Add resolver listener
58
58
  if constexpr (std::is_void_v<TResult>) {
59
59
  // It's resolving to void.
@@ -79,7 +79,7 @@ protected:
79
79
  * **Do not conditionally register hybrid methods, getters or setter!**
80
80
  */
81
81
  template <typename Derived>
82
- inline void registerHybrids(Derived* thisInstance, RegisterFn registerFunc) {
82
+ inline void registerHybrids(Derived* /* this */, RegisterFn registerFunc) {
83
83
  const std::shared_ptr<Prototype>& prototype = _prototypeChain.extendPrototype<Derived>();
84
84
 
85
85
  if (!prototype->hasHybrids()) {
@@ -1,3 +1,10 @@
1
+ //
2
+ // Dispatcher.cpp
3
+ // react-native-nitro
4
+ //
5
+ // Created by Marc Rousavy on 22.07.24.
6
+ //
7
+
1
8
  #include "Dispatcher.hpp"
2
9
  #include "JSIHelpers.hpp"
3
10
  #include "NitroDefines.hpp"
@@ -9,7 +9,7 @@
9
9
  #define NitroDefines_h
10
10
 
11
11
  // Sets the version of the native Nitro core library
12
- #define NITRO_VERSION "0.19.0"
12
+ #define NITRO_VERSION "0.20.1"
13
13
 
14
14
  // Sets whether to use debug or optimized production build flags
15
15
  #ifdef DEBUG
@@ -31,19 +31,6 @@
31
31
  #define _CXX_INTEROP_HAS_ATTRIBUTE(x) 0
32
32
  #endif
33
33
 
34
- #if _CXX_INTEROP_HAS_ATTRIBUTE(swift_attr)
35
- // Rename Type for Swift
36
- #define SWIFT_NAME(_name) __attribute__((swift_name(#_name)))
37
- // Make Swift type private
38
- #define SWIFT_PRIVATE __attribute__((swift_private))
39
- // Make getter + setter a computed property
40
- #define SWIFT_COMPUTED_PROPERTY __attribute__((swift_attr("import_computed_property")))
41
- #else
42
- #define SWIFT_NAME(_name)
43
- #define SWIFT_PRIVATE
44
- #define SWIFT_COMPUTED_PROPERTY
45
- #endif
46
-
47
34
  #if _CXX_INTEROP_HAS_ATTRIBUTE(enum_extensibility)
48
35
  // Enum is marked as closed/not extensible
49
36
  #define CLOSED_ENUM __attribute__((enum_extensibility(closed)))
@@ -51,4 +38,16 @@
51
38
  #define CLOSED_ENUM
52
39
  #endif
53
40
 
41
+ #if __has_include(<swift/bridging>)
42
+ // Swift's bridging header defines those things
43
+ #include <swift/bridging>
44
+ #define SWIFT_PRIVATE __attribute__((swift_private))
45
+ #else
46
+ // If we don't have Swift bridging header, those macros do nothing
47
+ #define SWIFT_NAME(_name)
48
+ #define SWIFT_PRIVATE
49
+ #define SWIFT_COMPUTED_PROPERTY
50
+ #define SWIFT_NONCOPYABLE
51
+ #endif
52
+
54
53
  #endif /* NitroDefines_h */
@@ -48,7 +48,7 @@ public:
48
48
  #endif
49
49
 
50
50
  // Make a few edge-cases nicer.
51
- name = replaceRegex(name, R"(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>)", "std::string");
51
+ name = replaceRegex(name, R"(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> ?>)", "std::string");
52
52
  name = replaceRegex(name, R"(std::__1::vector<([^>]+), std::__1::allocator<\1>>)", "std::vector<$1>");
53
53
  name = replaceRegex(name, R"(std::__1::map<([^,]+), ([^>]+), std::__1::less<\1>, std::__1::allocator<std::__1::pair<const \1, \2>>>)",
54
54
  "std::map<$1, $2>");
@@ -8,9 +8,9 @@
8
8
  #pragma once
9
9
 
10
10
  #include "ArrayBuffer.hpp"
11
+ #include "NitroDefines.hpp"
11
12
  #include "SwiftClosure.hpp"
12
13
  #include <memory>
13
- #include <swift/bridging>
14
14
 
15
15
  namespace margelo::nitro {
16
16
 
@@ -17,16 +17,16 @@ import Foundation
17
17
  * - `Promise<T>.rejected(withError:)` - Creates a new already rejected Promise.
18
18
  * - `Promise<T>()` - Creates a new Promise with fully manual control over the `resolve(..)`/`reject(..)` functions.
19
19
  */
20
- public class Promise<T> {
20
+ public final class Promise<T> {
21
21
  private enum State {
22
22
  case result(T)
23
23
  case error(Error)
24
24
  }
25
-
25
+
26
26
  private var state: State?
27
27
  private var onResolvedListeners: [(T) -> Void] = []
28
28
  private var onRejectedListeners: [(Error) -> Void] = []
29
-
29
+
30
30
  /**
31
31
  * Create a new pending Promise.
32
32
  * It can (and must) be resolved **or** rejected later.
@@ -34,13 +34,14 @@ public class Promise<T> {
34
34
  public init() {
35
35
  state = nil
36
36
  }
37
-
37
+
38
38
  deinit {
39
39
  if state == nil {
40
- print("⚠️ Promise<\(String(describing: T.self))> got destroyed, but was never resolved or rejected! It is probably left hanging in JS now.")
40
+ let message = "Timeouted: Promise<\(String(describing: T.self))> was destroyed!"
41
+ reject(withError: RuntimeError.error(withMessage: message))
41
42
  }
42
43
  }
43
-
44
+
44
45
  /**
45
46
  * Resolves this `Promise<T>` with the given `T` and notifies all listeners.
46
47
  */
@@ -51,7 +52,7 @@ public class Promise<T> {
51
52
  state = .result(result)
52
53
  onResolvedListeners.forEach { listener in listener(result) }
53
54
  }
54
-
55
+
55
56
  /**
56
57
  * Rejects this `Promise<T>` with the given `Error` and notifies all listeners.
57
58
  */
@@ -76,7 +77,7 @@ extension Promise {
76
77
  promise.state = .result(result)
77
78
  return promise
78
79
  }
79
-
80
+
80
81
  /**
81
82
  * Create a new `Promise<T>` already rejected with the given `Error`.
82
83
  */
@@ -85,7 +86,7 @@ extension Promise {
85
86
  promise.state = .error(error)
86
87
  return promise
87
88
  }
88
-
89
+
89
90
  /**
90
91
  * Create a new `Promise<T>` that runs the given `async` code in a `Task`.
91
92
  * This does not necessarily run the code in a different Thread, but supports Swift's `async`/`await`.
@@ -103,7 +104,7 @@ extension Promise {
103
104
  }
104
105
  return promise
105
106
  }
106
-
107
+
107
108
  /**
108
109
  * Create a new `Promise<T>` that runs the given `run` function on a parallel Thread/`DispatchQueue`.
109
110
  */
@@ -142,7 +143,7 @@ extension Promise {
142
143
  }
143
144
  return self
144
145
  }
145
-
146
+
146
147
  /**
147
148
  * Add an error continuation listener to this `Promise<T>`.
148
149
  * Once the `Promise<T>` rejects, the `onRejectedListener` will be called with the error.
@@ -0,0 +1,93 @@
1
+ //
2
+ // ArrayBufferHolder.hpp
3
+ // react-native-nitro
4
+ //
5
+ // Created by Marc Rousavy on 14.08.24.
6
+ //
7
+
8
+ #pragma once
9
+
10
+ #include "NitroDefines.hpp"
11
+ #include "Promise.hpp"
12
+ #include <exception>
13
+ #include <memory>
14
+ #include <type_traits>
15
+
16
+ namespace margelo::nitro {
17
+
18
+ using namespace facebook;
19
+
20
+ /**
21
+ * Holds instances of `std::shared_ptr<Promise<T>>`.
22
+ * The reason this exists is for performance optimizations, as well as easier listeners for Swift.
23
+ */
24
+ template <typename T>
25
+ class PromiseHolder final {
26
+ public:
27
+ PromiseHolder(const std::shared_ptr<Promise<T>>& promise) : _promise(promise) {}
28
+ PromiseHolder(std::shared_ptr<Promise<T>>&& promise) : _promise(std::move(promise)) {}
29
+
30
+ public:
31
+ static PromiseHolder<T> create() {
32
+ return PromiseHolder<T>(Promise<T>::create());
33
+ }
34
+
35
+ public:
36
+ void resolve(T value) const {
37
+ _promise->resolve(std::move(value));
38
+ }
39
+
40
+ void reject(const std::exception_ptr& exception) const {
41
+ _promise->reject(exception);
42
+ }
43
+
44
+ public:
45
+ void addOnResolvedListener(std::function<void(const T&)> onResolved) const {
46
+ _promise->addOnResolvedListener([onResolved = std::move(onResolved)](const T& result) { onResolved(result); });
47
+ }
48
+ void addOnResolvedListenerCopy(std::function<void(T)> onResolved) const {
49
+ _promise->addOnResolvedListener([onResolved = std::move(onResolved)](const T& result) { onResolved(result); });
50
+ }
51
+
52
+ void addOnRejectedListener(std::function<void(const std::exception_ptr&)> onRejected) const {
53
+ _promise->addOnRejectedListener([onRejected = std::move(onRejected)](const std::exception_ptr& error) { onRejected(error); });
54
+ }
55
+
56
+ private:
57
+ std::shared_ptr<Promise<T>> _promise;
58
+ };
59
+
60
+ template <>
61
+ class PromiseHolder<void> final {
62
+ public:
63
+ PromiseHolder(const std::shared_ptr<Promise<void>>& promise) : _promise(promise) {}
64
+ PromiseHolder(std::shared_ptr<Promise<void>>&& promise) : _promise(std::move(promise)) {}
65
+
66
+ public:
67
+ static PromiseHolder<void> create() {
68
+ return PromiseHolder<void>(Promise<void>::create());
69
+ }
70
+
71
+ public:
72
+ void resolve() const {
73
+ _promise->resolve();
74
+ }
75
+
76
+ void reject(const std::exception_ptr& exception) const {
77
+ _promise->reject(exception);
78
+ }
79
+
80
+ public:
81
+ void addOnResolvedListener(std::function<void()> onResolved) const {
82
+ _promise->addOnResolvedListener([onResolved = std::move(onResolved)]() { onResolved(); });
83
+ }
84
+
85
+ void addOnRejectedListener(std::function<void(const std::exception_ptr&)> onRejected) const {
86
+ _promise->addOnRejectedListener([onRejected = std::move(onRejected)](const std::exception_ptr& error) { onRejected(error); });
87
+ }
88
+
89
+ private:
90
+ std::shared_ptr<Promise<void>> _promise;
91
+ };
92
+
93
+ } // namespace margelo::nitro
@@ -26,7 +26,7 @@ public enum RuntimeError: Error, CustomStringConvertible {
26
26
  * Creates a new `RuntimeError` from the given C++ `std::exception`.
27
27
  */
28
28
  public static func from(cppError: std.exception_ptr) -> RuntimeError {
29
- let message = margelo.nitro.get_exception_message(cppError)
29
+ let message = margelo.nitro.getExceptionMessage(cppError)
30
30
  return .error(withMessage: String(message))
31
31
  }
32
32
  }
@@ -37,6 +37,6 @@ public extension Error {
37
37
  */
38
38
  func toCpp() -> std.exception_ptr {
39
39
  let message = String(describing: self)
40
- return margelo.nitro.make_exception(std.string(message))
40
+ return margelo.nitro.makeException(std.string(message))
41
41
  }
42
42
  }
@@ -13,11 +13,11 @@
13
13
 
14
14
  namespace margelo::nitro {
15
15
 
16
- static inline std::exception_ptr make_exception(const std::string& message) {
16
+ static inline std::exception_ptr makeException(const std::string& message) {
17
17
  return std::make_exception_ptr(std::runtime_error(message));
18
18
  }
19
19
 
20
- static inline std::string get_exception_message(const std::exception_ptr& exception) {
20
+ static inline std::string getExceptionMessage(const std::exception_ptr& exception) {
21
21
  if (exception == nullptr) [[unlikely]] {
22
22
  throw std::runtime_error("Cannot get error message of an empty exception_ptr!");
23
23
  }
@@ -21,14 +21,14 @@ namespace margelo::nitro {
21
21
  */
22
22
  struct SwiftClosure final {
23
23
  public:
24
- using CallFn = void(void*);
25
- using DeleteFn = void(void*);
24
+ using CallFn = void(void* _Nonnull);
25
+ using DeleteFn = void(void* _Nonnull);
26
26
 
27
27
  private:
28
28
  std::function<void()> _function;
29
29
 
30
30
  public:
31
- explicit SwiftClosure(void* context, CallFn* call, DeleteFn* destroy) {
31
+ explicit SwiftClosure(void* _Nonnull context, CallFn* _Nonnull call, DeleteFn* _Nonnull destroy) {
32
32
  // Create a std::shared_ptr of the `void* context` which calls `destroy`
33
33
  // once no references of it exist anymore.
34
34
  // Since the std::function captures this std::shared_ptr, it can now be
@@ -37,7 +37,7 @@ public:
37
37
  std::shared_ptr<void> sharedContext(context, destroy);
38
38
  // Create a std::function that captures `sharedContext`.
39
39
  // Once it gets destroyed, `destroy()` gets called.
40
- _function = [sharedContext, call]() {
40
+ _function = [sharedContext = std::move(sharedContext), call]() {
41
41
  // Call the actual Swift closure.
42
42
  call(sharedContext.get());
43
43
  };
@@ -39,16 +39,15 @@ public extension SwiftClosure {
39
39
  let context = Unmanaged.passRetained(ClosureWrapper(closure: closure)).toOpaque()
40
40
 
41
41
  // Create a C-style Function Pointer, which calls the actual Swift closure.
42
- let call: @convention(c) (UnsafeMutableRawPointer?) -> Void = { context in
42
+ func call(context: UnsafeMutableRawPointer) {
43
43
  // Unwrap context from void* to closure again. We are assuming that it has not been deleted yet.
44
- let closure = Unmanaged<ClosureWrapper>.fromOpaque(context!).takeUnretainedValue()
44
+ let closure = Unmanaged<ClosureWrapper>.fromOpaque(context).takeUnretainedValue()
45
45
  // Call it!
46
46
  closure.invoke()
47
47
  }
48
48
 
49
49
  // Create a C-style Function Pointer, which deletes the `ClosureWrapper`.
50
- let destroy: @convention(c) (UnsafeMutableRawPointer?) -> Void = { context in
51
- guard let context else { return }
50
+ func destroy(context: UnsafeMutableRawPointer) {
52
51
  // Release the void* holding our `ClosureWrapper`
53
52
  Unmanaged<ClosureWrapper>.fromOpaque(context).release()
54
53
  }
@@ -10,7 +10,7 @@ const cache = new Map();
10
10
  /**
11
11
  * Get a constructor function for the given `HybridObject` {@linkcode T}.
12
12
  * @param name The name of the `HybridObject` under which it was registered at.
13
- * @returns An instance of {@linkcode T}
13
+ * @returns A constructor that creates instances of {@linkcode T}
14
14
  * @example
15
15
  * ```ts
16
16
  * export const HybridImage = getHybridObjectConstructor<Image>('Image')
@@ -6,7 +6,7 @@ const cache = new Map();
6
6
  /**
7
7
  * Get a constructor function for the given `HybridObject` {@linkcode T}.
8
8
  * @param name The name of the `HybridObject` under which it was registered at.
9
- * @returns An instance of {@linkcode T}
9
+ * @returns A constructor that creates instances of {@linkcode T}
10
10
  * @example
11
11
  * ```ts
12
12
  * export const HybridImage = getHybridObjectConstructor<Image>('Image')
@@ -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/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"}
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":"c1a0e5e95335f3543144ae3343f67669817f88865ecddce2927152b5e0382d96","signature":"ae6311df7457b1396ee9675a75181a275b0d548a92d551642c851380e63221c6"},{"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"}
@@ -2,7 +2,7 @@ import type { HybridObject } from './HybridObject';
2
2
  /**
3
3
  * Get a constructor function for the given `HybridObject` {@linkcode T}.
4
4
  * @param name The name of the `HybridObject` under which it was registered at.
5
- * @returns An instance of {@linkcode T}
5
+ * @returns A constructor that creates instances of {@linkcode T}
6
6
  * @example
7
7
  * ```ts
8
8
  * export const HybridImage = getHybridObjectConstructor<Image>('Image')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nitro-modules",
3
- "version": "0.19.0",
3
+ "version": "0.20.1",
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",
@@ -6,7 +6,7 @@ const cache = new Map<string, Function>()
6
6
  /**
7
7
  * Get a constructor function for the given `HybridObject` {@linkcode T}.
8
8
  * @param name The name of the `HybridObject` under which it was registered at.
9
- * @returns An instance of {@linkcode T}
9
+ * @returns A constructor that creates instances of {@linkcode T}
10
10
  * @example
11
11
  * ```ts
12
12
  * export const HybridImage = getHybridObjectConstructor<Image>('Image')