react-native-nitro-modules 0.18.1 → 0.19.0

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