react-native-nitro-modules 0.30.1 → 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.
- package/android/src/main/java/com/margelo/nitro/NitroModules.kt +2 -0
- package/cpp/core/HybridObject.cpp +16 -12
- package/cpp/entrypoint/InstallNitro.cpp +2 -1
- package/cpp/jsi/JSICache.cpp +4 -10
- package/cpp/jsi/JSIConverter+Date.hpp +4 -3
- package/cpp/jsi/JSIConverter+Exception.hpp +2 -1
- package/cpp/jsi/{JSIConverter+HybridObject.hpp → JSIConverter+NativeState.hpp} +19 -13
- package/cpp/jsi/JSIConverter+Promise.hpp +2 -1
- package/cpp/jsi/JSIConverter.hpp +1 -1
- package/cpp/prototype/HybridObjectPrototype.cpp +34 -26
- package/cpp/threading/Dispatcher.cpp +20 -17
- package/cpp/utils/NitroDefines.hpp +1 -1
- package/cpp/utils/ObjectUtils.cpp +169 -0
- package/cpp/utils/ObjectUtils.hpp +94 -0
- package/ios/turbomodule/NativeNitroModules+NewArch.mm +13 -2
- package/lib/commonjs/globals.d.js +6 -0
- package/lib/commonjs/globals.d.js.map +1 -0
- package/lib/commonjs/turbomodule/NativeNitroModules.js +1 -1
- package/lib/commonjs/turbomodule/NativeNitroModules.js.map +1 -1
- package/lib/module/globals.d.js +5 -0
- package/lib/module/globals.d.js.map +1 -0
- package/lib/module/turbomodule/NativeNitroModules.js +1 -1
- package/lib/module/turbomodule/NativeNitroModules.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/lib/typescript/turbomodule/NativeNitroModules.d.ts +0 -4
- package/lib/typescript/turbomodule/NativeNitroModules.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/globals.d.ts +29 -0
- package/src/turbomodule/NativeNitroModules.ts +1 -6
|
@@ -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.
|
|
77
|
-
jsi::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.
|
|
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
|
-
//
|
|
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
|
-
//
|
|
91
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
|
|
26
|
+
ObjectUtils::defineGlobal(runtime, KnownGlobalPropertyName::NITRO_MODULES_PROXY, proxy->toObject(runtime));
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
} // namespace margelo::nitro
|
package/cpp/jsi/JSICache.cpp
CHANGED
|
@@ -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
|
-
|
|
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::
|
|
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
|
-
|
|
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
|
-
|
|
54
|
+
jsi::Function errorCtor = runtime.global().getPropertyAsFunction(runtime, "Error");
|
|
55
|
+
return object.instanceOf(runtime, errorCtor);
|
|
55
56
|
}
|
|
56
57
|
};
|
|
57
58
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
//
|
|
2
|
-
// Created by Marc Rousavy on
|
|
2
|
+
// Created by Marc Rousavy on 16.10.25.
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
#pragma once
|
|
6
6
|
|
|
7
|
-
// Forward declare a few of the common types that might have cyclic includes.
|
|
8
7
|
namespace margelo::nitro {
|
|
9
8
|
class HybridObject;
|
|
10
9
|
} // namespace margelo::nitro
|
|
@@ -19,7 +18,7 @@ namespace margelo::nitro {
|
|
|
19
18
|
|
|
20
19
|
using namespace facebook;
|
|
21
20
|
|
|
22
|
-
//
|
|
21
|
+
// NativeState <> {}
|
|
23
22
|
template <typename T>
|
|
24
23
|
struct JSIConverter<T, std::enable_if_t<is_shared_ptr_to_v<T, jsi::NativeState>>> final {
|
|
25
24
|
using TPointee = typename T::element_type;
|
|
@@ -35,21 +34,28 @@ struct JSIConverter<T, std::enable_if_t<is_shared_ptr_to_v<T, jsi::NativeState>>
|
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
#endif
|
|
38
|
-
jsi::Object object = arg.asObject(runtime);
|
|
39
37
|
|
|
38
|
+
jsi::Object object = arg.asObject(runtime);
|
|
40
39
|
#ifdef NITRO_DEBUG
|
|
41
|
-
if (!object.hasNativeState
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
throw jsi::JSError(runtime, invalidTypeErrorMessage(stringRepresentation, "It does not have a NativeState!"));
|
|
45
|
-
} else {
|
|
46
|
-
std::string stringRepresentation = arg.toString(runtime).utf8(runtime);
|
|
47
|
-
throw jsi::JSError(runtime, invalidTypeErrorMessage(stringRepresentation, "It has a different NativeState<T>!"));
|
|
48
|
-
}
|
|
40
|
+
if (!object.hasNativeState(runtime)) [[unlikely]] {
|
|
41
|
+
std::string stringRepresentation = arg.toString(runtime).utf8(runtime);
|
|
42
|
+
throw jsi::JSError(runtime, invalidTypeErrorMessage(stringRepresentation, "It does not have a NativeState!"));
|
|
49
43
|
}
|
|
50
44
|
#endif
|
|
45
|
+
|
|
51
46
|
std::shared_ptr<jsi::NativeState> nativeState = object.getNativeState(runtime);
|
|
52
|
-
|
|
47
|
+
std::shared_ptr<TPointee> result = std::dynamic_pointer_cast<TPointee>(nativeState);
|
|
48
|
+
if (result == nullptr) [[unlikely]] {
|
|
49
|
+
std::string stringRepresentation = arg.toString(runtime).utf8(runtime);
|
|
50
|
+
std::string typeName = TypeInfo::getFriendlyTypename<TPointee>();
|
|
51
|
+
throw jsi::JSError(runtime, invalidTypeErrorMessage(stringRepresentation, "Downcasting failed - It has a different NativeState<T>!\n"
|
|
52
|
+
"- Did you accidentally pass a different type?\n"
|
|
53
|
+
"- Is react-native-nitro-modules linked multiple times? "
|
|
54
|
+
"Ensure you don't have any duplicate symbols for `" +
|
|
55
|
+
typeName + "` in your app's binary."));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return result;
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const T& arg) {
|
|
@@ -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
|
-
|
|
105
|
+
jsi::Function promiseCtor = runtime.global().getPropertyAsFunction(runtime, "Promise");
|
|
106
|
+
return object.instanceOf(runtime, promiseCtor);
|
|
106
107
|
}
|
|
107
108
|
};
|
|
108
109
|
|
package/cpp/jsi/JSIConverter.hpp
CHANGED
|
@@ -187,7 +187,7 @@ struct JSIConverter<std::string> final {
|
|
|
187
187
|
#include "JSIConverter+Exception.hpp"
|
|
188
188
|
#include "JSIConverter+Function.hpp"
|
|
189
189
|
#include "JSIConverter+HostObject.hpp"
|
|
190
|
-
#include "JSIConverter+
|
|
190
|
+
#include "JSIConverter+NativeState.hpp"
|
|
191
191
|
#include "JSIConverter+Optional.hpp"
|
|
192
192
|
#include "JSIConverter+Promise.hpp"
|
|
193
193
|
#include "JSIConverter+Tuple.hpp"
|
|
@@ -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.
|
|
37
|
-
//
|
|
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::
|
|
41
|
-
jsi::
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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
|
-
//
|
|
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
|
-
//
|
|
92
|
+
// 9. Return it!
|
|
85
93
|
return jsi::Value(runtime, *sharedObject);
|
|
86
94
|
}
|
|
87
95
|
|
|
@@ -6,16 +6,20 @@
|
|
|
6
6
|
//
|
|
7
7
|
|
|
8
8
|
#include "Dispatcher.hpp"
|
|
9
|
+
#include "JSIConverter.hpp"
|
|
9
10
|
#include "JSIHelpers.hpp"
|
|
10
11
|
#include "NitroDefines.hpp"
|
|
11
12
|
#include "NitroLogger.hpp"
|
|
13
|
+
#include "ObjectUtils.hpp"
|
|
12
14
|
|
|
13
15
|
namespace margelo::nitro {
|
|
14
16
|
|
|
15
17
|
using namespace facebook;
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
/**
|
|
20
|
+
* This map is only statically linked once to this library.
|
|
21
|
+
* If multiple versions of react-native-nitro-modules are linked, there would be multiple maps. We catch that issue later.
|
|
22
|
+
*/
|
|
19
23
|
std::unordered_map<jsi::Runtime * NON_NULL, std::weak_ptr<Dispatcher>> Dispatcher::_globalCache;
|
|
20
24
|
|
|
21
25
|
void Dispatcher::installRuntimeGlobalDispatcher(jsi::Runtime& runtime, std::shared_ptr<Dispatcher> dispatcher) {
|
|
@@ -25,9 +29,8 @@ void Dispatcher::installRuntimeGlobalDispatcher(jsi::Runtime& runtime, std::shar
|
|
|
25
29
|
_globalCache[&runtime] = dispatcher;
|
|
26
30
|
|
|
27
31
|
// Inject the dispatcher into Runtime global (runtime will hold a strong reference)
|
|
28
|
-
jsi::
|
|
29
|
-
|
|
30
|
-
runtime.global().setProperty(runtime, GLOBAL_DISPATCHER_HOLDER_NAME, dispatcherHolder);
|
|
32
|
+
jsi::Value dispatcherHolder = JSIConverter<std::shared_ptr<Dispatcher>>::toJSI(runtime, dispatcher);
|
|
33
|
+
ObjectUtils::defineGlobal(runtime, KnownGlobalPropertyName::DISPATCHER, std::move(dispatcherHolder));
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
std::shared_ptr<Dispatcher> Dispatcher::getRuntimeGlobalDispatcher(jsi::Runtime& runtime) {
|
|
@@ -44,25 +47,25 @@ std::shared_ptr<Dispatcher> Dispatcher::getRuntimeGlobalDispatcher(jsi::Runtime&
|
|
|
44
47
|
|
|
45
48
|
Logger::log(LogLevel::Warning, TAG, "Unknown Runtime (%s), looking for Dispatcher through JSI global lookup...",
|
|
46
49
|
getRuntimeId(runtime).c_str());
|
|
50
|
+
// 1. Get global.__nitroDispatcher
|
|
47
51
|
jsi::Value dispatcherHolderValue = getRuntimeGlobalDispatcherHolder(runtime);
|
|
48
|
-
jsi::Object
|
|
49
|
-
std::shared_ptr<Dispatcher> dispatcher =
|
|
52
|
+
// 2. Cast it to the jsi::Object
|
|
53
|
+
std::shared_ptr<Dispatcher> dispatcher = JSIConverter<std::shared_ptr<Dispatcher>>::fromJSI(runtime, dispatcherHolderValue);
|
|
54
|
+
// 3. Throw it in our cache and return
|
|
50
55
|
_globalCache[&runtime] = dispatcher;
|
|
51
56
|
return dispatcher;
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
jsi::Value Dispatcher::getRuntimeGlobalDispatcherHolder(jsi::Runtime& runtime) {
|
|
55
|
-
|
|
56
|
-
if (!runtime.global().hasProperty(runtime,
|
|
57
|
-
throw std::runtime_error("
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
"`
|
|
61
|
-
"
|
|
62
|
-
"for this `jsi::Runtime`?");
|
|
60
|
+
const char* dispatcherHolderName = ObjectUtils::getKnownGlobalPropertyNameString(KnownGlobalPropertyName::DISPATCHER);
|
|
61
|
+
if (!runtime.global().hasProperty(runtime, dispatcherHolderName)) [[unlikely]] {
|
|
62
|
+
throw std::runtime_error("The `jsi::Runtime` \"" + getRuntimeId(runtime) +
|
|
63
|
+
"\" does not support Callbacks or Promises because it does not have a `Dispatcher` installed!\n"
|
|
64
|
+
"To use Callbacks and Promises follow these steps;\n"
|
|
65
|
+
"1. Subclass `Dispatcher` with your implementation of `runAsync`/`runSync` for your Thread.\n"
|
|
66
|
+
"2. Call `Dispatcher::installRuntimeGlobalDispatcher(...)` with your `Runtime` and your `Dispatcher`.");
|
|
63
67
|
}
|
|
64
|
-
|
|
65
|
-
return runtime.global().getProperty(runtime, GLOBAL_DISPATCHER_HOLDER_NAME);
|
|
68
|
+
return runtime.global().getProperty(runtime, dispatcherHolderName);
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
} // namespace margelo::nitro
|
|
@@ -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
|
-
|
|
47
|
-
|
|
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 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["globals.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -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","isRuntimeAlive","cache","globalThis","
|
|
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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["globals.d.ts"],"mappings":";;AA2BA;AACA","ignoreList":[]}
|
|
@@ -32,7 +32,7 @@ if (__DEV__) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
export function isRuntimeAlive() {
|
|
35
|
-
const cache = globalThis.
|
|
35
|
+
const cache = globalThis.__nitroJsiCache;
|
|
36
36
|
const dispatcher = globalThis.__nitroDispatcher;
|
|
37
37
|
return cache != null && dispatcher != null;
|
|
38
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","isRuntimeAlive","cache","globalThis","
|
|
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":"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":"ee0cd52125f0a6012ad0f39327bf21ee6d8cf9f82036677b7b984b5866ee2156","signature":"c071991397ba57b75b07574dd2d11efe990aea9c59136423d149ce6c3f301eea","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,8 +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
|
-
}
|
|
7
3
|
export declare function isRuntimeAlive(): boolean;
|
|
8
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;AAmBzE,
|
|
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.
|
|
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",
|
package/src/globals.d.ts
ADDED
|
@@ -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,13 +47,8 @@ if (__DEV__) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
declare global {
|
|
51
|
-
var __nitroModulesJSICache: {}
|
|
52
|
-
var __nitroDispatcher: {}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
50
|
export function isRuntimeAlive() {
|
|
56
|
-
const cache = globalThis.
|
|
51
|
+
const cache = globalThis.__nitroJsiCache
|
|
57
52
|
const dispatcher = globalThis.__nitroDispatcher
|
|
58
53
|
return cache != null && dispatcher != null
|
|
59
54
|
}
|