react-native-nitro-modules 0.30.2 → 0.31.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.
@@ -1,5 +1,6 @@
1
1
  package com.margelo.nitro
2
2
 
3
+ import android.util.Log
3
4
  import androidx.annotation.Keep
4
5
  import com.facebook.jni.HybridData
5
6
  import com.facebook.proguard.annotations.DoNotStrip
@@ -46,6 +47,7 @@ class NitroModules internal constructor(
46
47
  return null
47
48
  } catch (e: Throwable) {
48
49
  // ?. Something went wrong! Maybe a JNI error?
50
+ Log.e(NAME, "Failed to install Nitro!", e)
49
51
  return e.message
50
52
  }
51
53
  }
@@ -5,6 +5,7 @@
5
5
  #include "HybridObject.hpp"
6
6
  #include "JSIConverter.hpp"
7
7
  #include "NitroDefines.hpp"
8
+ #include "ObjectUtils.hpp"
8
9
 
9
10
  namespace margelo::nitro {
10
11
 
@@ -73,29 +74,32 @@ jsi::Value HybridObject::toObject(jsi::Runtime& runtime) {
73
74
  // 2. Get the object's base prototype (global & shared)
74
75
  jsi::Value prototype = getPrototype(runtime);
75
76
 
76
- // 3. Get the global JS Object.create(...) constructor so we can create an object from the given prototype
77
- jsi::Object objectConstructor = runtime.global().getPropertyAsObject(runtime, "Object");
78
- jsi::Function create = objectConstructor.getPropertyAsFunction(runtime, "create");
77
+ // 3. Create the object using Object.create(...)
78
+ jsi::Object object = ObjectUtils::create(runtime, prototype);
79
79
 
80
- // 4. Create the object using Object.create(...)
81
- jsi::Object object = create.call(runtime, prototype).asObject(runtime);
82
-
83
- // 5. Assign NativeState to the object so the prototype can resolve the native methods
80
+ // 4. Assign NativeState to the object so the prototype can resolve the native methods
84
81
  object.setNativeState(runtime, shared());
85
82
 
86
- // 6. Set memory size so Hermes GC knows about actual memory
83
+ // 5. Set memory size so Hermes GC knows about actual memory
87
84
  object.setExternalMemoryPressure(runtime, getExternalMemorySize());
88
85
 
89
86
  #ifdef NITRO_DEBUG
90
- // 7. Assign a private __type property for debugging - this will be used so users know it's not just an empty object.
91
- object.setProperty(runtime, "__type", jsi::String::createFromUtf8(runtime, "NativeState<" + std::string(_name) + ">"));
87
+ // 6. Assign a private __type property for debugging - this will be used so users know it's not just an empty object.
88
+ std::string typeName = "HybridObject<" + std::string(_name) + ">";
89
+ ObjectUtils::defineProperty(runtime, object, "__type",
90
+ PlainPropertyDescriptor{
91
+ .configurable = false,
92
+ .enumerable = true,
93
+ .value = jsi::String::createFromUtf8(runtime, typeName),
94
+ .writable = false,
95
+ });
92
96
  #endif
93
97
 
94
- // 8. Throw a jsi::WeakObject pointing to our object into cache so subsequent calls can use it from cache
98
+ // 7. Throw a jsi::WeakObject pointing to our object into cache so subsequent calls can use it from cache
95
99
  JSICacheReference cache = JSICache::getOrCreateCache(runtime);
96
100
  _objectCache[&runtime] = cache.makeShared(jsi::WeakObject(runtime, object));
97
101
 
98
- // 9. Return it!
102
+ // 8. Return it!
99
103
  return object;
100
104
  }
101
105
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  #include "InstallNitro.hpp"
9
9
  #include "HybridNitroModulesProxy.hpp"
10
+ #include "ObjectUtils.hpp"
10
11
 
11
12
  namespace margelo::nitro {
12
13
 
@@ -22,7 +23,7 @@ void install(jsi::Runtime& runtime, std::shared_ptr<Dispatcher> dispatcher) {
22
23
  void install(jsi::Runtime& runtime) {
23
24
  // Installs global.NitroModulesProxy
24
25
  auto proxy = std::make_shared<HybridNitroModulesProxy>();
25
- runtime.global().setProperty(runtime, "NitroModulesProxy", proxy->toObject(runtime));
26
+ ObjectUtils::defineGlobal(runtime, KnownGlobalPropertyName::NITRO_MODULES_PROXY, proxy->toObject(runtime));
26
27
  }
27
28
 
28
29
  } // namespace margelo::nitro
@@ -8,11 +8,10 @@
8
8
  #include "JSICache.hpp"
9
9
  #include "JSIHelpers.hpp"
10
10
  #include "NitroDefines.hpp"
11
+ #include "ObjectUtils.hpp"
11
12
 
12
13
  namespace margelo::nitro {
13
14
 
14
- static constexpr auto CACHE_PROP_NAME = "__nitroModulesJSICache";
15
-
16
15
  template <typename T>
17
16
  inline void destroyReferences(const std::vector<WeakReference<T>>& references) {
18
17
  for (auto& func : references) {
@@ -48,12 +47,6 @@ JSICacheReference JSICache::getOrCreateCache(jsi::Runtime& runtime) {
48
47
  Logger::log(LogLevel::Warning, TAG, "JSICache was created, but it is no longer strong!");
49
48
  }
50
49
 
51
- #ifdef NITRO_DEBUG
52
- if (runtime.global().hasProperty(runtime, CACHE_PROP_NAME)) [[unlikely]] {
53
- throw std::runtime_error("The Runtime \"" + getRuntimeId(runtime) + "\" already has a global cache! (\"" + CACHE_PROP_NAME + "\")");
54
- }
55
- #endif
56
-
57
50
  // Cache doesn't exist yet.
58
51
  Logger::log(LogLevel::Info, TAG, "Creating new JSICache<T> for runtime %s..", getRuntimeId(runtime).c_str());
59
52
  // Create new cache
@@ -61,8 +54,9 @@ JSICacheReference JSICache::getOrCreateCache(jsi::Runtime& runtime) {
61
54
  // Wrap it in a jsi::Value using NativeState
62
55
  jsi::Object cache(runtime);
63
56
  cache.setNativeState(runtime, nativeState);
64
- // Inject it into the jsi::Runtime's global so it's memory is managed by it
65
- runtime.global().setProperty(runtime, CACHE_PROP_NAME, std::move(cache));
57
+ // Inject it into the jsi::Runtime's global so it's memory is managed by it.
58
+ // We pass `allowCache = false` because we are the JSICache, and this would cause recursion.
59
+ ObjectUtils::defineGlobal(runtime, KnownGlobalPropertyName::JSI_CACHE, std::move(cache), /* allowCache */ false);
66
60
  // Add it to our map of caches
67
61
  _globalCache[&runtime] = nativeState;
68
62
  // Return it
@@ -63,8 +63,7 @@ struct JSIConverter<std::chrono::system_clock::time_point> final {
63
63
  auto msSinceEpoch = static_cast<double>(ms);
64
64
 
65
65
  // TODO: Cache this
66
- jsi::Object global = runtime.global();
67
- jsi::Function dateCtor = global.getPropertyAsFunction(runtime, "Date");
66
+ jsi::Function dateCtor = runtime.global().getPropertyAsFunction(runtime, "Date");
68
67
 
69
68
  jsi::Value jsDate = dateCtor.callAsConstructor(runtime, {jsi::Value(msSinceEpoch)});
70
69
  return jsDate;
@@ -73,7 +72,9 @@ struct JSIConverter<std::chrono::system_clock::time_point> final {
73
72
  static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
74
73
  if (value.isObject()) {
75
74
  jsi::Object object = value.getObject(runtime);
76
- return object.hasProperty(runtime, "valueOf");
75
+
76
+ jsi::Function dateCtor = runtime.global().getPropertyAsFunction(runtime, "Date");
77
+ return object.instanceOf(runtime, dateCtor);
77
78
  }
78
79
  return false;
79
80
  }
@@ -51,7 +51,8 @@ struct JSIConverter<std::exception_ptr> final {
51
51
  return false;
52
52
  }
53
53
  jsi::Object object = value.getObject(runtime);
54
- return object.hasProperty(runtime, "name") && object.hasProperty(runtime, "message");
54
+ jsi::Function errorCtor = runtime.global().getPropertyAsFunction(runtime, "Error");
55
+ return object.instanceOf(runtime, errorCtor);
55
56
  }
56
57
  };
57
58
 
@@ -102,7 +102,8 @@ struct JSIConverter<std::shared_ptr<Promise<TResult>>> final {
102
102
  return false;
103
103
  }
104
104
  jsi::Object object = value.getObject(runtime);
105
- return object.hasProperty(runtime, "then");
105
+ jsi::Function promiseCtor = runtime.global().getPropertyAsFunction(runtime, "Promise");
106
+ return object.instanceOf(runtime, promiseCtor);
106
107
  }
107
108
  };
108
109
 
@@ -9,6 +9,7 @@
9
9
  #include "NitroDefines.hpp"
10
10
  #include "NitroLogger.hpp"
11
11
  #include "NitroTypeInfo.hpp"
12
+ #include "ObjectUtils.hpp"
12
13
 
13
14
  namespace margelo::nitro {
14
15
 
@@ -33,16 +34,12 @@ jsi::Value HybridObjectPrototype::createPrototype(jsi::Runtime& runtime, const s
33
34
  }
34
35
  }
35
36
 
36
- // 2. We didn't find the given prototype in cache (either it's a new prototype, or a new runtime),
37
- // so we need to create it. First, we need some helper methods from JS
37
+ // 2. Get the base prototype of this prototype (recursively), then create the individual prototypes downwards
38
+ // until we reach our current prototype.
38
39
  std::string typeName = TypeInfo::getFriendlyTypename(prototype->getNativeInstanceId(), true);
39
40
  Logger::log(LogLevel::Info, TAG, "Creating new JS prototype for C++ instance type \"%s\"...", typeName.c_str());
40
- jsi::Object objectConstructor = runtime.global().getPropertyAsObject(runtime, "Object");
41
- jsi::Function objectCreate = objectConstructor.getPropertyAsFunction(runtime, "create");
42
- jsi::Function objectDefineProperty = objectConstructor.getPropertyAsFunction(runtime, "defineProperty");
43
-
44
- // 3. Create an empty JS Object, inheriting from the base prototype (recursively!)
45
- jsi::Object object = objectCreate.call(runtime, createPrototype(runtime, prototype->getBase())).getObject(runtime);
41
+ jsi::Value basePrototype = createPrototype(runtime, prototype->getBase());
42
+ jsi::Object object = ObjectUtils::create(runtime, basePrototype);
46
43
 
47
44
  // 4. Add all Hybrid Methods to it
48
45
  for (const auto& method : prototype->getMethods()) {
@@ -51,37 +48,48 @@ jsi::Value HybridObjectPrototype::createPrototype(jsi::Runtime& runtime, const s
51
48
 
52
49
  // 5. Add all properties (getter + setter) to it using defineProperty
53
50
  for (const auto& getter : prototype->getGetters()) {
54
- jsi::Object property(runtime);
55
- property.setProperty(runtime, "configurable", false);
56
- property.setProperty(runtime, "enumerable", true);
57
- property.setProperty(runtime, "get", getter.second.toJSFunction(runtime));
58
-
59
51
  const auto& setter = prototype->getSetters().find(getter.first);
60
- if (setter != prototype->getSetters().end()) {
61
- // there also is a setter for this property!
62
- property.setProperty(runtime, "set", setter->second.toJSFunction(runtime));
52
+ bool isReadonly = setter == prototype->getSetters().end();
53
+ const std::string& name = getter.first;
54
+ if (isReadonly) {
55
+ // get
56
+ ObjectUtils::defineProperty(
57
+ runtime, object, name.c_str(),
58
+ ComputedReadonlyPropertyDescriptor{.configurable = false, .enumerable = false, .get = getter.second.toJSFunction(runtime)});
59
+ } else {
60
+ // get + set
61
+ ObjectUtils::defineProperty(runtime, object, name.c_str(),
62
+ ComputedPropertyDescriptor{.configurable = false,
63
+ .enumerable = false,
64
+ .get = getter.second.toJSFunction(runtime),
65
+ .set = setter->second.toJSFunction(runtime)});
63
66
  }
64
-
65
- property.setProperty(runtime, "name", jsi::String::createFromUtf8(runtime, getter.first.c_str()));
66
- objectDefineProperty.call(runtime,
67
- /* obj */ object,
68
- /* propName */ jsi::String::createFromUtf8(runtime, getter.first.c_str()),
69
- /* descriptorObj */ property);
70
67
  }
71
68
 
72
69
  // 6. In DEBUG, add a __type info to the prototype object.
73
70
  #ifdef NITRO_DEBUG
74
- auto prototypeName = "Prototype<" + typeName + ">";
75
- object.setProperty(runtime, "__type", jsi::String::createFromUtf8(runtime, prototypeName));
71
+ std::string prototypeName = "Prototype<" + typeName + ">";
72
+ ObjectUtils::defineProperty(runtime, object, "__type",
73
+ PlainPropertyDescriptor{
74
+ .configurable = false,
75
+ .enumerable = true,
76
+ .value = jsi::String::createFromUtf8(runtime, prototypeName),
77
+ .writable = false,
78
+ });
79
+ #endif
80
+
81
+ // 7. In DEBUG, freeze the prototype.
82
+ #ifdef NITRO_DEBUG
83
+ ObjectUtils::freeze(runtime, object);
76
84
  #endif
77
85
 
78
- // 7. Throw it into our cache so the next lookup can be cached and therefore faster
86
+ // 8. Throw it into our cache so the next lookup can be cached and therefore faster
79
87
  JSICacheReference jsiCache = JSICache::getOrCreateCache(runtime);
80
88
  BorrowingReference<jsi::Object> sharedObject = jsiCache.makeShared(std::move(object));
81
89
  auto instanceId = prototype->getNativeInstanceId();
82
90
  prototypeCache[instanceId] = sharedObject;
83
91
 
84
- // 8. Return it!
92
+ // 9. Return it!
85
93
  return jsi::Value(runtime, *sharedObject);
86
94
  }
87
95
 
@@ -10,13 +10,12 @@
10
10
  #include "JSIHelpers.hpp"
11
11
  #include "NitroDefines.hpp"
12
12
  #include "NitroLogger.hpp"
13
+ #include "ObjectUtils.hpp"
13
14
 
14
15
  namespace margelo::nitro {
15
16
 
16
17
  using namespace facebook;
17
18
 
18
- static constexpr auto GLOBAL_DISPATCHER_HOLDER_NAME = "__nitroDispatcher";
19
-
20
19
  /**
21
20
  * This map is only statically linked once to this library.
22
21
  * If multiple versions of react-native-nitro-modules are linked, there would be multiple maps. We catch that issue later.
@@ -31,7 +30,7 @@ void Dispatcher::installRuntimeGlobalDispatcher(jsi::Runtime& runtime, std::shar
31
30
 
32
31
  // Inject the dispatcher into Runtime global (runtime will hold a strong reference)
33
32
  jsi::Value dispatcherHolder = JSIConverter<std::shared_ptr<Dispatcher>>::toJSI(runtime, dispatcher);
34
- runtime.global().setProperty(runtime, GLOBAL_DISPATCHER_HOLDER_NAME, std::move(dispatcherHolder));
33
+ ObjectUtils::defineGlobal(runtime, KnownGlobalPropertyName::DISPATCHER, std::move(dispatcherHolder));
35
34
  }
36
35
 
37
36
  std::shared_ptr<Dispatcher> Dispatcher::getRuntimeGlobalDispatcher(jsi::Runtime& runtime) {
@@ -58,14 +57,15 @@ std::shared_ptr<Dispatcher> Dispatcher::getRuntimeGlobalDispatcher(jsi::Runtime&
58
57
  }
59
58
 
60
59
  jsi::Value Dispatcher::getRuntimeGlobalDispatcherHolder(jsi::Runtime& runtime) {
61
- if (!runtime.global().hasProperty(runtime, GLOBAL_DISPATCHER_HOLDER_NAME)) [[unlikely]] {
60
+ const char* dispatcherHolderName = ObjectUtils::getKnownGlobalPropertyNameString(KnownGlobalPropertyName::DISPATCHER);
61
+ if (!runtime.global().hasProperty(runtime, dispatcherHolderName)) [[unlikely]] {
62
62
  throw std::runtime_error("The `jsi::Runtime` \"" + getRuntimeId(runtime) +
63
63
  "\" does not support Callbacks or Promises because it does not have a `Dispatcher` installed!\n"
64
64
  "To use Callbacks and Promises follow these steps;\n"
65
65
  "1. Subclass `Dispatcher` with your implementation of `runAsync`/`runSync` for your Thread.\n"
66
66
  "2. Call `Dispatcher::installRuntimeGlobalDispatcher(...)` with your `Runtime` and your `Dispatcher`.");
67
67
  }
68
- return runtime.global().getProperty(runtime, GLOBAL_DISPATCHER_HOLDER_NAME);
68
+ return runtime.global().getProperty(runtime, dispatcherHolderName);
69
69
  }
70
70
 
71
71
  } // namespace margelo::nitro
@@ -9,7 +9,7 @@
9
9
  #define NitroDefines_h
10
10
 
11
11
  // Sets the version of the native Nitro core library
12
- #define NITRO_VERSION "0.30.2"
12
+ #define NITRO_VERSION "0.31.0"
13
13
 
14
14
  // Sets whether to use debug or optimized production build flags
15
15
  #ifdef DEBUG
@@ -0,0 +1,169 @@
1
+ //
2
+ // ObjectUtils.cpp
3
+ // react-native-nitro
4
+ //
5
+ // Created by Marc Rousavy on 17.10.25.
6
+ //
7
+
8
+ #include "ObjectUtils.hpp"
9
+ #include "JSICache.hpp"
10
+ #include "JSIHelpers.hpp"
11
+ #include "NitroDefines.hpp"
12
+
13
+ #if __has_include(<React-cxxreact/cxxreact/ReactNativeVersion.h>)
14
+ #include <React-cxxreact/cxxreact/ReactNativeVersion.h>
15
+ #if REACT_NATIVE_VERSION_MINOR >= 78
16
+ #define ENABLE_NATIVE_OBJECT_CREATE
17
+ #endif
18
+ #endif
19
+
20
+ namespace margelo::nitro {
21
+
22
+ using namespace facebook;
23
+
24
+ std::unordered_map<jsi::Runtime*, ObjectUtils::FunctionCache> ObjectUtils::_cache;
25
+
26
+ const char* ObjectUtils::getKnownGlobalPropertyNameString(KnownGlobalPropertyName name) {
27
+ switch (name) {
28
+ case KnownGlobalPropertyName::DISPATCHER:
29
+ return "__nitroDispatcher";
30
+ case KnownGlobalPropertyName::JSI_CACHE:
31
+ return "__nitroJsiCache";
32
+ case KnownGlobalPropertyName::NITRO_MODULES_PROXY:
33
+ return "NitroModulesProxy";
34
+ }
35
+ }
36
+
37
+ jsi::Object ObjectUtils::create(jsi::Runtime& runtime, const jsi::Value& prototype, bool allowCache) {
38
+ #ifdef ENABLE_NATIVE_OBJECT_CREATE
39
+ return jsi::Object::create(runtime, prototype);
40
+ #else
41
+ BorrowingReference<jsi::Function> createFn = getGlobalFunction(
42
+ runtime, "Object.create",
43
+ [](jsi::Runtime& runtime) {
44
+ return runtime.global().getPropertyAsObject(runtime, "Object").getPropertyAsFunction(runtime, "create");
45
+ },
46
+ allowCache);
47
+ return createFn->call(runtime, prototype).getObject(runtime);
48
+ #endif
49
+ }
50
+
51
+ void ObjectUtils::defineGlobal(jsi::Runtime& runtime, KnownGlobalPropertyName name, jsi::Value&& value, bool allowCache) {
52
+ const char* nameString = getKnownGlobalPropertyNameString(name);
53
+
54
+ #ifdef NITRO_DEBUG
55
+ // In debug, let's perform additional safety checks.
56
+ if (runtime.global().hasProperty(runtime, nameString)) [[unlikely]] {
57
+ throw std::runtime_error("Failed to set `global." + std::string(nameString) + "` - it already exists for Runtime \"" +
58
+ getRuntimeId(runtime) + "\"! Did you call `defineGlobal(\"" + std::string(nameString) +
59
+ "\")` twice? Did you link Nitro Modules twice?");
60
+ }
61
+ defineProperty(runtime, runtime.global(), nameString,
62
+ PlainPropertyDescriptor{.configurable = false, .enumerable = true, .value = std::move(value), .writable = false},
63
+ allowCache);
64
+ #else
65
+ // In release, just set the property.
66
+ runtime.global().setProperty(runtime, nameString, std::move(value));
67
+ #endif
68
+ }
69
+
70
+ void ObjectUtils::defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
71
+ PlainPropertyDescriptor&& descriptor, bool allowCache) {
72
+ BorrowingReference<jsi::Function> definePropertyFn = getGlobalFunction(
73
+ runtime, "Object.defineProperty",
74
+ [](jsi::Runtime& runtime) {
75
+ return runtime.global().getPropertyAsObject(runtime, "Object").getPropertyAsFunction(runtime, "defineProperty");
76
+ },
77
+ allowCache);
78
+
79
+ jsi::String nameJs = jsi::String::createFromAscii(runtime, propertyName);
80
+
81
+ jsi::Object descriptorJs(runtime);
82
+ descriptorJs.setProperty(runtime, "configurable", jsi::Value(descriptor.configurable));
83
+ descriptorJs.setProperty(runtime, "enumerable", jsi::Value(descriptor.enumerable));
84
+ descriptorJs.setProperty(runtime, "value", std::move(descriptor.value));
85
+ descriptorJs.setProperty(runtime, "writable", jsi::Value(descriptor.writable));
86
+
87
+ definePropertyFn->call(runtime, object, std::move(nameJs), std::move(descriptorJs));
88
+ }
89
+
90
+ void ObjectUtils::defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
91
+ ComputedReadonlyPropertyDescriptor&& descriptor, bool allowCache) {
92
+ BorrowingReference<jsi::Function> definePropertyFn = getGlobalFunction(
93
+ runtime, "Object.defineProperty",
94
+ [](jsi::Runtime& runtime) {
95
+ return runtime.global().getPropertyAsObject(runtime, "Object").getPropertyAsFunction(runtime, "defineProperty");
96
+ },
97
+ allowCache);
98
+
99
+ jsi::String nameJs = jsi::String::createFromAscii(runtime, propertyName);
100
+
101
+ jsi::Object descriptorJs(runtime);
102
+ descriptorJs.setProperty(runtime, "configurable", jsi::Value(descriptor.configurable));
103
+ descriptorJs.setProperty(runtime, "enumerable", jsi::Value(descriptor.enumerable));
104
+ descriptorJs.setProperty(runtime, "get", std::move(descriptor.get));
105
+
106
+ definePropertyFn->call(runtime, object, std::move(nameJs), std::move(descriptorJs));
107
+ }
108
+
109
+ void ObjectUtils::defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
110
+ ComputedPropertyDescriptor&& descriptor, bool allowCache) {
111
+ BorrowingReference<jsi::Function> definePropertyFn = getGlobalFunction(
112
+ runtime, "Object.defineProperty",
113
+ [](jsi::Runtime& runtime) {
114
+ return runtime.global().getPropertyAsObject(runtime, "Object").getPropertyAsFunction(runtime, "defineProperty");
115
+ },
116
+ allowCache);
117
+
118
+ jsi::String nameJs = jsi::String::createFromAscii(runtime, propertyName);
119
+
120
+ jsi::Object descriptorJs(runtime);
121
+ descriptorJs.setProperty(runtime, "configurable", jsi::Value(descriptor.configurable));
122
+ descriptorJs.setProperty(runtime, "enumerable", jsi::Value(descriptor.enumerable));
123
+ descriptorJs.setProperty(runtime, "get", std::move(descriptor.get));
124
+ descriptorJs.setProperty(runtime, "set", std::move(descriptor.set));
125
+
126
+ definePropertyFn->call(runtime, object, std::move(nameJs), std::move(descriptorJs));
127
+ }
128
+
129
+ void ObjectUtils::freeze(jsi::Runtime& runtime, const jsi::Object& object, bool allowCache) {
130
+ BorrowingReference<jsi::Function> freezeFn = getGlobalFunction(
131
+ runtime, "Object.freeze",
132
+ [](jsi::Runtime& runtime) {
133
+ return runtime.global().getPropertyAsObject(runtime, "Object").getPropertyAsFunction(runtime, "freeze");
134
+ },
135
+ allowCache);
136
+
137
+ freezeFn->call(runtime, object);
138
+ }
139
+
140
+ BorrowingReference<jsi::Function> ObjectUtils::getGlobalFunction(jsi::Runtime& runtime, const char* key,
141
+ std::function<jsi::Function(jsi::Runtime&)> getFunction, bool allowCache) {
142
+ if (allowCache) [[likely]] {
143
+ // Let's try to find the function in cache
144
+ FunctionCache& functionCache = _cache[&runtime];
145
+ std::string stringKey = key;
146
+ auto iterator = functionCache.find(stringKey);
147
+ if (iterator != functionCache.end()) {
148
+ // We found it! Copy & return the reference
149
+ BorrowingReference<jsi::Function> function = iterator->second;
150
+ return function;
151
+ }
152
+ }
153
+ // We haven't found the function with the given key in cache - so let's get it:
154
+ jsi::Function function = getFunction(runtime);
155
+ if (allowCache) [[likely]] {
156
+ // Let's throw it in cache!
157
+ FunctionCache& functionCache = _cache[&runtime];
158
+ JSICacheReference jsiCache = JSICache::getOrCreateCache(runtime);
159
+ BorrowingReference<jsi::Function> sharedFunction = jsiCache.makeShared(std::move(function));
160
+ functionCache[std::string(key)] = sharedFunction;
161
+ return sharedFunction;
162
+ } else {
163
+ // We are not allowed to use cache - so let's just wrap it in a BorrowingReference to match the return type.
164
+ jsi::Function* heapFunction = new jsi::Function(std::move(function));
165
+ return BorrowingReference<jsi::Function>(heapFunction);
166
+ }
167
+ }
168
+
169
+ } // namespace margelo::nitro
@@ -0,0 +1,94 @@
1
+ //
2
+ // ObjectUtils.hpp
3
+ // react-native-nitro
4
+ //
5
+ // Created by Marc Rousavy on 17.10.25.
6
+ //
7
+
8
+ #pragma once
9
+
10
+ #include "BorrowingReference.hpp"
11
+ #include <jsi/jsi.h>
12
+ #include <unordered_map>
13
+
14
+ namespace margelo::nitro {
15
+
16
+ using namespace facebook;
17
+
18
+ struct PlainPropertyDescriptor {
19
+ bool configurable;
20
+ bool enumerable;
21
+ jsi::Value value;
22
+ bool writable;
23
+ };
24
+ struct ComputedReadonlyPropertyDescriptor {
25
+ bool configurable;
26
+ bool enumerable;
27
+ jsi::Function get;
28
+ };
29
+ struct ComputedPropertyDescriptor {
30
+ bool configurable;
31
+ bool enumerable;
32
+ jsi::Function get;
33
+ jsi::Function set;
34
+ };
35
+
36
+ enum class KnownGlobalPropertyName { DISPATCHER, JSI_CACHE, NITRO_MODULES_PROXY };
37
+
38
+ class ObjectUtils {
39
+ public:
40
+ ObjectUtils() = delete;
41
+ ~ObjectUtils() = delete;
42
+
43
+ public:
44
+ /**
45
+ * Create a new `jsi::Object` with the given `prototype`.
46
+ * Uses a native implementation if possible.
47
+ */
48
+ static jsi::Object create(jsi::Runtime& runtime, const jsi::Value& prototype, bool allowCache = true);
49
+
50
+ /**
51
+ * Define a global value for the given Runtime.
52
+ * In debug, this performs additional safety checks such as freezing the property.
53
+ */
54
+ static void defineGlobal(jsi::Runtime& runtime, KnownGlobalPropertyName name, jsi::Value&& value, bool allowCache = true);
55
+
56
+ /**
57
+ * Define a plain property on the given `object` with the given `propertyName`.
58
+ * The `descriptor` defines the attributes of this property.
59
+ */
60
+ static void defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
61
+ PlainPropertyDescriptor&& descriptor, bool allowCache = true);
62
+ /**
63
+ * Define a plain property on the given `object` with the given `propertyName`.
64
+ * The `descriptor` defines the attributes of this property.
65
+ */
66
+ static void defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
67
+ ComputedReadonlyPropertyDescriptor&& descriptor, bool allowCache = true);
68
+ /**
69
+ * Define a plain property on the given `object` with the given `propertyName`.
70
+ * The `descriptor` defines the attributes of this property.
71
+ */
72
+ static void defineProperty(jsi::Runtime& runtime, const jsi::Object& object, const char* propertyName,
73
+ ComputedPropertyDescriptor&& descriptor, bool allowCache = true);
74
+
75
+ /**
76
+ * Freezes all values of the given `object`.
77
+ */
78
+ static void freeze(jsi::Runtime& runtime, const jsi::Object& object, bool allowCache = true);
79
+
80
+ /**
81
+ * Get a string name for a known global property name.
82
+ */
83
+ static const char* getKnownGlobalPropertyNameString(KnownGlobalPropertyName name);
84
+
85
+ private:
86
+ using FunctionCache = std::unordered_map<std::string, BorrowingReference<jsi::Function>>;
87
+ static std::unordered_map<jsi::Runtime*, FunctionCache> _cache;
88
+
89
+ static BorrowingReference<jsi::Function> getGlobalFunction(jsi::Runtime& runtime, const char* key,
90
+ std::function<jsi::Function(jsi::Runtime&)> getFunction,
91
+ bool allowCache = true);
92
+ };
93
+
94
+ } // namespace margelo::nitro
@@ -11,6 +11,7 @@
11
11
 
12
12
  #import "CallInvokerDispatcher.hpp"
13
13
  #import "InstallNitro.hpp"
14
+ #import "NitroLogger.hpp"
14
15
 
15
16
  #import <ReactCommon/CallInvoker.h>
16
17
  #import <ReactCommon/RCTTurboModuleWithJSIBindings.h>
@@ -28,6 +29,7 @@ using namespace margelo;
28
29
  */
29
30
  @implementation NativeNitroModules {
30
31
  bool _didInstall;
32
+ NSString* _Nullable _errorMessage;
31
33
  std::weak_ptr<react::CallInvoker> _callInvoker;
32
34
  }
33
35
  RCT_EXPORT_MODULE(NitroModules)
@@ -43,8 +45,14 @@ RCT_EXPORT_MODULE(NitroModules)
43
45
  auto dispatcher = std::make_shared<nitro::CallInvokerDispatcher>(callInvoker);
44
46
 
45
47
  // 3. Install Nitro
46
- nitro::install(runtime, dispatcher);
47
- _didInstall = true;
48
+ try {
49
+ nitro::install(runtime, dispatcher);
50
+ _didInstall = true;
51
+ } catch (const std::exception& exc) {
52
+ nitro::Logger::log(nitro::LogLevel::Error, "NitroModules", "Failed to install Nitro! %s", exc.what());
53
+ _errorMessage = [NSString stringWithCString:exc.what() encoding:kCFStringEncodingUTF8];
54
+ _didInstall = false;
55
+ }
48
56
  }
49
57
 
50
58
  - (NSString*)install {
@@ -52,6 +60,9 @@ RCT_EXPORT_MODULE(NitroModules)
52
60
  // installJSIBindingsWithRuntime ran successfully.
53
61
  return nil;
54
62
  } else {
63
+ if (_errorMessage != nil) {
64
+ return _errorMessage;
65
+ }
55
66
  return @"installJSIBindingsWithRuntime: was not called - JSI Bindings could not be installed!";
56
67
  }
57
68
  }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=globals.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["globals.d.ts"],"mappings":"","ignoreList":[]}
@@ -36,25 +36,8 @@ if (__DEV__) {
36
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
37
  }
38
38
  }
39
-
40
- // Freeze the globals we need
41
- if (__DEV__) {
42
- function protectGlobal(key) {
43
- const value = globalThis[key];
44
- if (value == null) return;
45
- Object.freeze(value);
46
- Object.defineProperty(globalThis, key, {
47
- value: value,
48
- writable: false,
49
- configurable: false
50
- });
51
- }
52
- protectGlobal('__nitroDispatcher');
53
- protectGlobal('__nitroModulesJSICache');
54
- protectGlobal('NitroModulesProxy');
55
- }
56
39
  function isRuntimeAlive() {
57
- const cache = globalThis.__nitroModulesJSICache;
40
+ const cache = globalThis.__nitroJsiCache;
58
41
  const dispatcher = globalThis.__nitroDispatcher;
59
42
  return cache != null && dispatcher != null;
60
43
  }
@@ -1 +1 @@
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","protectGlobal","key","value","globalThis","Object","freeze","defineProperty","writable","configurable","isRuntimeAlive","cache","__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;;AAEA;AACA,IAAID,OAAO,EAAE;EACX,SAASK,aAAaA,CAACC,GAA4B,EAAQ;IACzD,MAAMC,KAAK,GAAGC,UAAU,CAACF,GAAG,CAAC;IAC7B,IAAIC,KAAK,IAAI,IAAI,EAAE;IACnBE,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC;IACpBE,MAAM,CAACE,cAAc,CAACH,UAAU,EAAEF,GAAG,EAAE;MACrCC,KAAK,EAAEA,KAAK;MACZK,QAAQ,EAAE,KAAK;MACfC,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ;EAEAR,aAAa,CAAC,mBAAmB,CAAC;EAClCA,aAAa,CAAC,wBAAwB,CAAC;EACvCA,aAAa,CAAC,mBAAmB,CAAC;AACpC;AAQO,SAASS,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGP,UAAU,CAACQ,sBAAsB;EAC/C,MAAMC,UAAU,GAAGT,UAAU,CAACU,iBAAiB;EAC/C,OAAOH,KAAK,IAAI,IAAI,IAAIE,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","__nitroJsiCache","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;AAEO,SAASI,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGC,UAAU,CAACC,eAAe;EACxC,MAAMC,UAAU,GAAGF,UAAU,CAACG,iBAAiB;EAC/C,OAAOJ,KAAK,IAAI,IAAI,IAAIG,UAAU,IAAI,IAAI;AAC5C","ignoreList":[]}
@@ -7,8 +7,7 @@ exports.callback = callback;
7
7
  exports.getHostComponent = getHostComponent;
8
8
  var _reactNative = require("react-native");
9
9
  var NativeComponentRegistry = _interopRequireWildcard(require("react-native/Libraries/NativeComponent/NativeComponentRegistry"));
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
11
  // @ts-expect-error this unfortunately isn't typed or default-exported.
13
12
  // eslint-disable-next-line @react-native/no-deep-imports
14
13
 
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","NativeComponentRegistry","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","wrapValidAttributes","attributes","keys","key","diff","b","process","getHostComponent","name","getViewConfig","Error","Platform","OS","config","validAttributes","callback","func","f"],"sourceRoot":"../../../src","sources":["views/getHostComponent.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,uBAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAyG,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAFzG;AACA;;AAyBA;AACA;AACA;;AAsBA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA,SAASW,mBAAmBA,CAC1BC,UAAmC,EACV;EACzB,MAAMC,IAAI,GAAGV,MAAM,CAACU,IAAI,CAACD,UAAU,CAAsC;EACzE,KAAK,MAAME,GAAG,IAAID,IAAI,EAAE;IACtBD,UAAU,CAACE,GAAG,CAAC,GAAG;MAChBC,IAAI,EAAEA,CAACb,CAAC,EAAEc,CAAC,KAAKd,CAAC,KAAKc,CAAC;MACvBC,OAAO,EAAGR,CAAC,IAAKA;IAClB,CAAC;EACH;EACA,OAAOG,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,gBAAgBA,CAI9BC,IAAY,EACZC,aAAsC,EACL;EACjC,IAAI/B,uBAAuB,IAAI,IAAI,EAAE;IACnC,MAAM,IAAIgC,KAAK,CACb,+CAA+CC,qBAAQ,CAACC,EAAE,GAC5D,CAAC;EACH;EACA,OAAOlC,uBAAuB,CAACU,GAAG,CAACoB,IAAI,EAAE,MAAM;IAC7C,MAAMK,MAAM,GAAGJ,aAAa,CAAC,CAAC;IAC9BI,MAAM,CAACC,eAAe,GAAGd,mBAAmB,CAACa,MAAM,CAACC,eAAe,CAAC;IACpE,OAAOD,MAAM;EACf,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;;AAIO,SAASE,QAAQA,CAACC,IAAa,EAAE;EACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAC9B,OAAO;MAAEC,CAAC,EAAED;IAAK,CAAC;EACpB;EACA,OAAOA,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","NativeComponentRegistry","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","wrapValidAttributes","attributes","keys","key","diff","a","b","process","getHostComponent","name","getViewConfig","Error","Platform","OS","config","validAttributes","callback","func"],"sourceRoot":"../../../src","sources":["views/getHostComponent.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,uBAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAyG,SAAAE,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAFzG;AACA;;AAyBA;AACA;AACA;;AAsBA;AACA;AACA;;AASA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAYA;AACA;AACA;AACA;AACA,SAASkB,mBAAmBA,CAC1BC,UAAmC,EACV;EACzB,MAAMC,IAAI,GAAGL,MAAM,CAACK,IAAI,CAACD,UAAU,CAAsC;EACzE,KAAK,MAAME,GAAG,IAAID,IAAI,EAAE;IACtBD,UAAU,CAACE,GAAG,CAAC,GAAG;MAChBC,IAAI,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKC,CAAC;MACvBC,OAAO,EAAGnB,CAAC,IAAKA;IAClB,CAAC;EACH;EACA,OAAOa,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASO,gBAAgBA,CAI9BC,IAAY,EACZC,aAAsC,EACL;EACjC,IAAI/B,uBAAuB,IAAI,IAAI,EAAE;IACnC,MAAM,IAAIgC,KAAK,CACb,+CAA+CC,qBAAQ,CAACC,EAAE,GAC5D,CAAC;EACH;EACA,OAAOlC,uBAAuB,CAACc,GAAG,CAACgB,IAAI,EAAE,MAAM;IAC7C,MAAMK,MAAM,GAAGJ,aAAa,CAAC,CAAC;IAC9BI,MAAM,CAACC,eAAe,GAAGf,mBAAmB,CAACc,MAAM,CAACC,eAAe,CAAC;IACpE,OAAOD,MAAM;EACf,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;;AAIO,SAASE,QAAQA,CAACC,IAAa,EAAE;EACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;IAC9B,OAAO;MAAE5B,CAAC,EAAE4B;IAAK,CAAC;EACpB;EACA,OAAOA,IAAI;AACb","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ // ensures this file is treated as a module
4
+ export {};
5
+ //# sourceMappingURL=globals.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["globals.d.ts"],"mappings":";;AA2BA;AACA","ignoreList":[]}
@@ -31,25 +31,8 @@ if (__DEV__) {
31
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
32
  }
33
33
  }
34
-
35
- // Freeze the globals we need
36
- if (__DEV__) {
37
- function protectGlobal(key) {
38
- const value = globalThis[key];
39
- if (value == null) return;
40
- Object.freeze(value);
41
- Object.defineProperty(globalThis, key, {
42
- value: value,
43
- writable: false,
44
- configurable: false
45
- });
46
- }
47
- protectGlobal('__nitroDispatcher');
48
- protectGlobal('__nitroModulesJSICache');
49
- protectGlobal('NitroModulesProxy');
50
- }
51
34
  export function isRuntimeAlive() {
52
- const cache = globalThis.__nitroModulesJSICache;
35
+ const cache = globalThis.__nitroJsiCache;
53
36
  const dispatcher = globalThis.__nitroDispatcher;
54
37
  return cache != null && dispatcher != null;
55
38
  }
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","ModuleNotFoundError","turboModule","getEnforcing","e","errorMessage","install","Error","NitroModules","global","NitroModulesProxy","cause","__DEV__","jsVersion","require","version","console","warn","protectGlobal","key","value","globalThis","Object","freeze","defineProperty","writable","configurable","isRuntimeAlive","cache","__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;;AAEA;AACA,IAAID,OAAO,EAAE;EACX,SAASM,aAAaA,CAACC,GAA4B,EAAQ;IACzD,MAAMC,KAAK,GAAGC,UAAU,CAACF,GAAG,CAAC;IAC7B,IAAIC,KAAK,IAAI,IAAI,EAAE;IACnBE,MAAM,CAACC,MAAM,CAACH,KAAK,CAAC;IACpBE,MAAM,CAACE,cAAc,CAACH,UAAU,EAAEF,GAAG,EAAE;MACrCC,KAAK,EAAEA,KAAK;MACZK,QAAQ,EAAE,KAAK;MACfC,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ;EAEAR,aAAa,CAAC,mBAAmB,CAAC;EAClCA,aAAa,CAAC,wBAAwB,CAAC;EACvCA,aAAa,CAAC,mBAAmB,CAAC;AACpC;AAQA,OAAO,SAASS,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGP,UAAU,CAACQ,sBAAsB;EAC/C,MAAMC,UAAU,GAAGT,UAAU,CAACU,iBAAiB;EAC/C,OAAOH,KAAK,IAAI,IAAI,IAAIE,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","__nitroJsiCache","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;AAEA,OAAO,SAASK,cAAcA,CAAA,EAAG;EAC/B,MAAMC,KAAK,GAAGC,UAAU,CAACC,eAAe;EACxC,MAAMC,UAAU,GAAGF,UAAU,CAACG,iBAAiB;EAC/C,OAAOJ,KAAK,IAAI,IAAI,IAAIG,UAAU,IAAI,IAAI;AAC5C","ignoreList":[]}
@@ -1 +1 @@
1
- {"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.es2024.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.arraybuffer.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.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.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.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.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.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","../src/customtype.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/libraries/vendor/core/errorutils.d.ts","../../../node_modules/react-native/src/types/globals.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/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/view/view.d.ts","../../../node_modules/react-native/libraries/components/scrollview/scrollview.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/layoutconformance/layoutconformance.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/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/types/codegentypesnamespace.d.ts","../../../node_modules/react-native/libraries/utilities/appearance.d.ts","../../../node_modules/react-native/libraries/utilities/backhandler.d.ts","../../../node_modules/react-native/src/private/devsupport/devmenu/devmenu.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/types/public/deprecatedpropertiesalias.d.ts","../../../node_modules/react-native/libraries/utilities/codegennativecommands.d.ts","../../../node_modules/react-native/libraries/utilities/codegennativecomponent.d.ts","../../../node_modules/react-native/types/index.d.ts","../src/modulenotfounderror.ts","../src/nitromodulesproxy.ts","../src/turbomodule/nativenitromodules.ts","../src/nitromodules.ts","../src/sync.ts","../src/gethybridobjectconstructor.ts","../src/views/hybridview.ts","../src/views/gethostcomponent.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"],"fileIdsList":[[194],[106],[91,180],[196,199],[89,90],[192,198],[196],[193,197],[195],[114,115],[91,95,101,102,105,108,110,111,114],[112],[121],[84,94],[91,92,94,95,99,113,114],[91,114,143,144],[91,92,94,95,99,114],[84,128],[91,92,99,113,114,130],[91],[91,93,95,98,99,101,113,114],[91,92,94,99,114],[91,92,94,99],[91,92,93,94,95,97,99,100,101,113,114],[91,114],[91,113,114],[84,91,92,94,95,98,99,113,114,130],[91,93,95],[91,101,113,114,141],[91,92,97,114,141,143],[91,101,141],[91,92,93,95,97,98,113,114,130],[95],[91,93,95,96,97,98,113,114],[84],[120],[91,92,93,94,95,98,103,104,113,114],[95,96],[91,101,102,107,113,114],[91,102,107,109,113,114],[91,95,99,114],[91,113,156],[94],[91,94],[114],[113],[103,112,114],[91,92,94,95,98,113,114],[166],[84,180],[180],[128],[87],[83,84,85,86,87,88,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[86],[80],[80,184],[79,80,82,184,185,186,187,188],[183],[80,81],[180,181,182],[180,187]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a064b82533d211b1f97d1dc7c82e8d622d82d873a3dbb7e225f6e17814f40003","signature":"5d6084b922921ea84fce8617204272f5fb30ef8bedd91da18102c160fcf591aa"},{"version":"75c983a06ae990d5d05e9e6bcc5b20e52c1008f10a4d18af7561ce33ced01d23","signature":"90538ea42b1b8f3ac4ec7306a0a27ba7afee541df9684991e87202ffc9a6beb7"},{"version":"7cdf8681726690f80e41a5dcae289e664e78e0a0f81682d38b0f86ce9439f2aa","signature":"e5d121b23622c120b8e60e5efccd1436d9212b89f4cb180eb330f7d00cbe0e5d"},{"version":"8a134593bd339c1e68d4961eeae58004001004b005cc0995bfffe8a42a780f43","signature":"670a29824090633d5ccf2fe18c5f7c8c861562bc0172f44e009c617fa47ea49f"},{"version":"3a909e8789a4f8b5377ef3fb8dc10d0c0a090c03f2e40aab599534727457475a","affectsGlobalScope":true,"impliedFormat":1},{"version":"fd412dd6372493eb8e3e95cae8687d35e4d34dde905a33e0ee47b74224cdd6ab","impliedFormat":1},{"version":"9d3b119c15e8eeb9a8fbeca47e0165ca7120704d90bf123b16ee5b612e2ecc9d","impliedFormat":1},{"version":"9f66eb21b8f041974625ec8f8ab3c6c36990b900b053ba962bb8b233301c8e47","impliedFormat":1},{"version":"005319c82222e57934c7b211013eb6931829e46b2a61c5d9a1c3c25f8dc3ea90","impliedFormat":1},{"version":"54ccb63049fb6d1d3635f3dc313ebfe3a8059f6b6afa8b9d670579534f6e25a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"d4d7d3f832882a4b2d611a7eaaa80c780c3342b5732090130fa9af4a40bd051e","impliedFormat":1},{"version":"232f660363b3b189f7be7822ed71e907195d1a85bc8d55d2b7ce3f09b2136938","impliedFormat":1},{"version":"e745388cfad9efb4e5a9a15a2c6b66d54094dd82f8d0c2551064e216f7b51526","impliedFormat":1},{"version":"d11cbcaf3a54861b1d348ba2adeeba67976ce0b33eef5ea6e4bddc023d2ac4b2","impliedFormat":1},{"version":"cf1e23408bb2e38cb90d109cf8027c829f19424ad7a611c74edf39e1f195fe22","impliedFormat":1},{"version":"8ebf448e9837fda1a368acbb575b0e28843d5b2a3fda04bce76248b64326ea49","impliedFormat":1},{"version":"91b9f6241fca7843985aa31157cfa08cc724c77d91145a4d834d27cdde099c05","impliedFormat":1},{"version":"c5dc49c81f9cb20dff16b7933b50e19ac3565430cf685bbe51bcbcdb760fc03f","impliedFormat":1},{"version":"d78d4bc8bbda13ed147b23e63ff4ac83e3dcf4f07012afadd59e8a62473b5894","impliedFormat":1},{"version":"3dfa3a6f2a62259b56fa7bcebfbacf886848dfa037298be5bed07c7a0381ee4f","impliedFormat":1},{"version":"1882680f8c88c5648d603408dd1943857ca831a815e33d3126be8368f7a69252","impliedFormat":1},{"version":"24b6109bdf5e2027f0a4366b9e1f988d648f08ea3748ebd690e76bba65115bf9","impliedFormat":1},{"version":"e7d56fa3c64c44b29fa11d840b1fe04f6d782fc2e341a1f01b987f5e59f34266","impliedFormat":1},{"version":"0f86beb951b048eb7e0a17609e934a59a8686683b2134632975baeacaf53c23d","impliedFormat":1},{"version":"e1835114d3449689778b4d41a5dde326cf82c5d13ddd902a9b71f5bf223390fb","impliedFormat":1},{"version":"16000ce3a50ff9513f802cef9ec1ce95d4b93ce251d01fd82d5c61a34e0e35bd","impliedFormat":1},{"version":"42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","impliedFormat":1},{"version":"4e1bfec0f44a463f25cc26528a4505bc592feef555706311a143481f69a21d6f","impliedFormat":1},{"version":"cd2156bc8e4d54d52a2817d1b6f4629a5dd3173b1d8bb0fc893ee678d6a78ecd","impliedFormat":1},{"version":"60526d9010e8ccb2a76a59821061463464c3acd5bc7a50320df6d2e4e0d6e4f7","impliedFormat":1},{"version":"35e068ea47e779f232417d5c9fd595af9a85d26b2b77f89ae6afce17343d31e7","impliedFormat":1},{"version":"963dfba66d1744c7b35ae81cf6ebda2921df916806b6958ba093b63b0ef8c74a","impliedFormat":1},{"version":"70533e87167cf88facbec8ef771f9ad98021d796239c1e6f7826e0f386a725be","impliedFormat":1},{"version":"0600b6952abba5696c5079a62cc14430ba48682b1e1b7fbade74290c9857cd9a","impliedFormat":1},{"version":"9054417b5760061bc5fe31f9eee5dc9bf018339b0617d3c65dd1673c8e3c0f25","impliedFormat":1},{"version":"c6b68cd2e7838e91e05ede0a686815f521024281768f338644f6c0e0ad8e63cd","impliedFormat":1},{"version":"20c7a8cb00fda35bf50333488657c20fd36b9af9acb550f8410ef3e9bef51ef0","impliedFormat":1},{"version":"c94f70562ae60797cce564c3bebbaaf1752c327d5063d6ac152aa5ca1616c267","impliedFormat":1},{"version":"2aeb5fcdfc884b16015617d263fd8d1a8513f7efe23880be4e5f0bdb3794b37c","impliedFormat":1},{"version":"b561170fbe8d4292425e1dfa52406c8d97575681f7a5e420d11d9f72f7c29e38","impliedFormat":1},{"version":"5fe94f3f6411a0f6293f16fdc8e02ee61138941847ce91d6f6800c97fac22fcd","impliedFormat":1},{"version":"7f7c0ecc3eeeef905a3678e540947f4fbbc1a9c76075419dcc5fbfc3df59cb0b","impliedFormat":1},{"version":"df3303018d45c92be73fb4a282d5a242579f96235f5e0f8981983102caf5feca","impliedFormat":1},{"version":"92c10b9a2fcc6e4e4a781c22a97a0dac735e29b9059ecb6a7fa18d5b6916983b","impliedFormat":1},{"version":"8205e62a7310ac0513747f6d84175400680cff372559bc5fbe2df707194a295d","impliedFormat":1},{"version":"084d0df6805570b6dc6c8b49c3a71d5bdfe59606901e0026c63945b68d4b080a","impliedFormat":1},{"version":"9235e7b554d1c15ea04977b69cd123c79bd10f81704479ad5145e34d0205bf07","impliedFormat":1},{"version":"0f066f9654e700a9cf79c75553c934eb14296aa80583bd2b5d07e2d582a3f4ee","impliedFormat":1},{"version":"269c5d54104033b70331343bd931c9933852a882391ed6bd98c3d8b7d6465d22","impliedFormat":1},{"version":"a56b8577aaf471d9e60582065a8193269310e8cae48c1ce4111ed03216f5f715","impliedFormat":1},{"version":"486ae83cd51b813095f6716f06cc9b2cf480ad1d6c7f8ec59674d6c858cd2407","impliedFormat":1},{"version":"039f0a1f6d67514bbfea62ffbb0822007ce35ba180853ec9034431f60f63dbe6","impliedFormat":1},{"version":"fff527e2567a24dd634a30268f1aa8a220315fed9c513d70ee872e54f67f27f3","impliedFormat":1},{"version":"5dd0ff735b3f2e642c3f16bcfb3dc4ecebb679a70e43cfb19ab5fd84d8faaeed","impliedFormat":1},{"version":"71a9a3cf1e644ec071aa3ec6417ad05aae80c7bd55ef49b011be3cf1f17b7421","impliedFormat":1},{"version":"b7d1cdc9810b334734a7d607c195daa721df6d114d99e96d595ff52db1df627b","impliedFormat":1},{"version":"79150b9d6ee93942e4e45dddf3ef823b7298b3dda0a894ac8235206cf2909587","impliedFormat":1},{"version":"77282216c61bcef9a700db98e142301d5a7d988d3076286029da63e415e98a42","impliedFormat":1},{"version":"57b242af775e000ef0e0abb946542b0094fdb761ea52affb69b59b85ad83d34f","impliedFormat":1},{"version":"75ff8ea2c0c632719c14f50849c1fc7aa2d49f42b08c54373688536b3f995ee7","impliedFormat":1},{"version":"85a915dbb768b89cb92f5e6c165d776bfebd065883c34fee4e0219c3ed321b47","impliedFormat":1},{"version":"83df2f39cb14971adea51d1c84e7d146a34e9b7f84ad118450a51bdc3138412c","impliedFormat":1},{"version":"96d6742b440a834780d550fffc57d94d0aece2e04e485bce8d817dc5fb9b05d7","impliedFormat":1},{"version":"bdb2b70c74908c92ec41d8dd8375a195cb3bb07523e4de642b2b2dfbde249ca6","impliedFormat":1},{"version":"7b329f4137a552073f504022acbf8cd90d49cc5e5529791bef508f76ff774854","impliedFormat":1},{"version":"f63bbbffcfc897d22f34cf19ae13405cd267b1783cd21ec47d8a2d02947c98c1","impliedFormat":1},{"version":"9da2649fb89af9bd08b2215621ad1cfda50f798d0acbd0d5fee2274ee940c827","impliedFormat":1},{"version":"df55b9be6ba19a6f77487e09dc7a94d7c9bf66094d35ea168dbd4bac42c46b8f","impliedFormat":1},{"version":"595125f3e088b883d104622ef10e6b7d5875ff6976bbe4d7dca090a3e2dca513","impliedFormat":1},{"version":"737fc8159cb99bf39a201c4d7097e92ad654927da76a1297ace7ffe358a2eda3","impliedFormat":1},{"version":"e0d7eed4ba363df3faadb8e617f95f9fc8adfbb00b87db7ade4a1098d6cf1e90","impliedFormat":1},{"version":"676088e53ca31e9e21e53f5a8996345d1b8a7d153737208029db964279004c3e","impliedFormat":1},{"version":"de115595321ce012c456f512a799679bfc874f0ac0a4928a8429557bb25086aa","impliedFormat":1},{"version":"896e4b676a6f55ca66d40856b63ec2ff7f4f594d6350f8ae04eaee8876da0bc5","impliedFormat":1},{"version":"0524cab11ba9048d151d93cc666d3908fda329eec6b1642e9a936093e6d79f28","impliedFormat":1},{"version":"869073d7523e75f45bd65b2072865c60002d5e0cbd3d17831e999cf011312778","impliedFormat":1},{"version":"bc7b5906a6ce6c5744a640c314e020856be6c50a693e77dc12aff2d77b12ca76","impliedFormat":1},{"version":"56503e377bc1344f155e4e3115a772cb4e59350c0b8131e3e1fb2750ac491608","impliedFormat":1},{"version":"6b579287217ee1320ee1c6cfec5f6730f3a1f91daab000f7131558ee531b2bf8","impliedFormat":1},{"version":"2586bc43511ba0f0c4d8e35dacf25ed596dde8ec50b9598ecd80194af52f992f","impliedFormat":1},{"version":"a793636667598e739a52684033037a67dc2d9db37fab727623626ef19aa5abb9","impliedFormat":1},{"version":"b15d6238a86bc0fc2368da429249b96c260debc0cec3eb7b5f838ad32587c129","impliedFormat":1},{"version":"9a9fba3a20769b0a74923e7032997451b61c1bd371c519429b29019399040d74","impliedFormat":1},{"version":"4b10e2fe52cb61035e58df3f1fdd926dd0fe9cf1a2302f92916da324332fb4e0","impliedFormat":1},{"version":"d1092ae8d6017f359f4758115f588e089848cc8fb359f7ba045b1a1cf3668a49","impliedFormat":1},{"version":"ddae9195b0da7b25a585ef43365f4dc5204a746b155fbee71e6ee1a9193fb69f","impliedFormat":1},{"version":"32dbced998ce74c5e76ce87044d0b4071857576dde36b0c6ed1d5957ce9cf5b5","impliedFormat":1},{"version":"29befd9bb08a9ed1660fd7ac0bc2ad24a56da550b75b8334ac76c2cfceda974a","impliedFormat":1},{"version":"ed8a8dedbd26d5c101bcc2d1691535d1fd0470dc82d7e866391e9b31b851ea8c","impliedFormat":1},{"version":"0aba767f26742d337f50e46f702a95f83ce694101fa9b8455786928a5672bb9b","impliedFormat":1},{"version":"8db57d8da0ab49e839fb2d0874cfe456553077d387f423a7730c54ef5f494318","impliedFormat":1},{"version":"ecc1b8878c8033bde0204b85e26fe1af6847805427759e5723882c848a11e134","impliedFormat":1},{"version":"cfc9c32553ad3b5be38342bc8731397438a93531118e1a226a8c79ad255b4f0c","impliedFormat":1},{"version":"16e5b5b023c2a1119c1878a51714861c56255778de0a7fe378391876a15f7433","impliedFormat":1},{"version":"f65096bb6555aad0429c5b6b21b92683398434be9b2ce0d3a1fdbb651c1243f1","impliedFormat":1},{"version":"a090a8a3b0ef2cceeb089acf4df95df72e7d934215896afe264ff6f734d66d15","impliedFormat":1},{"version":"151f422f08c8ca67b77c5c39d49278b4df452ef409237c8219be109ae3cdae9d","impliedFormat":1},{"version":"412a06aa68e902bc67d69f381c06f8fd52497921c5746fabddadd44f624741f5","impliedFormat":1},{"version":"c469120d20804fda2fc836f4d7007dfd5c1cef70443868858cb524fd6e54def1","impliedFormat":1},{"version":"a32cc760d7c937dde05523434e3d7036dd6ca0ba8cb69b8f4f9557ffd80028b7","impliedFormat":1},{"version":"445f7bb9b132395763d2fd00e88167a7b7d5c514728cfe462c17d044fe9f27d2","signature":"5423eff0aeb3d2eba041721efabde15d1c06709724dea6ae79b48559f86ed9b8","affectsGlobalScope":true},{"version":"178e2a4f1e9f62db7efd30c46a639bdc14a371a5f6dcd385d5e1795168f1ff38","signature":"d34a6c2cae1aea60a038fe52dbc735a6375846942557c0e5635bddac715109d2"},{"version":"a7ad53fe454464af4e95183f97ad9faac23e6bcd65a7471f2d95300d0a8077c3","signature":"4422296b3caa7a863601992f0287a1c633b21a32e43f612dcb2a7fd02db67f4b","affectsGlobalScope":true},{"version":"725586b511f51bca1589b2476a469a9335db4cb1fe1b8fd0e94c189d7335fa98","signature":"edac49118a9eb46d842c8d24a567e31f0290ecdf8d44a5fc78da3112c2fdda54"},{"version":"9be7cfc079aa51a357a4aa6ec55dfde1b7a2f70dfffd5d4ec91dfdfda7d4e20b","signature":"9a69602e1cbf7afe7ea8fa14121f7572f2bf024948fb2f6ad6dfaab26adc4978"},{"version":"32d6f834cfb3135d790d9e1fb46cafb56c34f85907c4365cefe1cb337c6d6c25","signature":"ae6311df7457b1396ee9675a75181a275b0d548a92d551642c851380e63221c6"},{"version":"06ba2eeca898c4bd9a8e9f9b7ff8e0fc3b34cd79d791b7255f9d8b093eaedbcc","signature":"39a6002a361707e227b8d3b973aed942aa405103d5922b4d60282797840746a3"},{"version":"407ee16f8466c564fdf2671bce21a9f7deb535d975755e7d08d538cf786efdce","signature":"3735464fe70b49c76eba34beb0a1f576f1528ae8c73adf26f556b971edeef189"},{"version":"65925f985ecbeaccc41833b9b537a42a48f90efbd4408dca145dc1cd1e637905","signature":"c24b7d98b8e768ee49d3592b53ad378e5e1c43435cc19e90d904b46623ead4ed"},{"version":"844f2848bfe787dc98769ea4edc2e30371a5bfb15ef9f3e6afd625e76f6dc5c8","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"1c18d5790d0f5e15e84827cbf08982aef0339fb034b7971cff0535fc20a77879","signature":"68724f2c23cf02888072a2830ca5b336b6af536abce6094d3392e884c9293e52"},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1}],"root":[[79,82],[181,191]],"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},"referencedMap":[[195,1],[107,2],[106,3],[200,4],[91,5],[199,6],[197,7],[198,8],[196,9],[116,10],[112,11],[119,12],[122,13],[124,14],[125,15],[145,16],[127,17],[129,18],[131,19],[132,20],[133,21],[134,22],[100,22],[135,23],[102,24],[136,25],[137,15],[138,26],[139,27],[97,28],[142,29],[144,30],[143,31],[141,32],[101,23],[98,33],[99,34],[128,35],[120,35],[121,36],[105,37],[147,35],[148,38],[150,18],[108,39],[110,40],[152,41],[157,42],[109,20],[161,43],[159,20],[160,44],[163,45],[165,45],[164,45],[115,45],[114,46],[113,47],[111,48],[167,49],[168,50],[95,44],[169,13],[170,13],[179,51],[172,52],[173,35],[88,53],[180,54],[85,50],[86,55],[177,51],[96,33],[94,20],[81,56],[186,57],[189,58],[181,51],[184,59],[182,60],[183,61],[191,51],[188,62],[187,56]],"latestChangedDtsFile":"./typescript/turbomodule/NativeNitroModules.web.d.ts","version":"5.8.3"}
1
+ {"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.es2024.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.arraybuffer.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.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.es2024.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../node_modules/typescript/lib/lib.es2024.object.d.ts","../../../node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2024.string.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.promise.d.ts","../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.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","../src/customtype.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/libraries/vendor/core/errorutils.d.ts","../../../node_modules/react-native/src/types/globals.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/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/view/view.d.ts","../../../node_modules/react-native/libraries/components/scrollview/scrollview.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/layoutconformance/layoutconformance.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/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/types/codegentypesnamespace.d.ts","../../../node_modules/react-native/libraries/utilities/appearance.d.ts","../../../node_modules/react-native/libraries/utilities/backhandler.d.ts","../../../node_modules/react-native/src/private/devsupport/devmenu/devmenu.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/types/public/deprecatedpropertiesalias.d.ts","../../../node_modules/react-native/libraries/utilities/codegennativecommands.d.ts","../../../node_modules/react-native/libraries/utilities/codegennativecomponent.d.ts","../../../node_modules/react-native/types/index.d.ts","../src/modulenotfounderror.ts","../src/nitromodulesproxy.ts","../src/turbomodule/nativenitromodules.ts","../src/nitromodules.ts","../src/sync.ts","../src/gethybridobjectconstructor.ts","../src/globals.d.ts","../src/views/hybridview.ts","../src/views/gethostcomponent.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"],"fileIdsList":[[195],[106],[91,180],[197,200],[89,90],[193,199],[197],[194,198],[196],[114,115],[91,95,101,102,105,108,110,111,114],[112],[121],[84,94],[91,92,94,95,99,113,114],[91,114,143,144],[91,92,94,95,99,114],[84,128],[91,92,99,113,114,130],[91],[91,93,95,98,99,101,113,114],[91,92,94,99,114],[91,92,94,99],[91,92,93,94,95,97,99,100,101,113,114],[91,114],[91,113,114],[84,91,92,94,95,98,99,113,114,130],[91,93,95],[91,101,113,114,141],[91,92,97,114,141,143],[91,101,141],[91,92,93,95,97,98,113,114,130],[95],[91,93,95,96,97,98,113,114],[84],[120],[91,92,93,94,95,98,103,104,113,114],[95,96],[91,101,102,107,113,114],[91,102,107,109,113,114],[91,95,99,114],[91,113,156],[94],[91,94],[114],[113],[103,112,114],[91,92,94,95,98,113,114],[166],[84,180],[180],[128],[87],[83,84,85,86,87,88,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],[86],[80],[80,184],[79,80,82,184,185,186,188,189],[183],[80,81],[180,181,182],[180,188]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"a064b82533d211b1f97d1dc7c82e8d622d82d873a3dbb7e225f6e17814f40003","signature":"5d6084b922921ea84fce8617204272f5fb30ef8bedd91da18102c160fcf591aa"},{"version":"75c983a06ae990d5d05e9e6bcc5b20e52c1008f10a4d18af7561ce33ced01d23","signature":"90538ea42b1b8f3ac4ec7306a0a27ba7afee541df9684991e87202ffc9a6beb7"},{"version":"7cdf8681726690f80e41a5dcae289e664e78e0a0f81682d38b0f86ce9439f2aa","signature":"e5d121b23622c120b8e60e5efccd1436d9212b89f4cb180eb330f7d00cbe0e5d"},{"version":"8a134593bd339c1e68d4961eeae58004001004b005cc0995bfffe8a42a780f43","signature":"670a29824090633d5ccf2fe18c5f7c8c861562bc0172f44e009c617fa47ea49f"},{"version":"3a909e8789a4f8b5377ef3fb8dc10d0c0a090c03f2e40aab599534727457475a","affectsGlobalScope":true,"impliedFormat":1},{"version":"fd412dd6372493eb8e3e95cae8687d35e4d34dde905a33e0ee47b74224cdd6ab","impliedFormat":1},{"version":"9d3b119c15e8eeb9a8fbeca47e0165ca7120704d90bf123b16ee5b612e2ecc9d","impliedFormat":1},{"version":"9f66eb21b8f041974625ec8f8ab3c6c36990b900b053ba962bb8b233301c8e47","impliedFormat":1},{"version":"005319c82222e57934c7b211013eb6931829e46b2a61c5d9a1c3c25f8dc3ea90","impliedFormat":1},{"version":"54ccb63049fb6d1d3635f3dc313ebfe3a8059f6b6afa8b9d670579534f6e25a6","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"0ff1b165090b491f5e1407ae680b9a0bc3806dc56827ec85f93c57390491e732","impliedFormat":1},{"version":"232f660363b3b189f7be7822ed71e907195d1a85bc8d55d2b7ce3f09b2136938","impliedFormat":1},{"version":"e745388cfad9efb4e5a9a15a2c6b66d54094dd82f8d0c2551064e216f7b51526","impliedFormat":1},{"version":"d11cbcaf3a54861b1d348ba2adeeba67976ce0b33eef5ea6e4bddc023d2ac4b2","impliedFormat":1},{"version":"cf1e23408bb2e38cb90d109cf8027c829f19424ad7a611c74edf39e1f195fe22","impliedFormat":1},{"version":"8ebf448e9837fda1a368acbb575b0e28843d5b2a3fda04bce76248b64326ea49","impliedFormat":1},{"version":"91b9f6241fca7843985aa31157cfa08cc724c77d91145a4d834d27cdde099c05","impliedFormat":1},{"version":"c5dc49c81f9cb20dff16b7933b50e19ac3565430cf685bbe51bcbcdb760fc03f","impliedFormat":1},{"version":"d78d4bc8bbda13ed147b23e63ff4ac83e3dcf4f07012afadd59e8a62473b5894","impliedFormat":1},{"version":"3dfa3a6f2a62259b56fa7bcebfbacf886848dfa037298be5bed07c7a0381ee4f","impliedFormat":1},{"version":"1882680f8c88c5648d603408dd1943857ca831a815e33d3126be8368f7a69252","impliedFormat":1},{"version":"24b6109bdf5e2027f0a4366b9e1f988d648f08ea3748ebd690e76bba65115bf9","impliedFormat":1},{"version":"e7d56fa3c64c44b29fa11d840b1fe04f6d782fc2e341a1f01b987f5e59f34266","impliedFormat":1},{"version":"0f86beb951b048eb7e0a17609e934a59a8686683b2134632975baeacaf53c23d","impliedFormat":1},{"version":"e1835114d3449689778b4d41a5dde326cf82c5d13ddd902a9b71f5bf223390fb","impliedFormat":1},{"version":"16000ce3a50ff9513f802cef9ec1ce95d4b93ce251d01fd82d5c61a34e0e35bd","impliedFormat":1},{"version":"42bacb33cddecbcfe3e043ee1117ba848801749e44f947626765b3e0aec74b1c","impliedFormat":1},{"version":"4e1bfec0f44a463f25cc26528a4505bc592feef555706311a143481f69a21d6f","impliedFormat":1},{"version":"cd2156bc8e4d54d52a2817d1b6f4629a5dd3173b1d8bb0fc893ee678d6a78ecd","impliedFormat":1},{"version":"60526d9010e8ccb2a76a59821061463464c3acd5bc7a50320df6d2e4e0d6e4f7","impliedFormat":1},{"version":"35e068ea47e779f232417d5c9fd595af9a85d26b2b77f89ae6afce17343d31e7","impliedFormat":1},{"version":"963dfba66d1744c7b35ae81cf6ebda2921df916806b6958ba093b63b0ef8c74a","impliedFormat":1},{"version":"70533e87167cf88facbec8ef771f9ad98021d796239c1e6f7826e0f386a725be","impliedFormat":1},{"version":"0600b6952abba5696c5079a62cc14430ba48682b1e1b7fbade74290c9857cd9a","impliedFormat":1},{"version":"9054417b5760061bc5fe31f9eee5dc9bf018339b0617d3c65dd1673c8e3c0f25","impliedFormat":1},{"version":"c6b68cd2e7838e91e05ede0a686815f521024281768f338644f6c0e0ad8e63cd","impliedFormat":1},{"version":"20c7a8cb00fda35bf50333488657c20fd36b9af9acb550f8410ef3e9bef51ef0","impliedFormat":1},{"version":"c94f70562ae60797cce564c3bebbaaf1752c327d5063d6ac152aa5ca1616c267","impliedFormat":1},{"version":"2aeb5fcdfc884b16015617d263fd8d1a8513f7efe23880be4e5f0bdb3794b37c","impliedFormat":1},{"version":"b561170fbe8d4292425e1dfa52406c8d97575681f7a5e420d11d9f72f7c29e38","impliedFormat":1},{"version":"5fe94f3f6411a0f6293f16fdc8e02ee61138941847ce91d6f6800c97fac22fcd","impliedFormat":1},{"version":"7f7c0ecc3eeeef905a3678e540947f4fbbc1a9c76075419dcc5fbfc3df59cb0b","impliedFormat":1},{"version":"df3303018d45c92be73fb4a282d5a242579f96235f5e0f8981983102caf5feca","impliedFormat":1},{"version":"92c10b9a2fcc6e4e4a781c22a97a0dac735e29b9059ecb6a7fa18d5b6916983b","impliedFormat":1},{"version":"8205e62a7310ac0513747f6d84175400680cff372559bc5fbe2df707194a295d","impliedFormat":1},{"version":"084d0df6805570b6dc6c8b49c3a71d5bdfe59606901e0026c63945b68d4b080a","impliedFormat":1},{"version":"9235e7b554d1c15ea04977b69cd123c79bd10f81704479ad5145e34d0205bf07","impliedFormat":1},{"version":"0f066f9654e700a9cf79c75553c934eb14296aa80583bd2b5d07e2d582a3f4ee","impliedFormat":1},{"version":"269c5d54104033b70331343bd931c9933852a882391ed6bd98c3d8b7d6465d22","impliedFormat":1},{"version":"a56b8577aaf471d9e60582065a8193269310e8cae48c1ce4111ed03216f5f715","impliedFormat":1},{"version":"486ae83cd51b813095f6716f06cc9b2cf480ad1d6c7f8ec59674d6c858cd2407","impliedFormat":1},{"version":"039f0a1f6d67514bbfea62ffbb0822007ce35ba180853ec9034431f60f63dbe6","impliedFormat":1},{"version":"fff527e2567a24dd634a30268f1aa8a220315fed9c513d70ee872e54f67f27f3","impliedFormat":1},{"version":"5dd0ff735b3f2e642c3f16bcfb3dc4ecebb679a70e43cfb19ab5fd84d8faaeed","impliedFormat":1},{"version":"71a9a3cf1e644ec071aa3ec6417ad05aae80c7bd55ef49b011be3cf1f17b7421","impliedFormat":1},{"version":"b7d1cdc9810b334734a7d607c195daa721df6d114d99e96d595ff52db1df627b","impliedFormat":1},{"version":"79150b9d6ee93942e4e45dddf3ef823b7298b3dda0a894ac8235206cf2909587","impliedFormat":1},{"version":"77282216c61bcef9a700db98e142301d5a7d988d3076286029da63e415e98a42","impliedFormat":1},{"version":"57b242af775e000ef0e0abb946542b0094fdb761ea52affb69b59b85ad83d34f","impliedFormat":1},{"version":"75ff8ea2c0c632719c14f50849c1fc7aa2d49f42b08c54373688536b3f995ee7","impliedFormat":1},{"version":"85a915dbb768b89cb92f5e6c165d776bfebd065883c34fee4e0219c3ed321b47","impliedFormat":1},{"version":"83df2f39cb14971adea51d1c84e7d146a34e9b7f84ad118450a51bdc3138412c","impliedFormat":1},{"version":"96d6742b440a834780d550fffc57d94d0aece2e04e485bce8d817dc5fb9b05d7","impliedFormat":1},{"version":"bdb2b70c74908c92ec41d8dd8375a195cb3bb07523e4de642b2b2dfbde249ca6","impliedFormat":1},{"version":"7b329f4137a552073f504022acbf8cd90d49cc5e5529791bef508f76ff774854","impliedFormat":1},{"version":"f63bbbffcfc897d22f34cf19ae13405cd267b1783cd21ec47d8a2d02947c98c1","impliedFormat":1},{"version":"9da2649fb89af9bd08b2215621ad1cfda50f798d0acbd0d5fee2274ee940c827","impliedFormat":1},{"version":"df55b9be6ba19a6f77487e09dc7a94d7c9bf66094d35ea168dbd4bac42c46b8f","impliedFormat":1},{"version":"595125f3e088b883d104622ef10e6b7d5875ff6976bbe4d7dca090a3e2dca513","impliedFormat":1},{"version":"737fc8159cb99bf39a201c4d7097e92ad654927da76a1297ace7ffe358a2eda3","impliedFormat":1},{"version":"e0d7eed4ba363df3faadb8e617f95f9fc8adfbb00b87db7ade4a1098d6cf1e90","impliedFormat":1},{"version":"676088e53ca31e9e21e53f5a8996345d1b8a7d153737208029db964279004c3e","impliedFormat":1},{"version":"de115595321ce012c456f512a799679bfc874f0ac0a4928a8429557bb25086aa","impliedFormat":1},{"version":"896e4b676a6f55ca66d40856b63ec2ff7f4f594d6350f8ae04eaee8876da0bc5","impliedFormat":1},{"version":"0524cab11ba9048d151d93cc666d3908fda329eec6b1642e9a936093e6d79f28","impliedFormat":1},{"version":"869073d7523e75f45bd65b2072865c60002d5e0cbd3d17831e999cf011312778","impliedFormat":1},{"version":"bc7b5906a6ce6c5744a640c314e020856be6c50a693e77dc12aff2d77b12ca76","impliedFormat":1},{"version":"56503e377bc1344f155e4e3115a772cb4e59350c0b8131e3e1fb2750ac491608","impliedFormat":1},{"version":"6b579287217ee1320ee1c6cfec5f6730f3a1f91daab000f7131558ee531b2bf8","impliedFormat":1},{"version":"2586bc43511ba0f0c4d8e35dacf25ed596dde8ec50b9598ecd80194af52f992f","impliedFormat":1},{"version":"a793636667598e739a52684033037a67dc2d9db37fab727623626ef19aa5abb9","impliedFormat":1},{"version":"b15d6238a86bc0fc2368da429249b96c260debc0cec3eb7b5f838ad32587c129","impliedFormat":1},{"version":"9a9fba3a20769b0a74923e7032997451b61c1bd371c519429b29019399040d74","impliedFormat":1},{"version":"4b10e2fe52cb61035e58df3f1fdd926dd0fe9cf1a2302f92916da324332fb4e0","impliedFormat":1},{"version":"d1092ae8d6017f359f4758115f588e089848cc8fb359f7ba045b1a1cf3668a49","impliedFormat":1},{"version":"ddae9195b0da7b25a585ef43365f4dc5204a746b155fbee71e6ee1a9193fb69f","impliedFormat":1},{"version":"32dbced998ce74c5e76ce87044d0b4071857576dde36b0c6ed1d5957ce9cf5b5","impliedFormat":1},{"version":"29befd9bb08a9ed1660fd7ac0bc2ad24a56da550b75b8334ac76c2cfceda974a","impliedFormat":1},{"version":"ed8a8dedbd26d5c101bcc2d1691535d1fd0470dc82d7e866391e9b31b851ea8c","impliedFormat":1},{"version":"0aba767f26742d337f50e46f702a95f83ce694101fa9b8455786928a5672bb9b","impliedFormat":1},{"version":"8db57d8da0ab49e839fb2d0874cfe456553077d387f423a7730c54ef5f494318","impliedFormat":1},{"version":"ecc1b8878c8033bde0204b85e26fe1af6847805427759e5723882c848a11e134","impliedFormat":1},{"version":"cfc9c32553ad3b5be38342bc8731397438a93531118e1a226a8c79ad255b4f0c","impliedFormat":1},{"version":"16e5b5b023c2a1119c1878a51714861c56255778de0a7fe378391876a15f7433","impliedFormat":1},{"version":"f65096bb6555aad0429c5b6b21b92683398434be9b2ce0d3a1fdbb651c1243f1","impliedFormat":1},{"version":"a090a8a3b0ef2cceeb089acf4df95df72e7d934215896afe264ff6f734d66d15","impliedFormat":1},{"version":"151f422f08c8ca67b77c5c39d49278b4df452ef409237c8219be109ae3cdae9d","impliedFormat":1},{"version":"412a06aa68e902bc67d69f381c06f8fd52497921c5746fabddadd44f624741f5","impliedFormat":1},{"version":"c469120d20804fda2fc836f4d7007dfd5c1cef70443868858cb524fd6e54def1","impliedFormat":1},{"version":"a32cc760d7c937dde05523434e3d7036dd6ca0ba8cb69b8f4f9557ffd80028b7","impliedFormat":1},{"version":"445f7bb9b132395763d2fd00e88167a7b7d5c514728cfe462c17d044fe9f27d2","signature":"5423eff0aeb3d2eba041721efabde15d1c06709724dea6ae79b48559f86ed9b8","affectsGlobalScope":true},{"version":"178e2a4f1e9f62db7efd30c46a639bdc14a371a5f6dcd385d5e1795168f1ff38","signature":"d34a6c2cae1aea60a038fe52dbc735a6375846942557c0e5635bddac715109d2"},{"version":"1e45688ca2b75a50cf7032c972380760b37f404dbc11e6e7c69aabf8d597b032","signature":"cea47047c6bcf41628abd5e7a55c03ed9f1706cd8fd8880ac2ff32fa3a71a589"},{"version":"725586b511f51bca1589b2476a469a9335db4cb1fe1b8fd0e94c189d7335fa98","signature":"edac49118a9eb46d842c8d24a567e31f0290ecdf8d44a5fc78da3112c2fdda54"},{"version":"9be7cfc079aa51a357a4aa6ec55dfde1b7a2f70dfffd5d4ec91dfdfda7d4e20b","signature":"9a69602e1cbf7afe7ea8fa14121f7572f2bf024948fb2f6ad6dfaab26adc4978"},{"version":"32d6f834cfb3135d790d9e1fb46cafb56c34f85907c4365cefe1cb337c6d6c25","signature":"ae6311df7457b1396ee9675a75181a275b0d548a92d551642c851380e63221c6"},{"version":"e27a640431efc9906d1b4ccba382bc2c5858f9ee304ad78e45bdecb367340613","affectsGlobalScope":true},{"version":"06ba2eeca898c4bd9a8e9f9b7ff8e0fc3b34cd79d791b7255f9d8b093eaedbcc","signature":"39a6002a361707e227b8d3b973aed942aa405103d5922b4d60282797840746a3"},{"version":"407ee16f8466c564fdf2671bce21a9f7deb535d975755e7d08d538cf786efdce","signature":"3735464fe70b49c76eba34beb0a1f576f1528ae8c73adf26f556b971edeef189"},{"version":"65925f985ecbeaccc41833b9b537a42a48f90efbd4408dca145dc1cd1e637905","signature":"c24b7d98b8e768ee49d3592b53ad378e5e1c43435cc19e90d904b46623ead4ed"},{"version":"844f2848bfe787dc98769ea4edc2e30371a5bfb15ef9f3e6afd625e76f6dc5c8","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","affectsGlobalScope":true},{"version":"1c18d5790d0f5e15e84827cbf08982aef0339fb034b7971cff0535fc20a77879","signature":"68724f2c23cf02888072a2830ca5b336b6af536abce6094d3392e884c9293e52"},{"version":"cdcc132f207d097d7d3aa75615ab9a2e71d6a478162dde8b67f88ea19f3e54de","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"3e70a7e67c2cb16f8cd49097360c0309fe9d1e3210ff9222e9dac1f8df9d4fb6","impliedFormat":1},{"version":"ab68d2a3e3e8767c3fba8f80de099a1cfc18c0de79e42cb02ae66e22dfe14a66","impliedFormat":1},{"version":"d96cc6598148bf1a98fb2e8dcf01c63a4b3558bdaec6ef35e087fd0562eb40ec","impliedFormat":1},{"version":"f8db4fea512ab759b2223b90ecbbe7dae919c02f8ce95ec03f7fb1cf757cfbeb","affectsGlobalScope":true,"impliedFormat":1}],"root":[[79,82],[181,192]],"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},"referencedMap":[[196,1],[107,2],[106,3],[201,4],[91,5],[200,6],[198,7],[199,8],[197,9],[116,10],[112,11],[119,12],[122,13],[124,14],[125,15],[145,16],[127,17],[129,18],[131,19],[132,20],[133,21],[134,22],[100,22],[135,23],[102,24],[136,25],[137,15],[138,26],[139,27],[97,28],[142,29],[144,30],[143,31],[141,32],[101,23],[98,33],[99,34],[128,35],[120,35],[121,36],[105,37],[147,35],[148,38],[150,18],[108,39],[110,40],[152,41],[157,42],[109,20],[161,43],[159,20],[160,44],[163,45],[165,45],[164,45],[115,45],[114,46],[113,47],[111,48],[167,49],[168,50],[95,44],[169,13],[170,13],[179,51],[172,52],[173,35],[88,53],[180,54],[85,50],[86,55],[177,51],[96,33],[94,20],[81,56],[186,57],[190,58],[181,51],[184,59],[182,60],[183,61],[192,51],[189,62],[188,56]],"latestChangedDtsFile":"./typescript/turbomodule/NativeNitroModules.web.d.ts","version":"5.8.3"}
@@ -1,9 +1,4 @@
1
1
  import type { NitroModulesProxy } from '../NitroModulesProxy';
2
2
  export declare const NitroModules: NitroModulesProxy;
3
- declare global {
4
- var __nitroModulesJSICache: {};
5
- var __nitroDispatcher: {};
6
- var NitroModulesProxy: {};
7
- }
8
3
  export declare function isRuntimeAlive(): boolean;
9
4
  //# sourceMappingURL=NativeNitroModules.d.ts.map
@@ -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;AAqCzE,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,sBAAsB,EAAE,EAAE,CAAA;IAC9B,IAAI,iBAAiB,EAAE,EAAE,CAAA;IACzB,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,wBAAgB,cAAc,YAI7B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-nitro-modules",
3
- "version": "0.30.2",
3
+ "version": "0.31.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",
@@ -0,0 +1,29 @@
1
+ declare global {
2
+ /**
3
+ * The native `JSICache` for Nitro.
4
+ * This is created on the fly natively when needed.
5
+ * @readonly
6
+ */
7
+ var __nitroJsiCache: {} | undefined
8
+ /**
9
+ * The native `Dispatcher` for Nitro.
10
+ *
11
+ * A `Dispatcher` is only available in a `jsi::Runtime` when
12
+ * it was installed using `Dispatcher::installRuntimeGlobalDispatcher(...)`.
13
+ *
14
+ * If you use a `jsi::Runtime` that does not have a `Dispatcher` ({@linkcode __nitroDispatcher} `==` `null`),
15
+ * any asynchronous operations (`Callbacks` or `Promises`) will throw an error.
16
+ * You would need to either:
17
+ * - A) Install a `Dispatcher` that can safely thread-hop ("dispatch") to this `jsi::Runtime` on the native side
18
+ * - B) Only use synchronous methods and no callbacks on this `jsi::Runtime`.
19
+ * @readonly
20
+ */
21
+ var __nitroDispatcher: {} | undefined
22
+ /**
23
+ * The global proxy object that can create other autolinked HybridObjects.
24
+ */
25
+ var NitroModulesProxy: {} | undefined
26
+ }
27
+
28
+ // ensures this file is treated as a module
29
+ export {}
@@ -47,32 +47,8 @@ if (__DEV__) {
47
47
  }
48
48
  }
49
49
 
50
- // Freeze the globals we need
51
- if (__DEV__) {
52
- function protectGlobal(key: keyof typeof globalThis): void {
53
- const value = globalThis[key]
54
- if (value == null) return
55
- Object.freeze(value)
56
- Object.defineProperty(globalThis, key, {
57
- value: value,
58
- writable: false,
59
- configurable: false,
60
- })
61
- }
62
-
63
- protectGlobal('__nitroDispatcher')
64
- protectGlobal('__nitroModulesJSICache')
65
- protectGlobal('NitroModulesProxy')
66
- }
67
-
68
- declare global {
69
- var __nitroModulesJSICache: {}
70
- var __nitroDispatcher: {}
71
- var NitroModulesProxy: {}
72
- }
73
-
74
50
  export function isRuntimeAlive() {
75
- const cache = globalThis.__nitroModulesJSICache
51
+ const cache = globalThis.__nitroJsiCache
76
52
  const dispatcher = globalThis.__nitroDispatcher
77
53
  return cache != null && dispatcher != null
78
54
  }